From 8b7799e7d87cb46e85ee7125246d847fce900d14 Mon Sep 17 00:00:00 2001 From: Adam Haglund Date: Mon, 8 Jun 2026 17:05:55 +0200 Subject: [PATCH 01/62] update note regarding `pull_request_target` (#644) * Update README with pull_request_target usage guidelines Add caution and warning notes regarding the use of pull_request_target event. * Update README with pull_request_target caution Added caution about using pull_request_target and alternative options. * update wording for executing untrusted code * Format --------- Co-authored-by: bluwy --- pr-status/README.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/pr-status/README.md b/pr-status/README.md index 7750eb4d..4027a416 100644 --- a/pr-status/README.md +++ b/pr-status/README.md @@ -2,7 +2,18 @@ This action generates the changesets status in PRs, e.g. whether it has changeset files and which packages will be released if the PR is merged. -It requires the repo to be checked out, and automatically fetches the PR head ref into a temporary detached worktree in order to infer the changed files and packages. It also requires the [`pull_request_target`](https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request_target) event to be triggered in order to have permissions to comment on the PR and to work in PRs from forks. +It requires the repo to be checked out, and automatically fetches the PR head ref into a temporary detached worktree in order to infer the changed files and packages. + +See the [action metadata](action.yml) for details on the inputs and outputs. + +> [!CAUTION] +> **This action uses `pull_request_target` by default to support PRs from forks.** +> +> **Do not run untrusted code** when using the `pull_request_target` event. +> +> The example below only **_checks out_** and **_reads_** code, and does not **_execute_** any code from the fork. +> +> Read more about the `pull_request_target` event in the [GitHub documentation](https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request_target). You can also use the [`pull_request`](https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request) event if you prefer to lock permissions down and not run for PRs from forks. Make sure to add an if check to prevent the action from failing in fork PRs: @@ -13,10 +24,7 @@ jobs: # ... ``` -See the [action metadata](action.yml) for details on the inputs and outputs. - -> [!WARNING] -> **Do not run untrusted code** when using the `pull_request_target` event. The example below only checks out code and does not run any code from the PR. Read more about the `pull_request_target` event in the [GitHub documentation](https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request_target). +You can also use the [Changesets Bot](https://github.com/apps/changeset-bot) if you don't want an extra action in your repo, or are worried about the `pull_request_target` event. ## Example setup @@ -27,6 +35,8 @@ name: Comment Changesets status in PRs on: pull_request_target: +permissions: {} # require explicitly stating all permissions in each job + concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number }} cancel-in-progress: true From 5273feb188da1422ad123f8602e73ae8c0ac1c53 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Tue, 9 Jun 2026 16:06:36 +0800 Subject: [PATCH 02/62] Update dependabot config (#647) --- .github/dependabot.yml | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 7495a7f3..8c772f48 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,13 +1,32 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - version: 2 updates: - - package-ecosystem: "npm" # See documentation for possible values - directory: "/" # Location of package manifests + - package-ecosystem: "npm" + directory: "/" schedule: - interval: "weekly" + interval: "monthly" cooldown: default-days: 7 + open-pull-requests-limit: 10 + versioning-strategy: increase + groups: + production-dependencies: + dependency-type: "production" + update-types: + - minor + - patch + development-dependencies: + dependency-type: "development" + update-types: + - minor + - patch + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" + cooldown: + default-days: 7 + open-pull-requests-limit: 5 + groups: + github-actions: + patterns: + - "*" From 70a83f1bd16f4419f992fd8fea1c0ce878fe0f08 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Tue, 9 Jun 2026 17:45:37 +0800 Subject: [PATCH 03/62] Update CI for prerelease and backports (#646) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update CI for prerelease and backports * Fix * Update permissions * Apply suggestions from code review Co-authored-by: Mateusz Burzyński * comment --------- Co-authored-by: Mateusz Burzyński --- .github/workflows/ci.yml | 12 ++++++------ .github/workflows/publish.yml | 12 +++++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0e1713db..fb6457a5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,6 +7,9 @@ on: merge_group: branches: - main + - next + # merge group rulesets don't allow wildcards so in settings each maintenance branch needs to be added separately + - "maintenance/v*" # branch rulesets don't support v[0-9]+ permissions: contents: read @@ -37,9 +40,8 @@ jobs: test: name: Test - timeout-minutes: 20 runs-on: ubuntu-latest - + timeout-minutes: 20 steps: - name: Check out repo uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -53,9 +55,8 @@ jobs: typecheck: name: Typecheck - timeout-minutes: 20 runs-on: ubuntu-latest - + timeout-minutes: 20 steps: - name: Check out repo uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -69,9 +70,8 @@ jobs: lint: name: Lint - timeout-minutes: 20 runs-on: ubuntu-latest - + timeout-minutes: 20 steps: - name: Check out repo uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 11c03407..0897bc27 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,6 +4,8 @@ on: push: branches: - main + - next + - "maintenance/v*" # branch rulesets don't support v[0-9]+ concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -21,9 +23,7 @@ jobs: outputs: hasChangesets: ${{ steps.changesets.outputs.hasChangesets }} permissions: - contents: write # to create release (changesets/action) - issues: write # to post issue comments (changesets/action) - pull-requests: write # to create pull request (changesets/action) + contents: read # to check out repo (actions/checkout) steps: - name: Check out repo uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -42,6 +42,8 @@ jobs: with: client-id: ${{ vars.APP_CLIENT_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} + permission-contents: write # to create version commits (changesets/action) + permission-pull-requests: write # to create pull request (changesets/action) - name: Create or update release pull request id: changesets @@ -65,12 +67,12 @@ jobs: with: client-id: ${{ vars.APP_CLIENT_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} + permission-contents: write # to bypass branch and tag protection rules (release.ts) - name: Check out repo uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: - persist-credentials: true - # we need this token to bypass the branch and tag protection rules + persist-credentials: false token: ${{ steps.app-token.outputs.token }} - uses: ./.github/actions/ci-setup From c211f5efabe6a5f68837052cdd9cc3bad6368870 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 00:45:27 +0800 Subject: [PATCH 04/62] Bump the production-dependencies group with 2 updates (#649) Bumps the production-dependencies group with 2 updates: [semver](https://github.com/npm/node-semver) and [tinyexec](https://github.com/tinylibs/tinyexec). Updates `semver` from 7.8.0 to 7.8.1 - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md) - [Commits](https://github.com/npm/node-semver/compare/v7.8.0...v7.8.1) Updates `tinyexec` from 1.1.2 to 1.2.4 - [Release notes](https://github.com/tinylibs/tinyexec/releases) - [Commits](https://github.com/tinylibs/tinyexec/compare/1.1.2...1.2.4) --- updated-dependencies: - dependency-name: semver dependency-version: 7.8.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies - dependency-name: tinyexec dependency-version: 1.2.4 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 4 ++-- pnpm-lock.yaml | 41 +++++++++++++++++++++++++---------------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index f6f610a6..471fccef 100644 --- a/package.json +++ b/package.json @@ -30,8 +30,8 @@ "@octokit/plugin-throttling": "^11.0.3", "human-id": "^4.1.3", "markdown-table": "^3.0.4", - "semver": "^7.8.0", - "tinyexec": "^1.1.2" + "semver": "^7.8.1", + "tinyexec": "^1.2.4" }, "devDependencies": { "@changesets/changelog-github": "^0.7.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ae0dcb6e..34eea626 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -53,11 +53,11 @@ importers: specifier: ^3.0.4 version: 3.0.4 semver: - specifier: ^7.8.0 - version: 7.8.0 + specifier: ^7.8.1 + version: 7.8.1 tinyexec: - specifier: ^1.1.2 - version: 1.1.2 + specifier: ^1.2.4 + version: 1.2.4 devDependencies: '@changesets/changelog-github': specifier: ^0.7.0 @@ -1046,8 +1046,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - semver@7.8.0: - resolution: {integrity: sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA==} + semver@7.8.1: + resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} engines: {node: '>=10'} hasBin: true @@ -1115,14 +1115,18 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@1.1.2: - resolution: {integrity: sha512-dAqSqE/RabpBKI8+h26GfLq6Vb3JVXs30XYQjdMjaj/c2tS8IYYMbIzP599KtRj7c57/wYApb3QjgRgXmrCukA==} + tinyexec@1.2.4: + resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} engines: {node: '>=18'} tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.17: + resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} + engines: {node: '>=12.0.0'} + tinypool@2.1.0: resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} engines: {node: ^20.0.0 || >=22.0.0} @@ -1328,7 +1332,7 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.8.0 + semver: 7.8.1 '@changesets/assemble-release-plan@6.0.10': dependencies: @@ -1337,7 +1341,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 - semver: 7.8.0 + semver: 7.8.1 '@changesets/changelog-git@0.2.1': dependencies: @@ -1376,7 +1380,7 @@ snapshots: package-manager-detector: 0.2.11 picocolors: 1.1.1 resolve-from: 5.0.0 - semver: 7.8.0 + semver: 7.8.1 spawndamnit: 3.0.1 term-size: 2.2.1 transitivePeerDependencies: @@ -1402,7 +1406,7 @@ snapshots: '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 picocolors: 1.1.1 - semver: 7.8.0 + semver: 7.8.1 '@changesets/get-github-info@0.8.0': dependencies: @@ -2234,7 +2238,7 @@ snapshots: safer-buffer@2.1.2: {} - semver@7.8.0: {} + semver@7.8.1: {} set-function-length@1.2.2: dependencies: @@ -2296,13 +2300,18 @@ snapshots: tinybench@2.9.0: {} - tinyexec@1.1.2: {} + tinyexec@1.2.4: {} tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 + tinyglobby@0.2.17: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + tinypool@2.1.0: {} tinyrainbow@3.1.0: {} @@ -2344,7 +2353,7 @@ snapshots: dependencies: picomatch: 4.0.4 rolldown: 1.0.1 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 optionalDependencies: '@types/node': 24.12.4 fsevents: 2.3.3 @@ -2366,7 +2375,7 @@ snapshots: picomatch: 4.0.4 std-env: 4.1.0 tinybench: 2.9.0 - tinyexec: 1.1.2 + tinyexec: 1.2.4 tinyglobby: 0.2.16 tinyrainbow: 3.1.0 vite: 8.0.13(@types/node@24.12.4) From 7e238815d92b1079cf606d43e3532ffa6beac916 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 00:46:46 +0800 Subject: [PATCH 05/62] Bump the github-actions group across 1 directory with 3 updates (#648) Bumps the github-actions group with 3 updates in the / directory: [actions/checkout](https://github.com/actions/checkout), [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) and [actions/create-github-app-token](https://github.com/actions/create-github-app-token). Updates `actions/checkout` from 6.0.2 to 6.0.3 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd...df4cb1c069e1874edd31b4311f1884172cec0e10) Updates `zizmorcore/zizmor-action` from 0.5.3 to 0.5.6 - [Release notes](https://github.com/zizmorcore/zizmor-action/releases) - [Commits](https://github.com/zizmorcore/zizmor-action/compare/b1d7e1fb5de872772f31590499237e7cce841e8e...5f14fd08f7cf1cb1609c1e344975f152c7ee938d) Updates `actions/create-github-app-token` from 3.1.1 to 3.2.0 - [Release notes](https://github.com/actions/create-github-app-token/releases) - [Changelog](https://github.com/actions/create-github-app-token/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/create-github-app-token/compare/1b10c78c7865c340bc4f6099eb2f838309f1e8c3...bcd2ba49218906704ab6c1aa796996da409d3eb1) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: actions/create-github-app-token dependency-version: 3.2.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions - dependency-name: zizmorcore/zizmor-action dependency-version: 0.5.6 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 10 +++++----- .github/workflows/publish.yml | 8 ++++---- .github/workflows/release-pr.yml | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb6457a5..67ea2549 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,12 +27,12 @@ jobs: security-events: write # allow writing security events steps: - name: Checkout repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - name: Run zizmor - uses: zizmorcore/zizmor-action@b1d7e1fb5de872772f31590499237e7cce841e8e # v0.5.3 + uses: zizmorcore/zizmor-action@5f14fd08f7cf1cb1609c1e344975f152c7ee938d # v0.5.6 with: persona: pedantic annotations: true @@ -44,7 +44,7 @@ jobs: timeout-minutes: 20 steps: - name: Check out repo - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false @@ -59,7 +59,7 @@ jobs: timeout-minutes: 20 steps: - name: Check out repo - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false @@ -74,7 +74,7 @@ jobs: timeout-minutes: 20 steps: - name: Check out repo - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0897bc27..59f74683 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -26,7 +26,7 @@ jobs: contents: read # to check out repo (actions/checkout) steps: - name: Check out repo - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false @@ -37,7 +37,7 @@ jobs: - name: Build run: pnpm build - - uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1 + - uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 id: app-token with: client-id: ${{ vars.APP_CLIENT_ID }} @@ -62,7 +62,7 @@ jobs: permissions: contents: write # to create release and have it authored by github-actions (changesets/action) steps: - - uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3.1.1 + - uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 id: app-token with: client-id: ${{ vars.APP_CLIENT_ID }} @@ -70,7 +70,7 @@ jobs: permission-contents: write # to bypass branch and tag protection rules (release.ts) - name: Check out repo - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false token: ${{ steps.app-token.outputs.token }} diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index c77c6e50..4a42efb0 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -123,7 +123,7 @@ jobs: steps: - name: Check out repo - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false From 310b913a84dbcf9170f68edbcef70774863ced9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Wed, 10 Jun 2026 03:40:16 +0200 Subject: [PATCH 06/62] Don't update main release lines for prerelease versions (#653) --- scripts/release.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/release.ts b/scripts/release.ts index 6ac6a8e1..314319f0 100644 --- a/scripts/release.ts +++ b/scripts/release.ts @@ -4,6 +4,7 @@ import pkgJson from "../package.json" with { type: "json" }; const tag = `v${pkgJson.version}`; const releaseLine = `v${pkgJson.version.split(".")[0]}`; +const isPrerelease = pkgJson.version.includes("-"); process.chdir(path.join(import.meta.dirname, "..")); @@ -31,6 +32,11 @@ process.chdir(path.join(import.meta.dirname, "..")); await exec("changeset", ["tag"]); + if (isPrerelease) { + await exec("git", ["push", "origin", `refs/tags/${tag}`]); + return; + } + await exec("git", [ "push", "--force", From 1bf7c2782b26645817651843df68a12e81c66b47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Wed, 10 Jun 2026 10:23:13 +0200 Subject: [PATCH 07/62] Enter pre mode (#652) --- .changeset/pre.json | 8 ++++++++ README.md | 3 +++ 2 files changed, 11 insertions(+) create mode 100644 .changeset/pre.json diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 00000000..c212be51 --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,8 @@ +{ + "mode": "pre", + "tag": "next", + "initialVersions": { + "@changesets/action": "1.9.0" + }, + "changesets": [] +} diff --git a/README.md b/README.md index 938eac9b..50b0a2d6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # Changesets Release Action +> [!IMPORTANT] +> This is the development branch for `changesets/action` v2 compatible with Changesets v3. For the v1 code compatible with Changesets v2, check out the [`maintenance/v1`](https://github.com/changesets/action/tree/maintenance/v1) branch. + This action for [Changesets](https://github.com/changesets/changesets) creates a pull request with all of the package versions updated and changelogs updated and when there are new changesets on [your configured `baseBranch`](https://github.com/changesets/changesets/blob/main/docs/config-file-options.md#basebranch-git-branch-name), the PR will be updated. When you're ready, you can merge the pull request and you can either publish the packages to npm manually or setup the action to do it for you. There are also sub-actions hosted in this repository. Check out their respective READMEs for more details: From 4f718b5921490b1efeb015a81abb6a4633892851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Mon, 15 Jun 2026 10:03:20 +0200 Subject: [PATCH 08/62] Removed compatibility support for old Changesets v1 (#657) --- .changeset/eighty-doors-swim.md | 5 +++++ src/run.ts | 25 +------------------------ 2 files changed, 6 insertions(+), 24 deletions(-) create mode 100644 .changeset/eighty-doors-swim.md diff --git a/.changeset/eighty-doors-swim.md b/.changeset/eighty-doors-swim.md new file mode 100644 index 00000000..55316b86 --- /dev/null +++ b/.changeset/eighty-doors-swim.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": major +--- + +Removed compatibility support for old Changesets v1. diff --git a/src/run.ts b/src/run.ts index 64d391d7..5f91d7af 100644 --- a/src/run.ts +++ b/src/run.ts @@ -6,7 +6,6 @@ import { exec, getExecOutput } from "@actions/exec"; import * as github from "@actions/github"; import type { PreState } from "@changesets/types"; import { type Package, getPackages } from "@manypkg/get-packages"; -import semverLt from "semver/functions/lt.js"; import { Git } from "./git.ts"; import type { Octokit } from "./octokit.ts"; import readChangesetState from "./readChangesetState.ts"; @@ -165,24 +164,6 @@ export async function runPublish({ return { published: false, exitCode: changesetPublishOutput.exitCode }; } -const requireChangesetsCliPkgJson = (cwd: string) => { - try { - return require( - require.resolve("@changesets/cli/package.json", { - paths: [cwd], - }), - ); - } catch (err) { - if (isErrorWithCode(err, "MODULE_NOT_FOUND")) { - throw new Error( - `Have you forgotten to install \`@changesets/cli\` in "${cwd}"?`, - { cause: err }, - ); - } - throw err; - } -}; - type GetMessageOptions = { hasPublishScript: boolean; branch: string; @@ -296,17 +277,13 @@ export async function runVersion({ if (script) { await exec(script, undefined, { cwd, env }); } else { - let changesetsCliPkgJson = requireChangesetsCliPkgJson(cwd); - let cmd = semverLt(changesetsCliPkgJson.version, "2.0.0") - ? "bump" - : "version"; await exec( "node", [ require.resolve("@changesets/cli/bin.js", { paths: [cwd], }), - cmd, + "version", ], { cwd, From 5649ff41b8eb1b7a281011e45df781c6d4628fd0 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Tue, 23 Jun 2026 14:35:46 +0800 Subject: [PATCH 09/62] Remove cwd option (#659) --- .changeset/lemon-turtles-itch.md | 5 +++++ action.yml | 3 --- src/index.ts | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 .changeset/lemon-turtles-itch.md diff --git a/.changeset/lemon-turtles-itch.md b/.changeset/lemon-turtles-itch.md new file mode 100644 index 00000000..f5b77778 --- /dev/null +++ b/.changeset/lemon-turtles-itch.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": major +--- + +Remove `cwd` option for `changesets/action`. Use the step `working-directory` option instead to change the directory. diff --git a/action.yml b/action.yml index 9f7d3869..8f2ccb18 100644 --- a/action.yml +++ b/action.yml @@ -14,9 +14,6 @@ inputs: version: description: "The command to update version, edit CHANGELOG, read and delete changesets. Default to `changeset version` if not provided" required: false - cwd: - description: Sets the cwd for the node process. Default to `process.cwd()` - required: false commit: description: | The commit message. Default to `Version Packages` diff --git a/src/index.ts b/src/index.ts index 6c4549cd..247e2920 100644 --- a/src/index.ts +++ b/src/index.ts @@ -19,8 +19,8 @@ const getOptionalInput = (name: string) => core.getInput(name) || undefined; return; } - const cwd = path.resolve(getOptionalInput("cwd") ?? ""); - core.info(`using resolved cwd: ${cwd}`); + // If the user needs to change the cwd, set `working-directory` in the step instead + const cwd = process.cwd(); const octokit = setupOctokit(githubToken); const commitMode = getOptionalInput("commitMode") ?? "git-cli"; From a12d90de8394e63c952622b2fd3f98c8729c48b0 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Tue, 23 Jun 2026 14:42:37 +0800 Subject: [PATCH 10/62] Add `select-mode`, `version`, `pack` and `publish` sub-actions (#656) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add select-mode, version, and publish sub-actions * Rename * No github-token needed for select-mode for now * extend select-mode with publish-plan check and upload * Rename base-branch to pr-base-branch * add `pack` subaction * `--from-pack` support in the publish subaction * rename CLI arg * update rolldown config * rename pack dir input/output * tweak retendion days --------- Co-authored-by: Mateusz Burzyński --- .changeset/eight-clocks-pull.md | 5 + pack/README.md | 3 + pack/action.yml | 15 + package.json | 1 + pnpm-lock.yaml | 945 +++++++++++++++++++++++++++++++- publish/README.md | 3 + publish/action.yml | 29 + rolldown.config.js | 8 +- select-mode/README.md | 3 + select-mode/action.yml | 14 + src/pack/index.ts | 82 +++ src/publish/index.ts | 67 +++ src/run.ts | 52 +- src/select-mode/index.ts | 117 ++++ src/utils.ts | 65 +++ src/version/index.ts | 56 ++ version/README.md | 3 + version/action.yml | 43 ++ 18 files changed, 1487 insertions(+), 24 deletions(-) create mode 100644 .changeset/eight-clocks-pull.md create mode 100644 pack/README.md create mode 100644 pack/action.yml create mode 100644 publish/README.md create mode 100644 publish/action.yml create mode 100644 select-mode/README.md create mode 100644 select-mode/action.yml create mode 100644 src/pack/index.ts create mode 100644 src/publish/index.ts create mode 100644 src/select-mode/index.ts create mode 100644 src/version/index.ts create mode 100644 version/README.md create mode 100644 version/action.yml diff --git a/.changeset/eight-clocks-pull.md b/.changeset/eight-clocks-pull.md new file mode 100644 index 00000000..76a279e5 --- /dev/null +++ b/.changeset/eight-clocks-pull.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": minor +--- + +Add new `/select-mode`, `/version`, and `/publish` sub-actions to better control version and publish steps diff --git a/pack/README.md b/pack/README.md new file mode 100644 index 00000000..1824a561 --- /dev/null +++ b/pack/README.md @@ -0,0 +1,3 @@ +# changesets/action/pack + +TODO diff --git a/pack/action.yml b/pack/action.yml new file mode 100644 index 00000000..eceb353b --- /dev/null +++ b/pack/action.yml @@ -0,0 +1,15 @@ +name: Changesets - Pack +description: Pack publishable packages into tarballs +runs: + using: node24 + main: ../dist/pack.js +inputs: + publish-plan-artifact-id: + description: "Artifact id for a publish plan generated by the select-mode subaction" + required: false +outputs: + pack-dir-artifact-id: + description: "Artifact id for the packed output directory" +branding: + icon: package + color: blue diff --git a/package.json b/package.json index 471fccef..df2e40a0 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "release:pr": "node --experimental-strip-types ./scripts/release-pr.ts" }, "dependencies": { + "@actions/artifact": "^6.2.1", "@actions/core": "^3.0.1", "@actions/exec": "^3.0.0", "@actions/github": "^9.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 34eea626..cc12b6c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,6 +13,9 @@ importers: .: dependencies: + '@actions/artifact': + specifier: ^6.2.1 + version: 6.2.1 '@actions/core': specifier: ^3.0.1 version: 3.0.1 @@ -98,6 +101,9 @@ importers: packages: + '@actions/artifact@6.2.1': + resolution: {integrity: sha512-sJGH0mhEbEjBCw7o6SaLhUU66u27aFW8HTfkIb5Tk2/Wy0caUDc+oYQEgnuFN7a0HCpAbQyK0U6U7XUJDgDWrw==} + '@actions/core@3.0.1': resolution: {integrity: sha512-a6d/Nwahm9fliVGRhdhofo40HjHQasUPusmc7vBfyky+7Z+P2A1J68zyFVaNcEclc/Se+eO595oAr5nwEIoIUA==} @@ -116,10 +122,71 @@ packages: '@actions/io@3.0.2': resolution: {integrity: sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==} + '@azure/abort-controller@2.1.2': + resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} + engines: {node: '>=18.0.0'} + + '@azure/core-auth@1.10.1': + resolution: {integrity: sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==} + engines: {node: '>=20.0.0'} + + '@azure/core-client@1.10.2': + resolution: {integrity: sha512-1D2LpsU7y9xrqKjdIbsB7PlrRePw0xsVV8p+AKTlzITrWmscajryfJCdDJB/oGwvDI5HmRo04eMMADB67uwAwQ==} + engines: {node: '>=20.0.0'} + + '@azure/core-http-compat@2.4.0': + resolution: {integrity: sha512-f1P96IB399YiN2ARYHP7EpZi3Bf3wH4SN2lGzrw7JVwm7bbsVYtf2iKSBwTywD2P62NOPZGHFSZi+6jjb75JuA==} + engines: {node: '>=20.0.0'} + peerDependencies: + '@azure/core-client': ^1.10.0 + '@azure/core-rest-pipeline': ^1.22.0 + + '@azure/core-lro@2.7.2': + resolution: {integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==} + engines: {node: '>=18.0.0'} + + '@azure/core-paging@1.6.2': + resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} + engines: {node: '>=18.0.0'} + + '@azure/core-rest-pipeline@1.24.0': + resolution: {integrity: sha512-PpLsoDQ3AMmKZ0VU+0GrmqMxgp/sExjlVm4R+nLWngeoEGAzOIPVifaxKGU5gMv+nWELUoHfvrolWD+ZS/nFJg==} + engines: {node: '>=20.0.0'} + + '@azure/core-tracing@1.3.1': + resolution: {integrity: sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==} + engines: {node: '>=20.0.0'} + + '@azure/core-util@1.13.1': + resolution: {integrity: sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==} + engines: {node: '>=20.0.0'} + + '@azure/core-xml@1.5.1': + resolution: {integrity: sha512-xcNRHqCoSp4AunOALEae6A8f3qATb83gSrm31Iqb01OzblvC3/W/bfXozcq78EzIdzZzuH1bZ2NvRR0TdX709w==} + engines: {node: '>=20.0.0'} + + '@azure/logger@1.3.0': + resolution: {integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==} + engines: {node: '>=20.0.0'} + + '@azure/storage-blob@12.32.0': + resolution: {integrity: sha512-80LzSNnFQye2LCCBFghAJS6jJQJ7N4bfgZ6qDMgVGRtugZ7TLDKQZ2hczMigmZH3jAcMRdma/IygsC5+0gT7Tw==} + engines: {node: '>=20.0.0'} + + '@azure/storage-common@12.4.0': + resolution: {integrity: sha512-kNhJKMxQb374KOVt63CZnGIpDcrKNzJeyANLJymxE9mCJSdRGzb+Iv9oSIiCj6tNMLypr530b9ObOiA/5OvwOg==} + engines: {node: '>=20.0.0'} + '@babel/runtime@7.29.2': resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} engines: {node: '>=6.9.0'} + '@bufbuild/protobuf@2.12.0': + resolution: {integrity: sha512-B/XlCaFIP8LOwzo+bz5uFzATYokcwCKQcghqnlfwSmM5eX/qTkvDBnDPs+gXtX/RyjxJ4DRikECcPJbyALA8FA==} + + '@bufbuild/protoplugin@2.12.0': + resolution: {integrity: sha512-ORlDITp8AFUXzIhLRoMCG+ud+D3MPKWb5HQXBoskMMnjeyEjE1H1qLonVNPyOr8lkx3xSfYUo8a0dvOZJVAzow==} + '@changesets/apply-release-plan@7.1.1': resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==} @@ -202,6 +269,10 @@ packages: '@types/node': optional: true + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} @@ -217,6 +288,9 @@ packages: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 + '@nodable/entities@2.1.1': + resolution: {integrity: sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -254,12 +328,24 @@ packages: peerDependencies: '@octokit/core': '>=6' + '@octokit/plugin-request-log@6.0.0': + resolution: {integrity: sha512-UkOzeEN3W91/eBq9sPZNQ7sUBvYCqYbrrD8gTbBuGtHEuycE4/awMXcYvx6sVYo7LypPhmQwwpUe4Yyu4QZN5Q==} + engines: {node: '>= 20'} + peerDependencies: + '@octokit/core': '>=6' + '@octokit/plugin-rest-endpoint-methods@17.0.0': resolution: {integrity: sha512-B5yCyIlOJFPqUUeiD0cnBJwWJO8lkJs5d8+ze9QDP6SvfiXSz1BF+91+0MeI1d2yxgOhU/O+CvtiZ9jSkHhFAw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' + '@octokit/plugin-retry@8.1.0': + resolution: {integrity: sha512-O1FZgXeiGb2sowEr/hYTr6YunGdSAFWnr2fyW39Ah85H8O33ELASQxcvOFF5LE6Tjekcyu2ms4qAzJVhSaJxTw==} + engines: {node: '>= 20'} + peerDependencies: + '@octokit/core': '>=7' + '@octokit/plugin-throttling@11.0.3': resolution: {integrity: sha512-34eE0RkFCKycLl2D2kq7W+LovheM/ex3AwZCYN8udpi6bxsyjZidb2McXs69hZhLmJlDqTSP8cH+jSRpiaijBg==} engines: {node: '>= 20'} @@ -402,6 +488,24 @@ packages: cpu: [x64] os: [win32] + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@protobuf-ts/plugin@2.11.1': + resolution: {integrity: sha512-HyuprDcw0bEEJqkOWe1rnXUP0gwYLij8YhPuZyZk6cJbIgc/Q0IFgoHQxOXNIXAcXM4Sbehh6kjVnCzasElw1A==} + hasBin: true + + '@protobuf-ts/protoc@2.11.1': + resolution: {integrity: sha512-mUZJaV0daGO6HUX90o/atzQ6A7bbN2RSuHtdwo8SSF2Qoe3zHwa4IHyCN1evftTeHfLmdz+45qo47sL+5P8nyg==} + hasBin: true + + '@protobuf-ts/runtime-rpc@2.11.1': + resolution: {integrity: sha512-4CqqUmNA+/uMz00+d3CYKgElXO9VrEbucjnBFEjqI4GuDrEQ32MaI3q+9qPBvIGOlL4PmHXrzM32vBPWRhQKWQ==} + + '@protobuf-ts/runtime@2.11.1': + resolution: {integrity: sha512-KuDaT1IfHkugM2pyz+FwiY80ejWrkH1pAtOBOZFuR6SXEFTsnb/jiQWQ1rCIrcKx2BtyxnxW6BWwsVSA/Ie+WQ==} + '@rolldown/binding-android-arm64@1.0.1': resolution: {integrity: sha512-fJI3I0r3C3Oj/zdBCpaCmBRZYf07xpaq4yCfDDoSFm+beWNzbIl26puW8RraUdugoJw/95zerNOn6jasAhzSmg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -527,6 +631,15 @@ packages: '@types/semver@7.7.1': resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + '@typescript/vfs@1.6.4': + resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==} + peerDependencies: + typescript: '*' + + '@typespec/ts-http-runtime@0.3.6': + resolution: {integrity: sha512-jIXhD0eWQ1JA6ln/5Dltyx22UxWNrw0hZmhy2rlv6m6KgF7kplHx3g0fzi09lNmTJQRR91OlemYp3xFnvDK9og==} + engines: {node: '>=20.0.0'} + '@vitest/expect@4.1.6': resolution: {integrity: sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==} @@ -560,6 +673,10 @@ packages: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} engines: {node: '>=6.5'} + agent-base@7.1.4: + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} + ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} @@ -568,6 +685,26 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} + engines: {node: '>=12'} + + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} + + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -585,10 +722,65 @@ packages: async-lock@1.4.1: resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + available-typed-arrays@1.0.7: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + b4a@1.8.1: + resolution: {integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + bare-events@2.9.1: + resolution: {integrity: sha512-Z0oHEHAFDZkffN8Qc39zNZjQlMDkPJRyyyZieU1VH7u8c5S+qHZ2S8ixdKIAxEjfHO7FJxXmJWgteOghVanIsg==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.7.2: + resolution: {integrity: sha512-aTvMFUWkBmjzKtEQMDGGDNF8bkfpD5N1b/FCwt7A3wrU4t1o/e/85Wzkluh6JlODCjqVESYCkQCdTXqZ9G7VFg==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.9.1: + resolution: {integrity: sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.1: + resolution: {integrity: sha512-ghj2DSK/2e99a1anTVPCV4m4YIYtrbXhfM7V3D7XZLOTsybnYyaJloymGqssQc8l/or0UoDyRtNQkmkEF/ysgQ==} + + bare-stream@2.13.1: + resolution: {integrity: sha512-Vp0cnjYyrEC4whYTymQ+YZi6pBpfiICZO3cfRG8sy67ZNWe951urv1x4eW1BKNngw3U+3fPYb5JQvHbCtxH7Ow==} + peerDependencies: + bare-abort-controller: '*' + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.4.5: + resolution: {integrity: sha512-K+y9xF1tN+CdPu4qWwr0QiK1Al07eFPGYK5M2pDXcmHdMdgC/tT/bpmMe1hrmRHaidKLkXrC+cRNYf3XVDUhSQ==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -599,16 +791,30 @@ packages: resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} engines: {node: '>=4'} + binary@0.3.0: + resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==} + bottleneck@2.19.5: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} + brace-expansion@2.1.1: + resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + buffers@0.1.1: + resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==} + engines: {node: '>=0.2.0'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -625,12 +831,26 @@ packages: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} + chainsaw@0.1.0: + resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} + chardet@2.1.1: resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} clean-git-ref@2.0.1: resolution: {integrity: sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==} + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} + content-type@2.0.0: resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==} engines: {node: '>=18'} @@ -638,11 +858,18 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} hasBin: true + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} + cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -650,6 +877,15 @@ packages: dataloader@1.4.0: resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -677,6 +913,15 @@ packages: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + enquirer@2.4.1: resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} engines: {node: '>=8.6'} @@ -708,6 +953,9 @@ packages: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -722,10 +970,20 @@ packages: fast-content-type-parse@3.0.0: resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} + fast-xml-builder@1.2.0: + resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} + + fast-xml-parser@5.8.0: + resolution: {integrity: sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==} + hasBin: true + fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -750,6 +1008,10 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + fs-extra@7.0.1: resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} engines: {node: '>=6 <7 || >=8'} @@ -782,6 +1044,11 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} + glob@10.5.0: + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + hasBin: true + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -808,6 +1075,14 @@ packages: resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} engines: {node: '>= 0.4'} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} + human-id@4.1.3: resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} hasBin: true @@ -834,6 +1109,10 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -842,6 +1121,10 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + is-subdir@1.2.0: resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} engines: {node: '>=4'} @@ -854,6 +1137,9 @@ packages: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -865,6 +1151,9 @@ packages: engines: {node: '>=14.17'} hasBin: true + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + js-yaml@3.14.2: resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} hasBin: true @@ -879,6 +1168,14 @@ packages: jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + jwt-decode@4.0.0: + resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} + engines: {node: '>=18'} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} @@ -886,6 +1183,12 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash@4.18.1: + resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} @@ -908,16 +1211,35 @@ packages: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} minimisted@2.0.1: resolution: {integrity: sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -927,6 +1249,10 @@ packages: encoding: optional: true + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} @@ -961,6 +1287,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-manager-detector@0.2.11: resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} @@ -971,10 +1300,18 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + path-expression-matcher@1.5.0: + resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} + engines: {node: '>=14.0.0'} + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -1006,6 +1343,9 @@ packages: engines: {node: '>=10.13.0'} hasBin: true + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} @@ -1020,10 +1360,16 @@ packages: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@4.7.0: resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -1040,6 +1386,9 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -1097,6 +1446,20 @@ packages: std-env@4.1.0: resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} + streamx@2.27.0: + resolution: {integrity: sha512-WZ189TKnHoAokYHvwzaAQMpd55cgUmFIcJFzBSgGcb886jau5DL+XdDhTWV4ps3FLvk+OORp0dLRTPsLZ21CSA==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -1104,14 +1467,30 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} + strip-ansi@7.2.0: + resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} + engines: {node: '>=12'} + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strnum@2.3.0: + resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} + + tar-stream@3.2.0: + resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==} + + teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} + term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} + text-decoder@1.2.7: + resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -1146,6 +1525,9 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + traverse@0.3.9: + resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -1157,6 +1539,16 @@ packages: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} + typescript@3.9.10: + resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} + engines: {node: '>=4.2.0'} + hasBin: true + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + typescript@6.0.3: resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} @@ -1176,6 +1568,12 @@ packages: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} + unzip-stream@0.3.4: + resolution: {integrity: sha512-PyofABPVv+d7fL7GOpusx7eRT9YETY2X04PhwbSipdj6bMxVCFJrr+nm0Mxqbf9hUiTin/UsnuFWBXlDZFy0Cw==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + vite@8.0.13: resolution: {integrity: sha512-MFtjBYgzmSxmgA4RAfjIyXWpGe1oALnjgUTzzV7QLx/TKxCzjtMH6Fd9/eVK+5Fg1qNoz5VAwsmMs/NofrmJvw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1280,11 +1678,49 @@ packages: engines: {node: '>=8'} hasBin: true + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + xml-naming@0.1.0: + resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} + engines: {node: '>=16.0.0'} + + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + snapshots: + '@actions/artifact@6.2.1': + dependencies: + '@actions/core': 3.0.1 + '@actions/github': 9.1.1 + '@actions/http-client': 4.0.1 + '@azure/storage-blob': 12.32.0 + '@octokit/core': 7.0.6 + '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.6) + '@octokit/plugin-retry': 8.1.0(@octokit/core@7.0.6) + '@octokit/request': 10.0.9 + '@octokit/request-error': 7.1.0 + '@protobuf-ts/plugin': 2.11.1 + '@protobuf-ts/runtime': 2.11.1 + archiver: 7.0.1 + jwt-decode: 4.0.0 + unzip-stream: 0.3.4 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + - supports-color + '@actions/core@3.0.1': dependencies: '@actions/exec': 3.0.0 @@ -1316,8 +1752,131 @@ snapshots: '@actions/io@3.0.2': {} + '@azure/abort-controller@2.1.2': + dependencies: + tslib: 2.8.1 + + '@azure/core-auth@1.10.1': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-util': 1.13.1 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-client@1.10.2': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-auth': 1.10.1 + '@azure/core-rest-pipeline': 1.24.0 + '@azure/core-tracing': 1.3.1 + '@azure/core-util': 1.13.1 + '@azure/logger': 1.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-http-compat@2.4.0(@azure/core-client@1.10.2)(@azure/core-rest-pipeline@1.24.0)': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-client': 1.10.2 + '@azure/core-rest-pipeline': 1.24.0 + + '@azure/core-lro@2.7.2': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-util': 1.13.1 + '@azure/logger': 1.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-paging@1.6.2': + dependencies: + tslib: 2.8.1 + + '@azure/core-rest-pipeline@1.24.0': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-auth': 1.10.1 + '@azure/core-tracing': 1.3.1 + '@azure/core-util': 1.13.1 + '@azure/logger': 1.3.0 + '@typespec/ts-http-runtime': 0.3.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-tracing@1.3.1': + dependencies: + tslib: 2.8.1 + + '@azure/core-util@1.13.1': + dependencies: + '@azure/abort-controller': 2.1.2 + '@typespec/ts-http-runtime': 0.3.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/core-xml@1.5.1': + dependencies: + fast-xml-parser: 5.8.0 + tslib: 2.8.1 + + '@azure/logger@1.3.0': + dependencies: + '@typespec/ts-http-runtime': 0.3.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/storage-blob@12.32.0': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-auth': 1.10.1 + '@azure/core-client': 1.10.2 + '@azure/core-http-compat': 2.4.0(@azure/core-client@1.10.2)(@azure/core-rest-pipeline@1.24.0) + '@azure/core-lro': 2.7.2 + '@azure/core-paging': 1.6.2 + '@azure/core-rest-pipeline': 1.24.0 + '@azure/core-tracing': 1.3.1 + '@azure/core-util': 1.13.1 + '@azure/core-xml': 1.5.1 + '@azure/logger': 1.3.0 + '@azure/storage-common': 12.4.0(@azure/core-client@1.10.2) + events: 3.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/storage-common@12.4.0(@azure/core-client@1.10.2)': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-auth': 1.10.1 + '@azure/core-http-compat': 2.4.0(@azure/core-client@1.10.2)(@azure/core-rest-pipeline@1.24.0) + '@azure/core-rest-pipeline': 1.24.0 + '@azure/core-tracing': 1.3.1 + '@azure/core-util': 1.13.1 + '@azure/logger': 1.3.0 + events: 3.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - '@azure/core-client' + - supports-color + '@babel/runtime@7.29.2': {} + '@bufbuild/protobuf@2.12.0': {} + + '@bufbuild/protoplugin@2.12.0': + dependencies: + '@bufbuild/protobuf': 2.12.0 + '@typescript/vfs': 1.6.4(typescript@5.4.5) + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + '@changesets/apply-release-plan@7.1.1': dependencies: '@changesets/config': 3.1.4 @@ -1503,6 +2062,15 @@ snapshots: optionalDependencies: '@types/node': 24.12.4 + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.2.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + '@jridgewell/sourcemap-codec@1.5.5': {} '@manypkg/find-root@1.1.0': @@ -1528,6 +2096,8 @@ snapshots: '@tybys/wasm-util': 0.10.2 optional: true + '@nodable/entities@2.1.1': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1570,11 +2140,22 @@ snapshots: '@octokit/core': 7.0.6 '@octokit/types': 16.0.0 + '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.6)': + dependencies: + '@octokit/core': 7.0.6 + '@octokit/plugin-rest-endpoint-methods@17.0.0(@octokit/core@7.0.6)': dependencies: '@octokit/core': 7.0.6 '@octokit/types': 16.0.0 + '@octokit/plugin-retry@8.1.0(@octokit/core@7.0.6)': + dependencies: + '@octokit/core': 7.0.6 + '@octokit/request-error': 7.1.0 + '@octokit/types': 16.0.0 + bottleneck: 2.19.5 + '@octokit/plugin-throttling@11.0.3(@octokit/core@7.0.6)': dependencies: '@octokit/core': 7.0.6 @@ -1658,6 +2239,28 @@ snapshots: '@oxfmt/binding-win32-x64-msvc@0.48.0': optional: true + '@pkgjs/parseargs@0.11.0': + optional: true + + '@protobuf-ts/plugin@2.11.1': + dependencies: + '@bufbuild/protobuf': 2.12.0 + '@bufbuild/protoplugin': 2.12.0 + '@protobuf-ts/protoc': 2.11.1 + '@protobuf-ts/runtime': 2.11.1 + '@protobuf-ts/runtime-rpc': 2.11.1 + typescript: 3.9.10 + transitivePeerDependencies: + - supports-color + + '@protobuf-ts/protoc@2.11.1': {} + + '@protobuf-ts/runtime-rpc@2.11.1': + dependencies: + '@protobuf-ts/runtime': 2.11.1 + + '@protobuf-ts/runtime@2.11.1': {} + '@rolldown/binding-android-arm64@1.0.1': optional: true @@ -1735,6 +2338,21 @@ snapshots: '@types/semver@7.7.1': {} + '@typescript/vfs@1.6.4(typescript@5.4.5)': + dependencies: + debug: 4.4.3 + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color + + '@typespec/ts-http-runtime@0.3.6': + dependencies: + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + '@vitest/expect@4.1.6': dependencies: '@standard-schema/spec': 1.1.0 @@ -1780,10 +2398,44 @@ snapshots: dependencies: event-target-shim: 5.0.1 + agent-base@7.1.4: {} + ansi-colors@4.1.3: {} ansi-regex@5.0.1: {} + ansi-regex@6.2.2: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.3: {} + + archiver-utils@5.0.2: + dependencies: + glob: 10.5.0 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.18.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.6 + buffer-crc32: 1.0.0 + readable-stream: 4.7.0 + readdir-glob: 1.1.3 + tar-stream: 3.2.0 + zip-stream: 6.0.1 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -1796,10 +2448,48 @@ snapshots: async-lock@1.4.1: {} + async@3.2.6: {} + available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.1.0 + b4a@1.8.1: {} + + balanced-match@1.0.2: {} + + bare-events@2.9.1: {} + + bare-fs@4.7.2: + dependencies: + bare-events: 2.9.1 + bare-path: 3.0.1 + bare-stream: 2.13.1(bare-events@2.9.1) + bare-url: 2.4.5 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + bare-os@3.9.1: {} + + bare-path@3.0.1: + dependencies: + bare-os: 3.9.1 + + bare-stream@2.13.1(bare-events@2.9.1): + dependencies: + streamx: 2.27.0 + teex: 1.0.1 + optionalDependencies: + bare-events: 2.9.1 + transitivePeerDependencies: + - react-native-b4a + + bare-url@2.4.5: + dependencies: + bare-path: 3.0.1 + base64-js@1.5.1: {} before-after-hook@4.0.0: {} @@ -1808,17 +2498,30 @@ snapshots: dependencies: is-windows: 1.0.2 + binary@0.3.0: + dependencies: + buffers: 0.1.1 + chainsaw: 0.1.0 + bottleneck@2.19.5: {} + brace-expansion@2.1.1: + dependencies: + balanced-match: 1.0.2 + braces@3.0.3: dependencies: fill-range: 7.1.1 + buffer-crc32@1.0.0: {} + buffer@6.0.3: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + buffers@0.1.1: {} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -1838,16 +2541,41 @@ snapshots: chai@6.2.2: {} + chainsaw@0.1.0: + dependencies: + traverse: 0.3.9 + chardet@2.1.1: {} clean-git-ref@2.0.1: {} + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + content-type@2.0.0: {} convert-source-map@2.0.0: {} + core-util-is@1.0.3: {} + crc-32@1.2.2: {} + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.7.0 + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -1856,6 +2584,10 @@ snapshots: dataloader@1.4.0: {} + debug@4.4.3: + dependencies: + ms: 2.1.3 + decompress-response@6.0.0: dependencies: mimic-response: 3.1.0 @@ -1882,6 +2614,12 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 + eastasianwidth@0.2.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + enquirer@2.4.1: dependencies: ansi-colors: 4.1.3 @@ -1905,6 +2643,12 @@ snapshots: event-target-shim@5.0.1: {} + events-universal@1.0.1: + dependencies: + bare-events: 2.9.1 + transitivePeerDependencies: + - bare-abort-controller + events@3.3.0: {} expect-type@1.3.0: {} @@ -1913,6 +2657,8 @@ snapshots: fast-content-type-parse@3.0.0: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1921,6 +2667,19 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 + fast-xml-builder@1.2.0: + dependencies: + path-expression-matcher: 1.5.0 + xml-naming: 0.1.0 + + fast-xml-parser@5.8.0: + dependencies: + '@nodable/entities': 2.1.1 + fast-xml-builder: 1.2.0 + path-expression-matcher: 1.5.0 + strnum: 2.3.0 + xml-naming: 0.1.0 + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -1942,6 +2701,11 @@ snapshots: dependencies: is-callable: 1.2.7 + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + fs-extra@7.0.1: dependencies: graceful-fs: 4.2.11 @@ -1983,6 +2747,15 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@10.5.0: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.9 + minipass: 7.1.3 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -2010,6 +2783,20 @@ snapshots: dependencies: function-bind: 1.1.2 + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.4 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + human-id@4.1.3: {} iconv-lite@0.7.2: @@ -2026,12 +2813,16 @@ snapshots: is-extglob@2.1.1: {} + is-fullwidth-code-point@3.0.0: {} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 is-number@7.0.0: {} + is-stream@2.0.1: {} + is-subdir@1.2.0: dependencies: better-path-resolve: 1.0.0 @@ -2042,6 +2833,8 @@ snapshots: is-windows@1.0.2: {} + isarray@1.0.0: {} + isarray@2.0.5: {} isexe@2.0.0: {} @@ -2060,6 +2853,12 @@ snapshots: sha.js: 2.4.12 simple-get: 4.0.1 + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + js-yaml@3.14.2: dependencies: argparse: 1.0.10 @@ -2075,12 +2874,22 @@ snapshots: optionalDependencies: graceful-fs: 4.2.11 + jwt-decode@4.0.0: {} + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + locate-path@5.0.0: dependencies: p-locate: 4.1.0 lodash.startcase@4.4.0: {} + lodash@4.18.1: {} + + lru-cache@10.4.3: {} + magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -2098,18 +2907,36 @@ snapshots: mimic-response@3.1.0: {} + minimatch@5.1.9: + dependencies: + brace-expansion: 2.1.1 + + minimatch@9.0.9: + dependencies: + brace-expansion: 2.1.1 + minimist@1.2.8: {} minimisted@2.0.1: dependencies: minimist: 1.2.8 + minipass@7.1.3: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + mri@1.2.0: {} + ms@2.1.3: {} + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 + normalize-path@3.0.0: {} + obug@2.1.1: {} once@1.4.0: @@ -2158,6 +2985,8 @@ snapshots: p-try@2.2.0: {} + package-json-from-dist@1.0.1: {} + package-manager-detector@0.2.11: dependencies: quansync: 0.2.11 @@ -2166,8 +2995,15 @@ snapshots: path-exists@4.0.0: {} + path-expression-matcher@1.5.0: {} + path-key@3.1.1: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.3 + path-type@4.0.0: {} pathe@2.0.3: {} @@ -2184,6 +3020,8 @@ snapshots: prettier@2.8.8: {} + process-nextick-args@2.0.1: {} + process@0.11.10: {} quansync@0.2.11: {} @@ -2197,6 +3035,16 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + readable-stream@4.7.0: dependencies: abort-controller: 3.0.0 @@ -2205,6 +3053,10 @@ snapshots: process: 0.11.10 string_decoder: 1.3.0 + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.9 + resolve-from@5.0.0: {} reusify@1.1.0: {} @@ -2234,6 +3086,8 @@ snapshots: dependencies: queue-microtask: 1.2.3 + safe-buffer@5.1.2: {} + safe-buffer@5.2.1: {} safer-buffer@2.1.2: {} @@ -2286,6 +3140,31 @@ snapshots: std-env@4.1.0: {} + streamx@2.27.0: + dependencies: + events-universal: 1.0.1 + fast-fifo: 1.3.2 + text-decoder: 1.2.7 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.2.0 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -2294,10 +3173,40 @@ snapshots: dependencies: ansi-regex: 5.0.1 + strip-ansi@7.2.0: + dependencies: + ansi-regex: 6.2.2 + strip-bom@3.0.0: {} + strnum@2.3.0: {} + + tar-stream@3.2.0: + dependencies: + b4a: 1.8.1 + bare-fs: 4.7.2 + fast-fifo: 1.3.2 + streamx: 2.27.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + + teex@1.0.1: + dependencies: + streamx: 2.27.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + term-size@2.2.1: {} + text-decoder@1.2.7: + dependencies: + b4a: 1.8.1 + transitivePeerDependencies: + - react-native-b4a + tinybench@2.9.0: {} tinyexec@1.2.4: {} @@ -2328,8 +3237,9 @@ snapshots: tr46@0.0.3: {} - tslib@2.8.1: - optional: true + traverse@0.3.9: {} + + tslib@2.8.1: {} tunnel@0.0.6: {} @@ -2339,6 +3249,10 @@ snapshots: es-errors: 1.3.0 is-typed-array: 1.1.15 + typescript@3.9.10: {} + + typescript@5.4.5: {} + typescript@6.0.3: {} undici-types@7.16.0: {} @@ -2349,6 +3263,13 @@ snapshots: universalify@0.1.2: {} + unzip-stream@0.3.4: + dependencies: + binary: 0.3.0 + mkdirp: 0.5.6 + + util-deprecate@1.0.2: {} + vite@8.0.13(@types/node@24.12.4): dependencies: picomatch: 4.0.4 @@ -2411,4 +3332,24 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.3 + string-width: 5.1.2 + strip-ansi: 7.2.0 + wrappy@1.0.2: {} + + xml-naming@0.1.0: {} + + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.7.0 diff --git a/publish/README.md b/publish/README.md new file mode 100644 index 00000000..2850488a --- /dev/null +++ b/publish/README.md @@ -0,0 +1,3 @@ +# changesets/action/publish + +TODO diff --git a/publish/action.yml b/publish/action.yml new file mode 100644 index 00000000..b90c0c54 --- /dev/null +++ b/publish/action.yml @@ -0,0 +1,29 @@ +name: Changesets - Publish +description: Publish packages to npm +runs: + using: node24 + main: ../dist/publish.js +inputs: + github-token: + description: "The GitHub token to use for authentication. Defaults to the GitHub-provided token." + required: false + default: ${{ github.token }} + script: + description: "The command to use to publish packages" + required: false + pack-dir-artifact-id: + description: "Artifact id for packed publish output generated by the pack subaction" + required: false + create-github-releases: + description: "Whether to create Github releases after publish" + required: false + default: true +outputs: + published: + description: "A boolean value to indicate whether a publishing has happened or not" + published-packages: + description: > + A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` +branding: + icon: package + color: blue diff --git a/rolldown.config.js b/rolldown.config.js index 814f4f4b..07ed44c4 100644 --- a/rolldown.config.js +++ b/rolldown.config.js @@ -3,8 +3,12 @@ import { defineConfig } from "rolldown"; export default defineConfig({ input: { index: "src/index.ts", - ["pr-status"]: "src/pr-status/index.ts", - ["pr-comment"]: "src/pr-comment/index.ts", + pack: "src/pack/index.ts", + "pr-status": "src/pr-status/index.ts", + "pr-comment": "src/pr-comment/index.ts", + "select-mode": "src/select-mode/index.ts", + version: "src/version/index.ts", + publish: "src/publish/index.ts", }, output: { dir: "dist", diff --git a/select-mode/README.md b/select-mode/README.md new file mode 100644 index 00000000..f741cc8c --- /dev/null +++ b/select-mode/README.md @@ -0,0 +1,3 @@ +# changesets/action/select-mode + +TODO diff --git a/select-mode/action.yml b/select-mode/action.yml new file mode 100644 index 00000000..c03d8a2c --- /dev/null +++ b/select-mode/action.yml @@ -0,0 +1,14 @@ +name: Changesets - Select Mode +description: Whether to version or publish in the current repo state +runs: + using: node24 + main: ../dist/select-mode.js +inputs: {} +outputs: + mode: + description: "The mode to use for the current repo state: 'version', 'publish', or 'none'." + publish-plan-artifact-id: + description: "Artifact id for the generated publish plan when mode is `publish`" +branding: + icon: package + color: blue diff --git a/src/pack/index.ts b/src/pack/index.ts new file mode 100644 index 00000000..715fcfb3 --- /dev/null +++ b/src/pack/index.ts @@ -0,0 +1,82 @@ +import fs from "node:fs/promises"; +import os from "node:os"; +import path from "node:path"; +import artifact from "@actions/artifact"; +import * as core from "@actions/core"; +import { downloadArtifact, execChangesetsCli } from "../utils.ts"; + +try { + await main(); +} catch (err) { + core.setFailed((err as Error).message); +} + +async function main() { + const publishPlanArtifactId = core.getInput("publish-plan-artifact-id"); + + // If the user needs to change the cwd, set `working-directory` in the step instead + const cwd = process.cwd(); + const tmpDir = process.env.RUNNER_TEMP ?? (await fs.realpath(os.tmpdir())); + const outDir = path.join(tmpDir, `changeset-pack-${Date.now()}`); + + await pack(cwd, { + outDir, + publishPlanPath: publishPlanArtifactId + ? await downloadPublishPlanArtifact(tmpDir, Number(publishPlanArtifactId)) + : undefined, + }); + + const packDirArtifact = await artifact.uploadArtifact( + `changeset-pack-${Date.now()}`, + await getFiles(outDir), + outDir, + { + retentionDays: 30, + }, + ); + if (packDirArtifact.id === undefined) { + throw new Error("Packed artifact upload did not return an artifact id"); + } + core.setOutput("pack-dir-artifact-id", String(packDirArtifact.id)); +} + +async function pack( + cwd: string, + args: { + outDir: string; + publishPlanPath?: string; + }, +) { + const cliArgs = ["pack", "--out-dir", args.outDir]; + if (args.publishPlanPath) { + cliArgs.push("--from-plan", args.publishPlanPath); + } + + await execChangesetsCli(cliArgs, { + cwd, + env: process.env, + }); +} + +async function downloadPublishPlanArtifact(tmpDir: string, artifactId: number) { + const downloadPath = await downloadArtifact( + tmpDir, + artifactId, + "changeset-publish-plan", + ); + return path.join(downloadPath, "publish-plan.json"); +} + +async function getFiles(dir: string): Promise { + const entries = await fs.readdir(dir, { withFileTypes: true }); + const files = await Promise.all( + entries.map(async (entry) => { + const entryPath = path.join(dir, entry.name); + if (entry.isDirectory()) { + return getFiles(entryPath); + } + return [entryPath]; + }), + ); + return files.flat(); +} diff --git a/src/publish/index.ts b/src/publish/index.ts new file mode 100644 index 00000000..6ed399e3 --- /dev/null +++ b/src/publish/index.ts @@ -0,0 +1,67 @@ +import fs from "node:fs/promises"; +import os from "node:os"; +import * as core from "@actions/core"; +import { Git } from "../git.ts"; +import { setupOctokit } from "../octokit.ts"; +import { runPublish } from "../run.ts"; +import { downloadArtifact } from "../utils.ts"; + +try { + await main(); +} catch (err) { + core.setFailed((err as Error).message); +} + +async function main() { + const githubToken = core.getInput("github-token", { required: true }); + const script = core.getInput("script"); + const packDirArtifactId = core.getInput("pack-dir-artifact-id"); + const createGithubReleases = core.getBooleanInput("create-github-releases"); + + // If the user needs to change the cwd, set `working-directory` in the step instead + const cwd = process.cwd(); + + const octokit = setupOctokit(githubToken); + // NOTE: Always pass octokit here as publish does not need a commit-mode + const git = new Git({ octokit, cwd }); + + const fromPackDir = packDirArtifactId + ? await downloadArtifact( + process.env.RUNNER_TEMP ?? (await fs.realpath(os.tmpdir())), + Number(packDirArtifactId), + "changeset-pack", + ) + : undefined; + + const result = await runPublish({ + script, + githubToken, + git, + octokit, + createGithubReleases, + cwd, + fromPackDir, + }); + + if (result.published) { + core.setOutput("published", "true"); + core.setOutput( + "published-packages", + JSON.stringify(result.publishedPackages), + ); + } else { + core.setOutput("published", "false"); + } + + if (result.exitCode !== 0) { + throw new Error( + `Publish command exited with code ${result.exitCode}${ + result.published + ? `, but some packages were published: ${result.publishedPackages + .map((p) => `${p.name}@${p.version}`) + .join(", ")}` + : "" + }`, + ); + } +} diff --git a/src/run.ts b/src/run.ts index 5f91d7af..599eeaaf 100644 --- a/src/run.ts +++ b/src/run.ts @@ -1,8 +1,12 @@ import fs from "node:fs/promises"; -import { createRequire } from "node:module"; import path from "node:path"; import * as core from "@actions/core"; -import { exec, getExecOutput } from "@actions/exec"; +import { + exec, + getExecOutput, + type ExecOptions, + type ExecOutput, +} from "@actions/exec"; import * as github from "@actions/github"; import type { PreState } from "@changesets/types"; import { type Package, getPackages } from "@manypkg/get-packages"; @@ -10,15 +14,15 @@ import { Git } from "./git.ts"; import type { Octokit } from "./octokit.ts"; import readChangesetState from "./readChangesetState.ts"; import { + execChangesetsCli, getChangedPackages, getChangelogEntry, + getExecOutputChangesetsCli, getVersionsByDirectory, isErrorWithCode, sortTheThings, } from "./utils.ts"; -const require = createRequire(import.meta.url); - // GitHub Issues/PRs messages have a max size limit on the // message body payload. // `body is too long (maximum is 65536 characters)`. @@ -58,7 +62,8 @@ const createRelease = async ( }; type PublishOptions = { - script: string; + script?: string; + fromPackDir?: string; githubToken: string; octokit: Octokit; createGithubReleases: boolean; @@ -81,17 +86,36 @@ type PublishResult = export async function runPublish({ script, + fromPackDir, githubToken, git, octokit, createGithubReleases, cwd, }: PublishOptions): Promise { - let changesetPublishOutput = await getExecOutput(script, undefined, { + let changesetPublishOutput: ExecOutput; + const execOptions: ExecOptions = { cwd, ignoreReturnCode: true, env: { ...process.env, GITHUB_TOKEN: githubToken }, - }); + }; + + if (script) { + changesetPublishOutput = await getExecOutput( + script, + undefined, + execOptions, + ); + } else { + const args = ["publish"]; + if (fromPackDir) { + args.push("--from-pack-dir", fromPackDir); + } + changesetPublishOutput = await getExecOutputChangesetsCli( + args, + execOptions, + ); + } let { packages, tool } = await getPackages(cwd); let releasedPackages: Package[] = []; @@ -277,19 +301,7 @@ export async function runVersion({ if (script) { await exec(script, undefined, { cwd, env }); } else { - await exec( - "node", - [ - require.resolve("@changesets/cli/bin.js", { - paths: [cwd], - }), - "version", - ], - { - cwd, - env, - }, - ); + await execChangesetsCli(["version"], { cwd, env }); } let changedPackages = await getChangedPackages(cwd, versionsByDirectory); diff --git a/src/select-mode/index.ts b/src/select-mode/index.ts new file mode 100644 index 00000000..3fb1bc33 --- /dev/null +++ b/src/select-mode/index.ts @@ -0,0 +1,117 @@ +import fs from "node:fs/promises"; +import os from "node:os"; +import path from "node:path"; +import artifact from "@actions/artifact"; +import * as core from "@actions/core"; +import readChangesetState from "../readChangesetState.ts"; +import { execChangesetsCli } from "../utils.ts"; + +type ModeResult = + | { + mode: "none"; + } + | { + mode: "version"; + } + | { + mode: "publish"; + publishPlanPath: string; + }; + +type PublishPlan = unknown[]; + +try { + await main(); +} catch (err) { + core.setFailed((err as Error).message); +} + +async function main() { + const result = await getMode(); + core.setOutput("mode", result.mode); + if (result.mode === "publish") { + const publishPlanArtifact = await artifact.uploadArtifact( + path.basename(result.publishPlanPath, ".json"), + [result.publishPlanPath], + path.dirname(result.publishPlanPath), + { + skipArchive: true, + retentionDays: 30, + }, + ); + if (publishPlanArtifact.id === undefined) { + throw new Error( + "Publish plan artifact upload did not return an artifact id", + ); + } + core.setOutput("publish-plan-artifact-id", String(publishPlanArtifact.id)); + } +} + +async function getMode(): Promise { + const { changesets } = await readChangesetState(); + + if (changesets.length > 0) { + const hasNonEmptyChangesets = changesets.some( + (changeset) => changeset.releases.length > 0, + ); + if (hasNonEmptyChangesets) { + return { mode: "version" }; + } + return { mode: "none" }; + } + + const cwd = process.cwd(); + const publishPlanPath = path.join( + process.env.RUNNER_TEMP ?? (await fs.realpath(os.tmpdir())), + `changeset-publish-plan-${Date.now()}.json`, + ); + await execChangesetsCli(["publish-plan", "--output", publishPlanPath], { + cwd, + env: process.env, + }); + + const publishPlan = await readPublishPlan(publishPlanPath); + if (publishPlan.length === 0) { + return { mode: "none" }; + } + + return { + mode: "publish", + publishPlanPath, + }; +} + +async function readPublishPlan(publishPlanPath: string): Promise { + let rawPlan: string; + try { + rawPlan = await fs.readFile(publishPlanPath, "utf8"); + } catch (err) { + throw new Error(`Failed to read publish plan at ${publishPlanPath}`, { + cause: err, + }); + } + + let plan: unknown; + try { + plan = JSON.parse(rawPlan); + } catch (err) { + throw new Error(`Failed to parse publish plan at ${publishPlanPath}`, { + cause: err, + }); + } + + if ( + typeof plan !== "object" || + plan === null || + !("version" in plan) || + typeof plan.version !== "number" || + !("plan" in plan) || + !Array.isArray(plan.plan) + ) { + throw new Error( + `Invalid publish plan at ${publishPlanPath}: expected { version: number; plan: unknown[] }`, + ); + } + return plan.plan; +} diff --git a/src/utils.ts b/src/utils.ts index 76e756c2..e21b2379 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,6 +1,17 @@ import fs from "node:fs/promises"; +import { createRequire } from "node:module"; +import path from "node:path"; +import artifact from "@actions/artifact"; +import { + exec, + getExecOutput, + type ExecOptions as ActionsExecOptions, + type ExecOutput, +} from "@actions/exec"; import { getPackages, type Package } from "@manypkg/get-packages"; +const require = createRequire(import.meta.url); + export const BumpLevels = { dep: 0, patch: 1, @@ -111,3 +122,57 @@ export function fileExists(filePath: string) { () => false, ); } + +function resolveChangesetsCli(cwd: string) { + return require.resolve("@changesets/cli/bin.js", { + paths: [cwd], + }); +} + +interface ExecOptions extends Omit { + env?: Record; +} + +export function execChangesetsCli(args: string[], options?: ExecOptions) { + return exec( + "node", + [resolveChangesetsCli(options?.cwd ?? process.cwd()), ...args], + options as ActionsExecOptions, + ); +} + +export function getExecOutputChangesetsCli( + args: string[], + options?: ExecOptions, +): Promise { + return getExecOutput( + "node", + [resolveChangesetsCli(options?.cwd ?? process.cwd()), ...args], + options as ActionsExecOptions, + ); +} + +export async function downloadArtifact( + tmpDir: string, + artifactId: number, + name: string, +) { + if (!Number.isInteger(artifactId) || artifactId <= 0) { + throw new Error( + `Invalid ${JSON.stringify(name)} artifact id: ${artifactId}`, + ); + } + + const downloadPath = path.join(tmpDir, `${name}-${artifactId}-${Date.now()}`); + const result = await artifact.downloadArtifact(artifactId, { + path: downloadPath, + }); + + if (!result.downloadPath) { + throw new Error( + `${JSON.stringify(name)} artifact download did not return a path for artifact ${artifactId}`, + ); + } + + return result.downloadPath; +} diff --git a/src/version/index.ts b/src/version/index.ts new file mode 100644 index 00000000..1cf8f552 --- /dev/null +++ b/src/version/index.ts @@ -0,0 +1,56 @@ +import * as core from "@actions/core"; +import { Git } from "../git.ts"; +import { setupOctokit } from "../octokit.ts"; +import { runVersion } from "../run.ts"; + +try { + await main(); +} catch (err) { + core.setFailed((err as Error).message); +} + +async function main() { + const githubToken = core.getInput("github-token", { required: true }); + const script = core.getInput("script"); + const commitMessage = core.getInput("commit-message", { required: true }); + const prTitle = core.getInput("pr-title", { required: true }); + const prDraft = core.getInput("pr-draft") || undefined; + const prBaseBranch = core.getInput("pr-base-branch"); + const commitMode = core.getInput("commit-mode") || "git-cli"; + const setupGitUser = core.getBooleanInput("setup-git-user"); + + // Validations + if (prDraft !== undefined && prDraft !== "always" && prDraft !== "create") { + throw new Error(`Invalid pr-draft input: ${prDraft}`); + } + + // If the user needs to change the cwd, set `working-directory` in the step instead + const cwd = process.cwd(); + + const octokit = setupOctokit(githubToken); + const git = new Git({ + octokit: commitMode === "github-api" ? octokit : undefined, + cwd, + }); + + if (setupGitUser) { + core.info("setting git user"); + await git.setupUser(); + } + + const { pullRequestNumber } = await runVersion({ + script, + githubToken, + git, + octokit, + cwd, + prTitle, + commitMessage, + // TODO: Use neutral message for PR description + hasPublishScript: true, + prDraft, + branch: prBaseBranch, + }); + + core.setOutput("pr-number", String(pullRequestNumber)); +} diff --git a/version/README.md b/version/README.md new file mode 100644 index 00000000..f0efb2bb --- /dev/null +++ b/version/README.md @@ -0,0 +1,3 @@ +# changesets/action/version + +TODO diff --git a/version/action.yml b/version/action.yml new file mode 100644 index 00000000..d800c71a --- /dev/null +++ b/version/action.yml @@ -0,0 +1,43 @@ +name: Changesets - Version +description: Version packages +runs: + using: node24 + main: ../dist/version.js +inputs: + github-token: + description: "The GitHub token to use for authentication. Defaults to the GitHub-provided token." + required: false + default: ${{ github.token }} + script: + description: "The command to use to publish packages" + required: false + commit-message: + description: "The commit message. Default to `Version Packages`" + required: false + default: "Version Packages" + pr-title: + description: "The pull request title. Default to `Version Packages`" + required: false + default: "Version Packages" + pr-draft: + description: "Controls draft PR behavior. Use 'create' to create new version PRs as draft, or 'always' to also convert existing version PRs back to draft when updating them." + required: false + pr-base-branch: + description: "Sets the base branch of the PR. Defaults to `github.ref_name`." + required: false + commit-mode: + description: > + An enum to specify the commit mode. Use "git-cli" to push changes using the Git CLI, + or "github-api" to push changes via the GitHub API. When using "github-api", + all commits and tags are signed using GitHub's GPG key and attributed to the user + or app who owns the GITHUB_TOKEN. + required: false + default: "git-cli" + setup-git-user: + description: Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` + required: false + default: true +outputs: {} +branding: + icon: package + color: blue From 5210f6da6848db14a75924eb808e47045e07edd0 Mon Sep 17 00:00:00 2001 From: "changesets-org-version-bot[bot]" <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> Date: Tue, 23 Jun 2026 06:56:02 +0000 Subject: [PATCH 11/62] Version Packages (next) (#660) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Version Packages (next) * fmt --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Mateusz Burzyński --- .changeset/pre.json | 2 +- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index c212be51..b7c81295 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -4,5 +4,5 @@ "initialVersions": { "@changesets/action": "1.9.0" }, - "changesets": [] + "changesets": ["eight-clocks-pull", "eighty-doors-swim", "lemon-turtles-itch"] } diff --git a/CHANGELOG.md b/CHANGELOG.md index c416dc78..abe84804 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # @changesets/action +## 2.0.0-next.0 + +### Major Changes + +- [#657](https://github.com/changesets/action/pull/657) [`4f718b5`](https://github.com/changesets/action/commit/4f718b5921490b1efeb015a81abb6a4633892851) Thanks [@Andarist](https://github.com/Andarist)! - Removed compatibility support for old Changesets v1. + +- [#659](https://github.com/changesets/action/pull/659) [`5649ff4`](https://github.com/changesets/action/commit/5649ff41b8eb1b7a281011e45df781c6d4628fd0) Thanks [@bluwy](https://github.com/bluwy)! - Remove `cwd` option for `changesets/action`. Use the step `working-directory` option instead to change the directory. + +### Minor Changes + +- [#656](https://github.com/changesets/action/pull/656) [`a12d90d`](https://github.com/changesets/action/commit/a12d90de8394e63c952622b2fd3f98c8729c48b0) Thanks [@bluwy](https://github.com/bluwy)! - Add new `/select-mode`, `/version`, and `/publish` sub-actions to better control version and publish steps + ## 1.9.0 ### Minor Changes diff --git a/package.json b/package.json index df2e40a0..08e05946 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@changesets/action", - "version": "1.9.0", + "version": "2.0.0-next.0", "license": "MIT", "type": "module", "main": "dist/index.js", From dad5baf18b70c13a1160479bfb6b3ec78a5a7b14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 23 Jun 2026 09:31:13 +0200 Subject: [PATCH 12/62] Pass the publishing app token to the release step (#661) --- .github/workflows/publish.yml | 2 +- .github/workflows/release-pr.yml | 9 ++++++++ scripts/release-pr.ts | 25 ++++++++++++++++------ scripts/release.ts | 36 +++++++++++++++++++++++++------- 4 files changed, 57 insertions(+), 15 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 59f74683..bb8ca1a9 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -73,7 +73,6 @@ jobs: uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - token: ${{ steps.app-token.outputs.token }} - uses: ./.github/actions/ci-setup with: @@ -85,4 +84,5 @@ jobs: - name: Publish to marketplace uses: ./ with: + github-token: ${{ steps.app-token.outputs.token }} publish: pnpm release diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 4a42efb0..6f71c1c5 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -122,6 +122,13 @@ jobs: pull-requests: write # to comment on the pull request with the release result (changesets/action) steps: + - uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 + id: app-token + with: + client-id: ${{ vars.APP_CLIENT_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + permission-contents: write # to push the release snapshot branch (release-pr.ts) + - name: Check out repo uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: @@ -173,6 +180,8 @@ jobs: - name: Release snapshot version run: pnpm release:pr + env: + GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} - name: Add success reaction run: gh api "/repos/$GH_REPO/issues/comments/$COMMENT_ID/reactions" -f content='rocket' diff --git a/scripts/release-pr.ts b/scripts/release-pr.ts index 715bdff8..68b8264a 100644 --- a/scripts/release-pr.ts +++ b/scripts/release-pr.ts @@ -1,9 +1,21 @@ +import { Buffer } from "node:buffer"; import path from "node:path"; import { exec } from "@actions/exec"; import pkgJson from "../package.json" with { type: "json" }; const tag = `v${pkgJson.version}`; const releaseLine = "pr-release"; +const githubToken = process.env.GITHUB_TOKEN; +if (!githubToken) { + throw new Error("GITHUB_TOKEN is required"); +} +const basic = Buffer.from(`x-access-token:${githubToken}`).toString("base64"); +const gitEnv = { + ...process.env, + GIT_CONFIG_COUNT: "1", + GIT_CONFIG_KEY_0: "http.https://github.com/.extraheader", + GIT_CONFIG_VALUE_0: `AUTHORIZATION: basic ${basic}`, +}; process.chdir(path.join(import.meta.dirname, "..")); @@ -11,9 +23,10 @@ await exec("git", ["checkout", "--detach"]); await exec("git", ["add", "--force", "dist"]); await exec("git", ["commit", "-m", tag]); -await exec("git", [ - "push", - "--force", - "origin", - `HEAD:refs/heads/${releaseLine}`, -]); +await exec( + "git", + ["push", "--force", "origin", `HEAD:refs/heads/${releaseLine}`], + { + env: gitEnv, + }, +); diff --git a/scripts/release.ts b/scripts/release.ts index 314319f0..a8304efc 100644 --- a/scripts/release.ts +++ b/scripts/release.ts @@ -1,3 +1,4 @@ +import { Buffer } from "node:buffer"; import path from "node:path"; import { exec, getExecOutput } from "@actions/exec"; import pkgJson from "../package.json" with { type: "json" }; @@ -5,6 +6,17 @@ import pkgJson from "../package.json" with { type: "json" }; const tag = `v${pkgJson.version}`; const releaseLine = `v${pkgJson.version.split(".")[0]}`; const isPrerelease = pkgJson.version.includes("-"); +const githubToken = process.env.GITHUB_TOKEN; +if (!githubToken) { + throw new Error("GITHUB_TOKEN is required"); +} +const basic = Buffer.from(`x-access-token:${githubToken}`).toString("base64"); +const gitEnv = { + ...process.env, + GIT_CONFIG_COUNT: "1", + GIT_CONFIG_KEY_0: "http.https://github.com/.extraheader", + GIT_CONFIG_VALUE_0: `AUTHORIZATION: basic ${basic}`, +}; process.chdir(path.join(import.meta.dirname, "..")); @@ -33,15 +45,23 @@ process.chdir(path.join(import.meta.dirname, "..")); await exec("changeset", ["tag"]); if (isPrerelease) { - await exec("git", ["push", "origin", `refs/tags/${tag}`]); + await exec("git", ["push", "origin", `refs/tags/${tag}`], { + env: gitEnv, + }); return; } - await exec("git", [ - "push", - "--force", - "--follow-tags", - "origin", - `HEAD:refs/heads/${releaseLine}`, - ]); + await exec( + "git", + [ + "push", + "--force", + "--follow-tags", + "origin", + `HEAD:refs/heads/${releaseLine}`, + ], + { + env: gitEnv, + }, + ); })(); From 5c88881fff1f0d8b055d4a2d3a74a8ce843db6f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 23 Jun 2026 11:25:48 +0200 Subject: [PATCH 13/62] Fixed usage of `--from-publish-plan` flag used by the `/pack` subaction (#662) --- .changeset/ready-mangos-boil.md | 5 +++++ src/pack/index.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/ready-mangos-boil.md diff --git a/.changeset/ready-mangos-boil.md b/.changeset/ready-mangos-boil.md new file mode 100644 index 00000000..d4b0bd27 --- /dev/null +++ b/.changeset/ready-mangos-boil.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Fixed usage of `--from-publish-plan` flag used by the `/pack` subaction diff --git a/src/pack/index.ts b/src/pack/index.ts index 715fcfb3..e8c5b443 100644 --- a/src/pack/index.ts +++ b/src/pack/index.ts @@ -49,7 +49,7 @@ async function pack( ) { const cliArgs = ["pack", "--out-dir", args.outDir]; if (args.publishPlanPath) { - cliArgs.push("--from-plan", args.publishPlanPath); + cliArgs.push("--from-publish-plan", args.publishPlanPath); } await execChangesetsCli(cliArgs, { From cf37561cd9e8ed40254e8f1610de80da0bfdf173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 23 Jun 2026 11:55:13 +0200 Subject: [PATCH 14/62] Fix description of the `/version`'s `script` input (#665) --- version/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version/action.yml b/version/action.yml index d800c71a..752f04a0 100644 --- a/version/action.yml +++ b/version/action.yml @@ -9,7 +9,7 @@ inputs: required: false default: ${{ github.token }} script: - description: "The command to use to publish packages" + description: "The command to use to version packages" required: false commit-message: description: "The commit message. Default to `Version Packages`" From ccb38113eaaa4a13eb6aabe09520e49cc8519b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 23 Jun 2026 12:00:39 +0200 Subject: [PATCH 15/62] Fix the computed publish plan path passed internally to `changeset pack` by the `/pack` subaction (#663) * Fix the computed publish plan path passed internally to `changeset pack` by the `/pack` subaction * fix it --- .changeset/all-cars-grin.md | 5 +++++ src/select-mode/index.ts | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/all-cars-grin.md diff --git a/.changeset/all-cars-grin.md b/.changeset/all-cars-grin.md new file mode 100644 index 00000000..17af9a37 --- /dev/null +++ b/.changeset/all-cars-grin.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Fix the computed publish plan path passed internally to `changeset pack` by the `/pack` subaction. diff --git a/src/select-mode/index.ts b/src/select-mode/index.ts index 3fb1bc33..00e191d4 100644 --- a/src/select-mode/index.ts +++ b/src/select-mode/index.ts @@ -64,7 +64,9 @@ async function getMode(): Promise { const cwd = process.cwd(); const publishPlanPath = path.join( process.env.RUNNER_TEMP ?? (await fs.realpath(os.tmpdir())), - `changeset-publish-plan-${Date.now()}.json`, + `changeset-publish-plan-${Date.now()}`, + // we need a stable filename here (in a unique dirname) so the artifact download can find this cleanly + "publish-plan.json", ); await execChangesetsCli(["publish-plan", "--output", publishPlanPath], { cwd, From dc29b738b532d9e95f46b9bf493e2e3fdf48a7ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 23 Jun 2026 13:26:43 +0200 Subject: [PATCH 16/62] Fix the `/version` subaction to not crash on missing `pr-base-branch` input (#666) * use `getOptionalInput` consistently * introduce `getRequiredInput` * add changeset --- .changeset/silent-tips-dance.md | 5 +++++ src/index.ts | 5 +---- src/pack/index.ts | 8 ++++++-- src/pr-comment/index.ts | 7 ++++--- src/publish/index.ts | 12 ++++++++---- src/utils.ts | 12 ++++++++++++ src/version/index.ts | 15 ++++++++------- 7 files changed, 44 insertions(+), 20 deletions(-) create mode 100644 .changeset/silent-tips-dance.md diff --git a/.changeset/silent-tips-dance.md b/.changeset/silent-tips-dance.md new file mode 100644 index 00000000..24361f16 --- /dev/null +++ b/.changeset/silent-tips-dance.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Fix the `/version` subaction to not crash on missing `pr-base-branch` input. This input is meant to be optional. diff --git a/src/index.ts b/src/index.ts index 247e2920..99e5e49e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,13 +1,10 @@ import fs from "node:fs/promises"; -import path from "node:path"; import * as core from "@actions/core"; import { Git } from "./git.ts"; import { setupOctokit } from "./octokit.ts"; import readChangesetState from "./readChangesetState.ts"; import { runPublish, runVersion } from "./run.ts"; -import { fileExists } from "./utils.ts"; - -const getOptionalInput = (name: string) => core.getInput(name) || undefined; +import { fileExists, getOptionalInput } from "./utils.ts"; (async () => { // to maintain compatibility with workflows created before github-token input was introduced diff --git a/src/pack/index.ts b/src/pack/index.ts index e8c5b443..f52f5e8b 100644 --- a/src/pack/index.ts +++ b/src/pack/index.ts @@ -3,7 +3,11 @@ import os from "node:os"; import path from "node:path"; import artifact from "@actions/artifact"; import * as core from "@actions/core"; -import { downloadArtifact, execChangesetsCli } from "../utils.ts"; +import { + downloadArtifact, + execChangesetsCli, + getOptionalInput, +} from "../utils.ts"; try { await main(); @@ -12,7 +16,7 @@ try { } async function main() { - const publishPlanArtifactId = core.getInput("publish-plan-artifact-id"); + const publishPlanArtifactId = getOptionalInput("publish-plan-artifact-id"); // If the user needs to change the cwd, set `working-directory` in the step instead const cwd = process.cwd(); diff --git a/src/pr-comment/index.ts b/src/pr-comment/index.ts index f2803322..b54eb962 100644 --- a/src/pr-comment/index.ts +++ b/src/pr-comment/index.ts @@ -1,5 +1,6 @@ import * as core from "@actions/core"; import * as github from "@actions/github"; +import { getOptionalInput, getRequiredInput } from "../utils.ts"; type Octokit = ReturnType; type CreateCommentParams = NonNullable< @@ -23,9 +24,9 @@ async function main() { ); } - const githubToken = core.getInput("github-token", { required: true }); - const body = core.getInput("body", { required: true }); - const updateId = core.getInput("update-id"); + const githubToken = getRequiredInput("github-token"); + const body = getRequiredInput("body"); + const updateId = getOptionalInput("update-id"); const commentMarker = updateId ? getCommentMarker(updateId) : null; const commentBody = commentMarker ? `${commentMarker}\n\n${body}` : body; diff --git a/src/publish/index.ts b/src/publish/index.ts index 6ed399e3..d9653c0f 100644 --- a/src/publish/index.ts +++ b/src/publish/index.ts @@ -4,7 +4,11 @@ import * as core from "@actions/core"; import { Git } from "../git.ts"; import { setupOctokit } from "../octokit.ts"; import { runPublish } from "../run.ts"; -import { downloadArtifact } from "../utils.ts"; +import { + downloadArtifact, + getOptionalInput, + getRequiredInput, +} from "../utils.ts"; try { await main(); @@ -13,9 +17,9 @@ try { } async function main() { - const githubToken = core.getInput("github-token", { required: true }); - const script = core.getInput("script"); - const packDirArtifactId = core.getInput("pack-dir-artifact-id"); + const githubToken = getRequiredInput("github-token"); + const script = getOptionalInput("script"); + const packDirArtifactId = getOptionalInput("pack-dir-artifact-id"); const createGithubReleases = core.getBooleanInput("create-github-releases"); // If the user needs to change the cwd, set `working-directory` in the step instead diff --git a/src/utils.ts b/src/utils.ts index e21b2379..205eb5cf 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,6 +2,7 @@ import fs from "node:fs/promises"; import { createRequire } from "node:module"; import path from "node:path"; import artifact from "@actions/artifact"; +import * as core from "@actions/core"; import { exec, getExecOutput, @@ -123,6 +124,17 @@ export function fileExists(filePath: string) { ); } +export function getOptionalInput(name: string) { + // normalize empty string default return value of `core.getInput` to undefined + return core.getInput(name) || undefined; +} + +export function getRequiredInput(name: string) { + // it's just a small utility wrapper, mainly introduced for usage parity with our custom `getOptionalInput` + // note: `core.getBooleanInput` gets used directly as it already normalizes the return value nicely + return core.getInput(name, { required: true }); +} + function resolveChangesetsCli(cwd: string) { return require.resolve("@changesets/cli/bin.js", { paths: [cwd], diff --git a/src/version/index.ts b/src/version/index.ts index 1cf8f552..59f749ca 100644 --- a/src/version/index.ts +++ b/src/version/index.ts @@ -2,6 +2,7 @@ import * as core from "@actions/core"; import { Git } from "../git.ts"; import { setupOctokit } from "../octokit.ts"; import { runVersion } from "../run.ts"; +import { getOptionalInput, getRequiredInput } from "../utils.ts"; try { await main(); @@ -10,13 +11,13 @@ try { } async function main() { - const githubToken = core.getInput("github-token", { required: true }); - const script = core.getInput("script"); - const commitMessage = core.getInput("commit-message", { required: true }); - const prTitle = core.getInput("pr-title", { required: true }); - const prDraft = core.getInput("pr-draft") || undefined; - const prBaseBranch = core.getInput("pr-base-branch"); - const commitMode = core.getInput("commit-mode") || "git-cli"; + const githubToken = getRequiredInput("github-token"); + const script = getOptionalInput("script"); + const commitMessage = getRequiredInput("commit-message"); + const prTitle = getRequiredInput("pr-title"); + const prDraft = getOptionalInput("pr-draft"); + const prBaseBranch = getOptionalInput("pr-base-branch"); + const commitMode = getOptionalInput("commit-mode") ?? "git-cli"; const setupGitUser = core.getBooleanInput("setup-git-user"); // Validations From 04905189325845f674e3d468085dbf44effdee85 Mon Sep 17 00:00:00 2001 From: "changesets-org-version-bot[bot]" <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> Date: Tue, 23 Jun 2026 11:29:25 +0000 Subject: [PATCH 17/62] Version Packages (next) (#664) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/pre.json | 9 ++++++++- CHANGELOG.md | 10 ++++++++++ README.md | 10 +++++----- package.json | 2 +- 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index b7c81295..f2d1da42 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -4,5 +4,12 @@ "initialVersions": { "@changesets/action": "1.9.0" }, - "changesets": ["eight-clocks-pull", "eighty-doors-swim", "lemon-turtles-itch"] + "changesets": [ + "all-cars-grin", + "eight-clocks-pull", + "eighty-doors-swim", + "lemon-turtles-itch", + "ready-mangos-boil", + "silent-tips-dance" + ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index abe84804..af1ba2d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # @changesets/action +## 2.0.0-next.1 + +### Patch Changes + +- [#663](https://github.com/changesets/action/pull/663) [`ccb3811`](https://github.com/changesets/action/commit/ccb38113eaaa4a13eb6aabe09520e49cc8519b84) Thanks [@Andarist](https://github.com/Andarist)! - Fix the computed publish plan path passed internally to `changeset pack` by the `/pack` subaction. + +- [#662](https://github.com/changesets/action/pull/662) [`5c88881`](https://github.com/changesets/action/commit/5c88881fff1f0d8b055d4a2d3a74a8ce843db6f3) Thanks [@Andarist](https://github.com/Andarist)! - Fixed usage of `--from-publish-plan` flag used by the `/pack` subaction + +- [#666](https://github.com/changesets/action/pull/666) [`dc29b73`](https://github.com/changesets/action/commit/dc29b738b532d9e95f46b9bf493e2e3fdf48a7ed) Thanks [@Andarist](https://github.com/Andarist)! - Fix the `/version` subaction to not crash on missing `pr-base-branch` input. This input is meant to be optional. + ## 2.0.0-next.0 ### Major Changes diff --git a/README.md b/README.md index 50b0a2d6..24e37bab 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Create Release Pull Request - uses: changesets/action@v1 + uses: changesets/action@v2 ``` #### With Publishing @@ -103,7 +103,7 @@ jobs: - name: Create Release Pull Request or Publish to npm id: changesets - uses: changesets/action@v1 + uses: changesets/action@v2 with: # This expects you to have a script called release which does a build for your packages and calls changeset publish publish: pnpm release @@ -170,7 +170,7 @@ jobs: - name: Create Release Pull Request or Publish to npm id: changesets - uses: changesets/action@v1 + uses: changesets/action@v2 - name: Publish if: steps.changesets.outputs.hasChangesets == 'false' @@ -214,7 +214,7 @@ jobs: run: pnpm install --frozen-lockfile - name: Create Release Pull Request - uses: changesets/action@v1 + uses: changesets/action@v2 with: # this expects you to have a npm script called version that runs some logic and then calls `changeset version`. version: pnpm version @@ -225,7 +225,7 @@ jobs: If you are using [Yarn Plug'n'Play](https://yarnpkg.com/features/pnp), you should use a custom `version` command so that the action can resolve the `changeset` CLI: ```yaml -- uses: changesets/action@v1 +- uses: changesets/action@v2 with: version: yarn changeset version # ... diff --git a/package.json b/package.json index 08e05946..8c239f19 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@changesets/action", - "version": "2.0.0-next.0", + "version": "2.0.0-next.1", "license": "MIT", "type": "module", "main": "dist/index.js", From 5a8b9b721bf683e3bf9bd72ea92a685dc024147b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Wed, 24 Jun 2026 12:07:11 +0200 Subject: [PATCH 18/62] Avoid putting the github token in the global `.netrc` file (#670) * Avoid putting the github token in the global `.netrc` file * fix wording --- .changeset/git-cli-auth-header.md | 5 ++ .changeset/git-cli-server-url.md | 5 ++ src/{git.ts => github.ts} | 86 ++++++++++++++++++++++++------- src/index.ts | 26 +++------- src/publish/index.ts | 12 ++--- src/run.test.ts | 43 ++++++---------- src/run.ts | 47 ++++++++--------- src/version/index.ts | 18 +++---- 8 files changed, 136 insertions(+), 106 deletions(-) create mode 100644 .changeset/git-cli-auth-header.md create mode 100644 .changeset/git-cli-server-url.md rename src/{git.ts => github.ts} (56%) diff --git a/.changeset/git-cli-auth-header.md b/.changeset/git-cli-auth-header.md new file mode 100644 index 00000000..e7fd6437 --- /dev/null +++ b/.changeset/git-cli-auth-header.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Authenticate git CLI pushes with the configured GitHub token using Git extra headers instead of writing to a global `.netrc` file. diff --git a/.changeset/git-cli-server-url.md b/.changeset/git-cli-server-url.md new file mode 100644 index 00000000..bd04f862 --- /dev/null +++ b/.changeset/git-cli-server-url.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Derive the Git server URL from the GitHub Actions context when configuring git CLI authentication to support GitHub Enterprise Server setups. diff --git a/src/git.ts b/src/github.ts similarity index 56% rename from src/git.ts rename to src/github.ts index ec2f3ac3..eee00019 100644 --- a/src/git.ts +++ b/src/github.ts @@ -1,11 +1,15 @@ +import { Buffer } from "node:buffer"; import * as core from "@actions/core"; import { exec, getExecOutput } from "@actions/exec"; -import * as github from "@actions/github"; +import { context } from "@actions/github"; import { commitChangesFromRepo } from "@changesets/ghcommit/git"; -import type { Octokit } from "./octokit.ts"; +import { setupOctokit, type Octokit } from "./octokit.ts"; + +export type CommitMode = "git-cli" | "github-api"; type GitOptions = { cwd: string; + env?: Record; }; const push = async (branch: string, options: GitOptions) => { @@ -46,17 +50,51 @@ const checkIfClean = async (options: GitOptions): Promise => { return !stdout.length; }; -export class Git { - readonly octokit: Octokit | null; +export class GitHub { + readonly #githubToken: string; + readonly octokit: Octokit; readonly cwd: string; + readonly commitMode: CommitMode; + + constructor(options: { + githubToken: string; + cwd: string; + commitMode?: CommitMode; + }) { + this.#githubToken = options.githubToken; + this.cwd = options.cwd; + this.commitMode = options.commitMode ?? "git-cli"; + this.octokit = setupOctokit(options.githubToken); + } - constructor(args: { octokit?: Octokit; cwd: string }) { - this.octokit = args.octokit ?? null; - this.cwd = args.cwd; + getToken() { + return this.#githubToken; + } + + #getCliAuthEnv(): Record { + const basic = Buffer.from(`x-access-token:${this.#githubToken}`).toString( + "base64", + ); + const serverUrl = ( + context.serverUrl ?? + process.env.GITHUB_SERVER_URL ?? + "https://github.com" + ).replace(/\/+$/, ""); + const gitConfigCount = Number(process.env.GIT_CONFIG_COUNT ?? 0); + if (!Number.isInteger(gitConfigCount) || gitConfigCount < 0) { + throw new Error( + `Invalid GIT_CONFIG_COUNT value: ${process.env.GIT_CONFIG_COUNT}`, + ); + } + return { + GIT_CONFIG_COUNT: String(gitConfigCount + 1), + [`GIT_CONFIG_KEY_${gitConfigCount}`]: `http.${serverUrl}/.extraheader`, + [`GIT_CONFIG_VALUE_${gitConfigCount}`]: `AUTHORIZATION: basic ${basic}`, + }; } async setupUser() { - if (this.octokit) { + if (this.commitMode === "github-api") { return; } await exec("git", ["config", "user.name", `"github-actions[bot]"`], { @@ -76,32 +114,38 @@ export class Git { } async pushTag(tag: string) { - if (this.octokit) { + if (this.commitMode === "github-api") { return this.octokit.rest.git .createRef({ - ...github.context.repo, + ...context.repo, ref: `refs/tags/${tag}`, - sha: github.context.sha, + sha: context.sha, }) .catch((err) => { // Assuming tag was manually pushed in custom publish script core.warning(`Failed to create tag ${tag}: ${err.message}`); }); } - await exec("git", ["push", "origin", tag], { cwd: this.cwd }); + await exec("git", ["push", "origin", tag], { + cwd: this.cwd, + env: { + ...process.env, + ...this.#getCliAuthEnv(), + } as Record, + }); } async prepareBranch(branch: string) { - if (this.octokit) { + if (this.commitMode === "github-api") { // Preparing a new local branch is not necessary when using the API return; } await switchToMaybeExistingBranch(branch, { cwd: this.cwd }); - await reset(github.context.sha, { cwd: this.cwd }); + await reset(context.sha, { cwd: this.cwd }); } async pushChanges({ branch, message }: { branch: string; message: string }) { - if (this.octokit) { + if (this.commitMode === "github-api") { /** * Only add files form the current working directory * @@ -111,11 +155,11 @@ export class Git { const addFromDirectory = this.cwd; return commitChangesFromRepo({ octokit: this.octokit, - ...github.context.repo, + ...context.repo, branch, message, base: { - commit: github.context.sha, + commit: context.sha, }, cwd: this.cwd, force: true, @@ -124,6 +168,12 @@ export class Git { if (!(await checkIfClean({ cwd: this.cwd }))) { await commitAll(message, { cwd: this.cwd }); } - await push(branch, { cwd: this.cwd }); + await push(branch, { + cwd: this.cwd, + env: { + ...process.env, + ...this.#getCliAuthEnv(), + } as Record, + }); } } diff --git a/src/index.ts b/src/index.ts index 99e5e49e..ef4b317e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,6 @@ import fs from "node:fs/promises"; import * as core from "@actions/core"; -import { Git } from "./git.ts"; -import { setupOctokit } from "./octokit.ts"; +import { GitHub } from "./github.ts"; import readChangesetState from "./readChangesetState.ts"; import { runPublish, runVersion } from "./run.ts"; import { fileExists, getOptionalInput } from "./utils.ts"; @@ -19,7 +18,6 @@ import { fileExists, getOptionalInput } from "./utils.ts"; // If the user needs to change the cwd, set `working-directory` in the step instead const cwd = process.cwd(); - const octokit = setupOctokit(githubToken); const commitMode = getOptionalInput("commitMode") ?? "git-cli"; const prDraft = getOptionalInput("prDraft"); if (commitMode !== "git-cli" && commitMode !== "github-api") { @@ -30,24 +28,19 @@ import { fileExists, getOptionalInput } from "./utils.ts"; core.setFailed(`Invalid prDraft: ${prDraft}`); return; } - const git = new Git({ - octokit: commitMode === "github-api" ? octokit : undefined, + const github = new GitHub({ cwd, + githubToken, + commitMode, }); let setupGitUser = core.getBooleanInput("setupGitUser"); if (setupGitUser) { core.info("setting git user"); - await git.setupUser(); + await github.setupUser(); } - core.info("setting GitHub credentials"); - await fs.writeFile( - `${process.env.HOME}/.netrc`, - `machine github.com\nlogin github-actions[bot]\npassword ${githubToken}`, - ); - let { changesets } = await readChangesetState(cwd); let publishScript = core.getInput("publish"); @@ -119,9 +112,7 @@ import { fileExists, getOptionalInput } from "./utils.ts"; const result = await runPublish({ script: publishScript, - githubToken, - git, - octokit, + github, createGithubReleases: core.getBooleanInput("createGithubReleases"), cwd, }); @@ -152,12 +143,9 @@ import { fileExists, getOptionalInput } from "./utils.ts"; core.info("All changesets are empty; not creating PR"); return; case hasChangesets: { - const octokit = setupOctokit(githubToken); const { pullRequestNumber } = await runVersion({ script: getOptionalInput("version"), - githubToken, - git, - octokit, + github, cwd, prTitle: getOptionalInput("title"), commitMessage: getOptionalInput("commit"), diff --git a/src/publish/index.ts b/src/publish/index.ts index d9653c0f..fd6ce2d2 100644 --- a/src/publish/index.ts +++ b/src/publish/index.ts @@ -1,8 +1,7 @@ import fs from "node:fs/promises"; import os from "node:os"; import * as core from "@actions/core"; -import { Git } from "../git.ts"; -import { setupOctokit } from "../octokit.ts"; +import { GitHub } from "../github.ts"; import { runPublish } from "../run.ts"; import { downloadArtifact, @@ -25,9 +24,8 @@ async function main() { // If the user needs to change the cwd, set `working-directory` in the step instead const cwd = process.cwd(); - const octokit = setupOctokit(githubToken); - // NOTE: Always pass octokit here as publish does not need a commit-mode - const git = new Git({ octokit, cwd }); + // NOTE: Always use API mode here as publish does not need a commit-mode. + const github = new GitHub({ cwd, githubToken, commitMode: "github-api" }); const fromPackDir = packDirArtifactId ? await downloadArtifact( @@ -39,9 +37,7 @@ async function main() { const result = await runPublish({ script, - githubToken, - git, - octokit, + github, createGithubReleases, cwd, fromPackDir, diff --git a/src/run.test.ts b/src/run.test.ts index ff1b268c..bb1bc681 100644 --- a/src/run.test.ts +++ b/src/run.test.ts @@ -3,8 +3,7 @@ import type { Changeset } from "@changesets/types"; import writeChangeset from "@changesets/write"; import { createFixture } from "fs-fixture"; import { beforeEach, describe, expect, it, vi } from "vitest"; -import { Git } from "./git.ts"; -import { setupOctokit } from "./octokit.ts"; +import { GitHub } from "./github.ts"; import { runVersion } from "./run.ts"; vi.mock("@actions/github", () => ({ @@ -21,7 +20,6 @@ vi.mock("@actions/github", () => ({ graphql: mockedGraphql, }), })); -vi.mock("./git.ts"); vi.mock("@changesets/ghcommit/git"); let mockedGithubMethods = { @@ -91,6 +89,13 @@ const writeChangesets = (changesets: Changeset[], cwd: string) => { return Promise.all(changesets.map((commit) => writeChangeset(commit, cwd))); }; +const createGithub = (cwd: string) => + new GitHub({ + cwd, + githubToken: "@@GITHUB_TOKEN", + commitMode: "github-api", + }); + beforeEach(() => { vi.clearAllMocks(); }); @@ -126,9 +131,7 @@ describe("version", () => { ); await runVersion({ - octokit: setupOctokit("@@GITHUB_TOKEN"), - githubToken: "@@GITHUB_TOKEN", - git: new Git({ cwd }), + github: createGithub(cwd), cwd, }); @@ -161,9 +164,7 @@ describe("version", () => { ); await runVersion({ - octokit: setupOctokit("@@GITHUB_TOKEN"), - githubToken: "@@GITHUB_TOKEN", - git: new Git({ cwd }), + github: createGithub(cwd), cwd, prDraft: "create", }); @@ -197,9 +198,7 @@ describe("version", () => { ); await runVersion({ - octokit: setupOctokit("@@GITHUB_TOKEN"), - githubToken: "@@GITHUB_TOKEN", - git: new Git({ cwd }), + github: createGithub(cwd), cwd, }); @@ -232,9 +231,7 @@ describe("version", () => { ); await runVersion({ - octokit: setupOctokit("@@GITHUB_TOKEN"), - githubToken: "@@GITHUB_TOKEN", - git: new Git({ cwd }), + github: createGithub(cwd), cwd, }); @@ -287,9 +284,7 @@ fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis. ); await runVersion({ - octokit: setupOctokit("@@GITHUB_TOKEN"), - githubToken: "@@GITHUB_TOKEN", - git: new Git({ cwd }), + github: createGithub(cwd), cwd, prBodyMaxCharacters: 1000, }); @@ -346,9 +341,7 @@ fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis. ); await runVersion({ - octokit: setupOctokit("@@GITHUB_TOKEN"), - githubToken: "@@GITHUB_TOKEN", - git: new Git({ cwd }), + github: createGithub(cwd), cwd, prBodyMaxCharacters: 500, }); @@ -383,9 +376,7 @@ fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis. ); await runVersion({ - octokit: setupOctokit("@@GITHUB_TOKEN"), - githubToken: "@@GITHUB_TOKEN", - git: new Git({ cwd }), + github: createGithub(cwd), cwd, prDraft: "create", }); @@ -417,9 +408,7 @@ fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis. ); await runVersion({ - octokit: setupOctokit("@@GITHUB_TOKEN"), - githubToken: "@@GITHUB_TOKEN", - git: new Git({ cwd }), + github: createGithub(cwd), cwd, prDraft: "always", }); diff --git a/src/run.ts b/src/run.ts index 599eeaaf..69fd1449 100644 --- a/src/run.ts +++ b/src/run.ts @@ -7,10 +7,10 @@ import { type ExecOptions, type ExecOutput, } from "@actions/exec"; -import * as github from "@actions/github"; +import { context } from "@actions/github"; import type { PreState } from "@changesets/types"; import { type Package, getPackages } from "@manypkg/get-packages"; -import { Git } from "./git.ts"; +import type { GitHub } from "./github.ts"; import type { Octokit } from "./octokit.ts"; import readChangesetState from "./readChangesetState.ts"; import { @@ -57,17 +57,15 @@ const createRelease = async ( tag_name: tagName, body: changelogEntry.content, prerelease: pkg.packageJson.version.includes("-"), - ...github.context.repo, + ...context.repo, }); }; type PublishOptions = { script?: string; fromPackDir?: string; - githubToken: string; - octokit: Octokit; createGithubReleases: boolean; - git: Git; + github: GitHub; cwd: string; }; @@ -87,17 +85,16 @@ type PublishResult = export async function runPublish({ script, fromPackDir, - githubToken, - git, - octokit, + github, createGithubReleases, cwd, }: PublishOptions): Promise { + const { octokit } = github; let changesetPublishOutput: ExecOutput; const execOptions: ExecOptions = { cwd, ignoreReturnCode: true, - env: { ...process.env, GITHUB_TOKEN: githubToken }, + env: { ...process.env, GITHUB_TOKEN: github.getToken() }, }; if (script) { @@ -144,7 +141,7 @@ export async function runPublish({ await Promise.all( releasedPackages.map(async (pkg) => { const tagName = `${pkg.packageJson.name}@${pkg.packageJson.version}`; - await git.pushTag(tagName); + await github.pushTag(tagName); await createRelease(octokit, { pkg, tagName }); }), ); @@ -166,7 +163,7 @@ export async function runPublish({ releasedPackages.push(pkg); if (createGithubReleases) { const tagName = `v${pkg.packageJson.version}`; - await git.pushTag(tagName); + await github.pushTag(tagName); await createRelease(octokit, { pkg, tagName }); } break; @@ -259,9 +256,7 @@ export async function getVersionPrBody({ type VersionOptions = { script?: string; - githubToken: string; - git: Git; - octokit: Octokit; + github: GitHub; cwd?: string; prTitle?: string; commitMessage?: string; @@ -277,26 +272,25 @@ type RunVersionResult = { export async function runVersion({ script, - githubToken, - git, - octokit, + github, cwd = process.cwd(), prTitle = "Version Packages", commitMessage = "Version Packages", hasPublishScript = false, prBodyMaxCharacters = MAX_CHARACTERS_PER_MESSAGE, - branch = github.context.ref.replace("refs/heads/", ""), + branch = context.ref.replace("refs/heads/", ""), prDraft, }: VersionOptions): Promise { + const { octokit } = github; let versionBranch = `changeset-release/${branch}`; let { preState } = await readChangesetState(cwd); - await git.prepareBranch(versionBranch); + await github.prepareBranch(versionBranch); let versionsByDirectory = await getVersionsByDirectory(cwd); - const env = { ...process.env, GITHUB_TOKEN: githubToken }; + const env = { ...process.env, GITHUB_TOKEN: github.getToken() }; if (script) { await exec(script, undefined, { cwd, env }); @@ -335,9 +329,9 @@ export async function runVersion({ * which GitHub will then react to by closing the PRs) */ const existingPullRequests = await octokit.rest.pulls.list({ - ...github.context.repo, + ...context.repo, state: "open", - head: `${github.context.repo.owner}:${versionBranch}`, + head: `${context.repo.owner}:${versionBranch}`, base: branch, }); core.info( @@ -348,7 +342,10 @@ export async function runVersion({ )}`, ); - await git.pushChanges({ branch: versionBranch, message: finalCommitMessage }); + await github.pushChanges({ + branch: versionBranch, + message: finalCommitMessage, + }); const changedPackagesInfo = (await changedPackagesInfoPromises) .filter((x) => x) @@ -370,7 +367,7 @@ export async function runVersion({ title: finalPrTitle, body: prBody, draft: prDraft !== undefined, - ...github.context.repo, + ...context.repo, }); return { diff --git a/src/version/index.ts b/src/version/index.ts index 59f749ca..d9498e1f 100644 --- a/src/version/index.ts +++ b/src/version/index.ts @@ -1,6 +1,5 @@ import * as core from "@actions/core"; -import { Git } from "../git.ts"; -import { setupOctokit } from "../octokit.ts"; +import { GitHub } from "../github.ts"; import { runVersion } from "../run.ts"; import { getOptionalInput, getRequiredInput } from "../utils.ts"; @@ -24,26 +23,27 @@ async function main() { if (prDraft !== undefined && prDraft !== "always" && prDraft !== "create") { throw new Error(`Invalid pr-draft input: ${prDraft}`); } + if (commitMode !== "git-cli" && commitMode !== "github-api") { + throw new Error(`Invalid commit-mode input: ${commitMode}`); + } // If the user needs to change the cwd, set `working-directory` in the step instead const cwd = process.cwd(); - const octokit = setupOctokit(githubToken); - const git = new Git({ - octokit: commitMode === "github-api" ? octokit : undefined, + const github = new GitHub({ cwd, + githubToken, + commitMode, }); if (setupGitUser) { core.info("setting git user"); - await git.setupUser(); + await github.setupUser(); } const { pullRequestNumber } = await runVersion({ script, - githubToken, - git, - octokit, + github, cwd, prTitle, commitMessage, From b12c36a7bf58e591d795be091747292ce6688920 Mon Sep 17 00:00:00 2001 From: "changesets-org-version-bot[bot]" <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 12:28:35 +0200 Subject: [PATCH 19/62] Version Packages (next) (#671) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/pre.json | 2 ++ CHANGELOG.md | 8 ++++++++ package.json | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index f2d1da42..86a5b19c 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -8,6 +8,8 @@ "all-cars-grin", "eight-clocks-pull", "eighty-doors-swim", + "git-cli-auth-header", + "git-cli-server-url", "lemon-turtles-itch", "ready-mangos-boil", "silent-tips-dance" diff --git a/CHANGELOG.md b/CHANGELOG.md index af1ba2d7..7cc27a9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # @changesets/action +## 2.0.0-next.2 + +### Patch Changes + +- [#670](https://github.com/changesets/action/pull/670) [`5a8b9b7`](https://github.com/changesets/action/commit/5a8b9b721bf683e3bf9bd72ea92a685dc024147b) Thanks [@Andarist](https://github.com/Andarist)! - Authenticate git CLI pushes with the configured GitHub token using Git extra headers instead of writing to a global `.netrc` file. + +- [#670](https://github.com/changesets/action/pull/670) [`5a8b9b7`](https://github.com/changesets/action/commit/5a8b9b721bf683e3bf9bd72ea92a685dc024147b) Thanks [@Andarist](https://github.com/Andarist)! - Derive the Git server URL from the GitHub Actions context when configuring git CLI authentication to support GitHub Enterprise Server setups. + ## 2.0.0-next.1 ### Patch Changes diff --git a/package.json b/package.json index 8c239f19..e1f1f3d6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@changesets/action", - "version": "2.0.0-next.1", + "version": "2.0.0-next.2", "license": "MIT", "type": "module", "main": "dist/index.js", From 823cf741ca57c5e22652123d3a847dfafcd77ca0 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Thu, 25 Jun 2026 18:58:02 +0800 Subject: [PATCH 20/62] Update to changesets v3 packages (#673) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update to changesets v3 packages * Dedupe * Fix test * Fix test 2 * update more --------- Co-authored-by: Mateusz Burzyński --- .changeset/shaky-rings-type.md | 5 + package.json | 18 +- pnpm-lock.yaml | 977 +++++++++------------------------ pnpm-workspace.yaml | 12 +- src/pr-status/message.ts | 2 +- src/pr-status/worktree.test.ts | 3 +- src/readChangesetState.ts | 2 +- src/run.test.ts | 4 +- src/run.ts | 2 +- 9 files changed, 302 insertions(+), 723 deletions(-) create mode 100644 .changeset/shaky-rings-type.md diff --git a/.changeset/shaky-rings-type.md b/.changeset/shaky-rings-type.md new file mode 100644 index 00000000..d30067e2 --- /dev/null +++ b/.changeset/shaky-rings-type.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": major +--- + +Update to Changesets v3 packages diff --git a/package.json b/package.json index e1f1f3d6..6b2288c6 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,12 @@ "@actions/core": "^3.0.1", "@actions/exec": "^3.0.0", "@actions/github": "^9.1.1", - "@changesets/get-release-plan": "^4.0.16", + "@changesets/get-release-plan": "^5.0.0-next.6", "@changesets/ghcommit": "^2.1.1", - "@changesets/git": "^3.0.4", - "@changesets/pre": "^2.0.2", - "@changesets/read": "^0.6.7", - "@manypkg/get-packages": "^1.1.3", + "@changesets/git": "^4.0.0-next.5", + "@changesets/pre": "^3.0.0-next.5", + "@changesets/read": "^1.0.0-next.6", + "@manypkg/get-packages": "^3.1.0", "@octokit/core": "^7.0.6", "@octokit/plugin-throttling": "^11.0.3", "human-id": "^4.1.3", @@ -35,10 +35,10 @@ "tinyexec": "^1.2.4" }, "devDependencies": { - "@changesets/changelog-github": "^0.7.0", - "@changesets/cli": "^2.31.0", - "@changesets/types": "^6.1.0", - "@changesets/write": "^0.4.0", + "@changesets/changelog-github": "^1.0.0-next.5", + "@changesets/cli": "^3.0.0-next.6", + "@changesets/types": "^7.0.0-next.5", + "@changesets/write": "^1.0.0-next.5", "@tsconfig/node24": "^24.0.4", "@types/node": "^24.12.4", "@types/semver": "^7.7.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc12b6c7..edad9c52 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,23 +26,23 @@ importers: specifier: ^9.1.1 version: 9.1.1 '@changesets/get-release-plan': - specifier: ^4.0.16 - version: 4.0.16 + specifier: ^5.0.0-next.6 + version: 5.0.0-next.6 '@changesets/ghcommit': specifier: ^2.1.1 version: 2.1.1 '@changesets/git': - specifier: ^3.0.4 - version: 3.0.4 + specifier: ^4.0.0-next.5 + version: 4.0.0-next.5 '@changesets/pre': - specifier: ^2.0.2 - version: 2.0.2 + specifier: ^3.0.0-next.5 + version: 3.0.0-next.5 '@changesets/read': - specifier: ^0.6.7 - version: 0.6.7 + specifier: ^1.0.0-next.6 + version: 1.0.0-next.6 '@manypkg/get-packages': - specifier: ^1.1.3 - version: 1.1.3 + specifier: ^3.1.0 + version: 3.1.0 '@octokit/core': specifier: ^7.0.6 version: 7.0.6 @@ -63,17 +63,17 @@ importers: version: 1.2.4 devDependencies: '@changesets/changelog-github': - specifier: ^0.7.0 - version: 0.7.0 + specifier: ^1.0.0-next.5 + version: 1.0.0-next.5 '@changesets/cli': - specifier: ^2.31.0 - version: 2.31.0(@types/node@24.12.4) + specifier: ^3.0.0-next.6 + version: 3.0.0-next.6 '@changesets/types': - specifier: ^6.1.0 - version: 6.1.0 + specifier: ^7.0.0-next.5 + version: 7.0.0-next.5 '@changesets/write': - specifier: ^0.4.0 - version: 0.4.0 + specifier: ^1.0.0-next.5 + version: 1.0.0-next.5 '@tsconfig/node24': specifier: ^24.0.4 version: 24.0.4 @@ -177,79 +177,95 @@ packages: resolution: {integrity: sha512-kNhJKMxQb374KOVt63CZnGIpDcrKNzJeyANLJymxE9mCJSdRGzb+Iv9oSIiCj6tNMLypr530b9ObOiA/5OvwOg==} engines: {node: '>=20.0.0'} - '@babel/runtime@7.29.2': - resolution: {integrity: sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==} - engines: {node: '>=6.9.0'} - '@bufbuild/protobuf@2.12.0': resolution: {integrity: sha512-B/XlCaFIP8LOwzo+bz5uFzATYokcwCKQcghqnlfwSmM5eX/qTkvDBnDPs+gXtX/RyjxJ4DRikECcPJbyALA8FA==} '@bufbuild/protoplugin@2.12.0': resolution: {integrity: sha512-ORlDITp8AFUXzIhLRoMCG+ud+D3MPKWb5HQXBoskMMnjeyEjE1H1qLonVNPyOr8lkx3xSfYUo8a0dvOZJVAzow==} - '@changesets/apply-release-plan@7.1.1': - resolution: {integrity: sha512-9qPCm/rLx/xoOFXIHGB229+4GOL76S4MC+7tyOuTsR6+1jYlfFDQORdvwR5hDA6y4FL2BPt3qpbcQIS+dW85LA==} + '@changesets/apply-release-plan@8.0.0-next.6': + resolution: {integrity: sha512-Tnt9/AbEU4/uLkBzjF7KGjaB6MyzADG/+iMxq5khFEGM0s12Fp9plglMzajWX97/qgrcCVstFcVWpFTEGiNVxA==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/assemble-release-plan@6.0.10': - resolution: {integrity: sha512-rSDcqdJ9KbVyjpBIuCidhvZNIiVt1XaIYp73ycVQRIA5n/j6wQaEk0ChRLMUQ1vkxZe51PTQ9OIhbg6HQMW45A==} + '@changesets/assemble-release-plan@7.0.0-next.6': + resolution: {integrity: sha512-0AqIQriI20QgtJQr7HumJ7FiaUsqA/VQMUWF29r6jnEOpmR4c8O/kMA8kFJOp7a1mlUNJqVbcz4RNCWlEDYC9A==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/changelog-git@0.2.1': - resolution: {integrity: sha512-x/xEleCFLH28c3bQeQIyeZf8lFXyDFVn1SgcBiR2Tw/r4IAWlk1fzxCEZ6NxQAjF2Nwtczoen3OA2qR+UawQ8Q==} + '@changesets/changelog-git@1.0.0-next.5': + resolution: {integrity: sha512-lGyIWNGkPnY6yiwbFeWtf9yzjoMl0jmzwIGH24cAV9ZzKl0lLvjjlYTbcfZymqVcPqBSQEr2UQNg0ED4h7xlnQ==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/changelog-github@0.7.0': - resolution: {integrity: sha512-rBsbRvc4TVn+FvFnOVM3LxlFJfTXXCp8gfVJ+0BubxWNSVnLuAzowi5j+IEraLLP52w8AAs9QfKbPS3MMiXQJA==} + '@changesets/changelog-github@1.0.0-next.5': + resolution: {integrity: sha512-c9q7QUmBYCKKCjhW/0U2W8ZNqtOixB1DShU0Y9FHNwYL8w76YVTz+MZiLEGCKXAEduibEUdcJYIQiaSAxQR0dQ==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/cli@2.31.0': - resolution: {integrity: sha512-AhI4enNTgHu2IZr6K4WZyf0EPch4XVMn1yOMFmCD9gsfBGqMYaHXls5HyDv6/CL5axVQABz68eG30eCtbr2wFg==} + '@changesets/cli@3.0.0-next.6': + resolution: {integrity: sha512-NPO8zyQc2icfJJTVqSMtRTIz3RyhIffgaj71T9BN7vBbVPWoeW+Niq+kxKTtvQw+EOkuaXv/AOEF8agkM4pq6A==} + engines: {node: ^22.11 || ^24 || >=26, npm: '>=10.9.0', pnpm: '>=10.0.0', yarn: '>=4.5.2'} hasBin: true - '@changesets/config@3.1.4': - resolution: {integrity: sha512-pf0bvD/v6WI2cRlZ6hzpjtZdSlXDXMAJ+Iz7xfFzV4ZxJ8OGGAON+1qYc99ZPrijnt4xp3VGG7eNvAOGS24V1Q==} + '@changesets/config@4.0.0-next.5': + resolution: {integrity: sha512-2te/SEbDJ2h8xFf6+uQJYtuOAlkswwtxodsS6uijEky0ImNP+sURPL7LkoW4FCUKCCZmPevbh++kpIXm4WmhWw==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/errors@0.2.0': - resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==} + '@changesets/errors@1.0.0-next.3': + resolution: {integrity: sha512-p0JrarlyfkpnIK9L1Y8JKoF78IgKEzRPVbG/13gToDpvfV1cWqOVuoDLVCTQjYTwmaHusOmrnuQUlsO88AvP4Q==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-dependents-graph@2.1.4': - resolution: {integrity: sha512-ZsS00x6WvmHq3sQv8oCMwL0f/z3wbXCVuSVTJwCnnmbC/iBdNJGFx1EcbMG4PC6sXRyH69liM4A2WKXzn/kRPg==} + '@changesets/format@0.1.0': + resolution: {integrity: sha512-m3ScsTpVqQJu6WOV36vpGozJPBu5JWaFXAhG1/yRnzbOnyqomuPrIfm+LeE0PmX4HWPs9Fh4MDH4aDISEsjZaA==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-github-info@0.8.0': - resolution: {integrity: sha512-cRnC+xdF0JIik7coko3iUP9qbnfi1iJQ3sAa6dE+Tx3+ET8bjFEm63PA4WEohgjYcmsOikPHWzPsMWWiZmntOQ==} + '@changesets/get-dependents-graph@3.0.0-next.5': + resolution: {integrity: sha512-sKjcHoA0p0vV1jBid9emhy5lsPemzBOq5LBo2M9o/zDtfF9p8hCAC/ULjJ66hngBVmdV54G8WeNhMnG6oln/nQ==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-release-plan@4.0.16': - resolution: {integrity: sha512-2K5Om6CrMPm45rtvckfzWo7e9jOVCKLCnXia5eUPaURH7/LWzri7pK1TycdzAuAtehLkW7VPbWLCSExTHmiI6g==} + '@changesets/get-github-info@1.0.0-next.2': + resolution: {integrity: sha512-Lu63xxq8yZZ3dfm7QHBU6G55MeP9lFWz/eeUyEUQ5BW5MY69EF2QDIvkMaU5h8d0JoGIlDhsi4W+iket/hrEvA==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-version-range-type@0.4.0': - resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} + '@changesets/get-release-plan@5.0.0-next.6': + resolution: {integrity: sha512-7UToB7ng4QnbShxX6JXqZPhjCFlrB9BH8KTVdG4f1J7yGQ8wgeOn1wJkCDvvymdxVd62jeBCcvBWn6db5Lzm4w==} + engines: {node: ^22.11 || ^24 || >=26} '@changesets/ghcommit@2.1.1': resolution: {integrity: sha512-rtdVQucW4O1328NiNdGSLWlsaVu/B9faNGeDrrQqtf0FDqUN1WhbtHuofjVmSI2VQELgM2F4IjfWu6dji5CwGA==} - '@changesets/git@3.0.4': - resolution: {integrity: sha512-BXANzRFkX+XcC1q/d27NKvlJ1yf7PSAgi8JG6dt8EfbHFHi4neau7mufcSca5zRhwOL8j9s6EqsxmT+s+/E6Sw==} + '@changesets/git@4.0.0-next.5': + resolution: {integrity: sha512-dhQ5qxmxVy8vQD6TBjNuVB3cv3MoyKogFIX+LFXi4hWceXeysOKuVytpAX84ywQw401uHuYlObZSU6qyj/hzzw==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/logger@0.1.1': - resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + '@changesets/parse@1.0.0-next.6': + resolution: {integrity: sha512-9eR8KHNC7foNCCwuDvzC5NAoNJ8m6UvcYPl+xwuWLbuM44ILMC3N7Fc0gjNZoUvFbSPc/HeCN63kX3HiPqLZMw==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/parse@0.4.3': - resolution: {integrity: sha512-ZDmNc53+dXdWEv7fqIUSgRQOLYoUom5Z40gmLgmATmYR9NbL6FJJHwakcCpzaeCy+1D0m0n7mT4jj2B/MQPl7A==} + '@changesets/pre@3.0.0-next.5': + resolution: {integrity: sha512-vxcIPxRGrPaDZpNCJMahl1/xZa+bD9bhxEbJAde/lyvzPqA4lS7ugdtDNuobeRlothw8SGGjBSS8c+VouPDD5w==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/pre@2.0.2': - resolution: {integrity: sha512-HaL/gEyFVvkf9KFg6484wR9s0qjAXlZ8qWPDkTyKF6+zqjBe/I2mygg3MbpZ++hdi0ToqNUF8cjj7fBy0dg8Ug==} + '@changesets/read@1.0.0-next.6': + resolution: {integrity: sha512-WCCU0z2jy+uyo5ivI3vec8Ys+o5Nk0OwS6qUhm7kzQ6dRRIX85uZaVV+6TlnKRXcKzWEDrIt3ifj0Ul+v/sqvA==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/read@0.6.7': - resolution: {integrity: sha512-D1G4AUYGrBEk8vj8MGwf75k9GpN6XL3wg8i42P2jZZwFLXnlr2Pn7r9yuQNbaMCarP7ZQWNJbV6XLeysAIMhTA==} + '@changesets/should-skip-package@1.0.0-next.5': + resolution: {integrity: sha512-KGlx6MPs8QZvQzB27J4ZElufmVF5o0yps8LdqNY6MWaBe9esgVq3neFE07p5tPaj/ZIS1m038atwkh4Z0Kl9yA==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/should-skip-package@0.1.2': - resolution: {integrity: sha512-qAK/WrqWLNCP22UDdBTMPH5f41elVDlsNyat180A33dWxuUDyNpg6fPi/FyTZwRriVjg0L8gnjJn2F9XAoF0qw==} + '@changesets/types@7.0.0-next.5': + resolution: {integrity: sha512-K/JHm6kBQ5FqCHHptJFqVyCrpj8oxtDMbBchlK5/7mxZ7FcGynQj08r6YSn1mvRg1waYsLKgzCeu4wvzCgJJjQ==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/types@4.1.0': - resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==} + '@changesets/write@1.0.0-next.5': + resolution: {integrity: sha512-EKZIKPqHnK1GKljvOUgyNoEsNJ06uDd1d+MGzgjMeMbeIk3Y4a9oeFw7pqEFe80HfxHTVn3tyYYVVD0ImaR1yw==} + engines: {node: ^22.11 || ^24 || >=26} - '@changesets/types@6.1.0': - resolution: {integrity: sha512-rKQcJ+o1nKNgeoYRHKOS07tAMNd3YSN0uHaJOZYjBAgxfV7TUE7JE+z4BzZdQwb5hKaYbayKN5KrYV7ODb2rAA==} + '@clack/core@1.4.1': + resolution: {integrity: sha512-FILJa1gGKEFTGZAJE9RpVhrjKz3c3h4ar60dSv6cGuDqufQ84YEIS3GAGvZiN+H6yaLbbvTFNejjCC4tXpZEuw==} + engines: {node: '>= 20.12.0'} - '@changesets/write@0.4.0': - resolution: {integrity: sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q==} + '@clack/prompts@1.5.1': + resolution: {integrity: sha512-zccHj2z2oCCO4yrDiRSlFOxWerGqRiysP7a5jPK6uoI9URKAquwY42Dd/iUP8JWHxEzdRe4TlbvZCo8z1/mhrw==} + engines: {node: '>= 20.12.0'} '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} @@ -260,15 +276,6 @@ packages: '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@inquirer/external-editor@1.0.3': - resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} - engines: {node: '>=18'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -276,11 +283,17 @@ packages: '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@manypkg/find-root@1.1.0': - resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} + '@manypkg/find-root@3.1.0': + resolution: {integrity: sha512-BcSqCyKhBVZ5YkSzOiheMCV41kqAFptW6xGqYSTjkVTl9XQpr+pqHhwgGCOHQtjDCv7Is6EFyA14Sm5GVbVABA==} + engines: {node: '>=20.0.0'} - '@manypkg/get-packages@1.1.3': - resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} + '@manypkg/get-packages@3.1.0': + resolution: {integrity: sha512-0TbBVyvPrP7xGYBI/cP8UP+yl/z+HtbTttAD7FMAJgn/kXOTwh5/60TsqP9ZYY710forNfyV0N8P/IE/ujGZJg==} + engines: {node: '>=20.0.0'} + + '@manypkg/tools@2.1.2': + resolution: {integrity: sha512-6QEf6yqFbETdwGITKq57aYoPfX/3K8XFNwsAlx0C1M7o8cb79sv1M3w+tWuWvIcSbNqrLF7OD7YpZMVVz335hQ==} + engines: {node: '>=20.0.0'} '@napi-rs/wasm-runtime@1.1.4': resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} @@ -291,18 +304,6 @@ packages: '@nodable/entities@2.1.1': resolution: {integrity: sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==} - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - '@octokit/auth-token@6.0.0': resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} engines: {node: '>= 20'} @@ -492,6 +493,10 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@pnpm/deps.graph-sequencer@1100.0.0': + resolution: {integrity: sha512-IfhLdXMjNaAt2Z/r0hAqMvH4UN/Eb6LAbnSHqF9Ay1EhQId8rFX58yIWXLUit6VjJTJAptnSPtO8nSu2/ggQsg==} + engines: {node: '>=22.13'} + '@protobuf-ts/plugin@2.11.1': resolution: {integrity: sha512-HyuprDcw0bEEJqkOWe1rnXUP0gwYLij8YhPuZyZk6cJbIgc/Q0IFgoHQxOXNIXAcXM4Sbehh6kjVnCzasElw1A==} hasBin: true @@ -622,9 +627,6 @@ packages: '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - '@types/node@12.20.55': - resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/node@24.12.4': resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} @@ -677,10 +679,6 @@ packages: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} engines: {node: '>= 14'} - ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} - ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -705,16 +703,6 @@ packages: resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} engines: {node: '>= 14'} - argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - - argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - - array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} - assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -787,10 +775,6 @@ packages: before-after-hook@4.0.0: resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==} - better-path-resolve@1.0.0: - resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==} - engines: {node: '>=4'} - binary@0.3.0: resolution: {integrity: sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==} @@ -800,10 +784,6 @@ packages: brace-expansion@2.1.1: resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} - braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} - buffer-crc32@1.0.0: resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} engines: {node: '>=8.0.0'} @@ -815,6 +795,10 @@ packages: resolution: {integrity: sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==} engines: {node: '>=0.2.0'} + cac@7.0.0: + resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} + engines: {node: '>=20.19.0'} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -834,9 +818,6 @@ packages: chainsaw@0.1.0: resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} - chardet@2.1.1: - resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} - clean-git-ref@2.0.1: resolution: {integrity: sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==} @@ -894,21 +875,9 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - diff3@0.0.3: resolution: {integrity: sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==} - dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} - - dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -922,10 +891,6 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -941,11 +906,6 @@ packages: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} - esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -964,18 +924,20 @@ packages: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} - extendable-error@0.1.7: - resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==} - fast-content-type-parse@3.0.0: resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==} fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + + fast-wrap-ansi@0.2.2: + resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} fast-xml-builder@1.2.0: resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} @@ -984,9 +946,6 @@ packages: resolution: {integrity: sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==} hasBin: true - fastq@1.20.1: - resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -996,14 +955,6 @@ packages: picomatch: optional: true - fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} - - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} @@ -1012,14 +963,6 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - fs-extra@7.0.1: - resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} - engines: {node: '>=6 <7 || >=8'} - - fs-extra@8.1.0: - resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} - engines: {node: '>=6 <7 || >=8'} - fs-fixture@2.13.0: resolution: {integrity: sha512-bqL4EVFNgoA38OnztLfeHn4NZJ32zWnSNA3ALtessYO0WjpL//QuYl1YkYd7j+TY0cLO6cqgoHxPJpfSwKQAPA==} engines: {node: '>=18.0.0'} @@ -1040,19 +983,11 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true - globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} - gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -1087,10 +1022,6 @@ packages: resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} hasBin: true - iconv-lite@0.7.2: - resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} - engines: {node: '>=0.10.0'} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -1098,6 +1029,9 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -1105,38 +1039,18 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - - is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - is-subdir@1.2.0: - resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==} - engines: {node: '>=4'} - is-typed-array@1.1.15: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -1154,35 +1068,26 @@ packages: jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - js-yaml@3.14.2: - resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==} - hasBin: true - - js-yaml@4.1.1: - resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} - hasBin: true + jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} json-with-bigint@3.5.8: resolution: {integrity: sha512-eq/4KP6K34kwa7TcFdtvnftvHCD9KvHOGGICWwMFc4dOOKF5t4iYqnfLK8otCRCRv06FXOzGGyqE8h8ElMvvdw==} - jsonfile@4.0.0: - resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} jwt-decode@4.0.0: resolution: {integrity: sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==} engines: {node: '>=18'} + launch-editor@2.14.1: + resolution: {integrity: sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA==} + lazystream@1.0.1: resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} engines: {node: '>= 0.6.3'} - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - - lodash.startcase@4.4.0: - resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - lodash@4.18.1: resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} @@ -1199,14 +1104,6 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} @@ -1233,22 +1130,9 @@ packages: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true - mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -1259,47 +1143,20 @@ packages: once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - outdent@0.5.0: - resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} - oxfmt@0.48.0: resolution: {integrity: sha512-AVaLh+7XeGx+R1zfFV+f6VV61nT2MWVJXVUDhbTm5LBWGyNt64xAyh3NYYyjeY2WykNt9AvqSQLPHcbWquYF9g==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} - - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-manager-detector@0.2.11: - resolution: {integrity: sha512-BEnLolu+yuz22S56CU1SUKq3XC3PkwD5wv4ikR4MfGvnRVcmzXR9DwSlW2fEamyTPyXHomBJRzgapeuBvRNzJQ==} + package-manager-detector@1.6.0: + resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} pako@1.0.11: resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - path-expression-matcher@1.5.0: resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} engines: {node: '>=14.0.0'} @@ -1312,20 +1169,12 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@2.3.2: - resolution: {integrity: sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==} - engines: {node: '>=8.6'} - picomatch@4.0.4: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} @@ -1338,11 +1187,6 @@ packages: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} - prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -1350,16 +1194,6 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} - quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} - - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - - read-yaml-file@1.1.0: - resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} - engines: {node: '>=6'} - readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -1370,31 +1204,17 @@ packages: readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rolldown@1.0.1: resolution: {integrity: sha512-X0KQHljNnEkWNqqiz9zJrGunh1B0HgOxLXvnFpCOcadzcy5qohZ3tqMEUg00vncoRovXuK3ZqCT9KnnKzoInFQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - semver@7.8.1: resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} engines: {node: '>=10'} @@ -1417,6 +1237,10 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} + shell-quote@1.8.4: + resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} + engines: {node: '>= 0.4'} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -1430,15 +1254,8 @@ packages: simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} - - spawndamnit@3.0.1: - resolution: {integrity: sha512-MmnduQUuHCoFckZoWnXsTg7JaiLBJrKFj9UI2MbRPGaJeVpsLcVBu6P/IGZovziM/YBsellCmsprgNA+w0CzVg==} - - sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} @@ -1471,10 +1288,6 @@ packages: resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} engines: {node: '>=12'} - strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} - strnum@2.3.0: resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} @@ -1484,10 +1297,6 @@ packages: teex@1.0.1: resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} - term-size@2.2.1: - resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} - engines: {node: '>=8'} - text-decoder@1.2.7: resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} @@ -1498,10 +1307,6 @@ packages: resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} engines: {node: '>=18'} - tinyglobby@0.2.16: - resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.17: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} @@ -1518,13 +1323,6 @@ packages: resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} engines: {node: '>= 0.4'} - to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - - tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - traverse@0.3.9: resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} @@ -1564,10 +1362,6 @@ packages: universal-user-agent@7.0.3: resolution: {integrity: sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==} - universalify@0.1.2: - resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} - engines: {node: '>= 4.0.0'} - unzip-stream@0.3.4: resolution: {integrity: sha512-PyofABPVv+d7fL7GOpusx7eRT9YETY2X04PhwbSipdj6bMxVCFJrr+nm0Mxqbf9hUiTin/UsnuFWBXlDZFy0Cw==} @@ -1658,12 +1452,6 @@ packages: jsdom: optional: true - webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - - whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which-typed-array@1.1.20: resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} engines: {node: '>= 0.4'} @@ -1693,6 +1481,11 @@ packages: resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} engines: {node: '>=16.0.0'} + yaml@2.9.0: + resolution: {integrity: sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==} + engines: {node: '>= 14.6'} + hasBin: true + zip-stream@6.0.1: resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} engines: {node: '>= 14'} @@ -1865,8 +1658,6 @@ snapshots: - '@azure/core-client' - supports-color - '@babel/runtime@7.29.2': {} - '@bufbuild/protobuf@2.12.0': {} '@bufbuild/protoplugin@2.12.0': @@ -1877,167 +1668,142 @@ snapshots: transitivePeerDependencies: - supports-color - '@changesets/apply-release-plan@7.1.1': - dependencies: - '@changesets/config': 3.1.4 - '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - detect-indent: 6.1.0 - fs-extra: 7.0.1 - lodash.startcase: 4.4.0 - outdent: 0.5.0 - prettier: 2.8.8 - resolve-from: 5.0.0 - semver: 7.8.1 - - '@changesets/assemble-release-plan@6.0.10': + '@changesets/apply-release-plan@8.0.0-next.6': dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 + '@changesets/config': 4.0.0-next.5 + '@changesets/format': 0.1.0 + '@changesets/git': 4.0.0-next.5 + '@changesets/should-skip-package': 1.0.0-next.5 + '@changesets/types': 7.0.0-next.5 + import-meta-resolve: 4.2.0 + jsonc-parser: 3.3.1 semver: 7.8.1 - '@changesets/changelog-git@0.2.1': + '@changesets/assemble-release-plan@7.0.0-next.6': dependencies: - '@changesets/types': 6.1.0 + '@changesets/errors': 1.0.0-next.3 + '@changesets/get-dependents-graph': 3.0.0-next.5 + '@changesets/should-skip-package': 1.0.0-next.5 + '@changesets/types': 7.0.0-next.5 + semver: 7.8.1 - '@changesets/changelog-github@0.7.0': - dependencies: - '@changesets/get-github-info': 0.8.0 - '@changesets/types': 6.1.0 - dotenv: 8.6.0 - transitivePeerDependencies: - - encoding - - '@changesets/cli@2.31.0(@types/node@24.12.4)': - dependencies: - '@changesets/apply-release-plan': 7.1.1 - '@changesets/assemble-release-plan': 6.0.10 - '@changesets/changelog-git': 0.2.1 - '@changesets/config': 3.1.4 - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/get-release-plan': 4.0.16 - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.7 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.3(@types/node@24.12.4) - '@manypkg/get-packages': 1.1.3 - ansi-colors: 4.1.3 - enquirer: 2.4.1 - fs-extra: 7.0.1 - mri: 1.2.0 - package-manager-detector: 0.2.11 - picocolors: 1.1.1 - resolve-from: 5.0.0 + '@changesets/changelog-git@1.0.0-next.5': + dependencies: + '@changesets/types': 7.0.0-next.5 + + '@changesets/changelog-github@1.0.0-next.5': + dependencies: + '@changesets/get-github-info': 1.0.0-next.2 + '@changesets/types': 7.0.0-next.5 + + '@changesets/cli@3.0.0-next.6': + dependencies: + '@changesets/apply-release-plan': 8.0.0-next.6 + '@changesets/assemble-release-plan': 7.0.0-next.6 + '@changesets/changelog-git': 1.0.0-next.5 + '@changesets/config': 4.0.0-next.5 + '@changesets/errors': 1.0.0-next.3 + '@changesets/get-dependents-graph': 3.0.0-next.5 + '@changesets/git': 4.0.0-next.5 + '@changesets/pre': 3.0.0-next.5 + '@changesets/read': 1.0.0-next.6 + '@changesets/should-skip-package': 1.0.0-next.5 + '@changesets/types': 7.0.0-next.5 + '@changesets/write': 1.0.0-next.5 + '@clack/prompts': 1.5.1 + '@manypkg/get-packages': 3.1.0 + '@pnpm/deps.graph-sequencer': 1100.0.0 + cac: 7.0.0 + import-meta-resolve: 4.2.0 + launch-editor: 2.14.1 + package-manager-detector: 1.6.0 semver: 7.8.1 - spawndamnit: 3.0.1 - term-size: 2.2.1 - transitivePeerDependencies: - - '@types/node' + tinyexec: 1.2.4 - '@changesets/config@3.1.4': + '@changesets/config@4.0.0-next.5': dependencies: - '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.4 - '@changesets/logger': 0.1.1 - '@changesets/should-skip-package': 0.1.2 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 - micromatch: 4.0.8 + '@changesets/get-dependents-graph': 3.0.0-next.5 + '@changesets/should-skip-package': 1.0.0-next.5 + '@changesets/types': 7.0.0-next.5 + '@manypkg/get-packages': 3.1.0 + picomatch: 4.0.4 + + '@changesets/errors@1.0.0-next.3': {} - '@changesets/errors@0.2.0': + '@changesets/format@0.1.0': dependencies: - extendable-error: 0.1.7 + package-manager-detector: 1.6.0 - '@changesets/get-dependents-graph@2.1.4': + '@changesets/get-dependents-graph@3.0.0-next.5': dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.1 + '@changesets/types': 7.0.0-next.5 semver: 7.8.1 - '@changesets/get-github-info@0.8.0': + '@changesets/get-github-info@1.0.0-next.2': dependencies: dataloader: 1.4.0 - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - '@changesets/get-release-plan@4.0.16': + '@changesets/get-release-plan@5.0.0-next.6': dependencies: - '@changesets/assemble-release-plan': 6.0.10 - '@changesets/config': 3.1.4 - '@changesets/pre': 2.0.2 - '@changesets/read': 0.6.7 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - - '@changesets/get-version-range-type@0.4.0': {} + '@changesets/assemble-release-plan': 7.0.0-next.6 + '@changesets/config': 4.0.0-next.5 + '@changesets/pre': 3.0.0-next.5 + '@changesets/read': 1.0.0-next.6 + '@changesets/types': 7.0.0-next.5 + '@manypkg/get-packages': 3.1.0 '@changesets/ghcommit@2.1.1': dependencies: isomorphic-git: 1.38.1 - '@changesets/git@3.0.4': + '@changesets/git@4.0.0-next.5': dependencies: - '@changesets/errors': 0.2.0 - '@manypkg/get-packages': 1.1.3 - is-subdir: 1.2.0 - micromatch: 4.0.8 - spawndamnit: 3.0.1 + '@changesets/errors': 1.0.0-next.3 + '@changesets/types': 7.0.0-next.5 + '@manypkg/get-packages': 3.1.0 + picomatch: 4.0.4 + tinyexec: 1.2.4 - '@changesets/logger@0.1.1': + '@changesets/parse@1.0.0-next.6': dependencies: - picocolors: 1.1.1 + '@changesets/types': 7.0.0-next.5 + yaml: 2.9.0 - '@changesets/parse@0.4.3': + '@changesets/pre@3.0.0-next.5': dependencies: - '@changesets/types': 6.1.0 - js-yaml: 4.1.1 + '@changesets/errors': 1.0.0-next.3 + '@changesets/types': 7.0.0-next.5 + '@manypkg/get-packages': 3.1.0 - '@changesets/pre@2.0.2': + '@changesets/read@1.0.0-next.6': dependencies: - '@changesets/errors': 0.2.0 - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 - fs-extra: 7.0.1 + '@changesets/git': 4.0.0-next.5 + '@changesets/parse': 1.0.0-next.6 + '@changesets/types': 7.0.0-next.5 - '@changesets/read@0.6.7': + '@changesets/should-skip-package@1.0.0-next.5': dependencies: - '@changesets/git': 3.0.4 - '@changesets/logger': 0.1.1 - '@changesets/parse': 0.4.3 - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - p-filter: 2.1.0 - picocolors: 1.1.1 + '@changesets/types': 7.0.0-next.5 - '@changesets/should-skip-package@0.1.2': - dependencies: - '@changesets/types': 6.1.0 - '@manypkg/get-packages': 1.1.3 + '@changesets/types@7.0.0-next.5': {} - '@changesets/types@4.1.0': {} + '@changesets/write@1.0.0-next.5': + dependencies: + '@changesets/format': 0.1.0 + '@changesets/types': 7.0.0-next.5 + human-id: 4.1.3 - '@changesets/types@6.1.0': {} + '@clack/core@1.4.1': + dependencies: + fast-wrap-ansi: 0.2.2 + sisteransi: 1.0.5 - '@changesets/write@0.4.0': + '@clack/prompts@1.5.1': dependencies: - '@changesets/types': 6.1.0 - fs-extra: 7.0.1 - human-id: 4.1.3 - prettier: 2.8.8 + '@clack/core': 1.4.1 + fast-string-width: 3.0.2 + fast-wrap-ansi: 0.2.2 + sisteransi: 1.0.5 '@emnapi/core@1.10.0': dependencies: @@ -2055,13 +1821,6 @@ snapshots: tslib: 2.8.1 optional: true - '@inquirer/external-editor@1.0.3(@types/node@24.12.4)': - dependencies: - chardet: 2.1.1 - iconv-lite: 0.7.2 - optionalDependencies: - '@types/node': 24.12.4 - '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -2073,21 +1832,20 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.5': {} - '@manypkg/find-root@1.1.0': + '@manypkg/find-root@3.1.0': dependencies: - '@babel/runtime': 7.29.2 - '@types/node': 12.20.55 - find-up: 4.1.0 - fs-extra: 8.1.0 + '@manypkg/tools': 2.1.2 - '@manypkg/get-packages@1.1.3': + '@manypkg/get-packages@3.1.0': dependencies: - '@babel/runtime': 7.29.2 - '@changesets/types': 4.1.0 - '@manypkg/find-root': 1.1.0 - fs-extra: 8.1.0 - globby: 11.1.0 - read-yaml-file: 1.1.0 + '@manypkg/find-root': 3.1.0 + '@manypkg/tools': 2.1.2 + + '@manypkg/tools@2.1.2': + dependencies: + jju: 1.4.0 + tinyglobby: 0.2.17 + yaml: 2.9.0 '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: @@ -2098,18 +1856,6 @@ snapshots: '@nodable/entities@2.1.1': {} - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.20.1 - '@octokit/auth-token@6.0.0': {} '@octokit/core@7.0.6': @@ -2242,6 +1988,8 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true + '@pnpm/deps.graph-sequencer@1100.0.0': {} + '@protobuf-ts/plugin@2.11.1': dependencies: '@bufbuild/protobuf': 2.12.0 @@ -2330,8 +2078,6 @@ snapshots: '@types/estree@1.0.9': {} - '@types/node@12.20.55': {} - '@types/node@24.12.4': dependencies: undici-types: 7.16.0 @@ -2368,7 +2114,7 @@ snapshots: estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.13(@types/node@24.12.4) + vite: 8.0.13(@types/node@24.12.4)(yaml@2.9.0) '@vitest/pretty-format@4.1.6': dependencies: @@ -2400,8 +2146,6 @@ snapshots: agent-base@7.1.4: {} - ansi-colors@4.1.3: {} - ansi-regex@5.0.1: {} ansi-regex@6.2.2: {} @@ -2436,14 +2180,6 @@ snapshots: - bare-buffer - react-native-b4a - argparse@1.0.10: - dependencies: - sprintf-js: 1.0.3 - - argparse@2.0.1: {} - - array-union@2.1.0: {} - assertion-error@2.0.1: {} async-lock@1.4.1: {} @@ -2494,10 +2230,6 @@ snapshots: before-after-hook@4.0.0: {} - better-path-resolve@1.0.0: - dependencies: - is-windows: 1.0.2 - binary@0.3.0: dependencies: buffers: 0.1.1 @@ -2509,10 +2241,6 @@ snapshots: dependencies: balanced-match: 1.0.2 - braces@3.0.3: - dependencies: - fill-range: 7.1.1 - buffer-crc32@1.0.0: {} buffer@6.0.3: @@ -2522,6 +2250,8 @@ snapshots: buffers@0.1.1: {} + cac@7.0.0: {} + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -2545,8 +2275,6 @@ snapshots: dependencies: traverse: 0.3.9 - chardet@2.1.1: {} - clean-git-ref@2.0.1: {} color-convert@2.0.1: @@ -2598,16 +2326,8 @@ snapshots: es-errors: 1.3.0 gopd: 1.2.0 - detect-indent@6.1.0: {} - diff3@0.0.3: {} - dir-glob@3.0.1: - dependencies: - path-type: 4.0.0 - - dotenv@8.6.0: {} - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -2620,11 +2340,6 @@ snapshots: emoji-regex@9.2.2: {} - enquirer@2.4.1: - dependencies: - ansi-colors: 4.1.3 - strip-ansi: 6.0.1 - es-define-property@1.0.1: {} es-errors@1.3.0: {} @@ -2635,8 +2350,6 @@ snapshots: dependencies: es-errors: 1.3.0 - esprima@4.0.1: {} - estree-walker@3.0.3: dependencies: '@types/estree': 1.0.9 @@ -2653,19 +2366,19 @@ snapshots: expect-type@1.3.0: {} - extendable-error@0.1.7: {} - fast-content-type-parse@3.0.0: {} fast-fifo@1.3.2: {} - fast-glob@3.3.3: + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + + fast-wrap-ansi@0.2.2: dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 + fast-string-width: 3.0.2 fast-xml-builder@1.2.0: dependencies: @@ -2680,23 +2393,10 @@ snapshots: strnum: 2.3.0 xml-naming: 0.1.0 - fastq@1.20.1: - dependencies: - reusify: 1.1.0 - fdir@6.5.0(picomatch@4.0.4): optionalDependencies: picomatch: 4.0.4 - fill-range@7.1.1: - dependencies: - to-regex-range: 5.0.1 - - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - for-each@0.3.5: dependencies: is-callable: 1.2.7 @@ -2706,18 +2406,6 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fs-extra@7.0.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - - fs-extra@8.1.0: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - fs-fixture@2.13.0: {} fsevents@2.3.3: @@ -2743,10 +2431,6 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - glob-parent@5.1.2: - dependencies: - is-glob: 4.0.3 - glob@10.5.0: dependencies: foreground-child: 3.3.1 @@ -2756,15 +2440,6 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - globby@11.1.0: - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -2799,40 +2474,24 @@ snapshots: human-id@4.1.3: {} - iconv-lite@0.7.2: - dependencies: - safer-buffer: 2.1.2 - ieee754@1.2.1: {} ignore@5.3.2: {} + import-meta-resolve@4.2.0: {} + inherits@2.0.4: {} is-callable@1.2.7: {} - is-extglob@2.1.1: {} - is-fullwidth-code-point@3.0.0: {} - is-glob@4.0.3: - dependencies: - is-extglob: 2.1.1 - - is-number@7.0.0: {} - is-stream@2.0.1: {} - is-subdir@1.2.0: - dependencies: - better-path-resolve: 1.0.0 - is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.20 - is-windows@1.0.2: {} - isarray@1.0.0: {} isarray@2.0.5: {} @@ -2859,32 +2518,22 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - js-yaml@3.14.2: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@4.1.1: - dependencies: - argparse: 2.0.1 + jju@1.4.0: {} json-with-bigint@3.5.8: {} - jsonfile@4.0.0: - optionalDependencies: - graceful-fs: 4.2.11 + jsonc-parser@3.3.1: {} jwt-decode@4.0.0: {} - lazystream@1.0.1: + launch-editor@2.14.1: dependencies: - readable-stream: 2.3.8 + picocolors: 1.1.1 + shell-quote: 1.8.4 - locate-path@5.0.0: + lazystream@1.0.1: dependencies: - p-locate: 4.1.0 - - lodash.startcase@4.4.0: {} + readable-stream: 2.3.8 lodash@4.18.1: {} @@ -2898,13 +2547,6 @@ snapshots: math-intrinsics@1.1.0: {} - merge2@1.4.1: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.2 - mimic-response@3.1.0: {} minimatch@5.1.9: @@ -2927,14 +2569,8 @@ snapshots: dependencies: minimist: 1.2.8 - mri@1.2.0: {} - ms@2.1.3: {} - node-fetch@2.7.0: - dependencies: - whatwg-url: 5.0.0 - normalize-path@3.0.0: {} obug@2.1.1: {} @@ -2943,8 +2579,6 @@ snapshots: dependencies: wrappy: 1.0.2 - outdent@0.5.0: {} - oxfmt@0.48.0: dependencies: tinypool: 2.1.0 @@ -2969,32 +2603,12 @@ snapshots: '@oxfmt/binding-win32-ia32-msvc': 0.48.0 '@oxfmt/binding-win32-x64-msvc': 0.48.0 - p-filter@2.1.0: - dependencies: - p-map: 2.1.0 - - p-limit@2.3.0: - dependencies: - p-try: 2.2.0 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - - p-map@2.1.0: {} - - p-try@2.2.0: {} - package-json-from-dist@1.0.1: {} - package-manager-detector@0.2.11: - dependencies: - quansync: 0.2.11 + package-manager-detector@1.6.0: {} pako@1.0.11: {} - path-exists@4.0.0: {} - path-expression-matcher@1.5.0: {} path-key@3.1.1: {} @@ -3004,37 +2618,20 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.3 - path-type@4.0.0: {} - pathe@2.0.3: {} picocolors@1.1.1: {} - picomatch@2.3.2: {} - picomatch@4.0.4: {} pify@4.0.1: {} possible-typed-array-names@1.1.0: {} - prettier@2.8.8: {} - process-nextick-args@2.0.1: {} process@0.11.10: {} - quansync@0.2.11: {} - - queue-microtask@1.2.3: {} - - read-yaml-file@1.1.0: - dependencies: - graceful-fs: 4.2.11 - js-yaml: 3.14.2 - pify: 4.0.1 - strip-bom: 3.0.0 - readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -3057,10 +2654,6 @@ snapshots: dependencies: minimatch: 5.1.9 - resolve-from@5.0.0: {} - - reusify@1.1.0: {} - rolldown@1.0.1: dependencies: '@oxc-project/types': 0.130.0 @@ -3082,16 +2675,10 @@ snapshots: '@rolldown/binding-win32-arm64-msvc': 1.0.1 '@rolldown/binding-win32-x64-msvc': 1.0.1 - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} - safer-buffer@2.1.2: {} - semver@7.8.1: {} set-function-length@1.2.2: @@ -3115,6 +2702,8 @@ snapshots: shebang-regex@3.0.0: {} + shell-quote@1.8.4: {} + siginfo@2.0.0: {} signal-exit@4.1.0: {} @@ -3127,14 +2716,7 @@ snapshots: once: 1.4.0 simple-concat: 1.0.1 - slash@3.0.0: {} - - spawndamnit@3.0.1: - dependencies: - cross-spawn: 7.0.6 - signal-exit: 4.1.0 - - sprintf-js@1.0.3: {} + sisteransi@1.0.5: {} stackback@0.0.2: {} @@ -3177,8 +2759,6 @@ snapshots: dependencies: ansi-regex: 6.2.2 - strip-bom@3.0.0: {} - strnum@2.3.0: {} tar-stream@3.2.0: @@ -3199,8 +2779,6 @@ snapshots: - bare-abort-controller - react-native-b4a - term-size@2.2.1: {} - text-decoder@1.2.7: dependencies: b4a: 1.8.1 @@ -3211,11 +2789,6 @@ snapshots: tinyexec@1.2.4: {} - tinyglobby@0.2.16: - dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 - tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -3231,12 +2804,6 @@ snapshots: safe-buffer: 5.2.1 typed-array-buffer: 1.0.3 - to-regex-range@5.0.1: - dependencies: - is-number: 7.0.0 - - tr46@0.0.3: {} - traverse@0.3.9: {} tslib@2.8.1: {} @@ -3261,8 +2828,6 @@ snapshots: universal-user-agent@7.0.3: {} - universalify@0.1.2: {} - unzip-stream@0.3.4: dependencies: binary: 0.3.0 @@ -3270,7 +2835,7 @@ snapshots: util-deprecate@1.0.2: {} - vite@8.0.13(@types/node@24.12.4): + vite@8.0.13(@types/node@24.12.4)(yaml@2.9.0): dependencies: picomatch: 4.0.4 rolldown: 1.0.1 @@ -3278,6 +2843,7 @@ snapshots: optionalDependencies: '@types/node': 24.12.4 fsevents: 2.3.3 + yaml: 2.9.0 vitest@4.1.6(@types/node@24.12.4)(vite@8.0.13): dependencies: @@ -3297,22 +2863,15 @@ snapshots: std-env: 4.1.0 tinybench: 2.9.0 tinyexec: 1.2.4 - tinyglobby: 0.2.16 + tinyglobby: 0.2.17 tinyrainbow: 3.1.0 - vite: 8.0.13(@types/node@24.12.4) + vite: 8.0.13(@types/node@24.12.4)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 24.12.4 transitivePeerDependencies: - msw - webidl-conversions@3.0.1: {} - - whatwg-url@5.0.0: - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 @@ -3348,6 +2907,8 @@ snapshots: xml-naming@0.1.0: {} + yaml@2.9.0: {} + zip-stream@6.0.1: dependencies: archiver-utils: 5.0.2 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index e16a2041..4a6d2bfe 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,7 +3,17 @@ dedupePeers: true dedupePeerDependents: true minimumReleaseAge: 10080 minimumReleaseAgeExclude: - - "@changesets/ghcommit@2.1.1" + - "@changesets/apply-release-plan@8.0.0-next.6" + - "@changesets/assemble-release-plan@7.0.0-next.6" + - "@changesets/changelog-github@1.0.0-next.5" + - "@changesets/cli@3.0.0-next.6" + - "@changesets/get-release-plan@5.0.0-next.6" + - "@changesets/git@4.0.0-next.5" + - "@changesets/parse@1.0.0-next.6" + - "@changesets/pre@3.0.0-next.5" + - "@changesets/read@1.0.0-next.6" + - "@changesets/types@7.0.0-next.5" + - "@changesets/write@1.0.0-next.5" overrides: lightningcss: "-" # we do not bundle any css diff --git a/src/pr-status/message.ts b/src/pr-status/message.ts index baa273b4..6e01b581 100644 --- a/src/pr-status/message.ts +++ b/src/pr-status/message.ts @@ -1,5 +1,5 @@ import * as github from "@actions/github"; -import getReleasePlan from "@changesets/get-release-plan"; +import { getReleasePlan } from "@changesets/get-release-plan"; import type { ComprehensiveRelease, ReleasePlan, diff --git a/src/pr-status/worktree.test.ts b/src/pr-status/worktree.test.ts index 05105506..1c3e1505 100644 --- a/src/pr-status/worktree.test.ts +++ b/src/pr-status/worktree.test.ts @@ -1,6 +1,6 @@ import { pathToFileURL } from "node:url"; import type * as github from "@actions/github"; -import getReleasePlan from "@changesets/get-release-plan"; +import { getReleasePlan } from "@changesets/get-release-plan"; import { createFixture } from "fs-fixture"; import { exec } from "tinyexec"; import { describe, expect, it } from "vitest"; @@ -28,6 +28,7 @@ describe("getPullRequestWorktree", () => { private: true, workspaces: ["packages/*"], }), + "package-lock.json": "", "packages/pkg-a/package.json": JSON.stringify({ name: "pkg-a", version: "1.0.0", diff --git a/src/readChangesetState.ts b/src/readChangesetState.ts index c64c2644..8c8635a6 100644 --- a/src/readChangesetState.ts +++ b/src/readChangesetState.ts @@ -1,5 +1,5 @@ import { readPreState } from "@changesets/pre"; -import readChangesets from "@changesets/read"; +import { readChangesets } from "@changesets/read"; import type { PreState, NewChangeset } from "@changesets/types"; export type ChangesetState = { diff --git a/src/run.test.ts b/src/run.test.ts index bb1bc681..0327e7ce 100644 --- a/src/run.test.ts +++ b/src/run.test.ts @@ -1,6 +1,6 @@ import path from "node:path"; import type { Changeset } from "@changesets/types"; -import writeChangeset from "@changesets/write"; +import { writeChangeset } from "@changesets/write"; import { createFixture } from "fs-fixture"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { GitHub } from "./github.ts"; @@ -56,6 +56,7 @@ function createSimpleProjectFixture() { private: true, workspaces: ["packages/*"], }), + "package-lock.json": "", }); } @@ -82,6 +83,7 @@ function createIgnoredPackageFixture() { private: true, workspaces: ["packages/*"], }), + "package-lock.json": "", }); } diff --git a/src/run.ts b/src/run.ts index 69fd1449..ec62a606 100644 --- a/src/run.ts +++ b/src/run.ts @@ -117,7 +117,7 @@ export async function runPublish({ let { packages, tool } = await getPackages(cwd); let releasedPackages: Package[] = []; - if (tool !== "root") { + if (tool.type !== "root") { let newTagRegex = /New tag:\s+(@[^/]+\/[^@]+|[^/]+)@([^\s]+)/; let packagesByName = new Map(packages.map((x) => [x.packageJson.name, x])); From a35a66bd1ec69b007f5cef9646f34a13eb610a41 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Thu, 25 Jun 2026 19:01:17 +0800 Subject: [PATCH 21/62] Update `@changesets/ghcommit` to v3 beta (#675) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Mateusz Burzyński --- package.json | 2 +- pnpm-lock.yaml | 351 +------------------------------------------- pnpm-workspace.yaml | 1 + src/github.ts | 13 +- src/run.test.ts | 2 +- src/run.ts | 7 - 6 files changed, 13 insertions(+), 363 deletions(-) diff --git a/package.json b/package.json index 6b2288c6..00e45134 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "@actions/exec": "^3.0.0", "@actions/github": "^9.1.1", "@changesets/get-release-plan": "^5.0.0-next.6", - "@changesets/ghcommit": "^2.1.1", + "@changesets/ghcommit": "^3.0.0-next.1", "@changesets/git": "^4.0.0-next.5", "@changesets/pre": "^3.0.0-next.5", "@changesets/read": "^1.0.0-next.6", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index edad9c52..ca4d71f4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,8 +29,8 @@ importers: specifier: ^5.0.0-next.6 version: 5.0.0-next.6 '@changesets/ghcommit': - specifier: ^2.1.1 - version: 2.1.1 + specifier: ^3.0.0-next.1 + version: 3.0.0-next.1 '@changesets/git': specifier: ^4.0.0-next.5 version: 4.0.0-next.5 @@ -228,8 +228,9 @@ packages: resolution: {integrity: sha512-7UToB7ng4QnbShxX6JXqZPhjCFlrB9BH8KTVdG4f1J7yGQ8wgeOn1wJkCDvvymdxVd62jeBCcvBWn6db5Lzm4w==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/ghcommit@2.1.1': - resolution: {integrity: sha512-rtdVQucW4O1328NiNdGSLWlsaVu/B9faNGeDrrQqtf0FDqUN1WhbtHuofjVmSI2VQELgM2F4IjfWu6dji5CwGA==} + '@changesets/ghcommit@3.0.0-next.1': + resolution: {integrity: sha512-wWhc316LkE64P0fbNoKxEyUk5vpkQEF52m1XUBF2xJrE++cGq0PZSu9ZeXLKExOdXKVkAOGokmnXlfnYzCt1NQ==} + engines: {node: ^22.11 || ^24 || >=26} '@changesets/git@4.0.0-next.5': resolution: {integrity: sha512-dhQ5qxmxVy8vQD6TBjNuVB3cv3MoyKogFIX+LFXi4hWceXeysOKuVytpAX84ywQw401uHuYlObZSU6qyj/hzzw==} @@ -707,16 +708,9 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - async-lock@1.4.1: - resolution: {integrity: sha512-Az2ZTpuytrtqENulXwO3GGv1Bztugx6TT37NIo7imr/Qo0gsYiGtSdBa2B6fsXhTpVZDNfu1Qn3pk531e3q+nQ==} - async@3.2.6: resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - b4a@1.8.1: resolution: {integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==} peerDependencies: @@ -799,18 +793,6 @@ packages: resolution: {integrity: sha512-tixWYgm5ZoOD+3g6UTea91eow5z6AAHaho3g0V9CNSNb45gM8SmflpAc+GRd1InC4AqN/07Unrgp56Y94N9hJQ==} engines: {node: '>=20.19.0'} - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.9: - resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - chai@6.2.2: resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} @@ -818,9 +800,6 @@ packages: chainsaw@0.1.0: resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} - clean-git-ref@2.0.1: - resolution: {integrity: sha512-bLSptAy2P0s6hU4PzuIMKmMJJSE6gLXGH1cntDu7bWJUksvuM+7ReOK61mozULErYvP6a15rnYl0zFDef+pyPw==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -867,21 +846,6 @@ packages: supports-color: optional: true - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - diff3@0.0.3: - resolution: {integrity: sha512-iSq8ngPOt0K53A6eVr4d5Kn6GNrM2nQZtC740pzIriHtn4pOQ2lyzEXQMBeVcWERN0ye7fhBsk9PbLLQOnUx/g==} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -891,21 +855,9 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - es-module-lexer@2.1.0: resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -955,10 +907,6 @@ packages: picomatch: optional: true - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} @@ -972,44 +920,14 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.3: - resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} - engines: {node: '>= 0.4'} - http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} @@ -1025,20 +943,12 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -1047,24 +957,12 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - isomorphic-git@1.38.1: - resolution: {integrity: sha512-Vd2u5qDLa04fA/h5nUMU5UuffPXqg+3D3bJIV3n7Sno2qS3XMinUXRvNHrGPVy2kkC1ad5SPCC3WcpXjn0L9oQ==} - engines: {node: '>=14.17'} - hasBin: true - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -1100,14 +998,6 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - minimatch@5.1.9: resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} engines: {node: '>=10'} @@ -1119,9 +1009,6 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - minimisted@2.0.1: - resolution: {integrity: sha512-1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==} - minipass@7.1.3: resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} engines: {node: '>=16 || 14 >=14.17'} @@ -1140,9 +1027,6 @@ packages: obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - oxfmt@0.48.0: resolution: {integrity: sha512-AVaLh+7XeGx+R1zfFV+f6VV61nT2MWVJXVUDhbTm5LBWGyNt64xAyh3NYYyjeY2WykNt9AvqSQLPHcbWquYF9g==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1154,9 +1038,6 @@ packages: package-manager-detector@1.6.0: resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} - pako@1.0.11: - resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} - path-expression-matcher@1.5.0: resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} engines: {node: '>=14.0.0'} @@ -1179,14 +1060,6 @@ packages: resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} engines: {node: '>=12'} - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -1220,15 +1093,6 @@ packages: engines: {node: '>=10'} hasBin: true - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - sha.js@2.4.12: - resolution: {integrity: sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==} - engines: {node: '>= 0.10'} - hasBin: true - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -1248,12 +1112,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - - simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -1319,10 +1177,6 @@ packages: resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} - to-buffer@1.2.2: - resolution: {integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==} - engines: {node: '>= 0.4'} - traverse@0.3.9: resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} @@ -1333,10 +1187,6 @@ packages: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - typescript@3.9.10: resolution: {integrity: sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==} engines: {node: '>=4.2.0'} @@ -1452,10 +1302,6 @@ packages: jsdom: optional: true - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} - engines: {node: '>= 0.4'} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -1474,9 +1320,6 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - xml-naming@0.1.0: resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} engines: {node: '>=16.0.0'} @@ -1752,9 +1595,9 @@ snapshots: '@changesets/types': 7.0.0-next.5 '@manypkg/get-packages': 3.1.0 - '@changesets/ghcommit@2.1.1': + '@changesets/ghcommit@3.0.0-next.1': dependencies: - isomorphic-git: 1.38.1 + tinyexec: 1.2.4 '@changesets/git@4.0.0-next.5': dependencies: @@ -2182,14 +2025,8 @@ snapshots: assertion-error@2.0.1: {} - async-lock@1.4.1: {} - async@3.2.6: {} - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - b4a@1.8.1: {} balanced-match@1.0.2: {} @@ -2252,31 +2089,12 @@ snapshots: cac@7.0.0: {} - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.9: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - chai@6.2.2: {} chainsaw@0.1.0: dependencies: traverse: 0.3.9 - clean-git-ref@2.0.1: {} - color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -2316,40 +2134,14 @@ snapshots: dependencies: ms: 2.1.3 - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - diff3@0.0.3: {} - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - eastasianwidth@0.2.0: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - es-module-lexer@2.1.0: {} - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - estree-walker@3.0.3: dependencies: '@types/estree': 1.0.9 @@ -2397,10 +2189,6 @@ snapshots: optionalDependencies: picomatch: 4.0.4 - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 @@ -2411,26 +2199,6 @@ snapshots: fsevents@2.3.3: optional: true - function-bind@1.1.2: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.3 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - glob@10.5.0: dependencies: foreground-child: 3.3.1 @@ -2440,24 +2208,8 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - gopd@1.2.0: {} - graceful-fs@4.2.11: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.3: - dependencies: - function-bind: 1.1.2 - http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 @@ -2476,42 +2228,18 @@ snapshots: ieee754@1.2.1: {} - ignore@5.3.2: {} - import-meta-resolve@4.2.0: {} inherits@2.0.4: {} - is-callable@1.2.7: {} - is-fullwidth-code-point@3.0.0: {} is-stream@2.0.1: {} - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.20 - isarray@1.0.0: {} - isarray@2.0.5: {} - isexe@2.0.0: {} - isomorphic-git@1.38.1: - dependencies: - async-lock: 1.4.1 - clean-git-ref: 2.0.1 - crc-32: 1.2.2 - diff3: 0.0.3 - ignore: 5.3.2 - minimisted: 2.0.1 - pako: 1.0.11 - pify: 4.0.1 - readable-stream: 4.7.0 - sha.js: 2.4.12 - simple-get: 4.0.1 - jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -2545,10 +2273,6 @@ snapshots: markdown-table@3.0.4: {} - math-intrinsics@1.1.0: {} - - mimic-response@3.1.0: {} - minimatch@5.1.9: dependencies: brace-expansion: 2.1.1 @@ -2559,10 +2283,6 @@ snapshots: minimist@1.2.8: {} - minimisted@2.0.1: - dependencies: - minimist: 1.2.8 - minipass@7.1.3: {} mkdirp@0.5.6: @@ -2575,10 +2295,6 @@ snapshots: obug@2.1.1: {} - once@1.4.0: - dependencies: - wrappy: 1.0.2 - oxfmt@0.48.0: dependencies: tinypool: 2.1.0 @@ -2607,8 +2323,6 @@ snapshots: package-manager-detector@1.6.0: {} - pako@1.0.11: {} - path-expression-matcher@1.5.0: {} path-key@3.1.1: {} @@ -2624,10 +2338,6 @@ snapshots: picomatch@4.0.4: {} - pify@4.0.1: {} - - possible-typed-array-names@1.1.0: {} - process-nextick-args@2.0.1: {} process@0.11.10: {} @@ -2681,21 +2391,6 @@ snapshots: semver@7.8.1: {} - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - sha.js@2.4.12: - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - to-buffer: 1.2.2 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -2708,14 +2403,6 @@ snapshots: signal-exit@4.1.0: {} - simple-concat@1.0.1: {} - - simple-get@4.0.1: - dependencies: - decompress-response: 6.0.0 - once: 1.4.0 - simple-concat: 1.0.1 - sisteransi@1.0.5: {} stackback@0.0.2: {} @@ -2798,24 +2485,12 @@ snapshots: tinyrainbow@3.1.0: {} - to-buffer@1.2.2: - dependencies: - isarray: 2.0.5 - safe-buffer: 5.2.1 - typed-array-buffer: 1.0.3 - traverse@0.3.9: {} tslib@2.8.1: {} tunnel@0.0.6: {} - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - typescript@3.9.10: {} typescript@5.4.5: {} @@ -2872,16 +2547,6 @@ snapshots: transitivePeerDependencies: - msw - which-typed-array@1.1.20: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.9 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -2903,8 +2568,6 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.2.0 - wrappy@1.0.2: {} - xml-naming@0.1.0: {} yaml@2.9.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4a6d2bfe..fc637a54 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -8,6 +8,7 @@ minimumReleaseAgeExclude: - "@changesets/changelog-github@1.0.0-next.5" - "@changesets/cli@3.0.0-next.6" - "@changesets/get-release-plan@5.0.0-next.6" + - "@changesets/ghcommit@3.0.0-next.1" - "@changesets/git@4.0.0-next.5" - "@changesets/parse@1.0.0-next.6" - "@changesets/pre@3.0.0-next.5" diff --git a/src/github.ts b/src/github.ts index eee00019..54553463 100644 --- a/src/github.ts +++ b/src/github.ts @@ -2,7 +2,7 @@ import { Buffer } from "node:buffer"; import * as core from "@actions/core"; import { exec, getExecOutput } from "@actions/exec"; import { context } from "@actions/github"; -import { commitChangesFromRepo } from "@changesets/ghcommit/git"; +import { commitChangesSinceBase } from "@changesets/ghcommit"; import { setupOctokit, type Octokit } from "./octokit.ts"; export type CommitMode = "git-cli" | "github-api"; @@ -146,14 +146,7 @@ export class GitHub { async pushChanges({ branch, message }: { branch: string; message: string }) { if (this.commitMode === "github-api") { - /** - * Only add files form the current working directory - * - * This will emulate the behavior of `git add .`, - * used in {@link commitAll}. - */ - const addFromDirectory = this.cwd; - return commitChangesFromRepo({ + await commitChangesSinceBase({ octokit: this.octokit, ...context.repo, branch, @@ -162,8 +155,8 @@ export class GitHub { commit: context.sha, }, cwd: this.cwd, - force: true, }); + return; } if (!(await checkIfClean({ cwd: this.cwd }))) { await commitAll(message, { cwd: this.cwd }); diff --git a/src/run.test.ts b/src/run.test.ts index 0327e7ce..24051d23 100644 --- a/src/run.test.ts +++ b/src/run.test.ts @@ -20,7 +20,7 @@ vi.mock("@actions/github", () => ({ graphql: mockedGraphql, }), })); -vi.mock("@changesets/ghcommit/git"); +vi.mock("@changesets/ghcommit"); let mockedGithubMethods = { pulls: { diff --git a/src/run.ts b/src/run.ts index ec62a606..20931091 100644 --- a/src/run.ts +++ b/src/run.ts @@ -321,13 +321,6 @@ export async function runVersion({ !!preState ? ` (${preState.tag})` : "" }`; - /** - * Fetch any existing pull requests that are open against the branch, - * before we push any changes that may inadvertently close the existing PRs. - * - * (`@changesets/ghcommit` has to reset the branch to the same commit as the base, - * which GitHub will then react to by closing the PRs) - */ const existingPullRequests = await octokit.rest.pulls.list({ ...context.repo, state: "open", From 164652bdd60525670d95291addb8c6f92833ac60 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Tue, 30 Jun 2026 08:20:57 +0800 Subject: [PATCH 22/62] Remove GITHUB_TOKEN env var support (#674) --- .changeset/fiery-toes-vanish.md | 5 +++++ src/index.ts | 16 ++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 .changeset/fiery-toes-vanish.md diff --git a/.changeset/fiery-toes-vanish.md b/.changeset/fiery-toes-vanish.md new file mode 100644 index 00000000..3cf5270b --- /dev/null +++ b/.changeset/fiery-toes-vanish.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": major +--- + +Remove support for passing custom GitHub token through the GITHUB_TOKEN environment variable. It should be passed to the `github-token` input instead. diff --git a/src/index.ts b/src/index.ts index ef4b317e..e74a29ae 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,16 +3,16 @@ import * as core from "@actions/core"; import { GitHub } from "./github.ts"; import readChangesetState from "./readChangesetState.ts"; import { runPublish, runVersion } from "./run.ts"; -import { fileExists, getOptionalInput } from "./utils.ts"; +import { fileExists, getOptionalInput, getRequiredInput } from "./utils.ts"; (async () => { - // to maintain compatibility with workflows created before github-token input was introduced - // it's important to prefer the explicitly set GITHUB_TOKEN over the default token coming from github.token - let githubToken = process.env.GITHUB_TOKEN || core.getInput("github-token"); - - if (!githubToken) { - core.setFailed("Please add the GITHUB_TOKEN to the changesets action"); - return; + const githubToken = getRequiredInput("github-token"); + if (process.env.GITHUB_TOKEN && process.env.GITHUB_TOKEN !== githubToken) { + throw new Error( + 'The GITHUB_TOKEN environment variable is set and does not match the "github-token" input. ' + + 'Please pass the custom GitHub token to the "github-token" input and ' + + "remove the GITHUB_TOKEN environment variable to avoid conflicts.", + ); } // If the user needs to change the cwd, set `working-directory` in the step instead From 0eae789230defbc4ad287e9b476aba7e842e34e0 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Tue, 30 Jun 2026 16:24:21 +0800 Subject: [PATCH 23/62] Rename to kebab-case for root action inputs and outputs (#668) * Rename to kebab-case for root action inputs and outputs * Throw on renamed inputs --- .changeset/yellow-roses-fix.md | 5 +++++ action.yml | 14 +++++++------- src/index.ts | 32 ++++++++++++++++++++++---------- src/utils.ts | 10 ++++++++++ 4 files changed, 44 insertions(+), 17 deletions(-) create mode 100644 .changeset/yellow-roses-fix.md diff --git a/.changeset/yellow-roses-fix.md b/.changeset/yellow-roses-fix.md new file mode 100644 index 00000000..21c93839 --- /dev/null +++ b/.changeset/yellow-roses-fix.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": major +--- + +Rename the input and output names to kebab-case instead of camelCase to match the official GitHub actions pattern diff --git a/action.yml b/action.yml index 8f2ccb18..c38f8386 100644 --- a/action.yml +++ b/action.yml @@ -21,15 +21,15 @@ inputs: title: description: The pull request title. Default to `Version Packages` required: false - setupGitUser: + setup-git-user: description: Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` required: false default: true - createGithubReleases: + create-github-releases: description: "A boolean value to indicate whether to create Github releases after `publish` or not" required: false default: true - commitMode: + commit-mode: description: > An enum to specify the commit mode. Use "git-cli" to push changes using the Git CLI, or "github-api" to push changes via the GitHub API. When using "github-api", @@ -40,18 +40,18 @@ inputs: branch: description: Sets the branch in which the action will run. Default to `github.ref_name` if not provided required: false - prDraft: + pr-draft: description: 'Controls draft PR behavior. Use "create" to create new version PRs as draft, or "always" to also convert existing version PRs back to draft when updating them.' required: false outputs: published: description: A boolean value to indicate whether a publishing is happened or not - publishedPackages: + published-packages: description: > A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` - hasChangesets: + has-changesets: description: A boolean about whether there were changesets. Useful if you want to create your own publishing functionality. - pullRequestNumber: + pull-request-number: description: The pull request number that was created or updated branding: icon: "package" diff --git a/src/index.ts b/src/index.ts index e74a29ae..1ce7cafa 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,9 +3,21 @@ import * as core from "@actions/core"; import { GitHub } from "./github.ts"; import readChangesetState from "./readChangesetState.ts"; import { runPublish, runVersion } from "./run.ts"; -import { fileExists, getOptionalInput, getRequiredInput } from "./utils.ts"; +import { + fileExists, + getOptionalInput, + getRequiredInput, + throwOnRenamedInputs, +} from "./utils.ts"; (async () => { + throwOnRenamedInputs({ + commitMode: "commit-mode", + createGithubReleases: "create-github-releases", + prDraft: "pr-draft", + setupGitUser: "setup-git-user", + }); + const githubToken = getRequiredInput("github-token"); if (process.env.GITHUB_TOKEN && process.env.GITHUB_TOKEN !== githubToken) { throw new Error( @@ -18,14 +30,14 @@ import { fileExists, getOptionalInput, getRequiredInput } from "./utils.ts"; // If the user needs to change the cwd, set `working-directory` in the step instead const cwd = process.cwd(); - const commitMode = getOptionalInput("commitMode") ?? "git-cli"; - const prDraft = getOptionalInput("prDraft"); + const commitMode = getOptionalInput("commit-mode") ?? "git-cli"; + const prDraft = getOptionalInput("pr-draft"); if (commitMode !== "git-cli" && commitMode !== "github-api") { core.setFailed(`Invalid commit mode: ${commitMode}`); return; } if (prDraft !== undefined && prDraft !== "always" && prDraft !== "create") { - core.setFailed(`Invalid prDraft: ${prDraft}`); + core.setFailed(`Invalid pr-draft: ${prDraft}`); return; } const github = new GitHub({ @@ -34,7 +46,7 @@ import { fileExists, getOptionalInput, getRequiredInput } from "./utils.ts"; commitMode, }); - let setupGitUser = core.getBooleanInput("setupGitUser"); + let setupGitUser = core.getBooleanInput("setup-git-user"); if (setupGitUser) { core.info("setting git user"); @@ -51,8 +63,8 @@ import { fileExists, getOptionalInput, getRequiredInput } from "./utils.ts"; let hasPublishScript = !!publishScript; core.setOutput("published", "false"); - core.setOutput("publishedPackages", "[]"); - core.setOutput("hasChangesets", String(hasChangesets)); + core.setOutput("published-packages", "[]"); + core.setOutput("has-changesets", String(hasChangesets)); switch (true) { case !hasChangesets && !hasPublishScript: @@ -113,14 +125,14 @@ import { fileExists, getOptionalInput, getRequiredInput } from "./utils.ts"; const result = await runPublish({ script: publishScript, github, - createGithubReleases: core.getBooleanInput("createGithubReleases"), + createGithubReleases: core.getBooleanInput("create-github-releases"), cwd, }); if (result.published) { core.setOutput("published", "true"); core.setOutput( - "publishedPackages", + "published-packages", JSON.stringify(result.publishedPackages), ); } @@ -154,7 +166,7 @@ import { fileExists, getOptionalInput, getRequiredInput } from "./utils.ts"; branch: getOptionalInput("branch"), }); - core.setOutput("pullRequestNumber", String(pullRequestNumber)); + core.setOutput("pull-request-number", String(pullRequestNumber)); return; } diff --git a/src/utils.ts b/src/utils.ts index 205eb5cf..6a626e3f 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -135,6 +135,16 @@ export function getRequiredInput(name: string) { return core.getInput(name, { required: true }); } +export function throwOnRenamedInputs(renames: Record) { + for (const [oldInput, newInput] of Object.entries(renames)) { + if (core.getInput(oldInput)) { + throw new Error( + `The input "${oldInput}" has been renamed to "${newInput}". Please update your workflow file.`, + ); + } + } +} + function resolveChangesetsCli(cwd: string) { return require.resolve("@changesets/cli/bin.js", { paths: [cwd], From ca57073900dc678254406a052a03c0c8824e319d Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Wed, 1 Jul 2026 15:30:13 +0800 Subject: [PATCH 24/62] Split git tag and github release options (#680) * Split git tag and github release options * Rename to push-git-tags * Validate inputs --- .changeset/chubby-geese-sink.md | 7 +++++++ action.yml | 6 ++++++ publish/action.yml | 6 ++++++ src/index.ts | 14 +++++++++++++- src/publish/index.ts | 10 ++++++++++ src/run.ts | 18 +++++++++++++----- 6 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 .changeset/chubby-geese-sink.md diff --git a/.changeset/chubby-geese-sink.md b/.changeset/chubby-geese-sink.md new file mode 100644 index 00000000..c1dad759 --- /dev/null +++ b/.changeset/chubby-geese-sink.md @@ -0,0 +1,7 @@ +--- +"@changesets/action": major +--- + +Add a new `push-git-tags` option that complements `create-github-releases` to control specifically if git tags should be created but not GitHub releases. + +If `create-github-releases` was previously set to `false`, which also indirectly disabled git tag creation, git tags will now be created instead by default. If this is not desired, set `push-git-tags` to `false` explicitly. diff --git a/action.yml b/action.yml index c38f8386..c0f2923b 100644 --- a/action.yml +++ b/action.yml @@ -29,6 +29,12 @@ inputs: description: "A boolean value to indicate whether to create Github releases after `publish` or not" required: false default: true + push-git-tags: + description: > + Whether to create git tags after publish. If `create-github-releases` is set to `true`, + this option will also always be `true`. + required: false + default: true commit-mode: description: > An enum to specify the commit mode. Use "git-cli" to push changes using the Git CLI, diff --git a/publish/action.yml b/publish/action.yml index b90c0c54..809c5509 100644 --- a/publish/action.yml +++ b/publish/action.yml @@ -18,6 +18,12 @@ inputs: description: "Whether to create Github releases after publish" required: false default: true + push-git-tags: + description: > + Whether to create git tags after publish. If `create-github-releases` is set to `true`, + this option will also always be `true`. + required: false + default: true outputs: published: description: "A boolean value to indicate whether a publishing has happened or not" diff --git a/src/index.ts b/src/index.ts index 1ce7cafa..aa2b5e1c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -122,10 +122,22 @@ import { ); } + const createGithubReleases = core.getBooleanInput( + "create-github-releases", + ); + const pushGitTags = core.getBooleanInput("push-git-tags"); + if (createGithubReleases && !pushGitTags) { + throw new Error( + "The input 'create-github-releases' is set to true, but 'push-git-tags' is set to false. " + + "Creating GitHub releases requires pushing git tags. Please set 'push-git-tags' to true " + + "or set 'create-github-releases' to false.", + ); + } const result = await runPublish({ script: publishScript, github, - createGithubReleases: core.getBooleanInput("create-github-releases"), + createGithubReleases, + pushGitTags, cwd, }); diff --git a/src/publish/index.ts b/src/publish/index.ts index fd6ce2d2..15bf8ab3 100644 --- a/src/publish/index.ts +++ b/src/publish/index.ts @@ -20,6 +20,15 @@ async function main() { const script = getOptionalInput("script"); const packDirArtifactId = getOptionalInput("pack-dir-artifact-id"); const createGithubReleases = core.getBooleanInput("create-github-releases"); + const pushGitTags = core.getBooleanInput("push-git-tags"); + + if (createGithubReleases && !pushGitTags) { + throw new Error( + "The input 'create-github-releases' is set to true, but 'push-git-tags' is set to false. " + + "Creating GitHub releases requires pushing git tags. Please set 'push-git-tags' to true " + + "or set 'create-github-releases' to false.", + ); + } // If the user needs to change the cwd, set `working-directory` in the step instead const cwd = process.cwd(); @@ -39,6 +48,7 @@ async function main() { script, github, createGithubReleases, + pushGitTags, cwd, fromPackDir, }); diff --git a/src/run.ts b/src/run.ts index 20931091..7c8b8233 100644 --- a/src/run.ts +++ b/src/run.ts @@ -65,6 +65,7 @@ type PublishOptions = { script?: string; fromPackDir?: string; createGithubReleases: boolean; + pushGitTags: boolean; github: GitHub; cwd: string; }; @@ -87,6 +88,7 @@ export async function runPublish({ fromPackDir, github, createGithubReleases, + pushGitTags, cwd, }: PublishOptions): Promise { const { octokit } = github; @@ -137,12 +139,16 @@ export async function runPublish({ releasedPackages.push(pkg); } - if (createGithubReleases) { + if (createGithubReleases || pushGitTags) { await Promise.all( releasedPackages.map(async (pkg) => { const tagName = `${pkg.packageJson.name}@${pkg.packageJson.version}`; - await github.pushTag(tagName); - await createRelease(octokit, { pkg, tagName }); + if (pushGitTags) { + await github.pushTag(tagName); + } + if (createGithubReleases) { + await createRelease(octokit, { pkg, tagName }); + } }), ); } @@ -161,9 +167,11 @@ export async function runPublish({ if (match) { releasedPackages.push(pkg); - if (createGithubReleases) { - const tagName = `v${pkg.packageJson.version}`; + const tagName = `v${pkg.packageJson.version}`; + if (pushGitTags) { await github.pushTag(tagName); + } + if (createGithubReleases) { await createRelease(octokit, { pkg, tagName }); } break; From f71ae043ed5deb17952900091e009a60edef9507 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Wed, 1 Jul 2026 11:08:14 +0200 Subject: [PATCH 25/62] Expect publish output to be shared through a file (#678) * Expect publish output to be shared through a file * throw at all times * match latest changes * fmt * rename things * update changesets * add changeset --- .changeset/shy-months-crash.md | 5 + package.json | 16 +-- pnpm-lock.yaml | 221 +++++++++++++++++---------------- pnpm-workspace.yaml | 27 ++-- scripts/release.ts | 2 +- src/run.ts | 154 +++++++++++++++-------- 6 files changed, 244 insertions(+), 181 deletions(-) create mode 100644 .changeset/shy-months-crash.md diff --git a/.changeset/shy-months-crash.md b/.changeset/shy-months-crash.md new file mode 100644 index 00000000..17622e0e --- /dev/null +++ b/.changeset/shy-months-crash.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": minor +--- + +Published packages detection done through stdout parsing was replaced with one based on the shared output file using `CHANGESETS_OUTPUT` environment variable. When using custom scripts this environment variable should always be passed down to the Changesets CLI invocations. diff --git a/package.json b/package.json index 00e45134..445b5a98 100644 --- a/package.json +++ b/package.json @@ -21,11 +21,11 @@ "@actions/core": "^3.0.1", "@actions/exec": "^3.0.0", "@actions/github": "^9.1.1", - "@changesets/get-release-plan": "^5.0.0-next.6", + "@changesets/get-release-plan": "^5.0.0-next.7", "@changesets/ghcommit": "^3.0.0-next.1", - "@changesets/git": "^4.0.0-next.5", - "@changesets/pre": "^3.0.0-next.5", - "@changesets/read": "^1.0.0-next.6", + "@changesets/git": "^4.0.0-next.6", + "@changesets/pre": "^3.0.0-next.6", + "@changesets/read": "^1.0.0-next.7", "@manypkg/get-packages": "^3.1.0", "@octokit/core": "^7.0.6", "@octokit/plugin-throttling": "^11.0.3", @@ -35,10 +35,10 @@ "tinyexec": "^1.2.4" }, "devDependencies": { - "@changesets/changelog-github": "^1.0.0-next.5", - "@changesets/cli": "^3.0.0-next.6", - "@changesets/types": "^7.0.0-next.5", - "@changesets/write": "^1.0.0-next.5", + "@changesets/changelog-github": "^1.0.0-next.6", + "@changesets/cli": "^3.0.0-next.7", + "@changesets/types": "^7.0.0-next.6", + "@changesets/write": "^1.0.0-next.6", "@tsconfig/node24": "^24.0.4", "@types/node": "^24.12.4", "@types/semver": "^7.7.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ca4d71f4..a579d303 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,20 +26,20 @@ importers: specifier: ^9.1.1 version: 9.1.1 '@changesets/get-release-plan': - specifier: ^5.0.0-next.6 - version: 5.0.0-next.6 + specifier: ^5.0.0-next.7 + version: 5.0.0-next.7 '@changesets/ghcommit': specifier: ^3.0.0-next.1 version: 3.0.0-next.1 '@changesets/git': - specifier: ^4.0.0-next.5 - version: 4.0.0-next.5 + specifier: ^4.0.0-next.6 + version: 4.0.0-next.6 '@changesets/pre': - specifier: ^3.0.0-next.5 - version: 3.0.0-next.5 + specifier: ^3.0.0-next.6 + version: 3.0.0-next.6 '@changesets/read': - specifier: ^1.0.0-next.6 - version: 1.0.0-next.6 + specifier: ^1.0.0-next.7 + version: 1.0.0-next.7 '@manypkg/get-packages': specifier: ^3.1.0 version: 3.1.0 @@ -63,17 +63,17 @@ importers: version: 1.2.4 devDependencies: '@changesets/changelog-github': - specifier: ^1.0.0-next.5 - version: 1.0.0-next.5 + specifier: ^1.0.0-next.6 + version: 1.0.0-next.6 '@changesets/cli': - specifier: ^3.0.0-next.6 - version: 3.0.0-next.6 + specifier: ^3.0.0-next.7 + version: 3.0.0-next.7 '@changesets/types': - specifier: ^7.0.0-next.5 - version: 7.0.0-next.5 + specifier: ^7.0.0-next.6 + version: 7.0.0-next.6 '@changesets/write': - specifier: ^1.0.0-next.5 - version: 1.0.0-next.5 + specifier: ^1.0.0-next.6 + version: 1.0.0-next.6 '@tsconfig/node24': specifier: ^24.0.4 version: 24.0.4 @@ -183,29 +183,29 @@ packages: '@bufbuild/protoplugin@2.12.0': resolution: {integrity: sha512-ORlDITp8AFUXzIhLRoMCG+ud+D3MPKWb5HQXBoskMMnjeyEjE1H1qLonVNPyOr8lkx3xSfYUo8a0dvOZJVAzow==} - '@changesets/apply-release-plan@8.0.0-next.6': - resolution: {integrity: sha512-Tnt9/AbEU4/uLkBzjF7KGjaB6MyzADG/+iMxq5khFEGM0s12Fp9plglMzajWX97/qgrcCVstFcVWpFTEGiNVxA==} + '@changesets/apply-release-plan@8.0.0-next.7': + resolution: {integrity: sha512-gHXYyBf0+jri/wjA8TYrcyo7HEnN9QAFpU9+1ZWiDMjov7x3cG72r4NQC0T0hTUW+I1bayMFm95EGOvNtLxTSg==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/assemble-release-plan@7.0.0-next.6': - resolution: {integrity: sha512-0AqIQriI20QgtJQr7HumJ7FiaUsqA/VQMUWF29r6jnEOpmR4c8O/kMA8kFJOp7a1mlUNJqVbcz4RNCWlEDYC9A==} + '@changesets/assemble-release-plan@7.0.0-next.7': + resolution: {integrity: sha512-rUYmk2z5665bkLU+/gReGTdmqSYyFmo7ZgWvpc7ny3OXuEvWdOBz+1egvBXwAG4nYaRq8yIG9aKWIG0Dc18gIg==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/changelog-git@1.0.0-next.5': - resolution: {integrity: sha512-lGyIWNGkPnY6yiwbFeWtf9yzjoMl0jmzwIGH24cAV9ZzKl0lLvjjlYTbcfZymqVcPqBSQEr2UQNg0ED4h7xlnQ==} + '@changesets/changelog-git@1.0.0-next.6': + resolution: {integrity: sha512-z+uAi+BhOUJSBlQj2o5n3oFwhCkHQBk+P1JrFFRvA5fv6pDRAZpugQYbXR7dIQZ5Dn4ndG9cidIKb2o/lGs2wQ==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/changelog-github@1.0.0-next.5': - resolution: {integrity: sha512-c9q7QUmBYCKKCjhW/0U2W8ZNqtOixB1DShU0Y9FHNwYL8w76YVTz+MZiLEGCKXAEduibEUdcJYIQiaSAxQR0dQ==} + '@changesets/changelog-github@1.0.0-next.6': + resolution: {integrity: sha512-0ShCWgNt50xP0mryAYT8wtSkMUinG8uhxXgCgwHZ4UvJnR2f4ns8OsGAxYu8FIds7kHFdLOz7qX4YQ6AX4tVUA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/cli@3.0.0-next.6': - resolution: {integrity: sha512-NPO8zyQc2icfJJTVqSMtRTIz3RyhIffgaj71T9BN7vBbVPWoeW+Niq+kxKTtvQw+EOkuaXv/AOEF8agkM4pq6A==} + '@changesets/cli@3.0.0-next.7': + resolution: {integrity: sha512-DuwcGhtFina59DCREvS6N97zlXyYqnbhnFO/PBHaX5+ZalYsLxfnbWiwrbosdmy9QBlnvkyqXPVN2TFPZXzJmw==} engines: {node: ^22.11 || ^24 || >=26, npm: '>=10.9.0', pnpm: '>=10.0.0', yarn: '>=4.5.2'} hasBin: true - '@changesets/config@4.0.0-next.5': - resolution: {integrity: sha512-2te/SEbDJ2h8xFf6+uQJYtuOAlkswwtxodsS6uijEky0ImNP+sURPL7LkoW4FCUKCCZmPevbh++kpIXm4WmhWw==} + '@changesets/config@4.0.0-next.6': + resolution: {integrity: sha512-RTaumXzBthBvXE5axcAdCbSlUQ3l8l8FD1nNQpVXLCK/4Mg+/96BmNhX5Y/Yf80XE7eG+Mfl797Au5HHqPB/2A==} engines: {node: ^22.11 || ^24 || >=26} '@changesets/errors@1.0.0-next.3': @@ -216,48 +216,48 @@ packages: resolution: {integrity: sha512-m3ScsTpVqQJu6WOV36vpGozJPBu5JWaFXAhG1/yRnzbOnyqomuPrIfm+LeE0PmX4HWPs9Fh4MDH4aDISEsjZaA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-dependents-graph@3.0.0-next.5': - resolution: {integrity: sha512-sKjcHoA0p0vV1jBid9emhy5lsPemzBOq5LBo2M9o/zDtfF9p8hCAC/ULjJ66hngBVmdV54G8WeNhMnG6oln/nQ==} + '@changesets/get-dependents-graph@3.0.0-next.6': + resolution: {integrity: sha512-UhQpHeyygd6uhoBZKLpwYNVqqxp6/QChwh9Phbo9BE3pTxu5e2X2JWZhNtlxkxUdWAGEq0sYExmhjDyYhBD1Xw==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-github-info@1.0.0-next.2': - resolution: {integrity: sha512-Lu63xxq8yZZ3dfm7QHBU6G55MeP9lFWz/eeUyEUQ5BW5MY69EF2QDIvkMaU5h8d0JoGIlDhsi4W+iket/hrEvA==} + '@changesets/get-github-info@1.0.0-next.3': + resolution: {integrity: sha512-HQXw3Kcz1hAdCQgGH4cWlKpJWcTeL8pWNJP4zDOR3igoHJQO31wzHhG29XPhxnDBK9wEdyI71Ft86KpXDOLv/Q==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-release-plan@5.0.0-next.6': - resolution: {integrity: sha512-7UToB7ng4QnbShxX6JXqZPhjCFlrB9BH8KTVdG4f1J7yGQ8wgeOn1wJkCDvvymdxVd62jeBCcvBWn6db5Lzm4w==} + '@changesets/get-release-plan@5.0.0-next.7': + resolution: {integrity: sha512-ek+tXy+SHshWQD5V4uL6pciazjhm/Yt+KxIQEW0W6vIyyjWvFBY6t0xfsv/hCc/+u11riHcoWGwHkGYqC869EQ==} engines: {node: ^22.11 || ^24 || >=26} '@changesets/ghcommit@3.0.0-next.1': resolution: {integrity: sha512-wWhc316LkE64P0fbNoKxEyUk5vpkQEF52m1XUBF2xJrE++cGq0PZSu9ZeXLKExOdXKVkAOGokmnXlfnYzCt1NQ==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/git@4.0.0-next.5': - resolution: {integrity: sha512-dhQ5qxmxVy8vQD6TBjNuVB3cv3MoyKogFIX+LFXi4hWceXeysOKuVytpAX84ywQw401uHuYlObZSU6qyj/hzzw==} + '@changesets/git@4.0.0-next.6': + resolution: {integrity: sha512-dNFHMQ4uER7Mo49iPKPee4ITUrCaJs6wya+ZfPo2kNzhMmbyv8WE9QuEf8BITBW+lJo5uos8gqUVnjJoerzjbA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/parse@1.0.0-next.6': - resolution: {integrity: sha512-9eR8KHNC7foNCCwuDvzC5NAoNJ8m6UvcYPl+xwuWLbuM44ILMC3N7Fc0gjNZoUvFbSPc/HeCN63kX3HiPqLZMw==} + '@changesets/parse@1.0.0-next.7': + resolution: {integrity: sha512-6xtwi4SUYbSVTtsnlNdGnXQPQfdwaqV6PVnDcpV+PtQRM4RhfE4gAwrBe9Cth9+4iHyFbvzm+Gusc00XSNF/IQ==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/pre@3.0.0-next.5': - resolution: {integrity: sha512-vxcIPxRGrPaDZpNCJMahl1/xZa+bD9bhxEbJAde/lyvzPqA4lS7ugdtDNuobeRlothw8SGGjBSS8c+VouPDD5w==} + '@changesets/pre@3.0.0-next.6': + resolution: {integrity: sha512-XVZ4JE4UE1bO1JtxxoBkoueHlzWNe227IpfJGlpiD7ZTfdidlRh+4tHxf452IcGMA3rEe3hWPhFE0tdL3uU2lA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/read@1.0.0-next.6': - resolution: {integrity: sha512-WCCU0z2jy+uyo5ivI3vec8Ys+o5Nk0OwS6qUhm7kzQ6dRRIX85uZaVV+6TlnKRXcKzWEDrIt3ifj0Ul+v/sqvA==} + '@changesets/read@1.0.0-next.7': + resolution: {integrity: sha512-eoy5Yf9WDN7opiQyNWZCCpeDeYf5mX/qT/MUktDnk2jBmwRUHLvIkTNK+IsR612etTcfO5kLlRNVcBv4smk87A==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/should-skip-package@1.0.0-next.5': - resolution: {integrity: sha512-KGlx6MPs8QZvQzB27J4ZElufmVF5o0yps8LdqNY6MWaBe9esgVq3neFE07p5tPaj/ZIS1m038atwkh4Z0Kl9yA==} + '@changesets/should-skip-package@1.0.0-next.6': + resolution: {integrity: sha512-2y4+DMh7gMMEQaGwKwJMY7cixmJrK7u7rSZQ9t5O+xwqty9qXhO9EKbIeMDlt13A1Bdxuiu7ptkMKC+AoOO28Q==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/types@7.0.0-next.5': - resolution: {integrity: sha512-K/JHm6kBQ5FqCHHptJFqVyCrpj8oxtDMbBchlK5/7mxZ7FcGynQj08r6YSn1mvRg1waYsLKgzCeu4wvzCgJJjQ==} + '@changesets/types@7.0.0-next.6': + resolution: {integrity: sha512-bdxuVLYKrCt14kNFb+ltta8pOPFmQWB0DpMcz9IWMD+DRupQ4+wZyCkXIkfIoqu3iN0fcQkSuoZ2tNOfV+fepg==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/write@1.0.0-next.5': - resolution: {integrity: sha512-EKZIKPqHnK1GKljvOUgyNoEsNJ06uDd1d+MGzgjMeMbeIk3Y4a9oeFw7pqEFe80HfxHTVn3tyYYVVD0ImaR1yw==} + '@changesets/write@1.0.0-next.6': + resolution: {integrity: sha512-GhtCqRxadKGe2wkMxpX0PqeWgn3vBr7JELJRakKv7zit8EX+La9/a9dosaP98vWisOCyDm1kuO8bUAq2ljRyVw==} engines: {node: ^22.11 || ^24 || >=26} '@clack/core@1.4.1': @@ -834,8 +834,8 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - dataloader@1.4.0: - resolution: {integrity: sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw==} + dataloader@2.2.3: + resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} @@ -940,6 +940,10 @@ packages: resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} hasBin: true + human-id@4.2.0: + resolution: {integrity: sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==} + hasBin: true + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -1511,63 +1515,62 @@ snapshots: transitivePeerDependencies: - supports-color - '@changesets/apply-release-plan@8.0.0-next.6': + '@changesets/apply-release-plan@8.0.0-next.7': dependencies: - '@changesets/config': 4.0.0-next.5 + '@changesets/config': 4.0.0-next.6 '@changesets/format': 0.1.0 - '@changesets/git': 4.0.0-next.5 - '@changesets/should-skip-package': 1.0.0-next.5 - '@changesets/types': 7.0.0-next.5 + '@changesets/git': 4.0.0-next.6 + '@changesets/should-skip-package': 1.0.0-next.6 + '@changesets/types': 7.0.0-next.6 import-meta-resolve: 4.2.0 jsonc-parser: 3.3.1 semver: 7.8.1 - '@changesets/assemble-release-plan@7.0.0-next.6': + '@changesets/assemble-release-plan@7.0.0-next.7': dependencies: '@changesets/errors': 1.0.0-next.3 - '@changesets/get-dependents-graph': 3.0.0-next.5 - '@changesets/should-skip-package': 1.0.0-next.5 - '@changesets/types': 7.0.0-next.5 + '@changesets/get-dependents-graph': 3.0.0-next.6 + '@changesets/should-skip-package': 1.0.0-next.6 + '@changesets/types': 7.0.0-next.6 semver: 7.8.1 - '@changesets/changelog-git@1.0.0-next.5': + '@changesets/changelog-git@1.0.0-next.6': dependencies: - '@changesets/types': 7.0.0-next.5 + '@changesets/types': 7.0.0-next.6 - '@changesets/changelog-github@1.0.0-next.5': + '@changesets/changelog-github@1.0.0-next.6': dependencies: - '@changesets/get-github-info': 1.0.0-next.2 - '@changesets/types': 7.0.0-next.5 + '@changesets/get-github-info': 1.0.0-next.3 + '@changesets/types': 7.0.0-next.6 - '@changesets/cli@3.0.0-next.6': + '@changesets/cli@3.0.0-next.7': dependencies: - '@changesets/apply-release-plan': 8.0.0-next.6 - '@changesets/assemble-release-plan': 7.0.0-next.6 - '@changesets/changelog-git': 1.0.0-next.5 - '@changesets/config': 4.0.0-next.5 + '@changesets/apply-release-plan': 8.0.0-next.7 + '@changesets/assemble-release-plan': 7.0.0-next.7 + '@changesets/changelog-git': 1.0.0-next.6 + '@changesets/config': 4.0.0-next.6 '@changesets/errors': 1.0.0-next.3 - '@changesets/get-dependents-graph': 3.0.0-next.5 - '@changesets/git': 4.0.0-next.5 - '@changesets/pre': 3.0.0-next.5 - '@changesets/read': 1.0.0-next.6 - '@changesets/should-skip-package': 1.0.0-next.5 - '@changesets/types': 7.0.0-next.5 - '@changesets/write': 1.0.0-next.5 + '@changesets/get-dependents-graph': 3.0.0-next.6 + '@changesets/git': 4.0.0-next.6 + '@changesets/pre': 3.0.0-next.6 + '@changesets/read': 1.0.0-next.7 + '@changesets/should-skip-package': 1.0.0-next.6 + '@changesets/types': 7.0.0-next.6 + '@changesets/write': 1.0.0-next.6 '@clack/prompts': 1.5.1 '@manypkg/get-packages': 3.1.0 '@pnpm/deps.graph-sequencer': 1100.0.0 cac: 7.0.0 import-meta-resolve: 4.2.0 launch-editor: 2.14.1 - package-manager-detector: 1.6.0 semver: 7.8.1 tinyexec: 1.2.4 - '@changesets/config@4.0.0-next.5': + '@changesets/config@4.0.0-next.6': dependencies: - '@changesets/get-dependents-graph': 3.0.0-next.5 - '@changesets/should-skip-package': 1.0.0-next.5 - '@changesets/types': 7.0.0-next.5 + '@changesets/get-dependents-graph': 3.0.0-next.6 + '@changesets/should-skip-package': 1.0.0-next.6 + '@changesets/types': 7.0.0-next.6 '@manypkg/get-packages': 3.1.0 picomatch: 4.0.4 @@ -1577,64 +1580,64 @@ snapshots: dependencies: package-manager-detector: 1.6.0 - '@changesets/get-dependents-graph@3.0.0-next.5': + '@changesets/get-dependents-graph@3.0.0-next.6': dependencies: - '@changesets/types': 7.0.0-next.5 + '@changesets/types': 7.0.0-next.6 semver: 7.8.1 - '@changesets/get-github-info@1.0.0-next.2': + '@changesets/get-github-info@1.0.0-next.3': dependencies: - dataloader: 1.4.0 + dataloader: 2.2.3 - '@changesets/get-release-plan@5.0.0-next.6': + '@changesets/get-release-plan@5.0.0-next.7': dependencies: - '@changesets/assemble-release-plan': 7.0.0-next.6 - '@changesets/config': 4.0.0-next.5 - '@changesets/pre': 3.0.0-next.5 - '@changesets/read': 1.0.0-next.6 - '@changesets/types': 7.0.0-next.5 + '@changesets/assemble-release-plan': 7.0.0-next.7 + '@changesets/config': 4.0.0-next.6 + '@changesets/pre': 3.0.0-next.6 + '@changesets/read': 1.0.0-next.7 + '@changesets/types': 7.0.0-next.6 '@manypkg/get-packages': 3.1.0 '@changesets/ghcommit@3.0.0-next.1': dependencies: tinyexec: 1.2.4 - '@changesets/git@4.0.0-next.5': + '@changesets/git@4.0.0-next.6': dependencies: '@changesets/errors': 1.0.0-next.3 - '@changesets/types': 7.0.0-next.5 + '@changesets/types': 7.0.0-next.6 '@manypkg/get-packages': 3.1.0 picomatch: 4.0.4 tinyexec: 1.2.4 - '@changesets/parse@1.0.0-next.6': + '@changesets/parse@1.0.0-next.7': dependencies: - '@changesets/types': 7.0.0-next.5 + '@changesets/types': 7.0.0-next.6 yaml: 2.9.0 - '@changesets/pre@3.0.0-next.5': + '@changesets/pre@3.0.0-next.6': dependencies: '@changesets/errors': 1.0.0-next.3 - '@changesets/types': 7.0.0-next.5 + '@changesets/types': 7.0.0-next.6 '@manypkg/get-packages': 3.1.0 - '@changesets/read@1.0.0-next.6': + '@changesets/read@1.0.0-next.7': dependencies: - '@changesets/git': 4.0.0-next.5 - '@changesets/parse': 1.0.0-next.6 - '@changesets/types': 7.0.0-next.5 + '@changesets/git': 4.0.0-next.6 + '@changesets/parse': 1.0.0-next.7 + '@changesets/types': 7.0.0-next.6 - '@changesets/should-skip-package@1.0.0-next.5': + '@changesets/should-skip-package@1.0.0-next.6': dependencies: - '@changesets/types': 7.0.0-next.5 + '@changesets/types': 7.0.0-next.6 - '@changesets/types@7.0.0-next.5': {} + '@changesets/types@7.0.0-next.6': {} - '@changesets/write@1.0.0-next.5': + '@changesets/write@1.0.0-next.6': dependencies: '@changesets/format': 0.1.0 - '@changesets/types': 7.0.0-next.5 - human-id: 4.1.3 + '@changesets/types': 7.0.0-next.6 + human-id: 4.2.0 '@clack/core@1.4.1': dependencies: @@ -2128,7 +2131,7 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - dataloader@1.4.0: {} + dataloader@2.2.3: {} debug@4.4.3: dependencies: @@ -2226,6 +2229,8 @@ snapshots: human-id@4.1.3: {} + human-id@4.2.0: {} + ieee754@1.2.1: {} import-meta-resolve@4.2.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index fc637a54..50b3a618 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,18 +3,23 @@ dedupePeers: true dedupePeerDependents: true minimumReleaseAge: 10080 minimumReleaseAgeExclude: - - "@changesets/apply-release-plan@8.0.0-next.6" - - "@changesets/assemble-release-plan@7.0.0-next.6" - - "@changesets/changelog-github@1.0.0-next.5" - - "@changesets/cli@3.0.0-next.6" - - "@changesets/get-release-plan@5.0.0-next.6" + - "@changesets/apply-release-plan@8.0.0-next.7" + - "@changesets/assemble-release-plan@7.0.0-next.7" + - "@changesets/changelog-git@1.0.0-next.6" + - "@changesets/changelog-github@1.0.0-next.6" + - "@changesets/cli@3.0.0-next.7" + - "@changesets/config@4.0.0-next.6" + - "@changesets/get-dependents-graph@3.0.0-next.6" + - "@changesets/get-github-info@1.0.0-next.3" + - "@changesets/get-release-plan@5.0.0-next.7" - "@changesets/ghcommit@3.0.0-next.1" - - "@changesets/git@4.0.0-next.5" - - "@changesets/parse@1.0.0-next.6" - - "@changesets/pre@3.0.0-next.5" - - "@changesets/read@1.0.0-next.6" - - "@changesets/types@7.0.0-next.5" - - "@changesets/write@1.0.0-next.5" + - "@changesets/git@4.0.0-next.6" + - "@changesets/parse@1.0.0-next.7" + - "@changesets/pre@3.0.0-next.6" + - "@changesets/read@1.0.0-next.7" + - "@changesets/should-skip-package@1.0.0-next.6" + - "@changesets/types@7.0.0-next.6" + - "@changesets/write@1.0.0-next.6" overrides: lightningcss: "-" # we do not bundle any css diff --git a/scripts/release.ts b/scripts/release.ts index a8304efc..cf955333 100644 --- a/scripts/release.ts +++ b/scripts/release.ts @@ -42,7 +42,7 @@ process.chdir(path.join(import.meta.dirname, "..")); await exec("git", ["add", "--force", "dist"]); await exec("git", ["commit", "-m", tag]); - await exec("changeset", ["tag"]); + await exec("changeset", ["git-tag"]); if (isPrerelease) { await exec("git", ["push", "origin", `refs/tags/${tag}`], { diff --git a/src/run.ts b/src/run.ts index 7c8b8233..6f34e6b7 100644 --- a/src/run.ts +++ b/src/run.ts @@ -1,4 +1,6 @@ +import { randomUUID } from "node:crypto"; import fs from "node:fs/promises"; +import os from "node:os"; import path from "node:path"; import * as core from "@actions/core"; import { @@ -71,6 +73,11 @@ type PublishOptions = { }; type PublishedPackage = { name: string; version: string }; +type ChangesetsOutputEvent = { + type: "git-tag"; + tag: string; + packageName: string; +}; type PublishResult = | { @@ -83,6 +90,68 @@ type PublishResult = exitCode: number; }; +function isObject(value: unknown) { + return typeof value === "object" && value !== null; +} + +function isChangesetsOutputEvent( + value: unknown, +): value is ChangesetsOutputEvent { + return ( + isObject(value) && + "type" in value && + value.type === "git-tag" && + "tag" in value && + typeof value.tag === "string" && + "packageName" in value && + typeof value.packageName === "string" + ); +} + +async function readChangesetsOutput(outputPath: string) { + let rawOutput: string; + try { + rawOutput = await fs.readFile(outputPath, "utf8"); + } catch (err) { + throw new Error(`Failed to read changesets output at ${outputPath}`, { + cause: err, + }); + } + + const events: ChangesetsOutputEvent[] = []; + + let lineStart = 0; + while (lineStart <= rawOutput.length) { + let lineEnd = rawOutput.indexOf("\n", lineStart); + if (lineEnd === -1) { + lineEnd = rawOutput.length; + } + const line = rawOutput.slice(lineStart, lineEnd); + lineStart = lineEnd + 1; + + if (/^\s*$/.test(line)) { + continue; + } + + let event: unknown; + try { + event = JSON.parse(line); + } catch (err) { + throw new Error(`Failed to parse changesets output event: ${line}`, { + cause: err, + }); + } + + if (!isChangesetsOutputEvent(event)) { + continue; + } + + events.push(event); + } + + return events; +} + export async function runPublish({ script, fromPackDir, @@ -93,10 +162,18 @@ export async function runPublish({ }: PublishOptions): Promise { const { octokit } = github; let changesetPublishOutput: ExecOutput; + const outputFile = path.join( + process.env.RUNNER_TEMP ?? (await fs.realpath(os.tmpdir())), + `changesets-output-${randomUUID()}.ndjson`, + ); const execOptions: ExecOptions = { cwd, ignoreReturnCode: true, - env: { ...process.env, GITHUB_TOKEN: github.getToken() }, + env: { + ...process.env, + GITHUB_TOKEN: github.getToken(), + CHANGESETS_OUTPUT: outputFile, + }, }; if (script) { @@ -117,72 +194,43 @@ export async function runPublish({ } let { packages, tool } = await getPackages(cwd); - let releasedPackages: Package[] = []; - - if (tool.type !== "root") { - let newTagRegex = /New tag:\s+(@[^/]+\/[^@]+|[^/]+)@([^\s]+)/; - let packagesByName = new Map(packages.map((x) => [x.packageJson.name, x])); - - for (let line of changesetPublishOutput.stdout.split("\n")) { - let match = line.match(newTagRegex); - if (match === null) { - continue; - } - let pkgName = match[1]; - let pkg = packagesByName.get(pkgName); - if (pkg === undefined) { - throw new Error( - `Package "${pkgName}" not found.` + - "This is probably a bug in the action, please open an issue", - ); - } - releasedPackages.push(pkg); - } - - if (createGithubReleases || pushGitTags) { - await Promise.all( - releasedPackages.map(async (pkg) => { - const tagName = `${pkg.packageJson.name}@${pkg.packageJson.version}`; - if (pushGitTags) { - await github.pushTag(tagName); - } - if (createGithubReleases) { - await createRelease(octokit, { pkg, tagName }); - } - }), - ); - } - } else { - if (packages.length === 0) { + let packagesByName = new Map(packages.map((x) => [x.packageJson.name, x])); + let output = await readChangesetsOutput(outputFile); + let releases = output.map((event) => { + let pkg = packagesByName.get(event.packageName); + if (pkg === undefined) { throw new Error( - `No package found.` + + `Package "${event.packageName}" not found.` + "This is probably a bug in the action, please open an issue", ); } - let pkg = packages[0]; - let newTagRegex = /New tag:/; + return { pkg, tag: event.tag }; + }); - for (let line of changesetPublishOutput.stdout.split("\n")) { - let match = line.match(newTagRegex); + if (tool.type === "root" && packages.length === 0) { + throw new Error( + `No package found.` + + "This is probably a bug in the action, please open an issue", + ); + } - if (match) { - releasedPackages.push(pkg); - const tagName = `v${pkg.packageJson.version}`; + if (createGithubReleases || pushGitTags) { + await Promise.all( + releases.map(async ({ pkg, tag }) => { if (pushGitTags) { - await github.pushTag(tagName); + await github.pushTag(tag); } if (createGithubReleases) { - await createRelease(octokit, { pkg, tagName }); + await createRelease(octokit, { pkg, tagName: tag }); } - break; - } - } + }), + ); } - if (releasedPackages.length) { + if (releases.length) { return { published: true, - publishedPackages: releasedPackages.map((pkg) => ({ + publishedPackages: releases.map(({ pkg }) => ({ name: pkg.packageJson.name, version: pkg.packageJson.version, })), From 73591071e61c7f61cf322dd7a6341dc29a8e1d4e Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Wed, 1 Jul 2026 20:08:50 +0800 Subject: [PATCH 26/62] Rename root action inputs and outputs (#681) --- .changeset/eighty-parks-tickle.md | 17 +++++++++++++++ README.md | 6 +++--- action.yml | 35 ++++++++++++++++--------------- src/index.ts | 21 ++++++++++++------- src/utils.ts | 15 ++++++++++--- version/action.yml | 4 +++- 6 files changed, 66 insertions(+), 32 deletions(-) create mode 100644 .changeset/eighty-parks-tickle.md diff --git a/.changeset/eighty-parks-tickle.md b/.changeset/eighty-parks-tickle.md new file mode 100644 index 00000000..af67650b --- /dev/null +++ b/.changeset/eighty-parks-tickle.md @@ -0,0 +1,17 @@ +--- +"@changesets/action": major +--- + +Rename the root action inputs and outputs to better match the sub-actions' conventions. + +Inputs: + +- `version` -> `version-script` +- `publish` -> `publish-script` +- `commit` -> `commit-message` +- `title` -> `pr-title` +- `branch` -> `pr-base-branch` + +Outputs: + +- `pull-request-number` -> `pr-number` diff --git a/README.md b/README.md index 24e37bab..62e7dd38 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ jobs: uses: changesets/action@v2 with: # This expects you to have a script called release which does a build for your packages and calls changeset publish - publish: pnpm release + publish-script: pnpm release env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} @@ -217,7 +217,7 @@ jobs: uses: changesets/action@v2 with: # this expects you to have a npm script called version that runs some logic and then calls `changeset version`. - version: pnpm version + version-script: pnpm version ``` #### With Yarn 2 / Plug'n'Play @@ -227,6 +227,6 @@ If you are using [Yarn Plug'n'Play](https://yarnpkg.com/features/pnp), you shoul ```yaml - uses: changesets/action@v2 with: - version: yarn changeset version + version-script: yarn changeset version # ... ``` diff --git a/action.yml b/action.yml index c0f2923b..8f0d342e 100644 --- a/action.yml +++ b/action.yml @@ -8,25 +8,28 @@ inputs: description: "The GitHub token to use for authentication. Defaults to the GitHub-provided token." required: false default: ${{ github.token }} - publish: + publish-script: description: "The command to use to build and publish packages" required: false - version: + version-script: description: "The command to update version, edit CHANGELOG, read and delete changesets. Default to `changeset version` if not provided" required: false - commit: - description: | - The commit message. Default to `Version Packages` + commit-message: + description: "The commit message. Default to `Version Packages`" required: false - title: - description: The pull request title. Default to `Version Packages` + default: "Version Packages" + pr-title: + description: "The pull request title. Default to `Version Packages`" required: false - setup-git-user: - description: Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` + default: "Version Packages" + pr-draft: + description: "Controls draft PR behavior. Use 'create' to create new version PRs as draft, or 'always' to also convert existing version PRs back to draft when updating them." + required: false + pr-base-branch: + description: "Sets the base branch of the PR. Defaults to `github.ref_name`." required: false - default: true create-github-releases: - description: "A boolean value to indicate whether to create Github releases after `publish` or not" + description: "Whether to create Github releases after publish" required: false default: true push-git-tags: @@ -43,12 +46,10 @@ inputs: or app who owns the GITHUB_TOKEN. required: false default: "git-cli" - branch: - description: Sets the branch in which the action will run. Default to `github.ref_name` if not provided - required: false - pr-draft: - description: 'Controls draft PR behavior. Use "create" to create new version PRs as draft, or "always" to also convert existing version PRs back to draft when updating them.' + setup-git-user: + description: Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` required: false + default: true outputs: published: description: A boolean value to indicate whether a publishing is happened or not @@ -57,7 +58,7 @@ outputs: A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` has-changesets: description: A boolean about whether there were changesets. Useful if you want to create your own publishing functionality. - pull-request-number: + pr-number: description: The pull request number that was created or updated branding: icon: "package" diff --git a/src/index.ts b/src/index.ts index aa2b5e1c..cde1ebfa 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,9 +12,14 @@ import { (async () => { throwOnRenamedInputs({ - commitMode: "commit-mode", - createGithubReleases: "create-github-releases", + publish: "publish-script", + version: "version-script", + commit: "commit-mesage", + title: "pr-title", + branch: "pr-base-branch", prDraft: "pr-draft", + createGithubReleases: "create-github-releases", + commitMode: "commit-mode", setupGitUser: "setup-git-user", }); @@ -55,7 +60,7 @@ import { let { changesets } = await readChangesetState(cwd); - let publishScript = core.getInput("publish"); + let publishScript = core.getInput("publish-script"); let hasChangesets = changesets.length !== 0; const hasNonEmptyChangesets = changesets.some( (changeset) => changeset.releases.length > 0, @@ -168,17 +173,17 @@ import { return; case hasChangesets: { const { pullRequestNumber } = await runVersion({ - script: getOptionalInput("version"), + script: getOptionalInput("version-script"), github, cwd, - prTitle: getOptionalInput("title"), - commitMessage: getOptionalInput("commit"), + prTitle: getOptionalInput("pr-title"), + commitMessage: getOptionalInput("commit-message"), hasPublishScript, prDraft, - branch: getOptionalInput("branch"), + branch: getOptionalInput("pr-base-branch"), }); - core.setOutput("pull-request-number", String(pullRequestNumber)); + core.setOutput("pr-number", String(pullRequestNumber)); return; } diff --git a/src/utils.ts b/src/utils.ts index 6a626e3f..4ad5268c 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -136,13 +136,22 @@ export function getRequiredInput(name: string) { } export function throwOnRenamedInputs(renames: Record) { + const references: Record = {}; + for (const [oldInput, newInput] of Object.entries(renames)) { if (core.getInput(oldInput)) { - throw new Error( - `The input "${oldInput}" has been renamed to "${newInput}". Please update your workflow file.`, - ); + references[oldInput] = newInput; } } + + if (Object.keys(references).length > 0) { + const list = Object.entries(references) + .map(([oldInput, newInput]) => `- "${oldInput}" -> "${newInput}"`) + .join("\n"); + throw new Error( + `The following inputs have been renamed:\n${list}\nPlease update your workflow file.`, + ); + } } function resolveChangesetsCli(cwd: string) { diff --git a/version/action.yml b/version/action.yml index 752f04a0..d8ab725e 100644 --- a/version/action.yml +++ b/version/action.yml @@ -37,7 +37,9 @@ inputs: description: Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` required: false default: true -outputs: {} +outputs: + pr-number: + description: The pull request number that was created or updated branding: icon: package color: blue From cf45e93c219ace324d412b821ac40646f22f9b28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Wed, 1 Jul 2026 14:24:41 +0200 Subject: [PATCH 27/62] Use split publishing workflow (#679) * fix release line timing * Use split publishing workflow * remove release check, handle through publish plan * remove unused script * remove unused publish plan output * fmt * update a thing * fmt * simplify * update pre * update changesets cli --- .changeset/config.json | 13 ++++++----- .changeset/pre.json | 3 --- .github/workflows/publish.yml | 41 +++++++++++++++++++++++++++------- package.json | 3 ++- pnpm-lock.yaml | 10 ++++----- pnpm-workspace.yaml | 2 +- scripts/bump.ts | 4 +++- scripts/release.ts | 42 +++++++++-------------------------- 8 files changed, 62 insertions(+), 56 deletions(-) diff --git a/.changeset/config.json b/.changeset/config.json index b420c038..e624ec46 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,13 +1,14 @@ { - "$schema": "https://unpkg.com/@changesets/config@1.6.2/schema.json", - "changelog": [ - "@changesets/changelog-github", - { "repo": "changesets/action" } - ], + "$schema": "https://unpkg.com/@changesets/config@4.0.0-next.6/schema.json", + "changelog": "@changesets/changelog-github", "commit": false, "linked": [], "access": "restricted", "baseBranch": "main", "updateInternalDependencies": "patch", - "ignore": [] + "ignore": [], + "privatePackages": { + "version": true, + "tag": true + } } diff --git a/.changeset/pre.json b/.changeset/pre.json index 86a5b19c..6b36ff58 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,9 +1,6 @@ { "mode": "pre", "tag": "next", - "initialVersions": { - "@changesets/action": "1.9.0" - }, "changesets": [ "all-cars-grin", "eight-clocks-pull", diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index bb8ca1a9..2054ba0d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -15,13 +15,38 @@ concurrency: permissions: {} # each job should define its own permission explicitly jobs: + select-mode: + name: Select mode + runs-on: ubuntu-latest + timeout-minutes: 20 + outputs: + mode: ${{ steps.select-mode.outputs.mode }} + permissions: + contents: read # to check out repo (actions/checkout) + steps: + - name: Check out repo + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + with: + persist-credentials: false + + - uses: ./.github/actions/ci-setup + with: + skip-cache: true # avoid cache poisoning attacks + + - name: Build + run: pnpm build + + - name: Select mode + id: select-mode + uses: ./select-mode + version: name: Version + if: needs.select-mode.outputs.mode == 'version' + needs: select-mode runs-on: ubuntu-latest environment: version timeout-minutes: 20 - outputs: - hasChangesets: ${{ steps.changesets.outputs.hasChangesets }} permissions: contents: read # to check out repo (actions/checkout) steps: @@ -47,15 +72,15 @@ jobs: - name: Create or update release pull request id: changesets - uses: ./ + uses: ./version with: github-token: ${{ steps.app-token.outputs.token }} - version: pnpm bump + script: pnpm bump publish: name: Publish - if: needs.version.outputs.hasChangesets == 'false' - needs: version + if: needs.select-mode.outputs.mode == 'publish' + needs: select-mode runs-on: ubuntu-latest environment: marketplace timeout-minutes: 20 @@ -82,7 +107,7 @@ jobs: run: pnpm build - name: Publish to marketplace - uses: ./ + uses: ./publish with: github-token: ${{ steps.app-token.outputs.token }} - publish: pnpm release + script: pnpm release diff --git a/package.json b/package.json index 445b5a98..44ba8b21 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "@changesets/action", "version": "2.0.0-next.2", + "private": true, "license": "MIT", "type": "module", "main": "dist/index.js", @@ -36,7 +37,7 @@ }, "devDependencies": { "@changesets/changelog-github": "^1.0.0-next.6", - "@changesets/cli": "^3.0.0-next.7", + "@changesets/cli": "^3.0.0-next.8", "@changesets/types": "^7.0.0-next.6", "@changesets/write": "^1.0.0-next.6", "@tsconfig/node24": "^24.0.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a579d303..c4996e2f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,8 +66,8 @@ importers: specifier: ^1.0.0-next.6 version: 1.0.0-next.6 '@changesets/cli': - specifier: ^3.0.0-next.7 - version: 3.0.0-next.7 + specifier: ^3.0.0-next.8 + version: 3.0.0-next.8 '@changesets/types': specifier: ^7.0.0-next.6 version: 7.0.0-next.6 @@ -199,8 +199,8 @@ packages: resolution: {integrity: sha512-0ShCWgNt50xP0mryAYT8wtSkMUinG8uhxXgCgwHZ4UvJnR2f4ns8OsGAxYu8FIds7kHFdLOz7qX4YQ6AX4tVUA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/cli@3.0.0-next.7': - resolution: {integrity: sha512-DuwcGhtFina59DCREvS6N97zlXyYqnbhnFO/PBHaX5+ZalYsLxfnbWiwrbosdmy9QBlnvkyqXPVN2TFPZXzJmw==} + '@changesets/cli@3.0.0-next.8': + resolution: {integrity: sha512-gfIPhBs1XNdgXhTJ+uhzfG8jHmMLnQNNL4Uwqxoniw/xmmVRbc9xGIeLniRsGY77RgdhWW0V1z1zVjTztgMQzQ==} engines: {node: ^22.11 || ^24 || >=26, npm: '>=10.9.0', pnpm: '>=10.0.0', yarn: '>=4.5.2'} hasBin: true @@ -1543,7 +1543,7 @@ snapshots: '@changesets/get-github-info': 1.0.0-next.3 '@changesets/types': 7.0.0-next.6 - '@changesets/cli@3.0.0-next.7': + '@changesets/cli@3.0.0-next.8': dependencies: '@changesets/apply-release-plan': 8.0.0-next.7 '@changesets/assemble-release-plan': 7.0.0-next.7 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 50b3a618..2ce51cd3 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -7,7 +7,7 @@ minimumReleaseAgeExclude: - "@changesets/assemble-release-plan@7.0.0-next.7" - "@changesets/changelog-git@1.0.0-next.6" - "@changesets/changelog-github@1.0.0-next.6" - - "@changesets/cli@3.0.0-next.7" + - "@changesets/cli@3.0.0-next.8" - "@changesets/config@4.0.0-next.6" - "@changesets/get-dependents-graph@3.0.0-next.6" - "@changesets/get-github-info@1.0.0-next.3" diff --git a/scripts/bump.ts b/scripts/bump.ts index aec658e8..bcec726b 100644 --- a/scripts/bump.ts +++ b/scripts/bump.ts @@ -1,12 +1,14 @@ import fs from "node:fs"; import path from "node:path"; import { exec } from "@actions/exec"; -import pkgJson from "../package.json" with { type: "json" }; process.chdir(path.join(import.meta.dirname, "..")); await exec("changeset", ["version"]); +// read after versioning to get the new version +const pkgJson = (await import("../package.json", { with: { type: "json" } })) + .default; const releaseLine = `v${pkgJson.version.split(".")[0]}`; const readmePath = path.join(import.meta.dirname, "..", "README.md"); diff --git a/scripts/release.ts b/scripts/release.ts index cf955333..7d30fa10 100644 --- a/scripts/release.ts +++ b/scripts/release.ts @@ -1,6 +1,6 @@ import { Buffer } from "node:buffer"; import path from "node:path"; -import { exec, getExecOutput } from "@actions/exec"; +import { exec } from "@actions/exec"; import pkgJson from "../package.json" with { type: "json" }; const tag = `v${pkgJson.version}`; @@ -20,37 +20,17 @@ const gitEnv = { process.chdir(path.join(import.meta.dirname, "..")); -(async () => { - const { exitCode, stderr } = await getExecOutput( - `git`, - ["ls-remote", "--exit-code", "origin", "--tags", `refs/tags/${tag}`], - { - ignoreReturnCode: true, - }, - ); - if (exitCode === 0) { - console.log( - `Action is not being published because version ${tag} is already published`, - ); - return; - } - if (exitCode !== 2) { - throw new Error(`git ls-remote exited with ${exitCode}:\n${stderr}`); - } - - await exec("git", ["checkout", "--detach"]); - await exec("git", ["add", "--force", "dist"]); - await exec("git", ["commit", "-m", tag]); +await exec("git", ["checkout", "--detach"]); +await exec("git", ["add", "--force", "dist"]); +await exec("git", ["commit", "-m", tag]); - await exec("changeset", ["git-tag"]); - - if (isPrerelease) { - await exec("git", ["push", "origin", `refs/tags/${tag}`], { - env: gitEnv, - }); - return; - } +await exec("changeset", ["git-tag"]); +if (isPrerelease) { + await exec("git", ["push", "origin", `refs/tags/${tag}`], { + env: gitEnv, + }); +} else { await exec( "git", [ @@ -64,4 +44,4 @@ process.chdir(path.join(import.meta.dirname, "..")); env: gitEnv, }, ); -})(); +} From 4b6e1f1099554ebb87a2a5c6b85a496ca969e384 Mon Sep 17 00:00:00 2001 From: "changesets-org-version-bot[bot]" <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 14:28:07 +0200 Subject: [PATCH 28/62] Version Packages (next) (#677) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/pre.json | 8 +++++++- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index 6b36ff58..a4d47db0 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -3,12 +3,18 @@ "tag": "next", "changesets": [ "all-cars-grin", + "chubby-geese-sink", "eight-clocks-pull", "eighty-doors-swim", + "eighty-parks-tickle", + "fiery-toes-vanish", "git-cli-auth-header", "git-cli-server-url", "lemon-turtles-itch", "ready-mangos-boil", - "silent-tips-dance" + "shaky-rings-type", + "shy-months-crash", + "silent-tips-dance", + "yellow-roses-fix" ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 7cc27a9f..b64cf2b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ # @changesets/action +## 2.0.0-next.3 + +### Major Changes + +- [#680](https://github.com/changesets/action/pull/680) [`ca57073`](https://github.com/changesets/action/commit/ca57073900dc678254406a052a03c0c8824e319d) Thanks [@bluwy](https://github.com/bluwy)! - Add a new `push-git-tags` option that complements `create-github-releases` to control specifically if git tags should be created but not GitHub releases. + + If `create-github-releases` was previously set to `false`, which also indirectly disabled git tag creation, git tags will now be created instead by default. If this is not desired, set `push-git-tags` to `false` explicitly. + +- [#681](https://github.com/changesets/action/pull/681) [`7359107`](https://github.com/changesets/action/commit/73591071e61c7f61cf322dd7a6341dc29a8e1d4e) Thanks [@bluwy](https://github.com/bluwy)! - Rename the root action inputs and outputs to better match the sub-actions' conventions. + + Inputs: + - `version` -> `version-script` + - `publish` -> `publish-script` + - `commit` -> `commit-message` + - `title` -> `pr-title` + - `branch` -> `pr-base-branch` + + Outputs: + - `pull-request-number` -> `pr-number` + +- [#674](https://github.com/changesets/action/pull/674) [`164652b`](https://github.com/changesets/action/commit/164652bdd60525670d95291addb8c6f92833ac60) Thanks [@bluwy](https://github.com/bluwy)! - Remove support for passing custom GitHub token through the GITHUB_TOKEN environment variable. It should be passed to the `github-token` input instead. + +- [#673](https://github.com/changesets/action/pull/673) [`823cf74`](https://github.com/changesets/action/commit/823cf741ca57c5e22652123d3a847dfafcd77ca0) Thanks [@bluwy](https://github.com/bluwy)! - Update to Changesets v3 packages + +- [#668](https://github.com/changesets/action/pull/668) [`0eae789`](https://github.com/changesets/action/commit/0eae789230defbc4ad287e9b476aba7e842e34e0) Thanks [@bluwy](https://github.com/bluwy)! - Rename the input and output names to kebab-case instead of camelCase to match the official GitHub actions pattern + +### Minor Changes + +- [#678](https://github.com/changesets/action/pull/678) [`f71ae04`](https://github.com/changesets/action/commit/f71ae043ed5deb17952900091e009a60edef9507) Thanks [@Andarist](https://github.com/Andarist)! - Published packages detection done through stdout parsing was replaced with one based on the shared output file using `CHANGESETS_OUTPUT` environment variable. When using custom scripts this environment variable should always be passed down to the Changesets CLI invocations. + ## 2.0.0-next.2 ### Patch Changes diff --git a/package.json b/package.json index 44ba8b21..620ba2b0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@changesets/action", - "version": "2.0.0-next.2", + "version": "2.0.0-next.3", "private": true, "license": "MIT", "type": "module", From e43c867727075bc25f413662ee80e8eda68ec583 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Wed, 1 Jul 2026 15:29:33 +0200 Subject: [PATCH 29/62] Setup git user in the release script (#686) * Setup git user in the release script * refactor stuff --- .github/workflows/publish.yml | 23 ++++++++++++----------- .github/workflows/release-pr.yml | 19 +++++++------------ 2 files changed, 19 insertions(+), 23 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2054ba0d..c815bafc 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -62,8 +62,8 @@ jobs: - name: Build run: pnpm build - - uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 - id: app-token + - uses: ./.github/actions/setup-bot-auth + id: bot-auth with: client-id: ${{ vars.APP_CLIENT_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} @@ -74,7 +74,8 @@ jobs: id: changesets uses: ./version with: - github-token: ${{ steps.app-token.outputs.token }} + github-token: ${{ steps.bot-auth.outputs.token }} + setup-git-user: false script: pnpm bump publish: @@ -87,13 +88,6 @@ jobs: permissions: contents: write # to create release and have it authored by github-actions (changesets/action) steps: - - uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 - id: app-token - with: - client-id: ${{ vars.APP_CLIENT_ID }} - private-key: ${{ secrets.APP_PRIVATE_KEY }} - permission-contents: write # to bypass branch and tag protection rules (release.ts) - - name: Check out repo uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: @@ -106,8 +100,15 @@ jobs: - name: Build run: pnpm build + - uses: ./.github/actions/setup-bot-auth + id: bot-auth + with: + client-id: ${{ vars.APP_CLIENT_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + permission-contents: write # to bypass branch and tag protection rules (release.ts) + - name: Publish to marketplace uses: ./publish with: - github-token: ${{ steps.app-token.outputs.token }} + github-token: ${{ steps.bot-auth.outputs.token }} script: pnpm release diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 6f71c1c5..87d3b31c 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -122,13 +122,6 @@ jobs: pull-requests: write # to comment on the pull request with the release result (changesets/action) steps: - - uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 - id: app-token - with: - client-id: ${{ vars.APP_CLIENT_ID }} - private-key: ${{ secrets.APP_PRIVATE_KEY }} - permission-contents: write # to push the release snapshot branch (release-pr.ts) - - name: Check out repo uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: @@ -173,15 +166,17 @@ jobs: - name: Build run: pnpm build - - name: Setup Git user - run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" + - uses: ./.github/actions/setup-bot-auth + id: bot-auth + with: + client-id: ${{ vars.APP_CLIENT_ID }} + private-key: ${{ secrets.APP_PRIVATE_KEY }} + permission-contents: write # to push the release snapshot branch (release-pr.ts) - name: Release snapshot version run: pnpm release:pr env: - GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} + GITHUB_TOKEN: ${{ steps.bot-auth.outputs.token }} - name: Add success reaction run: gh api "/repos/$GH_REPO/issues/comments/$COMMENT_ID/reactions" -f content='rocket' From e3e2663c0e84e2e00bd00aae1210f5fe718cf991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Wed, 1 Jul 2026 15:52:58 +0200 Subject: [PATCH 30/62] Add uncommitted `.github/actions/setup-bot-auth` (#687) * Add uncommitted `.github/actions/setup-bot-auth` * tweak codeowners --- .github/CODEOWNERS | 2 +- .github/actions/setup-bot-auth/action.yml | 44 +++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 .github/actions/setup-bot-auth/action.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 3419a7f3..f626dc22 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,4 +1,4 @@ -/.github/workflows/** @Andarist @bluwy @emmatown +/.github/** @Andarist @bluwy @emmatown /action.yml @Andarist @bluwy @emmatown /scripts/bump.ts @Andarist @bluwy @emmatown /scripts/release.ts @Andarist @bluwy @emmatown diff --git a/.github/actions/setup-bot-auth/action.yml b/.github/actions/setup-bot-auth/action.yml new file mode 100644 index 00000000..823ddbe9 --- /dev/null +++ b/.github/actions/setup-bot-auth/action.yml @@ -0,0 +1,44 @@ +name: Setup bot auth +description: Create a GitHub App token and configure matching git identity + +inputs: + client-id: + description: GitHub App client ID + required: true + private-key: + description: GitHub App private key + required: true + permission-contents: + description: Contents permission for the GitHub App token + required: false + default: write + permission-pull-requests: + description: Pull requests permission for the GitHub App token + required: false + +outputs: + token: + description: GitHub App installation access token + value: ${{ steps.app-token.outputs.token }} + +runs: + using: composite + steps: + - uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 + id: app-token + with: + client-id: ${{ inputs.client-id }} + private-key: ${{ inputs.private-key }} + permission-contents: ${{ inputs.permission-contents }} + permission-pull-requests: ${{ inputs.permission-pull-requests }} + + - name: Setup Git user + shell: bash + run: | + app_user="$APP_SLUG[bot]" + app_id="$(gh api "/users/$app_user" --jq .id)" + git config user.name "$app_user" + git config user.email "$app_id+$app_user@users.noreply.github.com" + env: + APP_SLUG: ${{ steps.app-token.outputs.app-slug }} + GH_TOKEN: ${{ steps.app-token.outputs.token }} From c6cc0d84cb4ac09aec4363a5ee1bab5a969637b6 Mon Sep 17 00:00:00 2001 From: Tee Ming Date: Mon, 6 Jul 2026 01:43:21 +0800 Subject: [PATCH 31/62] Update README.md with input/output kebab-case naming convention (#691) * Update README.md * Apply suggestion from @teemingc --- README.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 62e7dd38..f726e6cc 100644 --- a/README.md +++ b/README.md @@ -14,20 +14,22 @@ There are also sub-actions hosted in this repository. Check out their respective ### Inputs -- publish - The command to use to build and publish packages -- version - The command to update version, edit CHANGELOG, read and delete changesets. Default to `changeset version` if not provided -- commit - The commit message to use. Default to `Version Packages` -- title - The pull request title. Default to `Version Packages` -- setupGitUser - Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` -- createGithubReleases - A boolean value to indicate whether to create Github releases after `publish` or not. Default to `true` -- commitMode - Specifies the commit mode. Use `"git-cli"` to push changes using the Git CLI, or `"github-api"` to push changes via the GitHub API. When using `"github-api"`, all commits and tags are GPG-signed and attributed to the user or app who owns the `GITHUB_TOKEN`. Default to `git-cli`. +- publish-script - The command to use to build and publish packages +- version-script - The command to update version, edit CHANGELOG, read and delete changesets. Default to `changeset version` if not provided +- commit-message - The commit message to use. Default to `Version Packages` +- pr-title - The pull request title. Default to `Version Packages` +- setup-git-user - Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` +- create-github-releases - A boolean value to indicate whether to create Github releases after `publish` or not. Default to `true` +- push-git-tags - A boolean value to indicate whether to create git tags after `publish` or not. Default to `true` +- commit-mode - Specifies the commit mode. Use `"git-cli"` to push changes using the Git CLI, or `"github-api"` to push changes via the GitHub API. When using `"github-api"`, all commits and tags are GPG-signed and attributed to the user or app who owns the `GITHUB_TOKEN`. Default to `git-cli` - cwd - Changes node's `process.cwd()` if the project is not located on the root. Default to `process.cwd()` -- prDraft - Controls draft PR behavior. Use `create` to create new version PRs as draft, or `always` to also convert existing version PRs back to draft when updating them. By default, version PRs are not forced into draft mode. +- pr-draft - Controls draft PR behavior. Use `create` to create new version PRs as draft, or `always` to also convert existing version PRs back to draft when updating them. By default, version PRs are not forced into draft mode +- github-token - Passes a custom GitHub token ### Outputs - published - A boolean value to indicate whether a publishing has happened or not -- publishedPackages - A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` +- published-packages - A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` ### Example workflow From 84d78c68f98f20e24dfff22b22193e7b4f326ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Wed, 22 Jul 2026 08:31:15 +0200 Subject: [PATCH 32/62] Allow custom publish scripts to complete without a Changesets output file (#697) --- .changeset/calm-files-warn.md | 5 +++ src/run.test.ts | 62 +++++++++++++++++++++++++++++++++-- src/run.ts | 22 ++++++++++--- 3 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 .changeset/calm-files-warn.md diff --git a/.changeset/calm-files-warn.md b/.changeset/calm-files-warn.md new file mode 100644 index 00000000..bd3bf895 --- /dev/null +++ b/.changeset/calm-files-warn.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Allow custom publish scripts to complete without a Changesets output file, warning that GitHub releases and git tags cannot be created when that file is missing. diff --git a/src/run.test.ts b/src/run.test.ts index 24051d23..180df1e4 100644 --- a/src/run.test.ts +++ b/src/run.test.ts @@ -1,10 +1,11 @@ import path from "node:path"; +import * as core from "@actions/core"; import type { Changeset } from "@changesets/types"; import { writeChangeset } from "@changesets/write"; import { createFixture } from "fs-fixture"; -import { beforeEach, describe, expect, it, vi } from "vitest"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { GitHub } from "./github.ts"; -import { runVersion } from "./run.ts"; +import { runPublish, runVersion } from "./run.ts"; vi.mock("@actions/github", () => ({ context: { @@ -20,6 +21,10 @@ vi.mock("@actions/github", () => ({ graphql: mockedGraphql, }), })); +vi.mock("@actions/core", async (importOriginal) => ({ + ...(await importOriginal()), + warning: vi.fn(), +})); vi.mock("@changesets/ghcommit"); let mockedGithubMethods = { @@ -102,6 +107,59 @@ beforeEach(() => { vi.clearAllMocks(); }); +afterEach(() => { + vi.unstubAllEnvs(); +}); + +describe("publish", () => { + it("warns when a custom publish script does not create the output file", async () => { + await using fixture = await createSimpleProjectFixture(); + const cwd = fixture.path; + vi.stubEnv("RUNNER_TEMP", cwd); + + const result = await runPublish({ + script: 'node -e "void 0"', + github: createGithub(cwd), + createGithubReleases: true, + pushGitTags: true, + cwd, + }); + + expect(result).toEqual({ published: false, exitCode: 0 }); + expect(core.warning).toHaveBeenCalledWith( + expect.stringContaining( + "GitHub releases and git tags cannot be created without this output", + ), + ); + }); + + it("throws when the built-in publish command does not create the output file", async () => { + await using fixture = await createFixture({ + "node_modules/@changesets/cli/package.json": JSON.stringify({ + name: "@changesets/cli", + type: "module", + }), + "node_modules/@changesets/cli/bin.js": "", + "package.json": JSON.stringify({ + name: "simple-project", + version: "1.0.0", + }), + "package-lock.json": "", + }); + const cwd = fixture.path; + vi.stubEnv("RUNNER_TEMP", cwd); + + await expect( + runPublish({ + github: createGithub(cwd), + createGithubReleases: true, + pushGitTags: true, + cwd, + }), + ).rejects.toThrow("Failed to read changesets output at"); + }); +}); + describe("version", () => { it("creates simple PR", async () => { await using fixture = await createSimpleProjectFixture(); diff --git a/src/run.ts b/src/run.ts index 6f34e6b7..67783083 100644 --- a/src/run.ts +++ b/src/run.ts @@ -79,6 +79,8 @@ type ChangesetsOutputEvent = { packageName: string; }; +class ChangesetsOutputReadError extends Error {} + type PublishResult = | { published: true; @@ -113,9 +115,10 @@ async function readChangesetsOutput(outputPath: string) { try { rawOutput = await fs.readFile(outputPath, "utf8"); } catch (err) { - throw new Error(`Failed to read changesets output at ${outputPath}`, { - cause: err, - }); + throw new ChangesetsOutputReadError( + `Failed to read changesets output at ${outputPath}`, + { cause: err }, + ); } const events: ChangesetsOutputEvent[] = []; @@ -195,7 +198,18 @@ export async function runPublish({ let { packages, tool } = await getPackages(cwd); let packagesByName = new Map(packages.map((x) => [x.packageJson.name, x])); - let output = await readChangesetsOutput(outputFile); + let output: ChangesetsOutputEvent[]; + try { + output = await readChangesetsOutput(outputFile); + } catch (err) { + if (!script || !(err instanceof ChangesetsOutputReadError)) { + throw err; + } + core.warning( + `${err.message}. GitHub releases and git tags cannot be created without this output. Ensure the custom publish script passes CHANGESETS_OUTPUT to the Changesets CLI.`, + ); + output = []; + } let releases = output.map((event) => { let pkg = packagesByName.get(event.packageName); if (pkg === undefined) { From 5b307d3df25daf51c41dff70d2f66df1579ae9fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Thu, 23 Jul 2026 11:34:32 +0200 Subject: [PATCH 33/62] Validate that projects use Changesets CLI v3 and direct Changesets CLI v2 users to `changesets/action@v1` (#699) * Validate that projects use Changesets CLI v3 and direct Changesets CLI v2 users to `changesets/action@v1` * better spy/mocking * fmt * shuffle --- .changeset/bright-lions-check.md | 5 +++ src/index.ts | 8 +++-- src/pack/index.ts | 7 +++-- src/publish/index.ts | 8 +++-- src/run.test.ts | 8 ++--- src/select-mode/index.ts | 12 ++++--- src/utils.test.ts | 54 +++++++++++++++++++++++++++++++- src/utils.ts | 51 ++++++++++++++++++++++++++++++ src/version/index.ts | 13 +++++--- 9 files changed, 143 insertions(+), 23 deletions(-) create mode 100644 .changeset/bright-lions-check.md diff --git a/.changeset/bright-lions-check.md b/.changeset/bright-lions-check.md new file mode 100644 index 00000000..75787f18 --- /dev/null +++ b/.changeset/bright-lions-check.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Validate that projects use Changesets CLI v3 and direct Changesets CLI v2 users to `changesets/action@v1`. diff --git a/src/index.ts b/src/index.ts index cde1ebfa..83b3dab1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -8,9 +8,14 @@ import { getOptionalInput, getRequiredInput, throwOnRenamedInputs, + validateChangesetsCliVersion, } from "./utils.ts"; (async () => { + // If the user needs to change the cwd, set `working-directory` in the step instead + const cwd = process.cwd(); + await validateChangesetsCliVersion(cwd); + throwOnRenamedInputs({ publish: "publish-script", version: "version-script", @@ -32,9 +37,6 @@ import { ); } - // If the user needs to change the cwd, set `working-directory` in the step instead - const cwd = process.cwd(); - const commitMode = getOptionalInput("commit-mode") ?? "git-cli"; const prDraft = getOptionalInput("pr-draft"); if (commitMode !== "git-cli" && commitMode !== "github-api") { diff --git a/src/pack/index.ts b/src/pack/index.ts index f52f5e8b..ae4ed1be 100644 --- a/src/pack/index.ts +++ b/src/pack/index.ts @@ -7,6 +7,7 @@ import { downloadArtifact, execChangesetsCli, getOptionalInput, + validateChangesetsCliVersion, } from "../utils.ts"; try { @@ -16,10 +17,12 @@ try { } async function main() { - const publishPlanArtifactId = getOptionalInput("publish-plan-artifact-id"); - // If the user needs to change the cwd, set `working-directory` in the step instead const cwd = process.cwd(); + await validateChangesetsCliVersion(cwd); + + const publishPlanArtifactId = getOptionalInput("publish-plan-artifact-id"); + const tmpDir = process.env.RUNNER_TEMP ?? (await fs.realpath(os.tmpdir())); const outDir = path.join(tmpDir, `changeset-pack-${Date.now()}`); diff --git a/src/publish/index.ts b/src/publish/index.ts index 15bf8ab3..925489a2 100644 --- a/src/publish/index.ts +++ b/src/publish/index.ts @@ -7,6 +7,7 @@ import { downloadArtifact, getOptionalInput, getRequiredInput, + validateChangesetsCliVersion, } from "../utils.ts"; try { @@ -16,6 +17,10 @@ try { } async function main() { + // If the user needs to change the cwd, set `working-directory` in the step instead + const cwd = process.cwd(); + await validateChangesetsCliVersion(cwd); + const githubToken = getRequiredInput("github-token"); const script = getOptionalInput("script"); const packDirArtifactId = getOptionalInput("pack-dir-artifact-id"); @@ -30,9 +35,6 @@ async function main() { ); } - // If the user needs to change the cwd, set `working-directory` in the step instead - const cwd = process.cwd(); - // NOTE: Always use API mode here as publish does not need a commit-mode. const github = new GitHub({ cwd, githubToken, commitMode: "github-api" }); diff --git a/src/run.test.ts b/src/run.test.ts index 180df1e4..1dce7a0b 100644 --- a/src/run.test.ts +++ b/src/run.test.ts @@ -21,10 +21,8 @@ vi.mock("@actions/github", () => ({ graphql: mockedGraphql, }), })); -vi.mock("@actions/core", async (importOriginal) => ({ - ...(await importOriginal()), - warning: vi.fn(), -})); +vi.mock("@actions/core", { spy: true }); +const mockedWarning = vi.mocked(core.warning); vi.mock("@changesets/ghcommit"); let mockedGithubMethods = { @@ -126,7 +124,7 @@ describe("publish", () => { }); expect(result).toEqual({ published: false, exitCode: 0 }); - expect(core.warning).toHaveBeenCalledWith( + expect(mockedWarning).toHaveBeenCalledWith( expect.stringContaining( "GitHub releases and git tags cannot be created without this output", ), diff --git a/src/select-mode/index.ts b/src/select-mode/index.ts index 00e191d4..396aa2ea 100644 --- a/src/select-mode/index.ts +++ b/src/select-mode/index.ts @@ -4,7 +4,7 @@ import path from "node:path"; import artifact from "@actions/artifact"; import * as core from "@actions/core"; import readChangesetState from "../readChangesetState.ts"; -import { execChangesetsCli } from "../utils.ts"; +import { execChangesetsCli, validateChangesetsCliVersion } from "../utils.ts"; type ModeResult = | { @@ -27,7 +27,10 @@ try { } async function main() { - const result = await getMode(); + const cwd = process.cwd(); + await validateChangesetsCliVersion(cwd); + + const result = await getMode(cwd); core.setOutput("mode", result.mode); if (result.mode === "publish") { const publishPlanArtifact = await artifact.uploadArtifact( @@ -48,8 +51,8 @@ async function main() { } } -async function getMode(): Promise { - const { changesets } = await readChangesetState(); +async function getMode(cwd: string): Promise { + const { changesets } = await readChangesetState(cwd); if (changesets.length > 0) { const hasNonEmptyChangesets = changesets.some( @@ -61,7 +64,6 @@ async function getMode(): Promise { return { mode: "none" }; } - const cwd = process.cwd(); const publishPlanPath = path.join( process.env.RUNNER_TEMP ?? (await fs.realpath(os.tmpdir())), `changeset-publish-plan-${Date.now()}`, diff --git a/src/utils.test.ts b/src/utils.test.ts index dfa2880c..a2326f31 100644 --- a/src/utils.test.ts +++ b/src/utils.test.ts @@ -1,5 +1,11 @@ +import { createFixture } from "fs-fixture"; import { expect, test } from "vitest"; -import { BumpLevels, getChangelogEntry, sortTheThings } from "./utils.ts"; +import { + BumpLevels, + getChangelogEntry, + sortTheThings, + validateChangesetsCliVersion, +} from "./utils.ts"; let changelog = `# @keystone-alpha/email @@ -100,3 +106,49 @@ test("it sorts the things right", () => { ]; expect(things.sort(sortTheThings)).toMatchSnapshot(); }); + +test("throws when the project declares Changesets CLI v2", async () => { + await using fixture = await createFixture({ + "package.json": JSON.stringify({ + name: "project", + devDependencies: { "@changesets/cli": "^2.29.7" }, + }), + "package-lock.json": "", + }); + + await expect(validateChangesetsCliVersion(fixture.path)).rejects.toThrow( + "This version of the Changesets action is designed to work with Changesets CLI v3. Changesets CLI v2 is not supported; use Changesets action v1 instead, which is compatible with CLI v2.", + ); +}); + +test("accepts a Changesets CLI v3 contract without an installed CLI", async () => { + await using fixture = await createFixture({ + "package.json": JSON.stringify({ + name: "project", + devDependencies: { "@changesets/cli": "^3.0.0" }, + }), + "package-lock.json": "", + }); + + await expect( + validateChangesetsCliVersion(fixture.path), + ).resolves.toBeUndefined(); +}); + +test("throws when the project has Changesets CLI v2 installed", async () => { + await using fixture = await createFixture({ + "package.json": JSON.stringify({ + name: "project", + devDependencies: { "@changesets/cli": "^3.0.0" }, + }), + "package-lock.json": "", + "node_modules/@changesets/cli/package.json": JSON.stringify({ + name: "@changesets/cli", + version: "2.29.7", + }), + }); + + await expect(validateChangesetsCliVersion(fixture.path)).rejects.toThrow( + "This version of the Changesets action is designed to work with Changesets CLI v3. Changesets CLI v2 is not supported; use Changesets action v1 instead, which is compatible with CLI v2.", + ); +}); diff --git a/src/utils.ts b/src/utils.ts index 4ad5268c..9ff842c7 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -10,6 +10,8 @@ import { type ExecOutput, } from "@actions/exec"; import { getPackages, type Package } from "@manypkg/get-packages"; +import major from "semver/functions/major.js"; +import subset from "semver/ranges/subset.js"; const require = createRequire(import.meta.url); @@ -154,6 +156,55 @@ export function throwOnRenamedInputs(renames: Record) { } } +const changesetsCliCompatibilityError = + "This version of the Changesets action is designed to work with Changesets CLI v3. " + + "Changesets CLI v2 is not supported; use Changesets action v1 instead, which is compatible with CLI v2."; + +export async function validateChangesetsCliVersion(cwd: string) { + const { rootPackage } = await getPackages(cwd); + const packageJson = rootPackage?.packageJson; + const declaredVersion = + packageJson?.devDependencies?.["@changesets/cli"] ?? + packageJson?.dependencies?.["@changesets/cli"]; + + if (typeof declaredVersion === "string") { + const range = declaredVersion.startsWith("workspace:") + ? declaredVersion.slice("workspace:".length) + : declaredVersion; + + let isV2 = false; + + try { + isV2 = subset(range, ">=2.0.0-0 <3.0.0-0", { + includePrerelease: true, + }); + } catch { + // it could be a non-semver protocol + } + + if (isV2) { + throw new Error(changesetsCliCompatibilityError); + } + } + + let cliPackageJson; + + try { + cliPackageJson = require( + require.resolve("@changesets/cli/package.json", { paths: [cwd] }), + ); + } catch { + return; + } + + if ( + typeof cliPackageJson.version === "string" && + major(cliPackageJson.version) === 2 + ) { + throw new Error(changesetsCliCompatibilityError); + } +} + function resolveChangesetsCli(cwd: string) { return require.resolve("@changesets/cli/bin.js", { paths: [cwd], diff --git a/src/version/index.ts b/src/version/index.ts index d9498e1f..78bf653a 100644 --- a/src/version/index.ts +++ b/src/version/index.ts @@ -1,7 +1,11 @@ import * as core from "@actions/core"; import { GitHub } from "../github.ts"; import { runVersion } from "../run.ts"; -import { getOptionalInput, getRequiredInput } from "../utils.ts"; +import { + getOptionalInput, + getRequiredInput, + validateChangesetsCliVersion, +} from "../utils.ts"; try { await main(); @@ -10,6 +14,10 @@ try { } async function main() { + // If the user needs to change the cwd, set `working-directory` in the step instead + const cwd = process.cwd(); + await validateChangesetsCliVersion(cwd); + const githubToken = getRequiredInput("github-token"); const script = getOptionalInput("script"); const commitMessage = getRequiredInput("commit-message"); @@ -27,9 +35,6 @@ async function main() { throw new Error(`Invalid commit-mode input: ${commitMode}`); } - // If the user needs to change the cwd, set `working-directory` in the step instead - const cwd = process.cwd(); - const github = new GitHub({ cwd, githubToken, From 8a9495e0ee07cc9220009b13eb0d6ccfad64cb8e Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Fri, 24 Jul 2026 20:20:48 +0800 Subject: [PATCH 34/62] Gitignore .env file (#701) --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c4f6b826..7a099c02 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,6 @@ node_modules .parcel-cache .cache *.log +.env dist/ From 469993ce5783c6a38e72541d4ba0d25588702b9a Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Fri, 24 Jul 2026 23:24:09 +0800 Subject: [PATCH 35/62] Remove npm auth handling in favor of docs (#695) * Add docs for npm auth setup * Show bash examples * Improve bash pattern * Update and reference docs * Remove setup auth code * Update * Update * Update --- .changeset/strict-hotels-laugh.md | 7 ++ README.md | 32 +---- docs/set-up-npm-auth.md | 199 ++++++++++++++++++++++++++++++ src/index.ts | 47 ------- src/utils.ts | 7 -- 5 files changed, 212 insertions(+), 80 deletions(-) create mode 100644 .changeset/strict-hotels-laugh.md create mode 100644 docs/set-up-npm-auth.md diff --git a/.changeset/strict-hotels-laugh.md b/.changeset/strict-hotels-laugh.md new file mode 100644 index 00000000..dbf2906e --- /dev/null +++ b/.changeset/strict-hotels-laugh.md @@ -0,0 +1,7 @@ +--- +"@changesets/action": major +--- + +Removed `.npmrc` handling when the `NPM_TOKEN` environment variable is set. + +Authentication should be handled via Trusted Publishing instead. If a token is still needed, use `actions/setup-node` to set it up instead via the `registry-url` option. Check out the updated action README for more information of setting up npm authentication in GitHub Actions. diff --git a/README.md b/README.md index f726e6cc..fdf33ff4 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ jobs: #### With Publishing -Before you can setup this action with publishing, you'll need to have an [npm token](https://docs.npmjs.com/creating-and-viewing-authentication-tokens) that can publish the packages in the repo you're setting up the action for and doesn't have 2FA on publish enabled ([2FA on auth can be enabled](https://docs.npmjs.com/about-two-factor-authentication)). You'll also need to [add it as a secret on your GitHub repo](https://help.github.com/en/articles/virtual-environments-for-github-actions#creating-and-using-secrets-encrypted-variables) with the name `NPM_TOKEN`. Once you've done that, you can create a file at `.github/workflows/release.yml` with the following content. +Check the [npm authentication guide](./docs/set-up-npm-auth.md) to set up publishing to npm. After that, an example workflow with publishing may look like this: ```yml name: Release @@ -99,6 +99,7 @@ jobs: uses: actions/setup-node@v6 with: node-version: 26 + registry-url: https://registry.npmjs.org/ # makes the action set up npm authentication - name: Install Dependencies run: pnpm install --frozen-lockfile @@ -110,31 +111,7 @@ jobs: # This expects you to have a script called release which does a build for your packages and calls changeset publish publish-script: pnpm release env: - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - - - name: Send a Slack notification if a publish happens - if: steps.changesets.outputs.published == 'true' - # You can do something when a publish happens. - run: my-slack-bot send-notification --message "A new version of ${GITHUB_REPOSITORY} was published!" -``` - -By default the GitHub Action creates a `.npmrc` file with the following content: - -```txt -//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN} -``` - -However, if a `.npmrc` file is found, the GitHub Action does not recreate the file. This is useful if you need to configure the `.npmrc` file on your own. -For example, you can add a step before running the Changesets GitHub Action: - -```yml -- name: Creating .npmrc - run: | - cat << EOF > "$HOME/.npmrc" - //registry.npmjs.org/:_authToken=$NPM_TOKEN - EOF - env: - NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} ``` #### Custom Publishing @@ -166,6 +143,7 @@ jobs: uses: actions/setup-node@v6 with: node-version: 26 + registry-url: https://registry.npmjs.org/ # makes the action set up npm authentication - name: Install Dependencies run: pnpm install --frozen-lockfile @@ -178,6 +156,8 @@ jobs: if: steps.changesets.outputs.hasChangesets == 'false' # You can do something when a publish should happen. run: pnpm publish + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} ``` #### With version script diff --git a/docs/set-up-npm-auth.md b/docs/set-up-npm-auth.md new file mode 100644 index 00000000..6c5b3c84 --- /dev/null +++ b/docs/set-up-npm-auth.md @@ -0,0 +1,199 @@ +# How to set up npm authentication + +This is a brief guide on setting up npm authentication in GitHub Actions. Most of the information below are also applicable outside of Changesets and can be referenced for other npm workflows. + +## Recommended Setup + +It is recommended by npm to use [Trusted Publishing](https://docs.npmjs.com/trusted-publishers), or [Staged Publishing](https://docs.npmjs.com/staged-publishing), or both, to securely publish packages from CI. + +Note that Staged Publishing does not work with Changesets at the moment, so it's recommended to use Trusted Publishing instead for now. Check out [its docs](https://docs.npmjs.com/trusted-publishers) for more information to set it up. + +Also, in contrary to npm's [workflow recommendation](https://docs.npmjs.com/trusted-publishers#step-2-configure-your-cicd-workflow), make sure the `id-token: write` is only set on the job that needs to publish. As such, consider splitting the build, test, publish flows etc into separate jobs. Here's an example setup with Changesets: + +```yaml +# .github/workflows/publish.yml +name: Publish + +on: + push: + branches: + - main + +permissions: {} # recommended: reset permissions + +jobs: + select-mode: + runs-on: ubuntu-latest + outputs: + mode: ${{ steps.select-mode.outputs.mode }} + publish-plan-artifact-id: ${{ steps.select-mode.outputs.publish-plan-artifact-id }} + permissions: + contents: read # to check out repo (actions/checkout) + steps: + - uses: actions/checkout@v7 + - run: npm install + - uses: changesets/action/select-mode@v2 + id: select-mode + + version: + if: needs.select-mode.outputs.mode == 'version' + needs: select-mode + runs-on: ubuntu-latest + outputs: + version-dir-artifact-id: ${{ steps.version.outputs.version-dir-artifact-id }} + permissions: + contents: read # to check out repo (actions/checkout) + steps: + - uses: actions/checkout@v7 + - run: npm install + - uses: changesets/action/version@v2 + id: version + + pack: + if: needs.select-mode.outputs.mode == 'publish' + needs: select-mode + runs-on: ubuntu-latest + outputs: + pack-dir-artifact-id: ${{ steps.pack.outputs.pack-dir-artifact-id }} + permissions: + contents: read # to check out repo (actions/checkout) + steps: + - uses: actions/checkout@v7 + - run: npm install + - run: npm build + - uses: changesets/action/pack@v2 + id: pack + with: + publish-plan-artifact-id: ${{ needs.select-mode.outputs.publish-plan-artifact-id }} + + publish: + needs: pack + runs-on: ubuntu-latest + permissions: + id-token: write # for trusted publishing (changesets/action) + steps: + - uses: changesets/action/publish@v2 + with: + pack-dir-artifact-id: ${{ needs.pack.outputs.pack-dir-artifact-id }} +``` + +## Token-based Publishing + +> [!CAUTION] +> Token-based publishing (with [Granular Access Tokens](https://docs.npmjs.com/about-access-tokens#about-granular-access-tokens)) is no longer recommended, with many restrictions that make it difficult to use in CI workflows. For example: +> +> - They expire after a maximum of 90 days, which requires periodic manual token rotation. +> - 2FA-bypass tokens are [being deprecated](https://github.blog/changelog/2026-07-08-npm-install-time-security-and-gat-bypass2fa-deprecation/#2fa-bypass-tokens-will-no-longer-publish-directly) and will soon be not allowed to publish packages with 2FA enabled. +> +> However, if you're using a different npm-compatible registry that does not support Trusted Publishing or Staged Publishing, you may still opt for token-based publishing. Check out the [next section](#token-based-publishing) for more information. + +You'll need an [npm token](https://docs.npmjs.com/creating-and-viewing-authentication-tokens) with "Bypass two-factor authentication" checked (to prevent npm requesting 2FA in CI). [Add this token as a secret](https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets) in your GitHub repo with the name `NPM_TOKEN` so it can be used in the workflow below. + +In most cases, you can use [actions/setup-node](https://github.com/actions/setup-node) to set up token-based authentication automatically. + +```yaml +# .github/workflows/publish.yml +name: Publish + +on: + push: + branches: + - main + +permissions: {} # recommended: reset permissions + +jobs: + # ... other jobs like select-mode and version + publish: + if: needs.select-mode.outputs.mode == 'publish' + needs: select-mode + runs-on: ubuntu-latest + permissions: + contents: read # to check out repo (actions/checkout) + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-node@v7 + with: + node-version: 24 + registry-url: https://registry.npmjs.org/ # set this option to set up npm authentication + - run: npm install + - run: npm build + - uses: changesets/action/publish@v2 + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} # pass the token here +``` + +> [!TIP] +> Pass `registry-url: https://npm.pkg.github.com/` and `NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}` to publish to the GitHub Package Registry instead of npm. + +Internally, `actions/setup-node` will set up a `.npmrc` file that looks like this: + +```ini +//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN} +``` + +This syntax allows to authenticate with the npm registry only when the `NODE_AUTH_TOKEN` environment variable is set, which is the safer approach than storing the token directly in the `.npmrc` file. + +### Manual Setup + +For advanced use cases, you can also set up the [`~/.npmrc` file](https://docs.npmjs.com/cli/configuring-npm/npmrc) manually. Make sure to remove the `registry-url` option from `actions/setup-node` to prevent conflicts with your custom `.npmrc` file. + +For example, if you need to publish different scopes to different registries, you can set up the `~/.npmrc` file like below: + +```yaml +- run: | + cat << 'EOF' > ~/.npmrc + + # For unscoped packages, publish to the default npm registry + //registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN} + + # For @foo/* packages, publish to a custom registry + @foo:registry=https://my-registry.com/ + //my-registry.com/:_authToken=${NODE_FOO_AUTH_TOKEN} + + # For @bar/* packages, publish to the GitHub Package Registry + @bar:registry=https://npm.pkg.github.com/ + //npm.pkg.github.com/:_authToken=${GITHUB_TOKEN} + + EOF +``` + +### Package Managers Edge Cases + +#### pnpm + +An `.npmrc` file in a project directory with pnpm does not support environment variables due to [security reasons](https://pnpm.io/blog/2026/06/11/env-variables-in-repository-npmrc). As such, it's recommended to set up in the home directory instead. This is also the general recommendation for other package managers to not mix potential existing config setups in projects. + +#### yarn + +[Yarn](https://yarnpkg.com) does not support the `.npmrc` file, compared to every other package managers that do. To set up authentication for yarn, use a [`~/.yarnrc.yml` file](https://yarnpkg.com/configuration/yarnrc) instead: + +```yaml +- run: | + cat << 'EOF' > ~/.yarnrc.yml + npmAuthToken: "${NODE_AUTH_TOKEN}" + EOF +``` + +For advanced use cases, similar to the `.npmrc` example above, the equivalent looks something like this: + +```yaml +- run: | + cat << 'EOF' > ~/.yarnrc.yml + + npmAuthToken: "${NODE_AUTH_TOKEN}" + + npmScopes: + foo: + npmRegistryServer: "https://my-registry.com/" + npmAuthToken: "${NODE_FOO_AUTH_TOKEN}" + bar: + npmRegistryServer: "https://npm.pkg.github.com/" + npmAuthToken: "${GITHUB_TOKEN}" + + EOF +``` + +#### Miscellaneous + +Other package managers may also support (or recommend) configuring the tokens in their own configuration files. Check their documentation for more information. diff --git a/src/index.ts b/src/index.ts index 83b3dab1..2f4fb8a0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,10 +1,8 @@ -import fs from "node:fs/promises"; import * as core from "@actions/core"; import { GitHub } from "./github.ts"; import readChangesetState from "./readChangesetState.ts"; import { runPublish, runVersion } from "./run.ts"; import { - fileExists, getOptionalInput, getRequiredInput, throwOnRenamedInputs, @@ -84,51 +82,6 @@ import { "No changesets found. Attempting to publish any unpublished packages to npm", ); - if (process.env.NPM_TOKEN) { - const userNpmrcPath = `${process.env.HOME}/.npmrc`; - - if (await fileExists(userNpmrcPath)) { - core.info("Found existing user .npmrc file"); - const userNpmrcContent = await fs.readFile(userNpmrcPath, "utf8"); - const authLine = userNpmrcContent.split("\n").find((line) => { - // check based on https://github.com/npm/cli/blob/8f8f71e4dd5ee66b3b17888faad5a7bf6c657eed/test/lib/adduser.js#L103-L105 - return /^\s*\/\/registry\.npmjs\.org\/:[_-]authToken=/i.test(line); - }); - if (authLine) { - core.info( - "Found existing auth token for the npm registry in the user .npmrc file", - ); - } else { - core.info( - "Didn't find existing auth token for the npm registry in the user .npmrc file, creating one", - ); - await fs.appendFile( - userNpmrcPath, - `\n//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN}\n`, - ); - } - } else { - core.info( - "No user .npmrc file found, creating one with NPM_TOKEN used as auth token", - ); - await fs.writeFile( - userNpmrcPath, - `//registry.npmjs.org/:_authToken=${process.env.NPM_TOKEN}\n`, - ); - } - } else if ( - process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN && - process.env.ACTIONS_ID_TOKEN_REQUEST_URL - ) { - core.info( - "No NPM_TOKEN found, but OIDC is available - using npm trusted publishing", - ); - } else { - core.info( - "No NPM_TOKEN or OIDC available - assuming npm is already authenticated", - ); - } - const createGithubReleases = core.getBooleanInput( "create-github-releases", ); diff --git a/src/utils.ts b/src/utils.ts index 9ff842c7..dfcda7d3 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -119,13 +119,6 @@ export function isErrorWithCode(err: unknown, code: string) { ); } -export function fileExists(filePath: string) { - return fs.access(filePath, fs.constants.F_OK).then( - () => true, - () => false, - ); -} - export function getOptionalInput(name: string) { // normalize empty string default return value of `core.getInput` to undefined return core.getInput(name) || undefined; From 219ea82e52caaff2a10a5e34d3455093cf958238 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Mon, 27 Jul 2026 07:02:39 +0200 Subject: [PATCH 36/62] Remove `setup-git-user` in favor of setting fallback only when identity is missing (#688) * Experiment with skipping setup-git-user more often * drop setup-git-user * fix tests --- .changeset/tidy-bots-smile.md | 5 +++++ .github/workflows/publish.yml | 1 - README.md | 6 +++++- action.yml | 4 ---- src/github.ts | 30 ++++++++++++++++++++++++++++-- src/index.ts | 8 -------- src/run.test.ts | 10 ++++++++++ src/run.ts | 4 ++++ src/version/index.ts | 6 ------ version/action.yml | 4 ---- 10 files changed, 52 insertions(+), 26 deletions(-) create mode 100644 .changeset/tidy-bots-smile.md diff --git a/.changeset/tidy-bots-smile.md b/.changeset/tidy-bots-smile.md new file mode 100644 index 00000000..96dd01cc --- /dev/null +++ b/.changeset/tidy-bots-smile.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Remove the `setup-git-user` input. Complete custom Git identities are now preserved automatically, while `github-actions[bot]` is configured as a fallback before creating local release commits or tags. diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c815bafc..66df3ccf 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -75,7 +75,6 @@ jobs: uses: ./version with: github-token: ${{ steps.bot-auth.outputs.token }} - setup-git-user: false script: pnpm bump publish: diff --git a/README.md b/README.md index fdf33ff4..1bad65de 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,6 @@ There are also sub-actions hosted in this repository. Check out their respective - version-script - The command to update version, edit CHANGELOG, read and delete changesets. Default to `changeset version` if not provided - commit-message - The commit message to use. Default to `Version Packages` - pr-title - The pull request title. Default to `Version Packages` -- setup-git-user - Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` - create-github-releases - A boolean value to indicate whether to create Github releases after `publish` or not. Default to `true` - push-git-tags - A boolean value to indicate whether to create git tags after `publish` or not. Default to `true` - commit-mode - Specifies the commit mode. Use `"git-cli"` to push changes using the Git CLI, or `"github-api"` to push changes via the GitHub API. When using `"github-api"`, all commits and tags are GPG-signed and attributed to the user or app who owns the `GITHUB_TOKEN`. Default to `git-cli` @@ -26,6 +25,11 @@ There are also sub-actions hosted in this repository. Check out their respective - pr-draft - Controls draft PR behavior. Use `create` to create new version PRs as draft, or `always` to also convert existing version PRs back to draft when updating them. By default, version PRs are not forced into draft mode - github-token - Passes a custom GitHub token +Before creating local commits or annotated tags, the action preserves complete +Git author and committer identities configured through the environment or Git +configuration. If either identity is unavailable, it configures +`github-actions[bot]` as a fallback. + ### Outputs - published - A boolean value to indicate whether a publishing has happened or not diff --git a/action.yml b/action.yml index 8f0d342e..b225c6f8 100644 --- a/action.yml +++ b/action.yml @@ -46,10 +46,6 @@ inputs: or app who owns the GITHUB_TOKEN. required: false default: "git-cli" - setup-git-user: - description: Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` - required: false - default: true outputs: published: description: A boolean value to indicate whether a publishing is happened or not diff --git a/src/github.ts b/src/github.ts index 54553463..e6cd51e6 100644 --- a/src/github.ts +++ b/src/github.ts @@ -93,10 +93,35 @@ export class GitHub { }; } - async setupUser() { - if (this.commitMode === "github-api") { + async ensureGitUser() { + // Check the exact identities that Git would use for commits without + // allowing Git to fall back to auto-detected values like user@hostname. + // This covers explicit GIT_AUTHOR_* / GIT_COMMITTER_* env vars, local + // config, and global config. A partial identity, with only a name or only + // an email, does not pass this check. If either identity is missing, + // configure our default bot user as a fallback. + const authorIdentity = await getExecOutput( + "git", + ["-c", "user.useConfigOnly=true", "var", "GIT_AUTHOR_IDENT"], + { + cwd: this.cwd, + ignoreReturnCode: true, + silent: true, + }, + ); + const committerIdentity = await getExecOutput( + "git", + ["-c", "user.useConfigOnly=true", "var", "GIT_COMMITTER_IDENT"], + { + cwd: this.cwd, + ignoreReturnCode: true, + silent: true, + }, + ); + if (authorIdentity.exitCode === 0 && committerIdentity.exitCode === 0) { return; } + core.info("Setting Git user to github-actions[bot]"); await exec("git", ["config", "user.name", `"github-actions[bot]"`], { cwd: this.cwd, }); @@ -159,6 +184,7 @@ export class GitHub { return; } if (!(await checkIfClean({ cwd: this.cwd }))) { + await this.ensureGitUser(); await commitAll(message, { cwd: this.cwd }); } await push(branch, { diff --git a/src/index.ts b/src/index.ts index 2f4fb8a0..d36485d7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -23,7 +23,6 @@ import { prDraft: "pr-draft", createGithubReleases: "create-github-releases", commitMode: "commit-mode", - setupGitUser: "setup-git-user", }); const githubToken = getRequiredInput("github-token"); @@ -51,13 +50,6 @@ import { commitMode, }); - let setupGitUser = core.getBooleanInput("setup-git-user"); - - if (setupGitUser) { - core.info("setting git user"); - await github.setupUser(); - } - let { changesets } = await readChangesetState(cwd); let publishScript = core.getInput("publish-script"); diff --git a/src/run.test.ts b/src/run.test.ts index 1dce7a0b..d6e8cbd4 100644 --- a/src/run.test.ts +++ b/src/run.test.ts @@ -3,6 +3,7 @@ import * as core from "@actions/core"; import type { Changeset } from "@changesets/types"; import { writeChangeset } from "@changesets/write"; import { createFixture } from "fs-fixture"; +import { exec } from "tinyexec"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { GitHub } from "./github.ts"; import { runPublish, runVersion } from "./run.ts"; @@ -101,6 +102,13 @@ const createGithub = (cwd: string) => commitMode: "github-api", }); +async function initializeGitRepository(cwd: string) { + await exec("git", ["init"], { + nodeOptions: { cwd }, + throwOnError: true, + }); +} + beforeEach(() => { vi.clearAllMocks(); }); @@ -113,6 +121,7 @@ describe("publish", () => { it("warns when a custom publish script does not create the output file", async () => { await using fixture = await createSimpleProjectFixture(); const cwd = fixture.path; + await initializeGitRepository(cwd); vi.stubEnv("RUNNER_TEMP", cwd); const result = await runPublish({ @@ -145,6 +154,7 @@ describe("publish", () => { "package-lock.json": "", }); const cwd = fixture.path; + await initializeGitRepository(cwd); vi.stubEnv("RUNNER_TEMP", cwd); await expect( diff --git a/src/run.ts b/src/run.ts index 67783083..37dd2806 100644 --- a/src/run.ts +++ b/src/run.ts @@ -164,6 +164,10 @@ export async function runPublish({ cwd, }: PublishOptions): Promise { const { octokit } = github; + // Changesets creates annotated tags locally, including when the action pushes those tags through the GitHub API. + // It might also be important for custom publish scripts to have a valid git user configured. + await github.ensureGitUser(); + let changesetPublishOutput: ExecOutput; const outputFile = path.join( process.env.RUNNER_TEMP ?? (await fs.realpath(os.tmpdir())), diff --git a/src/version/index.ts b/src/version/index.ts index 78bf653a..edf82980 100644 --- a/src/version/index.ts +++ b/src/version/index.ts @@ -25,7 +25,6 @@ async function main() { const prDraft = getOptionalInput("pr-draft"); const prBaseBranch = getOptionalInput("pr-base-branch"); const commitMode = getOptionalInput("commit-mode") ?? "git-cli"; - const setupGitUser = core.getBooleanInput("setup-git-user"); // Validations if (prDraft !== undefined && prDraft !== "always" && prDraft !== "create") { @@ -41,11 +40,6 @@ async function main() { commitMode, }); - if (setupGitUser) { - core.info("setting git user"); - await github.setupUser(); - } - const { pullRequestNumber } = await runVersion({ script, github, diff --git a/version/action.yml b/version/action.yml index d8ab725e..9ba675e1 100644 --- a/version/action.yml +++ b/version/action.yml @@ -33,10 +33,6 @@ inputs: or app who owns the GITHUB_TOKEN. required: false default: "git-cli" - setup-git-user: - description: Sets up the git user for commits as `"github-actions[bot]"`. Default to `true` - required: false - default: true outputs: pr-number: description: The pull request number that was created or updated From 64b747d5f5d4510edb2ce2e152cb69c50930b21d Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Fri, 31 Jul 2026 22:33:09 +0800 Subject: [PATCH 37/62] Update all the docs (#703) * Update all the docs * Fix heading --- README.md | 245 +++++++-------------------------------- action.yml | 4 +- docs/set-up-npm-auth.md | 199 ------------------------------- pack/README.md | 30 ++++- package.json | 10 +- pnpm-lock.yaml | 3 + pr-comment/README.md | 61 ++++++++-- pr-comment/action.yml | 2 +- pr-status/README.md | 79 ++++--------- publish/README.md | 36 +++++- publish/action.yml | 2 +- scripts/update-readme.ts | 46 ++++++++ select-mode/README.md | 29 ++++- version/README.md | 38 +++++- 14 files changed, 306 insertions(+), 478 deletions(-) delete mode 100644 docs/set-up-npm-auth.md create mode 100644 scripts/update-readme.ts diff --git a/README.md b/README.md index 1bad65de..9b16ad29 100644 --- a/README.md +++ b/README.md @@ -1,218 +1,63 @@ -# Changesets Release Action +# Changesets GitHub Action > [!IMPORTANT] > This is the development branch for `changesets/action` v2 compatible with Changesets v3. For the v1 code compatible with Changesets v2, check out the [`maintenance/v1`](https://github.com/changesets/action/tree/maintenance/v1) branch. -This action for [Changesets](https://github.com/changesets/changesets) creates a pull request with all of the package versions updated and changelogs updated and when there are new changesets on [your configured `baseBranch`](https://github.com/changesets/changesets/blob/main/docs/config-file-options.md#basebranch-git-branch-name), the PR will be updated. When you're ready, you can merge the pull request and you can either publish the packages to npm manually or setup the action to do it for you. +This repo contains a collection of GitHub Actions for [Changesets](https://changesets.dev). Check out the [Automating Changesets](https://changesets.dev/guide/automating) guide to learn how to use these actions to automate your workflow. -There are also sub-actions hosted in this repository. Check out their respective READMEs for more details: +- [changesets/action](./README.md): (This README. See below for details.) +- [changesets/action/select-mode](./select-mode/README.md): Select the mode to run a Changesets workflow. +- [changesets/action/version](./version/README.md): Version packages and create or update a pull request with the changes. +- [changesets/action/pack](./pack/README.md): Pack publishable packages into tarballs. +- [changesets/action/publish](./publish/README.md): Publish packages to npm. +- [changesets/action/pr-status](./pr-status/README.md): Generate changeset status in PRs. +- [changesets/action/pr-comment](./pr-comment/README.md): Create or update comments on PRs. -- [pr-status](./pr-status/README.md): Generate changeset status in PRs. -- [pr-comment](./pr-comment/README.md): Comment on PRs. +## changesets/action -## Usage +This action handles versioning and publishing of packages. It's the equivalent of setting up the `changesets/action/select-mode`, `changesets/action/version`, and `changesets/action/publish` actions in a workflow, but with the required permissions combined. -### Inputs +If using [trusted publishing](https://docs.npmjs.com/trusted-publishers), it's recommended to set up the individual sub-actions instead to tighten publish permissions. -- publish-script - The command to use to build and publish packages -- version-script - The command to update version, edit CHANGELOG, read and delete changesets. Default to `changeset version` if not provided -- commit-message - The commit message to use. Default to `Version Packages` -- pr-title - The pull request title. Default to `Version Packages` -- create-github-releases - A boolean value to indicate whether to create Github releases after `publish` or not. Default to `true` -- push-git-tags - A boolean value to indicate whether to create git tags after `publish` or not. Default to `true` -- commit-mode - Specifies the commit mode. Use `"git-cli"` to push changes using the Git CLI, or `"github-api"` to push changes via the GitHub API. When using `"github-api"`, all commits and tags are GPG-signed and attributed to the user or app who owns the `GITHUB_TOKEN`. Default to `git-cli` -- cwd - Changes node's `process.cwd()` if the project is not located on the root. Default to `process.cwd()` -- pr-draft - Controls draft PR behavior. Use `create` to create new version PRs as draft, or `always` to also convert existing version PRs back to draft when updating them. By default, version PRs are not forced into draft mode -- github-token - Passes a custom GitHub token +### Requirements -Before creating local commits or annotated tags, the action preserves complete -Git author and committer identities configured through the environment or Git -configuration. If either identity is unavailable, it configures -`github-actions[bot]` as a fallback. +- Needs repo checked out and `@changesets/cli` installed +- [Job permissions][job-permissions]: + - `contents: write`: to commit version changes + - `pull-requests: write`: to create pull request + - `id-token: write`: if using [trusted publishing](https://docs.npmjs.com/trusted-publishers) +- [Workflow triggers][workflow-triggers]: _any_ -### Outputs +### Usage -- published - A boolean value to indicate whether a publishing has happened or not -- published-packages - A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` +> [!TIP] +> Check out [the docs](https://changesets.dev/guide/automating#how-do-i-run-the-version-and-publish-commands) to learn how to set up the version and publish workflow. -### Example workflow +### API -#### Without Publishing + -Create a file at `.github/workflows/release.yml` with the following content. +| Inputs | Description | +| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. | +| `publish-script` | The command to use to build and publish packages | +| `version-script` | The command to update version, edit CHANGELOG, read and delete changesets. Default to `changeset version` if not provided | +| `commit-message` | The commit message. Default to `Version Packages` | +| `pr-title` | The pull request title. Default to `Version Packages` | +| `pr-draft` | Controls draft PR behavior. Use 'create' to create new version PRs as draft, or 'always' to also convert existing version PRs back to draft when updating them. | +| `pr-base-branch` | Sets the base branch of the PR. Defaults to `github.ref_name`. | +| `create-github-releases` | Whether to create Github releases after publish | +| `push-git-tags` | Whether to create git tags after publish. If `create-github-releases` is set to `true`, this option will also always be `true`. | +| `commit-mode` | An enum to specify the commit mode. Use "git-cli" to push changes using the Git CLI, or "github-api" to push changes via the GitHub API. When using "github-api", all commits and tags are signed using GitHub's GPG key and attributed to the user or app who owns the GITHUB_TOKEN. | -```yml -name: Release +| Outputs | Description | +| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `published` | A "true" or "false" string value to indicate whether a publishing is happened or not | +| `published-packages` | A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` | +| `has-changesets` | A "true" or "false" string value about whether there were changesets. Useful if you want to create your own publishing functionality. | +| `pr-number` | The pull request number that was created or updated | -on: - push: - branches: - - main + -concurrency: ${{ github.workflow }}-${{ github.ref }} - -jobs: - release: - name: Release - runs-on: ubuntu-latest - steps: - - name: Checkout Repo - uses: actions/checkout@v6 - - - name: Setup pnpm - uses: pnpm/action-setup@v6 - - - name: Setup Node.js 26 - uses: actions/setup-node@v6 - with: - node-version: 26 - - - name: Install Dependencies - run: pnpm install --frozen-lockfile - - - name: Create Release Pull Request - uses: changesets/action@v2 -``` - -#### With Publishing - -Check the [npm authentication guide](./docs/set-up-npm-auth.md) to set up publishing to npm. After that, an example workflow with publishing may look like this: - -```yml -name: Release - -on: - push: - branches: - - main - -concurrency: ${{ github.workflow }}-${{ github.ref }} - -jobs: - release: - name: Release - runs-on: ubuntu-latest - steps: - - name: Checkout Repo - uses: actions/checkout@v6 - - - name: Setup pnpm - uses: pnpm/action-setup@v6 - - - name: Setup Node.js 26 - uses: actions/setup-node@v6 - with: - node-version: 26 - registry-url: https://registry.npmjs.org/ # makes the action set up npm authentication - - - name: Install Dependencies - run: pnpm install --frozen-lockfile - - - name: Create Release Pull Request or Publish to npm - id: changesets - uses: changesets/action@v2 - with: - # This expects you to have a script called release which does a build for your packages and calls changeset publish - publish-script: pnpm release - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} -``` - -#### Custom Publishing - -If you want to hook into when publishing should occur but have your own publishing functionality, you can utilize the `hasChangesets` output. - -Note that you might need to account for things already being published in your script because a commit without any new changesets can always land on your base branch after a successful publish. In such a case you need to figure out on your own how to skip over the actual publishing logic or handle errors gracefully as most package registries won't allow you to publish over already published version. - -```yml -name: Release - -on: - push: - branches: - - main - -jobs: - release: - name: Release - runs-on: ubuntu-latest - steps: - - name: Checkout Repo - uses: actions/checkout@v6 - - - name: Setup pnpm - uses: pnpm/action-setup@v6 - - - name: Setup Node.js 26 - uses: actions/setup-node@v6 - with: - node-version: 26 - registry-url: https://registry.npmjs.org/ # makes the action set up npm authentication - - - name: Install Dependencies - run: pnpm install --frozen-lockfile - - - name: Create Release Pull Request or Publish to npm - id: changesets - uses: changesets/action@v2 - - - name: Publish - if: steps.changesets.outputs.hasChangesets == 'false' - # You can do something when a publish should happen. - run: pnpm publish - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} -``` - -#### With version script - -If you need to add additional logic to the version command, you can do so by using a version script. - -If the version script is present, this action will run that script instead of `changeset version`, so please make sure that your script calls `changeset version` at some point. All the changes made by the script will be included in the PR. - -```yml -name: Release - -on: - push: - branches: - - main - -concurrency: ${{ github.workflow }}-${{ github.ref }} - -jobs: - release: - name: Release - runs-on: ubuntu-latest - steps: - - name: Checkout Repo - uses: actions/checkout@v6 - - - name: Setup pnpm - uses: pnpm/action-setup@v6 - - - name: Setup Node.js 26 - uses: actions/setup-node@v6 - with: - node-version: 26 - - - name: Install Dependencies - run: pnpm install --frozen-lockfile - - - name: Create Release Pull Request - uses: changesets/action@v2 - with: - # this expects you to have a npm script called version that runs some logic and then calls `changeset version`. - version-script: pnpm version -``` - -#### With Yarn 2 / Plug'n'Play - -If you are using [Yarn Plug'n'Play](https://yarnpkg.com/features/pnp), you should use a custom `version` command so that the action can resolve the `changeset` CLI: - -```yaml -- uses: changesets/action@v2 - with: - version-script: yarn changeset version - # ... -``` +[job-permissions]: https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idpermissions +[workflow-triggers]: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows diff --git a/action.yml b/action.yml index b225c6f8..04fcf068 100644 --- a/action.yml +++ b/action.yml @@ -48,12 +48,12 @@ inputs: default: "git-cli" outputs: published: - description: A boolean value to indicate whether a publishing is happened or not + description: A "true" or "false" string value to indicate whether a publishing is happened or not published-packages: description: > A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` has-changesets: - description: A boolean about whether there were changesets. Useful if you want to create your own publishing functionality. + description: A "true" or "false" string value about whether there were changesets. Useful if you want to create your own publishing functionality. pr-number: description: The pull request number that was created or updated branding: diff --git a/docs/set-up-npm-auth.md b/docs/set-up-npm-auth.md deleted file mode 100644 index 6c5b3c84..00000000 --- a/docs/set-up-npm-auth.md +++ /dev/null @@ -1,199 +0,0 @@ -# How to set up npm authentication - -This is a brief guide on setting up npm authentication in GitHub Actions. Most of the information below are also applicable outside of Changesets and can be referenced for other npm workflows. - -## Recommended Setup - -It is recommended by npm to use [Trusted Publishing](https://docs.npmjs.com/trusted-publishers), or [Staged Publishing](https://docs.npmjs.com/staged-publishing), or both, to securely publish packages from CI. - -Note that Staged Publishing does not work with Changesets at the moment, so it's recommended to use Trusted Publishing instead for now. Check out [its docs](https://docs.npmjs.com/trusted-publishers) for more information to set it up. - -Also, in contrary to npm's [workflow recommendation](https://docs.npmjs.com/trusted-publishers#step-2-configure-your-cicd-workflow), make sure the `id-token: write` is only set on the job that needs to publish. As such, consider splitting the build, test, publish flows etc into separate jobs. Here's an example setup with Changesets: - -```yaml -# .github/workflows/publish.yml -name: Publish - -on: - push: - branches: - - main - -permissions: {} # recommended: reset permissions - -jobs: - select-mode: - runs-on: ubuntu-latest - outputs: - mode: ${{ steps.select-mode.outputs.mode }} - publish-plan-artifact-id: ${{ steps.select-mode.outputs.publish-plan-artifact-id }} - permissions: - contents: read # to check out repo (actions/checkout) - steps: - - uses: actions/checkout@v7 - - run: npm install - - uses: changesets/action/select-mode@v2 - id: select-mode - - version: - if: needs.select-mode.outputs.mode == 'version' - needs: select-mode - runs-on: ubuntu-latest - outputs: - version-dir-artifact-id: ${{ steps.version.outputs.version-dir-artifact-id }} - permissions: - contents: read # to check out repo (actions/checkout) - steps: - - uses: actions/checkout@v7 - - run: npm install - - uses: changesets/action/version@v2 - id: version - - pack: - if: needs.select-mode.outputs.mode == 'publish' - needs: select-mode - runs-on: ubuntu-latest - outputs: - pack-dir-artifact-id: ${{ steps.pack.outputs.pack-dir-artifact-id }} - permissions: - contents: read # to check out repo (actions/checkout) - steps: - - uses: actions/checkout@v7 - - run: npm install - - run: npm build - - uses: changesets/action/pack@v2 - id: pack - with: - publish-plan-artifact-id: ${{ needs.select-mode.outputs.publish-plan-artifact-id }} - - publish: - needs: pack - runs-on: ubuntu-latest - permissions: - id-token: write # for trusted publishing (changesets/action) - steps: - - uses: changesets/action/publish@v2 - with: - pack-dir-artifact-id: ${{ needs.pack.outputs.pack-dir-artifact-id }} -``` - -## Token-based Publishing - -> [!CAUTION] -> Token-based publishing (with [Granular Access Tokens](https://docs.npmjs.com/about-access-tokens#about-granular-access-tokens)) is no longer recommended, with many restrictions that make it difficult to use in CI workflows. For example: -> -> - They expire after a maximum of 90 days, which requires periodic manual token rotation. -> - 2FA-bypass tokens are [being deprecated](https://github.blog/changelog/2026-07-08-npm-install-time-security-and-gat-bypass2fa-deprecation/#2fa-bypass-tokens-will-no-longer-publish-directly) and will soon be not allowed to publish packages with 2FA enabled. -> -> However, if you're using a different npm-compatible registry that does not support Trusted Publishing or Staged Publishing, you may still opt for token-based publishing. Check out the [next section](#token-based-publishing) for more information. - -You'll need an [npm token](https://docs.npmjs.com/creating-and-viewing-authentication-tokens) with "Bypass two-factor authentication" checked (to prevent npm requesting 2FA in CI). [Add this token as a secret](https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets) in your GitHub repo with the name `NPM_TOKEN` so it can be used in the workflow below. - -In most cases, you can use [actions/setup-node](https://github.com/actions/setup-node) to set up token-based authentication automatically. - -```yaml -# .github/workflows/publish.yml -name: Publish - -on: - push: - branches: - - main - -permissions: {} # recommended: reset permissions - -jobs: - # ... other jobs like select-mode and version - publish: - if: needs.select-mode.outputs.mode == 'publish' - needs: select-mode - runs-on: ubuntu-latest - permissions: - contents: read # to check out repo (actions/checkout) - steps: - - uses: actions/checkout@v7 - - uses: actions/setup-node@v7 - with: - node-version: 24 - registry-url: https://registry.npmjs.org/ # set this option to set up npm authentication - - run: npm install - - run: npm build - - uses: changesets/action/publish@v2 - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} # pass the token here -``` - -> [!TIP] -> Pass `registry-url: https://npm.pkg.github.com/` and `NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}` to publish to the GitHub Package Registry instead of npm. - -Internally, `actions/setup-node` will set up a `.npmrc` file that looks like this: - -```ini -//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN} -``` - -This syntax allows to authenticate with the npm registry only when the `NODE_AUTH_TOKEN` environment variable is set, which is the safer approach than storing the token directly in the `.npmrc` file. - -### Manual Setup - -For advanced use cases, you can also set up the [`~/.npmrc` file](https://docs.npmjs.com/cli/configuring-npm/npmrc) manually. Make sure to remove the `registry-url` option from `actions/setup-node` to prevent conflicts with your custom `.npmrc` file. - -For example, if you need to publish different scopes to different registries, you can set up the `~/.npmrc` file like below: - -```yaml -- run: | - cat << 'EOF' > ~/.npmrc - - # For unscoped packages, publish to the default npm registry - //registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN} - - # For @foo/* packages, publish to a custom registry - @foo:registry=https://my-registry.com/ - //my-registry.com/:_authToken=${NODE_FOO_AUTH_TOKEN} - - # For @bar/* packages, publish to the GitHub Package Registry - @bar:registry=https://npm.pkg.github.com/ - //npm.pkg.github.com/:_authToken=${GITHUB_TOKEN} - - EOF -``` - -### Package Managers Edge Cases - -#### pnpm - -An `.npmrc` file in a project directory with pnpm does not support environment variables due to [security reasons](https://pnpm.io/blog/2026/06/11/env-variables-in-repository-npmrc). As such, it's recommended to set up in the home directory instead. This is also the general recommendation for other package managers to not mix potential existing config setups in projects. - -#### yarn - -[Yarn](https://yarnpkg.com) does not support the `.npmrc` file, compared to every other package managers that do. To set up authentication for yarn, use a [`~/.yarnrc.yml` file](https://yarnpkg.com/configuration/yarnrc) instead: - -```yaml -- run: | - cat << 'EOF' > ~/.yarnrc.yml - npmAuthToken: "${NODE_AUTH_TOKEN}" - EOF -``` - -For advanced use cases, similar to the `.npmrc` example above, the equivalent looks something like this: - -```yaml -- run: | - cat << 'EOF' > ~/.yarnrc.yml - - npmAuthToken: "${NODE_AUTH_TOKEN}" - - npmScopes: - foo: - npmRegistryServer: "https://my-registry.com/" - npmAuthToken: "${NODE_FOO_AUTH_TOKEN}" - bar: - npmRegistryServer: "https://npm.pkg.github.com/" - npmAuthToken: "${GITHUB_TOKEN}" - - EOF -``` - -#### Miscellaneous - -Other package managers may also support (or recommend) configuring the tokens in their own configuration files. Check their documentation for more information. diff --git a/pack/README.md b/pack/README.md index 1824a561..ee7709d7 100644 --- a/pack/README.md +++ b/pack/README.md @@ -1,3 +1,31 @@ # changesets/action/pack -TODO +This action packs publishable packages into tarballs, complements [changesets/action/publish](../publish/README.md) to publish them in a later step. + +## Requirements + +- Needs repo checked out and `@changesets/cli` installed +- [Job permissions][job-permissions]: _none_ +- [Workflow triggers][workflow-triggers]: _any_ + +## Usage + +> [!TIP] +> Check out [the docs](https://changesets.dev/guide/automating#how-do-i-run-the-version-and-publish-commands) to learn how to set up the version and publish workflow. + +## API + + + +| Inputs | Description | +| -------------------------- | --------------------------------------------------------------------- | +| `publish-plan-artifact-id` | Artifact id for a publish plan generated by the select-mode subaction | + +| Outputs | Description | +| ---------------------- | ------------------------------------------- | +| `pack-dir-artifact-id` | Artifact id for the packed output directory | + + + +[job-permissions]: https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idpermissions +[workflow-triggers]: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows diff --git a/package.json b/package.json index 620ba2b0..861f1104 100644 --- a/package.json +++ b/package.json @@ -13,9 +13,10 @@ "format": "oxfmt --check", "format:fix": "oxfmt", "changeset": "changeset", - "bump": "node --experimental-strip-types ./scripts/bump.ts", - "release": "node --experimental-strip-types ./scripts/release.ts", - "release:pr": "node --experimental-strip-types ./scripts/release-pr.ts" + "bump": "node ./scripts/bump.ts", + "update-readme": "node ./scripts/update-readme.ts", + "release": "node ./scripts/release.ts", + "release:pr": "node ./scripts/release-pr.ts" }, "dependencies": { "@actions/artifact": "^6.2.1", @@ -47,7 +48,8 @@ "oxfmt": "^0.48.0", "rolldown": "^1.0.1", "typescript": "^6.0.3", - "vitest": "^4.1.6" + "vitest": "^4.1.6", + "yaml": "^2.9.0" }, "engines": { "node": ">=24" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c4996e2f..44dc466a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -98,6 +98,9 @@ importers: vitest: specifier: ^4.1.6 version: 4.1.6(@types/node@24.12.4)(vite@8.0.13) + yaml: + specifier: ^2.9.0 + version: 2.9.0 packages: diff --git a/pr-comment/README.md b/pr-comment/README.md index 268ec2ef..8c5c3c15 100644 --- a/pr-comment/README.md +++ b/pr-comment/README.md @@ -1,16 +1,28 @@ -# @changesets/action/pr-comment +# changesets/action/pr-comment -A simple GitHub Action to comment on PRs aimed to complement [`@changesets/action/pr-status`](../pr-status/README.md). +This action creates or updates comments on PRs, aimed to complement [changesets/action/pr-status](../pr-status/README.md). -This action is intentionally simple without advanced features. Check out other actions if so, such as [mshick/add-pr-comment](https://github.com/marketplace/actions/add-pr-comment) and [peter-evans/create-or-update-comment](https://github.com/marketplace/actions/create-or-update-comment). +Its features are kept intentionally simple. For advanced usecases, check out other actions such as [mshick/add-pr-comment](https://github.com/marketplace/actions/add-pr-comment) and [peter-evans/create-or-update-comment](https://github.com/marketplace/actions/create-or-update-comment). -See the [action metadata](action.yml) for details on the inputs and outputs. +## Requirements -## Example setup +- [Job permissions][job-permissions]: + - `pull-requests: write`: to create and update comments on PRs +- [Workflow triggers][workflow-triggers]: + - [`pull_request`][trigger-pull-request] + - [`pull_request_target`][trigger-pull-request-target] -```yaml -name: PR Comment +> [!CAUTION] +> **Do not run untrusted code** when using the `pull_request_target` event. +> +> `pull_request_target` can be useful to support PRs from forks, however it enables write permissions by default which can be a security risk if untrusted code is executed and the permissions aren't scoped down. + +## Usage + +> [!TIP] +> Check out [the docs](https://changesets.dev/guide/automating#non-blocking) to learn how to set up commenting changesets status on PRs. +```yaml on: pull_request: @@ -18,21 +30,25 @@ jobs: pr-comment: runs-on: ubuntu-slim permissions: - pull-requests: write # to create and update comments on PRs + pull-requests: write # to create and update comments on PRs (changesets/action/pr-comment) steps: - - uses: changesets/action/pr-comment@v1 + - name: Comment on PR + uses: changesets/action/pr-comment@v2 with: body: Hello world! ``` -When called repeatedly, the action will update the comment it created by default. If you use this action to create different types of comments, pass an `update-id` value to differentiate them. +If the action is called again for the same PR, for example, if called in another workflow run, it will update the comment it created by default. + +If you use the action to create different types of comments, pass an `update-id` value to differentiate them. ```yaml jobs: pr-comment: # ... steps: - - uses: changesets/action/pr-comment@v1 + - name: Comment on PR + uses: changesets/action/pr-comment@v2 with: body: Hello world! update-id: my-tag @@ -45,8 +61,29 @@ jobs: pr-comment: # ... steps: - - uses: changesets/action/pr-comment@v1 + - uses: changesets/action/pr-comment@v2 with: body: Hello world! update-id: "" ``` + +## API + + + +| Inputs | Description | +| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. | +| `body` | **Required.** The comment body to post on the PR. | +| `update-id` | By default, the action will create and update a comment with this id. Pass a different id to create and update a new comment, or pass an empty string to disable updating comments. | + +| Outputs | Description | +| ------------ | ---------------------------------------------------------- | +| `comment-id` | The comment id of the comment that was created or updated. | + + + +[job-permissions]: https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idpermissions +[workflow-triggers]: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows +[trigger-pull-request]: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request +[trigger-pull-request-target]: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request_target diff --git a/pr-comment/action.yml b/pr-comment/action.yml index 273da211..9a6b364e 100644 --- a/pr-comment/action.yml +++ b/pr-comment/action.yml @@ -1,5 +1,5 @@ name: Changesets - PR Comment -description: A simple GitHub Action to comment on PRs +description: Create or update comments on PRs runs: using: node24 main: ../dist/pr-comment.js diff --git a/pr-status/README.md b/pr-status/README.md index 4027a416..79a97617 100644 --- a/pr-status/README.md +++ b/pr-status/README.md @@ -1,71 +1,40 @@ # changesets/action/pr-status -This action generates the changesets status in PRs, e.g. whether it has changeset files and which packages will be released if the PR is merged. +This action generates the changesets status in PRs, for example, whether it has changeset files and which packages will be released if the PR is merged. -It requires the repo to be checked out, and automatically fetches the PR head ref into a temporary detached worktree in order to infer the changed files and packages. +It requires the repo to be checked out, and will automatically fetch the PR head ref into a temporary detached worktree in order to infer the changed files and packages. -See the [action metadata](action.yml) for details on the inputs and outputs. +## Requirements + +- Needs repo checked out +- [Job permissions][job-permissions]: _none_ +- [Workflow triggers][workflow-triggers]: + - [`pull_request`][trigger-pull-request] + - [`pull_request_target`][trigger-pull-request-target] > [!CAUTION] -> **This action uses `pull_request_target` by default to support PRs from forks.** -> > **Do not run untrusted code** when using the `pull_request_target` event. > -> The example below only **_checks out_** and **_reads_** code, and does not **_execute_** any code from the fork. -> -> Read more about the `pull_request_target` event in the [GitHub documentation](https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request_target). - -You can also use the [`pull_request`](https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request) event if you prefer to lock permissions down and not run for PRs from forks. Make sure to add an if check to prevent the action from failing in fork PRs: - -```yaml -jobs: - pr-status: - if: github.event.pull_request.head.repo.full_name == github.repository - # ... -``` - -You can also use the [Changesets Bot](https://github.com/apps/changeset-bot) if you don't want an extra action in your repo, or are worried about the `pull_request_target` event. - -## Example setup +> `pull_request_target` can be useful to support PRs from forks, however it enables write permissions by default which can be a security risk if untrusted code is executed and the permissions aren't scoped down. -```yaml -# .github/workflows/comment-changesets-pr-status.yml -name: Comment Changesets status in PRs +[job-permissions]: https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idpermissions +[workflow-triggers]: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows +[trigger-pull-request]: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request +[trigger-pull-request-target]: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request_target -on: - pull_request_target: +## Usage -permissions: {} # require explicitly stating all permissions in each job +> [!TIP] +> Check out [the docs](https://changesets.dev/guide/automating#non-blocking) to learn how to set up commenting changesets status on PRs. -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number }} - cancel-in-progress: true +## API -jobs: - pr-status: - runs-on: ubuntu-slim - permissions: - contents: read # to check out files in the repo - outputs: - comment-body: ${{ steps.pr-status.outputs.comment-body }} - steps: - - name: Check out repo - uses: actions/checkout@v6 + - - name: Generate status - id: pr-status - uses: changesets/action/pr-status@v1 +Inputs: _none_ - pr-comment: - needs: pr-status - runs-on: ubuntu-slim - permissions: - pull-requests: write # to create and update comments on PRs - steps: - - name: Comment on PR - uses: changesets/action/pr-comment@v1 - with: - body: ${{ needs.pr-status.outputs.comment-body }} -``` +| Outputs | Description | +| -------------- | ------------------------------------------------------------------- | +| `comment-body` | The generated comment body to present the changesets status in PRs. | -The workflow uses [`@changesets/action/pr-comment`](../pr-comment/README.md), which is a simple GitHub Action to comment on PRs. + diff --git a/publish/README.md b/publish/README.md index 2850488a..44269cb8 100644 --- a/publish/README.md +++ b/publish/README.md @@ -1,3 +1,37 @@ # changesets/action/publish -TODO +This action publishes packages to npm. + +## Requirements + +- Needs repo checked out and `@changesets/cli` installed +- [Job permissions][job-permissions]: + - `id-token: write`: if using [trusted publishing](https://docs.npmjs.com/trusted-publishers) +- [Workflow triggers][workflow-triggers]: _any_ + +## Usage + +> [!TIP] +> Check out [the docs](https://changesets.dev/guide/automating#how-do-i-run-the-version-and-publish-commands) to learn how to set up the version and publish workflow. + +## API + + + +| Inputs | Description | +| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | +| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. | +| `script` | The command to use to publish packages | +| `pack-dir-artifact-id` | Artifact id for packed publish output generated by the pack subaction | +| `create-github-releases` | Whether to create Github releases after publish | +| `push-git-tags` | Whether to create git tags after publish. If `create-github-releases` is set to `true`, this option will also always be `true`. | + +| Outputs | Description | +| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `published` | A "true" or "false" string value to indicate whether a publishing has happened or not | +| `published-packages` | A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` | + + + +[job-permissions]: https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idpermissions +[workflow-triggers]: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows diff --git a/publish/action.yml b/publish/action.yml index 809c5509..aba3946b 100644 --- a/publish/action.yml +++ b/publish/action.yml @@ -26,7 +26,7 @@ inputs: default: true outputs: published: - description: "A boolean value to indicate whether a publishing has happened or not" + description: A "true" or "false" string value to indicate whether a publishing has happened or not published-packages: description: > A JSON array to present the published packages. The format is `[{"name": "@xx/xx", "version": "1.2.0"}, {"name": "@xx/xy", "version": "0.8.9"}]` diff --git a/scripts/update-readme.ts b/scripts/update-readme.ts new file mode 100644 index 00000000..a633991f --- /dev/null +++ b/scripts/update-readme.ts @@ -0,0 +1,46 @@ +import * as fs from "node:fs/promises"; +import path from "node:path"; +import { markdownTable } from "markdown-table"; +import * as yaml from "yaml"; + +await main(); + +async function main() { + for await (const readmePath of fs.glob("**/README.md", { + exclude: ["**/node_modules/**"], + })) { + const actionPath = path.join(path.dirname(readmePath), "action.yml"); + const actionExists = await fs.stat(actionPath).catch(() => null); + if (!actionExists) continue; + + const action = yaml.parse(await fs.readFile(actionPath, "utf8")); + const inputs = action.inputs ?? {}; + const outputs = action.outputs ?? {}; + + const content = [ + renderSection("Inputs", inputs), + renderSection("Outputs", outputs), + ].join("\n\n"); + + const readme = await fs.readFile(readmePath, "utf8"); + const updated = readme.replace( + /[\s\S]*?/, + `\n\n${content}\n\n`, + ); + await fs.writeFile(readmePath, updated); + } +} + +function renderSection(title: string, entries: Record) { + const rows: string[][] = []; + for (const [name, entry] of Object.entries(entries)) { + let description = (entry.description ?? "").trim().replace(/\|/g, "\\|"); + if (entry.required) description = `**Required.** ${description}`; + rows.push([`\`${name}\``, description]); + } + if (rows.length === 0) { + return `${title}: _none_`; + } + rows.unshift([title, "Description"]); + return markdownTable(rows); +} diff --git a/select-mode/README.md b/select-mode/README.md index f741cc8c..2b5462e1 100644 --- a/select-mode/README.md +++ b/select-mode/README.md @@ -1,3 +1,30 @@ # changesets/action/select-mode -TODO +This action selects the mode to run a Changesets workflow: + +- `"version"`: Changesets are found. The workflow should version packages and create a pull request with the changes. +- `"publish"`: No changesets are found and they are publishable packages. The workflow should publish them. +- `"none"`: No changesets are found and there are no publishable packages. The workflow should do nothing. + +## Requirements + +- [Job permissions][job-permissions]: _none_ +- [Workflow triggers][workflow-triggers]: _any_ + +## Usage + +> [!TIP] +> Check out [the docs](https://changesets.dev/guide/automating#how-do-i-run-the-version-and-publish-commands) to learn how to set up the version and publish workflow. + +## API + + + +Inputs: _none_ + +| Outputs | Description | +| -------------------------- | ---------------------------------------------------------------------------- | +| `mode` | The mode to use for the current repo state: 'version', 'publish', or 'none'. | +| `publish-plan-artifact-id` | Artifact id for the generated publish plan when mode is `publish` | + + diff --git a/version/README.md b/version/README.md index f0efb2bb..77e54e93 100644 --- a/version/README.md +++ b/version/README.md @@ -1,3 +1,39 @@ # changesets/action/version -TODO +This action versions packages and creates or updates a pull request with the changes. + +## Requirements + +- Needs repo checked out and `@changesets/cli` installed +- [Job permissions][job-permissions]: + - `contents: write`: to commit version changes + - `pull-requests: write`: to create pull request +- [Workflow triggers][workflow-triggers]: _any_ + +## Usage + +> [!TIP] +> Check out [the docs](https://changesets.dev/guide/automating#how-do-i-run-the-version-and-publish-commands) to learn how to set up the version and publish workflow. + +## API + + + +| Inputs | Description | +| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. | +| `script` | The command to use to version packages | +| `commit-message` | The commit message. Default to `Version Packages` | +| `pr-title` | The pull request title. Default to `Version Packages` | +| `pr-draft` | Controls draft PR behavior. Use 'create' to create new version PRs as draft, or 'always' to also convert existing version PRs back to draft when updating them. | +| `pr-base-branch` | Sets the base branch of the PR. Defaults to `github.ref_name`. | +| `commit-mode` | An enum to specify the commit mode. Use "git-cli" to push changes using the Git CLI, or "github-api" to push changes via the GitHub API. When using "github-api", all commits and tags are signed using GitHub's GPG key and attributed to the user or app who owns the GITHUB_TOKEN. | + +| Outputs | Description | +| ----------- | --------------------------------------------------- | +| `pr-number` | The pull request number that was created or updated | + + + +[job-permissions]: https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idpermissions +[workflow-triggers]: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows From 50de20a107d0aff4393c651857334dd0a4c877a3 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Sat, 1 Aug 2026 17:35:59 +0800 Subject: [PATCH 38/62] Add extra permission docs (#704) * Add extra permission docs * Update --- README.md | 3 +++ select-mode/README.md | 3 +++ version/README.md | 3 +++ 3 files changed, 9 insertions(+) diff --git a/README.md b/README.md index 9b16ad29..febb4abb 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,9 @@ If using [trusted publishing](https://docs.npmjs.com/trusted-publishers), it's r - `id-token: write`: if using [trusted publishing](https://docs.npmjs.com/trusted-publishers) - [Workflow triggers][workflow-triggers]: _any_ +> [!NOTE] +> In your repository settings, in `Actions > General`, also ensure the `Allow GitHub Actions to create and approve pull requests` option is enabled + ### Usage > [!TIP] diff --git a/select-mode/README.md b/select-mode/README.md index 2b5462e1..3b7abc42 100644 --- a/select-mode/README.md +++ b/select-mode/README.md @@ -28,3 +28,6 @@ Inputs: _none_ | `publish-plan-artifact-id` | Artifact id for the generated publish plan when mode is `publish` | + +[job-permissions]: https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idpermissions +[workflow-triggers]: https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows diff --git a/version/README.md b/version/README.md index 77e54e93..4c1ff0a1 100644 --- a/version/README.md +++ b/version/README.md @@ -10,6 +10,9 @@ This action versions packages and creates or updates a pull request with the cha - `pull-requests: write`: to create pull request - [Workflow triggers][workflow-triggers]: _any_ +> [!NOTE] +> In your repository settings, in `Actions > General`, also ensure the `Allow GitHub Actions to create and approve pull requests` option is enabled + ## Usage > [!TIP] From cb3f0110d7423cd340b1c5d63584c0ea6ee63959 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Mon, 3 Aug 2026 13:02:31 +0200 Subject: [PATCH 39/62] Use GitHub API for pushes by default and require explicit `github-token` when using custom tokens (#692) * Ensure `github-token` wins for `git-cli` pushes * more shenanigans * Default to GitHub API commit mode * e2e auth tests * push missing utils * rename input * refactor * refactor * refactor * refactor * refactor * refactor * reuse helpers * refactor * refactor * simplify * add tests * refactor * improve comments * shift helper * add comments * extract test helpers * update docs and changesets * update one thing --- .changeset/brave-pandas-commit.md | 9 + README.md | 34 ++-- action.yml | 15 +- pr-comment/README.md | 2 +- pr-comment/action.yml | 4 +- publish/README.md | 14 +- publish/action.yml | 4 +- src/github.test.ts | 227 +++++++++++++++++++++++ src/github.ts | 114 ++++++++++-- src/index.ts | 11 +- src/pr-status/worktree.test.ts | 49 ++--- src/pr-status/worktree.ts | 17 +- src/publish/index.ts | 4 +- src/run.test.ts | 2 +- src/test-utils.ts | 293 ++++++++++++++++++++++++++++++ src/utils.test.ts | 20 +- src/utils.ts | 33 ++++ src/version/index.ts | 10 +- version/README.md | 18 +- version/action.yml | 15 +- 20 files changed, 766 insertions(+), 129 deletions(-) create mode 100644 .changeset/brave-pandas-commit.md create mode 100644 src/github.test.ts create mode 100644 src/test-utils.ts diff --git a/.changeset/brave-pandas-commit.md b/.changeset/brave-pandas-commit.md new file mode 100644 index 00000000..08e7e36d --- /dev/null +++ b/.changeset/brave-pandas-commit.md @@ -0,0 +1,9 @@ +--- +"@changesets/action": major +--- + +Release commits and tags are now pushed using the GitHub API by default. + +Replace the `commit-mode` input with the boolean `push-with-git-cli` input. Set `push-with-git-cli: true` to continue using the Git CLI. + +Regardless of the push mode, custom GitHub tokens must be passed explicitly through the `github-token` input. The `GITHUB_TOKEN` environment variable and credentials configured by `actions/checkout` or embedded in remote URLs are not substitutes for this input. When the Git CLI is enabled, `github-token` takes precedence over those repository credentials. diff --git a/README.md b/README.md index febb4abb..4b724e7b 100644 --- a/README.md +++ b/README.md @@ -36,22 +36,32 @@ If using [trusted publishing](https://docs.npmjs.com/trusted-publishers), it's r > [!TIP] > Check out [the docs](https://changesets.dev/guide/automating#how-do-i-run-the-version-and-publish-commands) to learn how to set up the version and publish workflow. +> [!IMPORTANT] +> To use a custom GitHub token, pass it explicitly through the `github-token` input: +> +> ```yaml +> with: +> github-token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} +> ``` +> +> Setting the `GITHUB_TOKEN` environment variable does not configure the action. This applies whether release changes are pushed using the GitHub API or the Git CLI. + ### API -| Inputs | Description | -| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. | -| `publish-script` | The command to use to build and publish packages | -| `version-script` | The command to update version, edit CHANGELOG, read and delete changesets. Default to `changeset version` if not provided | -| `commit-message` | The commit message. Default to `Version Packages` | -| `pr-title` | The pull request title. Default to `Version Packages` | -| `pr-draft` | Controls draft PR behavior. Use 'create' to create new version PRs as draft, or 'always' to also convert existing version PRs back to draft when updating them. | -| `pr-base-branch` | Sets the base branch of the PR. Defaults to `github.ref_name`. | -| `create-github-releases` | Whether to create Github releases after publish | -| `push-git-tags` | Whether to create git tags after publish. If `create-github-releases` is set to `true`, this option will also always be `true`. | -| `commit-mode` | An enum to specify the commit mode. Use "git-cli" to push changes using the Git CLI, or "github-api" to push changes via the GitHub API. When using "github-api", all commits and tags are signed using GitHub's GPG key and attributed to the user or app who owns the GITHUB_TOKEN. | +| Inputs | Description | +| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. To use a custom token, pass it explicitly to this input. | +| `publish-script` | The command to use to build and publish packages | +| `version-script` | The command to update version, edit CHANGELOG, read and delete changesets. Default to `changeset version` if not provided | +| `commit-message` | The commit message. Default to `Version Packages` | +| `pr-title` | The pull request title. Default to `Version Packages` | +| `pr-draft` | Controls draft PR behavior. Use 'create' to create new version PRs as draft, or 'always' to also convert existing version PRs back to draft when updating them. | +| `pr-base-branch` | Sets the base branch of the PR. Defaults to `github.ref_name`. | +| `create-github-releases` | Whether to create Github releases after publish | +| `push-git-tags` | Whether to create git tags after publish. If `create-github-releases` is set to `true`, this option will also always be `true`. | +| `push-with-git-cli` | Whether to use the Git CLI instead of the GitHub API to push release commits and tags. Defaults to `false`. When using the GitHub API, commits and tags are signed using GitHub's GPG key and attributed to the user or app that owns the `github-token`. | | Outputs | Description | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | diff --git a/action.yml b/action.yml index 04fcf068..e19c373c 100644 --- a/action.yml +++ b/action.yml @@ -5,7 +5,9 @@ runs: main: "dist/index.js" inputs: github-token: - description: "The GitHub token to use for authentication. Defaults to the GitHub-provided token." + description: > + The GitHub token to use for authentication. Defaults to the GitHub-provided token. + To use a custom token, pass it explicitly to this input. required: false default: ${{ github.token }} publish-script: @@ -38,14 +40,13 @@ inputs: this option will also always be `true`. required: false default: true - commit-mode: + push-with-git-cli: description: > - An enum to specify the commit mode. Use "git-cli" to push changes using the Git CLI, - or "github-api" to push changes via the GitHub API. When using "github-api", - all commits and tags are signed using GitHub's GPG key and attributed to the user - or app who owns the GITHUB_TOKEN. + Whether to use the Git CLI instead of the GitHub API to push release commits and tags. + Defaults to `false`. When using the GitHub API, commits and tags are signed using + GitHub's GPG key and attributed to the user or app that owns the `github-token`. required: false - default: "git-cli" + default: false outputs: published: description: A "true" or "false" string value to indicate whether a publishing is happened or not diff --git a/pr-comment/README.md b/pr-comment/README.md index 8c5c3c15..50c76cea 100644 --- a/pr-comment/README.md +++ b/pr-comment/README.md @@ -73,7 +73,7 @@ jobs: | Inputs | Description | | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. | +| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. To use a custom token, pass it explicitly to this input. | | `body` | **Required.** The comment body to post on the PR. | | `update-id` | By default, the action will create and update a comment with this id. Pass a different id to create and update a new comment, or pass an empty string to disable updating comments. | diff --git a/pr-comment/action.yml b/pr-comment/action.yml index 9a6b364e..81dd2291 100644 --- a/pr-comment/action.yml +++ b/pr-comment/action.yml @@ -5,7 +5,9 @@ runs: main: ../dist/pr-comment.js inputs: github-token: - description: "The GitHub token to use for authentication. Defaults to the GitHub-provided token." + description: > + The GitHub token to use for authentication. Defaults to the GitHub-provided token. + To use a custom token, pass it explicitly to this input. required: false default: ${{ github.token }} body: diff --git a/publish/README.md b/publish/README.md index 44269cb8..a8148f2f 100644 --- a/publish/README.md +++ b/publish/README.md @@ -18,13 +18,13 @@ This action publishes packages to npm. -| Inputs | Description | -| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------- | -| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. | -| `script` | The command to use to publish packages | -| `pack-dir-artifact-id` | Artifact id for packed publish output generated by the pack subaction | -| `create-github-releases` | Whether to create Github releases after publish | -| `push-git-tags` | Whether to create git tags after publish. If `create-github-releases` is set to `true`, this option will also always be `true`. | +| Inputs | Description | +| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- | +| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. To use a custom token, pass it explicitly to this input. | +| `script` | The command to use to publish packages | +| `pack-dir-artifact-id` | Artifact id for packed publish output generated by the pack subaction | +| `create-github-releases` | Whether to create Github releases after publish | +| `push-git-tags` | Whether to create git tags after publish. If `create-github-releases` is set to `true`, this option will also always be `true`. | | Outputs | Description | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | diff --git a/publish/action.yml b/publish/action.yml index aba3946b..511fb7aa 100644 --- a/publish/action.yml +++ b/publish/action.yml @@ -5,7 +5,9 @@ runs: main: ../dist/publish.js inputs: github-token: - description: "The GitHub token to use for authentication. Defaults to the GitHub-provided token." + description: > + The GitHub token to use for authentication. Defaults to the GitHub-provided token. + To use a custom token, pass it explicitly to this input. required: false default: ${{ github.token }} script: diff --git a/src/github.test.ts b/src/github.test.ts new file mode 100644 index 00000000..69e9b822 --- /dev/null +++ b/src/github.test.ts @@ -0,0 +1,227 @@ +import { Buffer } from "node:buffer"; +import fs from "node:fs/promises"; +import path from "node:path"; +import { exec } from "tinyexec"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { GitHub } from "./github.ts"; +import { createGitHttpRemote, shallowClone, testdir } from "./test-utils.ts"; + +const githubContext = vi.hoisted(() => ({ + repo: { + owner: "changesets", + repo: "action", + }, + sha: "base-sha", +})); + +vi.mock("@actions/github", () => ({ + context: githubContext, + getOctokit: () => ({}), +})); + +async function git(cwd: string, args: string[]) { + const result = await exec("git", args, { + nodeOptions: { cwd }, + throwOnError: true, + }); + return result.stdout.trim(); +} + +function getAuthorization(token: string) { + return `basic ${Buffer.from(`x-access-token:${token}`).toString("base64")}`; +} + +function createRemote() { + return createGitHttpRemote({ "file.txt": "initial\n" }); +} + +async function isolateGitConfig() { + const fixture = await testdir({ "global.gitconfig": "" }); + vi.stubEnv("GIT_CONFIG_GLOBAL", path.join(fixture.path, "global.gitconfig")); + return fixture; +} + +type GitHttpRemote = Awaited>; + +async function pushChangedFile( + repository: string, + serverUrl: string, + token: string, +) { + await fs.writeFile(path.join(repository, "file.txt"), "changed\n"); + const github = new GitHub({ + cwd: repository, + githubToken: token, + pushWithGitCli: true, + serverUrl, + }); + await github.pushChanges({ + branch: "changeset-release/main", + message: "Version Packages", + }); + return github; +} + +async function expectReleaseBranch(remote: GitHttpRemote, repository: string) { + expect( + await git(remote.path, ["rev-parse", "refs/heads/changeset-release/main"]), + ).toBe(await git(repository, ["rev-parse", "HEAD"])); +} + +function expectRequestsToUseToken(remote: GitHttpRemote, token: string) { + expect(remote.requests.length).toBeGreaterThan(0); + for (const request of remote.requests) { + expect(request.headers.authorization).toEqual([getAuthorization(token)]); + } +} + +beforeEach(() => { + vi.stubEnv("GIT_AUTHOR_DATE", "2000-01-01T00:00:00Z"); + vi.stubEnv("GIT_COMMITTER_DATE", "2000-01-01T00:00:00Z"); + vi.stubEnv("GIT_CONFIG_COUNT", "0"); + vi.stubEnv("GIT_CONFIG_NOSYSTEM", "1"); + vi.stubEnv("GIT_TERMINAL_PROMPT", "0"); +}); + +afterEach(() => { + vi.unstubAllEnvs(); +}); + +describe("GitHub", () => { + it("defaults to GitHub API mode", () => { + const github = new GitHub({ + cwd: "/repo", + githubToken: "token", + }); + + expect(github.pushWithGitCli).toBe(false); + }); + + it("uses github-token instead of checkout's persisted header for branch and tag pushes", async () => { + await using _gitConfig = await isolateGitConfig(); + const actionToken = "action-token"; + const checkoutToken = "checkout-token"; + await using remote = await createRemote(); + await using repositoryFixture = await shallowClone(remote.path); + const repository = repositoryFixture.path; + const serverUrl = new URL(remote.url).origin; + + await git(repository, ["remote", "set-url", "origin", remote.url]); + await git(repository, [ + "config", + `http.${serverUrl}/.extraheader`, + `AUTHORIZATION: ${getAuthorization(checkoutToken)}`, + ]); + + const github = await pushChangedFile(repository, serverUrl, actionToken); + await git(repository, ["tag", "v1.0.0"]); + await github.pushTag("v1.0.0"); + + await expectReleaseBranch(remote, repository); + expect(await git(remote.path, ["rev-parse", "refs/tags/v1.0.0"])).toBe( + await git(repository, ["rev-parse", "v1.0.0"]), + ); + expectRequestsToUseToken(remote, actionToken); + }, 15_000); + + it("uses github-token instead of credentials embedded in the push URL", async () => { + await using _gitConfig = await isolateGitConfig(); + const actionToken = "action-token"; + await using remote = await createRemote(); + await using repositoryFixture = await shallowClone(remote.path); + const repository = repositoryFixture.path; + + const remoteUrl = new URL(remote.url); + remoteUrl.username = "x-access-token"; + remoteUrl.password = "checkout-token"; + await git(repository, ["remote", "set-url", "origin", remoteUrl.href]); + + const persistedCredentialUrl = new URL(remoteUrl); + persistedCredentialUrl.password = ""; + await git(repository, [ + "config", + `http.${persistedCredentialUrl.href}.extraheader`, + `AUTHORIZATION: ${getAuthorization("checkout-token")}`, + ]); + + await pushChangedFile(repository, remoteUrl.origin, actionToken); + + await expectReleaseBranch(remote, repository); + expectRequestsToUseToken(remote, actionToken); + }, 15_000); + + it("uses the push URL when it differs from the fetch URL", async () => { + await using _gitConfig = await isolateGitConfig(); + const actionToken = "action-token"; + await using fetchRemote = await createRemote(); + await using pushRemote = await createRemote(); + await using repositoryFixture = await shallowClone(fetchRemote.path); + const repository = repositoryFixture.path; + + await git(repository, ["remote", "set-url", "origin", fetchRemote.url]); + await git(repository, ["config", "remote.origin.pushurl", pushRemote.url]); + + await pushChangedFile( + repository, + new URL(fetchRemote.url).origin, + actionToken, + ); + + expect(fetchRemote.requests).toEqual([]); + await expectReleaseBranch(pushRemote, repository); + expectRequestsToUseToken(pushRemote, actionToken); + }, 15_000); + + it("uses github-token for every push URL", async () => { + await using _gitConfig = await isolateGitConfig(); + const actionToken = "action-token"; + await using firstRemote = await createRemote(); + await using secondRemote = await createRemote(); + await using repositoryFixture = await shallowClone(firstRemote.path); + const repository = repositoryFixture.path; + + for (const remote of [firstRemote, secondRemote]) { + await git(repository, [ + "config", + "--add", + "remote.origin.pushurl", + remote.url, + ]); + } + + await pushChangedFile( + repository, + new URL(firstRemote.url).origin, + actionToken, + ); + + for (const remote of [firstRemote, secondRemote]) { + await expectReleaseBranch(remote, repository); + expectRequestsToUseToken(remote, actionToken); + } + }, 15_000); + + it("preserves existing command-scoped Git config entries", async () => { + await using _gitConfig = await isolateGitConfig(); + const actionToken = "action-token"; + await using fetchRemote = await createRemote(); + await using pushRemote = await createRemote(); + await using repositoryFixture = await shallowClone(fetchRemote.path); + const repository = repositoryFixture.path; + + await git(repository, ["remote", "set-url", "origin", fetchRemote.url]); + vi.stubEnv("GIT_CONFIG_COUNT", "1"); + vi.stubEnv("GIT_CONFIG_KEY_0", "remote.origin.pushurl"); + vi.stubEnv("GIT_CONFIG_VALUE_0", pushRemote.url); + + await pushChangedFile( + repository, + new URL(fetchRemote.url).origin, + actionToken, + ); + + expect(fetchRemote.requests).toEqual([]); + await expectReleaseBranch(pushRemote, repository); + expectRequestsToUseToken(pushRemote, actionToken); + }, 15_000); +}); diff --git a/src/github.ts b/src/github.ts index e6cd51e6..802d3818 100644 --- a/src/github.ts +++ b/src/github.ts @@ -5,8 +5,6 @@ import { context } from "@actions/github"; import { commitChangesSinceBase } from "@changesets/ghcommit"; import { setupOctokit, type Octokit } from "./octokit.ts"; -export type CommitMode = "git-cli" | "github-api"; - type GitOptions = { cwd: string; env?: Record; @@ -50,20 +48,47 @@ const checkIfClean = async (options: GitOptions): Promise => { return !stdout.length; }; +function getHttpUrl(remoteUrl: string): string | undefined { + try { + const url = new URL(remoteUrl); + if (url.protocol !== "http:" && url.protocol !== "https:") { + return; + } + + // Git includes the username when deciding which URL-specific config is + // most specific, so retain it. Password, query, and fragment do not + // participate in matching; strip them before copying the URL into the env. + url.password = ""; + url.search = ""; + url.hash = ""; + return url.href; + } catch { + return; + } +} + export class GitHub { readonly #githubToken: string; readonly octokit: Octokit; readonly cwd: string; - readonly commitMode: CommitMode; + readonly pushWithGitCli: boolean; + readonly serverUrl: string; constructor(options: { githubToken: string; cwd: string; - commitMode?: CommitMode; + pushWithGitCli?: boolean; + serverUrl?: string; }) { this.#githubToken = options.githubToken; this.cwd = options.cwd; - this.commitMode = options.commitMode ?? "git-cli"; + this.pushWithGitCli = options.pushWithGitCli ?? false; + this.serverUrl = ( + options.serverUrl ?? + context.serverUrl ?? + process.env.GITHUB_SERVER_URL ?? + "https://github.com" + ).replace(/\/+$/, ""); this.octokit = setupOctokit(options.githubToken); } @@ -71,26 +96,75 @@ export class GitHub { return this.#githubToken; } - #getCliAuthEnv(): Record { + async #getCliAuthEnv(): Promise> { + // Make `github-token` authoritative for CLI pushes without changing the + // repository config. Git may otherwise use checkout's persisted header or + // credentials embedded in a remote URL, so we need to install command-scoped + // `http.extraHeader` overrides for every push destination. + // + // Historical context: v1 put `github-token` in ~/.netrc, where checkout's + // extraheader took precedence. This setup with reset + authHeader + // deliberately makes `github-token` win for pushes. const basic = Buffer.from(`x-access-token:${this.#githubToken}`).toString( "base64", ); - const serverUrl = ( - context.serverUrl ?? - process.env.GITHUB_SERVER_URL ?? - "https://github.com" - ).replace(/\/+$/, ""); + + // The environment may already contain command-scoped Git config. Append + // our KEY_n/VALUE_n entries so those existing settings stay active. const gitConfigCount = Number(process.env.GIT_CONFIG_COUNT ?? 0); if (!Number.isInteger(gitConfigCount) || gitConfigCount < 0) { throw new Error( `Invalid GIT_CONFIG_COUNT value: ${process.env.GIT_CONFIG_COUNT}`, ); } - return { - GIT_CONFIG_COUNT: String(gitConfigCount + 1), - [`GIT_CONFIG_KEY_${gitConfigCount}`]: `http.${serverUrl}/.extraheader`, - [`GIT_CONFIG_VALUE_${gitConfigCount}`]: `AUTHORIZATION: basic ${basic}`, + + // `git push origin` prefers remote.origin.pushurl over the fetch URL and + // supports more than one push URL, so inspect every effective destination. + const { stdout } = await getExecOutput( + "git", + ["remote", "get-url", "--push", "--all", "origin"], + { + cwd: this.cwd, + ignoreReturnCode: true, + // A user-configured remote can contain credentials. + silent: true, + }, + ); + + // Git reads `http.extraHeader` from the most specific matching URL section. + // The host key replaces checkout's usual persisted header; an exact key for + // each destination outranks path- or username-specific inherited config. + // Git selects only one URL section, so these keys do not duplicate headers. + const extraHeaderKeys = new Set([`http.${this.serverUrl}/.extraheader`]); + for (const remoteUrl of stdout.split(/\r?\n/)) { + const httpUrl = getHttpUrl(remoteUrl); + if (httpUrl !== undefined) { + extraHeaderKeys.add(`http.${httpUrl}.extraheader`); + } + } + const authHeader = `AUTHORIZATION: basic ${basic}`; + + // Each URL key needs two new command-scoped config entries: one to reset + // the inherited header list and one to install our Authorization header. + const env: Record = { + GIT_CONFIG_COUNT: String(gitConfigCount + extraHeaderKeys.size * 2), }; + + // `http.extraHeader` is multi-valued, so merely appending our header could + // make Git send both tokens. An empty value resets inherited values; the + // following value adds only ours. + let index = 0; + for (const extraHeaderKey of extraHeaderKeys) { + const resetIndex = gitConfigCount + index * 2; + const authIndex = resetIndex + 1; + env[`GIT_CONFIG_KEY_${resetIndex}`] = extraHeaderKey; + env[`GIT_CONFIG_VALUE_${resetIndex}`] = ""; + env[`GIT_CONFIG_KEY_${authIndex}`] = extraHeaderKey; + env[`GIT_CONFIG_VALUE_${authIndex}`] = authHeader; + index++; + } + + return env; } async ensureGitUser() { @@ -139,7 +213,7 @@ export class GitHub { } async pushTag(tag: string) { - if (this.commitMode === "github-api") { + if (!this.pushWithGitCli) { return this.octokit.rest.git .createRef({ ...context.repo, @@ -155,13 +229,13 @@ export class GitHub { cwd: this.cwd, env: { ...process.env, - ...this.#getCliAuthEnv(), + ...(await this.#getCliAuthEnv()), } as Record, }); } async prepareBranch(branch: string) { - if (this.commitMode === "github-api") { + if (!this.pushWithGitCli) { // Preparing a new local branch is not necessary when using the API return; } @@ -170,7 +244,7 @@ export class GitHub { } async pushChanges({ branch, message }: { branch: string; message: string }) { - if (this.commitMode === "github-api") { + if (!this.pushWithGitCli) { await commitChangesSinceBase({ octokit: this.octokit, ...context.repo, @@ -191,7 +265,7 @@ export class GitHub { cwd: this.cwd, env: { ...process.env, - ...this.#getCliAuthEnv(), + ...(await this.#getCliAuthEnv()), } as Record, }); } diff --git a/src/index.ts b/src/index.ts index d36485d7..14420bf9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,6 +5,7 @@ import { runPublish, runVersion } from "./run.ts"; import { getOptionalInput, getRequiredInput, + throwOnRemovedCommitModeInput, throwOnRenamedInputs, validateChangesetsCliVersion, } from "./utils.ts"; @@ -22,8 +23,8 @@ import { branch: "pr-base-branch", prDraft: "pr-draft", createGithubReleases: "create-github-releases", - commitMode: "commit-mode", }); + throwOnRemovedCommitModeInput(); const githubToken = getRequiredInput("github-token"); if (process.env.GITHUB_TOKEN && process.env.GITHUB_TOKEN !== githubToken) { @@ -34,12 +35,8 @@ import { ); } - const commitMode = getOptionalInput("commit-mode") ?? "git-cli"; + const pushWithGitCli = core.getBooleanInput("push-with-git-cli"); const prDraft = getOptionalInput("pr-draft"); - if (commitMode !== "git-cli" && commitMode !== "github-api") { - core.setFailed(`Invalid commit mode: ${commitMode}`); - return; - } if (prDraft !== undefined && prDraft !== "always" && prDraft !== "create") { core.setFailed(`Invalid pr-draft: ${prDraft}`); return; @@ -47,7 +44,7 @@ import { const github = new GitHub({ cwd, githubToken, - commitMode, + pushWithGitCli, }); let { changesets } = await readChangesetState(cwd); diff --git a/src/pr-status/worktree.test.ts b/src/pr-status/worktree.test.ts index 1c3e1505..0ca13c70 100644 --- a/src/pr-status/worktree.test.ts +++ b/src/pr-status/worktree.test.ts @@ -1,9 +1,9 @@ import { pathToFileURL } from "node:url"; import type * as github from "@actions/github"; import { getReleasePlan } from "@changesets/get-release-plan"; -import { createFixture } from "fs-fixture"; import { exec } from "tinyexec"; import { describe, expect, it } from "vitest"; +import { gitdir, shallowClone, testdir } from "../test-utils.ts"; import { getPullRequestWorktree } from "./worktree.ts"; type PullRequestContext = NonNullable< @@ -21,7 +21,7 @@ async function git(cwd: string, args: string[]) { describe("getPullRequestWorktree", () => { it("fetches a PR branch into a detached worktree and keeps the main checkout untouched", async () => { // Local source repo - await using sourceRepoFixture = await createFixture({ + await using sourceRepoFixture = await gitdir({ ".changeset/config.json": JSON.stringify({}), "package.json": JSON.stringify({ name: "repo", @@ -35,46 +35,33 @@ describe("getPullRequestWorktree", () => { }), }); const sourceRepo = sourceRepoFixture.path; - await git(sourceRepo, ["init", "-b", "main"]); - await git(sourceRepo, ["config", "user.name", "Test User"]); - await git(sourceRepo, ["config", "user.email", "test@example.com"]); - await git(sourceRepo, ["add", "."]); - await git(sourceRepo, ["commit", "-m", "base"]); // Simulate remote bare git server - await using originBareFixture = await createFixture(); + await using originBareFixture = await testdir(); const originBare = originBareFixture.path; - await git(originBare, ["clone", "--bare", sourceRepo, originBare]); + await git(originBare, [ + "clone", + "--bare", + pathToFileURL(sourceRepo).toString(), + ".", + ]); // Simulate checkout PR in github action - await using checkoutRepoFixture = await createFixture(); + await using checkoutRepoFixture = await shallowClone(originBare); const checkoutRepo = checkoutRepoFixture.path; - await git(checkoutRepo, [ - "clone", - "--depth", - "1", - "--branch", - "main", - pathToFileURL(originBare).toString(), - checkoutRepo, - ]); // Simulate remote fork bare git server - await using forkBareFixture = await createFixture(); + await using forkBareFixture = await testdir(); const forkBare = forkBareFixture.path; - await git(forkBare, ["clone", "--bare", originBare, forkBare]); - - await using forkRepoFixture = await createFixture(); - const forkRepo = forkRepoFixture.path; - await git(forkRepo, [ + await git(forkBare, [ "clone", - "--depth", - "1", - "--branch", - "main", - pathToFileURL(forkBare).toString(), - forkRepo, + "--bare", + pathToFileURL(originBare).toString(), + ".", ]); + + await using forkRepoFixture = await shallowClone(forkBare); + const forkRepo = forkRepoFixture.path; await git(forkRepo, ["config", "user.name", "Test User"]); await git(forkRepo, ["config", "user.email", "test@example.com"]); await git(forkRepo, ["checkout", "-b", "feature"]); diff --git a/src/pr-status/worktree.ts b/src/pr-status/worktree.ts index 08aeae02..a3a777de 100644 --- a/src/pr-status/worktree.ts +++ b/src/pr-status/worktree.ts @@ -5,6 +5,7 @@ import path from "node:path"; import type * as github from "@actions/github"; import { isRepoShallow } from "@changesets/git"; import { exec } from "tinyexec"; +import { moveDisposable, type WithAsyncDispose } from "../utils.ts"; type PullRequestContext = NonNullable< typeof github.context.payload.pull_request @@ -122,22 +123,6 @@ async function tempWorktree(cwd: string, dir: string, ref: Ref) { }; } -type WithAsyncDispose = T & { - [Symbol.asyncDispose](): Promise; -}; - -function moveDisposable( - stack: AsyncDisposableStack, - value: T, -): WithAsyncDispose { - const moved = stack.move(); - return Object.assign(value, { - async [Symbol.asyncDispose]() { - await moved.disposeAsync(); - }, - }); -} - export async function getPullRequestWorktree( context: PullRequestContext, cwd: string = process.cwd(), diff --git a/src/publish/index.ts b/src/publish/index.ts index 925489a2..308c93c8 100644 --- a/src/publish/index.ts +++ b/src/publish/index.ts @@ -35,8 +35,8 @@ async function main() { ); } - // NOTE: Always use API mode here as publish does not need a commit-mode. - const github = new GitHub({ cwd, githubToken, commitMode: "github-api" }); + // The publish sub-action always uses the GitHub API for tag pushes. + const github = new GitHub({ cwd, githubToken }); const fromPackDir = packDirArtifactId ? await downloadArtifact( diff --git a/src/run.test.ts b/src/run.test.ts index d6e8cbd4..8f3f4eb0 100644 --- a/src/run.test.ts +++ b/src/run.test.ts @@ -99,7 +99,7 @@ const createGithub = (cwd: string) => new GitHub({ cwd, githubToken: "@@GITHUB_TOKEN", - commitMode: "github-api", + pushWithGitCli: false, }); async function initializeGitRepository(cwd: string) { diff --git a/src/test-utils.ts b/src/test-utils.ts new file mode 100644 index 00000000..dfb834dd --- /dev/null +++ b/src/test-utils.ts @@ -0,0 +1,293 @@ +import assert from "node:assert/strict"; +import { spawn } from "node:child_process"; +import fsp from "node:fs/promises"; +import http, { type IncomingMessage, type ServerResponse } from "node:http"; +import path from "node:path"; +import { pathToFileURL } from "node:url"; +import { createFixture, type FileTree } from "fs-fixture"; +import { exec } from "tinyexec"; +import { moveDisposable } from "./utils.ts"; + +export type Fixture = FileTree; + +export async function testdir(dir?: Fixture) { + return createFixture(dir, { + fs: { + ...fsp, + rm: (filePath, options) => + fsp.rm(filePath, { + maxRetries: 3, + retryDelay: 100, + ...options, + }), + }, + }); +} + +// Git maintenance can race with fixture cleanup by touching pack files. +export async function disableGitBackgroundMaintenance(cwd: string) { + await exec("git", ["config", "gc.auto", "0"], { + nodeOptions: { cwd }, + throwOnError: true, + }); + await exec("git", ["config", "maintenance.auto", "false"], { + nodeOptions: { cwd }, + throwOnError: true, + }); +} + +export async function gitdir(dir: Fixture) { + await using stack = new AsyncDisposableStack(); + const fixture = stack.use( + await testdir({ + ".gitattributes": "* text=auto eol=lf\n", + ...dir, + }), + ); + const cwd = fixture.path; + + await exec("git", ["init"], { + nodeOptions: { cwd }, + throwOnError: true, + }); + await disableGitBackgroundMaintenance(cwd); + + const { stdout } = await exec("git", ["rev-parse", "--abbrev-ref", "HEAD"], { + nodeOptions: { cwd }, + }); + if (stdout.trim() !== "main") { + await exec("git", ["checkout", "-b", "main"], { + nodeOptions: { cwd }, + throwOnError: true, + }); + } + + const gitConfig = ` +[user] + email = x@y.z + name = xyz +[commit] + gpgSign = false +[tag] + gpgSign = false + forceSignAnnotated = false + `.trim(); + await fsp.appendFile(path.join(cwd, ".git/config"), gitConfig, "utf8"); + + await exec("git", ["add", "."], { + nodeOptions: { cwd }, + throwOnError: true, + }); + await exec("git", ["commit", "-m", "initial commit", "--allow-empty"], { + nodeOptions: { cwd }, + throwOnError: true, + }); + + return moveDisposable(stack, fixture); +} + +export async function shallowClone(cwd: string, depth = 1) { + await using stack = new AsyncDisposableStack(); + const fixture = stack.use(await testdir()); + await exec( + "git", + ["clone", "--depth", depth.toString(), pathToFileURL(cwd).toString(), "."], + { + nodeOptions: { cwd: fixture.path }, + throwOnError: true, + }, + ); + await disableGitBackgroundMaintenance(fixture.path); + return moveDisposable(stack, fixture); +} + +async function runGitHttpBackend( + cwd: string, + request: IncomingMessage, + response: ServerResponse, +) { + // `git http-backend` speaks CGI: request metadata goes through environment + // variables, the request body through stdin, and the response through stdout. + const requestUrl = new URL( + request.url ?? "/", + `http://${request.headers.host ?? "localhost"}`, + ); + const env: NodeJS.ProcessEnv = { + ...process.env, + CONTENT_LENGTH: request.headers["content-length"] ?? "0", + GATEWAY_INTERFACE: "CGI/1.1", + GIT_HTTP_EXPORT_ALL: "1", + GIT_PROJECT_ROOT: cwd, + PATH_INFO: decodeURIComponent(requestUrl.pathname), + QUERY_STRING: requestUrl.search.slice(1), + REMOTE_ADDR: request.socket.remoteAddress ?? "", + REQUEST_METHOD: request.method ?? "GET", + SERVER_PROTOCOL: `HTTP/${request.httpVersion}`, + }; + if (request.headers["content-type"] !== undefined) { + env.CONTENT_TYPE = request.headers["content-type"]; + } + + const backend = spawn("git", ["http-backend"], { + env, + stdio: ["pipe", "pipe", "pipe"], + }); + request.pipe(backend.stdin); + + // Buffer stdout so the CGI headers can be separated from the response body. + // Keep stderr only to explain a backend failure. + const stdout: Buffer[] = []; + const stderr: Buffer[] = []; + backend.stdout.on("data", (chunk: Buffer) => stdout.push(chunk)); + backend.stderr.on("data", (chunk: Buffer) => stderr.push(chunk)); + + const exitCode = await new Promise((resolve, reject) => { + backend.on("error", reject); + backend.on("close", resolve); + }); + if (exitCode !== 0) { + throw new Error( + `git http-backend exited with ${exitCode}: ${Buffer.concat(stderr).toString("utf8")}`, + ); + } + + const output = Buffer.concat(stdout); + // CGI ends its response headers with a blank line; accept CRLF and LF output. + let separator = Buffer.from("\r\n\r\n"); + let headerEnd = output.indexOf(separator); + if (headerEnd === -1) { + separator = Buffer.from("\n\n"); + headerEnd = output.indexOf(separator); + } + if (headerEnd === -1) { + throw new Error("git http-backend returned an invalid CGI response"); + } + + // Translate CGI status and headers, then forward the remaining bytes as body. + let status = 200; + const headers = output.subarray(0, headerEnd).toString("utf8").split(/\r?\n/); + for (const header of headers) { + const separatorIndex = header.indexOf(":"); + if (separatorIndex === -1) continue; + + const name = header.slice(0, separatorIndex); + const value = header.slice(separatorIndex + 1).trim(); + if (name.toLowerCase() === "status") { + status = Number.parseInt(value, 10); + } else { + response.setHeader(name, value); + } + } + + response.writeHead(status); + response.end(output.subarray(headerEnd + separator.length)); +} + +async function listen(server: http.Server) { + const waiter = Promise.withResolvers(); + + server.on("listening", waiter.resolve); + server.on("error", waiter.reject); + + server.listen(0); + + try { + await waiter.promise; + return server; + } finally { + server.off("listening", waiter.resolve); + server.off("error", waiter.reject); + } +} + +type RecordedRequest = { + method: string; + url: string; + headers: NodeJS.Dict; +}; + +function recordRequest(request: IncomingMessage): RecordedRequest { + return { + method: request.method ?? "GET", + url: request.url ?? "/", + headers: request.headersDistinct, + }; +} + +async function createGitHttpServer(cwd: string) { + const requests: RecordedRequest[] = []; + const server = http.createServer((request, response) => { + const recordedRequest = recordRequest(request); + requests.push(recordedRequest); + + void runGitHttpBackend(cwd, request, response).catch((error: unknown) => { + response.destroy( + Error.isError(error) + ? error + : new Error("Server error", { cause: error }), + ); + }); + }); + + await listen(server); + const address = server.address(); + assert( + !!address && typeof address !== "string", + "Failed to get server address", + ); + + return { + origin: `http://127.0.0.1:${address.port}`, + requests, + async [Symbol.asyncDispose]() { + await new Promise((resolve, reject) => { + server.close((error) => { + if (error) { + reject(error); + return; + } + resolve(); + }); + }); + }, + }; +} + +async function createLocalRemote(dir: Fixture) { + await using stack = new AsyncDisposableStack(); + const fixture = stack.use(await testdir()); + const remote = fixture.path; + { + // Use a working repository to create the bare remote's initial history. + // Once cloned, the remote owns that history and the source can be disposed. + await using sourceFixture = await gitdir(dir); + await exec( + "git", + ["clone", "--bare", pathToFileURL(sourceFixture.path).toString(), "."], + { + nodeOptions: { cwd: remote }, + throwOnError: true, + }, + ); + } + await disableGitBackgroundMaintenance(remote); + await exec("git", ["config", "http.receivepack", "true"], { + nodeOptions: { cwd: remote }, + throwOnError: true, + }); + return moveDisposable(stack, fixture); +} + +export async function createGitHttpRemote(files: Fixture) { + await using stack = new AsyncDisposableStack(); + const fixture = stack.use(await createLocalRemote(files)); + const server = stack.use( + await createGitHttpServer(path.dirname(fixture.path)), + ); + + return moveDisposable(stack, { + path: fixture.path, + url: `${server.origin}/${path.basename(fixture.path)}`, + requests: server.requests, + }); +} diff --git a/src/utils.test.ts b/src/utils.test.ts index a2326f31..fe212526 100644 --- a/src/utils.test.ts +++ b/src/utils.test.ts @@ -1,9 +1,10 @@ import { createFixture } from "fs-fixture"; -import { expect, test } from "vitest"; +import { afterEach, expect, test, vi } from "vitest"; import { BumpLevels, getChangelogEntry, sortTheThings, + throwOnRemovedCommitModeInput, validateChangesetsCliVersion, } from "./utils.ts"; @@ -74,6 +75,10 @@ let changelog = `# @keystone-alpha/email - Update mjml-dependency `; +afterEach(() => { + vi.unstubAllEnvs(); +}); + test("it works", () => { let entry = getChangelogEntry(changelog, "3.0.0"); expect(entry.content).toMatchSnapshot(); @@ -107,6 +112,19 @@ test("it sorts the things right", () => { expect(things.sort(sortTheThings)).toMatchSnapshot(); }); +test.each([ + ["commit-mode", "git-cli", "push-with-git-cli: true"], + ["commit-mode", "github-api", "push-with-git-cli: false"], + ["commitMode", "git-cli", "push-with-git-cli: true"], + ["commitMode", "github-api", "push-with-git-cli: false"], +])( + "explains how to migrate the removed %s input from %s", + (inputName, value, replacement) => { + vi.stubEnv(`INPUT_${inputName.toUpperCase()}`, value); + expect(() => throwOnRemovedCommitModeInput()).toThrow(replacement); + }, +); + test("throws when the project declares Changesets CLI v2", async () => { await using fixture = await createFixture({ "package.json": JSON.stringify({ diff --git a/src/utils.ts b/src/utils.ts index dfcda7d3..3ea38143 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -119,6 +119,22 @@ export function isErrorWithCode(err: unknown, code: string) { ); } +export type WithAsyncDispose = T & { + [Symbol.asyncDispose](): Promise; +}; + +export function moveDisposable( + stack: AsyncDisposableStack, + value: T, +): WithAsyncDispose { + const moved = stack.move(); + return Object.assign(value, { + async [Symbol.asyncDispose]() { + await moved.disposeAsync(); + }, + }); +} + export function getOptionalInput(name: string) { // normalize empty string default return value of `core.getInput` to undefined return core.getInput(name) || undefined; @@ -130,6 +146,23 @@ export function getRequiredInput(name: string) { return core.getInput(name, { required: true }); } +export function throwOnRemovedCommitModeInput() { + for (const inputName of ["commit-mode", "commitMode"]) { + const value = getOptionalInput(inputName); + if (value === undefined) continue; + + const migration = + value === "git-cli" + ? 'Replace it with "push-with-git-cli: true".' + : value === "github-api" + ? 'Remove it or replace it with "push-with-git-cli: false"; GitHub API pushes are now the default.' + : 'Set "push-with-git-cli" to true for Git CLI pushes or false for GitHub API pushes.'; + throw new Error( + `The "${inputName}" input has been replaced by the boolean "push-with-git-cli" input. ${migration}`, + ); + } +} + export function throwOnRenamedInputs(renames: Record) { const references: Record = {}; diff --git a/src/version/index.ts b/src/version/index.ts index edf82980..bf7d3b7a 100644 --- a/src/version/index.ts +++ b/src/version/index.ts @@ -4,6 +4,7 @@ import { runVersion } from "../run.ts"; import { getOptionalInput, getRequiredInput, + throwOnRemovedCommitModeInput, validateChangesetsCliVersion, } from "../utils.ts"; @@ -17,6 +18,7 @@ async function main() { // If the user needs to change the cwd, set `working-directory` in the step instead const cwd = process.cwd(); await validateChangesetsCliVersion(cwd); + throwOnRemovedCommitModeInput(); const githubToken = getRequiredInput("github-token"); const script = getOptionalInput("script"); @@ -24,20 +26,16 @@ async function main() { const prTitle = getRequiredInput("pr-title"); const prDraft = getOptionalInput("pr-draft"); const prBaseBranch = getOptionalInput("pr-base-branch"); - const commitMode = getOptionalInput("commit-mode") ?? "git-cli"; + const pushWithGitCli = core.getBooleanInput("push-with-git-cli"); // Validations if (prDraft !== undefined && prDraft !== "always" && prDraft !== "create") { throw new Error(`Invalid pr-draft input: ${prDraft}`); } - if (commitMode !== "git-cli" && commitMode !== "github-api") { - throw new Error(`Invalid commit-mode input: ${commitMode}`); - } - const github = new GitHub({ cwd, githubToken, - commitMode, + pushWithGitCli, }); const { pullRequestNumber } = await runVersion({ diff --git a/version/README.md b/version/README.md index 4c1ff0a1..16ea99e4 100644 --- a/version/README.md +++ b/version/README.md @@ -22,15 +22,15 @@ This action versions packages and creates or updates a pull request with the cha -| Inputs | Description | -| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. | -| `script` | The command to use to version packages | -| `commit-message` | The commit message. Default to `Version Packages` | -| `pr-title` | The pull request title. Default to `Version Packages` | -| `pr-draft` | Controls draft PR behavior. Use 'create' to create new version PRs as draft, or 'always' to also convert existing version PRs back to draft when updating them. | -| `pr-base-branch` | Sets the base branch of the PR. Defaults to `github.ref_name`. | -| `commit-mode` | An enum to specify the commit mode. Use "git-cli" to push changes using the Git CLI, or "github-api" to push changes via the GitHub API. When using "github-api", all commits and tags are signed using GitHub's GPG key and attributed to the user or app who owns the GITHUB_TOKEN. | +| Inputs | Description | +| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `github-token` | The GitHub token to use for authentication. Defaults to the GitHub-provided token. To use a custom token, pass it explicitly to this input. | +| `script` | The command to use to version packages | +| `commit-message` | The commit message. Default to `Version Packages` | +| `pr-title` | The pull request title. Default to `Version Packages` | +| `pr-draft` | Controls draft PR behavior. Use 'create' to create new version PRs as draft, or 'always' to also convert existing version PRs back to draft when updating them. | +| `pr-base-branch` | Sets the base branch of the PR. Defaults to `github.ref_name`. | +| `push-with-git-cli` | Whether to use the Git CLI instead of the GitHub API to push release commits. Defaults to `false`. When using the GitHub API, commits are signed using GitHub's GPG key and attributed to the user or app that owns the `github-token`. | | Outputs | Description | | ----------- | --------------------------------------------------- | diff --git a/version/action.yml b/version/action.yml index 9ba675e1..e3dda8af 100644 --- a/version/action.yml +++ b/version/action.yml @@ -5,7 +5,9 @@ runs: main: ../dist/version.js inputs: github-token: - description: "The GitHub token to use for authentication. Defaults to the GitHub-provided token." + description: > + The GitHub token to use for authentication. Defaults to the GitHub-provided token. + To use a custom token, pass it explicitly to this input. required: false default: ${{ github.token }} script: @@ -25,14 +27,13 @@ inputs: pr-base-branch: description: "Sets the base branch of the PR. Defaults to `github.ref_name`." required: false - commit-mode: + push-with-git-cli: description: > - An enum to specify the commit mode. Use "git-cli" to push changes using the Git CLI, - or "github-api" to push changes via the GitHub API. When using "github-api", - all commits and tags are signed using GitHub's GPG key and attributed to the user - or app who owns the GITHUB_TOKEN. + Whether to use the Git CLI instead of the GitHub API to push release commits. + Defaults to `false`. When using the GitHub API, commits are signed using GitHub's + GPG key and attributed to the user or app that owns the `github-token`. required: false - default: "git-cli" + default: false outputs: pr-number: description: The pull request number that was created or updated From 77be81bcb9d2d1007c53c4f98bffe51da428d6a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Mon, 3 Aug 2026 14:03:51 +0200 Subject: [PATCH 40/62] Fixed a regression making it impossible to sync new versions of versioning pull requests with base branch updates (#705) * Fixed a regression making it impossible to sync new versions of versioning pull requests with base branch updates when using GitHub API pushes * update ghcommit --- .changeset/green-birds-push.md | 5 +++++ package.json | 2 +- pnpm-lock.yaml | 10 +++++----- pnpm-workspace.yaml | 1 - src/github.ts | 1 + 5 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 .changeset/green-birds-push.md diff --git a/.changeset/green-birds-push.md b/.changeset/green-birds-push.md new file mode 100644 index 00000000..518bf2d0 --- /dev/null +++ b/.changeset/green-birds-push.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Fixed a regression making it impossible to sync new versions of versioning pull requests with base branch updates when using GitHub API pushes. diff --git a/package.json b/package.json index 861f1104..1c8dbb5d 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@actions/exec": "^3.0.0", "@actions/github": "^9.1.1", "@changesets/get-release-plan": "^5.0.0-next.7", - "@changesets/ghcommit": "^3.0.0-next.1", + "@changesets/ghcommit": "^3.0.0", "@changesets/git": "^4.0.0-next.6", "@changesets/pre": "^3.0.0-next.6", "@changesets/read": "^1.0.0-next.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44dc466a..dfcc4414 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,8 +29,8 @@ importers: specifier: ^5.0.0-next.7 version: 5.0.0-next.7 '@changesets/ghcommit': - specifier: ^3.0.0-next.1 - version: 3.0.0-next.1 + specifier: ^3.0.0 + version: 3.0.0 '@changesets/git': specifier: ^4.0.0-next.6 version: 4.0.0-next.6 @@ -231,8 +231,8 @@ packages: resolution: {integrity: sha512-ek+tXy+SHshWQD5V4uL6pciazjhm/Yt+KxIQEW0W6vIyyjWvFBY6t0xfsv/hCc/+u11riHcoWGwHkGYqC869EQ==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/ghcommit@3.0.0-next.1': - resolution: {integrity: sha512-wWhc316LkE64P0fbNoKxEyUk5vpkQEF52m1XUBF2xJrE++cGq0PZSu9ZeXLKExOdXKVkAOGokmnXlfnYzCt1NQ==} + '@changesets/ghcommit@3.0.0': + resolution: {integrity: sha512-od3Y0BhzH+zg8ysSiXFiwj1g85g98mt/WDoGdl2EIjRY8TXxsr8JuaRvHafB2kNGqm9qONBQbPX9UOa4uet+6Q==} engines: {node: ^22.11 || ^24 || >=26} '@changesets/git@4.0.0-next.6': @@ -1601,7 +1601,7 @@ snapshots: '@changesets/types': 7.0.0-next.6 '@manypkg/get-packages': 3.1.0 - '@changesets/ghcommit@3.0.0-next.1': + '@changesets/ghcommit@3.0.0': dependencies: tinyexec: 1.2.4 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 2ce51cd3..962c04d7 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -12,7 +12,6 @@ minimumReleaseAgeExclude: - "@changesets/get-dependents-graph@3.0.0-next.6" - "@changesets/get-github-info@1.0.0-next.3" - "@changesets/get-release-plan@5.0.0-next.7" - - "@changesets/ghcommit@3.0.0-next.1" - "@changesets/git@4.0.0-next.6" - "@changesets/parse@1.0.0-next.7" - "@changesets/pre@3.0.0-next.6" diff --git a/src/github.ts b/src/github.ts index 802d3818..c03cbda8 100644 --- a/src/github.ts +++ b/src/github.ts @@ -253,6 +253,7 @@ export class GitHub { base: { commit: context.sha, }, + force: true, cwd: this.cwd, }); return; From c1722b9abab2d48f7b4764a4dea4908a2dd5b293 Mon Sep 17 00:00:00 2001 From: "changesets-org-version-bot[bot]" <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> Date: Mon, 3 Aug 2026 14:10:09 +0200 Subject: [PATCH 41/62] Version Packages (next) (#698) Co-authored-by: changesets-org-version-bot[bot] <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> --- .changeset/pre.json | 6 ++++++ CHANGELOG.md | 24 ++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/.changeset/pre.json b/.changeset/pre.json index a4d47db0..86b65e46 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -3,6 +3,9 @@ "tag": "next", "changesets": [ "all-cars-grin", + "brave-pandas-commit", + "bright-lions-check", + "calm-files-warn", "chubby-geese-sink", "eight-clocks-pull", "eighty-doors-swim", @@ -10,11 +13,14 @@ "fiery-toes-vanish", "git-cli-auth-header", "git-cli-server-url", + "green-birds-push", "lemon-turtles-itch", "ready-mangos-boil", "shaky-rings-type", "shy-months-crash", "silent-tips-dance", + "strict-hotels-laugh", + "tidy-bots-smile", "yellow-roses-fix" ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index b64cf2b2..c3f3a013 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,29 @@ # @changesets/action +## 2.0.0-next.4 + +### Major Changes + +- [#692](https://github.com/changesets/action/pull/692) [`cb3f011`](https://github.com/changesets/action/commit/cb3f0110d7423cd340b1c5d63584c0ea6ee63959) Thanks [@Andarist](https://github.com/Andarist)! - Release commits and tags are now pushed using the GitHub API by default. + + Replace the `commit-mode` input with the boolean `push-with-git-cli` input. Set `push-with-git-cli: true` to continue using the Git CLI. + + Regardless of the push mode, custom GitHub tokens must be passed explicitly through the `github-token` input. The `GITHUB_TOKEN` environment variable and credentials configured by `actions/checkout` or embedded in remote URLs are not substitutes for this input. When the Git CLI is enabled, `github-token` takes precedence over those repository credentials. + +- [#695](https://github.com/changesets/action/pull/695) [`469993c`](https://github.com/changesets/action/commit/469993ce5783c6a38e72541d4ba0d25588702b9a) Thanks [@bluwy](https://github.com/bluwy)! - Removed `.npmrc` handling when the `NPM_TOKEN` environment variable is set. + + Authentication should be handled via Trusted Publishing instead. If a token is still needed, use `actions/setup-node` to set it up instead via the `registry-url` option. Check out the updated action README for more information of setting up npm authentication in GitHub Actions. + +### Patch Changes + +- [#699](https://github.com/changesets/action/pull/699) [`5b307d3`](https://github.com/changesets/action/commit/5b307d3df25daf51c41dff70d2f66df1579ae9fa) Thanks [@Andarist](https://github.com/Andarist)! - Validate that projects use Changesets CLI v3 and direct Changesets CLI v2 users to `changesets/action@v1`. + +- [#697](https://github.com/changesets/action/pull/697) [`84d78c6`](https://github.com/changesets/action/commit/84d78c68f98f20e24dfff22b22193e7b4f326ad9) Thanks [@Andarist](https://github.com/Andarist)! - Allow custom publish scripts to complete without a Changesets output file, warning that GitHub releases and git tags cannot be created when that file is missing. + +- [#705](https://github.com/changesets/action/pull/705) [`77be81b`](https://github.com/changesets/action/commit/77be81bcb9d2d1007c53c4f98bffe51da428d6a5) Thanks [@Andarist](https://github.com/Andarist)! - Fixed a regression making it impossible to sync new versions of versioning pull requests with base branch updates when using GitHub API pushes. + +- [#688](https://github.com/changesets/action/pull/688) [`219ea82`](https://github.com/changesets/action/commit/219ea82e52caaff2a10a5e34d3455093cf958238) Thanks [@Andarist](https://github.com/Andarist)! - Remove the `setup-git-user` input. Complete custom Git identities are now preserved automatically, while `github-actions[bot]` is configured as a fallback before creating local release commits or tags. + ## 2.0.0-next.3 ### Major Changes diff --git a/package.json b/package.json index 1c8dbb5d..f77faa13 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@changesets/action", - "version": "2.0.0-next.3", + "version": "2.0.0-next.4", "private": true, "license": "MIT", "type": "module", From cae63535198362487bf613d7940dbc74b12d7313 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Mon, 3 Aug 2026 17:40:56 +0200 Subject: [PATCH 42/62] Use new self-repository syntax for local GitHub actions (#706) --- .github/actions/ci-setup/action.yml | 5 +++++ .github/workflows/ci.yml | 23 ++++------------------- .github/workflows/publish.yml | 25 +++++-------------------- .github/workflows/release-pr.yml | 9 ++------- 4 files changed, 16 insertions(+), 46 deletions(-) diff --git a/.github/actions/ci-setup/action.yml b/.github/actions/ci-setup/action.yml index 1e2c37c4..548d70eb 100644 --- a/.github/actions/ci-setup/action.yml +++ b/.github/actions/ci-setup/action.yml @@ -10,6 +10,11 @@ inputs: runs: using: composite steps: + - name: Check out repo + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + with: + persist-credentials: false + - name: Set up pnpm uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 67ea2549..92d7de31 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: persist-credentials: false - name: Run zizmor - uses: zizmorcore/zizmor-action@5f14fd08f7cf1cb1609c1e344975f152c7ee938d # v0.5.6 + uses: zizmorcore/zizmor-action@3dc1ecc9bcb9e94e9b2c709687979e1298497054 # v0.6.2 with: persona: pedantic annotations: true @@ -43,12 +43,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 20 steps: - - name: Check out repo - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - with: - persist-credentials: false - - - uses: ./.github/actions/ci-setup + - uses: $/.github/actions/ci-setup - name: Test run: pnpm test @@ -58,12 +53,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 20 steps: - - name: Check out repo - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - with: - persist-credentials: false - - - uses: ./.github/actions/ci-setup + - uses: $/.github/actions/ci-setup - name: Typecheck run: pnpm typecheck @@ -73,12 +63,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 20 steps: - - name: Check out repo - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - with: - persist-credentials: false - - - uses: ./.github/actions/ci-setup + - uses: $/.github/actions/ci-setup - name: Format run: pnpm format diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 66df3ccf..04619aac 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -24,12 +24,7 @@ jobs: permissions: contents: read # to check out repo (actions/checkout) steps: - - name: Check out repo - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - with: - persist-credentials: false - - - uses: ./.github/actions/ci-setup + - uses: $/.github/actions/ci-setup with: skip-cache: true # avoid cache poisoning attacks @@ -50,19 +45,14 @@ jobs: permissions: contents: read # to check out repo (actions/checkout) steps: - - name: Check out repo - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - with: - persist-credentials: false - - - uses: ./.github/actions/ci-setup + - uses: $/.github/actions/ci-setup with: skip-cache: true # avoid cache poisoning attacks - name: Build run: pnpm build - - uses: ./.github/actions/setup-bot-auth + - uses: $/.github/actions/setup-bot-auth id: bot-auth with: client-id: ${{ vars.APP_CLIENT_ID }} @@ -87,19 +77,14 @@ jobs: permissions: contents: write # to create release and have it authored by github-actions (changesets/action) steps: - - name: Check out repo - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - with: - persist-credentials: false - - - uses: ./.github/actions/ci-setup + - uses: $/.github/actions/ci-setup with: skip-cache: true # avoid cache poisoning attacks - name: Build run: pnpm build - - uses: ./.github/actions/setup-bot-auth + - uses: $/.github/actions/setup-bot-auth id: bot-auth with: client-id: ${{ vars.APP_CLIENT_ID }} diff --git a/.github/workflows/release-pr.yml b/.github/workflows/release-pr.yml index 87d3b31c..1e6fcb67 100644 --- a/.github/workflows/release-pr.yml +++ b/.github/workflows/release-pr.yml @@ -122,12 +122,7 @@ jobs: pull-requests: write # to comment on the pull request with the release result (changesets/action) steps: - - name: Check out repo - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - with: - persist-credentials: false - - - uses: ./.github/actions/ci-setup + - uses: $/.github/actions/ci-setup with: skip-cache: true # avoid cache poisoning attacks @@ -166,7 +161,7 @@ jobs: - name: Build run: pnpm build - - uses: ./.github/actions/setup-bot-auth + - uses: $/.github/actions/setup-bot-auth id: bot-auth with: client-id: ${{ vars.APP_CLIENT_ID }} From 5fa67671df41b7a8a9d8123e8e446b1a8ad423db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 11 Aug 2026 13:00:37 +0200 Subject: [PATCH 43/62] Fix support for prerelease exits using the new `.changeset/pre` layout (#711) * Fix prerelease exit mode selection * Improve prerelease exit changeset wording --- .changeset/pre.json | 24 +- .changeset/{ => pre}/all-cars-grin.md | 0 .changeset/{ => pre}/brave-pandas-commit.md | 0 .changeset/{ => pre}/bright-lions-check.md | 0 .changeset/{ => pre}/calm-files-warn.md | 0 .changeset/{ => pre}/chubby-geese-sink.md | 0 .changeset/{ => pre}/eight-clocks-pull.md | 0 .changeset/{ => pre}/eighty-doors-swim.md | 0 .changeset/{ => pre}/eighty-parks-tickle.md | 0 .changeset/{ => pre}/fiery-toes-vanish.md | 0 .changeset/{ => pre}/git-cli-auth-header.md | 0 .changeset/{ => pre}/git-cli-server-url.md | 0 .changeset/{ => pre}/green-birds-push.md | 0 .changeset/{ => pre}/lemon-turtles-itch.md | 0 .changeset/{ => pre}/ready-mangos-boil.md | 0 .changeset/{ => pre}/shaky-rings-type.md | 0 .changeset/{ => pre}/shy-months-crash.md | 0 .changeset/{ => pre}/silent-tips-dance.md | 0 .changeset/{ => pre}/strict-hotels-laugh.md | 0 .changeset/{ => pre}/tidy-bots-smile.md | 0 .changeset/{ => pre}/yellow-roses-fix.md | 0 .changeset/quick-spoons-smile.md | 5 + package.json | 16 +- pnpm-lock.yaml | 262 ++++++++++---------- pnpm-workspace.yaml | 32 +-- src/readChangesetState.test.ts | 40 +++ src/readChangesetState.ts | 6 +- 27 files changed, 208 insertions(+), 177 deletions(-) rename .changeset/{ => pre}/all-cars-grin.md (100%) rename .changeset/{ => pre}/brave-pandas-commit.md (100%) rename .changeset/{ => pre}/bright-lions-check.md (100%) rename .changeset/{ => pre}/calm-files-warn.md (100%) rename .changeset/{ => pre}/chubby-geese-sink.md (100%) rename .changeset/{ => pre}/eight-clocks-pull.md (100%) rename .changeset/{ => pre}/eighty-doors-swim.md (100%) rename .changeset/{ => pre}/eighty-parks-tickle.md (100%) rename .changeset/{ => pre}/fiery-toes-vanish.md (100%) rename .changeset/{ => pre}/git-cli-auth-header.md (100%) rename .changeset/{ => pre}/git-cli-server-url.md (100%) rename .changeset/{ => pre}/green-birds-push.md (100%) rename .changeset/{ => pre}/lemon-turtles-itch.md (100%) rename .changeset/{ => pre}/ready-mangos-boil.md (100%) rename .changeset/{ => pre}/shaky-rings-type.md (100%) rename .changeset/{ => pre}/shy-months-crash.md (100%) rename .changeset/{ => pre}/silent-tips-dance.md (100%) rename .changeset/{ => pre}/strict-hotels-laugh.md (100%) rename .changeset/{ => pre}/tidy-bots-smile.md (100%) rename .changeset/{ => pre}/yellow-roses-fix.md (100%) create mode 100644 .changeset/quick-spoons-smile.md create mode 100644 src/readChangesetState.test.ts diff --git a/.changeset/pre.json b/.changeset/pre.json index 86b65e46..d20efa9e 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,26 +1,4 @@ { "mode": "pre", - "tag": "next", - "changesets": [ - "all-cars-grin", - "brave-pandas-commit", - "bright-lions-check", - "calm-files-warn", - "chubby-geese-sink", - "eight-clocks-pull", - "eighty-doors-swim", - "eighty-parks-tickle", - "fiery-toes-vanish", - "git-cli-auth-header", - "git-cli-server-url", - "green-birds-push", - "lemon-turtles-itch", - "ready-mangos-boil", - "shaky-rings-type", - "shy-months-crash", - "silent-tips-dance", - "strict-hotels-laugh", - "tidy-bots-smile", - "yellow-roses-fix" - ] + "tag": "next" } diff --git a/.changeset/all-cars-grin.md b/.changeset/pre/all-cars-grin.md similarity index 100% rename from .changeset/all-cars-grin.md rename to .changeset/pre/all-cars-grin.md diff --git a/.changeset/brave-pandas-commit.md b/.changeset/pre/brave-pandas-commit.md similarity index 100% rename from .changeset/brave-pandas-commit.md rename to .changeset/pre/brave-pandas-commit.md diff --git a/.changeset/bright-lions-check.md b/.changeset/pre/bright-lions-check.md similarity index 100% rename from .changeset/bright-lions-check.md rename to .changeset/pre/bright-lions-check.md diff --git a/.changeset/calm-files-warn.md b/.changeset/pre/calm-files-warn.md similarity index 100% rename from .changeset/calm-files-warn.md rename to .changeset/pre/calm-files-warn.md diff --git a/.changeset/chubby-geese-sink.md b/.changeset/pre/chubby-geese-sink.md similarity index 100% rename from .changeset/chubby-geese-sink.md rename to .changeset/pre/chubby-geese-sink.md diff --git a/.changeset/eight-clocks-pull.md b/.changeset/pre/eight-clocks-pull.md similarity index 100% rename from .changeset/eight-clocks-pull.md rename to .changeset/pre/eight-clocks-pull.md diff --git a/.changeset/eighty-doors-swim.md b/.changeset/pre/eighty-doors-swim.md similarity index 100% rename from .changeset/eighty-doors-swim.md rename to .changeset/pre/eighty-doors-swim.md diff --git a/.changeset/eighty-parks-tickle.md b/.changeset/pre/eighty-parks-tickle.md similarity index 100% rename from .changeset/eighty-parks-tickle.md rename to .changeset/pre/eighty-parks-tickle.md diff --git a/.changeset/fiery-toes-vanish.md b/.changeset/pre/fiery-toes-vanish.md similarity index 100% rename from .changeset/fiery-toes-vanish.md rename to .changeset/pre/fiery-toes-vanish.md diff --git a/.changeset/git-cli-auth-header.md b/.changeset/pre/git-cli-auth-header.md similarity index 100% rename from .changeset/git-cli-auth-header.md rename to .changeset/pre/git-cli-auth-header.md diff --git a/.changeset/git-cli-server-url.md b/.changeset/pre/git-cli-server-url.md similarity index 100% rename from .changeset/git-cli-server-url.md rename to .changeset/pre/git-cli-server-url.md diff --git a/.changeset/green-birds-push.md b/.changeset/pre/green-birds-push.md similarity index 100% rename from .changeset/green-birds-push.md rename to .changeset/pre/green-birds-push.md diff --git a/.changeset/lemon-turtles-itch.md b/.changeset/pre/lemon-turtles-itch.md similarity index 100% rename from .changeset/lemon-turtles-itch.md rename to .changeset/pre/lemon-turtles-itch.md diff --git a/.changeset/ready-mangos-boil.md b/.changeset/pre/ready-mangos-boil.md similarity index 100% rename from .changeset/ready-mangos-boil.md rename to .changeset/pre/ready-mangos-boil.md diff --git a/.changeset/shaky-rings-type.md b/.changeset/pre/shaky-rings-type.md similarity index 100% rename from .changeset/shaky-rings-type.md rename to .changeset/pre/shaky-rings-type.md diff --git a/.changeset/shy-months-crash.md b/.changeset/pre/shy-months-crash.md similarity index 100% rename from .changeset/shy-months-crash.md rename to .changeset/pre/shy-months-crash.md diff --git a/.changeset/silent-tips-dance.md b/.changeset/pre/silent-tips-dance.md similarity index 100% rename from .changeset/silent-tips-dance.md rename to .changeset/pre/silent-tips-dance.md diff --git a/.changeset/strict-hotels-laugh.md b/.changeset/pre/strict-hotels-laugh.md similarity index 100% rename from .changeset/strict-hotels-laugh.md rename to .changeset/pre/strict-hotels-laugh.md diff --git a/.changeset/tidy-bots-smile.md b/.changeset/pre/tidy-bots-smile.md similarity index 100% rename from .changeset/tidy-bots-smile.md rename to .changeset/pre/tidy-bots-smile.md diff --git a/.changeset/yellow-roses-fix.md b/.changeset/pre/yellow-roses-fix.md similarity index 100% rename from .changeset/yellow-roses-fix.md rename to .changeset/pre/yellow-roses-fix.md diff --git a/.changeset/quick-spoons-smile.md b/.changeset/quick-spoons-smile.md new file mode 100644 index 00000000..ca3ef3f0 --- /dev/null +++ b/.changeset/quick-spoons-smile.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Fix support for prerelease exits using the new `.changeset/pre` layout. diff --git a/package.json b/package.json index f77faa13..db6863e1 100644 --- a/package.json +++ b/package.json @@ -23,11 +23,11 @@ "@actions/core": "^3.0.1", "@actions/exec": "^3.0.0", "@actions/github": "^9.1.1", - "@changesets/get-release-plan": "^5.0.0-next.7", + "@changesets/get-release-plan": "^5.0.0-next.11", "@changesets/ghcommit": "^3.0.0", - "@changesets/git": "^4.0.0-next.6", - "@changesets/pre": "^3.0.0-next.6", - "@changesets/read": "^1.0.0-next.7", + "@changesets/git": "^4.0.0-next.9", + "@changesets/pre": "^3.0.0-next.9", + "@changesets/read": "^1.0.0-next.10", "@manypkg/get-packages": "^3.1.0", "@octokit/core": "^7.0.6", "@octokit/plugin-throttling": "^11.0.3", @@ -37,10 +37,10 @@ "tinyexec": "^1.2.4" }, "devDependencies": { - "@changesets/changelog-github": "^1.0.0-next.6", - "@changesets/cli": "^3.0.0-next.8", - "@changesets/types": "^7.0.0-next.6", - "@changesets/write": "^1.0.0-next.6", + "@changesets/changelog-github": "^1.0.0-next.9", + "@changesets/cli": "^3.0.0-next.12", + "@changesets/types": "^7.0.0-next.9", + "@changesets/write": "^1.0.0-next.9", "@tsconfig/node24": "^24.0.4", "@types/node": "^24.12.4", "@types/semver": "^7.7.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dfcc4414..fe5ff13d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,20 +26,20 @@ importers: specifier: ^9.1.1 version: 9.1.1 '@changesets/get-release-plan': - specifier: ^5.0.0-next.7 - version: 5.0.0-next.7 + specifier: ^5.0.0-next.11 + version: 5.0.0-next.11 '@changesets/ghcommit': specifier: ^3.0.0 version: 3.0.0 '@changesets/git': - specifier: ^4.0.0-next.6 - version: 4.0.0-next.6 + specifier: ^4.0.0-next.9 + version: 4.0.0-next.9 '@changesets/pre': - specifier: ^3.0.0-next.6 - version: 3.0.0-next.6 + specifier: ^3.0.0-next.9 + version: 3.0.0-next.9 '@changesets/read': - specifier: ^1.0.0-next.7 - version: 1.0.0-next.7 + specifier: ^1.0.0-next.10 + version: 1.0.0-next.10 '@manypkg/get-packages': specifier: ^3.1.0 version: 3.1.0 @@ -63,17 +63,17 @@ importers: version: 1.2.4 devDependencies: '@changesets/changelog-github': - specifier: ^1.0.0-next.6 - version: 1.0.0-next.6 + specifier: ^1.0.0-next.9 + version: 1.0.0-next.9 '@changesets/cli': - specifier: ^3.0.0-next.8 - version: 3.0.0-next.8 + specifier: ^3.0.0-next.12 + version: 3.0.0-next.12 '@changesets/types': - specifier: ^7.0.0-next.6 - version: 7.0.0-next.6 + specifier: ^7.0.0-next.9 + version: 7.0.0-next.9 '@changesets/write': - specifier: ^1.0.0-next.6 - version: 1.0.0-next.6 + specifier: ^1.0.0-next.9 + version: 1.0.0-next.9 '@tsconfig/node24': specifier: ^24.0.4 version: 24.0.4 @@ -186,89 +186,89 @@ packages: '@bufbuild/protoplugin@2.12.0': resolution: {integrity: sha512-ORlDITp8AFUXzIhLRoMCG+ud+D3MPKWb5HQXBoskMMnjeyEjE1H1qLonVNPyOr8lkx3xSfYUo8a0dvOZJVAzow==} - '@changesets/apply-release-plan@8.0.0-next.7': - resolution: {integrity: sha512-gHXYyBf0+jri/wjA8TYrcyo7HEnN9QAFpU9+1ZWiDMjov7x3cG72r4NQC0T0hTUW+I1bayMFm95EGOvNtLxTSg==} + '@changesets/apply-release-plan@8.0.0-next.11': + resolution: {integrity: sha512-PEBXU4RT4TDjqZLlQ8dKAptC/rhRTQHCb35cqNdkZNMUzEngW1HnW9e90RnBuC5I9n9BK6T0aeOVU/Z4Ep9Hdg==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/assemble-release-plan@7.0.0-next.7': - resolution: {integrity: sha512-rUYmk2z5665bkLU+/gReGTdmqSYyFmo7ZgWvpc7ny3OXuEvWdOBz+1egvBXwAG4nYaRq8yIG9aKWIG0Dc18gIg==} + '@changesets/assemble-release-plan@7.0.0-next.11': + resolution: {integrity: sha512-Ziwfmz4mRybA3nuXgXXRXSsYZJn+gXt2zp46hKEwlfTOXik/O/D4Ex0U9h6HWhm2t4hgsqt5O0StYjhop3P9Fg==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/changelog-git@1.0.0-next.6': - resolution: {integrity: sha512-z+uAi+BhOUJSBlQj2o5n3oFwhCkHQBk+P1JrFFRvA5fv6pDRAZpugQYbXR7dIQZ5Dn4ndG9cidIKb2o/lGs2wQ==} + '@changesets/changelog-git@1.0.0-next.9': + resolution: {integrity: sha512-v9YatKMVoljRPRPzI9PoxDHxBsLXZs+ndKBts6nOJlRpGHoGyzScOyC2YYce0krYhFxhn+lOiIto/7AOlTFuwA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/changelog-github@1.0.0-next.6': - resolution: {integrity: sha512-0ShCWgNt50xP0mryAYT8wtSkMUinG8uhxXgCgwHZ4UvJnR2f4ns8OsGAxYu8FIds7kHFdLOz7qX4YQ6AX4tVUA==} + '@changesets/changelog-github@1.0.0-next.9': + resolution: {integrity: sha512-xGtpDLiJeQdyoOGNfKIKp09+o41J7KTNJ+QXWq8OqrzFbOCuI+KZC1AlyIDAsjZce3tBYLhu9sQtAMkmRnGOew==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/cli@3.0.0-next.8': - resolution: {integrity: sha512-gfIPhBs1XNdgXhTJ+uhzfG8jHmMLnQNNL4Uwqxoniw/xmmVRbc9xGIeLniRsGY77RgdhWW0V1z1zVjTztgMQzQ==} + '@changesets/cli@3.0.0-next.12': + resolution: {integrity: sha512-/KqQB/YyZn6c01PpUkCrFjNUwMuCkMBOJfRiY6R66G88u2YJWYDr9iLP0y/imukkm7axvUPNRDvfdGXMArytfQ==} engines: {node: ^22.11 || ^24 || >=26, npm: '>=10.9.0', pnpm: '>=10.0.0', yarn: '>=4.5.2'} hasBin: true - '@changesets/config@4.0.0-next.6': - resolution: {integrity: sha512-RTaumXzBthBvXE5axcAdCbSlUQ3l8l8FD1nNQpVXLCK/4Mg+/96BmNhX5Y/Yf80XE7eG+Mfl797Au5HHqPB/2A==} + '@changesets/config@4.0.0-next.10': + resolution: {integrity: sha512-+4fnpbGlL3igY8Q4H8JXNz/c0rl9bX7VC/3skkzZoXDPENVAbDtlIqYo4jhh7uZVttiicp37Uos0YBEOfCZFcw==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/errors@1.0.0-next.3': - resolution: {integrity: sha512-p0JrarlyfkpnIK9L1Y8JKoF78IgKEzRPVbG/13gToDpvfV1cWqOVuoDLVCTQjYTwmaHusOmrnuQUlsO88AvP4Q==} + '@changesets/errors@1.0.0-next.4': + resolution: {integrity: sha512-ZUoabMz+a4t0/Eoz5uUHzufcWfXIlkpCuCUWUMkWErqcCjgB0pwuPWSU2CamhufsG7ZKDUlUoIGVSQWyPc77CA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/format@0.1.0': - resolution: {integrity: sha512-m3ScsTpVqQJu6WOV36vpGozJPBu5JWaFXAhG1/yRnzbOnyqomuPrIfm+LeE0PmX4HWPs9Fh4MDH4aDISEsjZaA==} + '@changesets/format@0.1.1': + resolution: {integrity: sha512-OBN/xfe+lcNWCv8P4Ogop9EOTi5QRKd1c2JJfZRBT9AT3AybzDYDfHeX4Y7j20Q4e16BPu3XvcdOe9sPZmTEig==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-dependents-graph@3.0.0-next.6': - resolution: {integrity: sha512-UhQpHeyygd6uhoBZKLpwYNVqqxp6/QChwh9Phbo9BE3pTxu5e2X2JWZhNtlxkxUdWAGEq0sYExmhjDyYhBD1Xw==} + '@changesets/get-dependents-graph@3.0.0-next.9': + resolution: {integrity: sha512-zyukhblBz0TO7Ze4rJHS/LN8dLvNpKPGEm3YhYRpZnlRCT+r4X9YtrHJjUFHbnjn2wNRRzzy6eHzsFn43YI3jQ==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-github-info@1.0.0-next.3': - resolution: {integrity: sha512-HQXw3Kcz1hAdCQgGH4cWlKpJWcTeL8pWNJP4zDOR3igoHJQO31wzHhG29XPhxnDBK9wEdyI71Ft86KpXDOLv/Q==} + '@changesets/get-github-info@1.0.0-next.4': + resolution: {integrity: sha512-Bosh+XOoFvLMzAj301tg6phbrEggBtvEccrnceEvYsKSM7PjcIa32Fy22SU5g+501HZywkdwcAlybdWF+e/zzw==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-release-plan@5.0.0-next.7': - resolution: {integrity: sha512-ek+tXy+SHshWQD5V4uL6pciazjhm/Yt+KxIQEW0W6vIyyjWvFBY6t0xfsv/hCc/+u11riHcoWGwHkGYqC869EQ==} + '@changesets/get-release-plan@5.0.0-next.11': + resolution: {integrity: sha512-2MlhIU7Rjw0pCw2SZc3a9Qxw9SaA2hwUQ7m0bohbFqgy0gw1EA9YW5rUbxUntFP5gIBfcjKmtU7701hULN8GMQ==} engines: {node: ^22.11 || ^24 || >=26} '@changesets/ghcommit@3.0.0': resolution: {integrity: sha512-od3Y0BhzH+zg8ysSiXFiwj1g85g98mt/WDoGdl2EIjRY8TXxsr8JuaRvHafB2kNGqm9qONBQbPX9UOa4uet+6Q==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/git@4.0.0-next.6': - resolution: {integrity: sha512-dNFHMQ4uER7Mo49iPKPee4ITUrCaJs6wya+ZfPo2kNzhMmbyv8WE9QuEf8BITBW+lJo5uos8gqUVnjJoerzjbA==} + '@changesets/git@4.0.0-next.9': + resolution: {integrity: sha512-7WqrwEVpsKZKbBGR7hPRuHTbkIMiDdoyxSsQDOWrmuBh13wDTGaIV6yYQoOs0I3l56khxydm/68v01c/+4g9jQ==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/parse@1.0.0-next.7': - resolution: {integrity: sha512-6xtwi4SUYbSVTtsnlNdGnXQPQfdwaqV6PVnDcpV+PtQRM4RhfE4gAwrBe9Cth9+4iHyFbvzm+Gusc00XSNF/IQ==} + '@changesets/parse@1.0.0-next.10': + resolution: {integrity: sha512-ENFmw8Ytq6fNY3O+uC99KDdChZ3dM8PFgth3qi1Ms78GCCHsSgik0ojQwGht5VPsP6WhfTkNqW3fCakFt+euHg==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/pre@3.0.0-next.6': - resolution: {integrity: sha512-XVZ4JE4UE1bO1JtxxoBkoueHlzWNe227IpfJGlpiD7ZTfdidlRh+4tHxf452IcGMA3rEe3hWPhFE0tdL3uU2lA==} + '@changesets/pre@3.0.0-next.9': + resolution: {integrity: sha512-NznGjw/PCDy6d74DusPriYbLZQl6O8cvRwuv/qsSKUTF/9O9+EvJnXTx+wtHS9SLJnJqRaGprQ1EMSkjRRyDGQ==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/read@1.0.0-next.7': - resolution: {integrity: sha512-eoy5Yf9WDN7opiQyNWZCCpeDeYf5mX/qT/MUktDnk2jBmwRUHLvIkTNK+IsR612etTcfO5kLlRNVcBv4smk87A==} + '@changesets/read@1.0.0-next.10': + resolution: {integrity: sha512-wmhNbv8gnN6Gv6dpFftmqkyy5OTQfFWFlyfwLa7s+b0vMihA5ZYwU/Zd8VN53AsSlYp6k8s4sc43ZJk0zUIkRA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/should-skip-package@1.0.0-next.6': - resolution: {integrity: sha512-2y4+DMh7gMMEQaGwKwJMY7cixmJrK7u7rSZQ9t5O+xwqty9qXhO9EKbIeMDlt13A1Bdxuiu7ptkMKC+AoOO28Q==} + '@changesets/should-skip-package@1.0.0-next.9': + resolution: {integrity: sha512-KaDRCnNy+J4Q8vTZIyKGV3wtDyW79bJN7+XBg919ZKneAj7jJpJLIPkVK+MlyGqyWoxhWEcDBRZ3aTjVkx/tnw==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/types@7.0.0-next.6': - resolution: {integrity: sha512-bdxuVLYKrCt14kNFb+ltta8pOPFmQWB0DpMcz9IWMD+DRupQ4+wZyCkXIkfIoqu3iN0fcQkSuoZ2tNOfV+fepg==} + '@changesets/types@7.0.0-next.9': + resolution: {integrity: sha512-okzQIKr+HZXZne37+QI0o0GrKNNTinP8jqsSdr2jUXEt8qhiwdG/X2o7aukp4WBtG4R395BOGyJVfaCy+xg7IA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/write@1.0.0-next.6': - resolution: {integrity: sha512-GhtCqRxadKGe2wkMxpX0PqeWgn3vBr7JELJRakKv7zit8EX+La9/a9dosaP98vWisOCyDm1kuO8bUAq2ljRyVw==} + '@changesets/write@1.0.0-next.9': + resolution: {integrity: sha512-vZ7iTrI8FhJydoWla4G9LSk1kJf4yOtA9m3h9Wffvn+0v5DXUe3LrP/7ZBxHlFCu+WY5ypKo+ClLaDvB9I7Zpg==} engines: {node: ^22.11 || ^24 || >=26} - '@clack/core@1.4.1': - resolution: {integrity: sha512-FILJa1gGKEFTGZAJE9RpVhrjKz3c3h4ar60dSv6cGuDqufQ84YEIS3GAGvZiN+H6yaLbbvTFNejjCC4tXpZEuw==} + '@clack/core@1.4.3': + resolution: {integrity: sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==} engines: {node: '>= 20.12.0'} - '@clack/prompts@1.5.1': - resolution: {integrity: sha512-zccHj2z2oCCO4yrDiRSlFOxWerGqRiysP7a5jPK6uoI9URKAquwY42Dd/iUP8JWHxEzdRe4TlbvZCo8z1/mhrw==} + '@clack/prompts@1.7.0': + resolution: {integrity: sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==} engines: {node: '>= 20.12.0'} '@emnapi/core@1.10.0': @@ -497,8 +497,8 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pnpm/deps.graph-sequencer@1100.0.0': - resolution: {integrity: sha512-IfhLdXMjNaAt2Z/r0hAqMvH4UN/Eb6LAbnSHqF9Ay1EhQId8rFX58yIWXLUit6VjJTJAptnSPtO8nSu2/ggQsg==} + '@pnpm/deps.graph-sequencer@1100.0.1': + resolution: {integrity: sha512-pOr5+q1fLYKwFN3LAJuGZEnfXDcQ73zqgDHMtGy+K+uIoUqyY+6MeDCWFwfu+4EFuq76I5EPFofoNAI+Bmmq4A==} engines: {node: '>=22.13'} '@protobuf-ts/plugin@2.11.1': @@ -1172,6 +1172,10 @@ packages: resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} engines: {node: '>=18'} + tinyexec@1.3.0: + resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==} + engines: {node: '>=18'} + tinyglobby@0.2.17: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} @@ -1518,138 +1522,140 @@ snapshots: transitivePeerDependencies: - supports-color - '@changesets/apply-release-plan@8.0.0-next.7': + '@changesets/apply-release-plan@8.0.0-next.11': dependencies: - '@changesets/config': 4.0.0-next.6 - '@changesets/format': 0.1.0 - '@changesets/git': 4.0.0-next.6 - '@changesets/should-skip-package': 1.0.0-next.6 - '@changesets/types': 7.0.0-next.6 + '@changesets/config': 4.0.0-next.10 + '@changesets/format': 0.1.1 + '@changesets/git': 4.0.0-next.9 + '@changesets/should-skip-package': 1.0.0-next.9 + '@changesets/types': 7.0.0-next.9 import-meta-resolve: 4.2.0 jsonc-parser: 3.3.1 semver: 7.8.1 - '@changesets/assemble-release-plan@7.0.0-next.7': + '@changesets/assemble-release-plan@7.0.0-next.11': dependencies: - '@changesets/errors': 1.0.0-next.3 - '@changesets/get-dependents-graph': 3.0.0-next.6 - '@changesets/should-skip-package': 1.0.0-next.6 - '@changesets/types': 7.0.0-next.6 + '@changesets/errors': 1.0.0-next.4 + '@changesets/get-dependents-graph': 3.0.0-next.9 + '@changesets/should-skip-package': 1.0.0-next.9 + '@changesets/types': 7.0.0-next.9 semver: 7.8.1 - '@changesets/changelog-git@1.0.0-next.6': + '@changesets/changelog-git@1.0.0-next.9': dependencies: - '@changesets/types': 7.0.0-next.6 + '@changesets/types': 7.0.0-next.9 - '@changesets/changelog-github@1.0.0-next.6': + '@changesets/changelog-github@1.0.0-next.9': dependencies: - '@changesets/get-github-info': 1.0.0-next.3 - '@changesets/types': 7.0.0-next.6 + '@changesets/get-github-info': 1.0.0-next.4 + '@changesets/types': 7.0.0-next.9 - '@changesets/cli@3.0.0-next.8': + '@changesets/cli@3.0.0-next.12': dependencies: - '@changesets/apply-release-plan': 8.0.0-next.7 - '@changesets/assemble-release-plan': 7.0.0-next.7 - '@changesets/changelog-git': 1.0.0-next.6 - '@changesets/config': 4.0.0-next.6 - '@changesets/errors': 1.0.0-next.3 - '@changesets/get-dependents-graph': 3.0.0-next.6 - '@changesets/git': 4.0.0-next.6 - '@changesets/pre': 3.0.0-next.6 - '@changesets/read': 1.0.0-next.7 - '@changesets/should-skip-package': 1.0.0-next.6 - '@changesets/types': 7.0.0-next.6 - '@changesets/write': 1.0.0-next.6 - '@clack/prompts': 1.5.1 + '@changesets/apply-release-plan': 8.0.0-next.11 + '@changesets/assemble-release-plan': 7.0.0-next.11 + '@changesets/changelog-git': 1.0.0-next.9 + '@changesets/config': 4.0.0-next.10 + '@changesets/errors': 1.0.0-next.4 + '@changesets/get-dependents-graph': 3.0.0-next.9 + '@changesets/git': 4.0.0-next.9 + '@changesets/pre': 3.0.0-next.9 + '@changesets/read': 1.0.0-next.10 + '@changesets/should-skip-package': 1.0.0-next.9 + '@changesets/types': 7.0.0-next.9 + '@changesets/write': 1.0.0-next.9 + '@clack/prompts': 1.7.0 '@manypkg/get-packages': 3.1.0 - '@pnpm/deps.graph-sequencer': 1100.0.0 + '@pnpm/deps.graph-sequencer': 1100.0.1 cac: 7.0.0 import-meta-resolve: 4.2.0 launch-editor: 2.14.1 + package-manager-detector: 1.6.0 semver: 7.8.1 - tinyexec: 1.2.4 + tinyexec: 1.3.0 - '@changesets/config@4.0.0-next.6': + '@changesets/config@4.0.0-next.10': dependencies: - '@changesets/get-dependents-graph': 3.0.0-next.6 - '@changesets/should-skip-package': 1.0.0-next.6 - '@changesets/types': 7.0.0-next.6 + '@changesets/get-dependents-graph': 3.0.0-next.9 + '@changesets/should-skip-package': 1.0.0-next.9 + '@changesets/types': 7.0.0-next.9 '@manypkg/get-packages': 3.1.0 picomatch: 4.0.4 - '@changesets/errors@1.0.0-next.3': {} + '@changesets/errors@1.0.0-next.4': {} - '@changesets/format@0.1.0': + '@changesets/format@0.1.1': dependencies: package-manager-detector: 1.6.0 + tinyexec: 1.2.4 - '@changesets/get-dependents-graph@3.0.0-next.6': + '@changesets/get-dependents-graph@3.0.0-next.9': dependencies: - '@changesets/types': 7.0.0-next.6 + '@changesets/types': 7.0.0-next.9 semver: 7.8.1 - '@changesets/get-github-info@1.0.0-next.3': + '@changesets/get-github-info@1.0.0-next.4': dependencies: dataloader: 2.2.3 - '@changesets/get-release-plan@5.0.0-next.7': + '@changesets/get-release-plan@5.0.0-next.11': dependencies: - '@changesets/assemble-release-plan': 7.0.0-next.7 - '@changesets/config': 4.0.0-next.6 - '@changesets/pre': 3.0.0-next.6 - '@changesets/read': 1.0.0-next.7 - '@changesets/types': 7.0.0-next.6 + '@changesets/assemble-release-plan': 7.0.0-next.11 + '@changesets/config': 4.0.0-next.10 + '@changesets/pre': 3.0.0-next.9 + '@changesets/read': 1.0.0-next.10 + '@changesets/types': 7.0.0-next.9 '@manypkg/get-packages': 3.1.0 '@changesets/ghcommit@3.0.0': dependencies: tinyexec: 1.2.4 - '@changesets/git@4.0.0-next.6': + '@changesets/git@4.0.0-next.9': dependencies: - '@changesets/errors': 1.0.0-next.3 - '@changesets/types': 7.0.0-next.6 + '@changesets/errors': 1.0.0-next.4 + '@changesets/types': 7.0.0-next.9 '@manypkg/get-packages': 3.1.0 picomatch: 4.0.4 tinyexec: 1.2.4 - '@changesets/parse@1.0.0-next.7': + '@changesets/parse@1.0.0-next.10': dependencies: - '@changesets/types': 7.0.0-next.6 + '@changesets/types': 7.0.0-next.9 yaml: 2.9.0 - '@changesets/pre@3.0.0-next.6': + '@changesets/pre@3.0.0-next.9': dependencies: - '@changesets/errors': 1.0.0-next.3 - '@changesets/types': 7.0.0-next.6 + '@changesets/errors': 1.0.0-next.4 + '@changesets/types': 7.0.0-next.9 '@manypkg/get-packages': 3.1.0 - '@changesets/read@1.0.0-next.7': + '@changesets/read@1.0.0-next.10': dependencies: - '@changesets/git': 4.0.0-next.6 - '@changesets/parse': 1.0.0-next.7 - '@changesets/types': 7.0.0-next.6 + '@changesets/git': 4.0.0-next.9 + '@changesets/parse': 1.0.0-next.10 + '@changesets/types': 7.0.0-next.9 - '@changesets/should-skip-package@1.0.0-next.6': + '@changesets/should-skip-package@1.0.0-next.9': dependencies: - '@changesets/types': 7.0.0-next.6 + '@changesets/types': 7.0.0-next.9 - '@changesets/types@7.0.0-next.6': {} + '@changesets/types@7.0.0-next.9': {} - '@changesets/write@1.0.0-next.6': + '@changesets/write@1.0.0-next.9': dependencies: - '@changesets/format': 0.1.0 - '@changesets/types': 7.0.0-next.6 + '@changesets/format': 0.1.1 + '@changesets/types': 7.0.0-next.9 human-id: 4.2.0 - '@clack/core@1.4.1': + '@clack/core@1.4.3': dependencies: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 - '@clack/prompts@1.5.1': + '@clack/prompts@1.7.0': dependencies: - '@clack/core': 1.4.1 + '@clack/core': 1.4.3 fast-string-width: 3.0.2 fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 @@ -1837,7 +1843,7 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pnpm/deps.graph-sequencer@1100.0.0': {} + '@pnpm/deps.graph-sequencer@1100.0.1': {} '@protobuf-ts/plugin@2.11.1': dependencies: @@ -2484,6 +2490,8 @@ snapshots: tinyexec@1.2.4: {} + tinyexec@1.3.0: {} + tinyglobby@0.2.17: dependencies: fdir: 6.5.0(picomatch@4.0.4) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 962c04d7..b125020f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,22 +3,22 @@ dedupePeers: true dedupePeerDependents: true minimumReleaseAge: 10080 minimumReleaseAgeExclude: - - "@changesets/apply-release-plan@8.0.0-next.7" - - "@changesets/assemble-release-plan@7.0.0-next.7" - - "@changesets/changelog-git@1.0.0-next.6" - - "@changesets/changelog-github@1.0.0-next.6" - - "@changesets/cli@3.0.0-next.8" - - "@changesets/config@4.0.0-next.6" - - "@changesets/get-dependents-graph@3.0.0-next.6" - - "@changesets/get-github-info@1.0.0-next.3" - - "@changesets/get-release-plan@5.0.0-next.7" - - "@changesets/git@4.0.0-next.6" - - "@changesets/parse@1.0.0-next.7" - - "@changesets/pre@3.0.0-next.6" - - "@changesets/read@1.0.0-next.7" - - "@changesets/should-skip-package@1.0.0-next.6" - - "@changesets/types@7.0.0-next.6" - - "@changesets/write@1.0.0-next.6" + - "@changesets/apply-release-plan@8.0.0-next.11" + - "@changesets/assemble-release-plan@7.0.0-next.11" + - "@changesets/changelog-git@1.0.0-next.9" + - "@changesets/changelog-github@1.0.0-next.9" + - "@changesets/cli@3.0.0-next.12" + - "@changesets/config@4.0.0-next.10" + - "@changesets/get-dependents-graph@3.0.0-next.9" + - "@changesets/get-github-info@1.0.0-next.4" + - "@changesets/get-release-plan@5.0.0-next.11" + - "@changesets/git@4.0.0-next.9" + - "@changesets/parse@1.0.0-next.10" + - "@changesets/pre@3.0.0-next.9" + - "@changesets/read@1.0.0-next.10" + - "@changesets/should-skip-package@1.0.0-next.9" + - "@changesets/types@7.0.0-next.9" + - "@changesets/write@1.0.0-next.9" overrides: lightningcss: "-" # we do not bundle any css diff --git a/src/readChangesetState.test.ts b/src/readChangesetState.test.ts new file mode 100644 index 00000000..c609e9ee --- /dev/null +++ b/src/readChangesetState.test.ts @@ -0,0 +1,40 @@ +import { createFixture } from "fs-fixture"; +import { describe, expect, it } from "vitest"; +import readChangesetState from "./readChangesetState.ts"; + +const changeset = `--- +"pkg-a": patch +--- + +Fix a bug. +`; + +describe("readChangesetState", () => { + it("filters versioned changesets in prerelease mode", async () => { + await using fixture = await createFixture({ + ".changeset/pre.json": JSON.stringify({ mode: "pre", tag: "next" }), + ".changeset/pre/versioned.md": changeset, + ".changeset/pending.md": changeset, + }); + + const state = await readChangesetState(fixture.path); + + expect(state.changesets.map((changeset) => changeset.id)).toEqual([ + "pending", + ]); + }); + + it("includes versioned changesets when exiting prerelease mode", async () => { + await using fixture = await createFixture({ + ".changeset/pre.json": JSON.stringify({ mode: "exit", tag: "next" }), + ".changeset/pre/versioned.md": changeset, + }); + + const state = await readChangesetState(fixture.path); + + expect(state.preState).toBeUndefined(); + expect(state.changesets.map((changeset) => changeset.id)).toEqual([ + "pre/versioned", + ]); + }); +}); diff --git a/src/readChangesetState.ts b/src/readChangesetState.ts index 8c8635a6..f2b91381 100644 --- a/src/readChangesetState.ts +++ b/src/readChangesetState.ts @@ -14,11 +14,11 @@ export default async function readChangesetState( let changesets = await readChangesets(cwd); if (preState !== undefined && preState.mode === "pre") { - let changesetsToFilter = new Set(preState.changesets); - return { preState, - changesets: changesets.filter((x) => !changesetsToFilter.has(x.id)), + changesets: changesets.filter( + (changeset) => !changeset.id.startsWith("pre/"), + ), }; } From d11394aa52089772baaea250514ea354b5612b2d Mon Sep 17 00:00:00 2001 From: "changesets-org-version-bot[bot]" <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> Date: Tue, 11 Aug 2026 11:05:26 +0000 Subject: [PATCH 44/62] Version Packages (next) (#712) Co-authored-by: changesets-org-version-bot[bot] <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> --- .changeset/{ => pre}/quick-spoons-smile.md | 0 CHANGELOG.md | 6 ++++++ package.json | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) rename .changeset/{ => pre}/quick-spoons-smile.md (100%) diff --git a/.changeset/quick-spoons-smile.md b/.changeset/pre/quick-spoons-smile.md similarity index 100% rename from .changeset/quick-spoons-smile.md rename to .changeset/pre/quick-spoons-smile.md diff --git a/CHANGELOG.md b/CHANGELOG.md index c3f3a013..abc8fb02 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # @changesets/action +## 2.0.0-next.5 + +### Patch Changes + +- [#711](https://github.com/changesets/action/pull/711) [`5fa6767`](https://github.com/changesets/action/commit/5fa67671df41b7a8a9d8123e8e446b1a8ad423db) Thanks [@Andarist](https://github.com/Andarist)! - Fix support for prerelease exits using the new `.changeset/pre` layout. + ## 2.0.0-next.4 ### Major Changes diff --git a/package.json b/package.json index db6863e1..a83a932f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@changesets/action", - "version": "2.0.0-next.4", + "version": "2.0.0-next.5", "private": true, "license": "MIT", "type": "module", From 187a104ea060c8ea199979460bf91705980c64da Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Tue, 11 Aug 2026 20:17:46 +0800 Subject: [PATCH 45/62] Update deps for stable (#709) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update dependencies and pre setup * Add changeset * Handle pre change * Update dependencies * Use stable Changesets v3 packages --------- Co-authored-by: Mateusz Burzyński --- .changeset/bright-files-raise.md | 5 + package.json | 40 +- pnpm-lock.yaml | 1350 ++++++++++++++---------------- pnpm-workspace.yaml | 34 +- 4 files changed, 693 insertions(+), 736 deletions(-) create mode 100644 .changeset/bright-files-raise.md diff --git a/.changeset/bright-files-raise.md b/.changeset/bright-files-raise.md new file mode 100644 index 00000000..9c1b57cd --- /dev/null +++ b/.changeset/bright-files-raise.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Updated `@changesets/*` dependencies diff --git a/package.json b/package.json index a83a932f..2bbcac9e 100644 --- a/package.json +++ b/package.json @@ -23,36 +23,36 @@ "@actions/core": "^3.0.1", "@actions/exec": "^3.0.0", "@actions/github": "^9.1.1", - "@changesets/get-release-plan": "^5.0.0-next.11", + "@changesets/get-release-plan": "^5.0.0", "@changesets/ghcommit": "^3.0.0", - "@changesets/git": "^4.0.0-next.9", - "@changesets/pre": "^3.0.0-next.9", - "@changesets/read": "^1.0.0-next.10", + "@changesets/git": "^4.0.0", + "@changesets/pre": "^3.0.0", + "@changesets/read": "^1.0.0", "@manypkg/get-packages": "^3.1.0", - "@octokit/core": "^7.0.6", - "@octokit/plugin-throttling": "^11.0.3", - "human-id": "^4.1.3", + "@octokit/core": "^7.0.7", + "@octokit/plugin-throttling": "^11.0.5", + "human-id": "^4.2.0", "markdown-table": "^3.0.4", - "semver": "^7.8.1", - "tinyexec": "^1.2.4" + "semver": "^7.8.5", + "tinyexec": "^1.3.0" }, "devDependencies": { - "@changesets/changelog-github": "^1.0.0-next.9", - "@changesets/cli": "^3.0.0-next.12", - "@changesets/types": "^7.0.0-next.9", - "@changesets/write": "^1.0.0-next.9", + "@changesets/changelog-github": "^1.0.0", + "@changesets/cli": "^3.0.0", + "@changesets/types": "^7.0.0", + "@changesets/write": "^1.0.0", "@tsconfig/node24": "^24.0.4", - "@types/node": "^24.12.4", - "@types/semver": "^7.7.1", - "fs-fixture": "^2.13.0", - "oxfmt": "^0.48.0", - "rolldown": "^1.0.1", + "@types/node": "^26.1.2", + "@types/semver": "^7.8.0", + "fs-fixture": "^2.14.0", + "oxfmt": "^0.61.0", + "rolldown": "^1.2.2", "typescript": "^6.0.3", - "vitest": "^4.1.6", + "vitest": "^4.1.10", "yaml": "^2.9.0" }, "engines": { "node": ">=24" }, - "packageManager": "pnpm@11.1.1+sha512.d1fdf5f73c617b64fa1a56a81c3c8dfe0e966e33a6010aa256b517ae77be21d93e05affc0de1a83b0e4f29d569f68b446ae8f068cd7247c0bb3df0fb4d7bdf9a" + "packageManager": "pnpm@11.20.0+sha512.9a6f330a95b66446ea088faf1521405a8a01f07fde7124cc9958dfed52d4bb436737e65b08f85f37b46fcba375092558ac51262b816844b22f63406ed166bfee" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index fe5ff13d..485838b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,78 +26,78 @@ importers: specifier: ^9.1.1 version: 9.1.1 '@changesets/get-release-plan': - specifier: ^5.0.0-next.11 - version: 5.0.0-next.11 + specifier: ^5.0.0 + version: 5.0.0 '@changesets/ghcommit': specifier: ^3.0.0 version: 3.0.0 '@changesets/git': - specifier: ^4.0.0-next.9 - version: 4.0.0-next.9 + specifier: ^4.0.0 + version: 4.0.0 '@changesets/pre': - specifier: ^3.0.0-next.9 - version: 3.0.0-next.9 + specifier: ^3.0.0 + version: 3.0.0 '@changesets/read': - specifier: ^1.0.0-next.10 - version: 1.0.0-next.10 + specifier: ^1.0.0 + version: 1.0.0 '@manypkg/get-packages': specifier: ^3.1.0 version: 3.1.0 '@octokit/core': - specifier: ^7.0.6 - version: 7.0.6 + specifier: ^7.0.7 + version: 7.0.7 '@octokit/plugin-throttling': - specifier: ^11.0.3 - version: 11.0.3(@octokit/core@7.0.6) + specifier: ^11.0.5 + version: 11.0.5(@octokit/core@7.0.7) human-id: - specifier: ^4.1.3 - version: 4.1.3 + specifier: ^4.2.0 + version: 4.2.0 markdown-table: specifier: ^3.0.4 version: 3.0.4 semver: - specifier: ^7.8.1 - version: 7.8.1 + specifier: ^7.8.5 + version: 7.8.5 tinyexec: - specifier: ^1.2.4 - version: 1.2.4 + specifier: ^1.3.0 + version: 1.3.0 devDependencies: '@changesets/changelog-github': - specifier: ^1.0.0-next.9 - version: 1.0.0-next.9 + specifier: ^1.0.0 + version: 1.0.0 '@changesets/cli': - specifier: ^3.0.0-next.12 - version: 3.0.0-next.12 + specifier: ^3.0.0 + version: 3.0.0 '@changesets/types': - specifier: ^7.0.0-next.9 - version: 7.0.0-next.9 + specifier: ^7.0.0 + version: 7.0.0 '@changesets/write': - specifier: ^1.0.0-next.9 - version: 1.0.0-next.9 + specifier: ^1.0.0 + version: 1.0.0 '@tsconfig/node24': specifier: ^24.0.4 version: 24.0.4 '@types/node': - specifier: ^24.12.4 - version: 24.12.4 + specifier: ^26.1.2 + version: 26.1.2 '@types/semver': - specifier: ^7.7.1 - version: 7.7.1 + specifier: ^7.8.0 + version: 7.8.0 fs-fixture: - specifier: ^2.13.0 - version: 2.13.0 + specifier: ^2.14.0 + version: 2.14.0 oxfmt: - specifier: ^0.48.0 - version: 0.48.0 + specifier: ^0.61.0 + version: 0.61.0 rolldown: - specifier: ^1.0.1 - version: 1.0.1 + specifier: ^1.2.2 + version: 1.2.2 typescript: specifier: ^6.0.3 version: 6.0.3 vitest: - specifier: ^4.1.6 - version: 4.1.6(@types/node@24.12.4)(vite@8.0.13) + specifier: ^4.1.10 + version: 4.1.10(@types/node@26.1.2)(vite@8.2.0) yaml: specifier: ^2.9.0 version: 2.9.0 @@ -125,21 +125,21 @@ packages: '@actions/io@3.0.2': resolution: {integrity: sha512-nRBchcMM+QK1pdjO7/idu86rbJI5YHUKCvKs0KxnSYbVe3F51UfGxuZX4Qy/fWlp6l7gWFwIkrOzN+oUK03kfw==} - '@azure/abort-controller@2.1.2': - resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} - engines: {node: '>=18.0.0'} + '@azure/abort-controller@2.2.0': + resolution: {integrity: sha512-fNAjWnA/nZ2jz31kxR/AqRaUT8ewHBw/WuBIosK0moMy1C9e5ValbDfFdIxJzVOOYaYkV/b2F1S4H/aHiqfVQg==} + engines: {node: '>=22.0.0'} - '@azure/core-auth@1.10.1': - resolution: {integrity: sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==} - engines: {node: '>=20.0.0'} + '@azure/core-auth@1.11.0': + resolution: {integrity: sha512-IUZydyTUkDnYdstOW9pFOOUQlBjAepK5teihDE3x6yxsPJs/hsAaaYpeGxdxrgtOiJbBKSjKW7MDk7AEhb4LRg==} + engines: {node: '>=22.0.0'} - '@azure/core-client@1.10.2': - resolution: {integrity: sha512-1D2LpsU7y9xrqKjdIbsB7PlrRePw0xsVV8p+AKTlzITrWmscajryfJCdDJB/oGwvDI5HmRo04eMMADB67uwAwQ==} - engines: {node: '>=20.0.0'} + '@azure/core-client@1.11.0': + resolution: {integrity: sha512-JjQWO6akOck45PH/XBrxzsQGAiKrfFl4m5iggJ0ItMIz5omRufOXWpqCPpdjKN3vKDzlSUvFjaMb7Zwf0gvAdA==} + engines: {node: '>=22.0.0'} - '@azure/core-http-compat@2.4.0': - resolution: {integrity: sha512-f1P96IB399YiN2ARYHP7EpZi3Bf3wH4SN2lGzrw7JVwm7bbsVYtf2iKSBwTywD2P62NOPZGHFSZi+6jjb75JuA==} - engines: {node: '>=20.0.0'} + '@azure/core-http-compat@2.5.0': + resolution: {integrity: sha512-BoSmXPx2er1Ai+wKlDvj29jIQespCNBwEmKyZVHO2kEFsWbGjAjwMCGzug3DJM5/QYIV3vej0S1zcU5bq9fa8w==} + engines: {node: '>=22.0.0'} peerDependencies: '@azure/core-client': ^1.10.0 '@azure/core-rest-pipeline': ^1.22.0 @@ -148,119 +148,119 @@ packages: resolution: {integrity: sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==} engines: {node: '>=18.0.0'} - '@azure/core-paging@1.6.2': - resolution: {integrity: sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==} - engines: {node: '>=18.0.0'} + '@azure/core-paging@1.7.0': + resolution: {integrity: sha512-7GEAoIsaoBr6KELNRb8nypowCqvk8dnCHFCYg4XD4lOQGY2GqjQg5IhkRjyBFRO18CGSMq05PaNqSOE9GQro3g==} + engines: {node: '>=22.0.0'} - '@azure/core-rest-pipeline@1.24.0': - resolution: {integrity: sha512-PpLsoDQ3AMmKZ0VU+0GrmqMxgp/sExjlVm4R+nLWngeoEGAzOIPVifaxKGU5gMv+nWELUoHfvrolWD+ZS/nFJg==} - engines: {node: '>=20.0.0'} + '@azure/core-rest-pipeline@1.25.0': + resolution: {integrity: sha512-bMs8ekJLjX8wPV+9IPBges1SLPyuDtE9g5gLDWOpxzKcoOFQnpLGkbcT1tdw3FaAmDS1gnPmMmJ6y/T5B96kIA==} + engines: {node: '>=22.0.0'} - '@azure/core-tracing@1.3.1': - resolution: {integrity: sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==} - engines: {node: '>=20.0.0'} + '@azure/core-tracing@1.4.0': + resolution: {integrity: sha512-eGwxD0AtncrxeBM4tG8R55Pc3rdX1hNW2WibJAgYpCVA6E93mvvVH+LcssoVjOBrSKWS55yEIHsk0X8ctHmfOQ==} + engines: {node: '>=22.0.0'} - '@azure/core-util@1.13.1': - resolution: {integrity: sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==} - engines: {node: '>=20.0.0'} + '@azure/core-util@1.14.0': + resolution: {integrity: sha512-9n2pWK61veAuN0V20t9lOuoV4CFMdyAZ1ygZzvBGk/pBBJRib/PjL9PLXa/aI2CcPpyHfqVsxxqLCYl6uZlfDw==} + engines: {node: '>=22.0.0'} - '@azure/core-xml@1.5.1': - resolution: {integrity: sha512-xcNRHqCoSp4AunOALEae6A8f3qATb83gSrm31Iqb01OzblvC3/W/bfXozcq78EzIdzZzuH1bZ2NvRR0TdX709w==} - engines: {node: '>=20.0.0'} + '@azure/core-xml@1.6.0': + resolution: {integrity: sha512-e7lX/dk//F6Qf7BB6PTY4+p2yuOQtyOeHGyapYHNwqSp2OnYpwQt49A/Nin2XmKBQ69pwagR4k/lQBq8lbHQkA==} + engines: {node: '>=22.0.0'} - '@azure/logger@1.3.0': - resolution: {integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==} - engines: {node: '>=20.0.0'} + '@azure/logger@1.4.0': + resolution: {integrity: sha512-rbAE25KUfjU/s3XHUdJgceoCP5dEOpMx85J04kF+QMdta73XkuG9JGHHinch+XIoKpBdqljin+KqURpJriSzLA==} + engines: {node: '>=22.0.0'} - '@azure/storage-blob@12.32.0': - resolution: {integrity: sha512-80LzSNnFQye2LCCBFghAJS6jJQJ7N4bfgZ6qDMgVGRtugZ7TLDKQZ2hczMigmZH3jAcMRdma/IygsC5+0gT7Tw==} - engines: {node: '>=20.0.0'} + '@azure/storage-blob@12.33.0': + resolution: {integrity: sha512-2SX8oP8PyblUcAFZSg39c8Ls+tFjavM6sBeV+qpw33mRzRhI/5hrFJmJ/x0H9xx5l6ECPvgSP8uPxqTeVbHNIA==} + engines: {node: '>=22.0.0'} - '@azure/storage-common@12.4.0': - resolution: {integrity: sha512-kNhJKMxQb374KOVt63CZnGIpDcrKNzJeyANLJymxE9mCJSdRGzb+Iv9oSIiCj6tNMLypr530b9ObOiA/5OvwOg==} - engines: {node: '>=20.0.0'} + '@azure/storage-common@12.5.0': + resolution: {integrity: sha512-bttzuhQiCIwrkzjPDA+AtAR7dg19L/CC6ztcqJ5LfvWpXuys9mHp0UQ0udYnoUvv9SCT9KTR5kqFvFr0e6k0lQ==} + engines: {node: '>=22.0.0'} - '@bufbuild/protobuf@2.12.0': - resolution: {integrity: sha512-B/XlCaFIP8LOwzo+bz5uFzATYokcwCKQcghqnlfwSmM5eX/qTkvDBnDPs+gXtX/RyjxJ4DRikECcPJbyALA8FA==} + '@bufbuild/protobuf@2.13.0': + resolution: {integrity: sha512-acq7c49vxfm1ggJ95P70TX7ABDM0vxr1SYD3BB0o0jnBLB4OAqeHyKuN+cD3w80gXEDQ2zxHpR6CUeA+O/aU9g==} - '@bufbuild/protoplugin@2.12.0': - resolution: {integrity: sha512-ORlDITp8AFUXzIhLRoMCG+ud+D3MPKWb5HQXBoskMMnjeyEjE1H1qLonVNPyOr8lkx3xSfYUo8a0dvOZJVAzow==} + '@bufbuild/protoplugin@2.13.0': + resolution: {integrity: sha512-32eMChKaL/A8Hh5AfMmXSdnuyznN85uoEjoyWiWeRrvtQOtpqX/v1R9PDe0g9vMIgzznK9inMT3CUaal0kjLUQ==} - '@changesets/apply-release-plan@8.0.0-next.11': - resolution: {integrity: sha512-PEBXU4RT4TDjqZLlQ8dKAptC/rhRTQHCb35cqNdkZNMUzEngW1HnW9e90RnBuC5I9n9BK6T0aeOVU/Z4Ep9Hdg==} + '@changesets/apply-release-plan@8.0.0': + resolution: {integrity: sha512-kUd2pbf1w5/AYmBMb0Tt+rkIPCjFJdT0SZMrkOjJT/WV/QbtmvkyB5jkV0oaNPheavprZk+SfUiozUti7TIL2w==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/assemble-release-plan@7.0.0-next.11': - resolution: {integrity: sha512-Ziwfmz4mRybA3nuXgXXRXSsYZJn+gXt2zp46hKEwlfTOXik/O/D4Ex0U9h6HWhm2t4hgsqt5O0StYjhop3P9Fg==} + '@changesets/assemble-release-plan@7.0.0': + resolution: {integrity: sha512-oEW8BxdA604kGGtDSCiHr5w9Tv4UWe9I2k61IBNZzCOE1kbYaJj4v+lFQNgcEZFkUc2pV/+hASErGDvpJOZCTg==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/changelog-git@1.0.0-next.9': - resolution: {integrity: sha512-v9YatKMVoljRPRPzI9PoxDHxBsLXZs+ndKBts6nOJlRpGHoGyzScOyC2YYce0krYhFxhn+lOiIto/7AOlTFuwA==} + '@changesets/changelog-git@1.0.0': + resolution: {integrity: sha512-3Dst2Ime2Op5nd4XmWJLPIgp11ZFqJqSkVug9izK6TDcIV4YlhPS4ECbEVR+eGI0bk0r1ItogD4j2Oli87bJrA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/changelog-github@1.0.0-next.9': - resolution: {integrity: sha512-xGtpDLiJeQdyoOGNfKIKp09+o41J7KTNJ+QXWq8OqrzFbOCuI+KZC1AlyIDAsjZce3tBYLhu9sQtAMkmRnGOew==} + '@changesets/changelog-github@1.0.0': + resolution: {integrity: sha512-PNCSH5CGJrqOKxRjrMp2NLhceQv2QBs6HkjrLvYQqsEE2/ItN5R8GD/mskZZluoNWYvjPYFsY9T6swXfp5E0UA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/cli@3.0.0-next.12': - resolution: {integrity: sha512-/KqQB/YyZn6c01PpUkCrFjNUwMuCkMBOJfRiY6R66G88u2YJWYDr9iLP0y/imukkm7axvUPNRDvfdGXMArytfQ==} + '@changesets/cli@3.0.0': + resolution: {integrity: sha512-V7Gm+GP5OT3mJinMI2YcJD/JyO/a4WChnaMCCzTRhWHgu1zhtsyY7zCjP6n5W6zsgSjJKs+yPmvtREvE0F2g8A==} engines: {node: ^22.11 || ^24 || >=26, npm: '>=10.9.0', pnpm: '>=10.0.0', yarn: '>=4.5.2'} hasBin: true - '@changesets/config@4.0.0-next.10': - resolution: {integrity: sha512-+4fnpbGlL3igY8Q4H8JXNz/c0rl9bX7VC/3skkzZoXDPENVAbDtlIqYo4jhh7uZVttiicp37Uos0YBEOfCZFcw==} + '@changesets/config@4.0.0': + resolution: {integrity: sha512-mw95/YrkOuhZZxfnVAA4bSXOFUi+KlhzOBTM8C4x777NhUU6HWIl9Z+K+nME+E4PVsv5NQVQwTfiHihAS1A/ow==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/errors@1.0.0-next.4': - resolution: {integrity: sha512-ZUoabMz+a4t0/Eoz5uUHzufcWfXIlkpCuCUWUMkWErqcCjgB0pwuPWSU2CamhufsG7ZKDUlUoIGVSQWyPc77CA==} + '@changesets/errors@1.0.0': + resolution: {integrity: sha512-ElN/mEzn6zmETgjwf5MclCMa9ef59sAR0lfO8VSYIsiRvbC2FbLB/92EoYw10Sl0kGixxHFiJZUSv7dA+YpR8g==} engines: {node: ^22.11 || ^24 || >=26} '@changesets/format@0.1.1': resolution: {integrity: sha512-OBN/xfe+lcNWCv8P4Ogop9EOTi5QRKd1c2JJfZRBT9AT3AybzDYDfHeX4Y7j20Q4e16BPu3XvcdOe9sPZmTEig==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-dependents-graph@3.0.0-next.9': - resolution: {integrity: sha512-zyukhblBz0TO7Ze4rJHS/LN8dLvNpKPGEm3YhYRpZnlRCT+r4X9YtrHJjUFHbnjn2wNRRzzy6eHzsFn43YI3jQ==} + '@changesets/get-dependents-graph@3.0.0': + resolution: {integrity: sha512-ji/t5wFA1zREKXRUePE6Qi+Qu2UgxCeSSGQrphezwvQZrp49B7sJ+8+wvM0tA7zPeSxYKCojDy3WWgrl+s+awg==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-github-info@1.0.0-next.4': - resolution: {integrity: sha512-Bosh+XOoFvLMzAj301tg6phbrEggBtvEccrnceEvYsKSM7PjcIa32Fy22SU5g+501HZywkdwcAlybdWF+e/zzw==} + '@changesets/get-github-info@1.0.0': + resolution: {integrity: sha512-nf5zPSqEKW0eXiJ4ltbjyIQ/srUHfxbghkLCjKdOLI3LehKXhiqxXcpja39eGPaj6qqGx2lFCrLJ7VWYUf9H2w==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/get-release-plan@5.0.0-next.11': - resolution: {integrity: sha512-2MlhIU7Rjw0pCw2SZc3a9Qxw9SaA2hwUQ7m0bohbFqgy0gw1EA9YW5rUbxUntFP5gIBfcjKmtU7701hULN8GMQ==} + '@changesets/get-release-plan@5.0.0': + resolution: {integrity: sha512-3Dr+6eukpTjAFxkaUUkD00gLbjjhW3PUzkcF0ePYMCiGEv/oaKAKZy3+TN3pWYIsAwUYGJXPF0wM9rhT0xlfUw==} engines: {node: ^22.11 || ^24 || >=26} '@changesets/ghcommit@3.0.0': resolution: {integrity: sha512-od3Y0BhzH+zg8ysSiXFiwj1g85g98mt/WDoGdl2EIjRY8TXxsr8JuaRvHafB2kNGqm9qONBQbPX9UOa4uet+6Q==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/git@4.0.0-next.9': - resolution: {integrity: sha512-7WqrwEVpsKZKbBGR7hPRuHTbkIMiDdoyxSsQDOWrmuBh13wDTGaIV6yYQoOs0I3l56khxydm/68v01c/+4g9jQ==} + '@changesets/git@4.0.0': + resolution: {integrity: sha512-uIEswpPUgzBBqrC0qg13byNaPorzhf05LE2T+gRizEKCXvMsJC6NPJp5iNDSV/gYj4Viqh09UiOF5E7XWeH5lQ==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/parse@1.0.0-next.10': - resolution: {integrity: sha512-ENFmw8Ytq6fNY3O+uC99KDdChZ3dM8PFgth3qi1Ms78GCCHsSgik0ojQwGht5VPsP6WhfTkNqW3fCakFt+euHg==} + '@changesets/parse@1.0.0': + resolution: {integrity: sha512-P0iaMb9p9CRYZiTgAllEIF9AUMQHIy1G72tKlcIqJp61icZSsKQNiOPdxAMZG8m/DvZwt/oz5xEbTpike//dWg==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/pre@3.0.0-next.9': - resolution: {integrity: sha512-NznGjw/PCDy6d74DusPriYbLZQl6O8cvRwuv/qsSKUTF/9O9+EvJnXTx+wtHS9SLJnJqRaGprQ1EMSkjRRyDGQ==} + '@changesets/pre@3.0.0': + resolution: {integrity: sha512-Zm/6YliV/a2oeWTqHJf6KxLrQwgcK1i/BRDl2m0EKZvbnxV5fG9QRhwJJGshjsZTUTS6dkfURQ2K6aAvgNw/3Q==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/read@1.0.0-next.10': - resolution: {integrity: sha512-wmhNbv8gnN6Gv6dpFftmqkyy5OTQfFWFlyfwLa7s+b0vMihA5ZYwU/Zd8VN53AsSlYp6k8s4sc43ZJk0zUIkRA==} + '@changesets/read@1.0.0': + resolution: {integrity: sha512-8TdE2PwG6yArPt5Ozej83Z6iHz1G8BDBKvIEKZ455MccR4K3GNbLR2XqjBxa+5yLFnEd3xAOPXYboBg1pt8stQ==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/should-skip-package@1.0.0-next.9': - resolution: {integrity: sha512-KaDRCnNy+J4Q8vTZIyKGV3wtDyW79bJN7+XBg919ZKneAj7jJpJLIPkVK+MlyGqyWoxhWEcDBRZ3aTjVkx/tnw==} + '@changesets/should-skip-package@1.0.0': + resolution: {integrity: sha512-pwqoJmbONn1XgXmZXPEExgAaT+HdZLjALFTDgIm+PnS5KeO2nLtzA2/Q+4aMFY14kFMuXKG30MObhvDzWgzDgg==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/types@7.0.0-next.9': - resolution: {integrity: sha512-okzQIKr+HZXZne37+QI0o0GrKNNTinP8jqsSdr2jUXEt8qhiwdG/X2o7aukp4WBtG4R395BOGyJVfaCy+xg7IA==} + '@changesets/types@7.0.0': + resolution: {integrity: sha512-c5GoiQyt3pxiXjrWSNoP8/GRf4kG+VnKzovx1OQM8dYYALlSwgedmkPmJ+ZqGxqwg9D3Bkj85Uo4KLd5BN3A0w==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/write@1.0.0-next.9': - resolution: {integrity: sha512-vZ7iTrI8FhJydoWla4G9LSk1kJf4yOtA9m3h9Wffvn+0v5DXUe3LrP/7ZBxHlFCu+WY5ypKo+ClLaDvB9I7Zpg==} + '@changesets/write@1.0.0': + resolution: {integrity: sha512-xCK3/4C7Z7muQB/wguE6HcbjtY9iOtaK9orZKE+7xi573cMGD8rLZz7qlo6IvK7s+SIUIKajzj1l+F1QuP97tw==} engines: {node: ^22.11 || ^24 || >=26} '@clack/core@1.4.3': @@ -271,15 +271,6 @@ packages: resolution: {integrity: sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==} engines: {node: '>= 20.12.0'} - '@emnapi/core@1.10.0': - resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - - '@emnapi/runtime@1.10.0': - resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - - '@emnapi/wasi-threads@1.2.1': - resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -299,34 +290,31 @@ packages: resolution: {integrity: sha512-6QEf6yqFbETdwGITKq57aYoPfX/3K8XFNwsAlx0C1M7o8cb79sv1M3w+tWuWvIcSbNqrLF7OD7YpZMVVz335hQ==} engines: {node: '>=20.0.0'} - '@napi-rs/wasm-runtime@1.1.4': - resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} - peerDependencies: - '@emnapi/core': ^1.7.1 - '@emnapi/runtime': ^1.7.1 - - '@nodable/entities@2.1.1': - resolution: {integrity: sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==} + '@nodable/entities@3.0.0': + resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==} '@octokit/auth-token@6.0.0': resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} engines: {node: '>= 20'} - '@octokit/core@7.0.6': - resolution: {integrity: sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==} + '@octokit/core@7.0.7': + resolution: {integrity: sha512-DcB0M3KFgr9ECI328lhBMVsyFT2DnmNucSBTqEN3exyNKUzkkpUSCHmTRcunF41Eou2TIQKW4seewri8ON9bSA==} engines: {node: '>= 20'} - '@octokit/endpoint@11.0.3': - resolution: {integrity: sha512-FWFlNxghg4HrXkD3ifYbS/IdL/mDHjh9QcsNyhQjN8dplUoZbejsdpmuqdA76nxj2xoWPs7p8uX2SNr9rYu0Ag==} + '@octokit/endpoint@11.0.4': + resolution: {integrity: sha512-f1cOWoHPmxryJFknxbtDdjODWfV8A9tc8Aae6ermXPNgHFZ/x91AtHIz4gicEjL8hkJiip+u21QHJORfBv/qiA==} engines: {node: '>= 20'} - '@octokit/graphql@9.0.3': - resolution: {integrity: sha512-grAEuupr/C1rALFnXTv6ZQhFuL1D8G5y8CN04RgrO4FIPMrtm+mcZzFG7dcBm+nq+1ppNixu+Jd78aeJOYxlGA==} + '@octokit/graphql@9.0.4': + resolution: {integrity: sha512-5s15CCiY8XXQ+FG+b1YQcl6Z2FA++nwAz/tg2VUrTmnMncP+2nnGUEYANImdnxsA2Fnq+Mbl7hDjUTw7cFAwcg==} engines: {node: '>= 20'} '@octokit/openapi-types@27.0.0': resolution: {integrity: sha512-whrdktVs1h6gtR+09+QsNk2+FO+49j6ga1c55YZudfEG+oKJVvJLQi3zkOm5JjiUXAagWK2tI2kTGKJ2Ys7MGA==} + '@octokit/openapi-types@28.0.0': + resolution: {integrity: sha512-0rFyLuyHvIj6uuZWuDslxkowFYdPXoNIkeAv4b27dzm2Tf4vGWXnPsMcxs7d65kLdMERgP3wc1AEPlqMz8e1cQ==} + '@octokit/plugin-paginate-rest@14.0.0': resolution: {integrity: sha512-fNVRE7ufJiAA3XUrha2omTA39M6IXIc6GIZLvlbsm8QOQCYvpq/LkMNGyFlB1d8hTDzsAXa3OKtybdMAYsV/fw==} engines: {node: '>= 20'} @@ -345,150 +333,153 @@ packages: peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-retry@8.1.0': - resolution: {integrity: sha512-O1FZgXeiGb2sowEr/hYTr6YunGdSAFWnr2fyW39Ah85H8O33ELASQxcvOFF5LE6Tjekcyu2ms4qAzJVhSaJxTw==} + '@octokit/plugin-retry@8.1.1': + resolution: {integrity: sha512-VCVvZ/R1+u3WuiBWpNavZ0mY4aaJNAsENrpBP9aLSR2QyOpQgd7DhM5j4AW7z4MQpnJYgwBPf0XqPQoNBRdQwg==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=7' - '@octokit/plugin-throttling@11.0.3': - resolution: {integrity: sha512-34eE0RkFCKycLl2D2kq7W+LovheM/ex3AwZCYN8udpi6bxsyjZidb2McXs69hZhLmJlDqTSP8cH+jSRpiaijBg==} + '@octokit/plugin-throttling@11.0.5': + resolution: {integrity: sha512-LIdrkrUv+DWbKeg/49rGuFJ3SU0d3hUS+B4MhNZLepBoNUFXms8Ic9edJjrlx+zycqJHjrMRudVpVb/bAXM2Lw==} engines: {node: '>= 20'} peerDependencies: '@octokit/core': ^7.0.0 - '@octokit/request-error@7.1.0': - resolution: {integrity: sha512-KMQIfq5sOPpkQYajXHwnhjCC0slzCNScLHs9JafXc4RAJI+9f+jNDlBNaIMTvazOPLgb4BnlhGJOTbnN0wIjPw==} + '@octokit/request-error@7.1.1': + resolution: {integrity: sha512-+eaY7G2VVpSf2pc5Gn1+mph837V/d/TYTJAgWL9Tb0ogGYcpN3IlAVFgjL+Vv93F/sevrxkvsYCedtpLdcFLzA==} engines: {node: '>= 20'} - '@octokit/request@10.0.9': - resolution: {integrity: sha512-o8Bi3f608eyM+7BmBiUWxFsdjLb3/ym1cQek5LZOv9KkZcxRrHCPhhRzm6xjO6HVZ85ItD6+sTsjxo821SVa/A==} + '@octokit/request@10.0.13': + resolution: {integrity: sha512-v2269YxL9Yf+x3d+gRI63FP0vFQEiWgLyBzxe/Y+0yFDg2B/Tzf5dhh9VNfccVAQnfcfwQWyk/y6Bn7rUXXs7A==} engines: {node: '>= 20'} '@octokit/types@16.0.0': resolution: {integrity: sha512-sKq+9r1Mm4efXW1FCk7hFSeJo4QKreL/tTbR0rz/qx/r1Oa2VV83LTA/H/MuCOX7uCIJmQVRKBcbmWoySjAnSg==} - '@oxc-project/types@0.130.0': - resolution: {integrity: sha512-ibD2usx9JRu7f5pu2tMKMI4cpA4NgXJQoYRP4pQ7Pxmn1l6k/53qWtQWZayhYy3X4QZkt90Ot+mJEaeXouio6Q==} + '@octokit/types@17.0.0': + resolution: {integrity: sha512-ByP1v7YL5SMveFPP7+sj0/ZuWCOOg/Chs4NafOMpq6WNIM/hdGY0S7C0TCGDBWu1aGmOxmUIhMx3cO+IdwYZ1Q==} + + '@oxc-project/types@0.142.0': + resolution: {integrity: sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==} - '@oxfmt/binding-android-arm-eabi@0.48.0': - resolution: {integrity: sha512-uwqk+/KhQvBIpULD8SMM/zAafMRC/+DV/xsEQjkkIsJ/kLmEI/2bxonVowcYTiXqqZ/a0FEW8DPkZY3VvwELDA==} + '@oxfmt/binding-android-arm-eabi@0.61.0': + resolution: {integrity: sha512-BaS+1OVvg9sr+Xav0+KdWedQRcAzrdoEcwMZeqoc2F6ieC1s/t5eM35YQoRPQ7vAqkZ+p3tbQb1r9I9mrV5oGA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.48.0': - resolution: {integrity: sha512-VUCiKuXK5+McVssgHEJdrcGK7hRJzrRb36zm9/jwzMholyYt4BgXhw5Nm1V1DX6Ce717Zi/1jk432b/tgmQgtQ==} + '@oxfmt/binding-android-arm64@0.61.0': + resolution: {integrity: sha512-of8atAV0M1egGcVOMbgZCvc10sFOP3ayQBNQV5h5G3fNq8gACdEswfFk9bzGrdbM23rtg0Coxi7np7oPLcueNw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.48.0': - resolution: {integrity: sha512-IkKp8rnIyQLW6Jt+6jragCbUVYSayk55lapiprLjIVvt4NczLyO/nwX2GgefLQ5iaBdfS8UEAFgCs/pLO6Cl0w==} + '@oxfmt/binding-darwin-arm64@0.61.0': + resolution: {integrity: sha512-7l8+5ov4BGwtAcmpzvEik/TG3bciwyw/S3e6j5GKH7pcQqcgCVxD3AuJeP6upto+SOTBKQ4wrrdbMt0gq8fHSQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.48.0': - resolution: {integrity: sha512-+aFuhsGIuvnoOjXyKVHMhPKJZR1kQkAl8QyrKoMlA7yJsSTC3N0Asl53La8TChSHhW8epToQ/Q0nvLmEmfNmLg==} + '@oxfmt/binding-darwin-x64@0.61.0': + resolution: {integrity: sha512-Fnz4dDDXBb7udk+DmwelNjxbD6yptyxwCqwCH2ebo4RVLxVsRfFsn/AHJC49KIltPrVokamGv4SSOsiV50DTxQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.48.0': - resolution: {integrity: sha512-fbqzQL8FjI9gGnktI7RIo0dksDziTAYBy7xlI7jU7eID5fxLF/25fS4Xj6GydD8Y5oWHL83U4NK160QaOAxtyg==} + '@oxfmt/binding-freebsd-x64@0.61.0': + resolution: {integrity: sha512-mddOebKNCP+AucmzfNsk3jgbr681qAUvgMqi865GW5gWLJ/AnzXbvjQRrny0e++NAN8aphav/aRSrfFxNsNjpA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.48.0': - resolution: {integrity: sha512-hn4i0zhAyTiB3ZHjQfYUZkDvrbVkohw1S7pySWxWUoZ87HnkDoTFThj7QTxk40hNPOTUP0vHbPRNamFIv1HBJQ==} + '@oxfmt/binding-linux-arm-gnueabihf@0.61.0': + resolution: {integrity: sha512-svx59iYL+DbaZGZUIoice4W0CjRXGExnbz7Re+awIb60rVxBS2KrU7Hnlx+nZYanLGLpjneUEgo/VFEKkSZAyQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.48.0': - resolution: {integrity: sha512-R4WBD9qF3QM9hqgdAa+fBGXmquTvDUujrPQ36t2Sjk8RPOSKGHDeN7l/khr10hqbQaOq9KCgPHG9ubNET/X/RQ==} + '@oxfmt/binding-linux-arm-musleabihf@0.61.0': + resolution: {integrity: sha512-BYK9MPJPCf6d+fLKMTruThmEyCtHzQ1zLcsrTlUVkmnoXIaHAbfpeLYQwX1tkjs7W11dyzoi6HFvKcdnvX1zNg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.48.0': - resolution: {integrity: sha512-5bVdwSwlm1M8wbYCorLOxWxUBw/8tBvHYyQNIfwWVPwOJaj5vg1APSGJQVpwJfV5VNE9PSrR91UKEpoNwHhqUA==} + '@oxfmt/binding-linux-arm64-gnu@0.61.0': + resolution: {integrity: sha512-QUaCNLq2/EC6G5ljOuFanl9Lgw6ZWp4co7rs4+KOMUzbGfA4Lq58FHRjjF9sVIG+93XSbo343MxFATrOU1qctA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.48.0': - resolution: {integrity: sha512-vCS3Fk7gFslTqE1lUE2IlroyVV7u/9SmMA/uBqDoshuck2psGWcjW0ePyPZI3rM3+qtf2pDaMVIKMHozraifuw==} + '@oxfmt/binding-linux-arm64-musl@0.61.0': + resolution: {integrity: sha512-S6uvJ6MXnRXl+zTs0CARNDvkE+cymj0EVWEKKsyKnlLlqTyQJBjw5s4D2pSIOZc+S46cy4STefzcr/sm0VzVPA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.48.0': - resolution: {integrity: sha512-gKtfFfueUClXDumyoHUbymqRf7prHejOOyzJK0eIJn93GF9JBdFHdo60TM1ZBHxkEwZvjuOgHmKtneKbEOc/Eg==} + '@oxfmt/binding-linux-ppc64-gnu@0.61.0': + resolution: {integrity: sha512-6VDlRcytvZG6UlSIdAFKDLbppo9tvPxrWzle6vHldYFMeuDPQEfMKrkwezp7FaBq1wik9ra554ZZeRPsyIkFpg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.48.0': - resolution: {integrity: sha512-SYt0UhOvZD/UwZz9sXq6J2uAw8o24f5VZpLB2DH01f6MevshmlgakQlZe2lwek2sZJkd07eLu7mZa0g7yeiw7Q==} + '@oxfmt/binding-linux-riscv64-gnu@0.61.0': + resolution: {integrity: sha512-KkBTYbzExpbmn15XjKPLu2fRV2PVlq+KWt+brad5rwIa03vdYoaDRWiS7raHII/dCTR6Ro4UpYUCH4t6lif4WQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.48.0': - resolution: {integrity: sha512-JLbrwck2AopG4ud/XklZO5N+qxGC7cS7ROvXZVNfx0MCLDDL2kGOLvzuWORkVjnjAM0CMAfIMU2zNBtQbM+4dw==} + '@oxfmt/binding-linux-riscv64-musl@0.61.0': + resolution: {integrity: sha512-69tzIq7sJLVB9dxYYtvMzcSSsnZHSO+U2U19O2RqDqgj6+Q4O7HjSXdaszbcgqzhsUwzSH7z5kWvk8nmf6BHTg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.48.0': - resolution: {integrity: sha512-mdxt5L8OQLxkQH+JVpdC/lknZNe0lX4hlO3d8+xvw2wToo+iDrid9tiGOd5bmHfUVd5wVhrUry0qlu5vq66NkQ==} + '@oxfmt/binding-linux-s390x-gnu@0.61.0': + resolution: {integrity: sha512-Oqi/N0OvtOVXsPKAOOhKgGH3msRYF8BLJaNBbWiupRiKoKVyc8JRKPCfarkQJC+RgP9U8raUKLe+bNwd0HUMiA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.48.0': - resolution: {integrity: sha512-oEz1BQwMrV7OMEFx/3VPDU3n9TM0AnxpktDYXjEg5i6nTX87wo18wSfBvkl4tzAICdKtoAQAdBIl7Y7hsPlx5w==} + '@oxfmt/binding-linux-x64-gnu@0.61.0': + resolution: {integrity: sha512-3TKwv/ed4uwJSemAA8P9XcoqETpjQI4waquF9UilhA9Mn/dhr1PdUEXWlL74mtc6ZNfmKPA9+NEJm01nRF8CVA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.48.0': - resolution: {integrity: sha512-g2SKTTurP5mWjd8Ecait0erYqmltL4IqW1EwttM25BxM6NiTt4ubobJYMR1uox1V2QgG4UfHH10CGRvWlUixjw==} + '@oxfmt/binding-linux-x64-musl@0.61.0': + resolution: {integrity: sha512-uFso4u4nLkVSlMCpgjyvWV60Gt7GvDQHnk1mmRxHIkZTMB0ljpUKwCD9FYGgN9H97x2wYl0UwEjgRZaPIuhEhw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.48.0': - resolution: {integrity: sha512-CIg24VgheEpvolHL2gQuax5qcQ602bRMHrJ9g8XsQr3iVj9aSPgopigBKuMqrXsupwkrU+RQCn5cG8PgFntR6w==} + '@oxfmt/binding-openharmony-arm64@0.61.0': + resolution: {integrity: sha512-keGLkzeOvkMpNmPp4hffXWpfoSsY6e1K8++KXD4mSSfxdvM8q9QUDsYY689TB1k6Co832DZn1MnaaVx6cIBMWQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.48.0': - resolution: {integrity: sha512-zeaWkcxcEULwkGF3I/HgEvcDPN8buYDrxibBUa/IFh5Vmwyge+KpLO+hEwSovW349H0O/C0Z2kaFmEzEDm00/Q==} + '@oxfmt/binding-win32-arm64-msvc@0.61.0': + resolution: {integrity: sha512-VzsAISkFxmNhJ5LBDEL9VuH6tJsVJMtqYit2LyIUf/HLnsCe4Pg9SMOjjVQzGWt0bnpyfJ94CrqTqcpNZzK+ug==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.48.0': - resolution: {integrity: sha512-yiEKnIAGvx5CyZQOlMaNlZkAbwT7/Quk0j3WLt+PR5hK+qYjPTRRJYDfD77wCBPLvEYAG41v4KG3iL0H+uxoxg==} + '@oxfmt/binding-win32-ia32-msvc@0.61.0': + resolution: {integrity: sha512-xv4t7yzwJoYaLB6Zv28B3W+j7brEjsyv50rLTAQgmxJzddce9fAMCxed8dSAkbWES0zz2J29nYK5FaTuD2YBHg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.48.0': - resolution: {integrity: sha512-GSD2+7t2UoVMV2NgxXypa4bKewflPMAjYnF0Xw9/ht82ZfafAHhb8STwrEd7wlH2PFogt5zw3WVCxYJaHUdbeQ==} + '@oxfmt/binding-win32-x64-msvc@0.61.0': + resolution: {integrity: sha512-6EZXFkqOwxdDYjIn3TSNnPk3ST5E5GiYd4FiM6UF/mCL/LZSfr6D6UygTfW3R1PCQP2quCKpCEGRlij8E3VYbg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -515,97 +506,92 @@ packages: '@protobuf-ts/runtime@2.11.1': resolution: {integrity: sha512-KuDaT1IfHkugM2pyz+FwiY80ejWrkH1pAtOBOZFuR6SXEFTsnb/jiQWQ1rCIrcKx2BtyxnxW6BWwsVSA/Ie+WQ==} - '@rolldown/binding-android-arm64@1.0.1': - resolution: {integrity: sha512-fJI3I0r3C3Oj/zdBCpaCmBRZYf07xpaq4yCfDDoSFm+beWNzbIl26puW8RraUdugoJw/95zerNOn6jasAhzSmg==} + '@rolldown/binding-android-arm64@1.2.2': + resolution: {integrity: sha512-l7x215OGvo1s52JWmR8U/DAVzEDWBCIbTm28aeJV/WDTSHgcKXaZTuBT0hJMs5NggilfJTW3clZVvd24yfKJxA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.0.1': - resolution: {integrity: sha512-cKnAhWEsV7TPcA/5EAteDp6KcJZBQ2G+BqE7zayMMi7kMvwRsbv7WT9aOnn0WNl4SKEIf43vjS31iUPu80nzXg==} + '@rolldown/binding-darwin-arm64@1.2.2': + resolution: {integrity: sha512-9u9Xv6c1AJZT0FfwH5vrMG5Jjcwhc1MlyrPu0XfTqkzsmqfks2M6W/o5XwAJgVVN/jHpqqngC1WevHKKTIUtIA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.0.1': - resolution: {integrity: sha512-YKrVwQjIRBPo+5G/u03wGjbdy4q7pyzCe93DK9VJ7zkVmeg8LJ7GbgsiHWdR4xSoe4CAXRD7Bcjgbtr64bkXNg==} + '@rolldown/binding-darwin-x64@1.2.2': + resolution: {integrity: sha512-9W1mbGZAfW3oqd85bhBkmpyHCCzL1TeG/zFFP3vg7b0rlly8cxOcre5nXwz+LHazCwac2MNWgPdPCHndABjpWQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.0.1': - resolution: {integrity: sha512-z/oBsREo46SsFqBwYtFe0kpJeBijAT48O/WXLI4suiCLBkr03RTtTJMCzSdDd2znlh8VJizL09XVkQgk8IZonw==} + '@rolldown/binding-freebsd-x64@1.2.2': + resolution: {integrity: sha512-0p1lhiCSCyaerFwtrdZQUx7NqGk6LQnaRKWX7tFQqwQgvX0rjM15cIkm3pax1UpEakK14C4mOxx/jSqCBdBRqQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.0.1': - resolution: {integrity: sha512-ik8q7GM11zxvYxFc2PeDcT6TBvhCQMaUxfph/M5l9sKuTs/Sjg3L+Byw0F7w0ZVLBZmx30P+gG0ECzzN+MFcmQ==} + '@rolldown/binding-linux-arm-gnueabihf@1.2.2': + resolution: {integrity: sha512-e+cOJXrJ2L3zx6YzqPg+f6Wbk3V1cKB8bOhbaYdVYN3DdquzNdRAmrbETz1qnt5yp/c7JNlNjmITiA2cVneQ7w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.0.1': - resolution: {integrity: sha512-QoSx2EkyrrdZ6kcyE8stqZ62t0Yra8Fs5ia9lOxJrh6TMQJK7gQKmscdTHf7pOXKREKrVwOtJcQG3qVSfc866A==} + '@rolldown/binding-linux-arm64-gnu@1.2.2': + resolution: {integrity: sha512-JsSMsj6sNat/MuhG5fnBD7QgbtpHKVe30x5/bAVirDHdhoQRXJkF6xc0Jqk8O4fiCUQAzMOoH9wZi3m60c8wtg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.0.1': - resolution: {integrity: sha512-uwNwFpwKeNiZawfAWBgg0VIztPTV3ihhh1vV334h9ivnNLorxnQMU6Fz8wG1Zb4Qh9LC1/MkcyT3YlDXG3Rsgg==} + '@rolldown/binding-linux-arm64-musl@1.2.2': + resolution: {integrity: sha512-B5G/zJdHaoJn9vD50eGHWkiWfmq8Uhi3IiLPJTzmZTrAalk1bztUikSXo0qga18ibE0IXboyeMUnhPjhAJ45wQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.0.1': - resolution: {integrity: sha512-zY1bul7OWr7DFBiJ++wofXvnr8B45ce3QsQUhKrIhXsygAh7bTkwyeM1bi1a2g5C/yC/N8TZyGDEoMfm/l9mpg==} + '@rolldown/binding-linux-ppc64-gnu@1.2.2': + resolution: {integrity: sha512-6mC/awzKka8W6EoekjegpfGkjz8jXWDX63pqu/HYVpyKtZfu65Jsh4QAH3Kej3CAv/c1oGX7psTmFEbr0mDxLA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.0.1': - resolution: {integrity: sha512-0frlsT/f4Ft6I7SMESTKnF3cZsdicQn1dCMkF/jT9wDLE+gGoiQfv1nmT9e+s7s/fekvvy6tZM2jHvI2tkbJDQ==} + '@rolldown/binding-linux-s390x-gnu@1.2.2': + resolution: {integrity: sha512-412MX9fJLdA1IK28EZnc8jYv2HRTleOZgfLQumJ5zy7OeJLZlg/CETwFaXjNmGVxG51cFHpKLqb5LKvBC+HsHA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.0.1': - resolution: {integrity: sha512-XABVmGp9Tg0WspTVvwduTc4fpqy6JnAUrSQe6OuyqD/03nI7r0O9OWUkMIwFrjKAIqolvqoA4ZrJppgwE0Gxmw==} + '@rolldown/binding-linux-x64-gnu@1.2.2': + resolution: {integrity: sha512-Q/+HI/ToJafZ1iCqGgVQXUEkIjufHCTF0gBQ2a5o3cg7GJ2h0qyq3nvvSmU+bGda2/7ygXpTY4TM6gO9OhQ0ZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.0.1': - resolution: {integrity: sha512-bV4fzswuzVcKD90o/VM6QqKxnxlDq0g2BISDLNVmxrnhpv1DDbyPhCIjYfvzYLV+MvkKKnQt2Q6AO86SEBULUQ==} + '@rolldown/binding-linux-x64-musl@1.2.2': + resolution: {integrity: sha512-ZKp/w41n6wCvxzxQHtQSbuphfX3Y4cCvbjkKHusrLx4lh+JWLTU7StSltO/DKARISzbj368d+qUaCjI8K2wzXw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.0.1': - resolution: {integrity: sha512-/Mh0Zhq3OP7fVs0kcQHZP6lZEthMGTaSf8UBQYSFEZDWGXXlEC+nJ6EqenaK2t4LBXMe3A+K/G2BVXXdtOr4PQ==} + '@rolldown/binding-openharmony-arm64@1.2.2': + resolution: {integrity: sha512-pxE6xD4KS3eAROkKK5yrhB9/3+vhlhVGMvlQLbdpzrBGDbKrnzx3RLwPaHvasLo6jgaiBLn7e04Df9C4tYhjmA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-wasm32-wasi@1.0.1': - resolution: {integrity: sha512-+1xc9X45l8ufsBAm6Gjvx2qDRIY9lTVt0cgWNcJ+1gdhXvkbxePA60yRTwSTuXL09CMhyJmjpV7E3NoyxbqFQQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [wasm32] - - '@rolldown/binding-win32-arm64-msvc@1.0.1': - resolution: {integrity: sha512-1D+UqZdfnuR+Jy1GgMJwi85bD40H21uNmOPRWQhw4oRSuolZ/B5rixZ45DK2KXOTCvmVCecauWgEhbw8bI7tOw==} + '@rolldown/binding-win32-arm64-msvc@1.2.2': + resolution: {integrity: sha512-4MqEue5re+xIZzAWsB8sj0P1kqZySWqIuN4t6QaIO/YA6SFwySOLruvWQFzfmqk8LBK2P30KCSJwf6mJCZZ5/A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.0.1': - resolution: {integrity: sha512-INAycaWuhlOK3wk4mRHGsdgwYWmd9cChdPdE9bwWmy6rn9VqVNYNFGhOdXrofXUxwHIncSiPNb8tNm8knDVIeQ==} + '@rolldown/binding-win32-x64-msvc@1.2.2': + resolution: {integrity: sha512-NweNxxD0Nf9t8v7kodun45Ijp3EIwYY+uydPP6qBEYvfBqhIjN6dZMzlQja3tqX/aLs3F3Uz+AxDpKgRhpOZQg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -619,9 +605,6 @@ packages: '@tsconfig/node24@24.0.4': resolution: {integrity: sha512-2A933l5P5oCbv6qSxHs7ckKwobs8BDAe9SJ/Xr2Hy+nDlwmLE1GhFh/g/vXGRZWgxBg9nX/5piDtHR9Dkw/XuA==} - '@tybys/wasm-util@0.10.2': - resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} - '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -631,26 +614,26 @@ packages: '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - '@types/node@24.12.4': - resolution: {integrity: sha512-GUUEShf+PBCGW2KaXwcIt3Yk+e3pkKwWKb9GSyM9WQVE+ep2jzmHdGsHzu4wgcZy5fN9FBdVzjpBQsYlpfpgLA==} + '@types/node@26.1.2': + resolution: {integrity: sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==} - '@types/semver@7.7.1': - resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + '@types/semver@7.8.0': + resolution: {integrity: sha512-1mAINjtQCXXeLkJ9ehXkwOcBpqtLxiVtKhpUf83DdRNdQKV0iXZpaHYqRr7nj+wvxuJzoAmAwXI+sCNMv1CzLQ==} '@typescript/vfs@1.6.4': resolution: {integrity: sha512-PJFXFS4ZJKiJ9Qiuix6Dz/OwEIqHD7Dme1UwZhTK11vR+5dqW2ACbdndWQexBzCx+CPuMe5WBYQWCsFyGlQLlQ==} peerDependencies: typescript: '*' - '@typespec/ts-http-runtime@0.3.6': - resolution: {integrity: sha512-jIXhD0eWQ1JA6ln/5Dltyx22UxWNrw0hZmhy2rlv6m6KgF7kplHx3g0fzi09lNmTJQRR91OlemYp3xFnvDK9og==} - engines: {node: '>=20.0.0'} + '@typespec/ts-http-runtime@0.3.8': + resolution: {integrity: sha512-bLMpVcWZNzq6lYOybwFwOAR1IXKcHnhUNqYeHjl1bET/qE3jFPFH+p8Wrh3rU4xwdnifPxmKNESBYnvnmc75aA==} + engines: {node: '>=22.0.0'} - '@vitest/expect@4.1.6': - resolution: {integrity: sha512-7EHDquPthALSV0jhhjgEW8FXaviMx7rSqu8W6oqCoAuOhKov814P99QDV1pxMA3QPv21YudvJngIhjrNI4opLg==} + '@vitest/expect@4.1.10': + resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==} - '@vitest/mocker@4.1.6': - resolution: {integrity: sha512-MCFc63czMjEInOlcY2cpQCvCN+KgbAn+60xu9cMgP4sKaLC5JNAKw7JH8QdAnoAC88hW1IiSNZ+GgVXlN1UcMQ==} + '@vitest/mocker@4.1.10': + resolution: {integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -660,20 +643,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.6': - resolution: {integrity: sha512-h5SxD/IzNhZYnrSZRsUZQIC+vD0GY8cUvq0iwsmkFKixRCKLLWqCXa/FIQ4S1R+sI+PGoojkHsdNrbZiM9Qpgw==} + '@vitest/pretty-format@4.1.10': + resolution: {integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==} - '@vitest/runner@4.1.6': - resolution: {integrity: sha512-nOPCmn2+yD0ZNmKdsXGv/UxMMWbMuKeD6GyYncNwdkYDxpQvrPSKYj2rWuDjC2Y4b6w6hjip5dBKFzEUuZe3vA==} + '@vitest/runner@4.1.10': + resolution: {integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==} - '@vitest/snapshot@4.1.6': - resolution: {integrity: sha512-YhsdE6xAVfTDmzjxL2ZDUvjj+ZsgyOKe+TdQzqkD72wIOmHka8NuGQ6NpTNZv9D2Z63fbwWKJPeVpEw4EQgYxw==} + '@vitest/snapshot@4.1.10': + resolution: {integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==} - '@vitest/spy@4.1.6': - resolution: {integrity: sha512-JFKxMx6udhwKh/Ldo270e17QX710vgunMkuPAvXjHSvC6oqLWAHhVhjg/I71q0u0CBSErIODV1Kjv0FQNSWjdg==} + '@vitest/spy@4.1.10': + resolution: {integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==} - '@vitest/utils@4.1.6': - resolution: {integrity: sha512-FxIY+U81R3LGKCxaHHFRQ5+g6/iRgGLmeHWdp2Amj4ljQRrEIWHmZyDfDYBRZlpyqA7qKxtS9DD1dhk8RnRIVQ==} + '@vitest/utils@4.1.10': + resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==} abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} @@ -699,6 +682,9 @@ packages: resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} + anynum@1.0.1: + resolution: {integrity: sha512-N6//FLET/tXYNM/F6ABca1oH6fWB+KlTt909Le28WMDBk8oaT4vY17DCrwg2MvmuqUKt3Ni4N5dGJ/EoBgcO6A==} + archiver-utils@5.0.2: resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} engines: {node: '>= 14'} @@ -733,24 +719,20 @@ packages: bare-abort-controller: optional: true - bare-fs@4.7.2: - resolution: {integrity: sha512-aTvMFUWkBmjzKtEQMDGGDNF8bkfpD5N1b/FCwt7A3wrU4t1o/e/85Wzkluh6JlODCjqVESYCkQCdTXqZ9G7VFg==} - engines: {bare: '>=1.16.0'} + bare-fs@4.8.0: + resolution: {integrity: sha512-fM+MhCvdQhZ7NV6S95a07gPSqjIYKn6mFaXfx266wN3ajZGl/+1AzH+ubkXQ0fFZvOe2nk9VHkzdYkQE5zMV3Q==} + engines: {bare: '>=1.28.0'} peerDependencies: bare-buffer: '*' peerDependenciesMeta: bare-buffer: optional: true - bare-os@3.9.1: - resolution: {integrity: sha512-6M5XjcnsygQNPMCMPXSK379xrJFiZ/AEMNBmFEmQW8d/789VQATvriyi5r0HYTL9TkQ26rn3kgdTG3aisbrXkQ==} - engines: {bare: '>=1.14.0'} - - bare-path@3.0.1: - resolution: {integrity: sha512-ghj2DSK/2e99a1anTVPCV4m4YIYtrbXhfM7V3D7XZLOTsybnYyaJloymGqssQc8l/or0UoDyRtNQkmkEF/ysgQ==} + bare-path@3.1.1: + resolution: {integrity: sha512-JprUlveX3QjApC1cTpsUOiscADftCGVWkzitbHsRqv84hzYwYHw2mbluddsq5TvI8mH/8Ov1f4BiMAdcB0oYnQ==} - bare-stream@2.13.1: - resolution: {integrity: sha512-Vp0cnjYyrEC4whYTymQ+YZi6pBpfiICZO3cfRG8sy67ZNWe951urv1x4eW1BKNngw3U+3fPYb5JQvHbCtxH7Ow==} + bare-stream@2.13.3: + resolution: {integrity: sha512-Kc+brLqvEqGkjyfiwJmImAOqLZL7OsoLKuavx+hJjgVV3nLTOjloJyPMFxjUPerGGHrNH0fLU06jjykMLWrERQ==} peerDependencies: bare-abort-controller: '*' bare-buffer: '*' @@ -763,8 +745,8 @@ packages: bare-events: optional: true - bare-url@2.4.5: - resolution: {integrity: sha512-K+y9xF1tN+CdPu4qWwr0QiK1Al07eFPGYK5M2pDXcmHdMdgC/tT/bpmMe1hrmRHaidKLkXrC+cRNYf3XVDUhSQ==} + bare-url@2.4.7: + resolution: {integrity: sha512-o8CRCiJtib+ycO3mE4A5UChtGX4dDP2XxsWVu9P+Zc3H8tcmKwNVEDoDTXmwN+uuMhfKeT7/i7Y26xS8W7ohoA==} base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -778,8 +760,8 @@ packages: bottleneck@2.19.5: resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==} - brace-expansion@2.1.1: - resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} + brace-expansion@2.1.4: + resolution: {integrity: sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==} buffer-crc32@1.0.0: resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} @@ -858,8 +840,8 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - es-module-lexer@2.1.0: - resolution: {integrity: sha512-n27zTYMjYu1aj4MjCWzSP7G9r75utsaoc8m61weK+W8JMBGGQybd43GstCXZ3WNmSFtGT9wi59qQTW6mhTR5LQ==} + es-module-lexer@2.3.1: + resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==} estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -875,13 +857,10 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - expect-type@1.3.0: - resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} - fast-content-type-parse@3.0.0: - resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==} - fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} @@ -894,11 +873,11 @@ packages: fast-wrap-ansi@0.2.2: resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} - fast-xml-builder@1.2.0: - resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} + fast-xml-builder@1.3.0: + resolution: {integrity: sha512-F74cZEdCvuw9P41GAC3rod4X04jjWGM1JPEv/GWSqFTWLsdyMSBMBMlm9Hk3GLBgLBbdBNY8yee0pQh2RBVESQ==} - fast-xml-parser@5.8.0: - resolution: {integrity: sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg==} + fast-xml-parser@5.10.1: + resolution: {integrity: sha512-IEMIf7298kXuZSRFoGfMYrl7is8LpavODgbNz1cwIudv7KwVFnuU+UsMporfq6PD6aXSlawZlARiA3UywCTfMw==} hasBin: true fdir@6.5.0: @@ -914,8 +893,8 @@ packages: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - fs-fixture@2.13.0: - resolution: {integrity: sha512-bqL4EVFNgoA38OnztLfeHn4NZJ32zWnSNA3ALtessYO0WjpL//QuYl1YkYd7j+TY0cLO6cqgoHxPJpfSwKQAPA==} + fs-fixture@2.14.0: + resolution: {integrity: sha512-lZBaSOewY5snBSyOjn3fmo2ES5gOR7Q1Y6dILH0/xR0xejjUhux65OGaFWhQ+jiyvTi5HOHqXQrQ9v48Lsmqbw==} engines: {node: '>=18.0.0'} fsevents@2.3.3: @@ -939,10 +918,6 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - human-id@4.1.3: - resolution: {integrity: sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==} - hasBin: true - human-id@4.2.0: resolution: {integrity: sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==} hasBin: true @@ -964,6 +939,9 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} + is-unsafe@2.0.0: + resolution: {integrity: sha512-2LdV822R+wmI86unXA93WCFpL6g+av8ynWk0nrHyJqGop5VoocYsSLFgN8jrfalT6iGeLNM4KXuVSsULP53kEA==} + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -976,8 +954,8 @@ packages: jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} - json-with-bigint@3.5.8: - resolution: {integrity: sha512-eq/4KP6K34kwa7TcFdtvnftvHCD9KvHOGGICWwMFc4dOOKF5t4iYqnfLK8otCRCRv06FXOzGGyqE8h8ElMvvdw==} + json-with-bigint@3.5.10: + resolution: {integrity: sha512-Vcx+JVNEBts/xfcoCS69sKrOhOk/3TVlvlT+XzUOefVKnnrbYSCKpDCm10pohsJFtsJVYnwa/cXRZ4eElzaM6w==} jsonc-parser@3.3.1: resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} @@ -1031,22 +1009,31 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - obug@2.1.1: - resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + obug@2.1.4: + resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} + engines: {node: '>=12.20.0'} - oxfmt@0.48.0: - resolution: {integrity: sha512-AVaLh+7XeGx+R1zfFV+f6VV61nT2MWVJXVUDhbTm5LBWGyNt64xAyh3NYYyjeY2WykNt9AvqSQLPHcbWquYF9g==} + oxfmt@0.61.0: + resolution: {integrity: sha512-DxdHBEMYpcEnHoUHjjOigUqV2TYKsvxLwUPXnVYBjgFdqrcQ/91OtwubtZ2PUodCs3sStI8R5Qw3fKNGK4e8wQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + peerDependencies: + svelte: ^5.0.0 + vite-plus: '*' + peerDependenciesMeta: + svelte: + optional: true + vite-plus: + optional: true package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-manager-detector@1.6.0: - resolution: {integrity: sha512-61A5ThoTiDG/C8s8UMZwSorAGwMJ0ERVGj2OjoW5pAalsNOg15+iQiPzrLJ4jhZ1HJzmC2PIHT2oEiH3R5fzNA==} + package-manager-detector@1.8.0: + resolution: {integrity: sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==} - path-expression-matcher@1.5.0: - resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} + path-expression-matcher@1.6.2: + resolution: {integrity: sha512-enSlaiat05iasnzmgNxRj8reFdj3puY2QpNgP1aPIaVfT6nn9ICuPoFlKHk8EN22HcwewshO+mN2DGbkCEOtqQ==} engines: {node: '>=14.0.0'} path-key@3.1.1: @@ -1063,8 +1050,8 @@ packages: picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - picomatch@4.0.4: - resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + picomatch@4.0.5: + resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} process-nextick-args@2.0.1: @@ -1084,8 +1071,8 @@ packages: readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - rolldown@1.0.1: - resolution: {integrity: sha512-X0KQHljNnEkWNqqiz9zJrGunh1B0HgOxLXvnFpCOcadzcy5qohZ3tqMEUg00vncoRovXuK3ZqCT9KnnKzoInFQ==} + rolldown@1.2.2: + resolution: {integrity: sha512-opwpo1tQBAcpSUJDt94B7hhLNGOKjCdE//XXjeLrnx9b83bjnw45tXdg1b09yEw/VLFBJGZpwRULMmOZo7ol+A==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -1095,8 +1082,8 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - semver@7.8.1: - resolution: {integrity: sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg==} + semver@7.8.5: + resolution: {integrity: sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==} engines: {node: '>=10'} hasBin: true @@ -1108,8 +1095,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.8.4: - resolution: {integrity: sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==} + shell-quote@1.10.0: + resolution: {integrity: sha512-w1aiOKwKuRgtwAReIIj89puqg+I7GvX4IbLrvmhXbzQsj1+Zwi4VO3+fa6ZF91TWSjIxoEkKnMeHcLEODK5ZXA==} engines: {node: '>= 0.4'} siginfo@2.0.0: @@ -1125,11 +1112,11 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - std-env@4.1.0: - resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} + std-env@4.2.0: + resolution: {integrity: sha512-oCUKSupKTHX53EyjDtuZQ64pjLJ6yYCtpmEw0goYxtjG9KpbRe8KAsl2tBUGU9DyMcJ0RwJ8GqJAFzMXcXW1Rw==} - streamx@2.27.0: - resolution: {integrity: sha512-WZ189TKnHoAokYHvwzaAQMpd55cgUmFIcJFzBSgGcb886jau5DL+XdDhTWV4ps3FLvk+OORp0dLRTPsLZ21CSA==} + streamx@2.28.0: + resolution: {integrity: sha512-1Yowhzjf0ivGMrTIkY9hav5TxobO9qIVqUE41fiCGMGgc3CLlf4MY+9AHmZqBWgDTue0fY9zWjYFVyf6Diuobw==} string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} @@ -1153,8 +1140,8 @@ packages: resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==} engines: {node: '>=12'} - strnum@2.3.0: - resolution: {integrity: sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==} + strnum@2.4.1: + resolution: {integrity: sha512-M9eUSMT2dCB2cTNPG7UYj6KuK7RJR2SN2+yCV/fTW3xzTCS6EaGZ5pSMgDIjB7r8zSfTGk+dvvn9rTjpVS9Mwg==} tar-stream@3.2.0: resolution: {integrity: sha512-ojzvCvVaNp6aOTFmG7jaRD0meowIAuPc3cMMhSgKiVWws1GyHbGd/xvnyuRKcKlMpt3qvxx6r0hreCNITP9hIg==} @@ -1168,10 +1155,6 @@ packages: tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - tinyexec@1.2.4: - resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} - engines: {node: '>=18'} - tinyexec@1.3.0: resolution: {integrity: sha512-QKAl9m8gWWGHV8jZcPeym6j+XULi6tOf1mT83WYJ4Lk2ytW/uwAWkrP0uFsdoYMdueVJ0qs26wZ+23xeB4ibNQ==} engines: {node: '>=18'} @@ -1184,8 +1167,8 @@ packages: resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} engines: {node: ^20.0.0 || >=22.0.0} - tinyrainbow@3.1.0: - resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} + tinyrainbow@3.1.1: + resolution: {integrity: sha512-yau8yJdTt989Mm0Bd/236QnzEiPf2xLLTqUZRUJOo/3CB078LSwzei343DgtJVmfJKJE3TMINY1u42SQsP6mXw==} engines: {node: '>=14.0.0'} traverse@0.3.9: @@ -1213,11 +1196,11 @@ packages: engines: {node: '>=14.17'} hasBin: true - undici-types@7.16.0: - resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==} + undici-types@8.3.0: + resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} - undici@6.25.0: - resolution: {integrity: sha512-ZgpWDC5gmNiuY9CnLVXEH8rl50xhRCuLNA97fAUnKi8RRuV4E6KG31pDTsLVUKnohJE0I3XDrTeEydAXRw47xg==} + undici@6.28.0: + resolution: {integrity: sha512-LIY910g9TI13YS95lrMFrs8Rm/u/irgHeTWoKCoteeJ04CUJ92eEfj0rVn+7VKMPBpUPiUoBKfhNyLI23EE/KA==} engines: {node: '>=18.17'} universal-user-agent@7.0.3: @@ -1229,13 +1212,13 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - vite@8.0.13: - resolution: {integrity: sha512-MFtjBYgzmSxmgA4RAfjIyXWpGe1oALnjgUTzzV7QLx/TKxCzjtMH6Fd9/eVK+5Fg1qNoz5VAwsmMs/NofrmJvw==} + vite@8.2.0: + resolution: {integrity: sha512-pn+CFpM0lwDeKwmOq1ZaBK/9sjorZcgqxki6MbY/jPEVd9vichIlmlD4HmQ5wdP5EgqQCFRaACBxMC7uEGc6lQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.1.18 + '@vitejs/devtools': ^0.4.0 esbuild: ^0.27.0 || ^0.28.0 jiti: '>=1.21.0' less: ^4.0.0 @@ -1272,20 +1255,20 @@ packages: yaml: optional: true - vitest@4.1.6: - resolution: {integrity: sha512-6lvjbS3p9b4CrdCmguzbh2/4uoXhGE2q71R4OX5sqF9R1bo9Xd6fGrMAfvp5wnCzlBnFVdCOp6onuTQVbo8iUQ==} + vitest@4.1.10: + resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.6 - '@vitest/browser-preview': 4.1.6 - '@vitest/browser-webdriverio': 4.1.6 - '@vitest/coverage-istanbul': 4.1.6 - '@vitest/coverage-v8': 4.1.6 - '@vitest/ui': 4.1.6 + '@vitest/browser-playwright': 4.1.10 + '@vitest/browser-preview': 4.1.10 + '@vitest/browser-webdriverio': 4.1.10 + '@vitest/coverage-istanbul': 4.1.10 + '@vitest/coverage-v8': 4.1.10 + '@vitest/ui': 4.1.10 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1331,8 +1314,8 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} - xml-naming@0.1.0: - resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} + xml-naming@0.3.0: + resolution: {integrity: sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ==} engines: {node: '>=16.0.0'} yaml@2.9.0: @@ -1351,12 +1334,12 @@ snapshots: '@actions/core': 3.0.1 '@actions/github': 9.1.1 '@actions/http-client': 4.0.1 - '@azure/storage-blob': 12.32.0 - '@octokit/core': 7.0.6 - '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.6) - '@octokit/plugin-retry': 8.1.0(@octokit/core@7.0.6) - '@octokit/request': 10.0.9 - '@octokit/request-error': 7.1.0 + '@azure/storage-blob': 12.33.0 + '@octokit/core': 7.0.7 + '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.7) + '@octokit/plugin-retry': 8.1.1(@octokit/core@7.0.7) + '@octokit/request': 10.0.13 + '@octokit/request-error': 7.1.1 '@protobuf-ts/plugin': 2.11.1 '@protobuf-ts/runtime': 2.11.1 archiver: 7.0.1 @@ -1380,272 +1363,272 @@ snapshots: '@actions/github@9.1.1': dependencies: '@actions/http-client': 3.0.2 - '@octokit/core': 7.0.6 - '@octokit/plugin-paginate-rest': 14.0.0(@octokit/core@7.0.6) - '@octokit/plugin-rest-endpoint-methods': 17.0.0(@octokit/core@7.0.6) - '@octokit/request': 10.0.9 - '@octokit/request-error': 7.1.0 - undici: 6.25.0 + '@octokit/core': 7.0.7 + '@octokit/plugin-paginate-rest': 14.0.0(@octokit/core@7.0.7) + '@octokit/plugin-rest-endpoint-methods': 17.0.0(@octokit/core@7.0.7) + '@octokit/request': 10.0.13 + '@octokit/request-error': 7.1.1 + undici: 6.28.0 '@actions/http-client@3.0.2': dependencies: tunnel: 0.0.6 - undici: 6.25.0 + undici: 6.28.0 '@actions/http-client@4.0.1': dependencies: tunnel: 0.0.6 - undici: 6.25.0 + undici: 6.28.0 '@actions/io@3.0.2': {} - '@azure/abort-controller@2.1.2': + '@azure/abort-controller@2.2.0': dependencies: tslib: 2.8.1 - '@azure/core-auth@1.10.1': + '@azure/core-auth@1.11.0': dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.13.1 + '@azure/abort-controller': 2.2.0 + '@azure/core-util': 1.14.0 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/core-client@1.10.2': + '@azure/core-client@1.11.0': dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.10.1 - '@azure/core-rest-pipeline': 1.24.0 - '@azure/core-tracing': 1.3.1 - '@azure/core-util': 1.13.1 - '@azure/logger': 1.3.0 + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-rest-pipeline': 1.25.0 + '@azure/core-tracing': 1.4.0 + '@azure/core-util': 1.14.0 + '@azure/logger': 1.4.0 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/core-http-compat@2.4.0(@azure/core-client@1.10.2)(@azure/core-rest-pipeline@1.24.0)': + '@azure/core-http-compat@2.5.0(@azure/core-client@1.11.0)(@azure/core-rest-pipeline@1.25.0)': dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-client': 1.10.2 - '@azure/core-rest-pipeline': 1.24.0 + '@azure/abort-controller': 2.2.0 + '@azure/core-client': 1.11.0 + '@azure/core-rest-pipeline': 1.25.0 '@azure/core-lro@2.7.2': dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-util': 1.13.1 - '@azure/logger': 1.3.0 + '@azure/abort-controller': 2.2.0 + '@azure/core-util': 1.14.0 + '@azure/logger': 1.4.0 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/core-paging@1.6.2': + '@azure/core-paging@1.7.0': dependencies: tslib: 2.8.1 - '@azure/core-rest-pipeline@1.24.0': + '@azure/core-rest-pipeline@1.25.0': dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.10.1 - '@azure/core-tracing': 1.3.1 - '@azure/core-util': 1.13.1 - '@azure/logger': 1.3.0 - '@typespec/ts-http-runtime': 0.3.6 + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-tracing': 1.4.0 + '@azure/core-util': 1.14.0 + '@azure/logger': 1.4.0 + '@typespec/ts-http-runtime': 0.3.8 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/core-tracing@1.3.1': + '@azure/core-tracing@1.4.0': dependencies: tslib: 2.8.1 - '@azure/core-util@1.13.1': + '@azure/core-util@1.14.0': dependencies: - '@azure/abort-controller': 2.1.2 - '@typespec/ts-http-runtime': 0.3.6 + '@azure/abort-controller': 2.2.0 + '@typespec/ts-http-runtime': 0.3.8 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/core-xml@1.5.1': + '@azure/core-xml@1.6.0': dependencies: - fast-xml-parser: 5.8.0 + fast-xml-parser: 5.10.1 tslib: 2.8.1 - '@azure/logger@1.3.0': + '@azure/logger@1.4.0': dependencies: - '@typespec/ts-http-runtime': 0.3.6 + '@typespec/ts-http-runtime': 0.3.8 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/storage-blob@12.32.0': + '@azure/storage-blob@12.33.0': dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.10.1 - '@azure/core-client': 1.10.2 - '@azure/core-http-compat': 2.4.0(@azure/core-client@1.10.2)(@azure/core-rest-pipeline@1.24.0) + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-client': 1.11.0 + '@azure/core-http-compat': 2.5.0(@azure/core-client@1.11.0)(@azure/core-rest-pipeline@1.25.0) '@azure/core-lro': 2.7.2 - '@azure/core-paging': 1.6.2 - '@azure/core-rest-pipeline': 1.24.0 - '@azure/core-tracing': 1.3.1 - '@azure/core-util': 1.13.1 - '@azure/core-xml': 1.5.1 - '@azure/logger': 1.3.0 - '@azure/storage-common': 12.4.0(@azure/core-client@1.10.2) + '@azure/core-paging': 1.7.0 + '@azure/core-rest-pipeline': 1.25.0 + '@azure/core-tracing': 1.4.0 + '@azure/core-util': 1.14.0 + '@azure/core-xml': 1.6.0 + '@azure/logger': 1.4.0 + '@azure/storage-common': 12.5.0(@azure/core-client@1.11.0) events: 3.3.0 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/storage-common@12.4.0(@azure/core-client@1.10.2)': + '@azure/storage-common@12.5.0(@azure/core-client@1.11.0)': dependencies: - '@azure/abort-controller': 2.1.2 - '@azure/core-auth': 1.10.1 - '@azure/core-http-compat': 2.4.0(@azure/core-client@1.10.2)(@azure/core-rest-pipeline@1.24.0) - '@azure/core-rest-pipeline': 1.24.0 - '@azure/core-tracing': 1.3.1 - '@azure/core-util': 1.13.1 - '@azure/logger': 1.3.0 + '@azure/abort-controller': 2.2.0 + '@azure/core-auth': 1.11.0 + '@azure/core-http-compat': 2.5.0(@azure/core-client@1.11.0)(@azure/core-rest-pipeline@1.25.0) + '@azure/core-rest-pipeline': 1.25.0 + '@azure/core-tracing': 1.4.0 + '@azure/core-util': 1.14.0 + '@azure/logger': 1.4.0 events: 3.3.0 tslib: 2.8.1 transitivePeerDependencies: - '@azure/core-client' - supports-color - '@bufbuild/protobuf@2.12.0': {} + '@bufbuild/protobuf@2.13.0': {} - '@bufbuild/protoplugin@2.12.0': + '@bufbuild/protoplugin@2.13.0': dependencies: - '@bufbuild/protobuf': 2.12.0 + '@bufbuild/protobuf': 2.13.0 '@typescript/vfs': 1.6.4(typescript@5.4.5) typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@changesets/apply-release-plan@8.0.0-next.11': + '@changesets/apply-release-plan@8.0.0': dependencies: - '@changesets/config': 4.0.0-next.10 + '@changesets/config': 4.0.0 '@changesets/format': 0.1.1 - '@changesets/git': 4.0.0-next.9 - '@changesets/should-skip-package': 1.0.0-next.9 - '@changesets/types': 7.0.0-next.9 + '@changesets/git': 4.0.0 + '@changesets/should-skip-package': 1.0.0 + '@changesets/types': 7.0.0 import-meta-resolve: 4.2.0 jsonc-parser: 3.3.1 - semver: 7.8.1 + semver: 7.8.5 - '@changesets/assemble-release-plan@7.0.0-next.11': + '@changesets/assemble-release-plan@7.0.0': dependencies: - '@changesets/errors': 1.0.0-next.4 - '@changesets/get-dependents-graph': 3.0.0-next.9 - '@changesets/should-skip-package': 1.0.0-next.9 - '@changesets/types': 7.0.0-next.9 - semver: 7.8.1 + '@changesets/errors': 1.0.0 + '@changesets/get-dependents-graph': 3.0.0 + '@changesets/should-skip-package': 1.0.0 + '@changesets/types': 7.0.0 + semver: 7.8.5 - '@changesets/changelog-git@1.0.0-next.9': + '@changesets/changelog-git@1.0.0': dependencies: - '@changesets/types': 7.0.0-next.9 + '@changesets/types': 7.0.0 - '@changesets/changelog-github@1.0.0-next.9': + '@changesets/changelog-github@1.0.0': dependencies: - '@changesets/get-github-info': 1.0.0-next.4 - '@changesets/types': 7.0.0-next.9 + '@changesets/get-github-info': 1.0.0 + '@changesets/types': 7.0.0 - '@changesets/cli@3.0.0-next.12': + '@changesets/cli@3.0.0': dependencies: - '@changesets/apply-release-plan': 8.0.0-next.11 - '@changesets/assemble-release-plan': 7.0.0-next.11 - '@changesets/changelog-git': 1.0.0-next.9 - '@changesets/config': 4.0.0-next.10 - '@changesets/errors': 1.0.0-next.4 - '@changesets/get-dependents-graph': 3.0.0-next.9 - '@changesets/git': 4.0.0-next.9 - '@changesets/pre': 3.0.0-next.9 - '@changesets/read': 1.0.0-next.10 - '@changesets/should-skip-package': 1.0.0-next.9 - '@changesets/types': 7.0.0-next.9 - '@changesets/write': 1.0.0-next.9 + '@changesets/apply-release-plan': 8.0.0 + '@changesets/assemble-release-plan': 7.0.0 + '@changesets/changelog-git': 1.0.0 + '@changesets/config': 4.0.0 + '@changesets/errors': 1.0.0 + '@changesets/get-dependents-graph': 3.0.0 + '@changesets/git': 4.0.0 + '@changesets/pre': 3.0.0 + '@changesets/read': 1.0.0 + '@changesets/should-skip-package': 1.0.0 + '@changesets/types': 7.0.0 + '@changesets/write': 1.0.0 '@clack/prompts': 1.7.0 '@manypkg/get-packages': 3.1.0 '@pnpm/deps.graph-sequencer': 1100.0.1 cac: 7.0.0 import-meta-resolve: 4.2.0 launch-editor: 2.14.1 - package-manager-detector: 1.6.0 - semver: 7.8.1 + package-manager-detector: 1.8.0 + semver: 7.8.5 tinyexec: 1.3.0 - '@changesets/config@4.0.0-next.10': + '@changesets/config@4.0.0': dependencies: - '@changesets/get-dependents-graph': 3.0.0-next.9 - '@changesets/should-skip-package': 1.0.0-next.9 - '@changesets/types': 7.0.0-next.9 + '@changesets/get-dependents-graph': 3.0.0 + '@changesets/should-skip-package': 1.0.0 + '@changesets/types': 7.0.0 '@manypkg/get-packages': 3.1.0 - picomatch: 4.0.4 + picomatch: 4.0.5 - '@changesets/errors@1.0.0-next.4': {} + '@changesets/errors@1.0.0': {} '@changesets/format@0.1.1': dependencies: - package-manager-detector: 1.6.0 - tinyexec: 1.2.4 + package-manager-detector: 1.8.0 + tinyexec: 1.3.0 - '@changesets/get-dependents-graph@3.0.0-next.9': + '@changesets/get-dependents-graph@3.0.0': dependencies: - '@changesets/types': 7.0.0-next.9 - semver: 7.8.1 + '@changesets/types': 7.0.0 + semver: 7.8.5 - '@changesets/get-github-info@1.0.0-next.4': + '@changesets/get-github-info@1.0.0': dependencies: dataloader: 2.2.3 - '@changesets/get-release-plan@5.0.0-next.11': + '@changesets/get-release-plan@5.0.0': dependencies: - '@changesets/assemble-release-plan': 7.0.0-next.11 - '@changesets/config': 4.0.0-next.10 - '@changesets/pre': 3.0.0-next.9 - '@changesets/read': 1.0.0-next.10 - '@changesets/types': 7.0.0-next.9 + '@changesets/assemble-release-plan': 7.0.0 + '@changesets/config': 4.0.0 + '@changesets/pre': 3.0.0 + '@changesets/read': 1.0.0 + '@changesets/types': 7.0.0 '@manypkg/get-packages': 3.1.0 '@changesets/ghcommit@3.0.0': dependencies: - tinyexec: 1.2.4 + tinyexec: 1.3.0 - '@changesets/git@4.0.0-next.9': + '@changesets/git@4.0.0': dependencies: - '@changesets/errors': 1.0.0-next.4 - '@changesets/types': 7.0.0-next.9 + '@changesets/errors': 1.0.0 + '@changesets/types': 7.0.0 '@manypkg/get-packages': 3.1.0 - picomatch: 4.0.4 - tinyexec: 1.2.4 + picomatch: 4.0.5 + tinyexec: 1.3.0 - '@changesets/parse@1.0.0-next.10': + '@changesets/parse@1.0.0': dependencies: - '@changesets/types': 7.0.0-next.9 + '@changesets/types': 7.0.0 yaml: 2.9.0 - '@changesets/pre@3.0.0-next.9': + '@changesets/pre@3.0.0': dependencies: - '@changesets/errors': 1.0.0-next.4 - '@changesets/types': 7.0.0-next.9 + '@changesets/errors': 1.0.0 + '@changesets/types': 7.0.0 '@manypkg/get-packages': 3.1.0 - '@changesets/read@1.0.0-next.10': + '@changesets/read@1.0.0': dependencies: - '@changesets/git': 4.0.0-next.9 - '@changesets/parse': 1.0.0-next.10 - '@changesets/types': 7.0.0-next.9 + '@changesets/git': 4.0.0 + '@changesets/parse': 1.0.0 + '@changesets/types': 7.0.0 - '@changesets/should-skip-package@1.0.0-next.9': + '@changesets/should-skip-package@1.0.0': dependencies: - '@changesets/types': 7.0.0-next.9 + '@changesets/types': 7.0.0 - '@changesets/types@7.0.0-next.9': {} + '@changesets/types@7.0.0': {} - '@changesets/write@1.0.0-next.9': + '@changesets/write@1.0.0': dependencies: '@changesets/format': 0.1.1 - '@changesets/types': 7.0.0-next.9 + '@changesets/types': 7.0.0 human-id: 4.2.0 '@clack/core@1.4.3': @@ -1660,22 +1643,6 @@ snapshots: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 - '@emnapi/core@1.10.0': - dependencies: - '@emnapi/wasi-threads': 1.2.1 - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.10.0': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/wasi-threads@1.2.1': - dependencies: - tslib: 2.8.1 - optional: true - '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -1702,142 +1669,140 @@ snapshots: tinyglobby: 0.2.17 yaml: 2.9.0 - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.2 - optional: true - - '@nodable/entities@2.1.1': {} + '@nodable/entities@3.0.0': {} '@octokit/auth-token@6.0.0': {} - '@octokit/core@7.0.6': + '@octokit/core@7.0.7': dependencies: '@octokit/auth-token': 6.0.0 - '@octokit/graphql': 9.0.3 - '@octokit/request': 10.0.9 - '@octokit/request-error': 7.1.0 - '@octokit/types': 16.0.0 + '@octokit/graphql': 9.0.4 + '@octokit/request': 10.0.13 + '@octokit/request-error': 7.1.1 + '@octokit/types': 17.0.0 before-after-hook: 4.0.0 universal-user-agent: 7.0.3 - '@octokit/endpoint@11.0.3': + '@octokit/endpoint@11.0.4': dependencies: - '@octokit/types': 16.0.0 + '@octokit/types': 17.0.0 universal-user-agent: 7.0.3 - '@octokit/graphql@9.0.3': + '@octokit/graphql@9.0.4': dependencies: - '@octokit/request': 10.0.9 - '@octokit/types': 16.0.0 + '@octokit/request': 10.0.13 + '@octokit/types': 17.0.0 universal-user-agent: 7.0.3 '@octokit/openapi-types@27.0.0': {} - '@octokit/plugin-paginate-rest@14.0.0(@octokit/core@7.0.6)': + '@octokit/openapi-types@28.0.0': {} + + '@octokit/plugin-paginate-rest@14.0.0(@octokit/core@7.0.7)': dependencies: - '@octokit/core': 7.0.6 + '@octokit/core': 7.0.7 '@octokit/types': 16.0.0 - '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.6)': + '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.7)': dependencies: - '@octokit/core': 7.0.6 + '@octokit/core': 7.0.7 - '@octokit/plugin-rest-endpoint-methods@17.0.0(@octokit/core@7.0.6)': + '@octokit/plugin-rest-endpoint-methods@17.0.0(@octokit/core@7.0.7)': dependencies: - '@octokit/core': 7.0.6 + '@octokit/core': 7.0.7 '@octokit/types': 16.0.0 - '@octokit/plugin-retry@8.1.0(@octokit/core@7.0.6)': + '@octokit/plugin-retry@8.1.1(@octokit/core@7.0.7)': dependencies: - '@octokit/core': 7.0.6 - '@octokit/request-error': 7.1.0 - '@octokit/types': 16.0.0 + '@octokit/core': 7.0.7 + '@octokit/request-error': 7.1.1 + '@octokit/types': 17.0.0 bottleneck: 2.19.5 - '@octokit/plugin-throttling@11.0.3(@octokit/core@7.0.6)': + '@octokit/plugin-throttling@11.0.5(@octokit/core@7.0.7)': dependencies: - '@octokit/core': 7.0.6 - '@octokit/types': 16.0.0 + '@octokit/core': 7.0.7 + '@octokit/types': 17.0.0 bottleneck: 2.19.5 - '@octokit/request-error@7.1.0': + '@octokit/request-error@7.1.1': dependencies: - '@octokit/types': 16.0.0 + '@octokit/types': 17.0.0 - '@octokit/request@10.0.9': + '@octokit/request@10.0.13': dependencies: - '@octokit/endpoint': 11.0.3 - '@octokit/request-error': 7.1.0 - '@octokit/types': 16.0.0 + '@octokit/endpoint': 11.0.4 + '@octokit/request-error': 7.1.1 + '@octokit/types': 17.0.0 content-type: 2.0.0 - fast-content-type-parse: 3.0.0 - json-with-bigint: 3.5.8 + json-with-bigint: 3.5.10 universal-user-agent: 7.0.3 '@octokit/types@16.0.0': dependencies: '@octokit/openapi-types': 27.0.0 - '@oxc-project/types@0.130.0': {} + '@octokit/types@17.0.0': + dependencies: + '@octokit/openapi-types': 28.0.0 + + '@oxc-project/types@0.142.0': {} - '@oxfmt/binding-android-arm-eabi@0.48.0': + '@oxfmt/binding-android-arm-eabi@0.61.0': optional: true - '@oxfmt/binding-android-arm64@0.48.0': + '@oxfmt/binding-android-arm64@0.61.0': optional: true - '@oxfmt/binding-darwin-arm64@0.48.0': + '@oxfmt/binding-darwin-arm64@0.61.0': optional: true - '@oxfmt/binding-darwin-x64@0.48.0': + '@oxfmt/binding-darwin-x64@0.61.0': optional: true - '@oxfmt/binding-freebsd-x64@0.48.0': + '@oxfmt/binding-freebsd-x64@0.61.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.48.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.61.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.48.0': + '@oxfmt/binding-linux-arm-musleabihf@0.61.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.48.0': + '@oxfmt/binding-linux-arm64-gnu@0.61.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.48.0': + '@oxfmt/binding-linux-arm64-musl@0.61.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.48.0': + '@oxfmt/binding-linux-ppc64-gnu@0.61.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.48.0': + '@oxfmt/binding-linux-riscv64-gnu@0.61.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.48.0': + '@oxfmt/binding-linux-riscv64-musl@0.61.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.48.0': + '@oxfmt/binding-linux-s390x-gnu@0.61.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.48.0': + '@oxfmt/binding-linux-x64-gnu@0.61.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.48.0': + '@oxfmt/binding-linux-x64-musl@0.61.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.48.0': + '@oxfmt/binding-openharmony-arm64@0.61.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.48.0': + '@oxfmt/binding-win32-arm64-msvc@0.61.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.48.0': + '@oxfmt/binding-win32-ia32-msvc@0.61.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.48.0': + '@oxfmt/binding-win32-x64-msvc@0.61.0': optional: true '@pkgjs/parseargs@0.11.0': @@ -1847,8 +1812,8 @@ snapshots: '@protobuf-ts/plugin@2.11.1': dependencies: - '@bufbuild/protobuf': 2.12.0 - '@bufbuild/protoplugin': 2.12.0 + '@bufbuild/protobuf': 2.13.0 + '@bufbuild/protoplugin': 2.13.0 '@protobuf-ts/protoc': 2.11.1 '@protobuf-ts/runtime': 2.11.1 '@protobuf-ts/runtime-rpc': 2.11.1 @@ -1864,53 +1829,46 @@ snapshots: '@protobuf-ts/runtime@2.11.1': {} - '@rolldown/binding-android-arm64@1.0.1': + '@rolldown/binding-android-arm64@1.2.2': optional: true - '@rolldown/binding-darwin-arm64@1.0.1': + '@rolldown/binding-darwin-arm64@1.2.2': optional: true - '@rolldown/binding-darwin-x64@1.0.1': + '@rolldown/binding-darwin-x64@1.2.2': optional: true - '@rolldown/binding-freebsd-x64@1.0.1': + '@rolldown/binding-freebsd-x64@1.2.2': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.0.1': + '@rolldown/binding-linux-arm-gnueabihf@1.2.2': optional: true - '@rolldown/binding-linux-arm64-gnu@1.0.1': + '@rolldown/binding-linux-arm64-gnu@1.2.2': optional: true - '@rolldown/binding-linux-arm64-musl@1.0.1': + '@rolldown/binding-linux-arm64-musl@1.2.2': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.0.1': + '@rolldown/binding-linux-ppc64-gnu@1.2.2': optional: true - '@rolldown/binding-linux-s390x-gnu@1.0.1': + '@rolldown/binding-linux-s390x-gnu@1.2.2': optional: true - '@rolldown/binding-linux-x64-gnu@1.0.1': + '@rolldown/binding-linux-x64-gnu@1.2.2': optional: true - '@rolldown/binding-linux-x64-musl@1.0.1': + '@rolldown/binding-linux-x64-musl@1.2.2': optional: true - '@rolldown/binding-openharmony-arm64@1.0.1': + '@rolldown/binding-openharmony-arm64@1.2.2': optional: true - '@rolldown/binding-wasm32-wasi@1.0.1': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@rolldown/binding-win32-arm64-msvc@1.2.2': optional: true - '@rolldown/binding-win32-arm64-msvc@1.0.1': - optional: true - - '@rolldown/binding-win32-x64-msvc@1.0.1': + '@rolldown/binding-win32-x64-msvc@1.2.2': optional: true '@rolldown/pluginutils@1.0.1': {} @@ -1919,11 +1877,6 @@ snapshots: '@tsconfig/node24@24.0.4': {} - '@tybys/wasm-util@0.10.2': - dependencies: - tslib: 2.8.1 - optional: true - '@types/chai@5.2.3': dependencies: '@types/deep-eql': 4.0.2 @@ -1933,11 +1886,11 @@ snapshots: '@types/estree@1.0.9': {} - '@types/node@24.12.4': + '@types/node@26.1.2': dependencies: - undici-types: 7.16.0 + undici-types: 8.3.0 - '@types/semver@7.7.1': {} + '@types/semver@7.8.0': {} '@typescript/vfs@1.6.4(typescript@5.4.5)': dependencies: @@ -1946,7 +1899,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@typespec/ts-http-runtime@0.3.6': + '@typespec/ts-http-runtime@0.3.8': dependencies: http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -1954,46 +1907,46 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/expect@4.1.6': + '@vitest/expect@4.1.10': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.6 - '@vitest/utils': 4.1.6 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 chai: 6.2.2 - tinyrainbow: 3.1.0 + tinyrainbow: 3.1.1 - '@vitest/mocker@4.1.6(vite@8.0.13)': + '@vitest/mocker@4.1.10(vite@8.2.0)': dependencies: - '@vitest/spy': 4.1.6 + '@vitest/spy': 4.1.10 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.0.13(@types/node@24.12.4)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.1.2)(yaml@2.9.0) - '@vitest/pretty-format@4.1.6': + '@vitest/pretty-format@4.1.10': dependencies: - tinyrainbow: 3.1.0 + tinyrainbow: 3.1.1 - '@vitest/runner@4.1.6': + '@vitest/runner@4.1.10': dependencies: - '@vitest/utils': 4.1.6 + '@vitest/utils': 4.1.10 pathe: 2.0.3 - '@vitest/snapshot@4.1.6': + '@vitest/snapshot@4.1.10': dependencies: - '@vitest/pretty-format': 4.1.6 - '@vitest/utils': 4.1.6 + '@vitest/pretty-format': 4.1.10 + '@vitest/utils': 4.1.10 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.6': {} + '@vitest/spy@4.1.10': {} - '@vitest/utils@4.1.6': + '@vitest/utils@4.1.10': dependencies: - '@vitest/pretty-format': 4.1.6 + '@vitest/pretty-format': 4.1.10 convert-source-map: 2.0.0 - tinyrainbow: 3.1.0 + tinyrainbow: 3.1.1 abort-controller@3.0.0: dependencies: @@ -2011,6 +1964,8 @@ snapshots: ansi-styles@6.2.3: {} + anynum@1.0.1: {} + archiver-utils@5.0.2: dependencies: glob: 10.5.0 @@ -2045,35 +2000,32 @@ snapshots: bare-events@2.9.1: {} - bare-fs@4.7.2: + bare-fs@4.8.0: dependencies: bare-events: 2.9.1 - bare-path: 3.0.1 - bare-stream: 2.13.1(bare-events@2.9.1) - bare-url: 2.4.5 + bare-path: 3.1.1 + bare-stream: 2.13.3(bare-events@2.9.1) + bare-url: 2.4.7 fast-fifo: 1.3.2 transitivePeerDependencies: - bare-abort-controller - react-native-b4a - bare-os@3.9.1: {} - - bare-path@3.0.1: - dependencies: - bare-os: 3.9.1 + bare-path@3.1.1: {} - bare-stream@2.13.1(bare-events@2.9.1): + bare-stream@2.13.3(bare-events@2.9.1): dependencies: - streamx: 2.27.0 + b4a: 1.8.1 + streamx: 2.28.0 teex: 1.0.1 optionalDependencies: bare-events: 2.9.1 transitivePeerDependencies: - react-native-b4a - bare-url@2.4.5: + bare-url@2.4.7: dependencies: - bare-path: 3.0.1 + bare-path: 3.1.1 base64-js@1.5.1: {} @@ -2086,7 +2038,7 @@ snapshots: bottleneck@2.19.5: {} - brace-expansion@2.1.1: + brace-expansion@2.1.4: dependencies: balanced-match: 1.0.2 @@ -2152,7 +2104,7 @@ snapshots: emoji-regex@9.2.2: {} - es-module-lexer@2.1.0: {} + es-module-lexer@2.3.1: {} estree-walker@3.0.3: dependencies: @@ -2168,9 +2120,7 @@ snapshots: events@3.3.0: {} - expect-type@1.3.0: {} - - fast-content-type-parse@3.0.0: {} + expect-type@1.4.0: {} fast-fifo@1.3.2: {} @@ -2184,29 +2134,30 @@ snapshots: dependencies: fast-string-width: 3.0.2 - fast-xml-builder@1.2.0: + fast-xml-builder@1.3.0: dependencies: - path-expression-matcher: 1.5.0 - xml-naming: 0.1.0 + path-expression-matcher: 1.6.2 + xml-naming: 0.3.0 - fast-xml-parser@5.8.0: + fast-xml-parser@5.10.1: dependencies: - '@nodable/entities': 2.1.1 - fast-xml-builder: 1.2.0 - path-expression-matcher: 1.5.0 - strnum: 2.3.0 - xml-naming: 0.1.0 + '@nodable/entities': 3.0.0 + fast-xml-builder: 1.3.0 + is-unsafe: 2.0.0 + path-expression-matcher: 1.6.2 + strnum: 2.4.1 + xml-naming: 0.3.0 - fdir@6.5.0(picomatch@4.0.4): + fdir@6.5.0(picomatch@4.0.5): optionalDependencies: - picomatch: 4.0.4 + picomatch: 4.0.5 foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 - fs-fixture@2.13.0: {} + fs-fixture@2.14.0: {} fsevents@2.3.3: optional: true @@ -2236,8 +2187,6 @@ snapshots: transitivePeerDependencies: - supports-color - human-id@4.1.3: {} - human-id@4.2.0: {} ieee754@1.2.1: {} @@ -2250,6 +2199,8 @@ snapshots: is-stream@2.0.1: {} + is-unsafe@2.0.0: {} + isarray@1.0.0: {} isexe@2.0.0: {} @@ -2262,7 +2213,7 @@ snapshots: jju@1.4.0: {} - json-with-bigint@3.5.8: {} + json-with-bigint@3.5.10: {} jsonc-parser@3.3.1: {} @@ -2271,7 +2222,7 @@ snapshots: launch-editor@2.14.1: dependencies: picocolors: 1.1.1 - shell-quote: 1.8.4 + shell-quote: 1.10.0 lazystream@1.0.1: dependencies: @@ -2289,11 +2240,11 @@ snapshots: minimatch@5.1.9: dependencies: - brace-expansion: 2.1.1 + brace-expansion: 2.1.4 minimatch@9.0.9: dependencies: - brace-expansion: 2.1.1 + brace-expansion: 2.1.4 minimist@1.2.8: {} @@ -2307,37 +2258,37 @@ snapshots: normalize-path@3.0.0: {} - obug@2.1.1: {} + obug@2.1.4: {} - oxfmt@0.48.0: + oxfmt@0.61.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.48.0 - '@oxfmt/binding-android-arm64': 0.48.0 - '@oxfmt/binding-darwin-arm64': 0.48.0 - '@oxfmt/binding-darwin-x64': 0.48.0 - '@oxfmt/binding-freebsd-x64': 0.48.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.48.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.48.0 - '@oxfmt/binding-linux-arm64-gnu': 0.48.0 - '@oxfmt/binding-linux-arm64-musl': 0.48.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.48.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.48.0 - '@oxfmt/binding-linux-riscv64-musl': 0.48.0 - '@oxfmt/binding-linux-s390x-gnu': 0.48.0 - '@oxfmt/binding-linux-x64-gnu': 0.48.0 - '@oxfmt/binding-linux-x64-musl': 0.48.0 - '@oxfmt/binding-openharmony-arm64': 0.48.0 - '@oxfmt/binding-win32-arm64-msvc': 0.48.0 - '@oxfmt/binding-win32-ia32-msvc': 0.48.0 - '@oxfmt/binding-win32-x64-msvc': 0.48.0 + '@oxfmt/binding-android-arm-eabi': 0.61.0 + '@oxfmt/binding-android-arm64': 0.61.0 + '@oxfmt/binding-darwin-arm64': 0.61.0 + '@oxfmt/binding-darwin-x64': 0.61.0 + '@oxfmt/binding-freebsd-x64': 0.61.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.61.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.61.0 + '@oxfmt/binding-linux-arm64-gnu': 0.61.0 + '@oxfmt/binding-linux-arm64-musl': 0.61.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.61.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.61.0 + '@oxfmt/binding-linux-riscv64-musl': 0.61.0 + '@oxfmt/binding-linux-s390x-gnu': 0.61.0 + '@oxfmt/binding-linux-x64-gnu': 0.61.0 + '@oxfmt/binding-linux-x64-musl': 0.61.0 + '@oxfmt/binding-openharmony-arm64': 0.61.0 + '@oxfmt/binding-win32-arm64-msvc': 0.61.0 + '@oxfmt/binding-win32-ia32-msvc': 0.61.0 + '@oxfmt/binding-win32-x64-msvc': 0.61.0 package-json-from-dist@1.0.1: {} - package-manager-detector@1.6.0: {} + package-manager-detector@1.8.0: {} - path-expression-matcher@1.5.0: {} + path-expression-matcher@1.6.2: {} path-key@3.1.1: {} @@ -2350,7 +2301,7 @@ snapshots: picocolors@1.1.1: {} - picomatch@4.0.4: {} + picomatch@4.0.5: {} process-nextick-args@2.0.1: {} @@ -2378,32 +2329,31 @@ snapshots: dependencies: minimatch: 5.1.9 - rolldown@1.0.1: + rolldown@1.2.2: dependencies: - '@oxc-project/types': 0.130.0 + '@oxc-project/types': 0.142.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.0.1 - '@rolldown/binding-darwin-arm64': 1.0.1 - '@rolldown/binding-darwin-x64': 1.0.1 - '@rolldown/binding-freebsd-x64': 1.0.1 - '@rolldown/binding-linux-arm-gnueabihf': 1.0.1 - '@rolldown/binding-linux-arm64-gnu': 1.0.1 - '@rolldown/binding-linux-arm64-musl': 1.0.1 - '@rolldown/binding-linux-ppc64-gnu': 1.0.1 - '@rolldown/binding-linux-s390x-gnu': 1.0.1 - '@rolldown/binding-linux-x64-gnu': 1.0.1 - '@rolldown/binding-linux-x64-musl': 1.0.1 - '@rolldown/binding-openharmony-arm64': 1.0.1 - '@rolldown/binding-wasm32-wasi': 1.0.1 - '@rolldown/binding-win32-arm64-msvc': 1.0.1 - '@rolldown/binding-win32-x64-msvc': 1.0.1 + '@rolldown/binding-android-arm64': 1.2.2 + '@rolldown/binding-darwin-arm64': 1.2.2 + '@rolldown/binding-darwin-x64': 1.2.2 + '@rolldown/binding-freebsd-x64': 1.2.2 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.2 + '@rolldown/binding-linux-arm64-gnu': 1.2.2 + '@rolldown/binding-linux-arm64-musl': 1.2.2 + '@rolldown/binding-linux-ppc64-gnu': 1.2.2 + '@rolldown/binding-linux-s390x-gnu': 1.2.2 + '@rolldown/binding-linux-x64-gnu': 1.2.2 + '@rolldown/binding-linux-x64-musl': 1.2.2 + '@rolldown/binding-openharmony-arm64': 1.2.2 + '@rolldown/binding-win32-arm64-msvc': 1.2.2 + '@rolldown/binding-win32-x64-msvc': 1.2.2 safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} - semver@7.8.1: {} + semver@7.8.5: {} shebang-command@2.0.0: dependencies: @@ -2411,7 +2361,7 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.8.4: {} + shell-quote@1.10.0: {} siginfo@2.0.0: {} @@ -2421,9 +2371,9 @@ snapshots: stackback@0.0.2: {} - std-env@4.1.0: {} + std-env@4.2.0: {} - streamx@2.27.0: + streamx@2.28.0: dependencies: events-universal: 1.0.1 fast-fifo: 1.3.2 @@ -2460,14 +2410,16 @@ snapshots: dependencies: ansi-regex: 6.2.2 - strnum@2.3.0: {} + strnum@2.4.1: + dependencies: + anynum: 1.0.1 tar-stream@3.2.0: dependencies: b4a: 1.8.1 - bare-fs: 4.7.2 + bare-fs: 4.8.0 fast-fifo: 1.3.2 - streamx: 2.27.0 + streamx: 2.28.0 transitivePeerDependencies: - bare-abort-controller - bare-buffer @@ -2475,7 +2427,7 @@ snapshots: teex@1.0.1: dependencies: - streamx: 2.27.0 + streamx: 2.28.0 transitivePeerDependencies: - bare-abort-controller - react-native-b4a @@ -2488,18 +2440,16 @@ snapshots: tinybench@2.9.0: {} - tinyexec@1.2.4: {} - tinyexec@1.3.0: {} tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.4) - picomatch: 4.0.4 + fdir: 6.5.0(picomatch@4.0.5) + picomatch: 4.0.5 tinypool@2.1.0: {} - tinyrainbow@3.1.0: {} + tinyrainbow@3.1.1: {} traverse@0.3.9: {} @@ -2513,9 +2463,9 @@ snapshots: typescript@6.0.3: {} - undici-types@7.16.0: {} + undici-types@8.3.0: {} - undici@6.25.0: {} + undici@6.28.0: {} universal-user-agent@7.0.3: {} @@ -2526,40 +2476,40 @@ snapshots: util-deprecate@1.0.2: {} - vite@8.0.13(@types/node@24.12.4)(yaml@2.9.0): + vite@8.2.0(@types/node@26.1.2)(yaml@2.9.0): dependencies: - picomatch: 4.0.4 - rolldown: 1.0.1 + picomatch: 4.0.5 + rolldown: 1.2.2 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 26.1.2 fsevents: 2.3.3 yaml: 2.9.0 - vitest@4.1.6(@types/node@24.12.4)(vite@8.0.13): - dependencies: - '@vitest/expect': 4.1.6 - '@vitest/mocker': 4.1.6(vite@8.0.13) - '@vitest/pretty-format': 4.1.6 - '@vitest/runner': 4.1.6 - '@vitest/snapshot': 4.1.6 - '@vitest/spy': 4.1.6 - '@vitest/utils': 4.1.6 - es-module-lexer: 2.1.0 - expect-type: 1.3.0 + vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0): + dependencies: + '@vitest/expect': 4.1.10 + '@vitest/mocker': 4.1.10(vite@8.2.0) + '@vitest/pretty-format': 4.1.10 + '@vitest/runner': 4.1.10 + '@vitest/snapshot': 4.1.10 + '@vitest/spy': 4.1.10 + '@vitest/utils': 4.1.10 + es-module-lexer: 2.3.1 + expect-type: 1.4.0 magic-string: 0.30.21 - obug: 2.1.1 + obug: 2.1.4 pathe: 2.0.3 - picomatch: 4.0.4 - std-env: 4.1.0 + picomatch: 4.0.5 + std-env: 4.2.0 tinybench: 2.9.0 - tinyexec: 1.2.4 + tinyexec: 1.3.0 tinyglobby: 0.2.17 - tinyrainbow: 3.1.0 - vite: 8.0.13(@types/node@24.12.4)(yaml@2.9.0) + tinyrainbow: 3.1.1 + vite: 8.2.0(@types/node@26.1.2)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 24.12.4 + '@types/node': 26.1.2 transitivePeerDependencies: - msw @@ -2584,7 +2534,7 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.2.0 - xml-naming@0.1.0: {} + xml-naming@0.3.0: {} yaml@2.9.0: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b125020f..1c0683c1 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -3,22 +3,24 @@ dedupePeers: true dedupePeerDependents: true minimumReleaseAge: 10080 minimumReleaseAgeExclude: - - "@changesets/apply-release-plan@8.0.0-next.11" - - "@changesets/assemble-release-plan@7.0.0-next.11" - - "@changesets/changelog-git@1.0.0-next.9" - - "@changesets/changelog-github@1.0.0-next.9" - - "@changesets/cli@3.0.0-next.12" - - "@changesets/config@4.0.0-next.10" - - "@changesets/get-dependents-graph@3.0.0-next.9" - - "@changesets/get-github-info@1.0.0-next.4" - - "@changesets/get-release-plan@5.0.0-next.11" - - "@changesets/git@4.0.0-next.9" - - "@changesets/parse@1.0.0-next.10" - - "@changesets/pre@3.0.0-next.9" - - "@changesets/read@1.0.0-next.10" - - "@changesets/should-skip-package@1.0.0-next.9" - - "@changesets/types@7.0.0-next.9" - - "@changesets/write@1.0.0-next.9" + - "@changesets/apply-release-plan@8.0.0" + - "@changesets/assemble-release-plan@7.0.0" + - "@changesets/changelog-git@1.0.0" + - "@changesets/changelog-github@1.0.0" + - "@changesets/cli@3.0.0" + - "@changesets/config@4.0.0" + - "@changesets/errors@1.0.0" + - "@changesets/get-dependents-graph@3.0.0" + - "@changesets/get-github-info@1.0.0" + - "@changesets/get-release-plan@5.0.0" + - "@changesets/git@4.0.0" + - "@changesets/parse@1.0.0" + - "@changesets/pre@3.0.0" + - "@changesets/read@1.0.0" + - "@changesets/should-skip-package@1.0.0" + - "@changesets/types@7.0.0" + - "@changesets/write@1.0.0" + - "vite@8.2.0" overrides: lightningcss: "-" # we do not bundle any css From 78fdc6bb2e67f6fb5b4a083b64971e9a46a7749d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 11 Aug 2026 14:35:44 +0200 Subject: [PATCH 46/62] Exit pre mode (#714) * Exit pre mode * Remove prerelease-only changesets --- .changeset/bright-files-raise.md | 5 ----- .changeset/pre.json | 2 +- .changeset/pre/all-cars-grin.md | 5 ----- .changeset/pre/green-birds-push.md | 5 ----- .changeset/pre/quick-spoons-smile.md | 5 ----- .changeset/pre/ready-mangos-boil.md | 5 ----- .changeset/pre/silent-tips-dance.md | 5 ----- 7 files changed, 1 insertion(+), 31 deletions(-) delete mode 100644 .changeset/bright-files-raise.md delete mode 100644 .changeset/pre/all-cars-grin.md delete mode 100644 .changeset/pre/green-birds-push.md delete mode 100644 .changeset/pre/quick-spoons-smile.md delete mode 100644 .changeset/pre/ready-mangos-boil.md delete mode 100644 .changeset/pre/silent-tips-dance.md diff --git a/.changeset/bright-files-raise.md b/.changeset/bright-files-raise.md deleted file mode 100644 index 9c1b57cd..00000000 --- a/.changeset/bright-files-raise.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Updated `@changesets/*` dependencies diff --git a/.changeset/pre.json b/.changeset/pre.json index d20efa9e..421211bc 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -1,4 +1,4 @@ { - "mode": "pre", + "mode": "exit", "tag": "next" } diff --git a/.changeset/pre/all-cars-grin.md b/.changeset/pre/all-cars-grin.md deleted file mode 100644 index 17af9a37..00000000 --- a/.changeset/pre/all-cars-grin.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Fix the computed publish plan path passed internally to `changeset pack` by the `/pack` subaction. diff --git a/.changeset/pre/green-birds-push.md b/.changeset/pre/green-birds-push.md deleted file mode 100644 index 518bf2d0..00000000 --- a/.changeset/pre/green-birds-push.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Fixed a regression making it impossible to sync new versions of versioning pull requests with base branch updates when using GitHub API pushes. diff --git a/.changeset/pre/quick-spoons-smile.md b/.changeset/pre/quick-spoons-smile.md deleted file mode 100644 index ca3ef3f0..00000000 --- a/.changeset/pre/quick-spoons-smile.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Fix support for prerelease exits using the new `.changeset/pre` layout. diff --git a/.changeset/pre/ready-mangos-boil.md b/.changeset/pre/ready-mangos-boil.md deleted file mode 100644 index d4b0bd27..00000000 --- a/.changeset/pre/ready-mangos-boil.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Fixed usage of `--from-publish-plan` flag used by the `/pack` subaction diff --git a/.changeset/pre/silent-tips-dance.md b/.changeset/pre/silent-tips-dance.md deleted file mode 100644 index 24361f16..00000000 --- a/.changeset/pre/silent-tips-dance.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Fix the `/version` subaction to not crash on missing `pr-base-branch` input. This input is meant to be optional. From e52ce9e59b5ed97f1b897b0ce507e6283737c7e4 Mon Sep 17 00:00:00 2001 From: "changesets-org-version-bot[bot]" <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> Date: Tue, 11 Aug 2026 12:39:31 +0000 Subject: [PATCH 47/62] Version Packages (#715) Co-authored-by: changesets-org-version-bot[bot] <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> --- .changeset/pre.json | 4 -- .changeset/pre/brave-pandas-commit.md | 9 ---- .changeset/pre/bright-lions-check.md | 5 --- .changeset/pre/calm-files-warn.md | 5 --- .changeset/pre/chubby-geese-sink.md | 7 ---- .changeset/pre/eight-clocks-pull.md | 5 --- .changeset/pre/eighty-doors-swim.md | 5 --- .changeset/pre/eighty-parks-tickle.md | 17 -------- .changeset/pre/fiery-toes-vanish.md | 5 --- .changeset/pre/git-cli-auth-header.md | 5 --- .changeset/pre/git-cli-server-url.md | 5 --- .changeset/pre/lemon-turtles-itch.md | 5 --- .changeset/pre/shaky-rings-type.md | 5 --- .changeset/pre/shy-months-crash.md | 5 --- .changeset/pre/strict-hotels-laugh.md | 7 ---- .changeset/pre/tidy-bots-smile.md | 5 --- .changeset/pre/yellow-roses-fix.md | 5 --- CHANGELOG.md | 60 +++++++++++++++++++++++++++ package.json | 2 +- 19 files changed, 61 insertions(+), 105 deletions(-) delete mode 100644 .changeset/pre.json delete mode 100644 .changeset/pre/brave-pandas-commit.md delete mode 100644 .changeset/pre/bright-lions-check.md delete mode 100644 .changeset/pre/calm-files-warn.md delete mode 100644 .changeset/pre/chubby-geese-sink.md delete mode 100644 .changeset/pre/eight-clocks-pull.md delete mode 100644 .changeset/pre/eighty-doors-swim.md delete mode 100644 .changeset/pre/eighty-parks-tickle.md delete mode 100644 .changeset/pre/fiery-toes-vanish.md delete mode 100644 .changeset/pre/git-cli-auth-header.md delete mode 100644 .changeset/pre/git-cli-server-url.md delete mode 100644 .changeset/pre/lemon-turtles-itch.md delete mode 100644 .changeset/pre/shaky-rings-type.md delete mode 100644 .changeset/pre/shy-months-crash.md delete mode 100644 .changeset/pre/strict-hotels-laugh.md delete mode 100644 .changeset/pre/tidy-bots-smile.md delete mode 100644 .changeset/pre/yellow-roses-fix.md diff --git a/.changeset/pre.json b/.changeset/pre.json deleted file mode 100644 index 421211bc..00000000 --- a/.changeset/pre.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "mode": "exit", - "tag": "next" -} diff --git a/.changeset/pre/brave-pandas-commit.md b/.changeset/pre/brave-pandas-commit.md deleted file mode 100644 index 08e7e36d..00000000 --- a/.changeset/pre/brave-pandas-commit.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@changesets/action": major ---- - -Release commits and tags are now pushed using the GitHub API by default. - -Replace the `commit-mode` input with the boolean `push-with-git-cli` input. Set `push-with-git-cli: true` to continue using the Git CLI. - -Regardless of the push mode, custom GitHub tokens must be passed explicitly through the `github-token` input. The `GITHUB_TOKEN` environment variable and credentials configured by `actions/checkout` or embedded in remote URLs are not substitutes for this input. When the Git CLI is enabled, `github-token` takes precedence over those repository credentials. diff --git a/.changeset/pre/bright-lions-check.md b/.changeset/pre/bright-lions-check.md deleted file mode 100644 index 75787f18..00000000 --- a/.changeset/pre/bright-lions-check.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Validate that projects use Changesets CLI v3 and direct Changesets CLI v2 users to `changesets/action@v1`. diff --git a/.changeset/pre/calm-files-warn.md b/.changeset/pre/calm-files-warn.md deleted file mode 100644 index bd3bf895..00000000 --- a/.changeset/pre/calm-files-warn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Allow custom publish scripts to complete without a Changesets output file, warning that GitHub releases and git tags cannot be created when that file is missing. diff --git a/.changeset/pre/chubby-geese-sink.md b/.changeset/pre/chubby-geese-sink.md deleted file mode 100644 index c1dad759..00000000 --- a/.changeset/pre/chubby-geese-sink.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@changesets/action": major ---- - -Add a new `push-git-tags` option that complements `create-github-releases` to control specifically if git tags should be created but not GitHub releases. - -If `create-github-releases` was previously set to `false`, which also indirectly disabled git tag creation, git tags will now be created instead by default. If this is not desired, set `push-git-tags` to `false` explicitly. diff --git a/.changeset/pre/eight-clocks-pull.md b/.changeset/pre/eight-clocks-pull.md deleted file mode 100644 index 76a279e5..00000000 --- a/.changeset/pre/eight-clocks-pull.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": minor ---- - -Add new `/select-mode`, `/version`, and `/publish` sub-actions to better control version and publish steps diff --git a/.changeset/pre/eighty-doors-swim.md b/.changeset/pre/eighty-doors-swim.md deleted file mode 100644 index 55316b86..00000000 --- a/.changeset/pre/eighty-doors-swim.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": major ---- - -Removed compatibility support for old Changesets v1. diff --git a/.changeset/pre/eighty-parks-tickle.md b/.changeset/pre/eighty-parks-tickle.md deleted file mode 100644 index af67650b..00000000 --- a/.changeset/pre/eighty-parks-tickle.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -"@changesets/action": major ---- - -Rename the root action inputs and outputs to better match the sub-actions' conventions. - -Inputs: - -- `version` -> `version-script` -- `publish` -> `publish-script` -- `commit` -> `commit-message` -- `title` -> `pr-title` -- `branch` -> `pr-base-branch` - -Outputs: - -- `pull-request-number` -> `pr-number` diff --git a/.changeset/pre/fiery-toes-vanish.md b/.changeset/pre/fiery-toes-vanish.md deleted file mode 100644 index 3cf5270b..00000000 --- a/.changeset/pre/fiery-toes-vanish.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": major ---- - -Remove support for passing custom GitHub token through the GITHUB_TOKEN environment variable. It should be passed to the `github-token` input instead. diff --git a/.changeset/pre/git-cli-auth-header.md b/.changeset/pre/git-cli-auth-header.md deleted file mode 100644 index e7fd6437..00000000 --- a/.changeset/pre/git-cli-auth-header.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Authenticate git CLI pushes with the configured GitHub token using Git extra headers instead of writing to a global `.netrc` file. diff --git a/.changeset/pre/git-cli-server-url.md b/.changeset/pre/git-cli-server-url.md deleted file mode 100644 index bd04f862..00000000 --- a/.changeset/pre/git-cli-server-url.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Derive the Git server URL from the GitHub Actions context when configuring git CLI authentication to support GitHub Enterprise Server setups. diff --git a/.changeset/pre/lemon-turtles-itch.md b/.changeset/pre/lemon-turtles-itch.md deleted file mode 100644 index f5b77778..00000000 --- a/.changeset/pre/lemon-turtles-itch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": major ---- - -Remove `cwd` option for `changesets/action`. Use the step `working-directory` option instead to change the directory. diff --git a/.changeset/pre/shaky-rings-type.md b/.changeset/pre/shaky-rings-type.md deleted file mode 100644 index d30067e2..00000000 --- a/.changeset/pre/shaky-rings-type.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": major ---- - -Update to Changesets v3 packages diff --git a/.changeset/pre/shy-months-crash.md b/.changeset/pre/shy-months-crash.md deleted file mode 100644 index 17622e0e..00000000 --- a/.changeset/pre/shy-months-crash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": minor ---- - -Published packages detection done through stdout parsing was replaced with one based on the shared output file using `CHANGESETS_OUTPUT` environment variable. When using custom scripts this environment variable should always be passed down to the Changesets CLI invocations. diff --git a/.changeset/pre/strict-hotels-laugh.md b/.changeset/pre/strict-hotels-laugh.md deleted file mode 100644 index dbf2906e..00000000 --- a/.changeset/pre/strict-hotels-laugh.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@changesets/action": major ---- - -Removed `.npmrc` handling when the `NPM_TOKEN` environment variable is set. - -Authentication should be handled via Trusted Publishing instead. If a token is still needed, use `actions/setup-node` to set it up instead via the `registry-url` option. Check out the updated action README for more information of setting up npm authentication in GitHub Actions. diff --git a/.changeset/pre/tidy-bots-smile.md b/.changeset/pre/tidy-bots-smile.md deleted file mode 100644 index 96dd01cc..00000000 --- a/.changeset/pre/tidy-bots-smile.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Remove the `setup-git-user` input. Complete custom Git identities are now preserved automatically, while `github-actions[bot]` is configured as a fallback before creating local release commits or tags. diff --git a/.changeset/pre/yellow-roses-fix.md b/.changeset/pre/yellow-roses-fix.md deleted file mode 100644 index 21c93839..00000000 --- a/.changeset/pre/yellow-roses-fix.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": major ---- - -Rename the input and output names to kebab-case instead of camelCase to match the official GitHub actions pattern diff --git a/CHANGELOG.md b/CHANGELOG.md index abc8fb02..c812ced7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,65 @@ # @changesets/action +## 2.0.0 + +### Major Changes + +- [#692](https://github.com/changesets/action/pull/692) [`cb3f011`](https://github.com/changesets/action/commit/cb3f0110d7423cd340b1c5d63584c0ea6ee63959) Thanks [@Andarist](https://github.com/Andarist)! - Release commits and tags are now pushed using the GitHub API by default. + + Replace the `commit-mode` input with the boolean `push-with-git-cli` input. Set `push-with-git-cli: true` to continue using the Git CLI. + + Regardless of the push mode, custom GitHub tokens must be passed explicitly through the `github-token` input. The `GITHUB_TOKEN` environment variable and credentials configured by `actions/checkout` or embedded in remote URLs are not substitutes for this input. When the Git CLI is enabled, `github-token` takes precedence over those repository credentials. + +- [#680](https://github.com/changesets/action/pull/680) [`ca57073`](https://github.com/changesets/action/commit/ca57073900dc678254406a052a03c0c8824e319d) Thanks [@bluwy](https://github.com/bluwy)! - Add a new `push-git-tags` option that complements `create-github-releases` to control specifically if git tags should be created but not GitHub releases. + + If `create-github-releases` was previously set to `false`, which also indirectly disabled git tag creation, git tags will now be created instead by default. If this is not desired, set `push-git-tags` to `false` explicitly. + +- [#657](https://github.com/changesets/action/pull/657) [`4f718b5`](https://github.com/changesets/action/commit/4f718b5921490b1efeb015a81abb6a4633892851) Thanks [@Andarist](https://github.com/Andarist)! - Removed compatibility support for old Changesets v1. + +- [#681](https://github.com/changesets/action/pull/681) [`7359107`](https://github.com/changesets/action/commit/73591071e61c7f61cf322dd7a6341dc29a8e1d4e) Thanks [@bluwy](https://github.com/bluwy)! - Rename the root action inputs and outputs to better match the sub-actions' conventions. + + Inputs: + + - `version` -> `version-script` + - `publish` -> `publish-script` + - `commit` -> `commit-message` + - `title` -> `pr-title` + - `branch` -> `pr-base-branch` + + Outputs: + + - `pull-request-number` -> `pr-number` + +- [#674](https://github.com/changesets/action/pull/674) [`164652b`](https://github.com/changesets/action/commit/164652bdd60525670d95291addb8c6f92833ac60) Thanks [@bluwy](https://github.com/bluwy)! - Remove support for passing custom GitHub token through the GITHUB_TOKEN environment variable. It should be passed to the `github-token` input instead. + +- [#659](https://github.com/changesets/action/pull/659) [`5649ff4`](https://github.com/changesets/action/commit/5649ff41b8eb1b7a281011e45df781c6d4628fd0) Thanks [@bluwy](https://github.com/bluwy)! - Remove `cwd` option for `changesets/action`. Use the step `working-directory` option instead to change the directory. + +- [#673](https://github.com/changesets/action/pull/673) [`823cf74`](https://github.com/changesets/action/commit/823cf741ca57c5e22652123d3a847dfafcd77ca0) Thanks [@bluwy](https://github.com/bluwy)! - Update to Changesets v3 packages + +- [#695](https://github.com/changesets/action/pull/695) [`469993c`](https://github.com/changesets/action/commit/469993ce5783c6a38e72541d4ba0d25588702b9a) Thanks [@bluwy](https://github.com/bluwy)! - Removed `.npmrc` handling when the `NPM_TOKEN` environment variable is set. + + Authentication should be handled via Trusted Publishing instead. If a token is still needed, use `actions/setup-node` to set it up instead via the `registry-url` option. Check out the updated action README for more information of setting up npm authentication in GitHub Actions. + +- [#668](https://github.com/changesets/action/pull/668) [`0eae789`](https://github.com/changesets/action/commit/0eae789230defbc4ad287e9b476aba7e842e34e0) Thanks [@bluwy](https://github.com/bluwy)! - Rename the input and output names to kebab-case instead of camelCase to match the official GitHub actions pattern + +### Minor Changes + +- [#656](https://github.com/changesets/action/pull/656) [`a12d90d`](https://github.com/changesets/action/commit/a12d90de8394e63c952622b2fd3f98c8729c48b0) Thanks [@bluwy](https://github.com/bluwy)! - Add new `/select-mode`, `/version`, and `/publish` sub-actions to better control version and publish steps + +- [#678](https://github.com/changesets/action/pull/678) [`f71ae04`](https://github.com/changesets/action/commit/f71ae043ed5deb17952900091e009a60edef9507) Thanks [@Andarist](https://github.com/Andarist)! - Published packages detection done through stdout parsing was replaced with one based on the shared output file using `CHANGESETS_OUTPUT` environment variable. When using custom scripts this environment variable should always be passed down to the Changesets CLI invocations. + +### Patch Changes + +- [#699](https://github.com/changesets/action/pull/699) [`5b307d3`](https://github.com/changesets/action/commit/5b307d3df25daf51c41dff70d2f66df1579ae9fa) Thanks [@Andarist](https://github.com/Andarist)! - Validate that projects use Changesets CLI v3 and direct Changesets CLI v2 users to `changesets/action@v1`. + +- [#697](https://github.com/changesets/action/pull/697) [`84d78c6`](https://github.com/changesets/action/commit/84d78c68f98f20e24dfff22b22193e7b4f326ad9) Thanks [@Andarist](https://github.com/Andarist)! - Allow custom publish scripts to complete without a Changesets output file, warning that GitHub releases and git tags cannot be created when that file is missing. + +- [#670](https://github.com/changesets/action/pull/670) [`5a8b9b7`](https://github.com/changesets/action/commit/5a8b9b721bf683e3bf9bd72ea92a685dc024147b) Thanks [@Andarist](https://github.com/Andarist)! - Authenticate git CLI pushes with the configured GitHub token using Git extra headers instead of writing to a global `.netrc` file. + +- [#670](https://github.com/changesets/action/pull/670) [`5a8b9b7`](https://github.com/changesets/action/commit/5a8b9b721bf683e3bf9bd72ea92a685dc024147b) Thanks [@Andarist](https://github.com/Andarist)! - Derive the Git server URL from the GitHub Actions context when configuring git CLI authentication to support GitHub Enterprise Server setups. + +- [#688](https://github.com/changesets/action/pull/688) [`219ea82`](https://github.com/changesets/action/commit/219ea82e52caaff2a10a5e34d3455093cf958238) Thanks [@Andarist](https://github.com/Andarist)! - Remove the `setup-git-user` input. Complete custom Git identities are now preserved automatically, while `github-actions[bot]` is configured as a fallback before creating local release commits or tags. + ## 2.0.0-next.5 ### Patch Changes diff --git a/package.json b/package.json index 2bbcac9e..5f1c7d5d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@changesets/action", - "version": "2.0.0-next.5", + "version": "2.0.0", "private": true, "license": "MIT", "type": "module", From 6f58ba35801ec075a1c87569277591f8ef1a3029 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Wed, 12 Aug 2026 18:34:14 +0800 Subject: [PATCH 48/62] Update pr-status message links to new faq (#716) --- .changeset/common-apes-fold.md | 5 +++++ src/pr-status/message.ts | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .changeset/common-apes-fold.md diff --git a/.changeset/common-apes-fold.md b/.changeset/common-apes-fold.md new file mode 100644 index 00000000..982d8eac --- /dev/null +++ b/.changeset/common-apes-fold.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Update `pr-status` message to link to the new faq page diff --git a/src/pr-status/message.ts b/src/pr-status/message.ts index 6e01b581..c292feb0 100644 --- a/src/pr-status/message.ts +++ b/src/pr-status/message.ts @@ -53,7 +53,7 @@ Latest commit: ${commitSha} ${getReleasePlanMessage(releasePlan)} -Not sure what this means? [Click here to learn what changesets are](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md). +Not sure what this means? [Click here to learn what changesets are](https://changesets.dev/faq). [Click here if you're a maintainer who wants to add another changeset to this PR](${newChangesetUrl})`; } @@ -72,7 +72,7 @@ Merging this PR will not cause a version bump for any packages. If these changes ${getReleasePlanMessage(releasePlan)} -[Click here to learn what changesets are, and how to add one](https://github.com/changesets/changesets/blob/main/docs/adding-a-changeset.md). +[Click here to learn what changesets are, and how to add one](https://changesets.dev/faq). [Click here if you're a maintainer who wants to add a changeset to this PR](${newChangesetUrl})`; } From 3b7c71c440e75fca5d335f779290425fc1117fe8 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Wed, 12 Aug 2026 21:10:39 +0800 Subject: [PATCH 49/62] Add back cwd input (#718) --- .changeset/silent-schools-bathe.md | 5 +++++ README.md | 1 + action.yml | 3 +++ pack/README.md | 7 ++++--- pack/action.yml | 3 +++ publish/README.md | 1 + publish/action.yml | 3 +++ select-mode/README.md | 4 +++- select-mode/action.yml | 5 ++++- src/index.ts | 3 +-- src/pack/index.ts | 3 +-- src/publish/index.ts | 3 +-- src/select-mode/index.ts | 8 ++++++-- src/version/index.ts | 3 +-- version/README.md | 1 + version/action.yml | 3 +++ 16 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 .changeset/silent-schools-bathe.md diff --git a/.changeset/silent-schools-bathe.md b/.changeset/silent-schools-bathe.md new file mode 100644 index 00000000..d6525be9 --- /dev/null +++ b/.changeset/silent-schools-bathe.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": minor +--- + +Add a `cwd` input to the root action, `/select-mode`, `/version`, `/pack`, and `/publish` sub-actions to set the current working directory to execute Changesets in. This input existed in v1 but was incorrectly removed. diff --git a/README.md b/README.md index 4b724e7b..18784fbc 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ If using [trusted publishing](https://docs.npmjs.com/trusted-publishers), it's r | `create-github-releases` | Whether to create Github releases after publish | | `push-git-tags` | Whether to create git tags after publish. If `create-github-releases` is set to `true`, this option will also always be `true`. | | `push-with-git-cli` | Whether to use the Git CLI instead of the GitHub API to push release commits and tags. Defaults to `false`. When using the GitHub API, commits and tags are signed using GitHub's GPG key and attributed to the user or app that owns the `github-token`. | +| `cwd` | The working directory to execute Changesets in. Defaults to the root of the repository. | | Outputs | Description | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | diff --git a/action.yml b/action.yml index e19c373c..e358500d 100644 --- a/action.yml +++ b/action.yml @@ -47,6 +47,9 @@ inputs: GitHub's GPG key and attributed to the user or app that owns the `github-token`. required: false default: false + cwd: + description: "The working directory to execute Changesets in. Defaults to the root of the repository." + required: false outputs: published: description: A "true" or "false" string value to indicate whether a publishing is happened or not diff --git a/pack/README.md b/pack/README.md index ee7709d7..178ac36d 100644 --- a/pack/README.md +++ b/pack/README.md @@ -17,9 +17,10 @@ This action packs publishable packages into tarballs, complements [changesets/ac -| Inputs | Description | -| -------------------------- | --------------------------------------------------------------------- | -| `publish-plan-artifact-id` | Artifact id for a publish plan generated by the select-mode subaction | +| Inputs | Description | +| -------------------------- | --------------------------------------------------------------------------------------- | +| `publish-plan-artifact-id` | Artifact id for a publish plan generated by the select-mode subaction | +| `cwd` | The working directory to execute Changesets in. Defaults to the root of the repository. | | Outputs | Description | | ---------------------- | ------------------------------------------- | diff --git a/pack/action.yml b/pack/action.yml index eceb353b..ad5b7332 100644 --- a/pack/action.yml +++ b/pack/action.yml @@ -7,6 +7,9 @@ inputs: publish-plan-artifact-id: description: "Artifact id for a publish plan generated by the select-mode subaction" required: false + cwd: + description: "The working directory to execute Changesets in. Defaults to the root of the repository." + required: false outputs: pack-dir-artifact-id: description: "Artifact id for the packed output directory" diff --git a/publish/README.md b/publish/README.md index a8148f2f..e0cacc36 100644 --- a/publish/README.md +++ b/publish/README.md @@ -25,6 +25,7 @@ This action publishes packages to npm. | `pack-dir-artifact-id` | Artifact id for packed publish output generated by the pack subaction | | `create-github-releases` | Whether to create Github releases after publish | | `push-git-tags` | Whether to create git tags after publish. If `create-github-releases` is set to `true`, this option will also always be `true`. | +| `cwd` | The working directory to execute Changesets in. Defaults to the root of the repository. | | Outputs | Description | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | diff --git a/publish/action.yml b/publish/action.yml index 511fb7aa..580d9dd2 100644 --- a/publish/action.yml +++ b/publish/action.yml @@ -26,6 +26,9 @@ inputs: this option will also always be `true`. required: false default: true + cwd: + description: "The working directory to execute Changesets in. Defaults to the root of the repository." + required: false outputs: published: description: A "true" or "false" string value to indicate whether a publishing has happened or not diff --git a/select-mode/README.md b/select-mode/README.md index 3b7abc42..668b33c0 100644 --- a/select-mode/README.md +++ b/select-mode/README.md @@ -20,7 +20,9 @@ This action selects the mode to run a Changesets workflow: -Inputs: _none_ +| Inputs | Description | +| ------ | --------------------------------------------------------------------------------------- | +| `cwd` | The working directory to execute Changesets in. Defaults to the root of the repository. | | Outputs | Description | | -------------------------- | ---------------------------------------------------------------------------- | diff --git a/select-mode/action.yml b/select-mode/action.yml index c03d8a2c..7dccb5bd 100644 --- a/select-mode/action.yml +++ b/select-mode/action.yml @@ -3,7 +3,10 @@ description: Whether to version or publish in the current repo state runs: using: node24 main: ../dist/select-mode.js -inputs: {} +inputs: + cwd: + description: "The working directory to execute Changesets in. Defaults to the root of the repository." + required: false outputs: mode: description: "The mode to use for the current repo state: 'version', 'publish', or 'none'." diff --git a/src/index.ts b/src/index.ts index 14420bf9..556506a6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -11,8 +11,7 @@ import { } from "./utils.ts"; (async () => { - // If the user needs to change the cwd, set `working-directory` in the step instead - const cwd = process.cwd(); + const cwd = getOptionalInput("cwd") || process.cwd(); await validateChangesetsCliVersion(cwd); throwOnRenamedInputs({ diff --git a/src/pack/index.ts b/src/pack/index.ts index ae4ed1be..5ab50d82 100644 --- a/src/pack/index.ts +++ b/src/pack/index.ts @@ -17,8 +17,7 @@ try { } async function main() { - // If the user needs to change the cwd, set `working-directory` in the step instead - const cwd = process.cwd(); + const cwd = getOptionalInput("cwd") || process.cwd(); await validateChangesetsCliVersion(cwd); const publishPlanArtifactId = getOptionalInput("publish-plan-artifact-id"); diff --git a/src/publish/index.ts b/src/publish/index.ts index 308c93c8..5fc60c36 100644 --- a/src/publish/index.ts +++ b/src/publish/index.ts @@ -17,8 +17,7 @@ try { } async function main() { - // If the user needs to change the cwd, set `working-directory` in the step instead - const cwd = process.cwd(); + const cwd = getOptionalInput("cwd") || process.cwd(); await validateChangesetsCliVersion(cwd); const githubToken = getRequiredInput("github-token"); diff --git a/src/select-mode/index.ts b/src/select-mode/index.ts index 396aa2ea..61514fc1 100644 --- a/src/select-mode/index.ts +++ b/src/select-mode/index.ts @@ -4,7 +4,11 @@ import path from "node:path"; import artifact from "@actions/artifact"; import * as core from "@actions/core"; import readChangesetState from "../readChangesetState.ts"; -import { execChangesetsCli, validateChangesetsCliVersion } from "../utils.ts"; +import { + execChangesetsCli, + getOptionalInput, + validateChangesetsCliVersion, +} from "../utils.ts"; type ModeResult = | { @@ -27,7 +31,7 @@ try { } async function main() { - const cwd = process.cwd(); + const cwd = getOptionalInput("cwd") || process.cwd(); await validateChangesetsCliVersion(cwd); const result = await getMode(cwd); diff --git a/src/version/index.ts b/src/version/index.ts index bf7d3b7a..699f390a 100644 --- a/src/version/index.ts +++ b/src/version/index.ts @@ -15,8 +15,7 @@ try { } async function main() { - // If the user needs to change the cwd, set `working-directory` in the step instead - const cwd = process.cwd(); + const cwd = getOptionalInput("cwd") || process.cwd(); await validateChangesetsCliVersion(cwd); throwOnRemovedCommitModeInput(); diff --git a/version/README.md b/version/README.md index 16ea99e4..ff2f0a20 100644 --- a/version/README.md +++ b/version/README.md @@ -31,6 +31,7 @@ This action versions packages and creates or updates a pull request with the cha | `pr-draft` | Controls draft PR behavior. Use 'create' to create new version PRs as draft, or 'always' to also convert existing version PRs back to draft when updating them. | | `pr-base-branch` | Sets the base branch of the PR. Defaults to `github.ref_name`. | | `push-with-git-cli` | Whether to use the Git CLI instead of the GitHub API to push release commits. Defaults to `false`. When using the GitHub API, commits are signed using GitHub's GPG key and attributed to the user or app that owns the `github-token`. | +| `cwd` | The working directory to execute Changesets in. Defaults to the root of the repository. | | Outputs | Description | | ----------- | --------------------------------------------------- | diff --git a/version/action.yml b/version/action.yml index e3dda8af..c98e070d 100644 --- a/version/action.yml +++ b/version/action.yml @@ -34,6 +34,9 @@ inputs: GPG key and attributed to the user or app that owns the `github-token`. required: false default: false + cwd: + description: "The working directory to execute Changesets in. Defaults to the root of the repository." + required: false outputs: pr-number: description: The pull request number that was created or updated From 3043070b0dd173ef012baa5fcd205d38c7dadc72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Thu, 13 Aug 2026 00:50:23 +0000 Subject: [PATCH 50/62] Prevent test warning annotations (#720) --- src/run.test.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/run.test.ts b/src/run.test.ts index 8f3f4eb0..42299c96 100644 --- a/src/run.test.ts +++ b/src/run.test.ts @@ -22,8 +22,12 @@ vi.mock("@actions/github", () => ({ graphql: mockedGraphql, }), })); -vi.mock("@actions/core", { spy: true }); -const mockedWarning = vi.mocked(core.warning); +vi.mock("@actions/core", async (importOriginal) => ({ + ...(await importOriginal()), + error: vi.fn(), + notice: vi.fn(), + warning: vi.fn(), +})); vi.mock("@changesets/ghcommit"); let mockedGithubMethods = { @@ -133,7 +137,7 @@ describe("publish", () => { }); expect(result).toEqual({ published: false, exitCode: 0 }); - expect(mockedWarning).toHaveBeenCalledWith( + expect(core.warning).toHaveBeenCalledWith( expect.stringContaining( "GitHub releases and git tags cannot be created without this output", ), From 7545547fe488a27b3f26e807596ed000538f7ba7 Mon Sep 17 00:00:00 2001 From: "changesets-org-version-bot[bot]" <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> Date: Thu, 13 Aug 2026 02:33:15 +0000 Subject: [PATCH 51/62] Version Packages (#719) Co-authored-by: changesets-org-version-bot[bot] <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> --- .changeset/common-apes-fold.md | 5 ----- .changeset/silent-schools-bathe.md | 5 ----- CHANGELOG.md | 10 ++++++++++ package.json | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 .changeset/common-apes-fold.md delete mode 100644 .changeset/silent-schools-bathe.md diff --git a/.changeset/common-apes-fold.md b/.changeset/common-apes-fold.md deleted file mode 100644 index 982d8eac..00000000 --- a/.changeset/common-apes-fold.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Update `pr-status` message to link to the new faq page diff --git a/.changeset/silent-schools-bathe.md b/.changeset/silent-schools-bathe.md deleted file mode 100644 index d6525be9..00000000 --- a/.changeset/silent-schools-bathe.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": minor ---- - -Add a `cwd` input to the root action, `/select-mode`, `/version`, `/pack`, and `/publish` sub-actions to set the current working directory to execute Changesets in. This input existed in v1 but was incorrectly removed. diff --git a/CHANGELOG.md b/CHANGELOG.md index c812ced7..434d89cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # @changesets/action +## 2.1.0 + +### Minor Changes + +- [#718](https://github.com/changesets/action/pull/718) [`3b7c71c`](https://github.com/changesets/action/commit/3b7c71c440e75fca5d335f779290425fc1117fe8) Thanks [@bluwy](https://github.com/bluwy)! - Add a `cwd` input to the root action, `/select-mode`, `/version`, `/pack`, and `/publish` sub-actions to set the current working directory to execute Changesets in. This input existed in v1 but was incorrectly removed. + +### Patch Changes + +- [#716](https://github.com/changesets/action/pull/716) [`6f58ba3`](https://github.com/changesets/action/commit/6f58ba35801ec075a1c87569277591f8ef1a3029) Thanks [@bluwy](https://github.com/bluwy)! - Update `pr-status` message to link to the new faq page + ## 2.0.0 ### Major Changes diff --git a/package.json b/package.json index 5f1c7d5d..40009472 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@changesets/action", - "version": "2.0.0", + "version": "2.1.0", "private": true, "license": "MIT", "type": "module", From da1ea291ef93203a08fad360eac36f4858dd0514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Szajkovics=20S=C3=A1ndor?= Date: Thu, 13 Aug 2026 07:10:14 +0000 Subject: [PATCH 52/62] Fix typo in renamed inputs (#721) * fix: mesage typoo in renamed inputs * chore: add changeset * Apply suggestion from @bluwy --------- Co-authored-by: Bjorn Lu --- .changeset/metal-aliens-check.md | 5 +++++ src/index.ts | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/metal-aliens-check.md diff --git a/.changeset/metal-aliens-check.md b/.changeset/metal-aliens-check.md new file mode 100644 index 00000000..152da0b7 --- /dev/null +++ b/.changeset/metal-aliens-check.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Fixed typo in renamed inputs from v1 to v2 diff --git a/src/index.ts b/src/index.ts index 556506a6..ce032292 100644 --- a/src/index.ts +++ b/src/index.ts @@ -17,7 +17,7 @@ import { throwOnRenamedInputs({ publish: "publish-script", version: "version-script", - commit: "commit-mesage", + commit: "commit-message", title: "pr-title", branch: "pr-base-branch", prDraft: "pr-draft", From d7669c894a691cf0908002c33cdd57df54a1ef3b Mon Sep 17 00:00:00 2001 From: "changesets-org-version-bot[bot]" <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> Date: Wed, 19 Aug 2026 05:29:59 +0000 Subject: [PATCH 53/62] Version Packages (#722) Co-authored-by: changesets-org-version-bot[bot] <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> --- .changeset/metal-aliens-check.md | 5 ----- CHANGELOG.md | 6 ++++++ package.json | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 .changeset/metal-aliens-check.md diff --git a/.changeset/metal-aliens-check.md b/.changeset/metal-aliens-check.md deleted file mode 100644 index 152da0b7..00000000 --- a/.changeset/metal-aliens-check.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Fixed typo in renamed inputs from v1 to v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 434d89cd..d489bd14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # @changesets/action +## 2.1.1 + +### Patch Changes + +- [#721](https://github.com/changesets/action/pull/721) [`da1ea29`](https://github.com/changesets/action/commit/da1ea291ef93203a08fad360eac36f4858dd0514) Thanks [@KEBABSELLER6](https://github.com/KEBABSELLER6)! - Fixed typo in renamed inputs from v1 to v2 + ## 2.1.0 ### Minor Changes diff --git a/package.json b/package.json index 40009472..0b1e8907 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@changesets/action", - "version": "2.1.0", + "version": "2.1.1", "private": true, "license": "MIT", "type": "module", From 36f529f13ab58bbcf6331035cb950385586e8a89 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Sat, 22 Aug 2026 10:32:21 +0000 Subject: [PATCH 54/62] Fix root action double error logs (#724) --- .changeset/sunny-moons-appear.md | 5 +++++ src/index.ts | 13 ++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 .changeset/sunny-moons-appear.md diff --git a/.changeset/sunny-moons-appear.md b/.changeset/sunny-moons-appear.md new file mode 100644 index 00000000..f3472e81 --- /dev/null +++ b/.changeset/sunny-moons-appear.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Fix root action double error logs diff --git a/src/index.ts b/src/index.ts index ce032292..63e458c2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,7 +10,13 @@ import { validateChangesetsCliVersion, } from "./utils.ts"; -(async () => { +try { + await main(); +} catch (err) { + core.setFailed((err as Error).message); +} + +async function main() { const cwd = getOptionalInput("cwd") || process.cwd(); await validateChangesetsCliVersion(cwd); @@ -131,7 +137,4 @@ import { return; } } -})().catch((err) => { - core.error(err); - core.setFailed(err.message); -}); +} From ca8589735af2ff6977a0f6474537d550040530d8 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Mon, 31 Aug 2026 08:18:49 +0000 Subject: [PATCH 55/62] Always prepare branch for version (#729) * Always prepare branch for version * Update test --- .changeset/warm-teeth-listen.md | 5 +++++ src/github.ts | 4 ---- src/run.test.ts | 32 +++++++++++++++++++++++--------- 3 files changed, 28 insertions(+), 13 deletions(-) create mode 100644 .changeset/warm-teeth-listen.md diff --git a/.changeset/warm-teeth-listen.md b/.changeset/warm-teeth-listen.md new file mode 100644 index 00000000..9dfddf3f --- /dev/null +++ b/.changeset/warm-teeth-listen.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Always switch and reset branch when generating version commits, similar to if `push-with-git-cli` is enabled diff --git a/src/github.ts b/src/github.ts index c03cbda8..d44480c4 100644 --- a/src/github.ts +++ b/src/github.ts @@ -235,10 +235,6 @@ export class GitHub { } async prepareBranch(branch: string) { - if (!this.pushWithGitCli) { - // Preparing a new local branch is not necessary when using the API - return; - } await switchToMaybeExistingBranch(branch, { cwd: this.cwd }); await reset(context.sha, { cwd: this.cwd }); } diff --git a/src/run.test.ts b/src/run.test.ts index 42299c96..47bfad1c 100644 --- a/src/run.test.ts +++ b/src/run.test.ts @@ -1,12 +1,13 @@ import path from "node:path"; import * as core from "@actions/core"; +import * as github from "@actions/github"; import type { Changeset } from "@changesets/types"; import { writeChangeset } from "@changesets/write"; -import { createFixture } from "fs-fixture"; import { exec } from "tinyexec"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { GitHub } from "./github.ts"; import { runPublish, runVersion } from "./run.ts"; +import { gitdir } from "./test-utils.ts"; vi.mock("@actions/github", () => ({ context: { @@ -44,7 +45,7 @@ let mockedGraphql = vi.fn(); const nodeModulesDir = path.join(import.meta.dirname, "..", "node_modules"); function createSimpleProjectFixture() { - return createFixture({ + return gitdir({ node_modules: (api) => api.symlink(nodeModulesDir), ".changeset/config.json": JSON.stringify({}), "packages/pkg-a/package.json": JSON.stringify({ @@ -69,7 +70,7 @@ function createSimpleProjectFixture() { } function createIgnoredPackageFixture() { - return createFixture({ + return gitdir({ node_modules: (api) => api.symlink(nodeModulesDir), ".changeset/config.json": JSON.stringify({ ignore: ["changesets-dev-ignored-package-pkg-a"], @@ -106,15 +107,20 @@ const createGithub = (cwd: string) => pushWithGitCli: false, }); -async function initializeGitRepository(cwd: string) { - await exec("git", ["init"], { +async function updateGithubContext(cwd: string) { + const head = await exec("git", ["rev-parse", "HEAD"], { nodeOptions: { cwd }, - throwOnError: true, }); + github.context.sha = head.stdout.trim(); +} + +function resetGithubContext() { + github.context.sha = "xeac7"; } beforeEach(() => { vi.clearAllMocks(); + resetGithubContext(); }); afterEach(() => { @@ -125,7 +131,7 @@ describe("publish", () => { it("warns when a custom publish script does not create the output file", async () => { await using fixture = await createSimpleProjectFixture(); const cwd = fixture.path; - await initializeGitRepository(cwd); + await updateGithubContext(cwd); vi.stubEnv("RUNNER_TEMP", cwd); const result = await runPublish({ @@ -145,7 +151,7 @@ describe("publish", () => { }); it("throws when the built-in publish command does not create the output file", async () => { - await using fixture = await createFixture({ + await using fixture = await gitdir({ "node_modules/@changesets/cli/package.json": JSON.stringify({ name: "@changesets/cli", type: "module", @@ -158,7 +164,7 @@ describe("publish", () => { "package-lock.json": "", }); const cwd = fixture.path; - await initializeGitRepository(cwd); + await updateGithubContext(cwd); vi.stubEnv("RUNNER_TEMP", cwd); await expect( @@ -176,6 +182,7 @@ describe("version", () => { it("creates simple PR", async () => { await using fixture = await createSimpleProjectFixture(); const cwd = fixture.path; + await updateGithubContext(cwd); mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] })); @@ -213,6 +220,7 @@ describe("version", () => { it('creates a draft PR when prDraft is "create"', async () => { await using fixture = await createSimpleProjectFixture(); const cwd = fixture.path; + await updateGithubContext(cwd); mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] })); @@ -247,6 +255,7 @@ describe("version", () => { it("only includes bumped packages in the PR body", async () => { await using fixture = await createSimpleProjectFixture(); const cwd = fixture.path; + await updateGithubContext(cwd); mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] })); @@ -280,6 +289,7 @@ describe("version", () => { it("doesn't include ignored package that got a dependency update in the PR body", async () => { await using fixture = await createIgnoredPackageFixture(); const cwd = fixture.path; + await updateGithubContext(cwd); mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] })); @@ -313,6 +323,7 @@ describe("version", () => { it("does not include changelog entries if full message exceeds size limit", async () => { await using fixture = await createSimpleProjectFixture(); const cwd = fixture.path; + await updateGithubContext(cwd); mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] })); @@ -370,6 +381,7 @@ fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis. it("does not include any release information if a message with simplified release info exceeds size limit", async () => { await using fixture = await createSimpleProjectFixture(); const cwd = fixture.path; + await updateGithubContext(cwd); mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [] })); @@ -427,6 +439,7 @@ fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis. it('updates an existing PR via GraphQL without converting it to draft when prDraft is "create"', async () => { await using fixture = await createSimpleProjectFixture(); const cwd = fixture.path; + await updateGithubContext(cwd); mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [{ number: 123, node_id: "PR_kwDOA" }], @@ -459,6 +472,7 @@ fluminis divesque vulnere aquis parce lapsis rabie si visa fulmineis. it('updates an existing PR via GraphQL and converts it to draft when prDraft is "always"', async () => { await using fixture = await createSimpleProjectFixture(); const cwd = fixture.path; + await updateGithubContext(cwd); mockedGithubMethods.pulls.list.mockImplementationOnce(() => ({ data: [{ number: 123, node_id: "PR_kwDOA" }], From 5bb9d5ccace51abffbb2e6b5570f2387cc5142bd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 06:17:16 +0000 Subject: [PATCH 56/62] Bump the development-dependencies group across 1 directory with 7 updates (#733) Bumps the development-dependencies group with 7 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@changesets/cli](https://github.com/changesets/changesets/tree/HEAD/packages/cli) | `3.0.0` | `3.0.1` | | [@changesets/write](https://github.com/changesets/changesets/tree/HEAD/packages/write) | `1.0.0` | `1.0.1` | | [@tsconfig/node24](https://github.com/tsconfig/bases/tree/HEAD/bases) | `24.0.4` | `24.0.5` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.2` | `26.3.0` | | [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt) | `0.61.0` | `0.65.0` | | [rolldown](https://github.com/rolldown/rolldown/tree/HEAD/packages/rolldown) | `1.2.2` | `1.2.5` | | [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.10` | `4.1.11` | Updates `@changesets/cli` from 3.0.0 to 3.0.1 - [Release notes](https://github.com/changesets/changesets/releases) - [Changelog](https://github.com/changesets/changesets/blob/main/packages/cli/CHANGELOG.md) - [Commits](https://github.com/changesets/changesets/commits/@changesets/cli@3.0.1/packages/cli) Updates `@changesets/write` from 1.0.0 to 1.0.1 - [Release notes](https://github.com/changesets/changesets/releases) - [Changelog](https://github.com/changesets/changesets/blob/main/packages/write/CHANGELOG.md) - [Commits](https://github.com/changesets/changesets/commits/@changesets/write@1.0.1/packages/write) Updates `@tsconfig/node24` from 24.0.4 to 24.0.5 - [Commits](https://github.com/tsconfig/bases/commits/HEAD/bases) Updates `@types/node` from 26.1.2 to 26.3.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `oxfmt` from 0.61.0 to 0.65.0 - [Release notes](https://github.com/oxc-project/oxc/releases) - [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md) - [Commits](https://github.com/oxc-project/oxc/commits/oxfmt_v0.65.0/npm/oxfmt) Updates `rolldown` from 1.2.2 to 1.2.5 - [Release notes](https://github.com/rolldown/rolldown/releases) - [Changelog](https://github.com/rolldown/rolldown/blob/main/CHANGELOG.md) - [Commits](https://github.com/rolldown/rolldown/commits/v1.2.5/packages/rolldown) Updates `vitest` from 4.1.10 to 4.1.11 - [Release notes](https://github.com/vitest-dev/vitest/releases) - [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md) - [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.11/packages/vitest) --- updated-dependencies: - dependency-name: "@changesets/cli" dependency-version: 3.0.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development-dependencies - dependency-name: "@changesets/write" dependency-version: 1.0.1 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development-dependencies - dependency-name: "@tsconfig/node24" dependency-version: 24.0.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development-dependencies - dependency-name: "@types/node" dependency-version: 26.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development-dependencies - dependency-name: oxfmt dependency-version: 0.65.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: development-dependencies - dependency-name: rolldown dependency-version: 1.2.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development-dependencies - dependency-name: vitest dependency-version: 4.1.11 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: development-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 14 +- pnpm-lock.yaml | 494 ++++++++++++++++++++++++++----------------------- 2 files changed, 265 insertions(+), 243 deletions(-) diff --git a/package.json b/package.json index 0b1e8907..a1a5eaf0 100644 --- a/package.json +++ b/package.json @@ -38,17 +38,17 @@ }, "devDependencies": { "@changesets/changelog-github": "^1.0.0", - "@changesets/cli": "^3.0.0", + "@changesets/cli": "^3.0.1", "@changesets/types": "^7.0.0", - "@changesets/write": "^1.0.0", - "@tsconfig/node24": "^24.0.4", - "@types/node": "^26.1.2", + "@changesets/write": "^1.0.1", + "@tsconfig/node24": "^24.0.5", + "@types/node": "^26.3.0", "@types/semver": "^7.8.0", "fs-fixture": "^2.14.0", - "oxfmt": "^0.61.0", - "rolldown": "^1.2.2", + "oxfmt": "^0.65.0", + "rolldown": "^1.2.5", "typescript": "^6.0.3", - "vitest": "^4.1.10", + "vitest": "^4.1.11", "yaml": "^2.9.0" }, "engines": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 485838b3..93423fae 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,20 +66,20 @@ importers: specifier: ^1.0.0 version: 1.0.0 '@changesets/cli': - specifier: ^3.0.0 - version: 3.0.0 + specifier: ^3.0.1 + version: 3.0.1 '@changesets/types': specifier: ^7.0.0 version: 7.0.0 '@changesets/write': - specifier: ^1.0.0 - version: 1.0.0 + specifier: ^1.0.1 + version: 1.0.1 '@tsconfig/node24': - specifier: ^24.0.4 - version: 24.0.4 + specifier: ^24.0.5 + version: 24.0.5 '@types/node': - specifier: ^26.1.2 - version: 26.1.2 + specifier: ^26.3.0 + version: 26.3.0 '@types/semver': specifier: ^7.8.0 version: 7.8.0 @@ -87,17 +87,17 @@ importers: specifier: ^2.14.0 version: 2.14.0 oxfmt: - specifier: ^0.61.0 - version: 0.61.0 + specifier: ^0.65.0 + version: 0.65.0 rolldown: - specifier: ^1.2.2 - version: 1.2.2 + specifier: ^1.2.5 + version: 1.2.5 typescript: specifier: ^6.0.3 version: 6.0.3 vitest: - specifier: ^4.1.10 - version: 4.1.10(@types/node@26.1.2)(vite@8.2.0) + specifier: ^4.1.11 + version: 4.1.11(@types/node@26.3.0)(vite@8.2.0) yaml: specifier: ^2.9.0 version: 2.9.0 @@ -202,8 +202,8 @@ packages: resolution: {integrity: sha512-PNCSH5CGJrqOKxRjrMp2NLhceQv2QBs6HkjrLvYQqsEE2/ItN5R8GD/mskZZluoNWYvjPYFsY9T6swXfp5E0UA==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/cli@3.0.0': - resolution: {integrity: sha512-V7Gm+GP5OT3mJinMI2YcJD/JyO/a4WChnaMCCzTRhWHgu1zhtsyY7zCjP6n5W6zsgSjJKs+yPmvtREvE0F2g8A==} + '@changesets/cli@3.0.1': + resolution: {integrity: sha512-3IVpRSgiKDj2aRbBHKtWTXSRH2/iR3bWxau9iQUoEsZjDhRIj9nhl90k7FWMxZAJvLgJBbgMq8+qS0xQsenYsQ==} engines: {node: ^22.11 || ^24 || >=26, npm: '>=10.9.0', pnpm: '>=10.0.0', yarn: '>=4.5.2'} hasBin: true @@ -215,8 +215,8 @@ packages: resolution: {integrity: sha512-ElN/mEzn6zmETgjwf5MclCMa9ef59sAR0lfO8VSYIsiRvbC2FbLB/92EoYw10Sl0kGixxHFiJZUSv7dA+YpR8g==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/format@0.1.1': - resolution: {integrity: sha512-OBN/xfe+lcNWCv8P4Ogop9EOTi5QRKd1c2JJfZRBT9AT3AybzDYDfHeX4Y7j20Q4e16BPu3XvcdOe9sPZmTEig==} + '@changesets/format@0.1.2': + resolution: {integrity: sha512-Caez5XtNXCFS/G5bwyav3wuXL0tMxVd2ZGbaumWbzN08tyzO21asCw7JZhNtVsAZDCvDRUzZN+Iit9SyRITSYA==} engines: {node: ^22.11 || ^24 || >=26} '@changesets/get-dependents-graph@3.0.0': @@ -259,8 +259,8 @@ packages: resolution: {integrity: sha512-c5GoiQyt3pxiXjrWSNoP8/GRf4kG+VnKzovx1OQM8dYYALlSwgedmkPmJ+ZqGxqwg9D3Bkj85Uo4KLd5BN3A0w==} engines: {node: ^22.11 || ^24 || >=26} - '@changesets/write@1.0.0': - resolution: {integrity: sha512-xCK3/4C7Z7muQB/wguE6HcbjtY9iOtaK9orZKE+7xi573cMGD8rLZz7qlo6IvK7s+SIUIKajzj1l+F1QuP97tw==} + '@changesets/write@1.0.1': + resolution: {integrity: sha512-q/ThtP9gcnEP6xlv7LrY26C2mHqdGBti/MmOVngt/M/oIGYkssmQGxPK9WzBNt2juVcH/vml2WQ+ra8LXYOTaA==} engines: {node: ^22.11 || ^24 || >=26} '@clack/core@1.4.3': @@ -359,127 +359,127 @@ packages: '@octokit/types@17.0.0': resolution: {integrity: sha512-ByP1v7YL5SMveFPP7+sj0/ZuWCOOg/Chs4NafOMpq6WNIM/hdGY0S7C0TCGDBWu1aGmOxmUIhMx3cO+IdwYZ1Q==} - '@oxc-project/types@0.142.0': - resolution: {integrity: sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==} + '@oxc-project/types@0.146.0': + resolution: {integrity: sha512-XC0QsnnhVe7sLIWmYmdPw7x5P0h4W8vUU3Nv1ySgWXtvCz8NizoAEpGXA0sOYoJQV2Rl13LgURAHQ5cI5ILCSA==} - '@oxfmt/binding-android-arm-eabi@0.61.0': - resolution: {integrity: sha512-BaS+1OVvg9sr+Xav0+KdWedQRcAzrdoEcwMZeqoc2F6ieC1s/t5eM35YQoRPQ7vAqkZ+p3tbQb1r9I9mrV5oGA==} + '@oxfmt/binding-android-arm-eabi@0.65.0': + resolution: {integrity: sha512-M10Gs1SSpTNI6ahGx3M/OlIdUF4hkaP6OgUb+MS79t/Pgflk3r1nW5gPFqsZGUAXg0H1AfANT9AvLdBSTIhZKg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxfmt/binding-android-arm64@0.61.0': - resolution: {integrity: sha512-of8atAV0M1egGcVOMbgZCvc10sFOP3ayQBNQV5h5G3fNq8gACdEswfFk9bzGrdbM23rtg0Coxi7np7oPLcueNw==} + '@oxfmt/binding-android-arm64@0.65.0': + resolution: {integrity: sha512-6DXH5sftNlaHpWJG50hFMF+Qxtq5D2TmahvcDPxWNcGIf8qrC9Y0YgHYcYZ2hlWzaccKXh/f3GcssH8vtkl4JA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxfmt/binding-darwin-arm64@0.61.0': - resolution: {integrity: sha512-7l8+5ov4BGwtAcmpzvEik/TG3bciwyw/S3e6j5GKH7pcQqcgCVxD3AuJeP6upto+SOTBKQ4wrrdbMt0gq8fHSQ==} + '@oxfmt/binding-darwin-arm64@0.65.0': + resolution: {integrity: sha512-K9m7lr53pcOLETNsC88sWes/GWHUGjZyHx95UhYcSXy0r30haLdeXlSufSenEAtoLaW753WN8/l4M7GYcRt6cg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxfmt/binding-darwin-x64@0.61.0': - resolution: {integrity: sha512-Fnz4dDDXBb7udk+DmwelNjxbD6yptyxwCqwCH2ebo4RVLxVsRfFsn/AHJC49KIltPrVokamGv4SSOsiV50DTxQ==} + '@oxfmt/binding-darwin-x64@0.65.0': + resolution: {integrity: sha512-sTNwIx1gre3MyiHOPLu7IGW4UyMScYL4DTmJT01p4vzB0En+OJUQz6KuH8t0PpsClRSaMuY3b0QmtoPItfO8Lg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxfmt/binding-freebsd-x64@0.61.0': - resolution: {integrity: sha512-mddOebKNCP+AucmzfNsk3jgbr681qAUvgMqi865GW5gWLJ/AnzXbvjQRrny0e++NAN8aphav/aRSrfFxNsNjpA==} + '@oxfmt/binding-freebsd-x64@0.65.0': + resolution: {integrity: sha512-lYZMVIiIpnjGu5hJb2jxA8NYQ/e0OTGuaiAf4dqlGPNnPmUTu23FZRMltmjro/KkQm1uE4NT4n5yJ2zWmKcpfA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxfmt/binding-linux-arm-gnueabihf@0.61.0': - resolution: {integrity: sha512-svx59iYL+DbaZGZUIoice4W0CjRXGExnbz7Re+awIb60rVxBS2KrU7Hnlx+nZYanLGLpjneUEgo/VFEKkSZAyQ==} + '@oxfmt/binding-linux-arm-gnueabihf@0.65.0': + resolution: {integrity: sha512-gIdXFAt/bURnjxuoedDEWdZ0PEWEmdDcm8qdpoFYYvW3QMk/5D4vUaH4mlMeRpeTdST4izUgHVO6RawQ4QulJw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm-musleabihf@0.61.0': - resolution: {integrity: sha512-BYK9MPJPCf6d+fLKMTruThmEyCtHzQ1zLcsrTlUVkmnoXIaHAbfpeLYQwX1tkjs7W11dyzoi6HFvKcdnvX1zNg==} + '@oxfmt/binding-linux-arm-musleabihf@0.65.0': + resolution: {integrity: sha512-jJVyADto7gA2AaX5qAjAexrxx9PJQaKWOe8PICE7yKMbjBRyOHcmj9TtVJ+MZYDUQ3hodU0AcoTj0jFQ1W4C6Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxfmt/binding-linux-arm64-gnu@0.61.0': - resolution: {integrity: sha512-QUaCNLq2/EC6G5ljOuFanl9Lgw6ZWp4co7rs4+KOMUzbGfA4Lq58FHRjjF9sVIG+93XSbo343MxFATrOU1qctA==} + '@oxfmt/binding-linux-arm64-gnu@0.65.0': + resolution: {integrity: sha512-p3RFkB+u7u+8up99b/NEcI1hdpLDiGgJYNwDorB60n7eH+eKposAKuMBxx+NqB3b+sJP4CZmYDh9G7X62tUsKg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-arm64-musl@0.61.0': - resolution: {integrity: sha512-S6uvJ6MXnRXl+zTs0CARNDvkE+cymj0EVWEKKsyKnlLlqTyQJBjw5s4D2pSIOZc+S46cy4STefzcr/sm0VzVPA==} + '@oxfmt/binding-linux-arm64-musl@0.65.0': + resolution: {integrity: sha512-5Prb0uFzJHr+OUD/qS/TmU526wD+PaHDsm3KoRiUXbMIDpTSErjeQYkK3OQeshAvD/PuLa9WGEi9WPajjdOZJg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-ppc64-gnu@0.61.0': - resolution: {integrity: sha512-6VDlRcytvZG6UlSIdAFKDLbppo9tvPxrWzle6vHldYFMeuDPQEfMKrkwezp7FaBq1wik9ra554ZZeRPsyIkFpg==} + '@oxfmt/binding-linux-ppc64-gnu@0.65.0': + resolution: {integrity: sha512-S8svxTp81obnF3admN9yd+u2rOYXtyzThLGBTg1PY6TPtGcC09BaaXLQD+TBSMa7yvqhCDZ8DFri+S/yG60qCg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-gnu@0.61.0': - resolution: {integrity: sha512-KkBTYbzExpbmn15XjKPLu2fRV2PVlq+KWt+brad5rwIa03vdYoaDRWiS7raHII/dCTR6Ro4UpYUCH4t6lif4WQ==} + '@oxfmt/binding-linux-riscv64-gnu@0.65.0': + resolution: {integrity: sha512-WtXBr75G/h2qOHy8SiGtC1R6aS3jt4mE52v1D8AtwMXIgoOmSNP9lKvbSaTRoL0e5wsMPoi6T72QWDYPu+S+nA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-riscv64-musl@0.61.0': - resolution: {integrity: sha512-69tzIq7sJLVB9dxYYtvMzcSSsnZHSO+U2U19O2RqDqgj6+Q4O7HjSXdaszbcgqzhsUwzSH7z5kWvk8nmf6BHTg==} + '@oxfmt/binding-linux-riscv64-musl@0.65.0': + resolution: {integrity: sha512-YwSLVvpaz4o/nv/miiPEBJz+eJ+VmbgNIrao6RccK9ce+L5EA8wP+ZD0uFeq6wKOza6zoWv/dR0sj6lip6R3EA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxfmt/binding-linux-s390x-gnu@0.61.0': - resolution: {integrity: sha512-Oqi/N0OvtOVXsPKAOOhKgGH3msRYF8BLJaNBbWiupRiKoKVyc8JRKPCfarkQJC+RgP9U8raUKLe+bNwd0HUMiA==} + '@oxfmt/binding-linux-s390x-gnu@0.65.0': + resolution: {integrity: sha512-XQTPqgvyrgkKcFq+Tp2eK6JS7sqqJ+nRmy2Fav4j3I+i4dJoPJm7YwEdoeSDX9xkqj9jZ/lWfF3bXUWztIrn6A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-gnu@0.61.0': - resolution: {integrity: sha512-3TKwv/ed4uwJSemAA8P9XcoqETpjQI4waquF9UilhA9Mn/dhr1PdUEXWlL74mtc6ZNfmKPA9+NEJm01nRF8CVA==} + '@oxfmt/binding-linux-x64-gnu@0.65.0': + resolution: {integrity: sha512-cjZlx6S/VkeCNWCbwZriTnLnZeTcV3DEyeRGSw/2wwLP9viq+C0bJ4bC1k/ZLkFxDcB1lUgSasPkYGP1bdraOg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxfmt/binding-linux-x64-musl@0.61.0': - resolution: {integrity: sha512-uFso4u4nLkVSlMCpgjyvWV60Gt7GvDQHnk1mmRxHIkZTMB0ljpUKwCD9FYGgN9H97x2wYl0UwEjgRZaPIuhEhw==} + '@oxfmt/binding-linux-x64-musl@0.65.0': + resolution: {integrity: sha512-2azCjxdLtK4zCcIOU1dlXlU0xxfbPi6EjwWx7Ac7teWPidIIDOcIhudup83xNCKYhtqeVd/gaVDOxbUq4syXWA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxfmt/binding-openharmony-arm64@0.61.0': - resolution: {integrity: sha512-keGLkzeOvkMpNmPp4hffXWpfoSsY6e1K8++KXD4mSSfxdvM8q9QUDsYY689TB1k6Co832DZn1MnaaVx6cIBMWQ==} + '@oxfmt/binding-openharmony-arm64@0.65.0': + resolution: {integrity: sha512-KXQ7xi1e/voP0IQaw6fG6XY4Z5+Llf1XmRSZS1t7pVFCecFJ0iXaboKmVwjFtp5MLlT5iWQrJ2U1C3GJdZ2u+Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxfmt/binding-win32-arm64-msvc@0.61.0': - resolution: {integrity: sha512-VzsAISkFxmNhJ5LBDEL9VuH6tJsVJMtqYit2LyIUf/HLnsCe4Pg9SMOjjVQzGWt0bnpyfJ94CrqTqcpNZzK+ug==} + '@oxfmt/binding-win32-arm64-msvc@0.65.0': + resolution: {integrity: sha512-2FbbjG5jEqLSLKVJwBap84uJfpn5Y5A53KEO0aUNr+zeiRB9nyPUIFMcSbZVMFLitfBytFWRNngozXYjb6Rsbw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxfmt/binding-win32-ia32-msvc@0.61.0': - resolution: {integrity: sha512-xv4t7yzwJoYaLB6Zv28B3W+j7brEjsyv50rLTAQgmxJzddce9fAMCxed8dSAkbWES0zz2J29nYK5FaTuD2YBHg==} + '@oxfmt/binding-win32-ia32-msvc@0.65.0': + resolution: {integrity: sha512-LJ+ZacAPSjegDOnSLyA1TMWAhdDrsK4el3REdr1oL2UtVBCMhO2II/Sb3cEW6mF2MfLhl8hDNCSvc7KSbgk3LQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxfmt/binding-win32-x64-msvc@0.61.0': - resolution: {integrity: sha512-6EZXFkqOwxdDYjIn3TSNnPk3ST5E5GiYd4FiM6UF/mCL/LZSfr6D6UygTfW3R1PCQP2quCKpCEGRlij8E3VYbg==} + '@oxfmt/binding-win32-x64-msvc@0.65.0': + resolution: {integrity: sha512-higu9cWEO6XXFzATD1jf0mCK34rNfN2H9JrJie7QB1IhleVpTh0QlLH9Ip2C1H/Nd5n0v5pvRtC+5R0uE4HpVg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -506,92 +506,98 @@ packages: '@protobuf-ts/runtime@2.11.1': resolution: {integrity: sha512-KuDaT1IfHkugM2pyz+FwiY80ejWrkH1pAtOBOZFuR6SXEFTsnb/jiQWQ1rCIrcKx2BtyxnxW6BWwsVSA/Ie+WQ==} - '@rolldown/binding-android-arm64@1.2.2': - resolution: {integrity: sha512-l7x215OGvo1s52JWmR8U/DAVzEDWBCIbTm28aeJV/WDTSHgcKXaZTuBT0hJMs5NggilfJTW3clZVvd24yfKJxA==} + '@rolldown/binding-android-arm-eabi@1.2.5': + resolution: {integrity: sha512-DLe/i+l8ynIBY7XEQ191TeZvCoowIGa18R+dIV30GW7DiOtp74i/xX8hs8GUjW5ARV7VZuie3d6AumSmCwbeRA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@rolldown/binding-android-arm64@1.2.5': + resolution: {integrity: sha512-zXcwKlQApYAOELHd8PwKDFkagYF9Wy4e0RJ+0qnzl9Pjnpj75TEG8ufv40p2J7kCEfwZAsNiuzRIyNNMWT38ig==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-darwin-arm64@1.2.2': - resolution: {integrity: sha512-9u9Xv6c1AJZT0FfwH5vrMG5Jjcwhc1MlyrPu0XfTqkzsmqfks2M6W/o5XwAJgVVN/jHpqqngC1WevHKKTIUtIA==} + '@rolldown/binding-darwin-arm64@1.2.5': + resolution: {integrity: sha512-dK4QakI42nzWgJT5sm4y4y/O//D4OxM75/cH28RLV+nzIN9AY+YsbuUVrUTjlLjXR6vpyxFbSsbmNuJ6BP9sww==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-x64@1.2.2': - resolution: {integrity: sha512-9W1mbGZAfW3oqd85bhBkmpyHCCzL1TeG/zFFP3vg7b0rlly8cxOcre5nXwz+LHazCwac2MNWgPdPCHndABjpWQ==} + '@rolldown/binding-darwin-x64@1.2.5': + resolution: {integrity: sha512-fqSALaUu1Wjd1nK2uW2kJDWdLCc8lx1IcY+MTY26Aurfdx19anlzhqXOgCFbBFQnlFDTn4TC1/7Nz4Bl2mLP3A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-freebsd-x64@1.2.2': - resolution: {integrity: sha512-0p1lhiCSCyaerFwtrdZQUx7NqGk6LQnaRKWX7tFQqwQgvX0rjM15cIkm3pax1UpEakK14C4mOxx/jSqCBdBRqQ==} + '@rolldown/binding-freebsd-x64@1.2.5': + resolution: {integrity: sha512-/vCnNxlkxs9tKxNDcyWUePpJ/PgTzxIaVhoM5SmG8UV+GR/IcPam4VYxi7GIMo7PSDuNqlJqvprqii9NqqVCMw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-linux-arm-gnueabihf@1.2.2': - resolution: {integrity: sha512-e+cOJXrJ2L3zx6YzqPg+f6Wbk3V1cKB8bOhbaYdVYN3DdquzNdRAmrbETz1qnt5yp/c7JNlNjmITiA2cVneQ7w==} + '@rolldown/binding-linux-arm-gnueabihf@1.2.5': + resolution: {integrity: sha512-abk0NLA519LxRCszmbE0jYKuQ9YPocOXTiOXOo6Yr+YAT95VH+PtqYAjOJvGKt3viEd/x4qzabAlwd5bHOOARg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm64-gnu@1.2.2': - resolution: {integrity: sha512-JsSMsj6sNat/MuhG5fnBD7QgbtpHKVe30x5/bAVirDHdhoQRXJkF6xc0Jqk8O4fiCUQAzMOoH9wZi3m60c8wtg==} + '@rolldown/binding-linux-arm64-gnu@1.2.5': + resolution: {integrity: sha512-Y7eALiJ8lr0M2HH103Js+g7V34wf6snlpZLAsHI90uLhr3PVlNsbFVAXJC9d/V6BnPyKtpSwI+NcB/RLxsQxuA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-musl@1.2.2': - resolution: {integrity: sha512-B5G/zJdHaoJn9vD50eGHWkiWfmq8Uhi3IiLPJTzmZTrAalk1bztUikSXo0qga18ibE0IXboyeMUnhPjhAJ45wQ==} + '@rolldown/binding-linux-arm64-musl@1.2.5': + resolution: {integrity: sha512-xMvZgnbZg4YVnR/AX2b3oOPDTFYJvUVaJg5FedA/LuvexAtXibZQej4cnTkw3rjsJ/ggUROB64TdtETiim+FYA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-ppc64-gnu@1.2.2': - resolution: {integrity: sha512-6mC/awzKka8W6EoekjegpfGkjz8jXWDX63pqu/HYVpyKtZfu65Jsh4QAH3Kej3CAv/c1oGX7psTmFEbr0mDxLA==} + '@rolldown/binding-linux-ppc64-gnu@1.2.5': + resolution: {integrity: sha512-GRjeqTUDHTo5GwntsLaAMcBahG3nlpjftXWZLN73HiYQlhwEowvarFgQnRnQZtIp4keXX7quXFbG38uPZBa2EA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.2.2': - resolution: {integrity: sha512-412MX9fJLdA1IK28EZnc8jYv2HRTleOZgfLQumJ5zy7OeJLZlg/CETwFaXjNmGVxG51cFHpKLqb5LKvBC+HsHA==} + '@rolldown/binding-linux-s390x-gnu@1.2.5': + resolution: {integrity: sha512-vLNTR45F2Uwc8AufkNXPmB4VliaXs+FvcheEogIzOXzO4l+LzieXF5A/TWxLy5HtqpsRCHUfd0lPVrrdgXdLHQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.2.2': - resolution: {integrity: sha512-Q/+HI/ToJafZ1iCqGgVQXUEkIjufHCTF0gBQ2a5o3cg7GJ2h0qyq3nvvSmU+bGda2/7ygXpTY4TM6gO9OhQ0ZA==} + '@rolldown/binding-linux-x64-gnu@1.2.5': + resolution: {integrity: sha512-Mgj59/HTuYeK9Gz2MA+mBWKnHsAgkBSec15ZMb1st3oIfFbX7gCjOae7GydHhzcyQi9Z/7M1QuN9bR3oFqF0jQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-musl@1.2.2': - resolution: {integrity: sha512-ZKp/w41n6wCvxzxQHtQSbuphfX3Y4cCvbjkKHusrLx4lh+JWLTU7StSltO/DKARISzbj368d+qUaCjI8K2wzXw==} + '@rolldown/binding-linux-x64-musl@1.2.5': + resolution: {integrity: sha512-mY8AP0/ichsbhAxGnLa3d3+MwV0EfgrPND2bplI3Ym8T6R2pJ0N87bvrKVwNXmdy3jnr6eQBecdqx/HMknBmpA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-openharmony-arm64@1.2.2': - resolution: {integrity: sha512-pxE6xD4KS3eAROkKK5yrhB9/3+vhlhVGMvlQLbdpzrBGDbKrnzx3RLwPaHvasLo6jgaiBLn7e04Df9C4tYhjmA==} + '@rolldown/binding-openharmony-arm64@1.2.5': + resolution: {integrity: sha512-8SLssA2oweAxyRgDp789ACfRb/3P+zNRJpzZxSizxF9m8NUDQ4+3xjo8ttjhVGGw6Qxb70oZiEtIjaKikCO7Yw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-win32-arm64-msvc@1.2.2': - resolution: {integrity: sha512-4MqEue5re+xIZzAWsB8sj0P1kqZySWqIuN4t6QaIO/YA6SFwySOLruvWQFzfmqk8LBK2P30KCSJwf6mJCZZ5/A==} + '@rolldown/binding-win32-arm64-msvc@1.2.5': + resolution: {integrity: sha512-vGbruD5zquhoc8D9SViXgN2FBJtNdTyQ4DtG+SWiEGlJiAzoKcZ2xp+xuXCffhubVdt0NJlTZqkeRuERy7g8Cw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.2': - resolution: {integrity: sha512-NweNxxD0Nf9t8v7kodun45Ijp3EIwYY+uydPP6qBEYvfBqhIjN6dZMzlQja3tqX/aLs3F3Uz+AxDpKgRhpOZQg==} + '@rolldown/binding-win32-x64-msvc@1.2.5': + resolution: {integrity: sha512-e/SXpgISz+IoqVcSSI0rx/d/he8zqLex+/rCWpnHpmVfmPIUjag9H6P7zotf0gJHwPUhQxZ/mF8tr6acebT9yw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -602,8 +608,8 @@ packages: '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@tsconfig/node24@24.0.4': - resolution: {integrity: sha512-2A933l5P5oCbv6qSxHs7ckKwobs8BDAe9SJ/Xr2Hy+nDlwmLE1GhFh/g/vXGRZWgxBg9nX/5piDtHR9Dkw/XuA==} + '@tsconfig/node24@24.0.5': + resolution: {integrity: sha512-DWC54fGPuhZgg3Ighg4Y/A/bA3ZdB5hnzAuv/MkQ/X85sVsBsMQxu8t7khutdYeiNksBbFdDyeqv1HSW2Zl8aA==} '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} @@ -614,8 +620,8 @@ packages: '@types/estree@1.0.9': resolution: {integrity: sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==} - '@types/node@26.1.2': - resolution: {integrity: sha512-Vu4a5UFA9rIIFJ7rB/Vaafh9lrCQszopTCx6KjFboXTGQbPNasehVR5TEiithSDGyd1DEiUByggTZsg8jukeIg==} + '@types/node@26.3.0': + resolution: {integrity: sha512-L3fgrnchriRC2ExBflb8j4uZZURHZfQsmQeyVzhjcHW4kkwVyo8/0h1B2MVzMTrYUJYu6G7EWs14hW/L9putqw==} '@types/semver@7.8.0': resolution: {integrity: sha512-1mAINjtQCXXeLkJ9ehXkwOcBpqtLxiVtKhpUf83DdRNdQKV0iXZpaHYqRr7nj+wvxuJzoAmAwXI+sCNMv1CzLQ==} @@ -629,11 +635,11 @@ packages: resolution: {integrity: sha512-bLMpVcWZNzq6lYOybwFwOAR1IXKcHnhUNqYeHjl1bET/qE3jFPFH+p8Wrh3rU4xwdnifPxmKNESBYnvnmc75aA==} engines: {node: '>=22.0.0'} - '@vitest/expect@4.1.10': - resolution: {integrity: sha512-YsCn+qAk1GWjQOWFEsEcL2gNQ0zmVmQu3T03qP6UyjhtmdtwtbuI+DASn/7iQB3HGTXkdBwGddzxPlmiql5vlA==} + '@vitest/expect@4.1.11': + resolution: {integrity: sha512-VX2x5vNJXET47KAFzwERI+KRMtTTCSWTfSMKsW7JsUsXV4psq++e3DvZpuTDOpHcxytiDs6p2nhVb2tVDiiUYw==} - '@vitest/mocker@4.1.10': - resolution: {integrity: sha512-v0xaezt+DKEmKfaxg133ldzADrwLGd7Ze1MfQQTYfvs8OqZIwbxyxaYURivwV7sWy5fqn3rH5uOrSp07bp44Ow==} + '@vitest/mocker@4.1.11': + resolution: {integrity: sha512-2XJVD55d1o5AZous5CCGKS74g/riOj9odEt2bQpCVZeblHyHdnMeFl4jl0XjU21stf4mbjUkew2eXQZt65g5CQ==} peerDependencies: msw: ^2.4.9 vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -643,20 +649,20 @@ packages: vite: optional: true - '@vitest/pretty-format@4.1.10': - resolution: {integrity: sha512-W1HsjSH4MXQ9YfmmhLAoIYf1HRfekQCGngeIgcei6MP5QQGWUe0gkopdZQaVCFO+JDJMrAJGwa5pRpNpvy4P8Q==} + '@vitest/pretty-format@4.1.11': + resolution: {integrity: sha512-yiZzPbGTS9Sr/JpFl8zHrcIkAofNbFV6k21vIgQN/cY/oxZeXhJv5sc/MBJ5jFKWmWs+oJHw0UXLZjmf931+Vw==} - '@vitest/runner@4.1.10': - resolution: {integrity: sha512-IKI6kpIH+LmpROplyLwBBaCfMgOZOMsygVa6BARD6ahA04VRuJSa6OaVG7kRvSEMD870Vd91rSSw0eegtWyLGg==} + '@vitest/runner@4.1.11': + resolution: {integrity: sha512-LztvUgdwMNJMIkj3hQnnxiC2Xy1zNxq928W/xhjCLaNCzqTZOudjwbQf6v9IntZGPw132i2Lq2rgTRZHD3JHNw==} - '@vitest/snapshot@4.1.10': - resolution: {integrity: sha512-xRkfOT1qpTAi/Ti4Y1LtfRc3kEuqxGw59eN2jN9pRWMtS/XDevekhcFSqvQqjUNGksfjMJu3Y+oJ+4Ypn2OaJw==} + '@vitest/snapshot@4.1.11': + resolution: {integrity: sha512-pN7ikn1ON7h8ee4gIAp4AzyK+zBtJPzVbqOgu5LCEh4VaJVbPQcgYQYJIMGQPXVeJJq1fnfazis7a5pFNPahog==} - '@vitest/spy@4.1.10': - resolution: {integrity: sha512-PLf/Ugvoq5wO/b4rwYCR1h2PSIdXz7wnkQFMiUpLdtM7l6pqVFcQIBEHyT1+l+cj7mNwAfZHzqXqDyjvOuwbDw==} + '@vitest/spy@4.1.11': + resolution: {integrity: sha512-apNa/prQy2qCeywhnixOHPRCgGNhvg7T4Dapfl1GahLp/R+uhBm5cPyFoNVyqsNd2h1nJxL6BqqdIjiABL60YA==} - '@vitest/utils@4.1.10': - resolution: {integrity: sha512-fy9am/HWxbaGt/Sawrp90vt6Y6jQwf1RX77cz3uwoJwJVMli/e1IEwRPnMNJ7vKfPTwo0diXifkpPvwH9v7nGA==} + '@vitest/utils@4.1.11': + resolution: {integrity: sha512-zTCVGpyFsGWBhllOyKlTw/vnr6D9qxsfSDyfbyZmTyjHw5N/VuvzHpHoQjm2ZJzn4RJgx5w4r7V0er69CmLgPQ==} abort-controller@3.0.0: resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} @@ -840,8 +846,8 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - es-module-lexer@2.3.1: - resolution: {integrity: sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==} + es-module-lexer@2.3.2: + resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -922,6 +928,10 @@ packages: resolution: {integrity: sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==} hasBin: true + human-id@4.2.1: + resolution: {integrity: sha512-zPGsiS+dWoTZtZ4AtpA9Y+BdSFSNWvnouNlWNoUFyAM6xHOHmdCvqO3k8AIbdamCOv4gUFUVNPf6rJFfc4UiJw==} + hasBin: true + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -1013,8 +1023,8 @@ packages: resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==} engines: {node: '>=12.20.0'} - oxfmt@0.61.0: - resolution: {integrity: sha512-DxdHBEMYpcEnHoUHjjOigUqV2TYKsvxLwUPXnVYBjgFdqrcQ/91OtwubtZ2PUodCs3sStI8R5Qw3fKNGK4e8wQ==} + oxfmt@0.65.0: + resolution: {integrity: sha512-SgS5VgnP42T0zl3zWD+xoH8FCqg1SAFnSRoOT/qeoa6gxcYIqrDMOmcXIg/EWSN92Du4ogB4riuKhKd6Y4CGhw==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -1054,6 +1064,10 @@ packages: resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==} engines: {node: '>=12'} + picomatch@4.0.7: + resolution: {integrity: sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==} + engines: {node: '>=12'} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} @@ -1071,8 +1085,8 @@ packages: readdir-glob@1.1.3: resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} - rolldown@1.2.2: - resolution: {integrity: sha512-opwpo1tQBAcpSUJDt94B7hhLNGOKjCdE//XXjeLrnx9b83bjnw45tXdg1b09yEw/VLFBJGZpwRULMmOZo7ol+A==} + rolldown@1.2.5: + resolution: {integrity: sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true @@ -1255,20 +1269,20 @@ packages: yaml: optional: true - vitest@4.1.10: - resolution: {integrity: sha512-R9jUTe5S4Qb0HCd4TNqpC7oGcrMssMRGXLW80ubjWsW9VH5GF8y1Y0SFLY9AbqSk6nt0PnOx4H4WNJYZ13GUPw==} + vitest@4.1.11: + resolution: {integrity: sha512-fhACrNXUidIbGSBr5FlbuBkO7VWC1ZyLl0DO4CU2DrQoAPxX84Ysxs+HeGQpii5lZWV1Q4gBZTTu49mF+A6Edw==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.1.10 - '@vitest/browser-preview': 4.1.10 - '@vitest/browser-webdriverio': 4.1.10 - '@vitest/coverage-istanbul': 4.1.10 - '@vitest/coverage-v8': 4.1.10 - '@vitest/ui': 4.1.10 + '@vitest/browser-playwright': 4.1.11 + '@vitest/browser-preview': 4.1.11 + '@vitest/browser-webdriverio': 4.1.11 + '@vitest/coverage-istanbul': 4.1.11 + '@vitest/coverage-v8': 4.1.11 + '@vitest/ui': 4.1.11 happy-dom: '*' jsdom: '*' vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1508,7 +1522,7 @@ snapshots: '@changesets/apply-release-plan@8.0.0': dependencies: '@changesets/config': 4.0.0 - '@changesets/format': 0.1.1 + '@changesets/format': 0.1.2 '@changesets/git': 4.0.0 '@changesets/should-skip-package': 1.0.0 '@changesets/types': 7.0.0 @@ -1533,7 +1547,7 @@ snapshots: '@changesets/get-github-info': 1.0.0 '@changesets/types': 7.0.0 - '@changesets/cli@3.0.0': + '@changesets/cli@3.0.1': dependencies: '@changesets/apply-release-plan': 8.0.0 '@changesets/assemble-release-plan': 7.0.0 @@ -1546,7 +1560,7 @@ snapshots: '@changesets/read': 1.0.0 '@changesets/should-skip-package': 1.0.0 '@changesets/types': 7.0.0 - '@changesets/write': 1.0.0 + '@changesets/write': 1.0.1 '@clack/prompts': 1.7.0 '@manypkg/get-packages': 3.1.0 '@pnpm/deps.graph-sequencer': 1100.0.1 @@ -1563,11 +1577,11 @@ snapshots: '@changesets/should-skip-package': 1.0.0 '@changesets/types': 7.0.0 '@manypkg/get-packages': 3.1.0 - picomatch: 4.0.5 + picomatch: 4.0.7 '@changesets/errors@1.0.0': {} - '@changesets/format@0.1.1': + '@changesets/format@0.1.2': dependencies: package-manager-detector: 1.8.0 tinyexec: 1.3.0 @@ -1625,11 +1639,11 @@ snapshots: '@changesets/types@7.0.0': {} - '@changesets/write@1.0.0': + '@changesets/write@1.0.1': dependencies: - '@changesets/format': 0.1.1 + '@changesets/format': 0.1.2 '@changesets/types': 7.0.0 - human-id: 4.2.0 + human-id: 4.2.1 '@clack/core@1.4.3': dependencies: @@ -1746,63 +1760,63 @@ snapshots: dependencies: '@octokit/openapi-types': 28.0.0 - '@oxc-project/types@0.142.0': {} + '@oxc-project/types@0.146.0': {} - '@oxfmt/binding-android-arm-eabi@0.61.0': + '@oxfmt/binding-android-arm-eabi@0.65.0': optional: true - '@oxfmt/binding-android-arm64@0.61.0': + '@oxfmt/binding-android-arm64@0.65.0': optional: true - '@oxfmt/binding-darwin-arm64@0.61.0': + '@oxfmt/binding-darwin-arm64@0.65.0': optional: true - '@oxfmt/binding-darwin-x64@0.61.0': + '@oxfmt/binding-darwin-x64@0.65.0': optional: true - '@oxfmt/binding-freebsd-x64@0.61.0': + '@oxfmt/binding-freebsd-x64@0.65.0': optional: true - '@oxfmt/binding-linux-arm-gnueabihf@0.61.0': + '@oxfmt/binding-linux-arm-gnueabihf@0.65.0': optional: true - '@oxfmt/binding-linux-arm-musleabihf@0.61.0': + '@oxfmt/binding-linux-arm-musleabihf@0.65.0': optional: true - '@oxfmt/binding-linux-arm64-gnu@0.61.0': + '@oxfmt/binding-linux-arm64-gnu@0.65.0': optional: true - '@oxfmt/binding-linux-arm64-musl@0.61.0': + '@oxfmt/binding-linux-arm64-musl@0.65.0': optional: true - '@oxfmt/binding-linux-ppc64-gnu@0.61.0': + '@oxfmt/binding-linux-ppc64-gnu@0.65.0': optional: true - '@oxfmt/binding-linux-riscv64-gnu@0.61.0': + '@oxfmt/binding-linux-riscv64-gnu@0.65.0': optional: true - '@oxfmt/binding-linux-riscv64-musl@0.61.0': + '@oxfmt/binding-linux-riscv64-musl@0.65.0': optional: true - '@oxfmt/binding-linux-s390x-gnu@0.61.0': + '@oxfmt/binding-linux-s390x-gnu@0.65.0': optional: true - '@oxfmt/binding-linux-x64-gnu@0.61.0': + '@oxfmt/binding-linux-x64-gnu@0.65.0': optional: true - '@oxfmt/binding-linux-x64-musl@0.61.0': + '@oxfmt/binding-linux-x64-musl@0.65.0': optional: true - '@oxfmt/binding-openharmony-arm64@0.61.0': + '@oxfmt/binding-openharmony-arm64@0.65.0': optional: true - '@oxfmt/binding-win32-arm64-msvc@0.61.0': + '@oxfmt/binding-win32-arm64-msvc@0.65.0': optional: true - '@oxfmt/binding-win32-ia32-msvc@0.61.0': + '@oxfmt/binding-win32-ia32-msvc@0.65.0': optional: true - '@oxfmt/binding-win32-x64-msvc@0.61.0': + '@oxfmt/binding-win32-x64-msvc@0.65.0': optional: true '@pkgjs/parseargs@0.11.0': @@ -1829,53 +1843,56 @@ snapshots: '@protobuf-ts/runtime@2.11.1': {} - '@rolldown/binding-android-arm64@1.2.2': + '@rolldown/binding-android-arm-eabi@1.2.5': optional: true - '@rolldown/binding-darwin-arm64@1.2.2': + '@rolldown/binding-android-arm64@1.2.5': optional: true - '@rolldown/binding-darwin-x64@1.2.2': + '@rolldown/binding-darwin-arm64@1.2.5': optional: true - '@rolldown/binding-freebsd-x64@1.2.2': + '@rolldown/binding-darwin-x64@1.2.5': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.2': + '@rolldown/binding-freebsd-x64@1.2.5': optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.2': + '@rolldown/binding-linux-arm-gnueabihf@1.2.5': optional: true - '@rolldown/binding-linux-arm64-musl@1.2.2': + '@rolldown/binding-linux-arm64-gnu@1.2.5': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.2.2': + '@rolldown/binding-linux-arm64-musl@1.2.5': optional: true - '@rolldown/binding-linux-s390x-gnu@1.2.2': + '@rolldown/binding-linux-ppc64-gnu@1.2.5': optional: true - '@rolldown/binding-linux-x64-gnu@1.2.2': + '@rolldown/binding-linux-s390x-gnu@1.2.5': optional: true - '@rolldown/binding-linux-x64-musl@1.2.2': + '@rolldown/binding-linux-x64-gnu@1.2.5': optional: true - '@rolldown/binding-openharmony-arm64@1.2.2': + '@rolldown/binding-linux-x64-musl@1.2.5': optional: true - '@rolldown/binding-win32-arm64-msvc@1.2.2': + '@rolldown/binding-openharmony-arm64@1.2.5': optional: true - '@rolldown/binding-win32-x64-msvc@1.2.2': + '@rolldown/binding-win32-arm64-msvc@1.2.5': + optional: true + + '@rolldown/binding-win32-x64-msvc@1.2.5': optional: true '@rolldown/pluginutils@1.0.1': {} '@standard-schema/spec@1.1.0': {} - '@tsconfig/node24@24.0.4': {} + '@tsconfig/node24@24.0.5': {} '@types/chai@5.2.3': dependencies: @@ -1886,7 +1903,7 @@ snapshots: '@types/estree@1.0.9': {} - '@types/node@26.1.2': + '@types/node@26.3.0': dependencies: undici-types: 8.3.0 @@ -1907,44 +1924,44 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/expect@4.1.10': + '@vitest/expect@4.1.11': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.1.10 - '@vitest/utils': 4.1.10 + '@vitest/spy': 4.1.11 + '@vitest/utils': 4.1.11 chai: 6.2.2 tinyrainbow: 3.1.1 - '@vitest/mocker@4.1.10(vite@8.2.0)': + '@vitest/mocker@4.1.11(vite@8.2.0)': dependencies: - '@vitest/spy': 4.1.10 + '@vitest/spy': 4.1.11 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 8.2.0(@types/node@26.1.2)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.3.0)(yaml@2.9.0) - '@vitest/pretty-format@4.1.10': + '@vitest/pretty-format@4.1.11': dependencies: tinyrainbow: 3.1.1 - '@vitest/runner@4.1.10': + '@vitest/runner@4.1.11': dependencies: - '@vitest/utils': 4.1.10 + '@vitest/utils': 4.1.11 pathe: 2.0.3 - '@vitest/snapshot@4.1.10': + '@vitest/snapshot@4.1.11': dependencies: - '@vitest/pretty-format': 4.1.10 - '@vitest/utils': 4.1.10 + '@vitest/pretty-format': 4.1.11 + '@vitest/utils': 4.1.11 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.1.10': {} + '@vitest/spy@4.1.11': {} - '@vitest/utils@4.1.10': + '@vitest/utils@4.1.11': dependencies: - '@vitest/pretty-format': 4.1.10 + '@vitest/pretty-format': 4.1.11 convert-source-map: 2.0.0 tinyrainbow: 3.1.1 @@ -2104,7 +2121,7 @@ snapshots: emoji-regex@9.2.2: {} - es-module-lexer@2.3.1: {} + es-module-lexer@2.3.2: {} estree-walker@3.0.3: dependencies: @@ -2148,9 +2165,9 @@ snapshots: strnum: 2.4.1 xml-naming: 0.3.0 - fdir@6.5.0(picomatch@4.0.5): + fdir@6.5.0(picomatch@4.0.7): optionalDependencies: - picomatch: 4.0.5 + picomatch: 4.0.7 foreground-child@3.3.1: dependencies: @@ -2189,6 +2206,8 @@ snapshots: human-id@4.2.0: {} + human-id@4.2.1: {} + ieee754@1.2.1: {} import-meta-resolve@4.2.0: {} @@ -2260,29 +2279,29 @@ snapshots: obug@2.1.4: {} - oxfmt@0.61.0: + oxfmt@0.65.0: dependencies: tinypool: 2.1.0 optionalDependencies: - '@oxfmt/binding-android-arm-eabi': 0.61.0 - '@oxfmt/binding-android-arm64': 0.61.0 - '@oxfmt/binding-darwin-arm64': 0.61.0 - '@oxfmt/binding-darwin-x64': 0.61.0 - '@oxfmt/binding-freebsd-x64': 0.61.0 - '@oxfmt/binding-linux-arm-gnueabihf': 0.61.0 - '@oxfmt/binding-linux-arm-musleabihf': 0.61.0 - '@oxfmt/binding-linux-arm64-gnu': 0.61.0 - '@oxfmt/binding-linux-arm64-musl': 0.61.0 - '@oxfmt/binding-linux-ppc64-gnu': 0.61.0 - '@oxfmt/binding-linux-riscv64-gnu': 0.61.0 - '@oxfmt/binding-linux-riscv64-musl': 0.61.0 - '@oxfmt/binding-linux-s390x-gnu': 0.61.0 - '@oxfmt/binding-linux-x64-gnu': 0.61.0 - '@oxfmt/binding-linux-x64-musl': 0.61.0 - '@oxfmt/binding-openharmony-arm64': 0.61.0 - '@oxfmt/binding-win32-arm64-msvc': 0.61.0 - '@oxfmt/binding-win32-ia32-msvc': 0.61.0 - '@oxfmt/binding-win32-x64-msvc': 0.61.0 + '@oxfmt/binding-android-arm-eabi': 0.65.0 + '@oxfmt/binding-android-arm64': 0.65.0 + '@oxfmt/binding-darwin-arm64': 0.65.0 + '@oxfmt/binding-darwin-x64': 0.65.0 + '@oxfmt/binding-freebsd-x64': 0.65.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.65.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.65.0 + '@oxfmt/binding-linux-arm64-gnu': 0.65.0 + '@oxfmt/binding-linux-arm64-musl': 0.65.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.65.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.65.0 + '@oxfmt/binding-linux-riscv64-musl': 0.65.0 + '@oxfmt/binding-linux-s390x-gnu': 0.65.0 + '@oxfmt/binding-linux-x64-gnu': 0.65.0 + '@oxfmt/binding-linux-x64-musl': 0.65.0 + '@oxfmt/binding-openharmony-arm64': 0.65.0 + '@oxfmt/binding-win32-arm64-msvc': 0.65.0 + '@oxfmt/binding-win32-ia32-msvc': 0.65.0 + '@oxfmt/binding-win32-x64-msvc': 0.65.0 package-json-from-dist@1.0.1: {} @@ -2303,6 +2322,8 @@ snapshots: picomatch@4.0.5: {} + picomatch@4.0.7: {} + process-nextick-args@2.0.1: {} process@0.11.10: {} @@ -2329,25 +2350,26 @@ snapshots: dependencies: minimatch: 5.1.9 - rolldown@1.2.2: + rolldown@1.2.5: dependencies: - '@oxc-project/types': 0.142.0 + '@oxc-project/types': 0.146.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.2.2 - '@rolldown/binding-darwin-arm64': 1.2.2 - '@rolldown/binding-darwin-x64': 1.2.2 - '@rolldown/binding-freebsd-x64': 1.2.2 - '@rolldown/binding-linux-arm-gnueabihf': 1.2.2 - '@rolldown/binding-linux-arm64-gnu': 1.2.2 - '@rolldown/binding-linux-arm64-musl': 1.2.2 - '@rolldown/binding-linux-ppc64-gnu': 1.2.2 - '@rolldown/binding-linux-s390x-gnu': 1.2.2 - '@rolldown/binding-linux-x64-gnu': 1.2.2 - '@rolldown/binding-linux-x64-musl': 1.2.2 - '@rolldown/binding-openharmony-arm64': 1.2.2 - '@rolldown/binding-win32-arm64-msvc': 1.2.2 - '@rolldown/binding-win32-x64-msvc': 1.2.2 + '@rolldown/binding-android-arm-eabi': 1.2.5 + '@rolldown/binding-android-arm64': 1.2.5 + '@rolldown/binding-darwin-arm64': 1.2.5 + '@rolldown/binding-darwin-x64': 1.2.5 + '@rolldown/binding-freebsd-x64': 1.2.5 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.5 + '@rolldown/binding-linux-arm64-gnu': 1.2.5 + '@rolldown/binding-linux-arm64-musl': 1.2.5 + '@rolldown/binding-linux-ppc64-gnu': 1.2.5 + '@rolldown/binding-linux-s390x-gnu': 1.2.5 + '@rolldown/binding-linux-x64-gnu': 1.2.5 + '@rolldown/binding-linux-x64-musl': 1.2.5 + '@rolldown/binding-openharmony-arm64': 1.2.5 + '@rolldown/binding-win32-arm64-msvc': 1.2.5 + '@rolldown/binding-win32-x64-msvc': 1.2.5 safe-buffer@5.1.2: {} @@ -2444,8 +2466,8 @@ snapshots: tinyglobby@0.2.17: dependencies: - fdir: 6.5.0(picomatch@4.0.5) - picomatch: 4.0.5 + fdir: 6.5.0(picomatch@4.0.7) + picomatch: 4.0.7 tinypool@2.1.0: {} @@ -2476,40 +2498,40 @@ snapshots: util-deprecate@1.0.2: {} - vite@8.2.0(@types/node@26.1.2)(yaml@2.9.0): + vite@8.2.0(@types/node@26.3.0)(yaml@2.9.0): dependencies: - picomatch: 4.0.5 - rolldown: 1.2.2 + picomatch: 4.0.7 + rolldown: 1.2.5 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.1.2 + '@types/node': 26.3.0 fsevents: 2.3.3 yaml: 2.9.0 - vitest@4.1.10(@types/node@26.1.2)(vite@8.2.0): + vitest@4.1.11(@types/node@26.3.0)(vite@8.2.0): dependencies: - '@vitest/expect': 4.1.10 - '@vitest/mocker': 4.1.10(vite@8.2.0) - '@vitest/pretty-format': 4.1.10 - '@vitest/runner': 4.1.10 - '@vitest/snapshot': 4.1.10 - '@vitest/spy': 4.1.10 - '@vitest/utils': 4.1.10 - es-module-lexer: 2.3.1 + '@vitest/expect': 4.1.11 + '@vitest/mocker': 4.1.11(vite@8.2.0) + '@vitest/pretty-format': 4.1.11 + '@vitest/runner': 4.1.11 + '@vitest/snapshot': 4.1.11 + '@vitest/spy': 4.1.11 + '@vitest/utils': 4.1.11 + es-module-lexer: 2.3.2 expect-type: 1.4.0 magic-string: 0.30.21 obug: 2.1.4 pathe: 2.0.3 - picomatch: 4.0.5 + picomatch: 4.0.7 std-env: 4.2.0 tinybench: 2.9.0 tinyexec: 1.3.0 tinyglobby: 0.2.17 tinyrainbow: 3.1.1 - vite: 8.2.0(@types/node@26.1.2)(yaml@2.9.0) + vite: 8.2.0(@types/node@26.3.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 26.1.2 + '@types/node': 26.3.0 transitivePeerDependencies: - msw From 85efcafd803b2ed387db43aad7d732f641c268d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 06:18:01 +0000 Subject: [PATCH 57/62] Bump actions/checkout in the github-actions group across 1 directory (#734) Bumps the github-actions group with 1 update in the / directory: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 6.0.3 to 7.0.1 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b4311f1884172cec0e10...3d3c42e5aac5ba805825da76410c181273ba90b1) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92d7de31..9b8d9043 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,7 +27,7 @@ jobs: security-events: write # allow writing security events steps: - name: Checkout repository - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false From 371fd77b45f11aeffd80c5ad40f2062fd5986bde Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 06:34:13 +0000 Subject: [PATCH 58/62] Bump human-id in the production-dependencies group across 1 directory (#732) Bumps the production-dependencies group with 1 update in the / directory: [human-id](https://github.com/RienNeVaPlus/human-id). Updates `human-id` from 4.2.0 to 4.2.1 - [Commits](https://github.com/RienNeVaPlus/human-id/commits) --- updated-dependencies: - dependency-name: human-id dependency-version: 4.2.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: production-dependencies ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- pnpm-lock.yaml | 10 ++-------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index a1a5eaf0..a110c760 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@manypkg/get-packages": "^3.1.0", "@octokit/core": "^7.0.7", "@octokit/plugin-throttling": "^11.0.5", - "human-id": "^4.2.0", + "human-id": "^4.2.1", "markdown-table": "^3.0.4", "semver": "^7.8.5", "tinyexec": "^1.3.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 93423fae..1f20327b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,8 +50,8 @@ importers: specifier: ^11.0.5 version: 11.0.5(@octokit/core@7.0.7) human-id: - specifier: ^4.2.0 - version: 4.2.0 + specifier: ^4.2.1 + version: 4.2.1 markdown-table: specifier: ^3.0.4 version: 3.0.4 @@ -924,10 +924,6 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - human-id@4.2.0: - resolution: {integrity: sha512-K3GbkIWqyvvlpfhBPlbEvD97TtqBpAYA4kt+cn2lD2x2HuohzZCibcA2nOlnJT6exqvJLggoB5nv2dNf192nEA==} - hasBin: true - human-id@4.2.1: resolution: {integrity: sha512-zPGsiS+dWoTZtZ4AtpA9Y+BdSFSNWvnouNlWNoUFyAM6xHOHmdCvqO3k8AIbdamCOv4gUFUVNPf6rJFfc4UiJw==} hasBin: true @@ -2204,8 +2200,6 @@ snapshots: transitivePeerDependencies: - supports-color - human-id@4.2.0: {} - human-id@4.2.1: {} ieee754@1.2.1: {} From e08fde7435de7db82496e0d3b7207e879b514117 Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Fri, 4 Sep 2026 18:07:20 +0000 Subject: [PATCH 59/62] Improve log messages (#730) --- .changeset/flat-insects-cry.md | 5 +++++ src/github.ts | 4 ++-- src/index.ts | 7 +++---- src/run.ts | 6 +++--- 4 files changed, 13 insertions(+), 9 deletions(-) create mode 100644 .changeset/flat-insects-cry.md diff --git a/.changeset/flat-insects-cry.md b/.changeset/flat-insects-cry.md new file mode 100644 index 00000000..ceb94474 --- /dev/null +++ b/.changeset/flat-insects-cry.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Improve log messages diff --git a/src/github.ts b/src/github.ts index d44480c4..edf7b74b 100644 --- a/src/github.ts +++ b/src/github.ts @@ -195,7 +195,7 @@ export class GitHub { if (authorIdentity.exitCode === 0 && committerIdentity.exitCode === 0) { return; } - core.info("Setting Git user to github-actions[bot]"); + core.info("Setting git user to github-actions[bot]"); await exec("git", ["config", "user.name", `"github-actions[bot]"`], { cwd: this.cwd, }); @@ -222,7 +222,7 @@ export class GitHub { }) .catch((err) => { // Assuming tag was manually pushed in custom publish script - core.warning(`Failed to create tag ${tag}: ${err.message}`); + core.warning(`Failed to create git tag "${tag}": ${err.message}`); }); } await exec("git", ["push", "origin", tag], { diff --git a/src/index.ts b/src/index.ts index 63e458c2..9aa2e326 100644 --- a/src/index.ts +++ b/src/index.ts @@ -68,7 +68,7 @@ async function main() { switch (true) { case !hasChangesets && !hasPublishScript: core.info( - "No changesets present or were removed by merging release PR. Not publishing because no publish script found.", + "No changesets present or were removed by merging version PR. Not publishing because publish-script is not set.", ); return; case !hasChangesets && hasPublishScript: { @@ -104,7 +104,7 @@ async function main() { } if (result.exitCode !== 0) { - core.error( + throw new Error( `Publish command exited with code ${result.exitCode}${ result.published ? `, but some packages were published: ${result.publishedPackages @@ -113,12 +113,11 @@ async function main() { : "" }`, ); - process.exit(result.exitCode); } return; } case hasChangesets && !hasNonEmptyChangesets: - core.info("All changesets are empty; not creating PR"); + core.info("All changesets are empty. Not creating PR"); return; case hasChangesets: { const { pullRequestNumber } = await runVersion({ diff --git a/src/run.ts b/src/run.ts index 37dd2806..08f00dea 100644 --- a/src/run.ts +++ b/src/run.ts @@ -401,7 +401,7 @@ export async function runVersion({ head: `${context.repo.owner}:${versionBranch}`, base: branch, }); - core.info( + core.debug( `Existing pull requests: ${JSON.stringify( existingPullRequests.data, null, @@ -427,7 +427,7 @@ export async function runVersion({ }); if (existingPullRequests.data.length === 0) { - core.info("creating pull request"); + core.info("Creating pull request"); const { data: newPullRequest } = await octokit.rest.pulls.create({ base: branch, head: versionBranch, @@ -443,7 +443,7 @@ export async function runVersion({ } else { const [pullRequest] = existingPullRequests.data; - core.info(`updating found pull request #${pullRequest.number}`); + core.info(`Updating found pull request #${pullRequest.number}`); const convertPullRequestToDraftMutation = prDraft === "always" ? ` From 88338839e35c3e0fa61f3c9c3f27e7572cd5f2cf Mon Sep 17 00:00:00 2001 From: Bjorn Lu Date: Mon, 7 Sep 2026 11:45:47 +0000 Subject: [PATCH 60/62] Handle error when pushing git tags with the git CLI (#735) * Handle error when pushing git tags with the git CLI * Update message --- .changeset/cool-rules-shine.md | 5 +++++ src/github.ts | 30 ++++++++++++++++-------------- 2 files changed, 21 insertions(+), 14 deletions(-) create mode 100644 .changeset/cool-rules-shine.md diff --git a/.changeset/cool-rules-shine.md b/.changeset/cool-rules-shine.md new file mode 100644 index 00000000..9267c5cf --- /dev/null +++ b/.changeset/cool-rules-shine.md @@ -0,0 +1,5 @@ +--- +"@changesets/action": patch +--- + +Handle error when pushing git tags with the git CLI diff --git a/src/github.ts b/src/github.ts index edf7b74b..48886a8d 100644 --- a/src/github.ts +++ b/src/github.ts @@ -213,25 +213,27 @@ export class GitHub { } async pushTag(tag: string) { - if (!this.pushWithGitCli) { - return this.octokit.rest.git - .createRef({ + try { + if (!this.pushWithGitCli) { + await this.octokit.rest.git.createRef({ ...context.repo, ref: `refs/tags/${tag}`, sha: context.sha, - }) - .catch((err) => { - // Assuming tag was manually pushed in custom publish script - core.warning(`Failed to create git tag "${tag}": ${err.message}`); }); + } else { + await exec("git", ["push", "origin", tag], { + cwd: this.cwd, + env: { + ...process.env, + ...(await this.#getCliAuthEnv()), + } as Record, + }); + } + } catch (err) { + core.warning( + `Failed to create git tag "${tag}". Assuming it was manually pushed by the publish script: ${(err as Error).message}`, + ); } - await exec("git", ["push", "origin", tag], { - cwd: this.cwd, - env: { - ...process.env, - ...(await this.#getCliAuthEnv()), - } as Record, - }); } async prepareBranch(branch: string) { From 0138f456ec3d73906fcd11169ce59502d8d241c1 Mon Sep 17 00:00:00 2001 From: "changesets-org-version-bot[bot]" <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 11:50:58 +0000 Subject: [PATCH 61/62] Version Packages (#726) Co-authored-by: changesets-org-version-bot[bot] <288406890+changesets-org-version-bot[bot]@users.noreply.github.com> --- .changeset/cool-rules-shine.md | 5 ----- .changeset/flat-insects-cry.md | 5 ----- .changeset/sunny-moons-appear.md | 5 ----- .changeset/warm-teeth-listen.md | 5 ----- CHANGELOG.md | 12 ++++++++++++ package.json | 2 +- 6 files changed, 13 insertions(+), 21 deletions(-) delete mode 100644 .changeset/cool-rules-shine.md delete mode 100644 .changeset/flat-insects-cry.md delete mode 100644 .changeset/sunny-moons-appear.md delete mode 100644 .changeset/warm-teeth-listen.md diff --git a/.changeset/cool-rules-shine.md b/.changeset/cool-rules-shine.md deleted file mode 100644 index 9267c5cf..00000000 --- a/.changeset/cool-rules-shine.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Handle error when pushing git tags with the git CLI diff --git a/.changeset/flat-insects-cry.md b/.changeset/flat-insects-cry.md deleted file mode 100644 index ceb94474..00000000 --- a/.changeset/flat-insects-cry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Improve log messages diff --git a/.changeset/sunny-moons-appear.md b/.changeset/sunny-moons-appear.md deleted file mode 100644 index f3472e81..00000000 --- a/.changeset/sunny-moons-appear.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Fix root action double error logs diff --git a/.changeset/warm-teeth-listen.md b/.changeset/warm-teeth-listen.md deleted file mode 100644 index 9dfddf3f..00000000 --- a/.changeset/warm-teeth-listen.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@changesets/action": patch ---- - -Always switch and reset branch when generating version commits, similar to if `push-with-git-cli` is enabled diff --git a/CHANGELOG.md b/CHANGELOG.md index d489bd14..fed1255f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # @changesets/action +## 2.1.2 + +### Patch Changes + +- [#735](https://github.com/changesets/action/pull/735) [`8833883`](https://github.com/changesets/action/commit/88338839e35c3e0fa61f3c9c3f27e7572cd5f2cf) Thanks [@bluwy](https://github.com/bluwy)! - Handle error when pushing git tags with the git CLI + +- [#724](https://github.com/changesets/action/pull/724) [`36f529f`](https://github.com/changesets/action/commit/36f529f13ab58bbcf6331035cb950385586e8a89) Thanks [@bluwy](https://github.com/bluwy)! - Improve log messages + +- [#724](https://github.com/changesets/action/pull/724) [`36f529f`](https://github.com/changesets/action/commit/36f529f13ab58bbcf6331035cb950385586e8a89) Thanks [@bluwy](https://github.com/bluwy)! - Fix root action double error logs + +- [#729](https://github.com/changesets/action/pull/729) [`ca85897`](https://github.com/changesets/action/commit/ca8589735af2ff6977a0f6474537d550040530d8) Thanks [@bluwy](https://github.com/bluwy)! - Always switch and reset branch when generating version commits, similar to if `push-with-git-cli` is enabled + ## 2.1.1 ### Patch Changes diff --git a/package.json b/package.json index a110c760..97f802d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@changesets/action", - "version": "2.1.1", + "version": "2.1.2", "private": true, "license": "MIT", "type": "module", From ae32849d5ba541f9ae29e40e22a623bc13562f51 Mon Sep 17 00:00:00 2001 From: "changeset-internal-publish-bot[bot]" <282382982+changeset-internal-publish-bot[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 11:58:07 +0000 Subject: [PATCH 62/62] v2.1.2 --- dist/dist-BjZhuI7Y.js | 12 ++ dist/index.js | 1 + dist/pack.js | 1 + dist/pr-comment.js | 1 + dist/pr-status.js | 38 +++++ dist/publish.js | 1 + dist/readChangesetState-DLdyz-Wv.js | 1 + dist/run-CIL9Fbt6.js | 98 ++++++++++++ dist/select-mode.js | 1 + dist/utils-j_VOz275.js | 228 ++++++++++++++++++++++++++++ dist/version.js | 1 + 11 files changed, 383 insertions(+) create mode 100644 dist/dist-BjZhuI7Y.js create mode 100644 dist/index.js create mode 100644 dist/pack.js create mode 100644 dist/pr-comment.js create mode 100644 dist/pr-status.js create mode 100644 dist/publish.js create mode 100644 dist/readChangesetState-DLdyz-Wv.js create mode 100644 dist/run-CIL9Fbt6.js create mode 100644 dist/select-mode.js create mode 100644 dist/utils-j_VOz275.js create mode 100644 dist/version.js diff --git a/dist/dist-BjZhuI7Y.js b/dist/dist-BjZhuI7Y.js new file mode 100644 index 00000000..91cefac0 --- /dev/null +++ b/dist/dist-BjZhuI7Y.js @@ -0,0 +1,12 @@ +import{F as e,I as t,b as n,x as r}from"./utils-j_VOz275.js";import{PassThrough as i}from"node:stream";import a from"node:fs/promises";import{spawn as o}from"node:child_process";import{cwd as s}from"node:process";import c,{basename as l,delimiter as u,dirname as d,normalize as f,resolve as p}from"node:path";import{pipeline as m}from"node:stream/promises";import h from"node:readline";import{closeSync as g,openSync as _,readSync as v,statSync as y}from"node:fs";const b=/^path$/i,x={key:`PATH`,value:``};function S(e){for(let t in e){if(!Object.prototype.hasOwnProperty.call(e,t)||!b.test(t))continue;let n=e[t];return n?{key:t,value:n}:x}return x}function C(e,t){let n=t.value.split(u),r=[],i=e,a;do r.push(p(i,`node_modules`,`.bin`)),a=i,i=d(i);while(i!==a);r.push(d(process.execPath));let o=r.concat(n).join(u);return{key:t.key,value:o}}function w(e,t,n=!0){let r={...process.env,...t};if(!n)return r;let i=C(e,S(r));return r[i.key]=i.value,r}const T=e=>{let t=e.length,n=new i,r=()=>{--t===0&&n.end()};for(let t of e)m(t,n,{end:!1}).then(r).catch(r);return n},E=/([()\][%!^"`<>&|;, *?])/g,D=/^#!\s*(.+)/,O=/\.(?:com|exe)$/i,k=/node_modules[\\/]\.bin[\\/][^\\/]+\.cmd$/i,A=process.platform===`win32`,j=[`.EXE`,`.CMD`,`.BAT`,`.COM`],M=[``];function N(e,t=[],n={}){if(n.shell===!0||!A)return{command:e,args:t,options:n};let r=P(e,n),i=null;if(r!==null){let e=Buffer.alloc(150),t=null;try{t=_(r,`r`),v(t,e,0,150,0)}catch{}finally{t!==null&&g(t)}let n=e.toString().match(D);if(n!==null){let e=n[1].trim(),t=e.indexOf(` `),r=t===-1?e:e.slice(0,t),a=t===-1?``:e.slice(t+1),o=l(r);i=o===`env`?a||null:o}}if(i!==null&&r!==null&&(t=[r,...t],e=i,r=P(e,n)),r===null||!O.test(r)){let i=r!==null&&k.test(r);e=f(e),e=e.replace(E,`^$1`),t=t.map(e=>(e=e.replace(/(?=(\\+?)?)\1"/g,`$1$1\\"`),e=e.replace(/(?=(\\+?)?)\1$/,`$1$1`),e=`"${e}"`,e=e.replace(E,`^$1`),i&&(e=e.replace(E,`^$1`)),e)),t=[`/d`,`/s`,`/c`,`"${[e,...t].join(` `)}"`],e=n.env?.comspec??`cmd.exe`,n={...n,windowsVerbatimArguments:!0}}return{command:e,args:t,options:n}}function P(e,t){let n=(t.cwd??s()).toString(),r=t.env??process.env,i=S(r).value,a=e.includes(`/`)||e.includes(`\\`)?[``]:[n,...i.split(u)],o=r.PATHEXT?r.PATHEXT.split(u):j;e.includes(`.`)&&o[0]!==``&&(o=[``,...o]);for(let t of[o,M])for(let r of a){let i=p(n,r.startsWith(`"`)&&r.endsWith(`"`)&&r.length>1?r.slice(1,-1):r,e);for(let e of t){let t=i+e;try{if(y(t).isFile())return t}catch{}}}return null}var F=class extends Error{result;output;exitCode;get signalCode(){return this.result.signalCode}constructor(e,t,n,r){let i=`The process`;n&&(i=`The command \`${r?.length?`${n} ${r.map(e=>/[ "'`()]/.test(e)?JSON.stringify(e):e).join(` `)}`:n}\``);let a=e.exitCode??1;super(e.signalCode===null?`${i} exited with a non-zero status (${a})`:`${i} was killed by the signal ${e.signalCode}`),this.result=e,this.output=t,this.exitCode=a,Object.defineProperty(this,"result",{enumerable:!1,writable:!1,configurable:!1})}};const I={timeout:void 0,persist:!1},L={windowsHide:!0};function R(e){let t=new AbortController;for(let n of e){if(n.aborted)return t.abort(),n;n.addEventListener(`abort`,()=>{t.abort(n.reason)},{signal:t.signal})}return t.signal}async function z(e){let t=``;try{for await(let n of e)t+=n.toString()}catch{}return t}var B=class{_process;_aborted=!1;_options;_command;_args;_resolveClose;_processClosed;_thrownError;get process(){return this._process}get pid(){return this._process?.pid}get exitCode(){if(this._process&&this._process.exitCode!==null)return this._process.exitCode}get signalCode(){return this._process?.signalCode??null}constructor(e,t,n){this._options={...I,...n},this._command=e,this._args=t??[],this._processClosed=new Promise(e=>{this._resolveClose=e})}kill(e){return this._process?.kill(e)===!0}get aborted(){return this._aborted}get killed(){return this._process?.killed===!0}pipe(e,t,n){return V(e,t,{...n,stdin:this})}async*[Symbol.asyncIterator](){let e=this._process;if(!e)return;let t=[];this._streamErr&&t.push(this._streamErr),this._streamOut&&t.push(this._streamOut);let n=T(t),r=h.createInterface({input:n});for await(let e of r)yield e.toString();if(await this._processClosed,e.removeAllListeners(),this._thrownError)throw this._thrownError;if(this._options?.throwOnError&&(this.exitCode!==0&&this.exitCode!==void 0||this.signalCode!==null))throw new F(this,void 0,this._command,this._args)}async _waitForOutput(){let e=this._process;if(!e)throw Error(`No process was started`);let[t,n]=await Promise.all([this._streamOut?z(this._streamOut):``,this._streamErr?z(this._streamErr):``]);await this._processClosed;let{stdin:r}=this._options;if(r&&typeof r!=`string`&&await r,e.removeAllListeners(),this._thrownError)throw this._thrownError;let i={stderr:n,stdout:t,exitCode:this.exitCode};if(this._options.throwOnError&&(this.exitCode!==0&&this.exitCode!==void 0||this.signalCode!==null))throw new F(this,i,this._command,this._args);return i}then(e,t){return this._waitForOutput().then(e,t)}_streamOut;_streamErr;spawn(){let e=s(),t=this._options,n={...L,...t.nodeOptions},r=[];this._resetState(),t.timeout!==void 0&&r.push(AbortSignal.timeout(t.timeout)),t.signal!==void 0&&r.push(t.signal),t.persist===!0&&(n.detached=!0),r.length>0&&(n.signal=R(r)),n.env=w(e,n.env,t.nodePath);let i=N(this._command,this._args,n),a=o(i.command,i.args,i.options);if(a.stderr&&(this._streamErr=a.stderr),a.stdout&&(this._streamOut=a.stdout),this._process=a,a.once(`error`,this._onError),a.once(`close`,this._onClose),a.stdin){let{stdin:e}=t;typeof e==`string`?a.stdin.end(e):e?.process?.stdout?.pipe(a.stdin)}}_resetState(){this._aborted=!1,this._processClosed=new Promise(e=>{this._resolveClose=e}),this._thrownError=void 0}_onError=e=>{if(e.name===`AbortError`&&(!(e.cause instanceof Error)||e.cause.name!==`TimeoutError`)){this._aborted=!0;return}this._thrownError=e};_onClose=()=>{this._resolveClose&&this._resolveClose()}};const V=(e,t,n)=>{let r=new B(e,t,n);return r.spawn(),r};var H=class extends Error{code;constructor(e,t){super(`${t}, exit code: ${e}`),this.code=e}},U=class extends Error{constructor(e){super(e)}};async function W(e,t){await a.mkdir(c.dirname(e),{recursive:!0}),await a.writeFile(e,t,`utf8`)}async function G(e){let t=c.resolve(e,`.changeset`,`pre.json`),n;try{let e=await a.readFile(t,`utf8`);try{n=JSON.parse(e)}catch(t){throw t instanceof SyntaxError&&console.error(`error parsing json:`,e),t}}catch(e){if(e.code!==`ENOENT`)throw e}return n=n?await K(e,n):void 0,n}async function K(e,t){if(t.initialVersions==null&&t.changesets==null)return t;if(t.initialVersions!=null&&delete t.initialVersions,t.changesets!=null){let n=c.resolve(e,`.changeset`,`pre`);await a.mkdir(n,{recursive:!0});for(let r of t.changesets){let t=c.resolve(e,`.changeset`,`${r}.md`),i=c.resolve(n,`${r}.md`);try{await a.rename(t,i)}catch{}}delete t.changesets}return await W(c.resolve(e,`.changeset`,`pre.json`),JSON.stringify(t,null,2)+` +`),t}var q=e(((e,t)=>{let n=`[^\\\\/]`,r=`[^/]`,i=`(?:\\/|$)`,a=`(?:^|\\/)`,o=`\\.{1,2}${i}`,s={DOT_LITERAL:`\\.`,PLUS_LITERAL:`\\+`,QMARK_LITERAL:`\\?`,SLASH_LITERAL:`\\/`,ONE_CHAR:`(?=.)`,QMARK:r,END_ANCHOR:i,DOTS_SLASH:o,NO_DOT:`(?!\\.)`,NO_DOTS:`(?!${a}${o})`,NO_DOT_SLASH:`(?!\\.{0,1}${i})`,NO_DOTS_SLASH:`(?!${o})`,QMARK_NO_DOT:`[^.\\/]`,STAR:`${r}*?`,START_ANCHOR:a,SEP:`/`},c={...s,SLASH_LITERAL:`[\\\\/]`,QMARK:n,STAR:`${n}*?`,DOTS_SLASH:`\\.{1,2}(?:[\\\\/]|$)`,NO_DOT:`(?!\\.)`,NO_DOTS:`(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))`,NO_DOT_SLASH:`(?!\\.{0,1}(?:[\\\\/]|$))`,NO_DOTS_SLASH:`(?!\\.{1,2}(?:[\\\\/]|$))`,QMARK_NO_DOT:`[^.\\\\/]`,START_ANCHOR:`(?:^|[\\\\/])`,END_ANCHOR:`(?:[\\\\/]|$)`,SEP:`\\`};t.exports={DEFAULT_MAX_EXTGLOB_RECURSION:0,MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{__proto__:null,alnum:`a-zA-Z0-9`,alpha:`a-zA-Z`,ascii:`\\x00-\\x7F`,blank:` \\t`,cntrl:`\\x00-\\x1F\\x7F`,digit:`0-9`,graph:`\\x21-\\x7E`,lower:`a-z`,print:`\\x20-\\x7E `,punct:`\\-!"#$%&'()\\*+,./:;<=>?@[\\]^_\`{|}~`,space:` \\t\\r\\n\\v\\f`,upper:`A-Z`,word:`A-Za-z0-9_`,xdigit:`A-Fa-f0-9`},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":`*`,"**/**":`**`,"**/**/**":`**`},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(e){return{"!":{type:`negate`,open:`(?:(?!(?:`,close:`))${e.STAR})`},"?":{type:`qmark`,open:`(?:`,close:`)?`},"+":{type:`plus`,open:`(?:`,close:`)+`},"*":{type:`star`,open:`(?:`,close:`)*`},"@":{type:`at`,open:`(?:`,close:`)`}}},globChars(e){return e===!0?c:s}}})),J=e((e=>{let{REGEX_BACKSLASH:t,REGEX_REMOVE_BACKSLASH:n,REGEX_SPECIAL_CHARS:r,REGEX_SPECIAL_CHARS_GLOBAL:i}=q();e.isObject=e=>typeof e==`object`&&!!e&&!Array.isArray(e),e.hasRegexChars=e=>r.test(e),e.isRegexChar=t=>t.length===1&&e.hasRegexChars(t),e.escapeRegex=e=>e.replace(i,`\\$1`),e.toPosixSlashes=e=>e.replace(t,`/`),e.isWindows=()=>{if(typeof navigator<`u`&&navigator.platform){let e=navigator.platform.toLowerCase();return e===`win32`||e===`windows`}return typeof process<`u`&&process.platform?process.platform===`win32`:!1},e.removeBackslashes=e=>e.replace(n,e=>e===`\\`?``:e),e.escapeLast=(t,n,r)=>{let i=t.lastIndexOf(n,r);return i===-1?t:t[i-1]===`\\`?e.escapeLast(t,n,i-1):`${t.slice(0,i)}\\${t.slice(i)}`},e.removePrefix=(e,t={})=>{let n=e;return n.startsWith(`./`)&&(n=n.slice(2),t.prefix=`./`),n},e.wrapOutput=(e,t={},n={})=>{let r=`${n.contains?``:`^`}(?:${e})${n.contains?``:`$`}`;return t.negated===!0&&(r=`(?:^(?!${r}).*$)`),r},e.basename=(e,{windows:t}={})=>{let n=e.split(t?/[\\/]/:`/`),r=n[n.length-1];return r===``?n[n.length-2]:r}})),Y=e(((e,t)=>{let n=J(),{CHAR_ASTERISK:r,CHAR_AT:i,CHAR_BACKWARD_SLASH:a,CHAR_COMMA:o,CHAR_DOT:s,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:l,CHAR_LEFT_CURLY_BRACE:u,CHAR_LEFT_PARENTHESES:d,CHAR_LEFT_SQUARE_BRACKET:f,CHAR_PLUS:p,CHAR_QUESTION_MARK:m,CHAR_RIGHT_CURLY_BRACE:h,CHAR_RIGHT_PARENTHESES:g,CHAR_RIGHT_SQUARE_BRACKET:_}=q(),v=e=>e===l||e===a,y=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)};t.exports=(e,t)=>{let b=t||{},x=e.length-1,S=b.parts===!0||b.scanToEnd===!0,C=[],w=[],T=[],E=e,D=-1,O=0,k=0,A=!1,j=!1,M=!1,N=!1,P=!1,F=!1,I=!1,L=!1,R=!1,z=!1,B=0,V,H,U={value:``,depth:0,isGlob:!1},W=()=>D>=x,G=()=>E.charCodeAt(D+1),K=()=>(V=H,E.charCodeAt(++D));for(;D0&&(J=E.slice(0,O),E=E.slice(O),k-=O),q&&M===!0&&k>0?(q=E.slice(0,k),Y=E.slice(k)):M===!0?(q=``,Y=E):q=E,q&&q!==``&&q!==`/`&&q!==E&&v(q.charCodeAt(q.length-1))&&(q=q.slice(0,-1)),b.unescape===!0&&(Y&&=n.removeBackslashes(Y),q&&I===!0&&(q=n.removeBackslashes(q)));let X={prefix:J,input:e,start:O,base:q,glob:Y,isBrace:A,isBracket:j,isGlob:M,isExtglob:N,isGlobstar:P,negated:L,negatedExtglob:R};if(b.tokens===!0&&(X.maxDepth=0,v(H)||w.push(U),X.tokens=w),b.parts===!0||b.tokens===!0){let t;for(let n=0;n{let n=q(),r=J(),{MAX_LENGTH:i,POSIX_REGEX_SOURCE:a,REGEX_NON_SPECIAL_CHARS:o,REGEX_SPECIAL_CHARS_BACKREF:s,REPLACEMENTS:c}=n,l=(e,t)=>{if(typeof t.expandRange==`function`)return t.expandRange(...e,t);e.sort();let n=`[${e.join(`-`)}]`;try{new RegExp(n)}catch{return e.map(e=>r.escapeRegex(e)).join(`..`)}return n},u=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,d=e=>{let t=[],n=0,r=0,i=0,a=``,o=!1;for(let s of e){if(o===!0){a+=s,o=!1;continue}if(s===`\\`){a+=s,o=!0;continue}if(s===`"`){i=i===1?0:1,a+=s;continue}if(i===0){if(s===`[`)n++;else if(s===`]`&&n>0)n--;else if(n===0){if(s===`(`)r++;else if(s===`)`&&r>0)r--;else if(s===`|`&&r===0){t.push(a),a=``;continue}}}a+=s}return t.push(a),t},f=e=>{let t=!1;for(let n of e){if(t===!0){t=!1;continue}if(n===`\\`){t=!0;continue}if(/[?*+@!()[\]{}]/.test(n))return!1}return!0},p=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(f(t))return t.replace(/\\(.)/g,`$1`)},m=e=>{let t=e.map(p).filter(Boolean);for(let e=0;e{if(e[0]!==`+`&&e[0]!==`*`||e[1]!==`(`)return;let n=0,r=0,i=0,a=!1;for(let o=1;o0){n--;continue}if(!(n>0)){if(s===`(`){r++;continue}if(s===`)`&&(r--,r===0))return t===!0&&o!==e.length-1?void 0:{type:e[0],body:e.slice(2,o),end:o}}}}},g=e=>`${e.length===1?r.escapeRegex(e[0]):`[${e.map(e=>r.escapeRegex(e)).join(``)}]`}*`,_=e=>{let t=0,n=[];for(;te.trim());if(i.length!==1)return;let a=p(i[0]);if(!a||a.length!==1)return;n.push(a),t+=r.end+1}if(!(n.length<1))return n},v=e=>{let t=0,n=e.trim(),r=h(n);for(;r;)t++,n=r.body.trim(),r=h(n);return t},y=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let r=typeof t.maxExtglobRecursion==`number`?t.maxExtglobRecursion:n.DEFAULT_MAX_EXTGLOB_RECURSION,i=d(e).map(e=>e.trim());if(i.length>1&&(i.some(e=>e===``)||i.some(e=>/^[*?]+$/.test(e))||m(i)))return{risky:!0};let a=[],o=!1,s=!0;for(let e of i){let t=_(e);if(t){o=!0,a.push(...t);continue}let n=p(e);if(n&&n.length===1){a.push(n);continue}if(s=!1,v(e)>r)return{risky:!0}}return o?s?{risky:!0,safeOutput:g([...new Set(a)])}:{risky:!0}:{risky:!1}},b=(e,t)=>{if(typeof e!=`string`)throw TypeError(`Expected a string`);e=c[e]||e;let d={...t},f=typeof d.maxLength==`number`?Math.min(i,d.maxLength):i,p=e.length;if(p>f)throw SyntaxError(`Input length: ${p}, exceeds maximum allowed length: ${f}`);let m={type:`bos`,value:``,output:d.prepend||``},h=[m],g=d.capture?``:`?:`,_=n.globChars(d.windows),v=n.extglobChars(_),{DOT_LITERAL:x,PLUS_LITERAL:S,SLASH_LITERAL:C,ONE_CHAR:w,DOTS_SLASH:T,NO_DOT:E,NO_DOT_SLASH:D,NO_DOTS_SLASH:O,QMARK:k,QMARK_NO_DOT:A,STAR:j,START_ANCHOR:M}=_,N=e=>`(${g}(?:(?!${M}${e.dot?T:x}).)*?)`,P=d.dot?``:E,F=d.dot?k:A,I=d.bash===!0?N(d):j;d.capture&&(I=`(${I})`),typeof d.noext==`boolean`&&(d.noextglob=d.noext);let L={input:e,index:-1,start:0,dot:d.dot===!0,consumed:``,output:``,prefix:``,backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:h};e=r.removePrefix(e,L),p=e.length;let R=[],z=[],B=[],V=m,H,U=()=>L.index===p-1,W=L.peek=(t=1)=>e[L.index+t],G=L.advance=()=>e[++L.index]||``,K=()=>e.slice(L.index+1),q=(e=``,t=0)=>{L.consumed+=e,L.index+=t},J=e=>{L.output+=e.output==null?e.value:e.output,q(e.value)},Y=()=>{let e=1;for(;W()===`!`&&(W(2)!==`(`||W(3)===`?`);)G(),L.start++,e++;return e%2!=0&&(L.negated=!0,L.start++,!0)},X=e=>{L[e]++,B.push(e)},Z=e=>{L[e]--,B.pop()},Q=e=>{if(V.type===`globstar`){let t=L.braces>0&&(e.type===`comma`||e.type===`brace`),n=e.extglob===!0||R.length&&(e.type===`pipe`||e.type===`paren`);e.type!==`slash`&&e.type!==`paren`&&!t&&!n&&(L.output=L.output.slice(0,-V.output.length),V.type=`star`,V.value=`*`,V.output=I,L.output+=V.output)}if(R.length&&e.type!==`paren`&&(R[R.length-1].inner+=e.value),(e.value||e.output)&&J(e),V&&V.type===`text`&&e.type===`text`){V.output=(V.output||V.value)+e.value,V.value+=e.value;return}e.prev=V,h.push(e),V=e},$=(e,t)=>{let n={...v[t],conditions:1,inner:``};n.prev=V,n.parens=L.parens,n.output=L.output,n.startIndex=L.index,n.tokensIndex=h.length;let r=(d.capture?`(`:``)+n.open;X(`parens`),Q({type:e,value:t,output:L.output?``:w}),Q({type:`paren`,extglob:!0,value:G(),output:r}),R.push(n)},ee=n=>{let i=e.slice(n.startIndex,L.index+1),a=e.slice(n.startIndex+2,L.index),o=y(a,d);if((n.type===`plus`||n.type===`star`)&&o.risky){let e=o.safeOutput?(n.output?``:w)+(d.capture?`(${o.safeOutput})`:o.safeOutput):void 0,t=h[n.tokensIndex];t.type=`text`,t.value=i,t.output=e||r.escapeRegex(i);for(let e=n.tokensIndex+1;e1&&n.inner.includes(`/`)&&(e=N(d)),(e!==I||U()||/^\)+$/.test(K()))&&(s=n.close=`)$))${e}`),n.inner.includes(`*`)&&(c=K())&&/^\.[^\\/.]+$/.test(c)&&(s=n.close=`)${b(c,{...t,fastpaths:!1}).output})${e})`),n.prev.type===`bos`&&(L.negatedExtglob=!0)}Q({type:`paren`,extglob:!0,value:H,output:s}),Z(`parens`)};if(d.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let n=!1,i=e.replace(s,(e,t,r,i,a,o)=>i===`\\`?(n=!0,e):i===`?`?t?t+i+(a?k.repeat(a.length):``):o===0?F+(a?k.repeat(a.length):``):k.repeat(r.length):i===`.`?x.repeat(r.length):i===`*`?t?t+i+(a?I:``):I:t?e:`\\${e}`);return n===!0&&(i=d.unescape===!0?i.replace(/\\/g,``):i.replace(/\\+/g,e=>e.length%2==0?`\\\\`:e?`\\`:``)),i===e&&d.contains===!0?(L.output=e,L):(L.output=r.wrapOutput(i,L,t),L)}for(;!U();){if(H=G(),H===`\0`)continue;if(H===`\\`){let e=W();if(e===`/`&&d.bash!==!0||e===`.`||e===`;`)continue;if(!e){H+=`\\`,Q({type:`text`,value:H});continue}let t=/^\\+/.exec(K()),n=0;if(t&&t[0].length>2&&(n=t[0].length,L.index+=n,n%2!=0&&(H+=`\\`)),d.unescape===!0?H=G():H+=G(),L.brackets===0){Q({type:`text`,value:H});continue}}if(L.brackets>0&&(H!==`]`||V.value===`[`||V.value===`[^`)){if(d.posix!==!1&&H===`:`){let e=V.value.slice(1);if(e.includes(`[`)&&(V.posix=!0,e.includes(`:`))){let e=V.value.lastIndexOf(`[`),t=V.value.slice(0,e),n=V.value.slice(e+2),r=a[n];if(r){V.value=t+r,L.backtrack=!0,G(),!m.output&&h.indexOf(V)===1&&(m.output=w);continue}}}(H===`[`&&W()!==`:`||H===`-`&&W()===`]`)&&(H=`\\${H}`),H===`]`&&(V.value===`[`||V.value===`[^`)&&(H=`\\${H}`),d.posix===!0&&H===`!`&&V.value===`[`&&(H=`^`),V.value+=H,J({value:H});continue}if(L.quotes===1&&H!==`"`){H=r.escapeRegex(H),V.value+=H,J({value:H});continue}if(H===`"`){L.quotes=L.quotes===1?0:1,d.keepQuotes===!0&&Q({type:`text`,value:H});continue}if(H===`(`){X(`parens`),Q({type:`paren`,value:H});continue}if(H===`)`){if(L.parens===0&&d.strictBrackets===!0)throw SyntaxError(u(`opening`,`(`));let e=R[R.length-1];if(e&&L.parens===e.parens+1){ee(R.pop());continue}Q({type:`paren`,value:H,output:L.parens?`)`:`\\)`}),Z(`parens`);continue}if(H===`[`){if(d.nobracket===!0||!K().includes(`]`)){if(d.nobracket!==!0&&d.strictBrackets===!0)throw SyntaxError(u(`closing`,`]`));H=`\\${H}`}else X(`brackets`);Q({type:`bracket`,value:H});continue}if(H===`]`){if(d.nobracket===!0||V&&V.type===`bracket`&&V.value.length===1){Q({type:`text`,value:H,output:`\\${H}`});continue}if(L.brackets===0){if(d.strictBrackets===!0)throw SyntaxError(u(`opening`,`[`));Q({type:`text`,value:H,output:`\\${H}`});continue}Z(`brackets`);let e=V.value.slice(1);if(V.posix!==!0&&e[0]===`^`&&!e.includes(`/`)&&(H=`/${H}`),V.value+=H,J({value:H}),d.literalBrackets===!1||r.hasRegexChars(e))continue;let t=r.escapeRegex(V.value);if(L.output=L.output.slice(0,-V.value.length),d.literalBrackets===!0){L.output+=t,V.value=t;continue}V.value=`(${g}${t}|${V.value})`,L.output+=V.value;continue}if(H===`{`&&d.nobrace!==!0){X(`braces`);let e={type:`brace`,value:H,output:`(`,outputIndex:L.output.length,tokensIndex:L.tokens.length};z.push(e),Q(e);continue}if(H===`}`){let e=z[z.length-1];if(d.nobrace===!0||!e){Q({type:`text`,value:H,output:H});continue}let t=`)`;if(e.dots===!0){let e=h.slice(),n=[];for(let t=e.length-1;t>=0&&(h.pop(),e[t].type!==`brace`);t--)e[t].type!==`dots`&&n.unshift(e[t].value);t=l(n,d),L.backtrack=!0}if(e.comma!==!0&&e.dots!==!0){let n=L.output.slice(0,e.outputIndex),r=L.tokens.slice(e.tokensIndex);e.value=e.output=`\\{`,H=t=`\\}`,L.output=n;for(let e of r)L.output+=e.output||e.value}Q({type:`brace`,value:H,output:t}),Z(`braces`),z.pop();continue}if(H===`|`){R.length>0&&R[R.length-1].conditions++,Q({type:`text`,value:H});continue}if(H===`,`){let e=H,t=z[z.length-1];t&&B[B.length-1]===`braces`&&(t.comma=!0,e=`|`),Q({type:`comma`,value:H,output:e});continue}if(H===`/`){if(V.type===`dot`&&L.index===L.start+1){L.start=L.index+1,L.consumed=``,L.output=``,h.pop(),V=m;continue}Q({type:`slash`,value:H,output:C});continue}if(H===`.`){if(L.braces>0&&V.type===`dot`){V.value===`.`&&(V.output=x);let e=z[z.length-1];V.type=`dots`,V.output+=H,V.value+=H,e.dots=!0;continue}if(L.braces+L.parens===0&&V.type!==`bos`&&V.type!==`slash`){Q({type:`text`,value:H,output:x});continue}Q({type:`dot`,value:H,output:x});continue}if(H===`?`){if(!(V&&V.value===`(`)&&d.noextglob!==!0&&W()===`(`&&W(2)!==`?`){$(`qmark`,H);continue}if(V&&V.type===`paren`){let e=W(),t=H;(V.value===`(`&&!/[!=<:]/.test(e)||e===`<`&&!/<([!=]|\w+>)/.test(K()))&&(t=`\\${H}`),Q({type:`text`,value:H,output:t});continue}if(d.dot!==!0&&(V.type===`slash`||V.type===`bos`)){Q({type:`qmark`,value:H,output:A});continue}Q({type:`qmark`,value:H,output:k});continue}if(H===`!`){if(d.noextglob!==!0&&W()===`(`&&(W(2)!==`?`||!/[!=<:]/.test(W(3)))){$(`negate`,H);continue}if(d.nonegate!==!0&&L.index===0){Y();continue}}if(H===`+`){if(d.noextglob!==!0&&W()===`(`&&W(2)!==`?`){$(`plus`,H);continue}if(V&&V.value===`(`||d.regex===!1){Q({type:`plus`,value:H,output:S});continue}if(V&&(V.type===`bracket`||V.type===`paren`||V.type===`brace`)||L.parens>0){Q({type:`plus`,value:H});continue}Q({type:`plus`,value:S});continue}if(H===`@`){if(d.noextglob!==!0&&W()===`(`&&W(2)!==`?`){Q({type:`at`,extglob:!0,value:H,output:``});continue}Q({type:`text`,value:H});continue}if(H!==`*`){(H===`$`||H===`^`)&&(H=`\\${H}`);let e=o.exec(K());e&&(H+=e[0],L.index+=e[0].length),Q({type:`text`,value:H});continue}if(V&&(V.type===`globstar`||V.star===!0)){V.type=`star`,V.star=!0,V.value+=H,V.output=I,L.backtrack=!0,L.globstar=!0,q(H);continue}let t=K();if(d.noextglob!==!0&&/^\([^?]/.test(t)){$(`star`,H);continue}if(V.type===`star`){if(d.noglobstar===!0){q(H);continue}let n=V.prev,r=n.prev,i=n.type===`slash`||n.type===`bos`,a=r&&(r.type===`star`||r.type===`globstar`);if(d.bash===!0&&(!i||t[0]&&t[0]!==`/`)){Q({type:`star`,value:H,output:``});continue}let o=L.braces>0&&(n.type===`comma`||n.type===`brace`),s=R.length&&(n.type===`pipe`||n.type===`paren`);if(!i&&n.type!==`paren`&&!o&&!s){Q({type:`star`,value:H,output:``});continue}for(;t.slice(0,3)===`/**`;){let n=e[L.index+4];if(n&&n!==`/`)break;t=t.slice(3),q(`/**`,3)}if(n.type===`bos`&&U()){V.type=`globstar`,V.value+=H,V.output=N(d),L.output=V.output,L.globstar=!0,q(H);continue}if(n.type===`slash`&&n.prev.type!==`bos`&&!a&&U()){L.output=L.output.slice(0,-(n.output+V.output).length),n.output=`(?:${n.output}`,V.type=`globstar`,V.output=N(d)+(d.strictSlashes?`)`:`|$)`),V.value+=H,L.globstar=!0,L.output+=n.output+V.output,q(H);continue}if(n.type===`slash`&&n.prev.type!==`bos`&&t[0]===`/`){let e=t[1]===void 0?``:`|$`;L.output=L.output.slice(0,-(n.output+V.output).length),n.output=`(?:${n.output}`,V.type=`globstar`,V.output=`${N(d)}${C}|${C}${e})`,V.value+=H,L.output+=n.output+V.output,L.globstar=!0,q(H+G()),Q({type:`slash`,value:`/`,output:``});continue}if(n.type===`bos`&&t[0]===`/`){V.type=`globstar`,V.value+=H,V.output=`(?:^|${C}|${N(d)}${C})`,L.output=V.output,L.globstar=!0,q(H+G()),Q({type:`slash`,value:`/`,output:``});continue}L.output=L.output.slice(0,-V.output.length),V.type=`globstar`,V.output=N(d),V.value+=H,L.output+=V.output,L.globstar=!0,q(H);continue}let n={type:`star`,value:H,output:I};if(d.bash===!0){n.output=`.*?`,(V.type===`bos`||V.type===`slash`)&&(n.output=P+n.output),Q(n);continue}if(V&&(V.type===`bracket`||V.type===`paren`)&&d.regex===!0){n.output=H,Q(n);continue}(L.index===L.start||V.type===`slash`||V.type===`dot`)&&(V.type===`dot`?(L.output+=D,V.output+=D):d.dot===!0?(L.output+=O,V.output+=O):(L.output+=P,V.output+=P),W()!==`*`&&(L.output+=w,V.output+=w)),Q(n)}for(;L.brackets>0;){if(d.strictBrackets===!0)throw SyntaxError(u(`closing`,`]`));L.output=r.escapeLast(L.output,`[`),Z(`brackets`)}for(;L.parens>0;){if(d.strictBrackets===!0)throw SyntaxError(u(`closing`,`)`));L.output=r.escapeLast(L.output,`(`),Z(`parens`)}for(;L.braces>0;){if(d.strictBrackets===!0)throw SyntaxError(u(`closing`,`}`));L.output=r.escapeLast(L.output,`{`),Z(`braces`)}if(d.strictSlashes!==!0&&(V.type===`star`||V.type===`bracket`)&&Q({type:`maybe_slash`,value:``,output:`${C}?`}),L.backtrack===!0){L.output=``;for(let e of L.tokens)L.output+=e.output==null?e.value:e.output,e.suffix&&(L.output+=e.suffix)}return L};b.fastpaths=(e,t)=>{let a={...t},o=typeof a.maxLength==`number`?Math.min(i,a.maxLength):i,s=e.length;if(s>o)throw SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${o}`);e=c[e]||e;let{DOT_LITERAL:l,SLASH_LITERAL:u,ONE_CHAR:d,DOTS_SLASH:f,NO_DOT:p,NO_DOTS:m,NO_DOTS_SLASH:h,STAR:g,START_ANCHOR:_}=n.globChars(a.windows),v=a.dot?m:p,y=a.dot?h:p,b=a.capture?``:`?:`,x={negated:!1,prefix:``},S=a.bash===!0?`.*?`:g;a.capture&&(S=`(${S})`);let C=e=>e.noglobstar===!0?S:`(${b}(?:(?!${_}${e.dot?f:l}).)*?)`,w=e=>{switch(e){case`*`:return`${v}${d}${S}`;case`.*`:return`${l}${d}${S}`;case`*.*`:return`${v}${S}${l}${d}${S}`;case`*/*`:return`${v}${S}${u}${d}${y}${S}`;case`**`:return v+C(a);case`**/*`:return`(?:${v}${C(a)}${u})?${y}${d}${S}`;case`**/*.*`:return`(?:${v}${C(a)}${u})?${y}${S}${l}${d}${S}`;case`**/.*`:return`(?:${v}${C(a)}${u})?${l}${d}${S}`;default:{let t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;let n=w(t[1]);return n?n+l+t[2]:void 0}}},T=w(r.removePrefix(e,x));return T&&a.strictSlashes!==!0&&(T+=`${u}?`),T},t.exports=b})),Z=e(((e,t)=>{let n=Y(),r=X(),i=J(),a=q(),o=e=>e&&typeof e==`object`&&!Array.isArray(e),s=(e,t,n=!1)=>{if(Array.isArray(e)){let r=e.map(e=>s(e,t,n));return e=>{for(let t of r){let n=t(e);if(n)return n}return!1}}let r=o(e)&&e.tokens&&e.input;if(e===``||typeof e!=`string`&&!r)throw TypeError(`Expected pattern to be a non-empty string`);let i=t||{},a=i.windows,c=r?s.compileRe(e,t):s.makeRe(e,t,!1,!0),l=c.state;delete c.state;let u=()=>!1;if(i.ignore){let e={...t,ignore:null,onMatch:null,onResult:null};u=s(i.ignore,e,n)}let d=(n,r=!1)=>{let{isMatch:o,match:d,output:f}=s.test(n,c,t,{glob:e,posix:a}),p={glob:e,state:l,regex:c,posix:a,input:n,output:f,match:d,isMatch:o};return typeof i.onResult==`function`&&i.onResult(p),o===!1?(p.isMatch=!1,r?p:!1):u(n)?(typeof i.onIgnore==`function`&&i.onIgnore(p),p.isMatch=!1,r?p:!1):(typeof i.onMatch==`function`&&i.onMatch(p),!r||p)};return n&&(d.state=l),d};s.test=(e,t,n,{glob:r,posix:a}={})=>{if(typeof e!=`string`)throw TypeError(`Expected input to be a string`);if(e===``)return{isMatch:!1,output:``};let o=n||{},c=o.format||(a?i.toPosixSlashes:null),l=e===r,u=l&&c?c(e):e;return l===!1&&(u=c?c(e):e,l=u===r),(l===!1||o.capture===!0)&&(l=o.matchBase===!0||o.basename===!0?s.matchBase(e,t,n,a):t.exec(u)),{isMatch:!!l,match:l,output:u}},s.matchBase=(e,t,n,r=n&&n.windows)=>(t instanceof RegExp?t:s.makeRe(t,n)).test(i.basename(e,{windows:r})),s.isMatch=(e,t,n)=>s(t,n)(e),s.parse=(e,t)=>Array.isArray(e)?e.map(e=>s.parse(e,t)):r(e,{...t,fastpaths:!1}),s.scan=(e,t)=>n(e,t),s.compileRe=(e,t,n=!1,r=!1)=>{if(n===!0)return e.output;let i=t||{},a=i.contains?``:`^`,o=i.contains?``:`$`,c=`${a}(?:${e.output})${o}`;e&&e.negated===!0&&(c=`^(?!${c}).*$`);let l=s.toRegex(c,t);return r===!0&&(l.state=e),l},s.makeRe=(e,t={},n=!1,i=!1)=>{if(!e||typeof e!=`string`)throw TypeError(`Expected a non-empty string`);let a={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]===`.`||e[0]===`*`)&&(a.output=r.fastpaths(e,t)),a.output||(a=r(e,t)),s.compileRe(a,t,n,i)},s.toRegex=(e,t)=>{try{let n=t||{};return new RegExp(e,n.flags||(n.nocase?`i`:``))}catch(e){if(t&&t.debug===!0)throw e;return/$^/}},s.constants=a,t.exports=s})),Q=t(e(((e,t)=>{let n=Z(),r=J();function i(e,t,i=!1){return t&&(t.windows===null||t.windows===void 0)&&(t={...t,windows:r.isWindows()}),n(e,t,i)}Object.assign(i,n),t.exports=i}))(),1);async function $(e,t){let n=await V(`git`,[`merge-base`,t,`HEAD`],{nodeOptions:{cwd:e}});if(n.exitCode!==0)throw Error(`Failed to find where HEAD diverged from "${t}". Does "${t}" exist and it's synced with remote?`);return n.stdout.toString().trim()}async function ee({cwd:e}){let t=(await V(`git`,[`rev-parse`,`--is-shallow-repository`],{nodeOptions:{cwd:e}})).stdout.toString().trim();if(t===`--is-shallow-repository`){let t=(await V(`git`,[`rev-parse`,`--git-dir`],{nodeOptions:{cwd:e}})).stdout.toString().trim(),n=c.resolve(e,t);try{return await a.access(c.join(n,`shallow`)),!0}catch{return!1}}return t===`true`}async function te({cwd:e}){let{stdout:t,exitCode:n,stderr:r}=await V(`git`,[`rev-parse`,`--show-cdup`],{nodeOptions:{cwd:e}});if(n!==0)throw Error(r.toString());return c.resolve(e,t.toString().trim().replace(/\n|\r/g,``))}async function ne({cwd:e,ref:t,fullPath:n=!1}){let r=await $(e,t),i=await V(`git`,[`diff`,`--name-only`,`--no-relative`,r],{nodeOptions:{cwd:e}});if(i.exitCode!==0)throw Error(`Failed to diff against ${r}. Is ${r} a valid ref?`);let a=i.stdout.toString().trim().split(` +`).filter(e=>e);if(!n)return a;let o=await te({cwd:e});return a.map(e=>c.resolve(o,e))}async function re({cwd:e,ref:t}){try{let n=await V(`git`,[`diff`,`--name-only`,`--diff-filter=d`,`--no-relative`,await $(e,t)],{nodeOptions:{cwd:e}}),r=/\.changeset\/[^/]+\.md$/,i=/\.changeset\/pre\/[^/]+\.md$/;return n.stdout.toString().trim().split(` +`).filter(e=>r.test(e)||i.test(e))}catch(e){if(e instanceof H)return[];throw e}}async function ie({cwd:e,ref:t,changedFilePatterns:r=[`**`]}){let i=await ne({ref:t,cwd:e,fullPath:!0});return(await n(e)).packages.toSorted((e,t)=>t.dir.length-e.dir.length).filter(e=>{let t=[];for(let n=i.length-1;n>=0;n--){let r=i[n];if(!c.relative(e.dir,r).startsWith(`..`)){i.splice(n,1);let a=r.slice(e.dir.length+1);t.push(a)}}return t.length>0&&ae(t,r)})}function ae(e,t){if(!t)return e.length>0;let n=t.map(e=>(0,Q.default)(e,void 0,!0));return e.some(e=>{e.includes(`\\`)&&(e=e.replace(/\\/g,`/`));let t=!1;for(let r of n)t?r.state.negated&&!r(e)&&(t=!1):!r.state.negated&&r(e)&&(t=!0);return t})}var oe=t(r(),1);const se=/\s*---([^]*?)\r?\n\s*---(\s*(?:\n|$)[^]*)/,ce=`--- +"package-name": patch +---`,le=[`major`,`minor`,`patch`,`none`];function ue(e,t=200){return e.length>t?e.slice(0,t)+`...`:e}function de(e,t){for(let n of e){if(typeof n.name!=`string`||n.name.trim()===``)throw Error(`could not parse changeset - invalid package name in frontmatter.\nExpected a non-empty string for package name, but got: ${JSON.stringify(n.name)}\nChangeset contents:\n${ue(t)}`);if(typeof n.type!=`string`)throw Error(`could not parse changeset - invalid release type for package "${n.name}".\nExpected a string for release type, but got: ${typeof n.type}\nChangeset contents:\n${ue(t)}`);if(!le.includes(n.type))throw Error(`could not parse changeset - invalid version type ${JSON.stringify(n.type)} for package "${n.name}".\nValid version types are: ${le.join(`, `)}\nChangeset contents:\n${ue(t)}`)}}function fe(e){let t=e.trim();if(!t)throw Error(`could not parse changeset - file is empty. +Changesets must have frontmatter with package names and version types. +Example:\n${ce}\n\nYour changeset summary here.`);let n=se.exec(e);if(!n)throw Error(`could not parse changeset - missing or invalid frontmatter. +Changesets must start with frontmatter delimited by "---". +Example:\n${ce}\n\nYour changeset summary here.\nReceived content:\n${ue(t)}`);let[,r,i]=n,a=i.trim(),o;try{o=oe.parse(r)}catch(e){throw Error(`could not parse changeset - invalid YAML in frontmatter. +The frontmatter between the "---" delimiters must be valid YAML. +YAML error: ${e instanceof Error?e.message:String(e)}\nFrontmatter content:\n${r}`,{cause:e})}let s=[];if(o){if(typeof o!=`object`||Array.isArray(o))throw Error(`could not parse changeset - frontmatter must be an object mapping package names to version types.\nExpected format:\n${ce}\nReceived:\n${r}`);s=Object.entries(o).map(([e,t])=>({name:e,type:t}))}return de(s,e),{releases:s,summary:a}}const pe=[/^README\.md$/i,`AGENTS.md`,`CLAUDE.md`,`GEMINI.md`];async function me(e,t,n){let r=(await re({cwd:t,ref:n})).map(e=>e.replace(/^.*\.changeset\//,``));return e.filter(e=>r.includes(e))}async function he(e,t){let n=c.join(e,`.changeset`),r=[];try{r.push(...await a.readdir(n))}catch(e){throw e.code===`ENOENT`?Error(`There is no .changeset directory in this project`,{cause:e}):e}try{r.push(...(await a.readdir(c.join(n,`pre`))).map(e=>`pre/${e}`))}catch(e){if(e.code!==`ENOENT`)throw e}t!=null&&(r=await me(r,n,t)),r=r.filter(e=>(e=c.basename(e),!e.startsWith(`.`)&&e.endsWith(`.md`)&&!pe.some(t=>typeof t==`string`?t===e:t.test(e))));let i=r.map(async e=>({...fe(await a.readFile(c.join(n,e),`utf8`)),id:e.replace(/\.md$/,``)}));return await Promise.all(i)}export{U as a,G as i,ie as n,V as o,ee as r,he as t}; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 00000000..957f8b93 --- /dev/null +++ b/dist/index.js @@ -0,0 +1 @@ +import{A as e,D as t,O as n,f as r,j as i,k as a,m as o,o as s,p as c,s as l}from"./utils-j_VOz275.js";import{n as u,r as d,t as f}from"./run-CIL9Fbt6.js";import{t as p}from"./readChangesetState-DLdyz-Wv.js";try{await m()}catch(t){e(t.message)}async function m(){let m=s(`cwd`)||process.cwd();await o(m),c({publish:`publish-script`,version:`version-script`,commit:`commit-message`,title:`pr-title`,branch:`pr-base-branch`,prDraft:`pr-draft`,createGithubReleases:`create-github-releases`}),r();let h=l(`github-token`);if(process.env.GITHUB_TOKEN&&process.env.GITHUB_TOKEN!==h)throw Error(`The GITHUB_TOKEN environment variable is set and does not match the "github-token" input. Please pass the custom GitHub token to the "github-token" input and remove the GITHUB_TOKEN environment variable to avoid conflicts.`);let g=t(`push-with-git-cli`),_=s(`pr-draft`);if(_!==void 0&&_!==`always`&&_!==`create`){e(`Invalid pr-draft: ${_}`);return}let v=new d({cwd:m,githubToken:h,pushWithGitCli:g}),{changesets:y}=await p(m),b=n(`publish-script`),x=y.length!==0,S=y.some(e=>e.releases.length>0),C=!!b;switch(i(`published`,`false`),i(`published-packages`,`[]`),i(`has-changesets`,String(x)),!0){case!x&&!C:a(`No changesets present or were removed by merging version PR. Not publishing because publish-script is not set.`);return;case!x&&C:{a(`No changesets found. Attempting to publish any unpublished packages to npm`);let e=t(`create-github-releases`),n=t(`push-git-tags`);if(e&&!n)throw Error(`The input 'create-github-releases' is set to true, but 'push-git-tags' is set to false. Creating GitHub releases requires pushing git tags. Please set 'push-git-tags' to true or set 'create-github-releases' to false.`);let r=await f({script:b,github:v,createGithubReleases:e,pushGitTags:n,cwd:m});if(r.published&&(i(`published`,`true`),i(`published-packages`,JSON.stringify(r.publishedPackages))),r.exitCode!==0)throw Error(`Publish command exited with code ${r.exitCode}${r.published?`, but some packages were published: ${r.publishedPackages.map(e=>`${e.name}@${e.version}`).join(`, `)}`:``}`);return}case x&&!S:a(`All changesets are empty. Not creating PR`);return;case x:{let{pullRequestNumber:e}=await u({script:s(`version-script`),github:v,cwd:m,prTitle:s(`pr-title`),commitMessage:s(`commit-message`),hasPublishScript:C,prDraft:_,branch:s(`pr-base-branch`)});i(`pr-number`,String(e));return}}}export{}; \ No newline at end of file diff --git a/dist/pack.js b/dist/pack.js new file mode 100644 index 00000000..9d6c96a7 --- /dev/null +++ b/dist/pack.js @@ -0,0 +1 @@ +import{A as e,j as t,m as n,n as r,o as i,t as a,y as o}from"./utils-j_VOz275.js";import s from"node:fs/promises";import c from"node:path";import l from"node:os";try{await u()}catch(t){e(t.message)}async function u(){let e=i(`cwd`)||process.cwd();await n(e);let r=i(`publish-plan-artifact-id`),a=process.env.RUNNER_TEMP??await s.realpath(l.tmpdir()),u=c.join(a,`changeset-pack-${Date.now()}`);await d(e,{outDir:u,publishPlanPath:r?await f(a,Number(r)):void 0});let m=await o.uploadArtifact(`changeset-pack-${Date.now()}`,await p(u),u,{retentionDays:30});if(m.id===void 0)throw Error(`Packed artifact upload did not return an artifact id`);t(`pack-dir-artifact-id`,String(m.id))}async function d(e,t){let n=[`pack`,`--out-dir`,t.outDir];t.publishPlanPath&&n.push(`--from-publish-plan`,t.publishPlanPath),await r(n,{cwd:e,env:process.env})}async function f(e,t){let n=await a(e,t,`changeset-publish-plan`);return c.join(n,`publish-plan.json`)}async function p(e){let t=await s.readdir(e,{withFileTypes:!0});return(await Promise.all(t.map(async t=>{let n=c.join(e,t.name);return t.isDirectory()?p(n):[n]}))).flat()}export{}; \ No newline at end of file diff --git a/dist/pr-comment.js b/dist/pr-comment.js new file mode 100644 index 00000000..27f924c4 --- /dev/null +++ b/dist/pr-comment.js @@ -0,0 +1 @@ +import{A as e,T as t,j as n,k as r,o as i,s as a,w as o}from"./utils-j_VOz275.js";try{await s()}catch(t){e(t.message)}async function s(){let e=o.payload.pull_request;if(!e)throw Error("This action should only be run on `pull_request_target` or `pull_request` events");let s=a(`github-token`),l=a(`body`),u=i(`update-id`),d=u?c(u):null,f=d?`${d}\n\n${l}`:l,p={repo:e.base.repo.name,owner:e.base.repo.owner.login,issue_number:e.number,body:f},m=t(s),h;if(d&&(r(`Checking for existing comment...`),h=await m.rest.issues.listComments({repo:e.base.repo.name,owner:e.base.repo.owner.login,issue_number:e.number}).then(e=>e.data.find(e=>e.body?.includes(d))?.id)),h)r(`Updating existing comment (id: ${h})...`),await m.rest.issues.updateComment({...p,comment_id:h}),n(`comment-id`,h);else{r(`Creating new comment...`);let e=await m.rest.issues.createComment(p);n(`comment-id`,e.data.id)}r(`Done!`)}function c(e){let t=`changesets-action-pr-comment`;return t===e?``:``}export{}; \ No newline at end of file diff --git a/dist/pr-status.js b/dist/pr-status.js new file mode 100644 index 00000000..004cc928 --- /dev/null +++ b/dist/pr-status.js @@ -0,0 +1,38 @@ +import{A as e,F as t,I as n,S as r,_ as i,b as a,g as o,h as s,j as c,k as l,u,v as d,w as f}from"./utils-j_VOz275.js";import{a as p,i as m,n as ee,o as te,r as ne,t as re}from"./dist-BjZhuI7Y.js";import{styleText as ie}from"node:util";import{randomUUID as ae}from"node:crypto";import h from"node:fs/promises";import g from"node:path";import oe from"node:os";var se=n(o(),1),_=new Proxy({},{get(e,t){return e[t]??=e=>ie(t,e),e[t]}});const ce=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`],le=(e,t)=>{let n=new Map;for(let r of ce){let i=e[r];if(i)for(let e of Object.keys(i)){let a=i[e];r===`devDependencies`&&(t||a.startsWith(`link:`)||a.startsWith(`file:`))||n.set(e,a)}}return n},v=e=>e.includes(`:`),y=e=>{if(v(e))return null;try{return new se.default(e)}catch{return null}};function ue(e,t,{ignoreDevDependencies:n=!1,bumpVersionsWithWorkspaceProtocolOnly:r=!1}={}){let i=new Map,a=!0,o={[t.packageJson.name]:t},s={[t.packageJson.name]:`.`},c=[t];for(let n of e.packages)c.push(n),o[n.packageJson.name]=n,s[n.packageJson.name]=g.relative(t.dir,n.dir).replace(/\\/g,`/`);for(let e of c){let{name:t}=e.packageJson,c=[],l=le(e.packageJson,n);for(let[e,n]of l){let i=o[e];if(!i)continue;let l=i.packageJson.version,u=n;if(n.startsWith(`workspace:`)){if(n=n.replace(/^workspace:/,``),n===`*`||n===`^`||n===`~`){c.push(e);continue}if(g.posix.normalize(n)===s[e]){c.push(e);continue}if(!y(n)){a=!1,console.error(`Package ${_.blue(t)} must depend on the current version of ${_.blue(e)}: ${_.green(l)} vs ${_.red(u)}`);continue}}else if(r)continue;let d=y(n);if(d&&!d.test(l)||v(n)){a=!1,console.error(`Package ${_.blue(t)} must depend on the current version of ${_.blue(e)}: ${_.green(l)} vs ${_.red(u)}`);continue}d&&c.push(e)}i.set(t,{pkg:e,dependencies:c})}return{graph:i,valid:a}}function b(e,t){let n=new Map,r=e.rootPackage;if(r==null)return new Map;let{graph:i}=ue(e,r,t),a={[r.packageJson.name]:{pkg:r,dependents:[]}};e.packages.forEach(e=>{a[e.packageJson.name]={pkg:e,dependents:[]}}),e.packages.forEach(e=>{let t=e.packageJson.name,n=i.get(t);n&&n.dependencies.forEach(e=>{a[e].dependents.push(t)})}),Object.keys(a).forEach(e=>{n.set(e,a[e])});let o=new Map;return n.forEach((e,t)=>{o.set(t,e.dependents)}),o}function x({packageJson:e},{ignore:t,allowPrivatePackages:n}){return t.includes(e.name)||e.private&&!n?!0:!e.version}var de=t(((e,t)=>{let n=d();t.exports=(e,t,r=!1)=>{if(e instanceof n)return e;try{return new n(e,t)}catch(e){if(!r)return null;throw e}}})),fe=t(((e,t)=>{let n=o();t.exports=(e,t)=>{try{return new n(e,t).range||`*`}catch{return null}}})),pe=t(((e,t)=>{let n=d();t.exports=(e,t,r,i,a)=>{typeof r==`string`&&(a=i,i=r,r=void 0);try{return new n(e instanceof n?e.version:e,r).inc(t,i,a).version}catch{return null}}})),me=n(de(),1),he=n(i(),1),ge=n(s(),1),_e=n(fe(),1),ve=n(pe(),1);function ye(e){if(e.length===0)throw Error(`Large internal Changesets error when calculating highest release type in the set of releases. Please contact the maintainers`);let t=`none`;for(let n of e)switch(n.type){case`major`:return`major`;case`minor`:t=`minor`;break;case`patch`:t===`none`&&(t=`patch`);break}return t}function S(e,t){let n;for(let r of e){let i=C(t,r,`We were unable to version for package group: ${r} in package group: ${e.toString()}`);(n==null||(0,he.default)(i.packageJson.version,n))&&(n=i.packageJson.version)}return n}function be(e,t,n){let r=e.get(t);if(r==null)throw Error(n);return r}function C(e,t,n){let r=e.get(t);if(r==null)throw new p(n);return r}function xe(e,t,n){let r=!1;for(let i of n){let n=[...e.values()].filter(e=>i.includes(e.name)&&e.type!==`none`);if(n.length===0)continue;let a=ye(n),o=S(i,t);for(let e of n)e.type!==a&&(r=!0,e.type=a),e.oldVersion!==o&&(r=!0,e.oldVersion=o)}return r}function w(e,t){if(e.type===`none`)return e.oldVersion;let n=(0,ve.default)(e.oldVersion,e.type);if(t!=null&&t.state.mode!==`exit`){let r=C(t.preVersions,e.name,`preVersion for ${e.name} does not exist when preState is defined`);n+=`-${t.state.tag}.${r}`}return n}function Se({releases:e,packagesByName:t,rootDir:n,dependencyGraph:r,preInfo:i,config:a}){let o=!1,s=[...e.values()];for(;s.length>0;){let c=s.shift();c&&C(r,c.name,`Error in determining dependents - could not find package in repository: ${c.name}`).map(r=>{let o,s=C(t,r,`Dependency map is incorrect`);if(x(s,{ignore:a.ignore,allowPrivatePackages:a.privatePackages.version}))o=`none`;else{let l=C(t,c.name,`Dependency map is incorrect`),u=Ce(n,s.packageJson,c,l);for(let{depType:t,versionRange:n}of u)if(c.type===`none`)continue;else if((!e.has(r)||e.get(r).type===`none`)&&(a.___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH.updateInternalDependents===`always`||!(0,ge.default)(w(c,i),n)))switch(t){case`dependencies`:case`optionalDependencies`:case`peerDependencies`:o!==`major`&&o!==`minor`&&(o=`patch`);break;case`devDependencies`:o!==`major`&&o!==`minor`&&o!==`patch`&&(o=`none`)}}return e.has(r)&&e.get(r).type===o&&(o=void 0),{name:r,type:o,pkgJSON:s.packageJson}}).filter(e=>!!e.type).forEach(({name:t,type:n,pkgJSON:r})=>{o=!0;let i=e.get(t);if(i&&n===`major`&&i.type!==`major`)i.type=`major`,s.push(i);else{let i={name:t,type:n,oldVersion:r.version,changesets:[]};s.push(i),e.set(t,i)}})}return o}function Ce(e,t,n,r){let i=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`],a=[];for(let o of i){let i=t[o]?.[n.name];if(i){if(i.startsWith(`workspace:`))switch(i=i.replace(/^workspace:/,``),i){case`*`:i=n.oldVersion;break;case`^`:case`~`:i=`${i}${n.oldVersion}`;break;default:if(!(0,_e.default)(i)){if(g.posix.normalize(i)===g.relative(e,r.dir).replace(/\\/g,`/`))i=n.oldVersion;else continue}}a.push({depType:o,versionRange:i})}}return a}const T={major:3,minor:2,patch:1,none:0};function we(e,t,n){let r=new Map;for(let i of e)for(let{name:e,type:a}of i.releases){let o=C(t,e,`Couldn't find package named "${e}" listed in changeset "${i.id}"`);if(x(o,{ignore:n.ignore,allowPrivatePackages:n.privatePackages.version}))continue;let s=r.get(e);if(s==null){r.set(e,{name:e,type:a,oldVersion:o.packageJson.version,changesets:[i.id]});continue}T[a]>T[s.type]&&(s.type=a),s.changesets.push(i.id)}return r}function Te(e,t,n){let r=!1;for(let i of n.fixed){let a=[...e.values()].filter(e=>i.includes(e.name)&&e.type!==`none`);if(a.length===0)continue;let o=ye(a),s=S(i,t);for(let a of i){if(x(C(t,a,`Could not find package named "${a}" listed in fixed group ${JSON.stringify(i)}`),{ignore:n.ignore,allowPrivatePackages:n.privatePackages.version}))continue;let c=e.get(a);if(!c){r=!0,e.set(a,{name:a,type:o,oldVersion:s,changesets:[]});continue}c.type!==o&&(r=!0,c.type=o),c.oldVersion!==s&&(r=!0,c.oldVersion=s)}}return r}function E(e){let t=(0,me.default)(e).prerelease[1]??-1;if(typeof t!=`number`)throw new p(`preVersion is not a number`);return t++,t}function Ee(e,t){let n=new Date,r={commit:t.commit,"commit-short":t.commit?.slice(0,7),tag:t.tag,timestamp:n.getTime().toString(),datetime:n.toISOString().replace(/\.\d{3}Z$/,``).replace(/[^\d]/g,``)};if(!e)return[r.tag,r.datetime].filter(Boolean).join(`-`);let i=Object.keys(r);if(!e.includes(`{tag}`)&&r.tag!=null)throw Error(`Failed to compose snapshot version: "{tag}" placeholder is missing, but the snapshot parameter is defined (value: '${r.tag}')`);return i.reduce((e,t)=>e.replace(RegExp(`\\{${t}\\}`,`g`),()=>{let e=r[t];if(e==null)throw Error(`Failed to compose snapshot version: "{${t}}" placeholder is used without having a value defined!`);return e}),e)}function De(e,t,n,r){return e.type===`none`?e.oldVersion:`${n?w(e,t):`0.0.0`}-${r}`}function Oe(e,t){return e.type===`none`?e.oldVersion:w(e,t)}function ke(e,t,n,r,i){let a=new Map(t.packages.map(e=>[e.packageJson.name,e])),o=Ae(e,a,n,r),s=Me(a,n,r),c=we(o,a,n),l=b(t,{bumpVersionsWithWorkspaceProtocolOnly:n.bumpVersionsWithWorkspaceProtocolOnly}),u=!1;for(;u===!1;){let e=Se({releases:c,packagesByName:a,rootDir:t.rootDir,dependencyGraph:l,preInfo:s,config:n}),r=Te(c,a,n);u=!xe(c,a,n.linked)&&!e&&!r}if(s?.state.mode===`exit`)for(let e of t.packages){if(x(e,{ignore:n.ignore,allowPrivatePackages:n.privatePackages.version}))continue;let t=s.preVersions.get(e.packageJson.name);if(t!=null&&t!==0){let t=c.get(e.packageJson.name);t?t.type===`none`&&(t.type=`patch`):c.set(e.packageJson.name,{name:e.packageJson.name,type:`patch`,oldVersion:e.packageJson.version,changesets:[]})}}let d=i&&Ee(n.snapshot.prereleaseTemplate,i);return{changesets:o,releases:Array.from(c.values(),e=>({...e,newVersion:d?De(e,s,n.snapshot.useCalculatedVersion,d):Oe(e,s)})),preState:s?.state}}function Ae(e,t,n,r){for(let r of e){let e=[],i=[];for(let a of r.releases)x(be(t,a.name,`Found changeset ${r.id} for package ${a.name} which is not in the workspace`),{ignore:n.ignore,allowPrivatePackages:n.privatePackages.version})?e.push(a.name):i.push(a.name);if(e.length>0&&i.length>0)throw Error(`Found mixed changeset ${r.id}\nFound ignored packages: ${e.join(` `)}\nFound not ignored packages: ${i.join(` `)}\nMixed changesets that contain both ignored and not ignored packages are not allowed`)}return r&&r.mode!==`exit`?e.filter(e=>!e.id.startsWith(`pre/`)):e}function je(e,t,n){let r=0;for(let i of t){let a=C(n,i,`Could not find package named "${i}" listed in ${e} group ${JSON.stringify(t)}`);r=Math.max(E(a.packageJson.version),r)}return r}function Me(e,t,n){if(n==null)return;let r=new Map;for(let[,n]of e)x(n,{ignore:t.ignore,allowPrivatePackages:t.privatePackages.version})||r.set(n.packageJson.name,E(n.packageJson.version));for(let n of t.fixed){let t=je(`fixed`,n,e);for(let e of n)r.set(e,t)}for(let n of t.linked){let t=je(`linked`,n,e);for(let e of n)r.set(e,t)}return{state:n,preVersions:r}}var Ne=n(r(),1);const Pe={lang:void 0,message:void 0,abortEarly:void 0,abortPipeEarly:void 0};function D(e){return e?{lang:e?.lang??void 0,message:e?.message,abortEarly:e?.abortEarly??void 0,abortPipeEarly:e?.abortPipeEarly??void 0}:Pe}function O(e){let t=typeof e;return t===`string`?`"${e}"`:t===`number`||t===`bigint`||t===`boolean`?`${e}`:t===`object`||t===`function`?(e&&Object.getPrototypeOf(e)?.constructor?.name)??`null`:t}function k(e,t,n,r,i){let a=i&&`input`in i?i.input:n.value,o=i?.expected??e.expects??null,s=i?.received??O(a),c={kind:e.kind,type:e.type,input:a,expected:o,received:s,message:`Invalid ${t}: ${o?`Expected ${o} but r`:`R`}eceived ${s}`,requirement:e.requirement,path:i?.path,issues:i?.issues,lang:r.lang,abortEarly:r.abortEarly,abortPipeEarly:r.abortPipeEarly},l=e.kind===`schema`,u=i?.message??e.message??(e.reference,c.lang,void 0)??(l?(c.lang,void 0):null)??r.message??(c.lang,void 0);u!==void 0&&(c.message=typeof u==`function`?u(c):u),l&&(n.typed=!1),n.issues?n.issues.push(c):n.issues=[c]}const A=new WeakMap;function j(e){let t=A.get(e);return t||(t={version:1,vendor:`valibot`,validate(t){return e[`~run`]({value:t},D())}},A.set(e,t)),t}function Fe(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&t!==`__proto__`&&t!==`prototype`&&t!==`constructor`}function Ie(e,t){let n=[...new Set(e)];return n.length>1?`(${n.join(` ${t} `)})`:n[0]??`never`}function Le(e){if(e.path){let t=``;for(let n of e.path)if(typeof n.key==`string`||typeof n.key==`number`)t+=t?`.${n.key}`:n.key;else return null;return t}return null}var Re=class extends Error{constructor(e){super(e[0].message),this.name=`ValiError`,this.issues=e}};function M(e){return{kind:`metadata`,type:`description`,reference:M,description:e}}function N(e){return{kind:`metadata`,type:`examples`,reference:N,examples:e}}function P(e,t){return{kind:`validation`,type:`min_length`,reference:P,async:!1,expects:`>=${e}`,requirement:e,message:t,"~run"(e,t){return e.typed&&e.value.lengthe.expects),`|`),async:!1,options:e,message:t,get"~standard"(){return j(this)},"~run"(e,t){let n,r,i;for(let a of this.options){let o=a[`~run`]({value:e.value},t);if(o.typed){if(o.issues)r?r.push(o):r=[o];else{n=o;break}}else i?i.push(o):i=[o]}if(n)return n;if(r){if(r.length===1)return r[0];k(this,`type`,e,t,{issues:G(r)}),e.typed=!0}else if(i?.length===1)return i[0];else k(this,`type`,e,t,{issues:G(i)});return e}}}function q(){return{kind:`schema`,type:`unknown`,reference:q,expects:`unknown`,async:!1,get"~standard"(){return j(this)},"~run"(e){return e.typed=!0,e}}}function Be(e,t,n){let r=e[`~run`]({value:t},D(n));if(r.issues)throw new Re(r.issues);return r.value}function J(...e){return{...e[0],pipe:e,get"~standard"(){return j(this)},"~run"(t,n){for(let r of e)if(r.kind!==`metadata`){if(t.issues&&(r.kind===`schema`||r.kind===`transformation`)){t.typed=!1;break}(!t.issues||!n.abortEarly&&!n.abortPipeEarly)&&(t=r[`~run`](t,n))}return t}}}function Ve(e,t,n){let r=e[`~run`]({value:t},D(n));return{typed:r.typed,success:!r.issues,output:r.value,issues:r.issues}}function Y(e,t){if(!t)return e;let n=t.map(e=>(0,Ne.default)(e,void 0,!0));return e.filter(e=>{e.includes(`\\`)&&(e=e.replace(/\\/g,`/`));let t=!1;for(let r of n)t?r.state.negated&&!r(e)&&(t=!1):!r.state.negated&&r(e)&&(t=!0);return t})}const X=(e,t,n)=>V(t==null?e:J(e,M(t)),n),He=J(I(I(U())),N([[[`@pkg/a`,`@pkg/b`],[`@pkg/d`,`@pkg/e`]]])),Ue=K([R(!1),U(),W([U(),z(H(U(),q()))])],`Invalid type: Expected false, a module path ("@changesets/cli/changelog" or "./some-module"), or a tuple of module path and options (["@changesets/cli/changelog", { "someOption": true }]).`),We=K([L(),U(),W([U(),z(H(U(),q()))])],`Invalid type: Expected a boolean, a module path (e.g. "@changesets/cli/commit" or "./some-module"), or a tuple with a module path and options (e.g. ["@changesets/cli/commit", { "skipCI": "version" }])]`),Ge=K([R(`public`),R(`restricted`)]),Ke=B({baseBranch:X(U(),`Determines the branch that Changesets uses when finding what packages have changed.`,`main`),access:X(Ge,`Determines whether Changesets should publish packages to the registry publicly or to a restricted scope.`,`restricted`),changedFilePatterns:X(I(U()),`A list of file patterns that Changesets should consider when determining what packages have changed.`,[`**`]),format:X(K([R(`auto`),R(`prettier`),R(`oxfmt`),R(`deno`),R(`dprint`),R(!1)]),"The formatter to use to format changesets and changelogs. Set `false` to disable formatting. The default value of `auto` will auto-detect the formatter based on the project's configuration files.",`auto`),ignore:X(I(U()),`Packages that should not be released.`,[]),fixed:X(He,`Packages that should always be released together with the same version.`,[]),linked:X(He,`Packages that should be linked together so when they are being released, they will be released at the same version.`,[]),updateInternalDependencies:X(K([R(`minor`),R(`patch`)]),`The minimum bump type to trigger automatic update of internal dependencies that are part of the same release.`,`patch`),privatePackages:X(K([B({version:V(L(),!1),tag:V(L(),!1)}),L()]),`Opt in to tracking non-npm / private packages`,{}),bumpVersionsWithWorkspaceProtocolOnly:X(L(),`Determines whether Changesets should only bump dependency ranges that use workspace protocol of packages that are part of the workspace.`,!1),snapshot:X(B({useCalculatedVersion:V(J(L(),M(`Makes generated snapshot versions use the calculated version (based on the changeset files) as a base version, instead of 0.0.0`)),!1),prereleaseTemplate:V(J(U(),P(1),M(`A template for the prerelease (suffix) part of the generated snapshot version. The template can use the following variable patterns: {commit}, {tag}, {datetime}, {timestamp}.`)))}),`Snapshot-specific options.`,{}),changelog:X(Ue,`The configuration for changelog generators.`,`@changesets/cli/changelog`),commit:X(We,`Determines whether Changesets should commit the results of the add and version command.`,!1),___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH:X(B({onlyUpdatePeerDependentsWhenOutOfRange:V(L(),!1),updateInternalDependents:V(K([R(`always`),R(`out-of-range`)]),`out-of-range`)}),`Unsafe options`,{})});function qe({packageNames:e,writtenConfig:t}){let n=structuredClone(t);return typeof t.changelog==`string`&&(n.changelog=[t.changelog,null]),typeof t.commit==`string`?n.commit=[t.commit,null]:t.commit===!0&&(n.commit=[`@changesets/cli/commit`,{skipCI:`version`}]),t.ignore!=null&&(n.ignore=Y(e,t.ignore)),t.fixed!=null&&(n.fixed=t.fixed.map(t=>Y(e,t))),t.linked!=null&&(n.linked=t.linked.map(t=>Y(e,t))),n.privatePackages=typeof t.privatePackages==`object`?{version:t.privatePackages.version??!1,tag:t.privatePackages.tag??!1}:{version:t.privatePackages??!1,tag:t.privatePackages??!1},n}function Je(e,t){return e.filter(e=>{let n=(0,Ne.default)(e);return!t.some(e=>n(e))})}const Z=`Note that glob expressions must be defined according to https://npmx.dev/picomatch.`,Ye=e=>`Invalid path: The package or glob "${e}" does not match any package in the project. ${Z}`,Xe=[({config:e,writtenConfig:t,packageNames:n,warnings:r})=>{if(e.fixed.length!==0)for(let e of t.fixed??[])r.push(...Je(e,n).map(e=>`fixed: ${Ye(e)}`))},({config:e,errors:t})=>{if(e.fixed.length===0)return;let n=new Set,r=new Set;for(let i of e.fixed){for(let e of i)n.has(e)&&r.add(e),n.add(e);t.push(...Array.from(r,e=>`fixed: Invalid group: The package or glob "${e}" is defined in multiple groups of fixed packages. Packages can only be belong to a single group. ${Z}`))}},({config:e,writtenConfig:t,packageNames:n,warnings:r})=>{if(e.linked.length!==0)for(let e of t.linked??[])r.push(...Je(e,n).map(e=>`linked: ${Ye(e)}`))},({config:e,errors:t})=>{if(e.linked.length===0)return;let n=new Set,r=new Set;for(let i of e.linked){for(let e of i)n.has(e)&&r.add(e),n.add(e);t.push(...Array.from(r,e=>`linked: Invalid group: The package or glob "${e}" is defined in multiple groups of linked packages. Packages can only be belong to a single group. ${Z}`))}},({config:e,errors:t})=>{if(e.fixed.length===0||e.linked.length===0)return;let n=new Set(e.fixed.flat()),r=new Set(e.linked.flat());for(let e of n)r.has(e)&&t.push(`Invalid group: The package "${e}" can be found in both fixed and linked groups. A package can only be either fixed or linked.`)},({packages:e,config:t,errors:n})=>{if(t.ignore.length===0&&t.privatePackages.version)return;let r=b(e,{ignoreDevDependencies:!0,bumpVersionsWithWorkspaceProtocolOnly:t.bumpVersionsWithWorkspaceProtocolOnly}),i=new Map(e.packages.map(e=>[e.packageJson.name,e]));for(let a of e.packages){if(!x(a,{ignore:t.ignore,allowPrivatePackages:t.privatePackages.version}))continue;let e=a.packageJson.name,o=r.get(e)||[];for(let r of o){let a=i.get(r);a&&(x(a,{ignore:t.ignore,allowPrivatePackages:t.privatePackages.version})||a.packageJson.private||n.push(`Invalid tree: "${r}" depends on the skipped package "${e}", but "${r}" is not skipped. Please add "${r}" to the "ignore" option.`))}}},({config:e,errors:t})=>{let{version:n,tag:r}=e.privatePackages;n===!1&&r===!0&&t.push(`privatePackages: Invalid combination: "tag" is set to "true" but "version" is set to "false".`)}];function Ze(e){let t={...e,errors:[],warnings:[]};for(let e of Xe)e(t);return{errors:t.errors,warnings:t.warnings}}function Qe(e){return e.map(e=>`${Le(e)}: ${e.message}`)}function $e(e,t){let n=Ve(Ke,e);if(!n.success)return{config:void 0,warnings:[],errors:Qe(n.issues)};let r=n.output,i=t.packages.map(e=>e.packageJson.name),a=qe({packageNames:i,writtenConfig:r}),{errors:o,warnings:s}=Ze({packages:t,packageNames:i,config:a,writtenConfig:r});return o.length===0?{config:a,warnings:s,errors:void 0}:{config:void 0,warnings:s,errors:o}}async function et(e,t){return e??=process.cwd(),t??=await a(e),$e(JSON.parse(await h.readFile(g.join(t.rootDir,`.changeset`,`config.json`),`utf8`)),t)}qe({packageNames:[],writtenConfig:Be(Ke,{$schema:`https://unpkg.com/@changesets/config@4.0.0/schema.json`,baseBranch:`main`,access:`restricted`,ignore:[],fixed:[],linked:[],format:`auto`,updateInternalDependencies:`patch`,commit:!1,changelog:`@changesets/cli/changelog`})});async function tt(e,t,n){let r=await a(e),i=await et(r.rootDir,r);if(i.config==null)throw Error(`Invalid configuration:\n ${i.errors.join(` +`)}`);let o=n?{...i.config,...n}:i.config;return ke(await re(r.rootDir,t),r,o,await m(r.rootDir))}function nt(e){return e.length}function rt(e,t){let n=t||{},r=(n.align||[]).concat(),i=n.stringLength||nt,a=[],o=[],s=[],c=[],l=0,u=-1;for(;++ul&&(l=e[u].length);++ac[a])&&(c[a]=e)}t.push(o)}o[u]=t,s[u]=r}let d=-1;if(typeof r==`object`&&`length`in r)for(;++dc[d]&&(c[d]=i),p[d]=i),f[d]=o}o.splice(1,0,f),s.splice(1,0,p),u=-1;let m=[];for(;++uQ(ot)),Q(st),Q(ct),...i?[Q(lt)]:[]];return n&&(a=a.map(e=>e.charAt(0).toUpperCase()+e.substr(1))),a.join(t)}function dt(e,t,n){return`${e}/new/${t}?filename=.changeset/${ut({separator:`-`,capitalize:!1})}.md&value=${encodeURIComponent(n)}`}async function ft(e,t,n){return`\ +--- +${(await ee({cwd:e,ref:t})).map(e=>`"${e.packageJson.name}": patch`).join(` +`)} +--- + +${n} +`}function $(e,t,n={}){return te(`git`,t,{nodeOptions:{cwd:e,...n.nodeOptions},throwOnError:!0,...n})}function pt(e){let t=`${e.number}-${ae()}`;return{base:{fetchSource:`origin`,local:`refs/changesets-action-pr-status/base/${t}`,remote:`refs/heads/${e.base.ref}`},head:{fetchSource:e.head.repo.clone_url,local:`refs/changesets-action-pr-status/head/${t}`,remote:`refs/heads/${e.head.ref}`}}}async function mt(e,t,n){await $(e,[`fetch`,`--no-tags`,`--deepen=${n}`,t.fetchSource,`${t.remote}:${t.local}`])}async function ht(e){let{cwd:t,refs:n,deepenBy:r=50}=e;for(;;){let e=await $(t,[`merge-base`,n.base.local,`HEAD`],{throwOnError:!1});if(e.exitCode===0)return e.stdout.trim();if(!await ne({cwd:t}))throw Error(`Failed to find merge base between "${n.base.local}" and HEAD, and the repository is no longer shallow.`);await mt(t,n.base,r),await mt(t,n.head,r)}}async function gt(e){let t=await h.mkdtemp(g.join(oe.tmpdir(),e));return{dir:t,async[Symbol.asyncDispose](){await h.rm(t,{recursive:!0,force:!0})}}}async function _t(e,t){return await $(e,[`fetch`,`--no-tags`,`--depth=1`,t.fetchSource,`${t.remote}:${t.local}`]),{async[Symbol.asyncDispose](){await $(e,[`update-ref`,`-d`,t.local],{throwOnError:!1})}}}async function vt(e,t,n){return await $(e,[`worktree`,`add`,`--detach`,t,n.local]),{async[Symbol.asyncDispose](){await $(e,[`worktree`,`remove`,`--force`,t],{throwOnError:!1})}}}async function yt(e,t=process.cwd()){await using n=new AsyncDisposableStack;let r=n.use(await gt(`changesets-action-pr-status-`)).dir,i=pt(e);return n.use(await _t(t,i.base)),n.use(await _t(t,i.head)),n.use(await vt(t,r,i.head)),await ht({cwd:r,refs:i}),u(n,{baseRef:i.base.local,cwd:r})}async function bt(e){await using t=await yt(e);let n=await tt(t.cwd,t.baseRef),r=await ft(t.cwd,t.baseRef,e.title),i=dt(e.head.repo.html_url,e.head.ref,r);return n.changesets.length>0?xt(e.head.sha,i,n):St(e.head.sha,i,n)}function xt(e,t,n){return`\ +### 🦋 Changeset detected + +Latest commit: ${e} + +**The changes in this PR will be included in the next version bump.** + +${Ct(n)} + +Not sure what this means? [Click here to learn what changesets are](https://changesets.dev/faq). + +[Click here if you're a maintainer who wants to add another changeset to this PR](${t})`}function St(e,t,n){return`\ +### ⚠️ No Changeset found + +Latest commit: ${e} + +Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. **If these changes should result in a version bump, you need to add a changeset.** + +${Ct(n)} + +[Click here to learn what changesets are, and how to add one](https://changesets.dev/faq). + +[Click here if you're a maintainer who wants to add a changeset to this PR](${t})`}function Ct(e){let t=e.releases.filter(e=>e.type!==`none`),n=rt([[`Name`,`Type`],...t.map(e=>[e.name,{major:`Major`,minor:`Minor`,patch:`Patch`}[e.type]])]),r=`This PR includes `;return e.changesets.length===0?r+=`no changesets`:(r+=`changesets to release ${t.length} package`,t.length!==1&&(r+=`s`)),`\ +
+${r} + +${t.length>0?n:`When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types`} + +
`}try{await wt()}catch(t){e(t.message)}async function wt(){let e=f.payload.pull_request;if(!e)throw Error("This action should only be run on `pull_request_target` or `pull_request` events");l(`Creating comment message...`);let t=await bt(e);c(`comment-body`,t),l(`Done!`)}export{}; \ No newline at end of file diff --git a/dist/publish.js b/dist/publish.js new file mode 100644 index 00000000..082a1f54 --- /dev/null +++ b/dist/publish.js @@ -0,0 +1 @@ +import{A as e,D as t,j as n,m as r,o as i,s as a,t as o}from"./utils-j_VOz275.js";import{r as s,t as c}from"./run-CIL9Fbt6.js";import l from"node:fs/promises";import u from"node:os";try{await d()}catch(t){e(t.message)}async function d(){let e=i(`cwd`)||process.cwd();await r(e);let d=a(`github-token`),f=i(`script`),p=i(`pack-dir-artifact-id`),m=t(`create-github-releases`),h=t(`push-git-tags`);if(m&&!h)throw Error(`The input 'create-github-releases' is set to true, but 'push-git-tags' is set to false. Creating GitHub releases requires pushing git tags. Please set 'push-git-tags' to true or set 'create-github-releases' to false.`);let g=new s({cwd:e,githubToken:d}),_=p?await o(process.env.RUNNER_TEMP??await l.realpath(u.tmpdir()),Number(p),`changeset-pack`):void 0,v=await c({script:f,github:g,createGithubReleases:m,pushGitTags:h,cwd:e,fromPackDir:_});if(v.published?(n(`published`,`true`),n(`published-packages`,JSON.stringify(v.publishedPackages))):n(`published`,`false`),v.exitCode!==0)throw Error(`Publish command exited with code ${v.exitCode}${v.published?`, but some packages were published: ${v.publishedPackages.map(e=>`${e.name}@${e.version}`).join(`, `)}`:``}`)}export{}; \ No newline at end of file diff --git a/dist/readChangesetState-DLdyz-Wv.js b/dist/readChangesetState-DLdyz-Wv.js new file mode 100644 index 00000000..06d5c80a --- /dev/null +++ b/dist/readChangesetState-DLdyz-Wv.js @@ -0,0 +1 @@ +import{i as e,t}from"./dist-BjZhuI7Y.js";async function n(n=process.cwd()){let r=await e(n),i=await t(n);return r!==void 0&&r.mode===`pre`?{preState:r,changesets:i.filter(e=>!e.id.startsWith(`pre/`))}:{preState:void 0,changesets:i}}export{n as t}; \ No newline at end of file diff --git a/dist/run-CIL9Fbt6.js b/dist/run-CIL9Fbt6.js new file mode 100644 index 00000000..525ed386 --- /dev/null +++ b/dist/run-CIL9Fbt6.js @@ -0,0 +1,98 @@ +import{C as e,E as t,I as n,M as r,N as i,P as a,T as o,a as s,b as c,c as l,d as u,i as d,k as f,l as p,n as m,r as h,w as g}from"./utils-j_VOz275.js";import{o as _}from"./dist-BjZhuI7Y.js";import{t as v}from"./readChangesetState-DLdyz-Wv.js";import y from"path";import{Buffer as b}from"node:buffer";import{randomUUID as x}from"node:crypto";import S from"node:fs/promises";import C from"node:path";import w from"node:os";const T=async(e,t)=>(await e.graphql(` + query getRepositoryMetadata( + $owner: String! + $repo: String! + $baseRef: String! + $targetRef: String! + ) { + repository(owner: $owner, name: $repo) { + id + baseRef: ref(qualifiedName: $baseRef) { + id + target { + oid + ... on Tag { + target { + oid + } + } + } + } + targetBranch: ref(qualifiedName: $targetRef) { + id + target { + oid + } + } + } + } +`,t)).repository,E=async(e,t)=>e.graphql(` + mutation createCommitOnBranch($input: CreateCommitOnBranchInput!) { + createCommitOnBranch(input: $input) { + commit { + oid + } + ref { + id + } + } + } +`,t);function D(e){if(typeof e==`object`)return{headline:e.headline.trim(),body:e.body?.trim()};if(!e.includes(` +`))return{headline:e.trim()};let[t,...n]=e.split(` +`);return{headline:t.trim(),body:n.join(` +`).trim()}}function O(e){return`branch`in e?`refs/heads/${e.branch}`:`tag`in e?`refs/tags/${e.tag}`:e.commit}async function k({octokit:e,owner:t,repo:n,branch:r,base:i,force:a=!1,message:o,fileChanges:s}){let c=O(i),l=await T(e,{owner:t,repo:n,baseRef:c,targetRef:`refs/heads/${r}`});if(!l)throw Error(`Repository "${t}/${n}" not found`);let u=`commit`in i?i.commit:A(l.baseRef);if(!u)throw Error(`Could not determine sha for base ref "${c}"`);let d=l.targetBranch?.target?.oid??null,f=async(t,n)=>{let r=await E(e,{input:{branch:{id:t},expectedHeadOid:u,message:D(o),fileChanges:s}});if(r.createCommitOnBranch?.ref?.id==null)throw Error(`Failed to create commit on branch "${n}"`);if(r.createCommitOnBranch?.commit?.oid==null)throw Error(`Failed to determine commit sha for commit on branch "${n}"`);return{commitSha:r.createCommitOnBranch.commit.oid}};if(d==null){let i=(await e.rest.git.createRef({owner:t,repo:n,ref:`refs/heads/${r}`,sha:u})).data.node_id;if(!i)throw Error(`Failed to create branch "${r}"`);return await f(i,r),{refId:i}}if(d===u){let e=l.targetBranch.id;return await f(e,r),{refId:e}}if(a){let i=`changesets-ghcommit-temp/${r}`;try{let{tempRefId:a}=await j({octokit:e,owner:t,repo:n,tempBranch:i,baseSha:u}),{commitSha:o}=await f(a,i),s=(await e.rest.git.updateRef({owner:t,repo:n,ref:`heads/${r}`,sha:o,force:!0})).data.node_id;if(!s)throw Error(`Failed to force update branch "${r}"`);return{refId:s}}finally{await e.rest.git.deleteRef({owner:t,repo:n,ref:`heads/${i}`})}}else throw Error(`Branch "${r}" exists but its HEAD does not match the base ${u} and \`force\` is set to false`)}function A(e){return e?.target?`target`in e.target?e.target.target.oid:e.target.oid:null}async function j({octokit:e,owner:t,repo:n,tempBranch:r,baseSha:i}){try{let a=(await e.rest.git.createRef({owner:t,repo:n,ref:`refs/heads/${r}`,sha:i})).data.node_id;if(!a)throw Error(`Failed to create temporary branch "${r}"`);return{tempRefId:a}}catch(a){if(!M(a))throw a;let o=(await e.rest.git.updateRef({owner:t,repo:n,ref:`heads/${r}`,sha:i,force:!0})).data.node_id;if(!o)throw Error(`Failed to force update temporary branch "${r}"`);return{tempRefId:o}}}function M(e){return typeof e==`object`&&!!e&&`status`in e&&`message`in e&&typeof e.status==`number`&&typeof e.message==`string`&&e.status===422&&e.message.includes(`Reference already exists`)}async function N({cwd:e,filterFiles:t,...n}){e=y.resolve(e??process.cwd());let r=O(n.base??{commit:`HEAD`}),i=await F(e,r);if(!i)throw Error(`Could not determine sha for ref ${r}`);return await k({...n,fileChanges:await P(e,i,t),base:{commit:i}})}async function P(e,t,n){let r=await I(e),i=[],a=[],o=async e=>{if(n&&!n(e))return;let t=y.join(r,e),a=await S.lstat(t);if(a.isSymbolicLink())throw Error(`Unexpected symlink at ${e}, GitHub API only supports files and directories. You may need to add this file to .gitignore`);if(a.mode&73)throw Error(`Unexpected executable file at ${e}, GitHub API only supports non-executable files and directories. You may need to add this file to .gitignore`);i.push({path:e,contents:await S.readFile(t,`base64`)})},s=e=>{n&&!n(e)||a.push({path:e})},[c,l]=await Promise.all([_(`git`,[`diff`,`--name-status`,`--diff-filter=ACDMRT`,t],{throwOnError:!0,nodeOptions:{cwd:r}}),_(`git`,[`ls-files`,`--others`,`--exclude-standard`],{throwOnError:!0,nodeOptions:{cwd:r}})]);for(let e of c.stdout.trim().split(` +`)){if(!e)continue;let[t,...n]=e.split(` `);if(t.startsWith(`R`)||t.startsWith(`C`)){let[e,t]=n;s(e),await o(t);continue}let r=n[0];t===`D`?s(r):await o(r)}for(let e of l.stdout.trim().split(` +`))e&&await o(e);return i.sort((e,t)=>e.path>t.path?1:-1),a.sort((e,t)=>e.path>t.path?1:-1),{additions:i,deletions:a}}async function F(e,t){try{let{stdout:n}=await _(`git`,[`rev-parse`,t],{throwOnError:!0,nodeOptions:{cwd:e}});return n.trim()}catch{return null}}async function I(e){try{let{stdout:t}=await _(`git`,[`rev-parse`,`--git-dir`],{throwOnError:!0,nodeOptions:{cwd:e}});return y.dirname(y.resolve(e,t.trim()))}catch{return e}}var ee=n(e(),1),te=`0.0.0-development`,L=()=>Promise.resolve();function R(e,t,n){return e.retryLimiter.schedule(z,e,t,n)}async function z(e,t,n){let{pathname:r}=new URL(n.url,`http://github.test`),i=B(n.method,r),a=!i&&n.method!==`GET`&&n.method!==`HEAD`,o=n.method===`GET`&&r.startsWith(`/search/`),s=r.startsWith(`/graphql`),c=~~t.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(c.expiration=6e4),(a||s)&&await e.write.key(e.id).schedule(c,L),a&&e.triggersNotification(r)&&await e.notifications.key(e.id).schedule(c,L),o&&await e.search.key(e.id).schedule(c,L);let l=(i?e.auth:e.global).key(e.id).schedule(c,t,n);if(s){let e=await l;if(e.data.errors!=null&&e.data.errors.some(e=>e.type===`RATE_LIMITED`))throw Object.assign(Error(`GraphQL Rate Limit Exceeded`),{response:e,data:e.data})}return l}function B(e,t){return e===`PATCH`&&/^\/applications\/[^/]+\/token\/scoped$/.test(t)||e===`POST`&&(/^\/applications\/[^/]+\/token$/.test(t)||/^\/app\/installations\/[^/]+\/access_tokens$/.test(t)||t===`/login/oauth/access_token`)}var V=[`/orgs/{org}/invitations`,`/orgs/{org}/invitations/{invitation_id}`,`/orgs/{org}/teams/{team_slug}/discussions`,`/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments`,`/repos/{owner}/{repo}/collaborators/{username}`,`/repos/{owner}/{repo}/commits/{commit_sha}/comments`,`/repos/{owner}/{repo}/issues`,`/repos/{owner}/{repo}/issues/{issue_number}/comments`,`/repos/{owner}/{repo}/issues/{issue_number}/sub_issue`,`/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority`,`/repos/{owner}/{repo}/pulls`,`/repos/{owner}/{repo}/pulls/{pull_number}/comments`,`/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies`,`/repos/{owner}/{repo}/pulls/{pull_number}/merge`,`/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers`,`/repos/{owner}/{repo}/pulls/{pull_number}/reviews`,`/repos/{owner}/{repo}/releases`,`/teams/{team_id}/discussions`,`/teams/{team_id}/discussions/{discussion_number}/comments`];function H(e){let t=`^(?:${e.map(e=>e.split(`/`).map(e=>e.startsWith(`{`)?`(?:.+?)`:e).join(`/`)).map(e=>`(?:${e})`).join(`|`)})[^/]*$`;return new RegExp(t,`i`)}var U=H(V),W=U.test.bind(U),G={},K=function(e,t){G.global=new e.Group({id:`octokit-global`,maxConcurrent:10,...t}),G.auth=new e.Group({id:`octokit-auth`,maxConcurrent:1,...t}),G.search=new e.Group({id:`octokit-search`,maxConcurrent:1,minTime:2e3,...t}),G.write=new e.Group({id:`octokit-write`,maxConcurrent:1,minTime:1e3,...t}),G.notifications=new e.Group({id:`octokit-notifications`,maxConcurrent:1,minTime:3e3,...t})};function q(e,t){let{enabled:n=!0,Bottleneck:r=ee.default,id:i=`no-id`,timeout:a=12e4,connection:o}=t.throttle||{};if(!n)return{};let s={timeout:a};o!==void 0&&(s.connection=o);let c=Object.assign({clustering:o!=null,triggersNotification:W,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:i},t.throttle);if(typeof c.onSecondaryRateLimit!=`function`||typeof c.onRateLimit!=`function`)throw Error(`octokit/plugin-throttling error: + You must pass the onSecondaryRateLimit and onRateLimit error handlers. + See https://octokit.github.io/rest.js/#throttling + + const octokit = new Octokit({ + throttle: { + onSecondaryRateLimit: (retryAfter, options) => {/* ... */}, + onRateLimit: (retryAfter, options) => {/* ... */} + } + }) + `);let l=!1,u=()=>{if(l)return;l=!0,G.global??K(r,s),c.global=c.global??G.global,c.auth=c.auth??G.auth,c.search=c.search??G.search,c.write=c.write??G.write,c.notifications=c.notifications??G.notifications,c.retryLimiter=c.retryLimiter??new r;let t={},n=new r.Events(t);t.on(`secondary-limit`,c.onSecondaryRateLimit),t.on(`rate-limit`,c.onRateLimit),t.on(`error`,t=>e.log.warn(`Error in throttling-plugin limit handler`,t)),c.retryLimiter.on(`failed`,async function(t,r){let[i,a,o]=r.args,{pathname:s}=new URL(o.url,`http://github.test`);if(!(s.startsWith(`/graphql`)&&t.status!==401||t.status===403||t.status===429))return;let c=~~a.retryCount;a.retryCount=c,o.request.retryCount=c;let{wantRetry:l,retryAfter:u=0}=await(async function(){if(/\bsecondary rate\b/i.test(t.message)){let r=Number(t.response.headers[`retry-after`])||i.fallbackSecondaryRateRetryAfter;return{wantRetry:await n.trigger(`secondary-limit`,r,o,e,c),retryAfter:r}}if(t.response.headers!=null&&t.response.headers[`x-ratelimit-remaining`]===`0`||(t.response.data?.errors??[]).some(e=>e.type===`RATE_LIMITED`)){let r=new Date(~~t.response.headers[`x-ratelimit-reset`]*1e3).getTime(),i=Math.max(Math.ceil((r-Date.now())/1e3)+1,0);return{wantRetry:await n.trigger(`rate-limit`,i,o,e,c),retryAfter:i}}return{}})();if(l)return a.retryCount++,u*i.retryAfterBaseValue})};return e.hook.wrap(`request`,(e,t)=>(u(),R(c,e,t))),{}}q.VERSION=te,q.triggersNotification=W;const J=e=>o(e,{throttle:{onRateLimit:(e,t,n,i)=>{if(r(`Request quota exhausted for request ${t.method} ${t.url}`),i<=2)return f(`Retrying after ${e} seconds!`),!0},onSecondaryRateLimit:(e,t,n,i)=>{if(r(`SecondaryRateLimit detected for request ${t.method} ${t.url}`),i<=2)return f(`Retrying after ${e} seconds!`),!0}}},q),Y=async(e,t)=>{await i(`git`,[`push`,`origin`,`HEAD:${e}`,`--force`],t)},X=async(e,t)=>{let{stderr:n}=await a(`git`,[`checkout`,e],{ignoreReturnCode:!0,...t});n.toString().includes(`Switched to a new branch '${e}'`)||await i(`git`,[`checkout`,`-b`,e],t)},Z=async(e,t)=>{await i(`git`,[`reset`,`--hard`,e],t)},ne=async(e,t)=>{await i(`git`,[`add`,`.`],t),await i(`git`,[`commit`,`-m`,e],t)},re=async e=>{let{stdout:t}=await a(`git`,[`status`,`--porcelain`],e);return!t.length};function ie(e){try{let t=new URL(e);return t.protocol!==`http:`&&t.protocol!==`https:`?void 0:(t.password=``,t.search=``,t.hash=``,t.href)}catch{return}}var ae=class{#e;octokit;cwd;pushWithGitCli;serverUrl;constructor(e){this.#e=e.githubToken,this.cwd=e.cwd,this.pushWithGitCli=e.pushWithGitCli??!1,this.serverUrl=(e.serverUrl??g.serverUrl??process.env.GITHUB_SERVER_URL??`https://github.com`).replace(/\/+$/,``),this.octokit=J(e.githubToken)}getToken(){return this.#e}async#t(){let e=b.from(`x-access-token:${this.#e}`).toString(`base64`),t=Number(process.env.GIT_CONFIG_COUNT??0);if(!Number.isInteger(t)||t<0)throw Error(`Invalid GIT_CONFIG_COUNT value: ${process.env.GIT_CONFIG_COUNT}`);let{stdout:n}=await a(`git`,[`remote`,`get-url`,`--push`,`--all`,`origin`],{cwd:this.cwd,ignoreReturnCode:!0,silent:!0}),r=new Set([`http.${this.serverUrl}/.extraheader`]);for(let e of n.split(/\r?\n/)){let t=ie(e);t!==void 0&&r.add(`http.${t}.extraheader`)}let i=`AUTHORIZATION: basic ${e}`,o={GIT_CONFIG_COUNT:String(t+r.size*2)},s=0;for(let e of r){let n=t+s*2,r=n+1;o[`GIT_CONFIG_KEY_${n}`]=e,o[`GIT_CONFIG_VALUE_${n}`]=``,o[`GIT_CONFIG_KEY_${r}`]=e,o[`GIT_CONFIG_VALUE_${r}`]=i,s++}return o}async ensureGitUser(){let e=await a(`git`,[`-c`,`user.useConfigOnly=true`,`var`,`GIT_AUTHOR_IDENT`],{cwd:this.cwd,ignoreReturnCode:!0,silent:!0}),t=await a(`git`,[`-c`,`user.useConfigOnly=true`,`var`,`GIT_COMMITTER_IDENT`],{cwd:this.cwd,ignoreReturnCode:!0,silent:!0});(e.exitCode!==0||t.exitCode!==0)&&(f(`Setting git user to github-actions[bot]`),await i(`git`,[`config`,`user.name`,`"github-actions[bot]"`],{cwd:this.cwd}),await i(`git`,[`config`,`user.email`,`"41898282+github-actions[bot]@users.noreply.github.com"`],{cwd:this.cwd}))}async pushTag(e){try{this.pushWithGitCli?await i(`git`,[`push`,`origin`,e],{cwd:this.cwd,env:{...process.env,...await this.#t()}}):await this.octokit.rest.git.createRef({...g.repo,ref:`refs/tags/${e}`,sha:g.sha})}catch(t){r(`Failed to create git tag "${e}". Assuming it was manually pushed by the publish script: ${t.message}`)}}async prepareBranch(e){await X(e,{cwd:this.cwd}),await Z(g.sha,{cwd:this.cwd})}async pushChanges({branch:e,message:t}){if(!this.pushWithGitCli){await N({octokit:this.octokit,...g.repo,branch:e,message:t,base:{commit:g.sha},force:!0,cwd:this.cwd});return}await re({cwd:this.cwd})||(await this.ensureGitUser(),await ne(t,{cwd:this.cwd})),await Y(e,{cwd:this.cwd,env:{...process.env,...await this.#t()}})}};const oe=async(e,{pkg:t,tagName:n})=>{let r;try{r=await S.readFile(C.join(t.dir,`CHANGELOG.md`),`utf8`)}catch(e){if(p(e,`ENOENT`))return;throw e}let i=d(r,t.packageJson.version);if(!i)throw Error(`Could not find changelog entry for ${t.packageJson.name}@${t.packageJson.version}`);await e.rest.repos.createRelease({name:n,tag_name:n,body:i.content,prerelease:t.packageJson.version.includes(`-`),...g.repo})};var Q=class extends Error{};function $(e){return typeof e==`object`&&!!e}function se(e){return $(e)&&`type`in e&&e.type===`git-tag`&&`tag`in e&&typeof e.tag==`string`&&`packageName`in e&&typeof e.packageName==`string`}async function ce(e){let t;try{t=await S.readFile(e,`utf8`)}catch(t){throw new Q(`Failed to read changesets output at ${e}`,{cause:t})}let n=[],r=0;for(;r<=t.length;){let e=t.indexOf(` +`,r);e===-1&&(e=t.length);let i=t.slice(r,e);if(r=e+1,/^\s*$/.test(i))continue;let a;try{a=JSON.parse(i)}catch(e){throw Error(`Failed to parse changesets output event: ${i}`,{cause:e})}se(a)&&n.push(a)}return n}async function le({script:e,fromPackDir:t,github:n,createGithubReleases:i,pushGitTags:o,cwd:l}){let{octokit:u}=n;await n.ensureGitUser();let d,f=C.join(process.env.RUNNER_TEMP??await S.realpath(w.tmpdir()),`changesets-output-${x()}.ndjson`),p={cwd:l,ignoreReturnCode:!0,env:{...process.env,GITHUB_TOKEN:n.getToken(),CHANGESETS_OUTPUT:f}};if(e)d=await a(e,void 0,p);else{let e=[`publish`];t&&e.push(`--from-pack-dir`,t),d=await s(e,p)}let{packages:m,tool:h}=await c(l),g=new Map(m.map(e=>[e.packageJson.name,e])),_;try{_=await ce(f)}catch(t){if(!e||!(t instanceof Q))throw t;r(`${t.message}. GitHub releases and git tags cannot be created without this output. Ensure the custom publish script passes CHANGESETS_OUTPUT to the Changesets CLI.`),_=[]}let v=_.map(e=>{let t=g.get(e.packageName);if(t===void 0)throw Error(`Package "${e.packageName}" not found.This is probably a bug in the action, please open an issue`);return{pkg:t,tag:e.tag}});if(h.type===`root`&&m.length===0)throw Error(`No package found.This is probably a bug in the action, please open an issue`);return(i||o)&&await Promise.all(v.map(async({pkg:e,tag:t})=>{o&&await n.pushTag(t),i&&await oe(u,{pkg:e,tagName:t})})),v.length?{published:!0,publishedPackages:v.map(({pkg:e})=>({name:e.packageJson.name,version:e.packageJson.version})),exitCode:d.exitCode}:{published:!1,exitCode:d.exitCode}}async function ue({hasPublishScript:e,preState:t,changedPackagesInfo:n,prBodyMaxCharacters:r,branch:i}){let a=`This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and ${e?`the packages will be published to npm automatically`:`publish to npm yourself or [setup this action to publish automatically](https://github.com/changesets/action#with-publishing)`}. If you're not ready to do a release yet, that's fine, whenever you add more changesets to ${i}, this PR will be updated. +`,o=t?`⚠️⚠️⚠️⚠️⚠️⚠️ + +\`${i}\` is currently in **pre mode** so this branch has prereleases rather than normal releases. If you want to exit prereleases, run \`changeset pre exit\` on \`${i}\`. + +⚠️⚠️⚠️⚠️⚠️⚠️ +`:``,s=`# Releases`,c=[a,o,s,...n.map(e=>`${e.header}\n\n${e.content}`)].join(` +`);return c.length>r&&(c=[a,o,s,` +> The changelog information of each package has been omitted from this message, as the content exceeds the size limit. +`,...n.map(e=>`${e.header}\n\n`)].join(` +`)),c.length>r&&(c=[a,o,s,` +> All release information have been omitted from this message, as the content exceeds the size limit.`].join(` +`)),c}async function de({script:e,github:n,cwd:r=process.cwd(),prTitle:a=`Version Packages`,commitMessage:o=`Version Packages`,hasPublishScript:s=!1,prBodyMaxCharacters:c=6e4,branch:p=g.ref.replace(`refs/heads/`,``),prDraft:_}){let{octokit:y}=n,b=`changeset-release/${p}`,{preState:x}=await v(r);await n.prepareBranch(b);let w=await l(r),T={...process.env,GITHUB_TOKEN:n.getToken()};e?await i(e,void 0,{cwd:r,env:T}):await m([`version`],{cwd:r,env:T});let E=await h(r,w),D=Promise.all(E.map(async e=>{let t=await S.readFile(C.join(e.dir,`CHANGELOG.md`),`utf8`),n=d(t,e.packageJson.version);return{highestLevel:n.highestLevel,private:!!e.packageJson.private,content:n.content,header:`## ${e.packageJson.name}@${e.packageJson.version}`}})),O=`${a}${x?` (${x.tag})`:``}`,k=`${o}${x?` (${x.tag})`:``}`,A=await y.rest.pulls.list({...g.repo,state:`open`,head:`${g.repo.owner}:${b}`,base:p});t(`Existing pull requests: ${JSON.stringify(A.data,null,2)}`),await n.pushChanges({branch:b,message:k});let j=await ue({hasPublishScript:s,preState:x,branch:p,changedPackagesInfo:(await D).filter(e=>e).sort(u),prBodyMaxCharacters:c});if(A.data.length===0){f(`Creating pull request`);let{data:e}=await y.rest.pulls.create({base:p,head:b,title:O,body:j,draft:_!==void 0,...g.repo});return{pullRequestNumber:e.number}}{let[e]=A.data;f(`Updating found pull request #${e.number}`);let t=` + mutation UpdatePullRequest( + $pullRequestId: ID! + $title: String! + $body: String! + ) { + ${_===`always`?` + convertPullRequestToDraft( + input: { + pullRequestId: $pullRequestId + } + ) { + pullRequest { + id + } + }`:``} + + updatePullRequest( + input: { + pullRequestId: $pullRequestId + title: $title + body: $body + state: OPEN + } + ) { + pullRequest { + id + } + } + } + `;return await y.graphql(t,{pullRequestId:e.node_id,title:O,body:j}),{pullRequestNumber:e.number}}}export{de as n,ae as r,le as t}; \ No newline at end of file diff --git a/dist/select-mode.js b/dist/select-mode.js new file mode 100644 index 00000000..881086ce --- /dev/null +++ b/dist/select-mode.js @@ -0,0 +1 @@ +import{A as e,j as t,m as n,n as r,o as i,y as a}from"./utils-j_VOz275.js";import{t as o}from"./readChangesetState-DLdyz-Wv.js";import s from"node:fs/promises";import c from"node:path";import l from"node:os";try{await u()}catch(t){e(t.message)}async function u(){let e=i(`cwd`)||process.cwd();await n(e);let r=await d(e);if(t(`mode`,r.mode),r.mode===`publish`){let e=await a.uploadArtifact(c.basename(r.publishPlanPath,`.json`),[r.publishPlanPath],c.dirname(r.publishPlanPath),{skipArchive:!0,retentionDays:30});if(e.id===void 0)throw Error(`Publish plan artifact upload did not return an artifact id`);t(`publish-plan-artifact-id`,String(e.id))}}async function d(e){let{changesets:t}=await o(e);if(t.length>0)return t.some(e=>e.releases.length>0)?{mode:`version`}:{mode:`none`};let n=c.join(process.env.RUNNER_TEMP??await s.realpath(l.tmpdir()),`changeset-publish-plan-${Date.now()}`,`publish-plan.json`);return await r([`publish-plan`,`--output`,n],{cwd:e,env:process.env}),(await f(n)).length===0?{mode:`none`}:{mode:`publish`,publishPlanPath:n}}async function f(e){let t;try{t=await s.readFile(e,`utf8`)}catch(t){throw Error(`Failed to read publish plan at ${e}`,{cause:t})}let n;try{n=JSON.parse(t)}catch(t){throw Error(`Failed to parse publish plan at ${e}`,{cause:t})}if(typeof n!=`object`||!n||!(`version`in n)||typeof n.version!=`number`||!(`plan`in n)||!Array.isArray(n.plan))throw Error(`Invalid publish plan at ${e}: expected { version: number; plan: unknown[] }`);return n.plan}export{}; \ No newline at end of file diff --git a/dist/utils-j_VOz275.js b/dist/utils-j_VOz275.js new file mode 100644 index 00000000..57794bc1 --- /dev/null +++ b/dist/utils-j_VOz275.js @@ -0,0 +1,228 @@ +import{createRequire as e}from"node:module";import*as t from"os";import n,{EOL as r}from"os";import*as i from"crypto";import*as a from"fs";import{constants as o,existsSync as s,promises as c,readFileSync as l,readdir as u,readdirSync as d,realpath as f,realpathSync as p,stat as m,statSync as h}from"fs";import*as g from"path";import{basename as v,dirname as y,isAbsolute as b,normalize as x,posix as S,relative as C,resolve as w,sep as T}from"path";import*as E from"http";import*as D from"https";import*as O from"events";import{EventEmitter as k}from"events";import A from"node:http";import j,{Readable as M,Transform as N}from"node:stream";import P from"node:buffer";import F,{inspect as I}from"node:util";import L from"node:zlib";import{createHmac as R}from"node:crypto";import{StringDecoder as z}from"string_decoder";import*as ee from"child_process";import{setTimeout as B}from"timers";import*as V from"node:fs/promises";import H from"node:fs/promises";import U from"node:process";import*as W from"node:path";import G from"node:path";import*as K from"node:fs";import q from"node:fs";import{F_OK as te}from"node:constants";import{fileURLToPath as ne}from"url";import{createRequire as re}from"module";import{Buffer as ie}from"buffer";import ae,{EOL as oe}from"node:os";import se from"node:https";import*as ce from"stream";import{Readable as le}from"stream";import ue,{realpath as de}from"fs/promises";var fe=Object.create,pe=Object.defineProperty,me=Object.getOwnPropertyDescriptor,he=Object.getOwnPropertyNames,ge=Object.getPrototypeOf,_e=Object.prototype.hasOwnProperty,J=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),ve=(e,t)=>{let n={};for(var r in e)pe(n,r,{get:e[r],enumerable:!0});return t||pe(n,Symbol.toStringTag,{value:`Module`}),n},ye=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=he(t),a=0,o=i.length,s;at[e]).bind(null,s),enumerable:!(r=me(t,s))||r.enumerable});return e},be=(e,t,n)=>(n=e==null?{}:fe(ge(e)),ye(t||!e||!e.__esModule||!_e.call(e,`default`)?pe(n,`default`,{value:e,enumerable:!0}):n,e)),Y=e(import.meta.url);function xe(e){return e==null?``:typeof e==`string`||e instanceof String?e:JSON.stringify(e)}function Se(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{}}function Ce(e,n,r){let i=new we(e,n,r);process.stdout.write(i.toString()+t.EOL)}var we=class{constructor(e,t,n){e||=`missing.command`,this.command=e,this.properties=t,this.message=n}toString(){let e=`::`+this.command;if(this.properties&&Object.keys(this.properties).length>0){e+=` `;let t=!0;for(let n in this.properties)if(this.properties.hasOwnProperty(n)){let r=this.properties[n];r&&(t?t=!1:e+=`,`,e+=`${n}=${Ee(r)}`)}}return e+=`::${Te(this.message)}`,e}};function Te(e){return xe(e).replace(/%/g,`%25`).replace(/\r/g,`%0D`).replace(/\n/g,`%0A`)}function Ee(e){return xe(e).replace(/%/g,`%25`).replace(/\r/g,`%0D`).replace(/\n/g,`%0A`).replace(/:/g,`%3A`).replace(/,/g,`%2C`)}function De(e,n){let r=process.env[`GITHUB_${e}`];if(!r)throw Error(`Unable to find environment variable for file command ${e}`);if(!a.existsSync(r))throw Error(`Missing file at path: ${r}`);a.appendFileSync(r,`${xe(n)}${t.EOL}`,{encoding:`utf8`})}function Oe(e,n){let r=`ghadelimiter_${i.randomUUID()}`,a=xe(n);if(e.includes(r))throw Error(`Unexpected input: name should not contain the delimiter "${r}"`);if(a.includes(r))throw Error(`Unexpected input: value should not contain the delimiter "${r}"`);return`${e}<<${r}${t.EOL}${a}${t.EOL}${r}`}function ke(e){let t=e.protocol===`https:`;if(Ae(e))return;let n=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;if(n)try{return new Me(n)}catch{if(!n.startsWith(`http://`)&&!n.startsWith(`https://`))return new Me(`http://${n}`)}else return}function Ae(e){if(!e.hostname)return!1;let t=e.hostname;if(je(t))return!0;let n=process.env.no_proxy||process.env.NO_PROXY||``;if(!n)return!1;let r;e.port?r=Number(e.port):e.protocol===`http:`?r=80:e.protocol===`https:`&&(r=443);let i=[e.hostname.toUpperCase()];typeof r==`number`&&i.push(`${i[0]}:${r}`);for(let e of n.split(`,`).map(e=>e.trim().toUpperCase()).filter(e=>e))if(e===`*`||i.some(t=>t===e||t.endsWith(`.${e}`)||e.startsWith(`.`)&&t.endsWith(`${e}`)))return!0;return!1}function je(e){let t=e.toLowerCase();return t===`localhost`||t.startsWith(`127.`)||t.startsWith(`[::1]`)||t.startsWith(`[0:0:0:0:0:0:0:1]`)}var Me=class extends URL{constructor(e,t){super(e,t),this._decodedUsername=decodeURIComponent(super.username),this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}},Ne=J((e=>{Y(`net`);var t=Y(`tls`),n=Y(`http`),r=Y(`https`),i=Y(`events`);Y(`assert`);var a=Y(`util`);e.httpOverHttp=o,e.httpsOverHttp=s,e.httpOverHttps=c,e.httpsOverHttps=l;function o(e){var t=new u(e);return t.request=n.request,t}function s(e){var t=new u(e);return t.request=n.request,t.createSocket=d,t.defaultPort=443,t}function c(e){var t=new u(e);return t.request=r.request,t}function l(e){var t=new u(e);return t.request=r.request,t.createSocket=d,t.defaultPort=443,t}function u(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||n.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on(`free`,function(e,n,r,i){for(var a=f(n,r,i),o=0,s=t.requests.length;o=this.maxSockets){i.requests.push(a);return}i.createSocket(a,function(t){t.on(`free`,n),t.on(`close`,r),t.on(`agentRemove`,r),e.onSocket(t);function n(){i.emit(`free`,t,a)}function r(e){i.removeSocket(t),t.removeListener(`free`,n),t.removeListener(`close`,r),t.removeListener(`agentRemove`,r)}})},u.prototype.createSocket=function(e,t){var n=this,r={};n.sockets.push(r);var i=p({},n.proxyOptions,{method:`CONNECT`,path:e.host+`:`+e.port,agent:!1,headers:{host:e.host+`:`+e.port}});e.localAddress&&(i.localAddress=e.localAddress),i.proxyAuth&&(i.headers=i.headers||{},i.headers[`Proxy-Authorization`]=`Basic `+new Buffer(i.proxyAuth).toString(`base64`)),m(`making CONNECT request`);var a=n.request(i);a.useChunkedEncodingByDefault=!1,a.once(`response`,o),a.once(`upgrade`,s),a.once(`connect`,c),a.once(`error`,l),a.end();function o(e){e.upgrade=!0}function s(e,t,n){process.nextTick(function(){c(e,t,n)})}function c(i,o,s){if(a.removeAllListeners(),o.removeAllListeners(),i.statusCode!==200){m(`tunneling socket could not be established, statusCode=%d`,i.statusCode),o.destroy();var c=Error(`tunneling socket could not be established, statusCode=`+i.statusCode);c.code=`ECONNRESET`,e.request.emit(`error`,c),n.removeSocket(r);return}if(s.length>0){m(`got illegal response body from proxy`),o.destroy();var c=Error(`got illegal response body from proxy`);c.code=`ECONNRESET`,e.request.emit(`error`,c),n.removeSocket(r);return}return m(`tunneling connection has established`),n.sockets[n.sockets.indexOf(r)]=o,t(o)}function l(t){a.removeAllListeners(),m(`tunneling socket could not be established, cause=%s +`,t.message,t.stack);var i=Error(`tunneling socket could not be established, cause=`+t.message);i.code=`ECONNRESET`,e.request.emit(`error`,i),n.removeSocket(r)}},u.prototype.removeSocket=function(e){var t=this.sockets.indexOf(e);if(t!==-1){this.sockets.splice(t,1);var n=this.requests.shift();n&&this.createSocket(n,function(e){n.request.onSocket(e)})}};function d(e,n){var r=this;u.prototype.createSocket.call(r,e,function(i){var a=e.request.getHeader(`host`),o=p({},r.options,{socket:i,servername:a?a.replace(/:.*$/,``):e.host}),s=t.connect(0,o);r.sockets[r.sockets.indexOf(i)]=s,n(s)})}function f(e,t,n){return typeof e==`string`?{host:e,port:t,localAddress:n}:e}function p(e){for(var t=1,n=arguments.length;t{t.exports=Ne()})),Fe=J(((e,t)=>{t.exports={kClose:Symbol(`close`),kDestroy:Symbol(`destroy`),kDispatch:Symbol(`dispatch`),kUrl:Symbol(`url`),kWriting:Symbol(`writing`),kResuming:Symbol(`resuming`),kQueue:Symbol(`queue`),kConnect:Symbol(`connect`),kConnecting:Symbol(`connecting`),kKeepAliveDefaultTimeout:Symbol(`default keep alive timeout`),kKeepAliveMaxTimeout:Symbol(`max keep alive timeout`),kKeepAliveTimeoutThreshold:Symbol(`keep alive timeout threshold`),kKeepAliveTimeoutValue:Symbol(`keep alive timeout`),kKeepAlive:Symbol(`keep alive`),kHeadersTimeout:Symbol(`headers timeout`),kBodyTimeout:Symbol(`body timeout`),kServerName:Symbol(`server name`),kLocalAddress:Symbol(`local address`),kHost:Symbol(`host`),kNoRef:Symbol(`no ref`),kBodyUsed:Symbol(`used`),kBody:Symbol(`abstracted request body`),kRunning:Symbol(`running`),kBlocking:Symbol(`blocking`),kPending:Symbol(`pending`),kSize:Symbol(`size`),kBusy:Symbol(`busy`),kQueued:Symbol(`queued`),kFree:Symbol(`free`),kConnected:Symbol(`connected`),kClosed:Symbol(`closed`),kNeedDrain:Symbol(`need drain`),kReset:Symbol(`reset`),kDestroyed:Symbol.for(`nodejs.stream.destroyed`),kResume:Symbol(`resume`),kOnError:Symbol(`on error`),kMaxHeadersSize:Symbol(`max headers size`),kRunningIdx:Symbol(`running index`),kPendingIdx:Symbol(`pending index`),kError:Symbol(`error`),kClients:Symbol(`clients`),kClient:Symbol(`client`),kParser:Symbol(`parser`),kOnDestroyed:Symbol(`destroy callbacks`),kPipelining:Symbol(`pipelining`),kSocket:Symbol(`socket`),kHostHeader:Symbol(`host header`),kConnector:Symbol(`connector`),kStrictContentLength:Symbol(`strict content length`),kMaxRedirections:Symbol(`maxRedirections`),kMaxRequests:Symbol(`maxRequestsPerClient`),kProxy:Symbol(`proxy agent options`),kCounter:Symbol(`socket request counter`),kInterceptors:Symbol(`dispatch interceptors`),kMaxResponseSize:Symbol(`max response size`),kHTTP2Session:Symbol(`http2Session`),kHTTP2SessionState:Symbol(`http2Session state`),kRetryHandlerDefaultRetry:Symbol(`retry agent default retry`),kConstruct:Symbol(`constructable`),kListeners:Symbol(`listeners`),kHTTPContext:Symbol(`http context`),kMaxConcurrentStreams:Symbol(`max concurrent streams`),kNoProxyAgent:Symbol(`no proxy agent`),kHttpProxyAgent:Symbol(`http proxy agent`),kHttpsProxyAgent:Symbol(`https proxy agent`)}})),Ie=J(((e,t)=>{let n=Symbol.for(`undici.error.UND_ERR`);var r=class extends Error{constructor(e){super(e),this.name=`UndiciError`,this.code=`UND_ERR`}static[Symbol.hasInstance](e){return e&&e[n]===!0}[n]=!0};let i=Symbol.for(`undici.error.UND_ERR_CONNECT_TIMEOUT`);var a=class extends r{constructor(e){super(e),this.name=`ConnectTimeoutError`,this.message=e||`Connect Timeout Error`,this.code=`UND_ERR_CONNECT_TIMEOUT`}static[Symbol.hasInstance](e){return e&&e[i]===!0}[i]=!0};let o=Symbol.for(`undici.error.UND_ERR_HEADERS_TIMEOUT`);var s=class extends r{constructor(e){super(e),this.name=`HeadersTimeoutError`,this.message=e||`Headers Timeout Error`,this.code=`UND_ERR_HEADERS_TIMEOUT`}static[Symbol.hasInstance](e){return e&&e[o]===!0}[o]=!0};let c=Symbol.for(`undici.error.UND_ERR_HEADERS_OVERFLOW`);var l=class extends r{constructor(e){super(e),this.name=`HeadersOverflowError`,this.message=e||`Headers Overflow Error`,this.code=`UND_ERR_HEADERS_OVERFLOW`}static[Symbol.hasInstance](e){return e&&e[c]===!0}[c]=!0};let u=Symbol.for(`undici.error.UND_ERR_BODY_TIMEOUT`);var d=class extends r{constructor(e){super(e),this.name=`BodyTimeoutError`,this.message=e||`Body Timeout Error`,this.code=`UND_ERR_BODY_TIMEOUT`}static[Symbol.hasInstance](e){return e&&e[u]===!0}[u]=!0};let f=Symbol.for(`undici.error.UND_ERR_RESPONSE_STATUS_CODE`);var p=class extends r{constructor(e,t,n,r){super(e),this.name=`ResponseStatusCodeError`,this.message=e||`Response Status Code Error`,this.code=`UND_ERR_RESPONSE_STATUS_CODE`,this.body=r,this.status=t,this.statusCode=t,this.headers=n}static[Symbol.hasInstance](e){return e&&e[f]===!0}[f]=!0};let m=Symbol.for(`undici.error.UND_ERR_INVALID_ARG`);var h=class extends r{constructor(e){super(e),this.name=`InvalidArgumentError`,this.message=e||`Invalid Argument Error`,this.code=`UND_ERR_INVALID_ARG`}static[Symbol.hasInstance](e){return e&&e[m]===!0}[m]=!0};let g=Symbol.for(`undici.error.UND_ERR_INVALID_RETURN_VALUE`);var v=class extends r{constructor(e){super(e),this.name=`InvalidReturnValueError`,this.message=e||`Invalid Return Value Error`,this.code=`UND_ERR_INVALID_RETURN_VALUE`}static[Symbol.hasInstance](e){return e&&e[g]===!0}[g]=!0};let y=Symbol.for(`undici.error.UND_ERR_ABORT`);var b=class extends r{constructor(e){super(e),this.name=`AbortError`,this.message=e||`The operation was aborted`,this.code=`UND_ERR_ABORT`}static[Symbol.hasInstance](e){return e&&e[y]===!0}[y]=!0};let x=Symbol.for(`undici.error.UND_ERR_ABORTED`);var S=class extends b{constructor(e){super(e),this.name=`AbortError`,this.message=e||`Request aborted`,this.code=`UND_ERR_ABORTED`}static[Symbol.hasInstance](e){return e&&e[x]===!0}[x]=!0};let C=Symbol.for(`undici.error.UND_ERR_INFO`);var w=class extends r{constructor(e){super(e),this.name=`InformationalError`,this.message=e||`Request information`,this.code=`UND_ERR_INFO`}static[Symbol.hasInstance](e){return e&&e[C]===!0}[C]=!0};let T=Symbol.for(`undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH`);var E=class extends r{constructor(e){super(e),this.name=`RequestContentLengthMismatchError`,this.message=e||`Request body length does not match content-length header`,this.code=`UND_ERR_REQ_CONTENT_LENGTH_MISMATCH`}static[Symbol.hasInstance](e){return e&&e[T]===!0}[T]=!0};let D=Symbol.for(`undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH`);var O=class extends r{constructor(e){super(e),this.name=`ResponseContentLengthMismatchError`,this.message=e||`Response body length does not match content-length header`,this.code=`UND_ERR_RES_CONTENT_LENGTH_MISMATCH`}static[Symbol.hasInstance](e){return e&&e[D]===!0}[D]=!0};let k=Symbol.for(`undici.error.UND_ERR_DESTROYED`);var A=class extends r{constructor(e){super(e),this.name=`ClientDestroyedError`,this.message=e||`The client is destroyed`,this.code=`UND_ERR_DESTROYED`}static[Symbol.hasInstance](e){return e&&e[k]===!0}[k]=!0};let j=Symbol.for(`undici.error.UND_ERR_CLOSED`);var M=class extends r{constructor(e){super(e),this.name=`ClientClosedError`,this.message=e||`The client is closed`,this.code=`UND_ERR_CLOSED`}static[Symbol.hasInstance](e){return e&&e[j]===!0}[j]=!0};let N=Symbol.for(`undici.error.UND_ERR_SOCKET`);var P=class extends r{constructor(e,t){super(e),this.name=`SocketError`,this.message=e||`Socket error`,this.code=`UND_ERR_SOCKET`,this.socket=t}static[Symbol.hasInstance](e){return e&&e[N]===!0}[N]=!0};let F=Symbol.for(`undici.error.UND_ERR_NOT_SUPPORTED`);var I=class extends r{constructor(e){super(e),this.name=`NotSupportedError`,this.message=e||`Not supported error`,this.code=`UND_ERR_NOT_SUPPORTED`}static[Symbol.hasInstance](e){return e&&e[F]===!0}[F]=!0};let L=Symbol.for(`undici.error.UND_ERR_BPL_MISSING_UPSTREAM`);var R=class extends r{constructor(e){super(e),this.name=`MissingUpstreamError`,this.message=e||`No upstream has been added to the BalancedPool`,this.code=`UND_ERR_BPL_MISSING_UPSTREAM`}static[Symbol.hasInstance](e){return e&&e[L]===!0}[L]=!0};let z=Symbol.for(`undici.error.UND_ERR_HTTP_PARSER`);var ee=class extends Error{constructor(e,t,n){super(e),this.name=`HTTPParserError`,this.code=t?`HPE_${t}`:void 0,this.data=n?n.toString():void 0}static[Symbol.hasInstance](e){return e&&e[z]===!0}[z]=!0};let B=Symbol.for(`undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE`);var V=class extends r{constructor(e){super(e),this.name=`ResponseExceededMaxSizeError`,this.message=e||`Response content exceeded max size`,this.code=`UND_ERR_RES_EXCEEDED_MAX_SIZE`}static[Symbol.hasInstance](e){return e&&e[B]===!0}[B]=!0};let H=Symbol.for(`undici.error.UND_ERR_REQ_RETRY`);var U=class extends r{constructor(e,t,{headers:n,data:r}){super(e),this.name=`RequestRetryError`,this.message=e||`Request retry error`,this.code=`UND_ERR_REQ_RETRY`,this.statusCode=t,this.data=r,this.headers=n}static[Symbol.hasInstance](e){return e&&e[H]===!0}[H]=!0};let W=Symbol.for(`undici.error.UND_ERR_RESPONSE`);var G=class extends r{constructor(e,t,{headers:n,data:r}){super(e),this.name=`ResponseError`,this.message=e||`Response error`,this.code=`UND_ERR_RESPONSE`,this.statusCode=t,this.data=r,this.headers=n}static[Symbol.hasInstance](e){return e&&e[W]===!0}[W]=!0};let K=Symbol.for(`undici.error.UND_ERR_PRX_TLS`);var q=class extends r{constructor(e,t,n){super(t,{cause:e,...n??{}}),this.name=`SecureProxyConnectionError`,this.message=t||`Secure Proxy Connection failed`,this.code=`UND_ERR_PRX_TLS`,this.cause=e}static[Symbol.hasInstance](e){return e&&e[K]===!0}[K]=!0};let te=Symbol.for(`undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED`);t.exports={AbortError:b,HTTPParserError:ee,UndiciError:r,HeadersTimeoutError:s,HeadersOverflowError:l,BodyTimeoutError:d,RequestContentLengthMismatchError:E,ConnectTimeoutError:a,ResponseStatusCodeError:p,InvalidArgumentError:h,InvalidReturnValueError:v,RequestAbortedError:S,ClientDestroyedError:A,ClientClosedError:M,InformationalError:w,SocketError:P,NotSupportedError:I,ResponseContentLengthMismatchError:O,BalancedPoolMissingUpstreamError:R,ResponseExceededMaxSizeError:V,RequestRetryError:U,ResponseError:G,SecureProxyConnectionError:q,MessageSizeExceededError:class extends r{constructor(e){super(e),this.name=`MessageSizeExceededError`,this.message=e||`Max decompressed message size exceeded`,this.code=`UND_ERR_WS_MESSAGE_SIZE_EXCEEDED`}static[Symbol.hasInstance](e){return e&&e[te]===!0}get[te](){return!0}}}})),Le=J(((e,t)=>{let n={},r=`Accept.Accept-Encoding.Accept-Language.Accept-Ranges.Access-Control-Allow-Credentials.Access-Control-Allow-Headers.Access-Control-Allow-Methods.Access-Control-Allow-Origin.Access-Control-Expose-Headers.Access-Control-Max-Age.Access-Control-Request-Headers.Access-Control-Request-Method.Age.Allow.Alt-Svc.Alt-Used.Authorization.Cache-Control.Clear-Site-Data.Connection.Content-Disposition.Content-Encoding.Content-Language.Content-Length.Content-Location.Content-Range.Content-Security-Policy.Content-Security-Policy-Report-Only.Content-Type.Cookie.Cross-Origin-Embedder-Policy.Cross-Origin-Opener-Policy.Cross-Origin-Resource-Policy.Date.Device-Memory.Downlink.ECT.ETag.Expect.Expect-CT.Expires.Forwarded.From.Host.If-Match.If-Modified-Since.If-None-Match.If-Range.If-Unmodified-Since.Keep-Alive.Last-Modified.Link.Location.Max-Forwards.Origin.Permissions-Policy.Pragma.Proxy-Authenticate.Proxy-Authorization.RTT.Range.Referer.Referrer-Policy.Refresh.Retry-After.Sec-WebSocket-Accept.Sec-WebSocket-Extensions.Sec-WebSocket-Key.Sec-WebSocket-Protocol.Sec-WebSocket-Version.Server.Server-Timing.Service-Worker-Allowed.Service-Worker-Navigation-Preload.Set-Cookie.SourceMap.Strict-Transport-Security.Supports-Loading-Mode.TE.Timing-Allow-Origin.Trailer.Transfer-Encoding.Upgrade.Upgrade-Insecure-Requests.User-Agent.Vary.Via.WWW-Authenticate.X-Content-Type-Options.X-DNS-Prefetch-Control.X-Frame-Options.X-Permitted-Cross-Domain-Policies.X-Powered-By.X-Requested-With.X-XSS-Protection`.split(`.`);for(let e=0;e{let{wellknownHeaderNames:n,headerNameLowerCasedRecord:r}=Le();var i=class e{value=null;left=null;middle=null;right=null;code;constructor(t,n,r){if(r===void 0||r>=t.length)throw TypeError(`Unreachable`);if((this.code=t.charCodeAt(r))>127)throw TypeError(`key must be ascii string`);t.length===++r?this.value=n:this.middle=new e(t,n,r)}add(t,n){let r=t.length;if(r===0)throw TypeError(`Unreachable`);let i=0,a=this;for(;;){let o=t.charCodeAt(i);if(o>127)throw TypeError(`key must be ascii string`);if(a.code===o){if(r===++i){a.value=n;break}if(a.middle!==null)a=a.middle;else{a.middle=new e(t,n,i);break}}else if(a.code=65&&(i|=32);r!==null;){if(i===r.code){if(t===++n)return r;r=r.middle;break}r=r.code{let n=Y(`node:assert`),{kDestroyed:r,kBodyUsed:i,kListeners:a,kBody:o}=Fe(),{IncomingMessage:s}=Y(`node:http`),c=Y(`node:stream`),l=Y(`node:net`),{Blob:u}=Y(`node:buffer`),d=Y(`node:util`),{stringify:f}=Y(`node:querystring`),{EventEmitter:p}=Y(`node:events`),{InvalidArgumentError:m}=Ie(),{headerNameLowerCasedRecord:h}=Le(),{tree:g}=Re(),[v,y]=process.versions.node.split(`.`).map(e=>Number(e));var b=class{constructor(e){this[o]=e,this[i]=!1}async*[Symbol.asyncIterator](){n(!this[i],`disturbed`),this[i]=!0,yield*this[o]}};function x(e){return C(e)?(F(e)===0&&e.on(`data`,function(){n(!1)}),typeof e.readableDidRead!=`boolean`&&(e[i]=!1,p.prototype.on.call(e,`data`,function(){this[i]=!0})),e):e&&typeof e.pipeTo==`function`||e&&typeof e!=`string`&&!ArrayBuffer.isView(e)&&P(e)?new b(e):e}function S(){}function C(e){return e&&typeof e==`object`&&typeof e.pipe==`function`&&typeof e.on==`function`}function w(e){if(e===null)return!1;if(e instanceof u)return!0;if(typeof e!=`object`)return!1;{let t=e[Symbol.toStringTag];return(t===`Blob`||t===`File`)&&(`stream`in e&&typeof e.stream==`function`||`arrayBuffer`in e&&typeof e.arrayBuffer==`function`)}}function T(e,t){if(e.includes(`?`)||e.includes(`#`))throw Error(`Query params cannot be passed when url already contains "?" or "#".`);let n=f(t);return n&&(e+=`?`+n),e}function E(e){let t=parseInt(e,10);return t===Number(e)&&t>=0&&t<=65535}function D(e){return e!=null&&e[0]===`h`&&e[1]===`t`&&e[2]===`t`&&e[3]===`p`&&(e[4]===`:`||e[4]===`s`&&e[5]===`:`)}function O(e){if(typeof e==`string`){if(e=new URL(e),!D(e.origin||e.protocol))throw new m("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!=`object`)throw new m(`Invalid URL: The URL argument must be a non-null object.`);if(!(e instanceof URL)){if(e.port!=null&&e.port!==``&&E(e.port)===!1)throw new m(`Invalid URL: port must be a valid integer or a string representation of an integer.`);if(e.path!=null&&typeof e.path!=`string`)throw new m(`Invalid URL path: the path must be a string or null/undefined.`);if(e.pathname!=null&&typeof e.pathname!=`string`)throw new m(`Invalid URL pathname: the pathname must be a string or null/undefined.`);if(e.hostname!=null&&typeof e.hostname!=`string`)throw new m(`Invalid URL hostname: the hostname must be a string or null/undefined.`);if(e.origin!=null&&typeof e.origin!=`string`)throw new m(`Invalid URL origin: the origin must be a string or null/undefined.`);if(!D(e.origin||e.protocol))throw new m("Invalid URL protocol: the URL must start with `http:` or `https:`.");let t=e.port==null?e.protocol===`https:`?443:80:e.port,n=e.origin==null?`${e.protocol||``}//${e.hostname||``}:${t}`:e.origin,r=e.path==null?`${e.pathname||``}${e.search||``}`:e.path;return n[n.length-1]===`/`&&(n=n.slice(0,n.length-1)),r&&r[0]!==`/`&&(r=`/${r}`),new URL(`${n}${r}`)}if(!D(e.origin||e.protocol))throw new m("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function k(e){if(e=O(e),e.pathname!==`/`||e.search||e.hash)throw new m(`invalid url`);return e}function A(e){if(e[0]===`[`){let t=e.indexOf(`]`);return n(t!==-1),e.substring(1,t)}let t=e.indexOf(`:`);return t===-1?e:e.substring(0,t)}function j(e){if(!e)return null;n(typeof e==`string`);let t=A(e);return l.isIP(t)?``:t}function M(e){return JSON.parse(JSON.stringify(e))}function N(e){return e!=null&&typeof e[Symbol.asyncIterator]==`function`}function P(e){return!(e==null||typeof e[Symbol.iterator]!=`function`&&typeof e[Symbol.asyncIterator]!=`function`)}function F(e){if(e==null)return 0;if(C(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}return w(e)?e.size==null?null:e.size:U(e)?e.byteLength:null}function I(e){return e&&!!(e.destroyed||e[r]||c.isDestroyed?.(e))}function L(e,t){e==null||!C(e)||I(e)||(typeof e.destroy==`function`?(Object.getPrototypeOf(e).constructor===s&&(e.socket=null),e.destroy(t)):t&&queueMicrotask(()=>{e.emit(`error`,t)}),e.destroyed!==!0&&(e[r]=!0))}let R=/timeout=(\d+)/;function z(e){let t=e.toString().match(R);return t?parseInt(t[1],10)*1e3:null}function ee(e){return typeof e==`string`?h[e]??e.toLowerCase():g.lookup(e)??e.toString(`latin1`).toLowerCase()}function B(e){return g.lookup(e)??e.toString(`latin1`).toLowerCase()}function V(e,t){t===void 0&&(t={});for(let n=0;ne.toString(`utf8`)):i.toString(`utf8`)}}return`content-length`in t&&`content-disposition`in t&&(t[`content-disposition`]=Buffer.from(t[`content-disposition`]).toString(`latin1`)),t}function H(e){let t=e.length,n=Array(t),r=!1,i=-1,a,o,s=0;for(let t=0;t{e.close(),e.byobRequest?.respond(0)});else{let t=Buffer.isBuffer(r)?r:Buffer.from(r);t.byteLength&&e.enqueue(new Uint8Array(t))}return e.desiredSize>0},async cancel(e){await t.return()},type:`bytes`})}function re(e){return e&&typeof e==`object`&&typeof e.append==`function`&&typeof e.delete==`function`&&typeof e.get==`function`&&typeof e.getAll==`function`&&typeof e.has==`function`&&typeof e.set==`function`&&e[Symbol.toStringTag]===`FormData`}function ie(e,t){return`addEventListener`in e?(e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)):(e.addListener(`abort`,t),()=>e.removeListener(`abort`,t))}let ae=typeof String.prototype.toWellFormed==`function`,oe=typeof String.prototype.isWellFormed==`function`;function se(e){return ae?`${e}`.toWellFormed():d.toUSVString(e)}function ce(e){return oe?`${e}`.isWellFormed():se(e)===`${e}`}function le(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function ue(e){if(e.length===0)return!1;for(let t=0;t{let n=Y(`node:diagnostics_channel`),r=Y(`node:util`),i=r.debuglog(`undici`),a=r.debuglog(`fetch`),o=r.debuglog(`websocket`),s=!1,c={beforeConnect:n.channel(`undici:client:beforeConnect`),connected:n.channel(`undici:client:connected`),connectError:n.channel(`undici:client:connectError`),sendHeaders:n.channel(`undici:client:sendHeaders`),create:n.channel(`undici:request:create`),bodySent:n.channel(`undici:request:bodySent`),headers:n.channel(`undici:request:headers`),trailers:n.channel(`undici:request:trailers`),error:n.channel(`undici:request:error`),open:n.channel(`undici:websocket:open`),close:n.channel(`undici:websocket:close`),socketError:n.channel(`undici:websocket:socket_error`),ping:n.channel(`undici:websocket:ping`),pong:n.channel(`undici:websocket:pong`)};if(i.enabled||a.enabled){let e=a.enabled?a:i;n.channel(`undici:client:beforeConnect`).subscribe(t=>{let{connectParams:{version:n,protocol:r,port:i,host:a}}=t;e(`connecting to %s using %s%s`,`${a}${i?`:${i}`:``}`,r,n)}),n.channel(`undici:client:connected`).subscribe(t=>{let{connectParams:{version:n,protocol:r,port:i,host:a}}=t;e(`connected to %s using %s%s`,`${a}${i?`:${i}`:``}`,r,n)}),n.channel(`undici:client:connectError`).subscribe(t=>{let{connectParams:{version:n,protocol:r,port:i,host:a},error:o}=t;e(`connection to %s using %s%s errored - %s`,`${a}${i?`:${i}`:``}`,r,n,o.message)}),n.channel(`undici:client:sendHeaders`).subscribe(t=>{let{request:{method:n,path:r,origin:i}}=t;e(`sending request to %s %s/%s`,n,i,r)}),n.channel(`undici:request:headers`).subscribe(t=>{let{request:{method:n,path:r,origin:i},response:{statusCode:a}}=t;e(`received response to %s %s/%s - HTTP %d`,n,i,r,a)}),n.channel(`undici:request:trailers`).subscribe(t=>{let{request:{method:n,path:r,origin:i}}=t;e(`trailers received from %s %s/%s`,n,i,r)}),n.channel(`undici:request:error`).subscribe(t=>{let{request:{method:n,path:r,origin:i},error:a}=t;e(`request to %s %s/%s errored - %s`,n,i,r,a.message)}),s=!0}if(o.enabled){if(!s){let e=i.enabled?i:o;n.channel(`undici:client:beforeConnect`).subscribe(t=>{let{connectParams:{version:n,protocol:r,port:i,host:a}}=t;e(`connecting to %s%s using %s%s`,a,i?`:${i}`:``,r,n)}),n.channel(`undici:client:connected`).subscribe(t=>{let{connectParams:{version:n,protocol:r,port:i,host:a}}=t;e(`connected to %s%s using %s%s`,a,i?`:${i}`:``,r,n)}),n.channel(`undici:client:connectError`).subscribe(t=>{let{connectParams:{version:n,protocol:r,port:i,host:a},error:o}=t;e(`connection to %s%s using %s%s errored - %s`,a,i?`:${i}`:``,r,n,o.message)}),n.channel(`undici:client:sendHeaders`).subscribe(t=>{let{request:{method:n,path:r,origin:i}}=t;e(`sending request to %s %s/%s`,n,i,r)})}n.channel(`undici:websocket:open`).subscribe(e=>{let{address:{address:t,port:n}}=e;o(`connection opened %s%s`,t,n?`:${n}`:``)}),n.channel(`undici:websocket:close`).subscribe(e=>{let{websocket:t,code:n,reason:r}=e;o(`closed connection to %s - %s %s`,t.url,n,r)}),n.channel(`undici:websocket:socket_error`).subscribe(e=>{o(`connection errored - %s`,e.message)}),n.channel(`undici:websocket:ping`).subscribe(e=>{o(`ping received`)}),n.channel(`undici:websocket:pong`).subscribe(e=>{o(`pong received`)})}t.exports={channels:c}})),Ve=J(((e,t)=>{let{InvalidArgumentError:n,NotSupportedError:r}=Ie(),i=Y(`node:assert`),{isValidHTTPToken:a,isValidHeaderValue:o,isStream:s,destroy:c,isBuffer:l,isFormDataLike:u,isIterable:d,isBlobLike:f,buildURL:p,validateHandler:m,getServerName:h,normalizedMethodRecords:g}=ze(),{channels:v}=Be(),{headerNameLowerCasedRecord:y}=Le(),b=/[^\u0021-\u00ff]/,x=Symbol(`handler`);var S=class{constructor(e,{path:t,method:r,body:i,headers:y,query:S,idempotent:w,blocking:T,upgrade:E,headersTimeout:D,bodyTimeout:O,reset:k,throwOnError:A,expectContinue:j,servername:M},N){if(typeof t!=`string`)throw new n(`path must be a string`);if(t[0]!==`/`&&!(t.startsWith(`http://`)||t.startsWith(`https://`))&&r!==`CONNECT`)throw new n(`path must be an absolute URL or start with a slash`);if(b.test(t))throw new n(`invalid request path`);if(typeof r!=`string`)throw new n(`method must be a string`);if(g[r]===void 0&&!a(r))throw new n(`invalid request method`);if(E&&typeof E!=`string`)throw new n(`upgrade must be a string`);if(E&&!o(E))throw new n(`invalid upgrade header`);if(D!=null&&(!Number.isFinite(D)||D<0))throw new n(`invalid headersTimeout`);if(O!=null&&(!Number.isFinite(O)||O<0))throw new n(`invalid bodyTimeout`);if(k!=null&&typeof k!=`boolean`)throw new n(`invalid reset`);if(j!=null&&typeof j!=`boolean`)throw new n(`invalid expectContinue`);if(this.headersTimeout=D,this.bodyTimeout=O,this.throwOnError=A===!0,this.method=r,this.abort=null,i==null)this.body=null;else if(s(i)){this.body=i;let e=this.body._readableState;(!e||!e.autoDestroy)&&(this.endHandler=function(){c(this)},this.body.on(`end`,this.endHandler)),this.errorHandler=e=>{this.abort?this.abort(e):this.error=e},this.body.on(`error`,this.errorHandler)}else if(l(i))this.body=i.byteLength?i:null;else if(ArrayBuffer.isView(i))this.body=i.buffer.byteLength?Buffer.from(i.buffer,i.byteOffset,i.byteLength):null;else if(i instanceof ArrayBuffer)this.body=i.byteLength?Buffer.from(i):null;else if(typeof i==`string`)this.body=i.length?Buffer.from(i):null;else if(u(i)||d(i)||f(i))this.body=i;else throw new n(`body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable`);if(this.completed=!1,this.aborted=!1,this.upgrade=E||null,this.path=S?p(t,S):t,this.origin=e,this.idempotent=w??(r===`HEAD`||r===`GET`),this.blocking=T??!1,this.reset=k??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=j??!1,Array.isArray(y)){if(y.length%2!=0)throw new n(`headers array must be even`);for(let e=0;e{let n=Y(`node:events`);var r=class extends n{dispatch(){throw Error(`not implemented`)}close(){throw Error(`not implemented`)}destroy(){throw Error(`not implemented`)}compose(...e){let t=Array.isArray(e[0])?e[0]:e,n=this.dispatch.bind(this);for(let e of t)if(e!=null){if(typeof e!=`function`)throw TypeError(`invalid interceptor, expected function received ${typeof e}`);if(n=e(n),n==null||typeof n!=`function`||n.length!==2)throw TypeError(`invalid interceptor`)}return new i(this,n)}},i=class extends r{#e=null;#t=null;constructor(e,t){super(),this.#e=e,this.#t=t}dispatch(...e){this.#t(...e)}close(...e){return this.#e.close(...e)}destroy(...e){return this.#e.destroy(...e)}};t.exports=r})),Ue=J(((e,t)=>{let n=He(),{ClientDestroyedError:r,ClientClosedError:i,InvalidArgumentError:a}=Ie(),{kDestroy:o,kClose:s,kClosed:c,kDestroyed:l,kDispatch:u,kInterceptors:d}=Fe(),f=Symbol(`onDestroyed`),p=Symbol(`onClosed`),m=Symbol(`Intercepted Dispatch`),h=Symbol(`webSocketOptions`);t.exports=class extends n{constructor(e){super(),this[l]=!1,this[f]=null,this[c]=!1,this[p]=[],this[h]=e?.webSocket??{}}get webSocketOptions(){return{maxFragments:this[h].maxFragments??131072,maxPayloadSize:this[h].maxPayloadSize??134217728}}get destroyed(){return this[l]}get closed(){return this[c]}get interceptors(){return this[d]}set interceptors(e){if(e){for(let t=e.length-1;t>=0;t--)if(typeof this[d][t]!=`function`)throw new a(`interceptor must be an function`)}this[d]=e}close(e){if(e===void 0)return new Promise((e,t)=>{this.close((n,r)=>n?t(n):e(r))});if(typeof e!=`function`)throw new a(`invalid callback`);if(this[l]){queueMicrotask(()=>e(new r,null));return}if(this[c]){this[p]?this[p].push(e):queueMicrotask(()=>e(null,null));return}this[c]=!0,this[p].push(e);let t=()=>{let e=this[p];this[p]=null;for(let t=0;tthis.destroy()).then(()=>{queueMicrotask(t)})}destroy(e,t){if(typeof e==`function`&&(t=e,e=null),t===void 0)return new Promise((t,n)=>{this.destroy(e,(e,r)=>e?n(e):t(r))});if(typeof t!=`function`)throw new a(`invalid callback`);if(this[l]){this[f]?this[f].push(t):queueMicrotask(()=>t(null,null));return}e||=new r,this[l]=!0,this[f]=this[f]||[],this[f].push(t);let n=()=>{let e=this[f];this[f]=null;for(let t=0;t{queueMicrotask(n)})}[m](e,t){if(!this[d]||this[d].length===0)return this[m]=this[u],this[u](e,t);let n=this[u].bind(this);for(let e=this[d].length-1;e>=0;e--)n=this[d][e](n);return this[m]=n,n(e,t)}dispatch(e,t){if(!t||typeof t!=`object`)throw new a(`handler must be an object`);try{if(!e||typeof e!=`object`)throw new a(`opts must be an object.`);if(this[l]||this[f])throw new r;if(this[c])throw new i;return this[m](e,t)}catch(e){if(typeof t.onError!=`function`)throw new a(`invalid onError method`);return t.onError(e),!1}}}})),We=J(((e,t)=>{let n=0,r=1e3,i,a=Symbol(`kFastTimer`),o=[];function s(){n+=499;let e=0,t=o.length;for(;e=r._idleStart+r._idleTimeout&&(r._state=-1,r._idleStart=-1,r._onTimeout(r._timerArg)),r._state===-1?(r._state=-2,--t!==0&&(o[e]=o[t])):++e}o.length=t,o.length!==0&&c()}function c(){i?i.refresh():(clearTimeout(i),i=setTimeout(s,499),i.unref&&i.unref())}var l=class{[a]=!0;_state=-2;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(e,t,n){this._onTimeout=e,this._idleTimeout=t,this._timerArg=n,this.refresh()}refresh(){this._state===-2&&o.push(this),(!i||o.length===1)&&c(),this._state=0}clear(){this._state=-1,this._idleStart=-1}};t.exports={setTimeout(e,t,n){return t<=r?setTimeout(e,t,n):new l(e,t,n)},clearTimeout(e){e[a]?e.clear():clearTimeout(e)},setFastTimeout(e,t,n){return new l(e,t,n)},clearFastTimeout(e){e.clear()},now(){return n},tick(e=0){n+=e-r+1,s(),s()},reset(){n=0,o.length=0,clearTimeout(i),i=null},kFastTimer:a}})),Ge=J(((e,t)=>{let n=Y(`node:net`),r=Y(`node:assert`),i=ze(),{InvalidArgumentError:a,ConnectTimeoutError:o}=Ie(),s=We();function c(){}let l,u;u=global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)?class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(e=>{if(this._sessionCache.size=this._maxCachedSessions){let{value:e}=this._sessionCache.keys().next();this._sessionCache.delete(e)}this._sessionCache.set(e,t)}}};function d({allowH2:e,maxCachedSessions:t,socketPath:o,timeout:s,session:c,...d}){if(t!=null&&(!Number.isInteger(t)||t<0))throw new a(`maxCachedSessions must be a positive integer or zero`);let p={path:o,...d},m=new u(t??100);return s??=1e4,e??=!1,function({hostname:t,host:a,protocol:o,port:u,servername:d,localAddress:h,httpSocket:g},v){let y;if(o===`https:`){l||=Y(`node:tls`),d=d||p.servername||i.getServerName(a)||null;let n=d||t;r(n);let o=c||m.get(n)||null;u||=443,y=l.connect({highWaterMark:16384,...p,servername:d,session:o,localAddress:h,ALPNProtocols:e?[`http/1.1`,`h2`]:[`http/1.1`],socket:g,port:u,host:t}),y.on(`session`,function(e){m.set(n,e)})}else r(!g,`httpSocket can only be sent on TLS update`),u||=80,y=n.connect({highWaterMark:65536,...p,localAddress:h,port:u,host:t});if(p.keepAlive==null||p.keepAlive){let e=p.keepAliveInitialDelay===void 0?6e4:p.keepAliveInitialDelay;y.setKeepAlive(!0,e)}let b=f(new WeakRef(y),{timeout:s,hostname:t,port:u});return y.setNoDelay(!0).once(o===`https:`?`secureConnect`:`connect`,function(){if(queueMicrotask(b),v){let e=v;v=null,e(null,this)}}).on(`error`,function(e){if(queueMicrotask(b),v){let t=v;v=null,t(e)}}),y}}let f=process.platform===`win32`?(e,t)=>{if(!t.timeout)return c;let n=null,r=null,i=s.setFastTimeout(()=>{n=setImmediate(()=>{r=setImmediate(()=>p(e.deref(),t))})},t.timeout);return()=>{s.clearFastTimeout(i),clearImmediate(n),clearImmediate(r)}}:(e,t)=>{if(!t.timeout)return c;let n=null,r=s.setFastTimeout(()=>{n=setImmediate(()=>{p(e.deref(),t)})},t.timeout);return()=>{s.clearFastTimeout(r),clearImmediate(n)}};function p(e,t){if(e==null)return;let n=`Connect Timeout Error`;Array.isArray(e.autoSelectFamilyAttemptedAddresses)?n+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(`, `)},`:n+=` (attempted address: ${t.hostname}:${t.port},`,n+=` timeout: ${t.timeout}ms)`,i.destroy(e,new o(n))}t.exports=d})),Ke=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.enumToMap=void 0;function t(e){let t={};return Object.keys(e).forEach(n=>{let r=e[n];typeof r==`number`&&(t[n]=r)}),t}e.enumToMap=t})),qe=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.SPECIAL_HEADERS=e.HEADER_STATE=e.MINOR=e.MAJOR=e.CONNECTION_TOKEN_CHARS=e.HEADER_CHARS=e.TOKEN=e.STRICT_TOKEN=e.HEX=e.URL_CHAR=e.STRICT_URL_CHAR=e.USERINFO_CHARS=e.MARK=e.ALPHANUM=e.NUM=e.HEX_MAP=e.NUM_MAP=e.ALPHA=e.FINISH=e.H_METHOD_MAP=e.METHOD_MAP=e.METHODS_RTSP=e.METHODS_ICE=e.METHODS_HTTP=e.METHODS=e.LENIENT_FLAGS=e.FLAGS=e.TYPE=e.ERROR=void 0;let t=Ke();(function(e){e[e.OK=0]=`OK`,e[e.INTERNAL=1]=`INTERNAL`,e[e.STRICT=2]=`STRICT`,e[e.LF_EXPECTED=3]=`LF_EXPECTED`,e[e.UNEXPECTED_CONTENT_LENGTH=4]=`UNEXPECTED_CONTENT_LENGTH`,e[e.CLOSED_CONNECTION=5]=`CLOSED_CONNECTION`,e[e.INVALID_METHOD=6]=`INVALID_METHOD`,e[e.INVALID_URL=7]=`INVALID_URL`,e[e.INVALID_CONSTANT=8]=`INVALID_CONSTANT`,e[e.INVALID_VERSION=9]=`INVALID_VERSION`,e[e.INVALID_HEADER_TOKEN=10]=`INVALID_HEADER_TOKEN`,e[e.INVALID_CONTENT_LENGTH=11]=`INVALID_CONTENT_LENGTH`,e[e.INVALID_CHUNK_SIZE=12]=`INVALID_CHUNK_SIZE`,e[e.INVALID_STATUS=13]=`INVALID_STATUS`,e[e.INVALID_EOF_STATE=14]=`INVALID_EOF_STATE`,e[e.INVALID_TRANSFER_ENCODING=15]=`INVALID_TRANSFER_ENCODING`,e[e.CB_MESSAGE_BEGIN=16]=`CB_MESSAGE_BEGIN`,e[e.CB_HEADERS_COMPLETE=17]=`CB_HEADERS_COMPLETE`,e[e.CB_MESSAGE_COMPLETE=18]=`CB_MESSAGE_COMPLETE`,e[e.CB_CHUNK_HEADER=19]=`CB_CHUNK_HEADER`,e[e.CB_CHUNK_COMPLETE=20]=`CB_CHUNK_COMPLETE`,e[e.PAUSED=21]=`PAUSED`,e[e.PAUSED_UPGRADE=22]=`PAUSED_UPGRADE`,e[e.PAUSED_H2_UPGRADE=23]=`PAUSED_H2_UPGRADE`,e[e.USER=24]=`USER`})(e.ERROR||={}),(function(e){e[e.BOTH=0]=`BOTH`,e[e.REQUEST=1]=`REQUEST`,e[e.RESPONSE=2]=`RESPONSE`})(e.TYPE||={}),(function(e){e[e.CONNECTION_KEEP_ALIVE=1]=`CONNECTION_KEEP_ALIVE`,e[e.CONNECTION_CLOSE=2]=`CONNECTION_CLOSE`,e[e.CONNECTION_UPGRADE=4]=`CONNECTION_UPGRADE`,e[e.CHUNKED=8]=`CHUNKED`,e[e.UPGRADE=16]=`UPGRADE`,e[e.CONTENT_LENGTH=32]=`CONTENT_LENGTH`,e[e.SKIPBODY=64]=`SKIPBODY`,e[e.TRAILING=128]=`TRAILING`,e[e.TRANSFER_ENCODING=512]=`TRANSFER_ENCODING`})(e.FLAGS||={}),(function(e){e[e.HEADERS=1]=`HEADERS`,e[e.CHUNKED_LENGTH=2]=`CHUNKED_LENGTH`,e[e.KEEP_ALIVE=4]=`KEEP_ALIVE`})(e.LENIENT_FLAGS||={});var n;(function(e){e[e.DELETE=0]=`DELETE`,e[e.GET=1]=`GET`,e[e.HEAD=2]=`HEAD`,e[e.POST=3]=`POST`,e[e.PUT=4]=`PUT`,e[e.CONNECT=5]=`CONNECT`,e[e.OPTIONS=6]=`OPTIONS`,e[e.TRACE=7]=`TRACE`,e[e.COPY=8]=`COPY`,e[e.LOCK=9]=`LOCK`,e[e.MKCOL=10]=`MKCOL`,e[e.MOVE=11]=`MOVE`,e[e.PROPFIND=12]=`PROPFIND`,e[e.PROPPATCH=13]=`PROPPATCH`,e[e.SEARCH=14]=`SEARCH`,e[e.UNLOCK=15]=`UNLOCK`,e[e.BIND=16]=`BIND`,e[e.REBIND=17]=`REBIND`,e[e.UNBIND=18]=`UNBIND`,e[e.ACL=19]=`ACL`,e[e.REPORT=20]=`REPORT`,e[e.MKACTIVITY=21]=`MKACTIVITY`,e[e.CHECKOUT=22]=`CHECKOUT`,e[e.MERGE=23]=`MERGE`,e[e[`M-SEARCH`]=24]=`M-SEARCH`,e[e.NOTIFY=25]=`NOTIFY`,e[e.SUBSCRIBE=26]=`SUBSCRIBE`,e[e.UNSUBSCRIBE=27]=`UNSUBSCRIBE`,e[e.PATCH=28]=`PATCH`,e[e.PURGE=29]=`PURGE`,e[e.MKCALENDAR=30]=`MKCALENDAR`,e[e.LINK=31]=`LINK`,e[e.UNLINK=32]=`UNLINK`,e[e.SOURCE=33]=`SOURCE`,e[e.PRI=34]=`PRI`,e[e.DESCRIBE=35]=`DESCRIBE`,e[e.ANNOUNCE=36]=`ANNOUNCE`,e[e.SETUP=37]=`SETUP`,e[e.PLAY=38]=`PLAY`,e[e.PAUSE=39]=`PAUSE`,e[e.TEARDOWN=40]=`TEARDOWN`,e[e.GET_PARAMETER=41]=`GET_PARAMETER`,e[e.SET_PARAMETER=42]=`SET_PARAMETER`,e[e.REDIRECT=43]=`REDIRECT`,e[e.RECORD=44]=`RECORD`,e[e.FLUSH=45]=`FLUSH`})(n=e.METHODS||={}),e.METHODS_HTTP=[n.DELETE,n.GET,n.HEAD,n.POST,n.PUT,n.CONNECT,n.OPTIONS,n.TRACE,n.COPY,n.LOCK,n.MKCOL,n.MOVE,n.PROPFIND,n.PROPPATCH,n.SEARCH,n.UNLOCK,n.BIND,n.REBIND,n.UNBIND,n.ACL,n.REPORT,n.MKACTIVITY,n.CHECKOUT,n.MERGE,n[`M-SEARCH`],n.NOTIFY,n.SUBSCRIBE,n.UNSUBSCRIBE,n.PATCH,n.PURGE,n.MKCALENDAR,n.LINK,n.UNLINK,n.PRI,n.SOURCE],e.METHODS_ICE=[n.SOURCE],e.METHODS_RTSP=[n.OPTIONS,n.DESCRIBE,n.ANNOUNCE,n.SETUP,n.PLAY,n.PAUSE,n.TEARDOWN,n.GET_PARAMETER,n.SET_PARAMETER,n.REDIRECT,n.RECORD,n.FLUSH,n.GET,n.POST],e.METHOD_MAP=t.enumToMap(n),e.H_METHOD_MAP={},Object.keys(e.METHOD_MAP).forEach(t=>{/^H/.test(t)&&(e.H_METHOD_MAP[t]=e.METHOD_MAP[t])}),(function(e){e[e.SAFE=0]=`SAFE`,e[e.SAFE_WITH_CB=1]=`SAFE_WITH_CB`,e[e.UNSAFE=2]=`UNSAFE`})(e.FINISH||={}),e.ALPHA=[];for(let t=65;t<=90;t++)e.ALPHA.push(String.fromCharCode(t)),e.ALPHA.push(String.fromCharCode(t+32));e.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9},e.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},e.NUM=[`0`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`],e.ALPHANUM=e.ALPHA.concat(e.NUM),e.MARK=[`-`,`_`,`.`,`!`,`~`,`*`,`'`,`(`,`)`],e.USERINFO_CHARS=e.ALPHANUM.concat(e.MARK).concat([`%`,`;`,`:`,`&`,`=`,`+`,`$`,`,`]),e.STRICT_URL_CHAR=`!"$%&'()*+,-./:;<=>@[\\]^_\`{|}~`.split(``).concat(e.ALPHANUM),e.URL_CHAR=e.STRICT_URL_CHAR.concat([` `,`\f`]);for(let t=128;t<=255;t++)e.URL_CHAR.push(t);e.HEX=e.NUM.concat([`a`,`b`,`c`,`d`,`e`,`f`,`A`,`B`,`C`,`D`,`E`,`F`]),e.STRICT_TOKEN=[`!`,`#`,`$`,`%`,`&`,`'`,`*`,`+`,`-`,`.`,`^`,`_`,"`",`|`,`~`].concat(e.ALPHANUM),e.TOKEN=e.STRICT_TOKEN.concat([` `]),e.HEADER_CHARS=[` `];for(let t=32;t<=255;t++)t!==127&&e.HEADER_CHARS.push(t);e.CONNECTION_TOKEN_CHARS=e.HEADER_CHARS.filter(e=>e!==44),e.MAJOR=e.NUM_MAP,e.MINOR=e.MAJOR;var r;(function(e){e[e.GENERAL=0]=`GENERAL`,e[e.CONNECTION=1]=`CONNECTION`,e[e.CONTENT_LENGTH=2]=`CONTENT_LENGTH`,e[e.TRANSFER_ENCODING=3]=`TRANSFER_ENCODING`,e[e.UPGRADE=4]=`UPGRADE`,e[e.CONNECTION_KEEP_ALIVE=5]=`CONNECTION_KEEP_ALIVE`,e[e.CONNECTION_CLOSE=6]=`CONNECTION_CLOSE`,e[e.CONNECTION_UPGRADE=7]=`CONNECTION_UPGRADE`,e[e.TRANSFER_ENCODING_CHUNKED=8]=`TRANSFER_ENCODING_CHUNKED`})(r=e.HEADER_STATE||={}),e.SPECIAL_HEADERS={connection:r.CONNECTION,"content-length":r.CONTENT_LENGTH,"proxy-connection":r.CONNECTION,"transfer-encoding":r.TRANSFER_ENCODING,upgrade:r.UPGRADE}})),Je=J(((e,t)=>{let{Buffer:n}=Y(`node:buffer`);t.exports=n.from(`AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv`,`base64`)})),Ye=J(((e,t)=>{let{Buffer:n}=Y(`node:buffer`);t.exports=n.from(`AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==`,`base64`)})),Xe=J(((e,t)=>{let n=[`GET`,`HEAD`,`POST`],r=new Set(n),i=[101,204,205,304],a=[301,302,303,307,308],o=new Set(a),s=`1.7.9.11.13.15.17.19.20.21.22.23.25.37.42.43.53.69.77.79.87.95.101.102.103.104.109.110.111.113.115.117.119.123.135.137.139.143.161.179.389.427.465.512.513.514.515.526.530.531.532.540.548.554.556.563.587.601.636.989.990.993.995.1719.1720.1723.2049.3659.4045.4190.5060.5061.6000.6566.6665.6666.6667.6668.6669.6679.6697.10080`.split(`.`),c=new Set(s),l=[``,`no-referrer`,`no-referrer-when-downgrade`,`same-origin`,`origin`,`strict-origin`,`origin-when-cross-origin`,`strict-origin-when-cross-origin`,`unsafe-url`],u=new Set(l),d=[`follow`,`manual`,`error`],f=[`GET`,`HEAD`,`OPTIONS`,`TRACE`],p=new Set(f),m=[`navigate`,`same-origin`,`no-cors`,`cors`],h=[`omit`,`same-origin`,`include`],g=[`default`,`no-store`,`reload`,`no-cache`,`force-cache`,`only-if-cached`],v=[`content-encoding`,`content-language`,`content-location`,`content-type`,`content-length`],y=[`half`],b=[`CONNECT`,`TRACE`,`TRACK`],x=new Set(b),S=[`audio`,`audioworklet`,`font`,`image`,`manifest`,`paintworklet`,`script`,`style`,`track`,`video`,`xslt`,``];t.exports={subresource:S,forbiddenMethods:b,requestBodyHeader:v,referrerPolicy:l,requestRedirect:d,requestMode:m,requestCredentials:h,requestCache:g,redirectStatus:a,corsSafeListedMethods:n,nullBodyStatus:i,safeMethods:f,badPorts:s,requestDuplex:y,subresourceSet:new Set(S),badPortsSet:c,redirectStatusSet:o,corsSafeListedMethodsSet:r,safeMethodsSet:p,forbiddenMethodsSet:x,referrerPolicySet:u}})),Ze=J(((e,t)=>{let n=Symbol.for(`undici.globalOrigin.1`);function r(){return globalThis[n]}function i(e){if(e===void 0){Object.defineProperty(globalThis,n,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!==`http:`&&t.protocol!==`https:`)throw TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,n,{value:t,writable:!0,enumerable:!1,configurable:!1})}t.exports={getGlobalOrigin:r,setGlobalOrigin:i}})),Qe=J(((e,t)=>{let n=Y(`node:assert`),r=new TextEncoder,i=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,a=/[\u000A\u000D\u0009\u0020]/,o=/[\u0009\u000A\u000C\u000D\u0020]/g,s=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function c(e){n(e.protocol===`data:`);let t=l(e,!0);t=t.slice(5);let r={position:0},i=d(`,`,t,r),a=i.length;if(i=w(i,!0,!0),r.position>=t.length)return`failure`;r.position++;let o=f(t.slice(a+1));if(/;(\u0020){0,}base64$/i.test(i)){if(o=v(E(o)),o===`failure`)return`failure`;i=i.slice(0,-6),i=i.replace(/(\u0020)+$/,``),i=i.slice(0,-1)}i.startsWith(`;`)&&(i=`text/plain`+i);let s=g(i);return s===`failure`&&(s=g(`text/plain;charset=US-ASCII`)),{mimeType:s,body:o}}function l(e,t=!1){if(!t)return e.href;let n=e.href,r=e.hash.length,i=r===0?n:n.substring(0,n.length-r);return!r&&n.endsWith(`#`)?i.slice(0,-1):i}function u(e,t,n){let r=``;for(;n.position=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function m(e){return e>=48&&e<=57?e-48:(e&223)-55}function h(e){let t=e.length,n=new Uint8Array(t),r=0;for(let i=0;ie.length)return`failure`;t.position++;let r=d(`;`,e,t);if(r=S(r,!1,!0),r.length===0||!i.test(r))return`failure`;let o=n.toLowerCase(),c=r.toLowerCase(),l={type:o,subtype:c,parameters:new Map,essence:`${o}/${c}`};for(;t.positiona.test(e),e,t);let n=u(e=>e!==`;`&&e!==`=`,e,t);if(n=n.toLowerCase(),t.positione.length)break;let r=null;if(e[t.position]===`"`)r=y(e,t,!0),d(`;`,e,t);else if(r=d(`;`,e,t),r=S(r,!1,!0),r.length===0)continue;n.length!==0&&i.test(n)&&(r.length===0||s.test(r))&&!l.parameters.has(n)&&l.parameters.set(n,r)}return l}function v(e){e=e.replace(o,``);let t=e.length;if(t%4==0&&e.charCodeAt(t-1)===61&&(--t,e.charCodeAt(t-1)===61&&--t),t%4==1||/[^+/0-9A-Za-z]/.test(e.length===t?e:e.substring(0,t)))return`failure`;let n=Buffer.from(e,`base64`);return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}function y(e,t,r){let i=t.position,a=``;for(n(e[t.position]===`"`),t.position++;a+=u(e=>e!==`"`&&e!==`\\`,e,t),!(t.position>=e.length);){let r=e[t.position];if(t.position++,r===`\\`){if(t.position>=e.length){a+=`\\`;break}a+=e[t.position],t.position++}else{n(r===`"`);break}}return r?a:e.slice(i,t.position)}function b(e){n(e!==`failure`);let{parameters:t,essence:r}=e,a=r;for(let[e,n]of t.entries())a+=`;`,a+=e,a+=`=`,i.test(n)||(n=n.replace(/(\\|")/g,`\\$1`),n=`"`+n,n+=`"`),a+=n;return a}function x(e){return e===13||e===10||e===9||e===32}function S(e,t=!0,n=!0){return T(e,t,n,x)}function C(e){return e===13||e===10||e===9||e===12||e===32}function w(e,t=!0,n=!0){return T(e,t,n,C)}function T(e,t,n,r){let i=0,a=e.length-1;if(t)for(;i0&&r(e.charCodeAt(a));)a--;return i===0&&a===e.length-1?e:e.slice(i,a+1)}function E(e){let t=e.length;if(65535>t)return String.fromCharCode.apply(null,e);let n=``,r=0,i=65535;for(;rt&&(i=t-r),n+=String.fromCharCode.apply(null,e.subarray(r,r+=i));return n}function D(e){switch(e.essence){case`application/ecmascript`:case`application/javascript`:case`application/x-ecmascript`:case`application/x-javascript`:case`text/ecmascript`:case`text/javascript`:case`text/javascript1.0`:case`text/javascript1.1`:case`text/javascript1.2`:case`text/javascript1.3`:case`text/javascript1.4`:case`text/javascript1.5`:case`text/jscript`:case`text/livescript`:case`text/x-ecmascript`:case`text/x-javascript`:return`text/javascript`;case`application/json`:case`text/json`:return`application/json`;case`image/svg+xml`:return`image/svg+xml`;case`text/xml`:case`application/xml`:return`application/xml`}return e.subtype.endsWith(`+json`)?`application/json`:e.subtype.endsWith(`+xml`)?`application/xml`:``}t.exports={dataURLProcessor:c,URLSerializer:l,collectASequenceOfCodePoints:u,collectASequenceOfCodePointsFast:d,stringPercentDecode:f,parseMIMEType:g,collectAnHTTPQuotedString:y,serializeAMimeType:b,removeChars:T,removeHTTPWhitespace:S,minimizeSupportedMimeType:D,HTTP_TOKEN_CODEPOINTS:i,isomorphicDecode:E}})),$e=J(((e,t)=>{let{types:n,inspect:r}=Y(`node:util`),{markAsUncloneable:i}=Y(`node:worker_threads`),{toUSVString:a}=ze(),o={};o.converters={},o.util={},o.errors={},o.errors.exception=function(e){return TypeError(`${e.header}: ${e.message}`)},o.errors.conversionFailed=function(e){let t=e.types.length===1?``:` one of`,n=`${e.argument} could not be converted to${t}: ${e.types.join(`, `)}.`;return o.errors.exception({header:e.prefix,message:n})},o.errors.invalidArgument=function(e){return o.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})},o.brandCheck=function(e,t,n){if(n?.strict!==!1){if(!(e instanceof t)){let e=TypeError(`Illegal invocation`);throw e.code=`ERR_INVALID_THIS`,e}}else if(e?.[Symbol.toStringTag]!==t.prototype[Symbol.toStringTag]){let e=TypeError(`Illegal invocation`);throw e.code=`ERR_INVALID_THIS`,e}},o.argumentLengthCheck=function({length:e},t,n){if(e{}),o.util.ConvertToInt=function(e,t,n,r){let i,a;t===64?(i=2**53-1,a=n===`unsigned`?0:(-2)**53+1):n===`unsigned`?(a=0,i=2**t-1):(a=(-2)**t-1,i=2**(t-1)-1);let s=Number(e);if(s===0&&(s=0),r?.enforceRange===!0){if(Number.isNaN(s)||s===1/0||s===-1/0)throw o.errors.exception({header:`Integer conversion`,message:`Could not convert ${o.util.Stringify(e)} to an integer.`});if(s=o.util.IntegerPart(s),si)throw o.errors.exception({header:`Integer conversion`,message:`Value must be between ${a}-${i}, got ${s}.`});return s}return!Number.isNaN(s)&&r?.clamp===!0?(s=Math.min(Math.max(s,a),i),s=Math.floor(s)%2==0?Math.floor(s):Math.ceil(s),s):Number.isNaN(s)||s===0&&Object.is(0,s)||s===1/0||s===-1/0?0:(s=o.util.IntegerPart(s),s%=2**t,n===`signed`&&s>=2**t-1?s-2**t:s)},o.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t},o.util.Stringify=function(e){switch(o.util.Type(e)){case`Symbol`:return`Symbol(${e.description})`;case`Object`:return r(e);case`String`:return`"${e}"`;default:return`${e}`}},o.sequenceConverter=function(e){return(t,n,r,i)=>{if(o.util.Type(t)!==`Object`)throw o.errors.exception({header:n,message:`${r} (${o.util.Stringify(t)}) is not iterable.`});let a=typeof i==`function`?i():t?.[Symbol.iterator]?.(),s=[],c=0;if(a===void 0||typeof a.next!=`function`)throw o.errors.exception({header:n,message:`${r} is not iterable.`});for(;;){let{done:t,value:i}=a.next();if(t)break;s.push(e(i,n,`${r}[${c++}]`))}return s}},o.recordConverter=function(e,t){return(r,i,a)=>{if(o.util.Type(r)!==`Object`)throw o.errors.exception({header:i,message:`${a} ("${o.util.Type(r)}") is not an Object.`});let s={};if(!n.isProxy(r)){let n=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(let o of n){let n=e(o,i,a);s[n]=t(r[o],i,a)}return s}let c=Reflect.ownKeys(r);for(let n of c)if(Reflect.getOwnPropertyDescriptor(r,n)?.enumerable){let o=e(n,i,a);s[o]=t(r[n],i,a)}return s}},o.interfaceConverter=function(e){return(t,n,r,i)=>{if(i?.strict!==!1&&!(t instanceof e))throw o.errors.exception({header:n,message:`Expected ${r} ("${o.util.Stringify(t)}") to be an instance of ${e.name}.`});return t}},o.dictionaryConverter=function(e){return(t,n,r)=>{let i=o.util.Type(t),a={};if(i===`Null`||i===`Undefined`)return a;if(i!==`Object`)throw o.errors.exception({header:n,message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let i of e){let{key:e,defaultValue:s,required:c,converter:l}=i;if(c===!0&&!Object.hasOwn(t,e))throw o.errors.exception({header:n,message:`Missing required key "${e}".`});let u=t[e],d=Object.hasOwn(i,`defaultValue`);if(d&&u!==null&&(u??=s()),c||d||u!==void 0){if(u=l(u,n,`${r}.${e}`),i.allowedValues&&!i.allowedValues.includes(u))throw o.errors.exception({header:n,message:`${u} is not an accepted type. Expected one of ${i.allowedValues.join(`, `)}.`});a[e]=u}}return a}},o.nullableConverter=function(e){return(t,n,r)=>t===null?t:e(t,n,r)},o.converters.DOMString=function(e,t,n,r){if(e===null&&r?.legacyNullToEmptyString)return``;if(typeof e==`symbol`)throw o.errors.exception({header:t,message:`${n} is a symbol, which cannot be converted to a DOMString.`});return String(e)},o.converters.ByteString=function(e,t,n){let r=o.converters.DOMString(e,t,n);for(let e=0;e255)throw TypeError(`Cannot convert argument to a ByteString because the character at index ${e} has a value of ${r.charCodeAt(e)} which is greater than 255.`);return r},o.converters.USVString=a,o.converters.boolean=function(e){return!!e},o.converters.any=function(e){return e},o.converters[`long long`]=function(e,t,n){return o.util.ConvertToInt(e,64,`signed`,void 0,t,n)},o.converters[`unsigned long long`]=function(e,t,n){return o.util.ConvertToInt(e,64,`unsigned`,void 0,t,n)},o.converters[`unsigned long`]=function(e,t,n){return o.util.ConvertToInt(e,32,`unsigned`,void 0,t,n)},o.converters[`unsigned short`]=function(e,t,n,r){return o.util.ConvertToInt(e,16,`unsigned`,r,t,n)},o.converters.ArrayBuffer=function(e,t,r,i){if(o.util.Type(e)!==`Object`||!n.isAnyArrayBuffer(e))throw o.errors.conversionFailed({prefix:t,argument:`${r} ("${o.util.Stringify(e)}")`,types:[`ArrayBuffer`]});if(i?.allowShared===!1&&n.isSharedArrayBuffer(e))throw o.errors.exception({header:`ArrayBuffer`,message:`SharedArrayBuffer is not allowed.`});if(e.resizable||e.growable)throw o.errors.exception({header:`ArrayBuffer`,message:`Received a resizable ArrayBuffer.`});return e},o.converters.TypedArray=function(e,t,r,i,a){if(o.util.Type(e)!==`Object`||!n.isTypedArray(e)||e.constructor.name!==t.name)throw o.errors.conversionFailed({prefix:r,argument:`${i} ("${o.util.Stringify(e)}")`,types:[t.name]});if(a?.allowShared===!1&&n.isSharedArrayBuffer(e.buffer))throw o.errors.exception({header:`ArrayBuffer`,message:`SharedArrayBuffer is not allowed.`});if(e.buffer.resizable||e.buffer.growable)throw o.errors.exception({header:`ArrayBuffer`,message:`Received a resizable ArrayBuffer.`});return e},o.converters.DataView=function(e,t,r,i){if(o.util.Type(e)!==`Object`||!n.isDataView(e))throw o.errors.exception({header:t,message:`${r} is not a DataView.`});if(i?.allowShared===!1&&n.isSharedArrayBuffer(e.buffer))throw o.errors.exception({header:`ArrayBuffer`,message:`SharedArrayBuffer is not allowed.`});if(e.buffer.resizable||e.buffer.growable)throw o.errors.exception({header:`ArrayBuffer`,message:`Received a resizable ArrayBuffer.`});return e},o.converters.BufferSource=function(e,t,r,i){if(n.isAnyArrayBuffer(e))return o.converters.ArrayBuffer(e,t,r,{...i,allowShared:!1});if(n.isTypedArray(e))return o.converters.TypedArray(e,e.constructor,t,r,{...i,allowShared:!1});if(n.isDataView(e))return o.converters.DataView(e,t,r,{...i,allowShared:!1});throw o.errors.conversionFailed({prefix:t,argument:`${r} ("${o.util.Stringify(e)}")`,types:[`BufferSource`]})},o.converters[`sequence`]=o.sequenceConverter(o.converters.ByteString),o.converters[`sequence>`]=o.sequenceConverter(o.converters[`sequence`]),o.converters[`record`]=o.recordConverter(o.converters.ByteString,o.converters.ByteString),t.exports={webidl:o}})),et=J(((e,t)=>{let{Transform:n}=Y(`node:stream`),r=Y(`node:zlib`),{redirectStatusSet:i,referrerPolicySet:a,badPortsSet:o}=Xe(),{getGlobalOrigin:s}=Ze(),{collectASequenceOfCodePoints:c,collectAnHTTPQuotedString:l,removeChars:u,parseMIMEType:d}=Qe(),{performance:f}=Y(`node:perf_hooks`),{isBlobLike:p,ReadableStreamFrom:m,isValidHTTPToken:h,normalizedMethodRecordsBase:g}=ze(),v=Y(`node:assert`),{isUint8Array:y}=Y(`node:util/types`),{webidl:b}=$e(),x=[],S;try{S=Y(`node:crypto`);let e=[`sha256`,`sha384`,`sha512`];x=S.getHashes().filter(t=>e.includes(t))}catch{}function C(e){let t=e.urlList,n=t.length;return n===0?null:t[n-1].toString()}function w(e,t){if(!i.has(e.status))return null;let n=e.headersList.get(`location`,!0);return n!==null&&M(n)&&(T(n)||(n=E(n)),n=new URL(n,C(e))),n&&!n.hash&&(n.hash=t),n}function T(e){for(let t=0;t126||n<32)return!1}return!0}function E(e){return Buffer.from(e,`binary`).toString(`utf8`)}function D(e){return e.urlList[e.urlList.length-1]}function O(e){let t=D(e);return Ce(t)&&o.has(t.port)?`blocked`:`allowed`}function k(e){return e instanceof Error||e?.constructor?.name===`Error`||e?.constructor?.name===`DOMException`}function A(e){for(let t=0;t=32&&n<=126||n>=128&&n<=255))return!1}return!0}let j=h;function M(e){return(e[0]===` `||e[0]===` `||e[e.length-1]===` `||e[e.length-1]===` `||e.includes(` +`)||e.includes(`\r`)||e.includes(`\0`))===!1}function N(e,t){let{headersList:n}=t,r=(n.get(`referrer-policy`,!0)??``).split(`,`),i=``;if(r.length>0)for(let e=r.length;e!==0;e--){let t=r[e-1].trim();if(a.has(t)){i=t;break}}i!==``&&(e.referrerPolicy=i)}function P(){return`allowed`}function F(){return`success`}function I(){return`success`}function L(e){let t=null;t=e.mode,e.headersList.set(`sec-fetch-mode`,t,!0)}function R(e){let t=e.origin;if(t!==`client`&&t!==void 0){if(e.responseTainting===`cors`||e.mode===`websocket`)e.headersList.append(`origin`,t,!0);else if(e.method!==`GET`&&e.method!==`HEAD`){switch(e.referrerPolicy){case`no-referrer`:t=null;break;case`no-referrer-when-downgrade`:case`strict-origin`:case`strict-origin-when-cross-origin`:e.origin&&Se(e.origin)&&!Se(D(e))&&(t=null);break;case`same-origin`:se(e,D(e))||(t=null)}e.headersList.append(`origin`,t,!0)}}}function z(e,t){return e}function ee(e,t,n){return!e?.startTime||e.startTime4096&&(r=i);let a=se(e,r),o=K(r)&&!K(e.url);switch(t){case`origin`:return i??G(n,!0);case`unsafe-url`:return r;case`same-origin`:return a?i:`no-referrer`;case`origin-when-cross-origin`:return a?r:i;case`strict-origin-when-cross-origin`:{let t=D(e);return se(r,t)?r:K(r)&&!K(t)?`no-referrer`:i}default:return o?`no-referrer`:i}}function G(e,t){return v(e instanceof URL),e=new URL(e),e.protocol===`file:`||e.protocol===`about:`||e.protocol===`blank:`?`no-referrer`:(e.username=``,e.password=``,e.hash=``,t&&(e.pathname=``,e.search=``),e)}function K(e){if(!(e instanceof URL))return!1;if(e.href===`about:blank`||e.href===`about:srcdoc`||e.protocol===`data:`||e.protocol===`file:`)return!0;return t(e.origin);function t(e){if(e==null||e===`null`)return!1;let t=new URL(e);return!!(t.protocol===`https:`||t.protocol===`wss:`||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(t.hostname)||t.hostname===`localhost`||t.hostname.includes(`localhost.`)||t.hostname.endsWith(`.localhost`))}}function q(e,t){if(S===void 0)return!0;let n=ne(t);if(n===`no metadata`||n.length===0)return!0;let r=ie(n,re(n));for(let t of r){let n=t.algo,r=t.hash,i=S.createHash(n).update(e).digest(`base64`);if(i[i.length-1]===`=`&&(i=i[i.length-2]===`=`?i.slice(0,-2):i.slice(0,-1)),ae(i,r))return!0}return!1}let te=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function ne(e){let t=[],n=!0;for(let r of e.split(` `)){n=!1;let e=te.exec(r);if(e===null||e.groups===void 0||e.groups.algo===void 0)continue;let i=e.groups.algo.toLowerCase();x.includes(i)&&t.push(e.groups)}return n===!0?`no metadata`:t}function re(e){let t=e[0].algo;if(t[3]===`5`)return t;for(let n=1;n{e=n,t=r}),resolve:e,reject:t}}function le(e){return e.controller.state===`aborted`}function ue(e){return e.controller.state===`aborted`||e.controller.state===`terminated`}function de(e){return g[e.toLowerCase()]??e}function fe(e){let t=JSON.stringify(e);if(t===void 0)throw TypeError(`Value is not JSON serializable`);return v(typeof t==`string`),t}let pe=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function me(e,t,n=0,r=1){class i{#e;#t;#n;constructor(e,t){this.#e=e,this.#t=t,this.#n=0}next(){if(typeof this!=`object`||this===null||!(#e in this))throw TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let i=this.#n,a=this.#e[t];if(i>=a.length)return{value:void 0,done:!0};let{[n]:o,[r]:s}=a[i];this.#n=i+1;let c;switch(this.#t){case`key`:c=o;break;case`value`:c=s;break;case`key+value`:c=[o,s]}return{value:c,done:!1}}}return delete i.prototype.constructor,Object.setPrototypeOf(i.prototype,pe),Object.defineProperties(i.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(e,t){return new i(e,t)}}function he(e,t,n,r=0,i=1){let a=me(e,n,r,i),o={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return b.brandCheck(this,t),a(this,`key`)}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return b.brandCheck(this,t),a(this,`value`)}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return b.brandCheck(this,t),a(this,`key+value`)}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(n,r=globalThis){if(b.brandCheck(this,t),b.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof n!=`function`)throw TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:e,1:t}of a(this,`key+value`))n.call(r,t,e,this)}}};return Object.defineProperties(t.prototype,{...o,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:o.entries.value}})}async function ge(e,t,n){let r=t,i=n,a;try{a=e.stream.getReader()}catch(e){i(e);return}try{r(await be(a))}catch(e){i(e)}}function _e(e){return e instanceof ReadableStream||e[Symbol.toStringTag]===`ReadableStream`&&typeof e.tee==`function`}function J(e){try{e.close(),e.byobRequest?.respond(0)}catch(e){if(!e.message.includes(`Controller is already closed`)&&!e.message.includes(`ReadableStream is already closed`))throw e}}let ve=/[^\x00-\xFF]/;function ye(e){return v(!ve.test(e)),e}async function be(e){let t=[],n=0;for(;;){let{done:r,value:i}=await e.read();if(r)return Buffer.concat(t,n);if(!y(i))throw TypeError(`Received non-Uint8Array chunk`);t.push(i),n+=i.length}}function xe(e){v(`protocol`in e);let t=e.protocol;return t===`about:`||t===`blob:`||t===`data:`}function Se(e){return typeof e==`string`&&e[5]===`:`&&e[0]===`h`&&e[1]===`t`&&e[2]===`t`&&e[3]===`p`&&e[4]===`s`||e.protocol===`https:`}function Ce(e){v(`protocol`in e);let t=e.protocol;return t===`http:`||t===`https:`}function we(e,t){let n=e;if(!n.startsWith(`bytes`))return`failure`;let r={position:5};if(t&&c(e=>e===` `||e===` `,n,r),n.charCodeAt(r.position)!==61)return`failure`;r.position++,t&&c(e=>e===` `||e===` `,n,r);let i=c(e=>{let t=e.charCodeAt(0);return t>=48&&t<=57},n,r),a=i.length?Number(i):null;if(t&&c(e=>e===` `||e===` `,n,r),n.charCodeAt(r.position)!==45)return`failure`;r.position++,t&&c(e=>e===` `||e===` `,n,r);let o=c(e=>{let t=e.charCodeAt(0);return t>=48&&t<=57},n,r),s=o.length?Number(o):null;return r.positions?`failure`:{rangeStartValue:a,rangeEndValue:s}}function Te(e,t,n){let r=`bytes `;return r+=ye(`${e}`),r+=`-`,r+=ye(`${t}`),r+=`/`,r+=ye(`${n}`),r}var Ee=class extends n{#e;constructor(e){super(),this.#e=e}_transform(e,t,n){if(!this._inflateStream){if(e.length===0){n();return}this._inflateStream=(e[0]&15)==8?r.createInflate(this.#e):r.createInflateRaw(this.#e),this._inflateStream.on(`data`,this.push.bind(this)),this._inflateStream.on(`end`,()=>this.push(null)),this._inflateStream.on(`error`,e=>this.destroy(e))}this._inflateStream.write(e,t,n)}_final(e){this._inflateStream&&=(this._inflateStream.end(),null),e()}};function De(e){return new Ee(e)}function Oe(e){let t=null,n=null,r=null,i=Ae(`content-type`,e);if(i===null)return`failure`;for(let e of i){let i=d(e);i!==`failure`&&i.essence!==`*/*`&&(r=i,r.essence===n?!r.parameters.has(`charset`)&&t!==null&&r.parameters.set(`charset`,t):(t=null,r.parameters.has(`charset`)&&(t=r.parameters.get(`charset`)),n=r.essence))}return r??`failure`}function ke(e){let t=e,n={position:0},r=[],i=``;for(;n.positione!==`"`&&e!==`,`,t,n),n.positione===9||e===32),r.push(i),i=``}return r}function Ae(e,t){let n=t.get(e,!0);return n===null?null:ke(n)}let je=new TextDecoder;function Me(e){return e.length===0?``:(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),je.decode(e))}var Ne=class{get baseUrl(){return s()}get origin(){return this.baseUrl?.origin}policyContainer=H()};t.exports={isAborted:le,isCancelled:ue,isValidEncodedURL:T,createDeferredPromise:ce,ReadableStreamFrom:m,tryUpgradeRequestToAPotentiallyTrustworthyURL:oe,clampAndCoarsenConnectionTimingInfo:ee,coarsenedSharedCurrentTime:B,determineRequestsReferrer:W,makePolicyContainer:H,clonePolicyContainer:U,appendFetchMetadata:L,appendRequestOriginHeader:R,TAOCheck:I,corsCheck:F,crossOriginResourcePolicyCheck:P,createOpaqueTimingInfo:V,setRequestReferrerPolicyOnRedirect:N,isValidHTTPToken:h,requestBadPort:O,requestCurrentURL:D,responseURL:C,responseLocationURL:w,isBlobLike:p,isURLPotentiallyTrustworthy:K,isValidReasonPhrase:A,sameOrigin:se,normalizeMethod:de,serializeJavascriptValueToJSONString:fe,iteratorMixin:he,createIterator:me,isValidHeaderName:j,isValidHeaderValue:M,isErrorLike:k,fullyReadBody:ge,bytesMatch:q,isReadableStreamLike:_e,readableStreamClose:J,isomorphicEncode:ye,urlIsLocal:xe,urlHasHttpsScheme:Se,urlIsHttpHttpsScheme:Ce,readAllBytes:be,simpleRangeHeaderValue:we,buildContentRange:Te,parseMetadata:ne,createInflate:De,extractMimeType:Oe,getDecodeSplit:Ae,utf8DecodeBytes:Me,environmentSettingsObject:new class{settingsObject=new Ne}}})),tt=J(((e,t)=>{t.exports={kUrl:Symbol(`url`),kHeaders:Symbol(`headers`),kSignal:Symbol(`signal`),kState:Symbol(`state`),kDispatcher:Symbol(`dispatcher`)}})),nt=J(((e,t)=>{let{Blob:n,File:r}=Y(`node:buffer`),{kState:i}=tt(),{webidl:a}=$e();var o=class e{constructor(e,t,n={}){let r=t,a=n.type,o=n.lastModified??Date.now();this[i]={blobLike:e,name:r,type:a,lastModified:o}}stream(...t){return a.brandCheck(this,e),this[i].blobLike.stream(...t)}arrayBuffer(...t){return a.brandCheck(this,e),this[i].blobLike.arrayBuffer(...t)}slice(...t){return a.brandCheck(this,e),this[i].blobLike.slice(...t)}text(...t){return a.brandCheck(this,e),this[i].blobLike.text(...t)}get size(){return a.brandCheck(this,e),this[i].blobLike.size}get type(){return a.brandCheck(this,e),this[i].blobLike.type}get name(){return a.brandCheck(this,e),this[i].name}get lastModified(){return a.brandCheck(this,e),this[i].lastModified}get[Symbol.toStringTag](){return`File`}};a.converters.Blob=a.interfaceConverter(n);function s(e){return e instanceof r||e&&(typeof e.stream==`function`||typeof e.arrayBuffer==`function`)&&e[Symbol.toStringTag]===`File`}t.exports={FileLike:o,isFileLike:s}})),rt=J(((e,t)=>{let{isBlobLike:n,iteratorMixin:r}=et(),{kState:i}=tt(),{kEnumerableProperty:a}=ze(),{FileLike:o,isFileLike:s}=nt(),{webidl:c}=$e(),{File:l}=Y(`node:buffer`),u=Y(`node:util`),d=globalThis.File??l;var f=class e{constructor(e){if(c.util.markAsUncloneable(this),e!==void 0)throw c.errors.conversionFailed({prefix:`FormData constructor`,argument:`Argument 1`,types:[`undefined`]});this[i]=[]}append(t,r,a=void 0){c.brandCheck(this,e);let o=`FormData.append`;if(c.argumentLengthCheck(arguments,2,o),arguments.length===3&&!n(r))throw TypeError(`Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'`);t=c.converters.USVString(t,o,`name`),r=n(r)?c.converters.Blob(r,o,`value`,{strict:!1}):c.converters.USVString(r,o,`value`),a=arguments.length===3?c.converters.USVString(a,o,`filename`):void 0;let s=p(t,r,a);this[i].push(s)}delete(t){c.brandCheck(this,e);let n=`FormData.delete`;c.argumentLengthCheck(arguments,1,n),t=c.converters.USVString(t,n,`name`),this[i]=this[i].filter(e=>e.name!==t)}get(t){c.brandCheck(this,e);let n=`FormData.get`;c.argumentLengthCheck(arguments,1,n),t=c.converters.USVString(t,n,`name`);let r=this[i].findIndex(e=>e.name===t);return r===-1?null:this[i][r].value}getAll(t){c.brandCheck(this,e);let n=`FormData.getAll`;return c.argumentLengthCheck(arguments,1,n),t=c.converters.USVString(t,n,`name`),this[i].filter(e=>e.name===t).map(e=>e.value)}has(t){c.brandCheck(this,e);let n=`FormData.has`;return c.argumentLengthCheck(arguments,1,n),t=c.converters.USVString(t,n,`name`),this[i].findIndex(e=>e.name===t)!==-1}set(t,r,a=void 0){c.brandCheck(this,e);let o=`FormData.set`;if(c.argumentLengthCheck(arguments,2,o),arguments.length===3&&!n(r))throw TypeError(`Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'`);t=c.converters.USVString(t,o,`name`),r=n(r)?c.converters.Blob(r,o,`name`,{strict:!1}):c.converters.USVString(r,o,`name`),a=arguments.length===3?c.converters.USVString(a,o,`name`):void 0;let s=p(t,r,a),l=this[i].findIndex(e=>e.name===t);l===-1?this[i].push(s):this[i]=[...this[i].slice(0,l),s,...this[i].slice(l+1).filter(e=>e.name!==t)]}[u.inspect.custom](e,t){let n=this[i].reduce((e,t)=>(e[t.name]?Array.isArray(e[t.name])?e[t.name].push(t.value):e[t.name]=[e[t.name],t.value]:e[t.name]=t.value,e),{__proto__:null});t.depth??=e,t.colors??=!0;let r=u.formatWithOptions(t,n);return`FormData ${r.slice(r.indexOf(`]`)+2)}`}};r(`FormData`,f,i,`name`,`value`),Object.defineProperties(f.prototype,{append:a,delete:a,get:a,getAll:a,has:a,set:a,[Symbol.toStringTag]:{value:`FormData`,configurable:!0}});function p(e,t,n){if(typeof t!=`string`&&(s(t)||(t=t instanceof Blob?new d([t],`blob`,{type:t.type}):new o(t,`blob`,{type:t.type})),n!==void 0)){let e={type:t.type,lastModified:t.lastModified};t=t instanceof l?new d([t],n,e):new o(t,n,e)}return{name:e,value:t}}t.exports={FormData:f,makeEntry:p}})),it=J(((e,t)=>{let{isUSVString:n,bufferToLowerCasedHeaderName:r}=ze(),{utf8DecodeBytes:i}=et(),{HTTP_TOKEN_CODEPOINTS:a,isomorphicDecode:o}=Qe(),{isFileLike:s}=nt(),{makeEntry:c}=rt(),l=Y(`node:assert`),{File:u}=Y(`node:buffer`),d=globalThis.File??u,f=Buffer.from(`form-data; name="`),p=Buffer.from(`; filename`),m=Buffer.from(`--`),h=Buffer.from(`--\r +`);function g(e){for(let t=0;t70)return!1;for(let n=0;n=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||t===39||t===45||t===95))return!1}return!0}function y(e,t){l(t!==`failure`&&t.essence===`multipart/form-data`);let r=t.parameters.get(`boundary`);if(r===void 0)return`failure`;let a=Buffer.from(`--${r}`,`utf8`),o=[],u={position:0};for(;e[u.position]===13&&e[u.position+1]===10;)u.position+=2;let f=e.length;for(;e[f-1]===10&&e[f-2]===13;)f-=2;for(f!==e.length&&(e=e.subarray(0,f));;){if(e.subarray(u.position,u.position+a.length).equals(a))u.position+=a.length;else return`failure`;if(u.position===e.length-2&&w(e,m,u)||u.position===e.length-4&&w(e,h,u))return o;if(e[u.position]!==13||e[u.position+1]!==10)return`failure`;u.position+=2;let t=b(e,u);if(t===`failure`)return`failure`;let{name:r,filename:f,contentType:p,encoding:v}=t;u.position+=2;let y;{let t=e.indexOf(a.subarray(2),u.position);if(t===-1)return`failure`;y=e.subarray(u.position,t-4),u.position+=y.length,v===`base64`&&(y=Buffer.from(y.toString(),`base64`))}if(e[u.position]!==13||e[u.position+1]!==10)return`failure`;u.position+=2;let x;f===null?x=i(Buffer.from(y)):(p??=`text/plain`,g(p)||(p=``),x=new d([y],f,{type:p})),l(n(r)),l(typeof x==`string`&&n(x)||s(x)),o.push(c(r,x,f))}}function b(e,t){let n=null,i=null,s=null,c=null;for(;;){if(e[t.position]===13&&e[t.position+1]===10)return n===null?`failure`:{name:n,filename:i,contentType:s,encoding:c};let l=S(e=>e!==10&&e!==13&&e!==58,e,t);if(l=C(l,!0,!0,e=>e===9||e===32),!a.test(l.toString())||e[t.position]!==58)return`failure`;switch(t.position++,S(e=>e===32||e===9,e,t),r(l)){case`content-disposition`:if(n=i=null,!w(e,f,t)||(t.position+=17,n=x(e,t),n===null))return`failure`;if(w(e,p,t)){let n=t.position+p.length;if(e[n]===42&&(t.position+=1,n+=1),e[n]!==61||e[n+1]!==34||(t.position+=12,i=x(e,t),i===null))return`failure`}break;case`content-type`:{let n=S(e=>e!==10&&e!==13,e,t);n=C(n,!1,!0,e=>e===9||e===32),s=o(n);break}case`content-transfer-encoding`:{let n=S(e=>e!==10&&e!==13,e,t);n=C(n,!1,!0,e=>e===9||e===32),c=o(n);break}default:S(e=>e!==10&&e!==13,e,t)}if(e[t.position]!==13&&e[t.position+1]!==10)return`failure`;t.position+=2}}function x(e,t){l(e[t.position-1]===34);let n=S(e=>e!==10&&e!==13&&e!==34,e,t);return e[t.position]===34?(t.position++,n=new TextDecoder().decode(n).replace(/%0A/gi,` +`).replace(/%0D/gi,`\r`).replace(/%22/g,`"`),n):null}function S(e,t,n){let r=n.position;for(;r0&&r(e[a]);)a--;return i===0&&a===e.length-1?e:e.subarray(i,a+1)}function w(e,t,n){if(e.length{let n=ze(),{ReadableStreamFrom:r,isBlobLike:i,isReadableStreamLike:a,readableStreamClose:o,createDeferredPromise:s,fullyReadBody:c,extractMimeType:l,utf8DecodeBytes:u}=et(),{FormData:d}=rt(),{kState:f}=tt(),{webidl:p}=$e(),{Blob:m}=Y(`node:buffer`),h=Y(`node:assert`),{isErrored:g,isDisturbed:v}=Y(`node:stream`),{isArrayBuffer:y}=Y(`node:util/types`),{serializeAMimeType:b}=Qe(),{multipartFormDataParser:x}=it(),S;try{let e=Y(`node:crypto`);S=t=>e.randomInt(0,t)}catch{S=e=>Math.floor(Math.random(e))}let C=new TextEncoder;function w(){}let T=globalThis.FinalizationRegistry&&process.version.indexOf(`v18`)!==0,E;T&&(E=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&!v(t)&&!g(t)&&t.cancel(`Response object has been garbage collected`).catch(w)}));function D(e,t=!1){let s=null;s=e instanceof ReadableStream?e:i(e)?e.stream():new ReadableStream({async pull(e){let t=typeof l==`string`?C.encode(l):l;t.byteLength&&e.enqueue(t),queueMicrotask(()=>o(e))},start(){},type:`bytes`}),h(a(s));let c=null,l=null,u=null,d=null;if(typeof e==`string`)l=e,d=`text/plain;charset=UTF-8`;else if(e instanceof URLSearchParams)l=e.toString(),d=`application/x-www-form-urlencoded;charset=UTF-8`;else if(y(e))l=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))l=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(n.isFormDataLike(e)){let t=`----formdata-undici-0${`${S(1e11)}`.padStart(11,`0`)}`,n=`--${t}\r\nContent-Disposition: form-data`,r=e=>e.replace(/\n/g,`%0A`).replace(/\r/g,`%0D`).replace(/"/g,`%22`),i=e=>e.replace(/\r?\n|\r/g,`\r +`),a=[],o=new Uint8Array([13,10]);u=0;let s=!1;for(let[t,c]of e)if(typeof c==`string`){let e=C.encode(n+`; name="${r(i(t))}"\r\n\r\n${i(c)}\r\n`);a.push(e),u+=e.byteLength}else{let e=C.encode(`${n}; name="${r(i(t))}"`+(c.name?`; filename="${r(c.name)}"`:``)+`\r +Content-Type: ${c.type||`application/octet-stream`}\r\n\r\n`);a.push(e,c,o),typeof c.size==`number`?u+=e.byteLength+c.size+o.byteLength:s=!0}let f=C.encode(`--${t}--\r\n`);a.push(f),u+=f.byteLength,s&&(u=null),l=e,c=async function*(){for(let e of a)e.stream?yield*e.stream():yield e},d=`multipart/form-data; boundary=${t}`}else if(i(e))l=e,u=e.size,e.type&&(d=e.type);else if(typeof e[Symbol.asyncIterator]==`function`){if(t)throw TypeError(`keepalive`);if(n.isDisturbed(e)||e.locked)throw TypeError(`Response body object should not be disturbed or locked`);s=e instanceof ReadableStream?e:r(e)}if((typeof l==`string`||n.isBuffer(l))&&(u=Buffer.byteLength(l)),c!=null){let t;s=new ReadableStream({async start(){t=c(e)[Symbol.asyncIterator]()},async pull(e){let{value:n,done:r}=await t.next();if(r)queueMicrotask(()=>{e.close(),e.byobRequest?.respond(0)});else if(!g(s)){let t=new Uint8Array(n);t.byteLength&&e.enqueue(t)}return e.desiredSize>0},async cancel(e){await t.return()},type:`bytes`})}return[{stream:s,source:l,length:u},d]}function O(e,t=!1){return e instanceof ReadableStream&&(h(!n.isDisturbed(e),`The body has already been consumed.`),h(!e.locked,`The stream is locked.`)),D(e,t)}function k(e,t){let[n,r]=t.stream.tee();return t.stream=n,{stream:r,length:t.length,source:t.source}}function A(e){if(e.aborted)throw new DOMException(`The operation was aborted.`,`AbortError`)}function j(e){return{blob(){return N(this,e=>{let t=I(this);return t===null?t=``:t&&=b(t),new m([e],{type:t})},e)},arrayBuffer(){return N(this,e=>new Uint8Array(e).buffer,e)},text(){return N(this,u,e)},json(){return N(this,F,e)},formData(){return N(this,e=>{let t=I(this);if(t!==null)switch(t.essence){case`multipart/form-data`:{let n=x(e,t);if(n===`failure`)throw TypeError(`Failed to parse body as FormData.`);let r=new d;return r[f]=n,r}case`application/x-www-form-urlencoded`:{let t=new URLSearchParams(e.toString()),n=new d;for(let[e,r]of t)n.append(e,r);return n}}throw TypeError(`Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".`)},e)},bytes(){return N(this,e=>new Uint8Array(e),e)}}}function M(e){Object.assign(e.prototype,j(e))}async function N(e,t,n){if(p.brandCheck(e,n),P(e))throw TypeError(`Body is unusable: Body has already been read`);A(e[f]);let r=s(),i=e=>r.reject(e),a=e=>{try{r.resolve(t(e))}catch(e){i(e)}};return e[f].body==null?(a(Buffer.allocUnsafe(0)),r.promise):(await c(e[f].body,a,i),r.promise)}function P(e){let t=e[f].body;return t!=null&&(t.stream.locked||n.isDisturbed(t.stream))}function F(e){return JSON.parse(u(e))}function I(e){let t=e[f].headersList,n=l(t);return n===`failure`?null:n}t.exports={extractBody:D,safelyExtractBody:O,cloneBody:k,mixinBody:M,streamRegistry:E,hasFinalizationRegistry:T,bodyUnusable:P}})),ot=J(((e,t)=>{let n=Y(`node:assert`),r=ze(),{channels:i}=Be(),a=We(),{RequestContentLengthMismatchError:o,ResponseContentLengthMismatchError:s,RequestAbortedError:c,InvalidArgumentError:l,HeadersTimeoutError:u,HeadersOverflowError:d,SocketError:f,InformationalError:p,BodyTimeoutError:m,HTTPParserError:h,ResponseExceededMaxSizeError:g}=Ie(),{kUrl:v,kReset:y,kClient:b,kParser:x,kBlocking:S,kRunning:C,kPending:w,kSize:T,kWriting:E,kQueue:D,kNoRef:O,kKeepAliveDefaultTimeout:k,kHostHeader:A,kPendingIdx:j,kRunningIdx:M,kError:N,kPipelining:P,kSocket:F,kKeepAliveTimeoutValue:I,kMaxHeadersSize:L,kKeepAliveMaxTimeout:R,kKeepAliveTimeoutThreshold:z,kHeadersTimeout:ee,kBodyTimeout:B,kStrictContentLength:V,kMaxRequests:H,kCounter:U,kMaxResponseSize:W,kOnError:G,kResume:K,kHTTPContext:q}=Fe(),te=qe(),ne=Buffer.alloc(0),re=Buffer[Symbol.species],ie=r.addListener,ae=r.removeAllListeners,oe=Symbol(`kIdleSocketValidation`),se=Symbol(`kIdleSocketValidationTimeout`),ce=Symbol(`kSocketUsed`),le;async function ue(){let e=process.env.JEST_WORKER_ID?Je():void 0,t;try{t=await WebAssembly.compile(Ye())}catch{t=await WebAssembly.compile(e||Je())}return await WebAssembly.instantiate(t,{env:{wasm_on_url:(e,t,n)=>0,wasm_on_status:(e,t,r)=>{n(pe.ptr===e);let i=t-ge+me.byteOffset;return pe.onStatus(new re(me.buffer,i,r))||0},wasm_on_message_begin:e=>(n(pe.ptr===e),pe.onMessageBegin()||0),wasm_on_header_field:(e,t,r)=>{n(pe.ptr===e);let i=t-ge+me.byteOffset;return pe.onHeaderField(new re(me.buffer,i,r))||0},wasm_on_header_value:(e,t,r)=>{n(pe.ptr===e);let i=t-ge+me.byteOffset;return pe.onHeaderValue(new re(me.buffer,i,r))||0},wasm_on_headers_complete:(e,t,r,i)=>(n(pe.ptr===e),pe.onHeadersComplete(t,!!r,!!i)||0),wasm_on_body:(e,t,r)=>{n(pe.ptr===e);let i=t-ge+me.byteOffset;return pe.onBody(new re(me.buffer,i,r))||0},wasm_on_message_complete:e=>(n(pe.ptr===e),pe.onMessageComplete()||0)}})}let de=null,fe=ue();fe.catch();let pe=null,me=null,he=0,ge=null;var _e=class{constructor(e,t,{exports:r}){n(Number.isFinite(e[L])&&e[L]>0),this.llhttp=r,this.ptr=this.llhttp.llhttp_alloc(te.TYPE.RESPONSE),this.client=e,this.socket=t,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText=``,this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=e[L],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive=``,this.contentLength=``,this.connection=``,this.maxResponseSize=e[W]}setTimeout(e,t){e!==this.timeoutValue||t&1^this.timeoutType&1?(this.timeout&&=(a.clearTimeout(this.timeout),null),e&&(t&1?this.timeout=a.setFastTimeout(J,e,new WeakRef(this)):(this.timeout=setTimeout(J,e,new WeakRef(this)),this.timeout.unref())),this.timeoutValue=e):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=t}resume(){this.socket.destroyed||!this.paused||(n(this.ptr!=null),n(pe==null),this.llhttp.llhttp_resume(this.ptr),n(this.timeoutType===5),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||ne),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let e=this.socket.read();if(e===null)break;this.execute(e)}}execute(e){n(this.ptr!=null),n(pe==null),n(!this.paused);let{socket:t,llhttp:i}=this;e.length>he&&(ge&&i.free(ge),he=Math.ceil(e.length/4096)*4096,ge=i.malloc(he)),new Uint8Array(i.memory.buffer,ge,he).set(e);try{let n;try{me=e,pe=this,n=i.llhttp_execute(this.ptr,ge,e.length)}catch(e){throw e}finally{pe=null,me=null}let r=i.llhttp_get_error_pos(this.ptr)-ge;if(n!==te.ERROR.OK){let i=e.subarray(r);if(n===te.ERROR.PAUSED_UPGRADE)this.onUpgrade(i);else if(n===te.ERROR.PAUSED)this.paused=!0,t.unshift(i);else throw this.createError(n,i)}}catch(e){r.destroy(t,e)}}finish(){n(pe===null),n(this.ptr!=null),n(!this.paused);let{llhttp:e}=this,t;try{pe=this,t=e.llhttp_finish(this.ptr)}finally{pe=null}return t===te.ERROR.OK?null:t===te.ERROR.PAUSED||t===te.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(t,ne)}createError(e,t){let{llhttp:n,contentLength:r,bytesRead:i}=this;if(r&&i!==parseInt(r,10))return new s;let a=n.llhttp_get_error_reason(this.ptr),o=``;if(a){let e=new Uint8Array(n.memory.buffer,a).indexOf(0);o=`Response does not match the HTTP/1.1 protocol (`+Buffer.from(n.memory.buffer,a,e).toString()+`)`}return new h(o,te.ERROR[e],t)}destroy(){n(this.ptr!=null),n(pe==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&a.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(e){this.statusText=e.toString()}onMessageBegin(){let{socket:e,client:t}=this;if(e.destroyed)return-1;if(t[C]===0)return r.destroy(e,new f(`bad response`,r.getSocketInfo(e))),-1;let n=t[D][t[M]];if(!n)return-1;n.onResponseStarted()}onHeaderField(e){let t=this.headers.length;t&1?this.headers[t-1]=Buffer.concat([this.headers[t-1],e]):this.headers.push(e),this.trackHeader(e.length)}onHeaderValue(e){let t=this.headers.length;(t&1)==1?(this.headers.push(e),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]);let n=this.headers[t-2];if(n.length===10){let t=r.bufferToLowerCasedHeaderName(n);t===`keep-alive`?this.keepAlive+=e.toString():t===`connection`&&(this.connection+=e.toString())}else n.length===14&&r.bufferToLowerCasedHeaderName(n)===`content-length`&&(this.contentLength+=e.toString());this.trackHeader(e.length)}trackHeader(e){this.headersSize+=e,this.headersSize>=this.headersMaxSize&&r.destroy(this.socket,new d)}onUpgrade(e){let{upgrade:t,client:i,socket:a,headers:o,statusCode:s}=this;n(t),n(i[F]===a),n(!a.destroyed),n(!this.paused),n(!(o.length&1));let c=i[D][i[M]];n(c),n(c.upgrade||c.method===`CONNECT`),this.statusCode=null,this.statusText=``,this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,a.unshift(e),a[x].destroy(),a[x]=null,a[b]=null,a[N]=null,ae(a),i[F]=null,i[q]=null,i[D][i[M]++]=null,i.emit(`disconnect`,i[v],[i],new p(`upgrade`));try{c.onUpgrade(s,o,a)}catch(e){r.destroy(a,e)}i[K]()}onHeadersComplete(e,t,i){let{client:a,socket:o,headers:s,statusText:c}=this;if(o.destroyed)return-1;if(a[C]===0)return r.destroy(o,new f(`bad response`,r.getSocketInfo(o))),-1;let l=a[D][a[M]];if(!l)return-1;if(n(!this.upgrade),n(this.statusCode<200),e===100)return r.destroy(o,new f(`bad response`,r.getSocketInfo(o))),-1;if(t&&!l.upgrade)return r.destroy(o,new f(`bad upgrade`,r.getSocketInfo(o))),-1;if(n(this.timeoutType===3),this.statusCode=e,this.shouldKeepAlive=i||l.method===`HEAD`&&!o[y]&&this.connection.toLowerCase()===`keep-alive`,this.statusCode>=200){let e=l.bodyTimeout==null?a[B]:l.bodyTimeout;this.setTimeout(e,5)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(l.method===`CONNECT`||t)return n(a[C]===1),this.upgrade=!0,2;if(n(!(this.headers.length&1)),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&a[P]){let e=this.keepAlive?r.parseKeepAliveTimeout(this.keepAlive):null;if(e!=null){let t=Math.min(e-a[z],a[R]);t<=0?o[y]=!0:a[I]=t}else a[I]=a[k]}else o[y]=!0;let u=l.onHeaders(e,s,this.resume,c)===!1;return l.aborted?-1:l.method===`HEAD`||e<200?1:(o[S]&&(o[S]=!1,a[K]()),u?te.ERROR.PAUSED:0)}onBody(e){let{client:t,socket:i,statusCode:a,maxResponseSize:o}=this;if(i.destroyed)return-1;let s=t[D][t[M]];if(n(s),n(this.timeoutType===5),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),n(a>=200),o>-1&&this.bytesRead+e.length>o)return r.destroy(i,new g),-1;if(this.bytesRead+=e.length,s.onData(e)===!1)return te.ERROR.PAUSED}onMessageComplete(){let{client:e,socket:t,statusCode:i,upgrade:a,headers:o,contentLength:c,bytesRead:l,shouldKeepAlive:u}=this;if(t.destroyed&&(!i||u))return-1;if(a)return;n(i>=100),n(!(this.headers.length&1));let d=e[D][e[M]];if(n(d),this.statusCode=null,this.statusText=``,this.bytesRead=0,this.contentLength=``,this.keepAlive=``,this.connection=``,this.headers=[],this.headersSize=0,!(i<200)){if(d.method!==`HEAD`&&c&&l!==parseInt(c,10))return r.destroy(t,new s),-1;if(d.onComplete(o),e[D][e[M]++]=null,t[ce]=!0,t[E])return n(e[C]===0),r.destroy(t,new p(`reset`)),te.ERROR.PAUSED;if(!u||t[y]&&e[C]===0)return r.destroy(t,new p(`reset`)),te.ERROR.PAUSED;e[P]==null||e[P]===1?setImmediate(()=>e[K]()):e[K]()}}};function J(e){let{socket:t,timeoutType:i,client:a,paused:o}=e.deref();i===3?(!t[E]||t.writableNeedDrain||a[C]>1)&&(n(!o,`cannot be paused while waiting for headers`),r.destroy(t,new u)):i===5?o||r.destroy(t,new m):i===8&&(n(a[C]===0&&a[I]),r.destroy(t,new p(`socket idle timeout`)))}async function ve(e,t){e[F]=t,de||(de=await fe,fe=null),t[O]=!1,t[E]=!1,t[y]=!1,t[S]=!1,t[oe]=0,t[se]=null,t[ce]=!1,t[x]=new _e(e,t,de),ie(t,`error`,function(e){n(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`);let t=this[x];if(e.code===`ECONNRESET`&&t.statusCode&&!t.shouldKeepAlive){let e=t.finish();e&&(this[N]=e,this[b][G](e));return}this[N]=e,this[b][G](e)}),ie(t,`readable`,function(){let e=this[x];e&&e.readMore()}),ie(t,`end`,function(){let e=this[x];if(e.statusCode&&!e.shouldKeepAlive){let t=e.finish();t&&r.destroy(this,t);return}r.destroy(this,new f(`other side closed`,r.getSocketInfo(this)))}),ie(t,`close`,function(){let e=this[b],t=this[x];ye(this),t&&(!this[N]&&t.statusCode&&!t.shouldKeepAlive&&(this[N]=t.finish()||this[N]),this[x].destroy(),this[x]=null);let i=this[N]||new f(`closed`,r.getSocketInfo(this));if(e[F]=null,e[q]=null,e.destroyed){n(e[w]===0);let t=e[D].splice(e[M]);for(let n=0;n0&&i.code!==`UND_ERR_INFO`){let t=e[D][e[M]];e[D][e[M]++]=null,r.errorRequest(e,t,i)}e[j]=e[M],n(e[C]===0),e.emit(`disconnect`,e[v],[e],i),e[K]()});let i=!1;return t.on(`close`,()=>{i=!0}),{version:`h1`,defaultPipelining:1,write(...t){return Ce(e,...t)},resume(){xe(e)},destroy(e,n){i?queueMicrotask(n):t.destroy(e).on(`close`,n)},get destroyed(){return t.destroyed},busy(n){return!!(t[E]||t[y]||t[S]||t[oe]===1||n&&(e[C]>0&&!n.idempotent||e[C]>0&&(n.upgrade||n.method===`CONNECT`)||e[C]>0&&r.bodyLength(n.body)!==0&&(r.isStream(n.body)||r.isAsyncIterable(n.body)||r.isFormDataLike(n.body))))}}}function ye(e){e[se]&&(clearTimeout(e[se]),e[se]=null),e[oe]=0}function be(e,t){t[oe]=1,t[se]=setTimeout(()=>{t[se]=null,t[oe]=2,e[F]===t&&!t.destroyed&&e[K]()},0),t[se].unref?.()}function xe(e){let t=e[F];if(t&&!t.destroyed){if(e[T]===0?!t[O]&&t.unref&&(t.unref(),t[O]=!0):t[O]&&t.ref&&(t.ref(),t[O]=!1),e[C]===0&&e[w]>0&&t[ce]){if(t[oe]===0)return be(e,t),t[x].readMore(),t.destroyed,void 0;if(t[oe]===1)return t[x].readMore(),t.destroyed,void 0}if(e[C]===0&&(t[x].readMore(),t.destroyed))return;if(e[T]===0)t[x].timeoutType!==8&&t[x].setTimeout(e[I],8);else if(e[C]>0&&t[x].statusCode<200&&t[x].timeoutType!==3){let n=e[D][e[M]],r=n.headersTimeout==null?e[ee]:n.headersTimeout;t[x].setTimeout(r,3)}}}function Se(e){return e!==`GET`&&e!==`HEAD`&&e!==`OPTIONS`&&e!==`TRACE`&&e!==`CONNECT`}function Ce(e,t){let{method:a,path:s,host:u,upgrade:d,blocking:f,reset:m}=t,{body:h,headers:g,contentLength:v}=t,b=a===`PUT`||a===`POST`||a===`PATCH`||a===`QUERY`||a===`PROPFIND`||a===`PROPPATCH`;if(r.isFormDataLike(h)){le||=at().extractBody;let[e,n]=le(h);t.contentType??g.push(`content-type`,n),h=e.stream,v=e.length}else if(r.isBlobLike(h)&&t.contentType==null){let n=h.type;if(n){let i=`${n}`;if(!r.isValidHeaderValue(i))return r.errorRequest(e,t,new l(`invalid content-type header`)),!1;g.push(`content-type`,i)}}h&&typeof h.read==`function`&&h.read(0);let x=r.bodyLength(h);if(v=x??v,v===null&&(v=t.contentLength),v===0&&!b&&(v=null),Se(a)&&v>0&&t.contentLength!==null&&t.contentLength!==v){if(e[V])return r.errorRequest(e,t,new o),!1;process.emitWarning(new o)}let C=e[F];ye(C);let w=n=>{t.aborted||t.completed||(r.errorRequest(e,t,n||new c),r.destroy(h),r.destroy(C,new p(`aborted`)))};try{t.onConnect(w)}catch(n){r.errorRequest(e,t,n)}if(t.aborted)return!1;a===`HEAD`&&(C[y]=!0),(d||a===`CONNECT`)&&(C[y]=!0),m!=null&&(C[y]=m),e[H]&&C[U]++>=e[H]&&(C[y]=!0),f&&(C[S]=!0);let T=`${a} ${s} HTTP/1.1\r\n`;if(T+=typeof u==`string`?`host: ${u}\r\n`:e[A],d?T+=`connection: upgrade\r\nupgrade: ${d}\r\n`:e[P]&&!C[y]?T+=`connection: keep-alive\r +`:T+=`connection: close\r +`,Array.isArray(g))for(let e=0;e{t.removeListener(`error`,g)}),!d){let e=new c;queueMicrotask(()=>g(e))}},g=function(e){if(!d){if(d=!0,n(o.destroyed||o[E]&&i[C]<=1),o.off(`drain`,m).off(`error`,g),t.removeListener(`data`,p).removeListener(`end`,g).removeListener(`close`,h),!e)try{f.end()}catch(t){e=t}f.destroy(e),e&&(e.code!==`UND_ERR_INFO`||e.message!==`reset`)?r.destroy(t,e):r.destroy(t)}};t.on(`data`,p).on(`end`,g).on(`error`,g).on(`close`,h),t.resume&&t.resume(),o.on(`drain`,m).on(`error`,g),t.errorEmitted??t.errored?setImmediate(()=>g(t.errored)):(t.endEmitted??t.readableEnded)&&setImmediate(()=>g(null)),(t.closeEmitted??t.closed)&&setImmediate(h)}function Te(e,t,i,a,o,s,c,l){try{t?r.isBuffer(t)&&(n(s===t.byteLength,`buffer body must have content length`),o.cork(),o.write(`${c}content-length: ${s}\r\n\r\n`,`latin1`),o.write(t),o.uncork(),a.onBodySent(t),!l&&a.reset!==!1&&(o[y]=!0)):s===0?o.write(`${c}content-length: 0\r\n\r\n`,`latin1`):(n(s===null,`no body must not have content length`),o.write(`${c}\r\n`,`latin1`)),a.onRequestSent(),i[K]()}catch(t){e(t)}}async function Ee(e,t,r,i,a,s,c,l){n(s===t.size,`blob body must have content length`);try{if(s!=null&&s!==t.size)throw new o;let e=Buffer.from(await t.arrayBuffer());a.cork(),a.write(`${c}content-length: ${s}\r\n\r\n`,`latin1`),a.write(e),a.uncork(),i.onBodySent(e),i.onRequestSent(),!l&&i.reset!==!1&&(a[y]=!0),r[K]()}catch(t){e(t)}}async function De(e,t,r,i,a,o,s,c){n(o!==0||r[C]===0,`iterator body cannot be pipelined`);let l=null;function u(){if(l){let e=l;l=null,e()}}let d=()=>new Promise((e,t)=>{n(l===null),a[N]?t(a[N]):l=e});a.on(`close`,u).on(`drain`,u);let f=new Oe({abort:e,socket:a,request:i,contentLength:o,client:r,expectsPayload:c,header:s});try{for await(let e of t){if(a[N])throw a[N];f.write(e)||await d()}f.end()}catch(e){f.destroy(e)}finally{a.off(`close`,u).off(`drain`,u)}}var Oe=class{constructor({abort:e,socket:t,request:n,contentLength:r,client:i,expectsPayload:a,header:o}){this.socket=t,this.request=n,this.contentLength=r,this.client=i,this.bytesWritten=0,this.expectsPayload=a,this.header=o,this.abort=e,t[E]=!0}write(e){let{socket:t,request:n,contentLength:r,client:i,bytesWritten:a,expectsPayload:s,header:c}=this;if(t[N])throw t[N];if(t.destroyed)return!1;let l=Buffer.byteLength(e);if(!l)return!0;if(r!==null&&a+l>r){if(i[V])throw new o;process.emitWarning(new o)}t.cork(),a===0&&(!s&&n.reset!==!1&&(t[y]=!0),r===null?t.write(`${c}transfer-encoding: chunked\r\n`,`latin1`):t.write(`${c}content-length: ${r}\r\n\r\n`,`latin1`)),r===null&&t.write(`\r\n${l.toString(16)}\r\n`,`latin1`),this.bytesWritten+=l;let u=t.write(e);return t.uncork(),n.onBodySent(e),u||t[x].timeout&&t[x].timeoutType===3&&t[x].timeout.refresh&&t[x].timeout.refresh(),u}end(){let{socket:e,contentLength:t,client:n,bytesWritten:r,expectsPayload:i,header:a,request:s}=this;if(s.onRequestSent(),e[E]=!1,e[N])throw e[N];if(!e.destroyed){if(r===0?i?e.write(`${a}content-length: 0\r\n\r\n`,`latin1`):e.write(`${a}\r\n`,`latin1`):t===null&&e.write(`\r +0\r +\r +`,`latin1`),t!==null&&r!==t){if(n[V])throw new o;process.emitWarning(new o)}e[x].timeout&&e[x].timeoutType===3&&e[x].timeout.refresh&&e[x].timeout.refresh(),n[K]()}}destroy(e){let{socket:t,client:r,abort:i}=this;t[E]=!1,e&&(n(r[C]<=1,`pipeline should only contain this request`),i(e))}};t.exports=ve})),st=J(((e,t)=>{let n=Y(`node:assert`),{pipeline:r}=Y(`node:stream`),i=ze(),{RequestContentLengthMismatchError:a,RequestAbortedError:o,SocketError:s,InformationalError:c}=Ie(),{kUrl:l,kReset:u,kClient:d,kRunning:f,kPending:p,kQueue:m,kPendingIdx:h,kRunningIdx:g,kError:v,kSocket:y,kStrictContentLength:b,kOnError:x,kMaxConcurrentStreams:S,kHTTP2Session:C,kResume:w,kSize:T,kHTTPContext:E}=Fe(),D=Symbol(`open streams`),O,k=!1,A;try{A=Y(`node:http2`)}catch{A={constants:{}}}let{constants:{HTTP2_HEADER_AUTHORITY:j,HTTP2_HEADER_METHOD:M,HTTP2_HEADER_PATH:N,HTTP2_HEADER_SCHEME:P,HTTP2_HEADER_CONTENT_LENGTH:F,HTTP2_HEADER_EXPECT:I,HTTP2_HEADER_STATUS:L}}=A;function R(e){let t=[];for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.push(Buffer.from(n),Buffer.from(e));else t.push(Buffer.from(n),Buffer.from(r));return t}async function z(e,t){e[y]=t,k||(k=!0,process.emitWarning(`H2 support is experimental, expect them to change at any time.`,{code:`UNDICI-H2`}));let r=A.connect(e[l],{createConnection:()=>t,peerMaxConcurrentStreams:e[S]});r[D]=0,r[d]=e,r[y]=t,i.addListener(r,`error`,B),i.addListener(r,`frameError`,V),i.addListener(r,`end`,H),i.addListener(r,`goaway`,U),i.addListener(r,`close`,function(){let{[d]:e}=this,{[y]:t}=e,r=this[y][v]||this[v]||new s(`closed`,i.getSocketInfo(t));if(e[C]=null,e.destroyed){n(e[p]===0);let t=e[m].splice(e[g]);for(let n=0;n{a=!0}),{version:`h2`,defaultPipelining:1/0,write(...t){return G(e,...t)},resume(){ee(e)},destroy(e,n){a?queueMicrotask(n):t.destroy(e).on(`close`,n)},get destroyed(){return t.destroyed},busy(){return!1}}}function ee(e){let t=e[y];t?.destroyed===!1&&(e[T]===0&&e[S]===0?(t.unref(),e[C].unref()):(t.ref(),e[C].ref()))}function B(e){n(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`),this[y][v]=e,this[d][x](e)}function V(e,t,n){if(n===0){let n=new c(`HTTP/2: "frameError" received - type ${e}, code ${t}`);this[y][v]=n,this[d][x](n)}}function H(){let e=new s(`other side closed`,i.getSocketInfo(this[y]));this.destroy(e),i.destroy(this[y],e)}function U(e){let t=this[v]||new s(`HTTP/2: "GOAWAY" frame received with code ${e}`,i.getSocketInfo(this)),r=this[d];if(r[y]=null,r[E]=null,this[C]!=null&&(this[C].destroy(t),this[C]=null),i.destroy(this[y],t),r[g]{t.aborted||t.completed||(n||=new o,i.errorRequest(e,t,n),E!=null&&i.destroy(E,n),i.destroy(S,n),e[m][e[g]++]=null,e[w]())};try{t.onConnect(z)}catch(n){i.errorRequest(e,t,n)}if(t.aborted)return!1;if(s===`CONNECT`)return r.ref(),E=r.request(T,{endStream:!1,signal:v}),E.id&&!E.pending?(t.onUpgrade(null,null,E),++r[D],e[m][e[g]++]=null):E.once(`ready`,()=>{t.onUpgrade(null,null,E),++r[D],e[m][e[g]++]=null}),E.once(`close`,()=>{--r[D],r[D]===0&&r.unref()}),!0;T[N]=u,T[P]=`https`;let ee=s===`PUT`||s===`POST`||s===`PATCH`;S&&typeof S.read==`function`&&S.read(0);let B=i.bodyLength(S);if(i.isFormDataLike(S)){O??=at().extractBody;let[e,t]=O(S);T[`content-type`]=t,S=e.stream,B=e.length}if(B??=t.contentLength,(B===0||!ee)&&(B=null),W(s)&&B>0&&t.contentLength!=null&&t.contentLength!==B){if(e[b])return i.errorRequest(e,t,new a),!1;process.emitWarning(new a)}B!=null&&(n(S,`no body must not have content length`),T[F]=`${B}`),r.ref();let V=s===`GET`||s===`HEAD`||S===null;return p?(T[I]=`100-continue`,E=r.request(T,{endStream:V,signal:v}),E.once(`continue`,H)):(E=r.request(T,{endStream:V,signal:v}),H()),++r[D],E.once(`response`,n=>{let{[L]:r,...a}=n;if(t.onResponseStarted(),t.aborted){let n=new o;i.errorRequest(e,t,n),i.destroy(E,n);return}t.onHeaders(Number(r),R(a),E.resume.bind(E),``)===!1&&E.pause(),E.on(`data`,e=>{t.onData(e)===!1&&E.pause()})}),E.once(`end`,()=>{(E.state?.state==null||E.state.state<6)&&t.onComplete([]),r[D]===0&&r.unref(),z(new c(`HTTP/2: stream half-closed (remote)`)),e[m][e[g]++]=null,e[h]=e[g],e[w]()}),E.once(`close`,()=>{--r[D],r[D]===0&&r.unref()}),E.once(`error`,function(e){z(e)}),E.once(`frameError`,(e,t)=>{z(new c(`HTTP/2: "frameError" received - type ${e}, code ${t}`))}),!0;function H(){!S||B===0?K(z,E,null,e,t,e[y],B,ee):i.isBuffer(S)?K(z,E,S,e,t,e[y],B,ee):i.isBlobLike(S)?typeof S.stream==`function`?ne(z,E,S.stream(),e,t,e[y],B,ee):te(z,E,S,e,t,e[y],B,ee):i.isStream(S)?q(z,e[y],ee,E,S,e,t,B):i.isIterable(S)?ne(z,E,S,e,t,e[y],B,ee):n(!1)}}function K(e,t,r,a,o,s,c,l){try{r!=null&&i.isBuffer(r)&&(n(c===r.byteLength,`buffer body must have content length`),t.cork(),t.write(r),t.uncork(),t.end(),o.onBodySent(r)),l||(s[u]=!0),o.onRequestSent(),a[w]()}catch(t){e(t)}}function q(e,t,a,o,s,c,l,d){n(d!==0||c[f]===0,`stream body cannot be pipelined`);let p=r(s,o,n=>{n?(i.destroy(p,n),e(n)):(i.removeAllListeners(p),l.onRequestSent(),a||(t[u]=!0),c[w]())});i.addListener(p,`data`,m);function m(e){l.onBodySent(e)}}async function te(e,t,r,i,o,s,c,l){n(c===r.size,`blob body must have content length`);try{if(c!=null&&c!==r.size)throw new a;let e=Buffer.from(await r.arrayBuffer());t.cork(),t.write(e),t.uncork(),t.end(),o.onBodySent(e),o.onRequestSent(),l||(s[u]=!0),i[w]()}catch(t){e(t)}}async function ne(e,t,r,i,a,o,s,c){n(s!==0||i[f]===0,`iterator body cannot be pipelined`);let l=null;function d(){if(l){let e=l;l=null,e()}}let p=()=>new Promise((e,t)=>{n(l===null),o[v]?t(o[v]):l=e});t.on(`close`,d).on(`drain`,d);try{for await(let e of r){if(o[v])throw o[v];let n=t.write(e);a.onBodySent(e),n||await p()}t.end(),a.onRequestSent(),c||(o[u]=!0),i[w]()}catch(t){e(t)}finally{t.off(`close`,d).off(`drain`,d)}}t.exports=z})),ct=J(((e,t)=>{let n=ze(),{kBodyUsed:r}=Fe(),i=Y(`node:assert`),{InvalidArgumentError:a}=Ie(),o=Y(`node:events`),s=[300,301,302,303,307,308],c=Symbol(`body`);var l=class{constructor(e){this[c]=e,this[r]=!1}async*[Symbol.asyncIterator](){i(!this[r],`disturbed`),this[r]=!0,yield*this[c]}},u=class{constructor(e,t,s,c){if(t!=null&&(!Number.isInteger(t)||t<0))throw new a(`maxRedirections must be a positive number`);n.validateHandler(c,s.method,s.upgrade),this.dispatch=e,this.location=null,this.abort=null,this.opts={...s,maxRedirections:0},this.maxRedirections=t,this.handler=c,this.history=[],this.redirectionLimitReached=!1,n.isStream(this.opts.body)?(n.bodyLength(this.opts.body)===0&&this.opts.body.on(`data`,function(){i(!1)}),typeof this.opts.body.readableDidRead!=`boolean`&&(this.opts.body[r]=!1,o.prototype.on.call(this.opts.body,`data`,function(){this[r]=!0}))):(this.opts.body&&typeof this.opts.body.pipeTo==`function`||this.opts.body&&typeof this.opts.body!=`string`&&!ArrayBuffer.isView(this.opts.body)&&n.isIterable(this.opts.body))&&(this.opts.body=new l(this.opts.body))}onConnect(e){this.abort=e,this.handler.onConnect(e,{history:this.history})}onUpgrade(e,t,n){this.handler.onUpgrade(e,t,n)}onError(e){this.handler.onError(e)}onHeaders(e,t,r,i){if(this.location=this.history.length>=this.maxRedirections||n.isDisturbed(this.opts.body)?null:d(e,t),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){this.request&&this.request.abort(Error(`max redirects`)),this.redirectionLimitReached=!0,this.abort(Error(`max redirects`));return}if(this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(e,t,r,i);let{origin:a,pathname:o,search:s}=n.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),c=s?`${o}${s}`:o;this.opts.headers=p(this.opts.headers,e===303,this.opts.origin!==a),this.opts.path=c,this.opts.origin=a,this.opts.maxRedirections=0,this.opts.query=null,e===303&&this.opts.method!==`HEAD`&&(this.opts.method=`GET`,this.opts.body=null)}onData(e){if(!this.location)return this.handler.onData(e)}onComplete(e){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(e)}onBodySent(e){this.handler.onBodySent&&this.handler.onBodySent(e)}};function d(e,t){if(s.indexOf(e)===-1)return null;for(let e=0;e{let n=ct();function r({maxRedirections:e}){return t=>function(r,i){let{maxRedirections:a=e}=r;if(!a)return t(r,i);let o=new n(t,a,r,i);return r={...r,maxRedirections:0},t(r,o)}}t.exports=r})),ut=J(((e,t)=>{let n=Y(`node:assert`),r=Y(`node:net`),i=Y(`node:http`),a=ze(),{channels:o}=Be(),s=Ve(),c=Ue(),{InvalidArgumentError:l,InformationalError:u,ClientDestroyedError:d}=Ie(),f=Ge(),{kUrl:p,kServerName:m,kClient:h,kBusy:g,kConnect:v,kResuming:y,kRunning:b,kPending:x,kSize:S,kQueue:C,kConnected:w,kConnecting:T,kNeedDrain:E,kKeepAliveDefaultTimeout:D,kHostHeader:O,kPendingIdx:k,kRunningIdx:A,kError:j,kPipelining:M,kKeepAliveTimeoutValue:N,kMaxHeadersSize:P,kKeepAliveMaxTimeout:F,kKeepAliveTimeoutThreshold:I,kHeadersTimeout:L,kBodyTimeout:R,kStrictContentLength:z,kConnector:ee,kMaxRedirections:B,kMaxRequests:V,kCounter:H,kClose:U,kDestroy:W,kDispatch:G,kInterceptors:K,kLocalAddress:q,kMaxResponseSize:te,kOnError:ne,kHTTPContext:re,kMaxConcurrentStreams:ie,kResume:ae}=Fe(),oe=ot(),se=st(),ce=!1,le=Symbol(`kClosedResolve`),ue=()=>{};function de(e){return e[M]??e[re]?.defaultPipelining??1}var fe=class extends c{constructor(e,{interceptors:t,maxHeaderSize:n,headersTimeout:o,socketTimeout:s,requestTimeout:c,connectTimeout:u,bodyTimeout:d,idleTimeout:h,keepAlive:g,keepAliveTimeout:v,maxKeepAliveTimeout:b,keepAliveMaxTimeout:x,keepAliveTimeoutThreshold:S,socketPath:w,pipelining:T,tls:j,strictContentLength:H,maxCachedSessions:U,maxRedirections:W,connect:G,maxRequestsPerClient:oe,localAddress:se,maxResponseSize:ue,autoSelectFamily:de,autoSelectFamilyAttemptTimeout:fe,maxConcurrentStreams:he,allowH2:ge,webSocket:J}={}){if(super({webSocket:J}),g!==void 0)throw new l(`unsupported keepAlive, use pipelining=0 instead`);if(s!==void 0)throw new l(`unsupported socketTimeout, use headersTimeout & bodyTimeout instead`);if(c!==void 0)throw new l(`unsupported requestTimeout, use headersTimeout & bodyTimeout instead`);if(h!==void 0)throw new l(`unsupported idleTimeout, use keepAliveTimeout instead`);if(b!==void 0)throw new l(`unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead`);if(n!=null&&!Number.isFinite(n))throw new l(`invalid maxHeaderSize`);if(w!=null&&typeof w!=`string`)throw new l(`invalid socketPath`);if(u!=null&&(!Number.isFinite(u)||u<0))throw new l(`invalid connectTimeout`);if(v!=null&&(!Number.isFinite(v)||v<=0))throw new l(`invalid keepAliveTimeout`);if(x!=null&&(!Number.isFinite(x)||x<=0))throw new l(`invalid keepAliveMaxTimeout`);if(S!=null&&!Number.isFinite(S))throw new l(`invalid keepAliveTimeoutThreshold`);if(o!=null&&(!Number.isInteger(o)||o<0))throw new l(`headersTimeout must be a positive integer or zero`);if(d!=null&&(!Number.isInteger(d)||d<0))throw new l(`bodyTimeout must be a positive integer or zero`);if(G!=null&&typeof G!=`function`&&typeof G!=`object`)throw new l(`connect must be a function or an object`);if(W!=null&&(!Number.isInteger(W)||W<0))throw new l(`maxRedirections must be a positive number`);if(oe!=null&&(!Number.isInteger(oe)||oe<0))throw new l(`maxRequestsPerClient must be a positive number`);if(se!=null&&(typeof se!=`string`||r.isIP(se)===0))throw new l(`localAddress must be valid string IP address`);if(ue!=null&&(!Number.isInteger(ue)||ue<-1))throw new l(`maxResponseSize must be a positive number`);if(fe!=null&&(!Number.isInteger(fe)||fe<-1))throw new l(`autoSelectFamilyAttemptTimeout must be a positive number`);if(ge!=null&&typeof ge!=`boolean`)throw new l(`allowH2 must be a valid boolean value`);if(he!=null&&(typeof he!=`number`||he<1))throw new l(`maxConcurrentStreams must be a positive integer, greater than 0`);typeof G!=`function`&&(G=f({...j,maxCachedSessions:U,allowH2:ge,socketPath:w,timeout:u,...de?{autoSelectFamily:de,autoSelectFamilyAttemptTimeout:fe}:void 0,...G})),t?.Client&&Array.isArray(t.Client)?(this[K]=t.Client,ce||(ce=!0,process.emitWarning(`Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.`,{code:`UNDICI-CLIENT-INTERCEPTOR-DEPRECATED`}))):this[K]=[pe({maxRedirections:W})],this[p]=a.parseOrigin(e),this[ee]=G,this[M]=T??1,this[P]=n||i.maxHeaderSize,this[D]=v??4e3,this[F]=x??6e5,this[I]=S??2e3,this[N]=this[D],this[m]=null,this[q]=se??null,this[y]=0,this[E]=0,this[O]=`host: ${this[p].hostname}${this[p].port?`:${this[p].port}`:``}\r\n`,this[R]=d??3e5,this[L]=o??3e5,this[z]=H??!0,this[B]=W,this[V]=oe,this[le]=null,this[te]=ue>-1?ue:-1,this[ie]=he??100,this[re]=null,this[C]=[],this[A]=0,this[k]=0,this[ae]=e=>_e(this,e),this[ne]=e=>me(this,e)}get pipelining(){return this[M]}set pipelining(e){this[M]=e,this[ae](!0)}get[x](){return this[C].length-this[k]}get[b](){return this[k]-this[A]}get[S](){return this[C].length-this[A]}get[w](){return!!this[re]&&!this[T]&&!this[re].destroyed}get[g](){return!!(this[re]?.busy(null)||this[S]>=(de(this)||1)||this[x]>0)}[v](e){he(this),this.once(`connect`,e)}[G](e,t){let n=e.origin||this[p].origin,r=new s(n,e,t);return this[C].push(r),this[y]||(a.bodyLength(r.body)==null&&a.isIterable(r.body)?(this[y]=1,queueMicrotask(()=>_e(this))):this[ae](!0)),this[y]&&this[E]!==2&&this[g]&&(this[E]=2),this[E]<2}async[U](){return new Promise(e=>{this[S]?this[le]=e:e(null)})}async[W](e){return new Promise(t=>{let n=this[C].splice(this[k]);for(let t=0;t{this[le]&&(this[le](),this[le]=null),t(null)};this[re]?(this[re].destroy(e,r),this[re]=null):queueMicrotask(r),this[ae]()})}};let pe=lt();function me(e,t){if(e[b]===0&&t.code!==`UND_ERR_INFO`&&t.code!==`UND_ERR_SOCKET`){n(e[k]===e[A]);let r=e[C].splice(e[A]);for(let n=0;n{e[ee]({host:t,hostname:i,protocol:s,port:c,servername:e[m],localAddress:e[q]},(e,t)=>{e?r(e):n(t)})});if(e.destroyed){a.destroy(r.on(`error`,ue),new d);return}n(r);try{e[re]=r.alpnProtocol===`h2`?await se(e,r):await oe(e,r)}catch(e){throw r.destroy().on(`error`,ue),e}e[T]=!1,r[H]=0,r[V]=e[V],r[h]=e,r[j]=null,o.connected.hasSubscribers&&o.connected.publish({connectParams:{host:t,hostname:i,protocol:s,port:c,version:e[re]?.version,servername:e[m],localAddress:e[q]},connector:e[ee],socket:r}),e.emit(`connect`,e[p],[e])}catch(r){if(e.destroyed)return;if(e[T]=!1,o.connectError.hasSubscribers&&o.connectError.publish({connectParams:{host:t,hostname:i,protocol:s,port:c,version:e[re]?.version,servername:e[m],localAddress:e[q]},connector:e[ee],error:r}),r.code===`ERR_TLS_CERT_ALTNAME_INVALID`)for(n(e[b]===0);e[x]>0&&e[C][e[k]].servername===e[m];){let t=e[C][e[k]++];a.errorRequest(e,t,r)}else me(e,r);e.emit(`connectionError`,e[p],[e],r)}e[ae]()}function ge(e){e[E]=0,e.emit(`drain`,e[p],[e])}function _e(e,t){e[y]!==2&&(e[y]=2,J(e,t),e[y]=0,e[A]>256&&(e[C].splice(0,e[A]),e[k]-=e[A],e[A]=0))}function J(e,t){for(;;){if(e.destroyed){n(e[x]===0);return}if(e[le]&&!e[S]){e[le](),e[le]=null;return}if(e[re]&&e[re].resume(),e[g])e[E]=2;else if(e[E]===2){t?(e[E]=1,queueMicrotask(()=>ge(e))):ge(e);continue}if(e[x]===0||e[b]>=(de(e)||1))return;let r=e[C][e[k]];if(e[p].protocol===`https:`&&e[m]!==r.servername){if(e[b]>0)return;e[m]=r.servername,e[re]?.destroy(new u(`servername changed`),()=>{e[re]=null,_e(e)})}if(e[T])return;if(!e[re]){he(e);return}if(e[re].destroyed||e[re].busy(r))return;!r.aborted&&e[re].write(r)?e[k]++:e[C].splice(e[k],1)}}t.exports=fe})),dt=J(((e,t)=>{let n=2047;var r=class{constructor(){this.bottom=0,this.top=0,this.list=Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&n)===this.bottom}push(e){this.list[this.top]=e,this.top=this.top+1&n}shift(){let e=this.list[this.bottom];return e===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&n,e)}};t.exports=class{constructor(){this.head=this.tail=new r}isEmpty(){return this.head.isEmpty()}push(e){this.head.isFull()&&(this.head=this.head.next=new r),this.head.push(e)}shift(){let e=this.tail,t=e.shift();return e.isEmpty()&&e.next!==null&&(this.tail=e.next),t}}})),ft=J(((e,t)=>{let{kFree:n,kConnected:r,kPending:i,kQueued:a,kRunning:o,kSize:s}=Fe(),c=Symbol(`pool`);t.exports=class{constructor(e){this[c]=e}get connected(){return this[c][r]}get free(){return this[c][n]}get pending(){return this[c][i]}get queued(){return this[c][a]}get running(){return this[c][o]}get size(){return this[c][s]}}})),pt=J(((e,t)=>{let n=Ue(),r=dt(),{kConnected:i,kSize:a,kRunning:o,kPending:s,kQueued:c,kBusy:l,kFree:u,kUrl:d,kClose:f,kDestroy:p,kDispatch:m}=Fe(),h=ft(),g=Symbol(`clients`),v=Symbol(`needDrain`),y=Symbol(`queue`),b=Symbol(`closed resolve`),x=Symbol(`onDrain`),S=Symbol(`onConnect`),C=Symbol(`onDisconnect`),w=Symbol(`onConnectionError`),T=Symbol(`get dispatcher`),E=Symbol(`add client`),D=Symbol(`remove client`),O=Symbol(`stats`);t.exports={PoolBase:class extends n{constructor(e){super(e),this[y]=new r,this[g]=[],this[c]=0;let t=this;this[x]=function(e,n){let r=t[y],i=!1;for(;!i;){let e=r.shift();if(!e)break;t[c]--,i=!this.dispatch(e.opts,e.handler)}this[v]=i,!this[v]&&t[v]&&(t[v]=!1,t.emit(`drain`,e,[t,...n])),t[b]&&r.isEmpty()&&Promise.all(t[g].map(e=>e.close())).then(t[b])},this[S]=(e,n)=>{t.emit(`connect`,e,[t,...n])},this[C]=(e,n,r)=>{t.emit(`disconnect`,e,[t,...n],r)},this[w]=(e,n,r)=>{t.emit(`connectionError`,e,[t,...n],r)},this[O]=new h(this)}get[l](){return this[v]}get[i](){return this[g].filter(e=>e[i]).length}get[u](){return this[g].filter(e=>e[i]&&!e[v]).length}get[s](){let e=this[c];for(let{[s]:t}of this[g])e+=t;return e}get[o](){let e=0;for(let{[o]:t}of this[g])e+=t;return e}get[a](){let e=this[c];for(let{[a]:t}of this[g])e+=t;return e}get stats(){return this[O]}async[f](){this[y].isEmpty()?await Promise.all(this[g].map(e=>e.close())):await new Promise(e=>{this[b]=e})}async[p](e){for(;;){let t=this[y].shift();if(!t)break;t.handler.onError(e)}await Promise.all(this[g].map(t=>t.destroy(e)))}[m](e,t){let n=this[T]();return n?n.dispatch(e,t)||(n[v]=!0,this[v]=!this[T]()):(this[v]=!0,this[y].push({opts:e,handler:t}),this[c]++),!this[v]}[E](e){return e.on(`drain`,this[x]).on(`connect`,this[S]).on(`disconnect`,this[C]).on(`connectionError`,this[w]),this[g].push(e),this[v]&&queueMicrotask(()=>{this[v]&&this[x](e[d],[this,e])}),this}[D](e){e.close(()=>{let t=this[g].indexOf(e);t!==-1&&this[g].splice(t,1)}),this[v]=this[g].some(e=>!e[v]&&e.closed!==!0&&e.destroyed!==!0)}},kClients:g,kNeedDrain:v,kAddClient:E,kRemoveClient:D,kGetDispatcher:T}})),mt=J(((e,t)=>{let{PoolBase:n,kClients:r,kNeedDrain:i,kAddClient:a,kGetDispatcher:o}=pt(),s=ut(),{InvalidArgumentError:c}=Ie(),l=ze(),{kUrl:u,kInterceptors:d}=Fe(),f=Ge(),p=Symbol(`options`),m=Symbol(`connections`),h=Symbol(`factory`);function g(e,t){return new s(e,t)}t.exports=class extends n{constructor(e,{connections:t,factory:n=g,connect:i,connectTimeout:a,tls:o,maxCachedSessions:s,socketPath:v,autoSelectFamily:y,autoSelectFamilyAttemptTimeout:b,allowH2:x,...S}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new c(`invalid connections`);if(typeof n!=`function`)throw new c(`factory must be a function.`);if(i!=null&&typeof i!=`function`&&typeof i!=`object`)throw new c(`connect must be a function or an object`);typeof i!=`function`&&(i=f({...o,maxCachedSessions:s,allowH2:x,socketPath:v,timeout:a,...y?{autoSelectFamily:y,autoSelectFamilyAttemptTimeout:b}:void 0,...i})),super(S),this[d]=S.interceptors?.Pool&&Array.isArray(S.interceptors.Pool)?S.interceptors.Pool:[],this[m]=t||null,this[u]=l.parseOrigin(e),this[p]={...l.deepClone(S),connect:i,allowH2:x},this[p].interceptors=S.interceptors?{...S.interceptors}:void 0,this[h]=n,this.on(`connectionError`,(e,t,n)=>{for(let e of t){let t=this[r].indexOf(e);t!==-1&&this[r].splice(t,1)}})}[o](){for(let e of this[r])if(!e[i])return e;if(!this[m]||this[r].length{let{BalancedPoolMissingUpstreamError:n,InvalidArgumentError:r}=Ie(),{PoolBase:i,kClients:a,kNeedDrain:o,kAddClient:s,kRemoveClient:c,kGetDispatcher:l}=pt(),u=mt(),{kUrl:d,kInterceptors:f}=Fe(),{parseOrigin:p}=ze(),m=Symbol(`factory`),h=Symbol(`options`),g=Symbol(`kGreatestCommonDivisor`),v=Symbol(`kCurrentWeight`),y=Symbol(`kIndex`),b=Symbol(`kWeight`),x=Symbol(`kMaxWeightPerServer`),S=Symbol(`kErrorPenalty`);function C(e,t){if(e===0)return t;for(;t!==0;){let n=t;t=e%t,e=n}return e}function w(e,t){return new u(e,t)}t.exports=class extends i{constructor(e=[],{factory:t=w,...n}={}){if(super(),this[h]=n,this[y]=-1,this[v]=0,this[x]=this[h].maxWeightPerServer||100,this[S]=this[h].errorPenalty||15,Array.isArray(e)||(e=[e]),typeof t!=`function`)throw new r(`factory must be a function.`);this[f]=n.interceptors?.BalancedPool&&Array.isArray(n.interceptors.BalancedPool)?n.interceptors.BalancedPool:[],this[m]=t;for(let t of e)this.addUpstream(t);this._updateBalancedPoolStats()}addUpstream(e){let t=p(e).origin;if(this[a].find(e=>e[d].origin===t&&e.closed!==!0&&e.destroyed!==!0))return this;let n=this[m](t,Object.assign({},this[h]));this[s](n),n.on(`connect`,()=>{n[b]=Math.min(this[x],n[b]+this[S])}),n.on(`connectionError`,()=>{n[b]=Math.max(1,n[b]-this[S]),this._updateBalancedPoolStats()}),n.on(`disconnect`,(...e)=>{let t=e[2];t&&t.code===`UND_ERR_SOCKET`&&(n[b]=Math.max(1,n[b]-this[S]),this._updateBalancedPoolStats())});for(let e of this[a])e[b]=this[x];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let e=0;for(let t=0;te[d].origin===t&&e.closed!==!0&&e.destroyed!==!0);return n&&this[c](n),this}get upstreams(){return this[a].filter(e=>e.closed!==!0&&e.destroyed!==!0).map(e=>e[d].origin)}[l](){if(this[a].length===0)throw new n;if(!this[a].find(e=>!e[o]&&e.closed!==!0&&e.destroyed!==!0)||this[a].map(e=>e[o]).reduce((e,t)=>e&&t,!0))return;let e=0,t=this[a].findIndex(e=>!e[o]);for(;e++this[a][t][b]&&!e[o]&&(t=this[y]),this[y]===0&&(this[v]=this[v]-this[g],this[v]<=0&&(this[v]=this[x])),e[b]>=this[v]&&!e[o])return e}return this[v]=this[a][t][b],this[y]=t,this[a][t]}}})),gt=J(((e,t)=>{let{InvalidArgumentError:n}=Ie(),{kClients:r,kRunning:i,kClose:a,kDestroy:o,kDispatch:s,kInterceptors:c}=Fe(),l=Ue(),u=mt(),d=ut(),f=ze(),p=lt(),m=Symbol(`onConnect`),h=Symbol(`onDisconnect`),g=Symbol(`onConnectionError`),v=Symbol(`maxRedirections`),y=Symbol(`onDrain`),b=Symbol(`factory`),x=Symbol(`options`);function S(e,t){return t&&t.connections===1?new d(e,t):new u(e,t)}t.exports=class extends l{constructor({factory:e=S,maxRedirections:t=0,connect:i,...a}={}){if(typeof e!=`function`)throw new n(`factory must be a function.`);if(i!=null&&typeof i!=`function`&&typeof i!=`object`)throw new n(`connect must be a function or an object`);if(!Number.isInteger(t)||t<0)throw new n(`maxRedirections must be a positive number`);super(a),i&&typeof i!=`function`&&(i={...i}),this[c]=a.interceptors?.Agent&&Array.isArray(a.interceptors.Agent)?a.interceptors.Agent:[p({maxRedirections:t})],this[x]={...f.deepClone(a),connect:i},this[x].interceptors=a.interceptors?{...a.interceptors}:void 0,this[v]=t,this[b]=e,this[r]=new Map,this[y]=(e,t)=>{this.emit(`drain`,e,[this,...t])},this[m]=(e,t)=>{this.emit(`connect`,e,[this,...t])},this[h]=(e,t,n)=>{this.emit(`disconnect`,e,[this,...t],n)},this[g]=(e,t,n)=>{this.emit(`connectionError`,e,[this,...t],n)}}get[i](){let e=0;for(let t of this[r].values())e+=t[i];return e}[s](e,t){let i;if(e.origin&&(typeof e.origin==`string`||e.origin instanceof URL))i=String(e.origin);else throw new n(`opts.origin must be a non-empty string or URL.`);let a=this[r].get(i);return a||(a=this[b](e.origin,this[x]).on(`drain`,this[y]).on(`connect`,this[m]).on(`disconnect`,this[h]).on(`connectionError`,this[g]),this[r].set(i,a)),a.dispatch(e,t)}async[a](){let e=[];for(let t of this[r].values())e.push(t.close());this[r].clear(),await Promise.all(e)}async[o](e){let t=[];for(let n of this[r].values())t.push(n.destroy(e));this[r].clear(),await Promise.all(t)}}})),_t=J(((e,t)=>{let{kProxy:n,kClose:r,kDestroy:i,kDispatch:a,kInterceptors:o}=Fe(),{URL:s}=Y(`node:url`),c=gt(),l=mt(),u=Ue(),{InvalidArgumentError:d,RequestAbortedError:f,SecureProxyConnectionError:p}=Ie(),m=Ge(),h=ut(),g=Symbol(`proxy agent`),v=Symbol(`proxy client`),y=Symbol(`proxy headers`),b=Symbol(`request tls settings`),x=Symbol(`proxy tls settings`),S=Symbol(`connect endpoint function`),C=Symbol(`tunnel proxy`);function w(e){return e===`https:`?443:80}function T(e,t){return new l(e,t)}let E=()=>{};function D(e,t){return t.connections===1?new h(e,t):new l(e,t)}var O=class extends u{#e;constructor(e,{headers:t={},connect:n,factory:r}){if(super(),!e)throw new d(`Proxy URL is mandatory`);this[y]=t,this.#e=r?r(e,{connect:n}):new h(e,{connect:n})}[a](e,t){let n=t.onHeaders;t.onHeaders=function(e,r,i){if(e===407){typeof t.onError==`function`&&t.onError(new d(`Proxy Authentication Required (407)`));return}n&&n.call(this,e,r,i)};let{origin:r,path:i=`/`,headers:o={}}=e;if(e.path=r+i,!(`host`in o)&&!(`Host`in o)){let{host:e}=new s(r);o.host=e}return e.headers={...this[y],...o},this.#e[a](e,t)}async[r](){return this.#e.close()}async[i](e){return this.#e.destroy(e)}},k=class extends u{constructor(e){if(super(),!e||typeof e==`object`&&!(e instanceof s)&&!e.uri)throw new d(`Proxy uri is mandatory`);let{clientFactory:t=T}=e;if(typeof t!=`function`)throw new d(`Proxy opts.clientFactory must be a function.`);let{proxyTunnel:r=!0}=e,i=this.#e(e),{href:a,origin:l,port:u,protocol:h,username:k,password:A,hostname:j}=i;if(this[n]={uri:a,protocol:h},this[o]=e.interceptors?.ProxyAgent&&Array.isArray(e.interceptors.ProxyAgent)?e.interceptors.ProxyAgent:[],this[b]=e.requestTls,this[x]=e.proxyTls,this[y]=e.headers||{},this[C]=r,e.auth&&e.token)throw new d(`opts.auth cannot be used in combination with opts.token`);e.auth?this[y][`proxy-authorization`]=`Basic ${e.auth}`:e.token?this[y][`proxy-authorization`]=e.token:k&&A&&(this[y][`proxy-authorization`]=`Basic ${Buffer.from(`${decodeURIComponent(k)}:${decodeURIComponent(A)}`).toString(`base64`)}`);let M=m({...e.proxyTls});this[S]=m({...e.requestTls});let N=e.factory||D,P=(e,t)=>{let{protocol:r}=new s(e);return!this[C]&&r===`http:`&&this[n].protocol===`http:`?new O(this[n].uri,{headers:this[y],connect:M,factory:N}):N(e,t)};this[v]=t(i,{connect:M}),this[g]=new c({...e,factory:P,connect:async(e,t)=>{let n=e.host;e.port||(n+=`:${w(e.protocol)}`);try{let{socket:r,statusCode:i}=await this[v].connect({origin:l,port:u,path:n,signal:e.signal,headers:{...this[y],host:e.host},servername:this[x]?.servername||j});if(i!==200&&(r.on(`error`,E).destroy(),t(new f(`Proxy response (${i}) !== 200 when HTTP Tunneling`))),e.protocol!==`https:`){t(null,r);return}let a;a=this[b]?this[b].servername:e.servername,this[S]({...e,servername:a,httpSocket:r},t)}catch(e){e.code===`ERR_TLS_CERT_ALTNAME_INVALID`?t(new p(e)):t(e)}}})}dispatch(e,t){let n=A(e.headers);if(j(n),n&&!(`host`in n)&&!(`Host`in n)){let{host:t}=new s(e.origin);n.host=t}return this[g].dispatch({...e,headers:n},t)}#e(e){return typeof e==`string`?new s(e):e instanceof s?e:new s(e.uri)}async[r](){await this[g].close(),await this[v].close()}async[i](){await this[g].destroy(),await this[v].destroy()}};function A(e){if(Array.isArray(e)){let t={};for(let n=0;ne.toLowerCase()===`proxy-authorization`))throw new d(`Proxy-Authorization should be sent in ProxyAgent constructor`)}t.exports=k})),vt=J(((e,t)=>{let n=Ue(),{kClose:r,kDestroy:i,kClosed:a,kDestroyed:o,kDispatch:s,kNoProxyAgent:c,kHttpProxyAgent:l,kHttpsProxyAgent:u}=Fe(),d=_t(),f=gt(),p={"http:":80,"https:":443},m=!1;t.exports=class extends n{#e=null;#t=null;#n=null;constructor(e={}){super(),this.#n=e,m||(m=!0,process.emitWarning(`EnvHttpProxyAgent is experimental, expect them to change at any time.`,{code:`UNDICI-EHPA`}));let{httpProxy:t,httpsProxy:n,noProxy:r,...i}=e;this[c]=new f(i);let a=t??process.env.http_proxy??process.env.HTTP_PROXY;a?this[l]=new d({...i,uri:a}):this[l]=this[c];let o=n??process.env.https_proxy??process.env.HTTPS_PROXY;o?this[u]=new d({...i,uri:o}):this[u]=this[l],this.#a()}[s](e,t){let n=new URL(e.origin);return this.#r(n).dispatch(e,t)}async[r](){await this[c].close(),this[l][a]||await this[l].close(),this[u][a]||await this[u].close()}async[i](e){await this[c].destroy(e),this[l][o]||await this[l].destroy(e),this[u][o]||await this[u].destroy(e)}#r(e){let{protocol:t,host:n,port:r}=e;return n=n.replace(/:\d*$/,``).toLowerCase(),r=Number.parseInt(r,10)||p[t]||0,this.#i(n,r)?t===`https:`?this[u]:this[l]:this[c]}#i(e,t){if(this.#o&&this.#a(),this.#t.length===0)return!0;if(this.#e===`*`)return!1;for(let n=0;n{let n=Y(`node:assert`),{kRetryHandlerDefaultRetry:r}=Fe(),{RequestRetryError:i}=Ie(),{isDisturbed:a,parseHeaders:o,parseRangeHeader:s,wrapRequestBody:c}=ze();function l(e){let t=Date.now();return new Date(e).getTime()-t}function u(e,t,n,r){let a=e[`content-length`];if(a==null||!Number.isFinite(t.start)||!Number.isFinite(t.end))return null;let o=Number(a),s=t.end-t.start+1;return!Number.isFinite(o)||o!==s?new i(`Content-Length mismatch`,n,{headers:e,data:{count:r}}):null}t.exports=class e{constructor(t,n){let{retryOptions:i,...a}=t,{retry:o,maxRetries:s,maxTimeout:l,minTimeout:u,timeoutFactor:d,methods:f,errorCodes:p,retryAfter:m,statusCodes:h}=i??{};this.dispatch=n.dispatch,this.handler=n.handler,this.opts={...a,body:c(t.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:o??e[r],retryAfter:m??!0,maxTimeout:l??3e4,minTimeout:u??500,timeoutFactor:d??2,maxRetries:s??5,methods:f??[`GET`,`HEAD`,`OPTIONS`,`PUT`,`DELETE`,`TRACE`],statusCodes:h??[500,502,503,504,429],errorCodes:p??[`ECONNRESET`,`ECONNREFUSED`,`ENOTFOUND`,`ENETDOWN`,`ENETUNREACH`,`EHOSTDOWN`,`EHOSTUNREACH`,`EPIPE`,`UND_ERR_SOCKET`]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(e=>{this.aborted=!0,this.abort?this.abort(e):this.reason=e})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(e,t,n){this.handler.onUpgrade&&this.handler.onUpgrade(e,t,n)}onConnect(e){this.aborted?e(this.reason):this.abort=e}onBodySent(e){if(this.handler.onBodySent)return this.handler.onBodySent(e)}static[r](e,{state:t,opts:n},r){let{statusCode:i,code:a,headers:o}=e,{method:s,retryOptions:c}=n,{maxRetries:u,minTimeout:d,maxTimeout:f,timeoutFactor:p,statusCodes:m,errorCodes:h,methods:g}=c,{counter:v}=t;if(a&&a!==`UND_ERR_REQ_RETRY`&&!h.includes(a)){r(e);return}if(Array.isArray(g)&&!g.includes(s)){r(e);return}if(i!=null&&Array.isArray(m)&&!m.includes(i)){r(e);return}if(v>u){r(e);return}let y=o?.[`retry-after`];y&&=(y=Number(y),Number.isNaN(y)?l(y):y*1e3);let b=Math.min(y>0?y:d*p**(v-1),f);setTimeout(()=>r(null),b)}onHeaders(e,t,r,a){let c=o(t);if(this.retryCount+=1,e>=300)return this.retryOpts.statusCodes.includes(e)===!1?this.handler.onHeaders(e,t,r,a):(this.abort(new i(`Request failed`,e,{headers:c,data:{count:this.retryCount}})),!1);if(this.resume!=null){if(this.resume=null,e!==206&&(this.start>0||e!==200))return this.abort(new i(`server does not support the range header and the payload was partially consumed`,e,{headers:c,data:{count:this.retryCount}})),!1;let t=s(c[`content-range`]);if(!t)return this.abort(new i(`Content-Range mismatch`,e,{headers:c,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==c.etag)return this.abort(new i(`ETag mismatch`,e,{headers:c,data:{count:this.retryCount}})),!1;let a=u(c,t,e,this.retryCount);if(a!=null)return this.abort(a),!1;let{start:o,size:l,end:d=l-1}=t;return n(this.start===o,`content-range mismatch`),n(this.end==null||this.end===d,`content-range mismatch`),this.resume=r,!0}if(this.end==null){if(e===206){let i=s(c[`content-range`]);if(i==null)return this.handler.onHeaders(e,t,r,a);let o=u(c,i,e,this.retryCount);if(o!=null)return this.abort(o),!1;let{start:l,size:d,end:f=d-1}=i;n(l!=null&&Number.isFinite(l),`content-range mismatch`),n(f!=null&&Number.isFinite(f),`invalid content-length`),this.start=l,this.end=f}if(this.end==null){let e=c[`content-length`];this.end=e==null?null:Number(e)-1}return n(Number.isFinite(this.start)),n(this.end==null||Number.isFinite(this.end),`invalid content-length`),this.resume=r,this.etag=c.etag==null?null:c.etag,this.etag!=null&&this.etag.startsWith(`W/`)&&(this.etag=null),this.handler.onHeaders(e,t,r,a)}let l=new i(`Request failed`,e,{headers:c,data:{count:this.retryCount}});return this.abort(l),!1}onData(e){return this.start+=e.length,this.handler.onData(e)}onComplete(e){return this.retryCount=0,this.handler.onComplete(e)}onError(e){if(this.aborted||a(this.opts.body))return this.handler.onError(e);this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(e,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},t.bind(this));function t(e){if(e!=null||this.aborted||a(this.opts.body))return this.handler.onError(e);if(this.start!==0){let e={range:`bytes=${this.start}-${this.end??``}`};this.etag!=null&&(e[`if-match`]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...e}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(e){this.handler.onError(e)}}}}})),bt=J(((e,t)=>{let n=He(),r=yt();t.exports=class extends n{#e=null;#t=null;constructor(e,t={}){super(t),this.#e=e,this.#t=t}dispatch(e,t){let n=new r({...e,retryOptions:this.#t},{dispatch:this.#e.dispatch.bind(this.#e),handler:t});return this.#e.dispatch(e,n)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}}})),xt=J(((e,t)=>{let n=Y(`node:assert`),{Readable:r}=Y(`node:stream`),{RequestAbortedError:i,NotSupportedError:a,InvalidArgumentError:o,AbortError:s}=Ie(),c=ze(),{ReadableStreamFrom:l}=ze(),u=Symbol(`kConsume`),d=Symbol(`kReading`),f=Symbol(`kBody`),p=Symbol(`kAbort`),m=Symbol(`kContentType`),h=Symbol(`kContentLength`),g=()=>{};var v=class extends r{constructor({resume:e,abort:t,contentType:n=``,contentLength:r,highWaterMark:i=65536}){super({autoDestroy:!0,read:e,highWaterMark:i}),this._readableState.dataEmitted=!1,this[p]=t,this[u]=null,this[f]=null,this[m]=n,this[h]=r,this[d]=!1}destroy(e){return!e&&!this._readableState.endEmitted&&(e=new i),e&&this[p](),super.destroy(e)}_destroy(e,t){this[d]?t(e):setImmediate(()=>{t(e)})}on(e,...t){return(e===`data`||e===`readable`)&&(this[d]=!0),super.on(e,...t)}addListener(e,...t){return this.on(e,...t)}off(e,...t){let n=super.off(e,...t);return(e===`data`||e===`readable`)&&(this[d]=this.listenerCount(`data`)>0||this.listenerCount(`readable`)>0),n}removeListener(e,...t){return this.off(e,...t)}push(e){return this[u]&&e!==null?(E(this[u],e),!this[d]||super.push(e)):super.push(e)}async text(){return x(this,`text`)}async json(){return x(this,`json`)}async blob(){return x(this,`blob`)}async bytes(){return x(this,`bytes`)}async arrayBuffer(){return x(this,`arrayBuffer`)}async formData(){throw new a}get bodyUsed(){return c.isDisturbed(this)}get body(){return this[f]||(this[f]=l(this),this[u]&&(this[f].getReader(),n(this[f].locked))),this[f]}async dump(e){let t=Number.isFinite(e?.limit)?e.limit:131072,n=e?.signal;if(n!=null&&(typeof n!=`object`||!(`aborted`in n)))throw new o(`signal must be an AbortSignal`);return n?.throwIfAborted(),this._readableState.closeEmitted?null:await new Promise((e,r)=>{this[h]>t&&this.destroy(new s);let i=()=>{this.destroy(n.reason??new s)};n?.addEventListener(`abort`,i),this.on(`close`,function(){n?.removeEventListener(`abort`,i),n?.aborted?r(n.reason??new s):e(null)}).on(`error`,g).on(`data`,function(e){t-=e.length,t<=0&&this.destroy()}).resume()})}};function y(e){return e[f]&&e[f].locked===!0||e[u]}function b(e){return c.isDisturbed(e)||y(e)}async function x(e,t){return n(!e[u]),new Promise((n,r)=>{if(b(e)){let t=e._readableState;t.destroyed&&t.closeEmitted===!1?e.on(`error`,e=>{r(e)}).on(`close`,()=>{r(TypeError(`unusable`))}):r(t.errored??TypeError(`unusable`))}else queueMicrotask(()=>{e[u]={type:t,stream:e,resolve:n,reject:r,length:0,body:[]},e.on(`error`,function(e){D(this[u],e)}).on(`close`,function(){this[u].body!==null&&D(this[u],new i)}),S(e[u])})})}function S(e){if(e.body===null)return;let{_readableState:t}=e.stream;if(t.bufferIndex){let n=t.bufferIndex,r=t.buffer.length;for(let i=n;i2&&n[0]===239&&n[1]===187&&n[2]===191?3:0;return n.utf8Slice(i,r)}function w(e,t){if(e.length===0||t===0)return new Uint8Array;if(e.length===1)return new Uint8Array(e[0]);let n=new Uint8Array(Buffer.allocUnsafeSlow(t).buffer),r=0;for(let t=0;t{let n=Y(`node:assert`),{ResponseStatusCodeError:r}=Ie(),{chunksDecode:i}=xt();async function a({callback:e,body:t,contentType:a,statusCode:c,statusMessage:l,headers:u}){n(t);let d=[],f=0;try{for await(let e of t)if(d.push(e),f+=e.length,f>131072){d=[],f=0;break}}catch{d=[],f=0}let p=`Response status code ${c}${l?`: ${l}`:``}`;if(c===204||!a||!f){queueMicrotask(()=>e(new r(p,c,u)));return}let m=Error.stackTraceLimit;Error.stackTraceLimit=0;let h;try{o(a)?h=JSON.parse(i(d,f)):s(a)&&(h=i(d,f))}catch{}finally{Error.stackTraceLimit=m}queueMicrotask(()=>e(new r(p,c,u,h)))}let o=e=>e.length>15&&e[11]===`/`&&e[0]===`a`&&e[1]===`p`&&e[2]===`p`&&e[3]===`l`&&e[4]===`i`&&e[5]===`c`&&e[6]===`a`&&e[7]===`t`&&e[8]===`i`&&e[9]===`o`&&e[10]===`n`&&e[12]===`j`&&e[13]===`s`&&e[14]===`o`&&e[15]===`n`,s=e=>e.length>4&&e[4]===`/`&&e[0]===`t`&&e[1]===`e`&&e[2]===`x`&&e[3]===`t`;t.exports={getResolveErrorBodyCallback:a,isContentTypeApplicationJson:o,isContentTypeText:s}})),Ct=J(((e,t)=>{let n=Y(`node:assert`),{Readable:r}=xt(),{InvalidArgumentError:i,RequestAbortedError:a}=Ie(),o=ze(),{getResolveErrorBodyCallback:s}=St(),{AsyncResource:c}=Y(`node:async_hooks`);var l=class extends c{constructor(e,t){if(!e||typeof e!=`object`)throw new i(`invalid opts`);let{signal:n,method:r,opaque:s,body:c,onInfo:l,responseHeaders:u,throwOnError:d,highWaterMark:f}=e;try{if(typeof t!=`function`)throw new i(`invalid callback`);if(f&&(typeof f!=`number`||f<0))throw new i(`invalid highWaterMark`);if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new i(`signal must be an EventEmitter or EventTarget`);if(r===`CONNECT`)throw new i(`invalid method`);if(l&&typeof l!=`function`)throw new i(`invalid onInfo callback`);super(`UNDICI_REQUEST`)}catch(e){throw o.isStream(c)&&o.destroy(c.on(`error`,o.nop),e),e}this.method=r,this.responseHeaders=u||null,this.opaque=s||null,this.callback=t,this.res=null,this.abort=null,this.body=c,this.trailers={},this.context=null,this.onInfo=l||null,this.throwOnError=d,this.highWaterMark=f,this.signal=n,this.reason=null,this.removeAbortListener=null,o.isStream(c)&&c.on(`error`,e=>{this.onError(e)}),this.signal&&(this.signal.aborted?this.reason=this.signal.reason??new a:this.removeAbortListener=o.addAbortListener(this.signal,()=>{this.reason=this.signal.reason??new a,this.res?o.destroy(this.res.on(`error`,o.nop),this.reason):this.abort&&this.abort(this.reason),this.removeAbortListener&&=(this.res?.off(`close`,this.removeAbortListener),this.removeAbortListener(),null)}))}onConnect(e,t){if(this.reason){e(this.reason);return}n(this.callback),this.abort=e,this.context=t}onHeaders(e,t,n,i){let{callback:a,opaque:c,abort:l,context:u,responseHeaders:d,highWaterMark:f}=this,p=d===`raw`?o.parseRawHeaders(t):o.parseHeaders(t);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:p});return}let m=d===`raw`?o.parseHeaders(t):p,h=m[`content-type`],g=m[`content-length`],v=new r({resume:n,abort:l,contentType:h,contentLength:this.method!==`HEAD`&&g?Number(g):null,highWaterMark:f});this.removeAbortListener&&v.on(`close`,this.removeAbortListener),this.callback=null,this.res=v,a!==null&&(this.throwOnError&&e>=400?this.runInAsyncScope(s,null,{callback:a,body:v,contentType:h,statusCode:e,statusMessage:i,headers:p}):this.runInAsyncScope(a,null,null,{statusCode:e,headers:p,trailers:this.trailers,opaque:c,body:v,context:u}))}onData(e){return this.res.push(e)}onComplete(e){o.parseHeaders(e,this.trailers),this.res.push(null)}onError(e){let{res:t,callback:n,body:r,opaque:i}=this;n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,e,{opaque:i})})),t&&(this.res=null,queueMicrotask(()=>{o.destroy(t,e)})),r&&(this.body=null,o.destroy(r,e)),this.removeAbortListener&&=(t?.off(`close`,this.removeAbortListener),this.removeAbortListener(),null)}};function u(e,t){if(t===void 0)return new Promise((t,n)=>{u.call(this,e,(e,r)=>e?n(e):t(r))});try{this.dispatch(e,new l(e,t))}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=u,t.exports.RequestHandler=l})),wt=J(((e,t)=>{let{addAbortListener:n}=ze(),{RequestAbortedError:r}=Ie(),i=Symbol(`kListener`),a=Symbol(`kSignal`);function o(e){e.abort?e.abort(e[a]?.reason):e.reason=e[a]?.reason??new r,c(e)}function s(e,t){if(e.reason=null,e[a]=null,e[i]=null,t){if(t.aborted){o(e);return}e[a]=t,e[i]=()=>{o(e)},n(e[a],e[i])}}function c(e){e[a]&&(`removeEventListener`in e[a]?e[a].removeEventListener(`abort`,e[i]):e[a].removeListener(`abort`,e[i]),e[a]=null,e[i]=null)}t.exports={addSignal:s,removeSignal:c}})),Tt=J(((e,t)=>{let n=Y(`node:assert`),{finished:r,PassThrough:i}=Y(`node:stream`),{InvalidArgumentError:a,InvalidReturnValueError:o}=Ie(),s=ze(),{getResolveErrorBodyCallback:c}=St(),{AsyncResource:l}=Y(`node:async_hooks`),{addSignal:u,removeSignal:d}=wt();var f=class extends l{constructor(e,t,n){if(!e||typeof e!=`object`)throw new a(`invalid opts`);let{signal:r,method:i,opaque:o,body:c,onInfo:l,responseHeaders:d,throwOnError:f}=e;try{if(typeof n!=`function`)throw new a(`invalid callback`);if(typeof t!=`function`)throw new a(`invalid factory`);if(r&&typeof r.on!=`function`&&typeof r.addEventListener!=`function`)throw new a(`signal must be an EventEmitter or EventTarget`);if(i===`CONNECT`)throw new a(`invalid method`);if(l&&typeof l!=`function`)throw new a(`invalid onInfo callback`);super(`UNDICI_STREAM`)}catch(e){throw s.isStream(c)&&s.destroy(c.on(`error`,s.nop),e),e}this.responseHeaders=d||null,this.opaque=o||null,this.factory=t,this.callback=n,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=c,this.onInfo=l||null,this.throwOnError=f||!1,s.isStream(c)&&c.on(`error`,e=>{this.onError(e)}),u(this,r)}onConnect(e,t){if(this.reason){e(this.reason);return}n(this.callback),this.abort=e,this.context=t}onHeaders(e,t,n,a){let{factory:l,opaque:u,context:d,callback:f,responseHeaders:p}=this,m=p===`raw`?s.parseRawHeaders(t):s.parseHeaders(t);if(e<200){this.onInfo&&this.onInfo({statusCode:e,headers:m});return}this.factory=null;let h;if(this.throwOnError&&e>=400){let n=(p===`raw`?s.parseHeaders(t):m)[`content-type`];h=new i,this.callback=null,this.runInAsyncScope(c,null,{callback:f,body:h,contentType:n,statusCode:e,statusMessage:a,headers:m})}else{if(l===null)return;if(h=this.runInAsyncScope(l,null,{statusCode:e,headers:m,opaque:u,context:d}),!h||typeof h.write!=`function`||typeof h.end!=`function`||typeof h.on!=`function`)throw new o(`expected Writable`);r(h,{readable:!1},e=>{let{callback:t,res:n,opaque:r,trailers:i,abort:a}=this;this.res=null,(e||!n.readable)&&s.destroy(n,e),this.callback=null,this.runInAsyncScope(t,null,e||null,{opaque:r,trailers:i}),e&&a()})}return h.on(`drain`,n),this.res=h,(h.writableNeedDrain===void 0?h._writableState?.needDrain:h.writableNeedDrain)!==!0}onData(e){let{res:t}=this;return!t||t.write(e)}onComplete(e){let{res:t}=this;d(this),t&&(this.trailers=s.parseHeaders(e),t.end())}onError(e){let{res:t,callback:n,opaque:r,body:i}=this;d(this),this.factory=null,t?(this.res=null,s.destroy(t,e)):n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,e,{opaque:r})})),i&&(this.body=null,s.destroy(i,e))}};function p(e,t,n){if(n===void 0)return new Promise((n,r)=>{p.call(this,e,t,(e,t)=>e?r(e):n(t))});try{this.dispatch(e,new f(e,t,n))}catch(t){if(typeof n!=`function`)throw t;let r=e?.opaque;queueMicrotask(()=>n(t,{opaque:r}))}}t.exports=p})),Et=J(((e,t)=>{let{Readable:n,Duplex:r,PassThrough:i}=Y(`node:stream`),{InvalidArgumentError:a,InvalidReturnValueError:o,RequestAbortedError:s}=Ie(),c=ze(),{AsyncResource:l}=Y(`node:async_hooks`),{addSignal:u,removeSignal:d}=wt(),f=Y(`node:assert`),p=Symbol(`resume`);var m=class extends n{constructor(){super({autoDestroy:!0}),this[p]=null}_read(){let{[p]:e}=this;e&&(this[p]=null,e())}_destroy(e,t){this._read(),t(e)}},h=class extends n{constructor(e){super({autoDestroy:!0}),this[p]=e}_read(){this[p]()}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new s),t(e)}},g=class extends l{constructor(e,t){if(!e||typeof e!=`object`)throw new a(`invalid opts`);if(typeof t!=`function`)throw new a(`invalid handler`);let{signal:n,method:i,opaque:o,onInfo:l,responseHeaders:f}=e;if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new a(`signal must be an EventEmitter or EventTarget`);if(i===`CONNECT`)throw new a(`invalid method`);if(l&&typeof l!=`function`)throw new a(`invalid onInfo callback`);super(`UNDICI_PIPELINE`),this.opaque=o||null,this.responseHeaders=f||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=l||null,this.req=new m().on(`error`,c.nop),this.ret=new r({readableObjectMode:e.objectMode,autoDestroy:!0,read:()=>{let{body:e}=this;e?.resume&&e.resume()},write:(e,t,n)=>{let{req:r}=this;r.push(e,t)||r._readableState.destroyed?n():r[p]=n},destroy:(e,t)=>{let{body:n,req:r,res:i,ret:a,abort:o}=this;!e&&!a._readableState.endEmitted&&(e=new s),o&&e&&o(),c.destroy(n,e),c.destroy(r,e),c.destroy(i,e),d(this),t(e)}}).on(`prefinish`,()=>{let{req:e}=this;e.push(null)}),this.res=null,u(this,n)}onConnect(e,t){let{ret:n,res:r}=this;if(this.reason){e(this.reason);return}f(!r,`pipeline cannot be retried`),f(!n.destroyed),this.abort=e,this.context=t}onHeaders(e,t,n){let{opaque:r,handler:i,context:a}=this;if(e<200){if(this.onInfo){let n=this.responseHeaders===`raw`?c.parseRawHeaders(t):c.parseHeaders(t);this.onInfo({statusCode:e,headers:n})}return}this.res=new h(n);let l;try{this.handler=null;let n=this.responseHeaders===`raw`?c.parseRawHeaders(t):c.parseHeaders(t);l=this.runInAsyncScope(i,null,{statusCode:e,headers:n,opaque:r,body:this.res,context:a})}catch(e){throw this.res.on(`error`,c.nop),e}if(!l||typeof l.on!=`function`)throw new o(`expected Readable`);l.on(`data`,e=>{let{ret:t,body:n}=this;!t.push(e)&&n.pause&&n.pause()}).on(`error`,e=>{let{ret:t}=this;c.destroy(t,e)}).on(`end`,()=>{let{ret:e}=this;e.push(null)}).on(`close`,()=>{let{ret:e}=this;e._readableState.ended||c.destroy(e,new s)}),this.body=l}onData(e){let{res:t}=this;return t.push(e)}onComplete(e){let{res:t}=this;t.push(null)}onError(e){let{ret:t}=this;this.handler=null,c.destroy(t,e)}};function v(e,t){try{let n=new g(e,t);return this.dispatch({...e,body:n.req},n),n.ret}catch(e){return new i().destroy(e)}}t.exports=v})),Dt=J(((e,t)=>{let{InvalidArgumentError:n,SocketError:r}=Ie(),{AsyncResource:i}=Y(`node:async_hooks`),a=ze(),{addSignal:o,removeSignal:s}=wt(),c=Y(`node:assert`);var l=class extends i{constructor(e,t){if(!e||typeof e!=`object`)throw new n(`invalid opts`);if(typeof t!=`function`)throw new n(`invalid callback`);let{signal:r,opaque:i,responseHeaders:a}=e;if(r&&typeof r.on!=`function`&&typeof r.addEventListener!=`function`)throw new n(`signal must be an EventEmitter or EventTarget`);super(`UNDICI_UPGRADE`),this.responseHeaders=a||null,this.opaque=i||null,this.callback=t,this.abort=null,this.context=null,o(this,r)}onConnect(e,t){if(this.reason){e(this.reason);return}c(this.callback),this.abort=e,this.context=null}onHeaders(){throw new r(`bad upgrade`,null)}onUpgrade(e,t,n){c(e===101);let{callback:r,opaque:i,context:o}=this;s(this),this.callback=null;let l=this.responseHeaders===`raw`?a.parseRawHeaders(t):a.parseHeaders(t);this.runInAsyncScope(r,null,null,{headers:l,socket:n,opaque:i,context:o})}onError(e){let{callback:t,opaque:n}=this;s(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,e,{opaque:n})}))}};function u(e,t){if(t===void 0)return new Promise((t,n)=>{u.call(this,e,(e,r)=>e?n(e):t(r))});try{let n=new l(e,t);this.dispatch({...e,method:e.method||`GET`,upgrade:e.protocol||`Websocket`},n)}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=u})),Ot=J(((e,t)=>{let n=Y(`node:assert`),{AsyncResource:r}=Y(`node:async_hooks`),{InvalidArgumentError:i,SocketError:a}=Ie(),o=ze(),{addSignal:s,removeSignal:c}=wt();var l=class extends r{constructor(e,t){if(!e||typeof e!=`object`)throw new i(`invalid opts`);if(typeof t!=`function`)throw new i(`invalid callback`);let{signal:n,opaque:r,responseHeaders:a}=e;if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new i(`signal must be an EventEmitter or EventTarget`);super(`UNDICI_CONNECT`),this.opaque=r||null,this.responseHeaders=a||null,this.callback=t,this.abort=null,s(this,n)}onConnect(e,t){if(this.reason){e(this.reason);return}n(this.callback),this.abort=e,this.context=t}onHeaders(){throw new a(`bad connect`,null)}onUpgrade(e,t,n){let{callback:r,opaque:i,context:a}=this;c(this),this.callback=null;let s=t;s!=null&&(s=this.responseHeaders===`raw`?o.parseRawHeaders(t):o.parseHeaders(t)),this.runInAsyncScope(r,null,null,{statusCode:e,headers:s,socket:n,opaque:i,context:a})}onError(e){let{callback:t,opaque:n}=this;c(this),t&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(t,null,e,{opaque:n})}))}};function u(e,t){if(t===void 0)return new Promise((t,n)=>{u.call(this,e,(e,r)=>e?n(e):t(r))});try{let n=new l(e,t);this.dispatch({...e,method:`CONNECT`},n)}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=u})),kt=J(((e,t)=>{t.exports.request=Ct(),t.exports.stream=Tt(),t.exports.pipeline=Et(),t.exports.upgrade=Dt(),t.exports.connect=Ot()})),At=J(((e,t)=>{let{UndiciError:n}=Ie(),r=Symbol.for(`undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED`);t.exports={MockNotMatchedError:class e extends n{constructor(t){super(t),Error.captureStackTrace(this,e),this.name=`MockNotMatchedError`,this.message=t||`The request does not match any registered mock dispatches`,this.code=`UND_MOCK_ERR_MOCK_NOT_MATCHED`}static[Symbol.hasInstance](e){return e&&e[r]===!0}[r]=!0}}})),jt=J(((e,t)=>{t.exports={kAgent:Symbol(`agent`),kOptions:Symbol(`options`),kFactory:Symbol(`factory`),kDispatches:Symbol(`dispatches`),kDispatchKey:Symbol(`dispatch key`),kDefaultHeaders:Symbol(`default headers`),kDefaultTrailers:Symbol(`default trailers`),kContentLength:Symbol(`content length`),kMockAgent:Symbol(`mock agent`),kMockAgentSet:Symbol(`mock agent set`),kMockAgentGet:Symbol(`mock agent get`),kMockDispatch:Symbol(`mock dispatch`),kClose:Symbol(`close`),kOriginalClose:Symbol(`original agent close`),kOrigin:Symbol(`origin`),kIsMockActive:Symbol(`is mock active`),kNetConnect:Symbol(`net connect`),kGetNetConnect:Symbol(`get net connect`),kConnected:Symbol(`connected`)}})),Mt=J(((e,t)=>{let{MockNotMatchedError:n}=At(),{kDispatches:r,kMockAgent:i,kOriginalDispatch:a,kOrigin:o,kGetNetConnect:s}=jt(),{buildURL:c}=ze(),{STATUS_CODES:l}=Y(`node:http`),{types:{isPromise:u}}=Y(`node:util`);function d(e,t){return typeof e==`string`?e===t:e instanceof RegExp?e.test(t):typeof e==`function`&&e(t)===!0}function f(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e.toLocaleLowerCase(),t]))}function p(e,t){if(Array.isArray(e)){for(let n=0;n!e).filter(({path:e})=>d(g(e),i));if(a.length===0)throw new n(`Mock dispatch not matched for path '${i}'`);if(a=a.filter(({method:e})=>d(e,t.method)),a.length===0)throw new n(`Mock dispatch not matched for method '${t.method}' on path '${i}'`);if(a=a.filter(({body:e})=>e===void 0||d(e,t.body)),a.length===0)throw new n(`Mock dispatch not matched for body '${t.body}' on path '${i}'`);if(a=a.filter(e=>h(e,t.headers)),a.length===0){let e=typeof t.headers==`object`?JSON.stringify(t.headers):t.headers;throw new n(`Mock dispatch not matched for headers '${e}' on path '${i}'`)}return a[0]}function x(e,t,n){let r={timesInvoked:0,times:1,persist:!1,consumed:!1},i=typeof n==`function`?{callback:n}:{...n},a={...r,...t,pending:!0,data:{error:null,...i}};return e.push(a),a}function S(e,t){let n=e.findIndex(e=>e.consumed?v(e,t):!1);n!==-1&&e.splice(n,1)}function C(e){let{path:t,method:n,body:r,headers:i,query:a}=e;return{path:t,method:n,body:r,headers:i,query:a}}function w(e){let t=Object.keys(e),n=[];for(let r=0;r=h,i.pending=p0?setTimeout(()=>{g(this[r])},d):g(this[r]);function g(r,i=o){let l=Array.isArray(e.headers)?m(e.headers):e.headers,d=typeof i==`function`?i({...e,headers:l}):i;if(u(d)){d.then(e=>g(r,e));return}let f=y(d),p=w(s),h=w(c);t.onConnect?.(e=>t.onError(e),null),t.onHeaders?.(a,p,v,T(a)),t.onData?.(Buffer.from(f)),t.onComplete?.(h),S(r,n)}function v(){}return!0}function O(){let e=this[i],t=this[o],r=this[a];return function(i,a){if(e.isMockActive)try{D.call(this,i,a)}catch(o){if(o instanceof n){let c=e[s]();if(c===!1)throw new n(`${o.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`);if(k(c,t))r.call(this,i,a);else throw new n(`${o.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}else throw o}else r.call(this,i,a)}}function k(e,t){let n=new URL(t);return e===!0||!!(Array.isArray(e)&&e.some(e=>d(e,n.host)))}function A(e){if(e){let{agent:t,...n}=e;return n}}t.exports={getResponseData:y,getMockDispatch:b,addMockDispatch:x,deleteMockDispatch:S,buildKey:C,generateKeyValues:w,matchValue:d,getResponse:E,getStatusText:T,mockDispatch:D,buildMockDispatch:O,checkNetConnect:k,buildMockOptions:A,getHeaderByName:p,buildHeadersFromArray:m}})),Nt=J(((e,t)=>{let{getResponseData:n,buildKey:r,addMockDispatch:i}=Mt(),{kDispatches:a,kDispatchKey:o,kDefaultHeaders:s,kDefaultTrailers:c,kContentLength:l,kMockDispatch:u}=jt(),{InvalidArgumentError:d}=Ie(),{buildURL:f}=ze();var p=class{constructor(e){this[u]=e}delay(e){if(typeof e!=`number`||!Number.isInteger(e)||e<=0)throw new d(`waitInMs must be a valid integer > 0`);return this[u].delay=e,this}persist(){return this[u].persist=!0,this}times(e){if(typeof e!=`number`||!Number.isInteger(e)||e<=0)throw new d(`repeatTimes must be a valid integer > 0`);return this[u].times=e,this}},m=class{constructor(e,t){if(typeof e!=`object`)throw new d(`opts must be an object`);if(e.path===void 0)throw new d(`opts.path must be defined`);if(e.method===void 0&&(e.method=`GET`),typeof e.path==`string`){if(e.query)e.path=f(e.path,e.query);else{let t=new URL(e.path,`data://`);e.path=t.pathname+t.search}}typeof e.method==`string`&&(e.method=e.method.toUpperCase()),this[o]=r(e),this[a]=t,this[s]={},this[c]={},this[l]=!1}createMockScopeDispatchData({statusCode:e,data:t,responseOptions:r}){let i=n(t),a=this[l]?{"content-length":i.length}:{};return{statusCode:e,data:t,headers:{...this[s],...a,...r.headers},trailers:{...this[c],...r.trailers}}}validateReplyParameters(e){if(e.statusCode===void 0)throw new d(`statusCode must be defined`);if(typeof e.responseOptions!=`object`||e.responseOptions===null)throw new d(`responseOptions must be an object`)}reply(e){if(typeof e==`function`)return new p(i(this[a],this[o],t=>{let n=e(t);if(typeof n!=`object`||!n)throw new d(`reply options callback must return an object`);let r={data:``,responseOptions:{},...n};return this.validateReplyParameters(r),{...this.createMockScopeDispatchData(r)}}));let t={statusCode:e,data:arguments[1]===void 0?``:arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(t);let n=this.createMockScopeDispatchData(t);return new p(i(this[a],this[o],n))}replyWithError(e){if(e===void 0)throw new d(`error must be defined`);return new p(i(this[a],this[o],{error:e}))}defaultReplyHeaders(e){if(e===void 0)throw new d(`headers must be defined`);return this[s]=e,this}defaultReplyTrailers(e){if(e===void 0)throw new d(`trailers must be defined`);return this[c]=e,this}replyContentLength(){return this[l]=!0,this}};t.exports.MockInterceptor=m,t.exports.MockScope=p})),Pt=J(((e,t)=>{let{promisify:n}=Y(`node:util`),r=ut(),{buildMockDispatch:i}=Mt(),{kDispatches:a,kMockAgent:o,kClose:s,kOriginalClose:c,kOrigin:l,kOriginalDispatch:u,kConnected:d}=jt(),{MockInterceptor:f}=Nt(),p=Fe(),{InvalidArgumentError:m}=Ie();t.exports=class extends r{constructor(e,t){if(super(e,t),!t||!t.agent||typeof t.agent.dispatch!=`function`)throw new m(`Argument opts.agent must implement Agent`);this[o]=t.agent,this[l]=e,this[a]=[],this[d]=1,this[u]=this.dispatch,this[c]=this.close.bind(this),this.dispatch=i.call(this),this.close=this[s]}get[p.kConnected](){return this[d]}intercept(e){return new f(e,this[a])}async[s](){await n(this[c])(),this[d]=0,this[o][p.kClients].delete(this[l])}}})),Ft=J(((e,t)=>{let{promisify:n}=Y(`node:util`),r=mt(),{buildMockDispatch:i}=Mt(),{kDispatches:a,kMockAgent:o,kClose:s,kOriginalClose:c,kOrigin:l,kOriginalDispatch:u,kConnected:d}=jt(),{MockInterceptor:f}=Nt(),p=Fe(),{InvalidArgumentError:m}=Ie();t.exports=class extends r{constructor(e,t){if(super(e,t),!t||!t.agent||typeof t.agent.dispatch!=`function`)throw new m(`Argument opts.agent must implement Agent`);this[o]=t.agent,this[l]=e,this[a]=[],this[d]=1,this[u]=this.dispatch,this[c]=this.close.bind(this),this.dispatch=i.call(this),this.close=this[s]}get[p.kConnected](){return this[d]}intercept(e){return new f(e,this[a])}async[s](){await n(this[c])(),this[d]=0,this[o][p.kClients].delete(this[l])}}})),It=J(((e,t)=>{let n={pronoun:`it`,is:`is`,was:`was`,this:`this`},r={pronoun:`they`,is:`are`,was:`were`,this:`these`};t.exports=class{constructor(e,t){this.singular=e,this.plural=t}pluralize(e){let t=e===1,i=t?n:r,a=t?this.singular:this.plural;return{...i,count:e,noun:a}}}})),Lt=J(((e,t)=>{let{Transform:n}=Y(`node:stream`),{Console:r}=Y(`node:console`),i=process.versions.icu?`✅`:`Y `,a=process.versions.icu?`❌`:`N `;t.exports=class{constructor({disableColors:e}={}){this.transform=new n({transform(e,t,n){n(null,e)}}),this.logger=new r({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){let t=e.map(({method:e,path:t,data:{statusCode:n},persist:r,times:o,timesInvoked:s,origin:c})=>({Method:e,Origin:c,Path:t,"Status code":n,Persistent:r?i:a,Invocations:s,Remaining:r?1/0:o-s}));return this.logger.table(t),this.transform.read().toString()}}})),Rt=J(((e,t)=>{let{kClients:n}=Fe(),r=gt(),{kAgent:i,kMockAgentSet:a,kMockAgentGet:o,kDispatches:s,kIsMockActive:c,kNetConnect:l,kGetNetConnect:u,kOptions:d,kFactory:f}=jt(),p=Pt(),m=Ft(),{matchValue:h,buildMockOptions:g}=Mt(),{InvalidArgumentError:v,UndiciError:y}=Ie(),b=He(),x=It(),S=Lt();t.exports=class extends b{constructor(e){if(super(e),this[l]=!0,this[c]=!0,e?.agent&&typeof e.agent.dispatch!=`function`)throw new v(`Argument opts.agent must implement Agent`);let t=e?.agent?e.agent:new r(e);this[i]=t,this[n]=t[n],this[d]=g(e)}get(e){let t=this[o](e);return t||(t=this[f](e),this[a](e,t)),t}dispatch(e,t){return this.get(e.origin),this[i].dispatch(e,t)}async close(){await this[i].close(),this[n].clear()}deactivate(){this[c]=!1}activate(){this[c]=!0}enableNetConnect(e){if(typeof e==`string`||typeof e==`function`||e instanceof RegExp)Array.isArray(this[l])?this[l].push(e):this[l]=[e];else if(e===void 0)this[l]=!0;else throw new v(`Unsupported matcher. Must be one of String|Function|RegExp.`)}disableNetConnect(){this[l]=!1}get isMockActive(){return this[c]}[a](e,t){this[n].set(e,t)}[f](e){let t=Object.assign({agent:this},this[d]);return this[d]&&this[d].connections===1?new p(e,t):new m(e,t)}[o](e){let t=this[n].get(e);if(t)return t;if(typeof e!=`string`){let t=this[f](`http://localhost:9999`);return this[a](e,t),t}for(let[t,r]of Array.from(this[n]))if(r&&typeof t!=`string`&&h(t,e)){let t=this[f](e);return this[a](e,t),t[s]=r[s],t}}[u](){return this[l]}pendingInterceptors(){let e=this[n];return Array.from(e.entries()).flatMap(([e,t])=>t[s].map(t=>({...t,origin:e}))).filter(({pending:e})=>e)}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new S}={}){let t=this.pendingInterceptors();if(t.length===0)return;let n=new x(`interceptor`,`interceptors`).pluralize(t.length);throw new y(` +${n.count} ${n.noun} ${n.is} pending: + +${e.format(t)} +`.trim())}}})),zt=J(((e,t)=>{let n=Symbol.for(`undici.globalDispatcher.1`),{InvalidArgumentError:r}=Ie(),i=gt();o()===void 0&&a(new i);function a(e){if(!e||typeof e.dispatch!=`function`)throw new r(`Argument agent must implement Agent`);Object.defineProperty(globalThis,n,{value:e,writable:!0,enumerable:!1,configurable:!1})}function o(){return globalThis[n]}t.exports={setGlobalDispatcher:a,getGlobalDispatcher:o}})),Bt=J(((e,t)=>{t.exports=class{#e;constructor(e){if(typeof e!=`object`||!e)throw TypeError(`handler must be an object`);this.#e=e}onConnect(...e){return this.#e.onConnect?.(...e)}onError(...e){return this.#e.onError?.(...e)}onUpgrade(...e){return this.#e.onUpgrade?.(...e)}onResponseStarted(...e){return this.#e.onResponseStarted?.(...e)}onHeaders(...e){return this.#e.onHeaders?.(...e)}onData(...e){return this.#e.onData?.(...e)}onComplete(...e){return this.#e.onComplete?.(...e)}onBodySent(...e){return this.#e.onBodySent?.(...e)}}})),Vt=J(((e,t)=>{let n=ct();t.exports=e=>{let t=e?.maxRedirections;return e=>function(r,i){let{maxRedirections:a=t,...o}=r;return a?e(o,new n(e,a,r,i)):e(r,i)}}})),Ht=J(((e,t)=>{let n=yt();t.exports=e=>t=>function(r,i){return t(r,new n({...r,retryOptions:{...e,...r.retryOptions}},{handler:i,dispatch:t}))}})),Ut=J(((e,t)=>{let n=ze(),{InvalidArgumentError:r,RequestAbortedError:i}=Ie(),a=Bt();var o=class extends a{#e=1048576;#t=null;#n=!1;#r=!1;#i=0;#a=null;#o=null;constructor({maxSize:e},t){if(super(t),e!=null&&(!Number.isFinite(e)||e<1))throw new r(`maxSize must be a number greater than 0`);this.#e=e??this.#e,this.#o=t}onConnect(e){this.#t=e,this.#o.onConnect(this.#s.bind(this))}#s(e){this.#r=!0,this.#a=e}onHeaders(e,t,r,a){let o=n.parseHeaders(t)[`content-length`];if(o!=null&&o>this.#e)throw new i(`Response size (${o}) larger than maxSize (${this.#e})`);return this.#r?!0:this.#o.onHeaders(e,t,r,a)}onError(e){this.#n||(e=this.#a??e,this.#o.onError(e))}onData(e){return this.#i+=e.length,this.#i>=this.#e&&(this.#n=!0,this.#r?this.#o.onError(this.#a):this.#o.onComplete([])),!0}onComplete(e){if(!this.#n){if(this.#r){this.#o.onError(this.reason);return}this.#o.onComplete(e)}}};function s({maxSize:e}={maxSize:1048576}){return t=>function(n,r){let{dumpMaxSize:i=e}=n;return t(n,new o({maxSize:i},r))}}t.exports=s})),Wt=J(((e,t)=>{let{isIP:n}=Y(`node:net`),{lookup:r}=Y(`node:dns`),i=Bt(),{InvalidArgumentError:a,InformationalError:o}=Ie(),s=2**31-1;var c=class{#e=0;#t=0;#n=new Map;dualStack=!0;affinity=null;lookup=null;pick=null;constructor(e){this.#e=e.maxTTL,this.#t=e.maxItems,this.dualStack=e.dualStack,this.affinity=e.affinity,this.lookup=e.lookup??this.#r,this.pick=e.pick??this.#i}get full(){return this.#n.size===this.#t}runLookup(e,t,n){let r=this.#n.get(e.hostname);if(r==null&&this.full){n(null,e.origin);return}let i={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...t.dns,maxTTL:this.#e,maxItems:this.#t};if(r==null)this.lookup(e,i,(t,r)=>{if(t||r==null||r.length===0){n(t??new o(`No DNS entries found`));return}this.setRecords(e,r);let a=this.#n.get(e.hostname),s=this.pick(e,a,i.affinity),c;c=typeof s.port==`number`?`:${s.port}`:e.port===``?``:`:${e.port}`,n(null,`${e.protocol}//${s.family===6?`[${s.address}]`:s.address}${c}`)});else{let a=this.pick(e,r,i.affinity);if(a==null){this.#n.delete(e.hostname),this.runLookup(e,t,n);return}let o;o=typeof a.port==`number`?`:${a.port}`:e.port===``?``:`:${e.port}`,n(null,`${e.protocol}//${a.family===6?`[${a.address}]`:a.address}${o}`)}}#r(e,t,n){r(e.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:`ipv4first`},(e,t)=>{if(e)return n(e);let r=new Map;for(let e of t)r.set(`${e.address}:${e.family}`,e);n(null,r.values())})}#i(e,t,n){let r=null,{records:i,offset:a}=t,o;if(this.dualStack?(n??(a==null||a===s?(t.offset=0,n=4):(t.offset++,n=(t.offset&1)==1?6:4)),o=i[n]!=null&&i[n].ips.length>0?i[n]:i[n===4?6:4]):o=i[n],o==null||o.ips.length===0)return r;o.offset==null||o.offset===s?o.offset=0:o.offset++;let c=o.offset%o.ips.length;return r=o.ips[c]??null,r==null?r:Date.now()-r.timestamp>r.ttl?(o.ips.splice(c,1),this.pick(e,t,n)):r}setRecords(e,t){let n=Date.now(),r={records:{4:null,6:null}};for(let e of t){e.timestamp=n,e.ttl=typeof e.ttl==`number`?Math.min(e.ttl,this.#e):this.#e;let t=r.records[e.family]??{ips:[]};t.ips.push(e),r.records[e.family]=t}this.#n.set(e.hostname,r)}getHandler(e,t){return new l(this,e,t)}},l=class extends i{#e=null;#t=null;#n=null;#r=null;#i=null;constructor(e,{origin:t,handler:n,dispatch:r},i){super(n),this.#i=t,this.#r=n,this.#t={...i},this.#e=e,this.#n=r}onError(e){switch(e.code){case`ETIMEDOUT`:case`ECONNREFUSED`:if(this.#e.dualStack){this.#e.runLookup(this.#i,this.#t,(e,t)=>{if(e)return this.#r.onError(e);let n={...this.#t,origin:t};this.#n(n,this)});return}this.#r.onError(e);return;case`ENOTFOUND`:this.#e.deleteRecord(this.#i);default:this.#r.onError(e)}}};t.exports=e=>{if(e?.maxTTL!=null&&(typeof e?.maxTTL!=`number`||e?.maxTTL<0))throw new a(`Invalid maxTTL. Must be a positive number`);if(e?.maxItems!=null&&(typeof e?.maxItems!=`number`||e?.maxItems<1))throw new a(`Invalid maxItems. Must be a positive number and greater than zero`);if(e?.affinity!=null&&e?.affinity!==4&&e?.affinity!==6)throw new a(`Invalid affinity. Must be either 4 or 6`);if(e?.dualStack!=null&&typeof e?.dualStack!=`boolean`)throw new a(`Invalid dualStack. Must be a boolean`);if(e?.lookup!=null&&typeof e?.lookup!=`function`)throw new a(`Invalid lookup. Must be a function`);if(e?.pick!=null&&typeof e?.pick!=`function`)throw new a(`Invalid pick. Must be a function`);let t=e?.dualStack??!0,r;r=t?e?.affinity??null:e?.affinity??4;let i=new c({maxTTL:e?.maxTTL??1e4,lookup:e?.lookup??null,pick:e?.pick??null,dualStack:t,affinity:r,maxItems:e?.maxItems??1/0});return e=>function(t,r){let a=t.origin.constructor===URL?t.origin:new URL(t.origin);return n(a.hostname)===0?(i.runLookup(a,t,(n,o)=>{if(n)return r.onError(n);let s=null;s={...t,servername:a.hostname,origin:o,headers:{host:a.hostname,...t.headers}},e(s,i.getHandler({origin:a,dispatch:e,handler:r},t))}),!0):e(t,r)}}})),Gt=J(((e,t)=>{let{kConstruct:n}=Fe(),{kEnumerableProperty:r}=ze(),{iteratorMixin:i,isValidHeaderName:a,isValidHeaderValue:o}=et(),{webidl:s}=$e(),c=Y(`node:assert`),l=Y(`node:util`),u=Symbol(`headers map`),d=Symbol(`headers map sorted`);function f(e){return e===10||e===13||e===9||e===32}function p(e){let t=0,n=e.length;for(;n>t&&f(e.charCodeAt(n-1));)--n;for(;n>t&&f(e.charCodeAt(t));)++t;return t===0&&n===e.length?e:e.substring(t,n)}function m(e,t){if(Array.isArray(t))for(let n=0;n>`,`record`]})}function h(e,t,n){if(n=p(n),!a(t))throw s.errors.invalidArgument({prefix:`Headers.append`,value:t,type:`header name`});if(!o(n))throw s.errors.invalidArgument({prefix:`Headers.append`,value:n,type:`header value`});if(b(e)===`immutable`)throw TypeError(`immutable`);return S(e).append(t,n,!1)}function g(e,t){return e[0]>1),t[s][0]<=l[0]?o=s+1:a=s;if(r!==s){for(i=r;i>o;)t[i]=t[--i];t[o]=l}}if(!n.next().done)throw TypeError(`Unreachable`);return t}{let e=0;for(let{0:n,1:{value:r}}of this[u])t[e++]=[n,r],c(r!==null);return t.sort(g)}}},y=class e{#e;#t;constructor(e=void 0){s.util.markAsUncloneable(this),e!==n&&(this.#t=new v,this.#e=`none`,e!==void 0&&(e=s.converters.HeadersInit(e,`Headers contructor`,`init`),m(this,e)))}append(t,n){s.brandCheck(this,e),s.argumentLengthCheck(arguments,2,`Headers.append`);let r=`Headers.append`;return t=s.converters.ByteString(t,r,`name`),n=s.converters.ByteString(n,r,`value`),h(this,t,n)}delete(t){if(s.brandCheck(this,e),s.argumentLengthCheck(arguments,1,`Headers.delete`),t=s.converters.ByteString(t,`Headers.delete`,`name`),!a(t))throw s.errors.invalidArgument({prefix:`Headers.delete`,value:t,type:`header name`});if(this.#e===`immutable`)throw TypeError(`immutable`);this.#t.contains(t,!1)&&this.#t.delete(t,!1)}get(t){s.brandCheck(this,e),s.argumentLengthCheck(arguments,1,`Headers.get`);let n=`Headers.get`;if(t=s.converters.ByteString(t,n,`name`),!a(t))throw s.errors.invalidArgument({prefix:n,value:t,type:`header name`});return this.#t.get(t,!1)}has(t){s.brandCheck(this,e),s.argumentLengthCheck(arguments,1,`Headers.has`);let n=`Headers.has`;if(t=s.converters.ByteString(t,n,`name`),!a(t))throw s.errors.invalidArgument({prefix:n,value:t,type:`header name`});return this.#t.contains(t,!1)}set(t,n){s.brandCheck(this,e),s.argumentLengthCheck(arguments,2,`Headers.set`);let r=`Headers.set`;if(t=s.converters.ByteString(t,r,`name`),n=s.converters.ByteString(n,r,`value`),n=p(n),!a(t))throw s.errors.invalidArgument({prefix:r,value:t,type:`header name`});if(!o(n))throw s.errors.invalidArgument({prefix:r,value:n,type:`header value`});if(this.#e===`immutable`)throw TypeError(`immutable`);this.#t.set(t,n,!1)}getSetCookie(){s.brandCheck(this,e);let t=this.#t.cookies;return t?[...t]:[]}get[d](){if(this.#t[d])return this.#t[d];let e=[],t=this.#t.toSortedArray(),n=this.#t.cookies;if(n===null||n.length===1)return this.#t[d]=t;for(let r=0;r>`](e,t,n,r.bind(e)):s.converters[`record`](e,t,n)}throw s.errors.conversionFailed({prefix:`Headers constructor`,argument:`Argument 1`,types:[`sequence>`,`record`]})},t.exports={fill:m,compareHeaderName:g,Headers:y,HeadersList:v,getHeadersGuard:b,setHeadersGuard:x,setHeadersList:C,getHeadersList:S}})),Kt=J(((e,t)=>{let{Headers:n,HeadersList:r,fill:i,getHeadersGuard:a,setHeadersGuard:o,setHeadersList:s}=Gt(),{extractBody:c,cloneBody:l,mixinBody:u,hasFinalizationRegistry:d,streamRegistry:f,bodyUnusable:p}=at(),m=ze(),h=Y(`node:util`),{kEnumerableProperty:g}=m,{isValidReasonPhrase:v,isCancelled:y,isAborted:b,isBlobLike:x,serializeJavascriptValueToJSONString:S,isErrorLike:C,isomorphicEncode:w,environmentSettingsObject:T}=et(),{redirectStatusSet:E,nullBodyStatus:D}=Xe(),{kState:O,kHeaders:k}=tt(),{webidl:A}=$e(),{FormData:j}=rt(),{URLSerializer:M}=Qe(),{kConstruct:N}=Fe(),P=Y(`node:assert`),{types:F}=Y(`node:util`),I=new TextEncoder(`utf-8`);var L=class e{static error(){return G(ee(),`immutable`)}static json(e,t={}){A.argumentLengthCheck(arguments,1,`Response.json`),t!==null&&(t=A.converters.ResponseInit(t));let n=I.encode(S(e)),r=c(n),i=G(z({}),`response`);return W(i,t,{body:r[0],type:`application/json`}),i}static redirect(e,t=302){A.argumentLengthCheck(arguments,1,`Response.redirect`),e=A.converters.USVString(e),t=A.converters[`unsigned short`](t);let n;try{n=new URL(e,T.settingsObject.baseUrl)}catch(t){throw TypeError(`Failed to parse URL from ${e}`,{cause:t})}if(!E.has(t))throw RangeError(`Invalid status code ${t}`);let r=G(z({}),`immutable`);r[O].status=t;let i=w(M(n));return r[O].headersList.append(`location`,i,!0),r}constructor(e=null,t={}){if(A.util.markAsUncloneable(this),e===N)return;e!==null&&(e=A.converters.BodyInit(e)),t=A.converters.ResponseInit(t),this[O]=z({}),this[k]=new n(N),o(this[k],`response`),s(this[k],this[O].headersList);let r=null;if(e!=null){let[t,n]=c(e);r={body:t,type:n}}W(this,t,r)}get type(){return A.brandCheck(this,e),this[O].type}get url(){A.brandCheck(this,e);let t=this[O].urlList,n=t[t.length-1]??null;return n===null?``:M(n,!0)}get redirected(){return A.brandCheck(this,e),this[O].urlList.length>1}get status(){return A.brandCheck(this,e),this[O].status}get ok(){return A.brandCheck(this,e),this[O].status>=200&&this[O].status<=299}get statusText(){return A.brandCheck(this,e),this[O].statusText}get headers(){return A.brandCheck(this,e),this[k]}get body(){return A.brandCheck(this,e),this[O].body?this[O].body.stream:null}get bodyUsed(){return A.brandCheck(this,e),!!this[O].body&&m.isDisturbed(this[O].body.stream)}clone(){if(A.brandCheck(this,e),p(this))throw A.errors.exception({header:`Response.clone`,message:`Body has already been consumed.`});let t=R(this[O]);return d&&this[O].body?.stream&&f.register(this,new WeakRef(this[O].body.stream)),G(t,a(this[k]))}[h.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let n={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${h.formatWithOptions(t,n)}`}};u(L),Object.defineProperties(L.prototype,{type:g,url:g,status:g,ok:g,redirected:g,statusText:g,headers:g,clone:g,body:g,bodyUsed:g,[Symbol.toStringTag]:{value:`Response`,configurable:!0}}),Object.defineProperties(L,{json:g,redirect:g,error:g});function R(e){if(e.internalResponse)return H(R(e.internalResponse),e.type);let t=z({...e,body:null});return e.body!=null&&(t.body=l(t,e.body)),t}function z(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:`default`,status:200,timingInfo:null,cacheState:``,statusText:``,...e,headersList:e?.headersList?new r(e?.headersList):new r,urlList:e?.urlList?[...e.urlList]:[]}}function ee(e){return z({type:`error`,status:0,error:C(e)?e:Error(e&&String(e)),aborted:e&&e.name===`AbortError`})}function B(e){return e.type===`error`&&e.status===0}function V(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(e,n){return n in t?t[n]:e[n]},set(e,n,r){return P(!(n in t)),e[n]=r,!0}})}function H(e,t){if(t===`basic`)return V(e,{type:`basic`,headersList:e.headersList});if(t===`cors`)return V(e,{type:`cors`,headersList:e.headersList});if(t===`opaque`)return V(e,{type:`opaque`,urlList:Object.freeze([]),status:0,statusText:``,body:null});if(t===`opaqueredirect`)return V(e,{type:`opaqueredirect`,status:0,statusText:``,headersList:[],body:null});P(!1)}function U(e,t=null){return P(y(e)),b(e)?ee(Object.assign(new DOMException(`The operation was aborted.`,`AbortError`),{cause:t})):ee(Object.assign(new DOMException(`Request was cancelled.`),{cause:t}))}function W(e,t,n){if(t.status!==null&&(t.status<200||t.status>599))throw RangeError(`init["status"] must be in the range of 200 to 599, inclusive.`);if(`statusText`in t&&t.statusText!=null&&!v(String(t.statusText)))throw TypeError(`Invalid statusText`);if(`status`in t&&t.status!=null&&(e[O].status=t.status),`statusText`in t&&t.statusText!=null&&(e[O].statusText=t.statusText),`headers`in t&&t.headers!=null&&i(e[k],t.headers),n){if(D.includes(e.status))throw A.errors.exception({header:`Response constructor`,message:`Invalid response status code ${e.status}`});e[O].body=n.body,n.type!=null&&!e[O].headersList.contains(`content-type`,!0)&&e[O].headersList.append(`content-type`,n.type,!0)}}function G(e,t){let r=new L(N);return r[O]=e,r[k]=new n(N),s(r[k],e.headersList),o(r[k],t),d&&e.body?.stream&&f.register(r,new WeakRef(e.body.stream)),r}A.converters.ReadableStream=A.interfaceConverter(ReadableStream),A.converters.FormData=A.interfaceConverter(j),A.converters.URLSearchParams=A.interfaceConverter(URLSearchParams),A.converters.XMLHttpRequestBodyInit=function(e,t,n){return typeof e==`string`?A.converters.USVString(e,t,n):x(e)?A.converters.Blob(e,t,n,{strict:!1}):ArrayBuffer.isView(e)||F.isArrayBuffer(e)?A.converters.BufferSource(e,t,n):m.isFormDataLike(e)?A.converters.FormData(e,t,n,{strict:!1}):e instanceof URLSearchParams?A.converters.URLSearchParams(e,t,n):A.converters.DOMString(e,t,n)},A.converters.BodyInit=function(e,t,n){return e instanceof ReadableStream?A.converters.ReadableStream(e,t,n):e?.[Symbol.asyncIterator]?e:A.converters.XMLHttpRequestBodyInit(e,t,n)},A.converters.ResponseInit=A.dictionaryConverter([{key:`status`,converter:A.converters[`unsigned short`],defaultValue:()=>200},{key:`statusText`,converter:A.converters.ByteString,defaultValue:()=>``},{key:`headers`,converter:A.converters.HeadersInit}]),t.exports={isNetworkError:B,makeNetworkError:ee,makeResponse:z,makeAppropriateNetworkError:U,filterResponse:H,Response:L,cloneResponse:R,fromInnerResponse:G}})),qt=J(((e,t)=>{let{kConnected:n,kSize:r}=Fe();var i=class{constructor(e){this.value=e}deref(){return this.value[n]===0&&this.value[r]===0?void 0:this.value}},a=class{constructor(e){this.finalizer=e}register(e,t){e.on&&e.on(`disconnect`,()=>{e[n]===0&&e[r]===0&&this.finalizer(t)})}unregister(e){}};t.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith(`v18`)?(process._rawDebug(`Using compatibility WeakRef and FinalizationRegistry`),{WeakRef:i,FinalizationRegistry:a}):{WeakRef,FinalizationRegistry}}})),Jt=J(((e,t)=>{let{extractBody:n,mixinBody:r,cloneBody:i,bodyUnusable:a}=at(),{Headers:o,fill:s,HeadersList:c,setHeadersGuard:l,getHeadersGuard:u,setHeadersList:d,getHeadersList:f}=Gt(),{FinalizationRegistry:p}=qt()(),m=ze(),h=Y(`node:util`),{isValidHTTPToken:g,sameOrigin:v,environmentSettingsObject:y}=et(),{forbiddenMethodsSet:b,corsSafeListedMethodsSet:x,referrerPolicy:S,requestRedirect:C,requestMode:w,requestCredentials:T,requestCache:E,requestDuplex:D}=Xe(),{kEnumerableProperty:O,normalizedMethodRecordsBase:k,normalizedMethodRecords:A}=m,{kHeaders:j,kSignal:M,kState:N,kDispatcher:P}=tt(),{webidl:F}=$e(),{URLSerializer:I}=Qe(),{kConstruct:L}=Fe(),R=Y(`node:assert`),{getMaxListeners:z,setMaxListeners:ee,getEventListeners:B,defaultMaxListeners:V}=Y(`node:events`),H=Symbol(`abortController`),U=new p(({signal:e,abort:t})=>{e.removeEventListener(`abort`,t)}),W=new WeakMap;function G(e){return t;function t(){let n=e.deref();if(n!==void 0){U.unregister(t),this.removeEventListener(`abort`,t),n.abort(this.reason);let e=W.get(n.signal);if(e!==void 0){if(e.size!==0){for(let t of e){let e=t.deref();e!==void 0&&e.abort(this.reason)}e.clear()}W.delete(n.signal)}}}}let K=!1;var q=class e{constructor(t,r={}){if(F.util.markAsUncloneable(this),t===L)return;let i=`Request constructor`;F.argumentLengthCheck(arguments,1,i),t=F.converters.RequestInfo(t,i,`input`),r=F.converters.RequestInit(r,i,`init`);let u=null,p=null,h=y.settingsObject.baseUrl,S=null;if(typeof t==`string`){this[P]=r.dispatcher;let e;try{e=new URL(t,h)}catch(e){throw TypeError(`Failed to parse URL from `+t,{cause:e})}if(e.username||e.password)throw TypeError(`Request cannot be constructed from a URL that includes credentials: `+t);u=te({urlList:[e]}),p=`cors`}else this[P]=r.dispatcher||t[P],R(t instanceof e),u=t[N],S=t[M];let C=y.settingsObject.origin,w=`client`;if(u.window?.constructor?.name===`EnvironmentSettingsObject`&&v(u.window,C)&&(w=u.window),r.window!=null)throw TypeError(`'window' option '${w}' must be null`);`window`in r&&(w=`no-window`),u=te({method:u.method,headersList:u.headersList,unsafeRequest:u.unsafeRequest,client:y.settingsObject,window:w,priority:u.priority,origin:u.origin,referrer:u.referrer,referrerPolicy:u.referrerPolicy,mode:u.mode,credentials:u.credentials,cache:u.cache,redirect:u.redirect,integrity:u.integrity,keepalive:u.keepalive,reloadNavigation:u.reloadNavigation,historyNavigation:u.historyNavigation,urlList:[...u.urlList]});let T=Object.keys(r).length!==0;if(T&&(u.mode===`navigate`&&(u.mode=`same-origin`),u.reloadNavigation=!1,u.historyNavigation=!1,u.origin=`client`,u.referrer=`client`,u.referrerPolicy=``,u.url=u.urlList[u.urlList.length-1],u.urlList=[u.url]),r.referrer!==void 0){let e=r.referrer;if(e===``)u.referrer=`no-referrer`;else{let t;try{t=new URL(e,h)}catch(t){throw TypeError(`Referrer "${e}" is not a valid URL.`,{cause:t})}t.protocol===`about:`&&t.hostname===`client`||C&&!v(t,y.settingsObject.baseUrl)?u.referrer=`client`:u.referrer=t}}r.referrerPolicy!==void 0&&(u.referrerPolicy=r.referrerPolicy);let E;if(E=r.mode===void 0?p:r.mode,E===`navigate`)throw F.errors.exception({header:`Request constructor`,message:`invalid request mode navigate.`});if(E!=null&&(u.mode=E),r.credentials!==void 0&&(u.credentials=r.credentials),r.cache!==void 0&&(u.cache=r.cache),u.cache===`only-if-cached`&&u.mode!==`same-origin`)throw TypeError(`'only-if-cached' can be set only with 'same-origin' mode`);if(r.redirect!==void 0&&(u.redirect=r.redirect),r.integrity!=null&&(u.integrity=String(r.integrity)),r.keepalive!==void 0&&(u.keepalive=!!r.keepalive),r.method!==void 0){let e=r.method,t=A[e];if(t!==void 0)u.method=t;else{if(!g(e))throw TypeError(`'${e}' is not a valid HTTP method.`);let t=e.toUpperCase();if(b.has(t))throw TypeError(`'${e}' HTTP method is unsupported.`);e=k[t]??e,u.method=e}!K&&u.method===`patch`&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:`UNDICI-FETCH-patch`}),K=!0)}r.signal!==void 0&&(S=r.signal),this[N]=u;let D=new AbortController;if(this[M]=D.signal,S!=null){if(!S||typeof S.aborted!=`boolean`||typeof S.addEventListener!=`function`)throw TypeError(`Failed to construct 'Request': member signal is not of type AbortSignal.`);if(S.aborted)D.abort(S.reason);else{this[H]=D;let e=G(new WeakRef(D));try{(typeof z==`function`&&z(S)===V||B(S,`abort`).length>=V)&&ee(1500,S)}catch{}m.addAbortListener(S,e),U.register(D,{signal:S,abort:e},e)}}if(this[j]=new o(L),d(this[j],u.headersList),l(this[j],`request`),E===`no-cors`){if(!x.has(u.method))throw TypeError(`'${u.method} is unsupported in no-cors mode.`);l(this[j],`request-no-cors`)}if(T){let e=f(this[j]),t=r.headers===void 0?new c(e):r.headers;if(e.clear(),t instanceof c){for(let{name:n,value:r}of t.rawValues())e.append(n,r,!1);e.cookies=t.cookies}else s(this[j],t)}let O=t instanceof e?t[N].body:null;if((r.body!=null||O!=null)&&(u.method===`GET`||u.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);let I=null;if(r.body!=null){let[e,t]=n(r.body,u.keepalive);I=e,t&&!f(this[j]).contains(`content-type`,!0)&&this[j].append(`content-type`,t)}let W=I??O;if(W!=null&&W.source==null){if(I!=null&&r.duplex==null)throw TypeError(`RequestInit: duplex option is required when sending a body.`);if(u.mode!==`same-origin`&&u.mode!==`cors`)throw TypeError(`If request is made from ReadableStream, mode should be "same-origin" or "cors"`);u.useCORSPreflightFlag=!0}let q=W;if(I==null&&O!=null){if(a(t))throw TypeError(`Cannot construct a Request with a Request object that has already been used.`);let e=new TransformStream;O.stream.pipeThrough(e),q={source:O.source,length:O.length,stream:e.readable}}this[N].body=q}get method(){return F.brandCheck(this,e),this[N].method}get url(){return F.brandCheck(this,e),I(this[N].url)}get headers(){return F.brandCheck(this,e),this[j]}get destination(){return F.brandCheck(this,e),this[N].destination}get referrer(){return F.brandCheck(this,e),this[N].referrer===`no-referrer`?``:this[N].referrer===`client`?`about:client`:this[N].referrer.toString()}get referrerPolicy(){return F.brandCheck(this,e),this[N].referrerPolicy}get mode(){return F.brandCheck(this,e),this[N].mode}get credentials(){return this[N].credentials}get cache(){return F.brandCheck(this,e),this[N].cache}get redirect(){return F.brandCheck(this,e),this[N].redirect}get integrity(){return F.brandCheck(this,e),this[N].integrity}get keepalive(){return F.brandCheck(this,e),this[N].keepalive}get isReloadNavigation(){return F.brandCheck(this,e),this[N].reloadNavigation}get isHistoryNavigation(){return F.brandCheck(this,e),this[N].historyNavigation}get signal(){return F.brandCheck(this,e),this[M]}get body(){return F.brandCheck(this,e),this[N].body?this[N].body.stream:null}get bodyUsed(){return F.brandCheck(this,e),!!this[N].body&&m.isDisturbed(this[N].body.stream)}get duplex(){return F.brandCheck(this,e),`half`}clone(){if(F.brandCheck(this,e),a(this))throw TypeError(`unusable`);let t=ne(this[N]),n=new AbortController;if(this.signal.aborted)n.abort(this.signal.reason);else{let e=W.get(this.signal);e===void 0&&(e=new Set,W.set(this.signal,e));let t=new WeakRef(n);e.add(t),m.addAbortListener(n.signal,G(t))}return re(t,n.signal,u(this[j]))}[h.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let n={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${h.formatWithOptions(t,n)}`}};r(q);function te(e){return{method:e.method??`GET`,localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??``,window:e.window??`client`,keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??`all`,initiator:e.initiator??``,destination:e.destination??``,priority:e.priority??null,origin:e.origin??`client`,policyContainer:e.policyContainer??`client`,referrer:e.referrer??`client`,referrerPolicy:e.referrerPolicy??``,mode:e.mode??`no-cors`,useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??`same-origin`,useCredentials:e.useCredentials??!1,cache:e.cache??`default`,redirect:e.redirect??`follow`,integrity:e.integrity??``,cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??``,parserMetadata:e.parserMetadata??``,reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??`basic`,preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new c(e.headersList):new c}}function ne(e){let t=te({...e,body:null});return e.body!=null&&(t.body=i(t,e.body)),t}function re(e,t,n){let r=new q(L);return r[N]=e,r[M]=t,r[j]=new o(L),d(r[j],e.headersList),l(r[j],n),r}Object.defineProperties(q.prototype,{method:O,url:O,headers:O,redirect:O,clone:O,signal:O,duplex:O,destination:O,body:O,bodyUsed:O,isHistoryNavigation:O,isReloadNavigation:O,keepalive:O,integrity:O,cache:O,credentials:O,attribute:O,referrerPolicy:O,referrer:O,mode:O,[Symbol.toStringTag]:{value:`Request`,configurable:!0}}),F.converters.Request=F.interfaceConverter(q),F.converters.RequestInfo=function(e,t,n){return typeof e==`string`?F.converters.USVString(e,t,n):e instanceof q?F.converters.Request(e,t,n):F.converters.USVString(e,t,n)},F.converters.AbortSignal=F.interfaceConverter(AbortSignal),F.converters.RequestInit=F.dictionaryConverter([{key:`method`,converter:F.converters.ByteString},{key:`headers`,converter:F.converters.HeadersInit},{key:`body`,converter:F.nullableConverter(F.converters.BodyInit)},{key:`referrer`,converter:F.converters.USVString},{key:`referrerPolicy`,converter:F.converters.DOMString,allowedValues:S},{key:`mode`,converter:F.converters.DOMString,allowedValues:w},{key:`credentials`,converter:F.converters.DOMString,allowedValues:T},{key:`cache`,converter:F.converters.DOMString,allowedValues:E},{key:`redirect`,converter:F.converters.DOMString,allowedValues:C},{key:`integrity`,converter:F.converters.DOMString},{key:`keepalive`,converter:F.converters.boolean},{key:`signal`,converter:F.nullableConverter(e=>F.converters.AbortSignal(e,`RequestInit`,`signal`,{strict:!1}))},{key:`window`,converter:F.converters.any},{key:`duplex`,converter:F.converters.DOMString,allowedValues:D},{key:`dispatcher`,converter:F.converters.any}]),t.exports={Request:q,makeRequest:te,fromInnerRequest:re,cloneRequest:ne}})),Yt=J(((e,t)=>{let{makeNetworkError:n,makeAppropriateNetworkError:r,filterResponse:i,makeResponse:a,fromInnerResponse:o}=Kt(),{HeadersList:s}=Gt(),{Request:c,cloneRequest:l}=Jt(),u=Y(`node:zlib`),{bytesMatch:d,makePolicyContainer:f,clonePolicyContainer:p,requestBadPort:m,TAOCheck:h,appendRequestOriginHeader:g,responseLocationURL:v,requestCurrentURL:y,setRequestReferrerPolicyOnRedirect:b,tryUpgradeRequestToAPotentiallyTrustworthyURL:x,createOpaqueTimingInfo:S,appendFetchMetadata:C,corsCheck:w,crossOriginResourcePolicyCheck:T,determineRequestsReferrer:E,coarsenedSharedCurrentTime:D,createDeferredPromise:O,isBlobLike:k,sameOrigin:A,isCancelled:j,isAborted:M,isErrorLike:N,fullyReadBody:P,readableStreamClose:F,isomorphicEncode:I,urlIsLocal:L,urlIsHttpHttpsScheme:R,urlHasHttpsScheme:z,clampAndCoarsenConnectionTimingInfo:ee,simpleRangeHeaderValue:B,buildContentRange:V,createInflate:H,extractMimeType:U}=et(),{kState:W,kDispatcher:G}=tt(),K=Y(`node:assert`),{safelyExtractBody:q,extractBody:te}=at(),{redirectStatusSet:ne,nullBodyStatus:re,safeMethodsSet:ie,requestBodyHeader:ae,subresourceSet:oe}=Xe(),se=Y(`node:events`),{Readable:ce,pipeline:le,finished:ue}=Y(`node:stream`),{addAbortListener:de,isErrored:fe,isReadable:pe,bufferToLowerCasedHeaderName:me}=ze(),{dataURLProcessor:he,serializeAMimeType:ge,minimizeSupportedMimeType:_e}=Qe(),{getGlobalDispatcher:J}=zt(),{webidl:ve}=$e(),{STATUS_CODES:ye}=Y(`node:http`),be=[`GET`,`HEAD`],xe=typeof __UNDICI_IS_NODE__<`u`||typeof esbuildDetection<`u`?`node`:`undici`,Se;var Ce=class extends se{constructor(e){super(),this.dispatcher=e,this.connection=null,this.dump=!1,this.state=`ongoing`}terminate(e){this.state===`ongoing`&&(this.state=`terminated`,this.connection?.destroy(e),this.emit(`terminated`,e))}abort(e){this.state===`ongoing`&&(this.state=`aborted`,e||=new DOMException(`The operation was aborted.`,`AbortError`),this.serializedAbortReason=e,this.connection?.destroy(e),this.emit(`terminated`,e))}};function we(e){Ee(e,`fetch`)}function Te(e,t=void 0){ve.argumentLengthCheck(arguments,1,`globalThis.fetch`);let n=O(),r;try{r=new c(e,t)}catch(e){return n.reject(e),n.promise}let i=r[W];if(r.signal.aborted)return Oe(n,i,null,r.signal.reason),n.promise;i.client.globalObject?.constructor?.name===`ServiceWorkerGlobalScope`&&(i.serviceWorkers=`none`);let a=null,s=!1,l=null;return de(r.signal,()=>{s=!0,K(l!=null),l.abort(r.signal.reason);let e=a?.deref();Oe(n,i,e,r.signal.reason)}),l=ke({request:i,processResponseEndOfBody:we,processResponse:e=>{if(!s){if(e.aborted){Oe(n,i,a,l.serializedAbortReason);return}if(e.type===`error`){n.reject(TypeError(`fetch failed`,{cause:e.error}));return}a=new WeakRef(o(e,`immutable`)),n.resolve(a.deref()),n=null}},dispatcher:r[G]}),n.promise}function Ee(e,t=`other`){if(e.type===`error`&&e.aborted||!e.urlList?.length)return;let n=e.urlList[0],r=e.timingInfo,i=e.cacheState;R(n)&&r!==null&&(e.timingAllowPassed||(r=S({startTime:r.startTime}),i=``),r.endTime=D(),e.timingInfo=r,De(r,n.href,t,globalThis,i))}let De=performance.markResourceTiming;function Oe(e,t,n,r){if(e&&e.reject(r),t.body!=null&&pe(t.body?.stream)&&t.body.stream.cancel(r).catch(e=>{if(e.code!==`ERR_INVALID_STATE`)throw e}),n==null)return;let i=n[W];i.body!=null&&pe(i.body?.stream)&&i.body.stream.cancel(r).catch(e=>{if(e.code!==`ERR_INVALID_STATE`)throw e})}function ke({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:n,processResponse:r,processResponseEndOfBody:i,processResponseConsumeBody:a,useParallelQueue:o=!1,dispatcher:s=J()}){K(s);let c=null,l=!1;e.client!=null&&(c=e.client.globalObject,l=e.client.crossOriginIsolatedCapability);let u=D(l),d=S({startTime:u}),m={controller:new Ce(s),request:e,timingInfo:d,processRequestBodyChunkLength:t,processRequestEndOfBody:n,processResponse:r,processResponseConsumeBody:a,processResponseEndOfBody:i,taskDestination:c,crossOriginIsolatedCapability:l};return K(!e.body||e.body.stream),e.window===`client`&&(e.window=e.client?.globalObject?.constructor?.name===`Window`?e.client:`no-window`),e.origin===`client`&&(e.origin=e.client.origin),e.policyContainer===`client`&&(e.policyContainer=e.client==null?f():p(e.client.policyContainer)),e.headersList.contains(`accept`,!0)||e.headersList.append(`accept`,`*/*`,!0),e.headersList.contains(`accept-language`,!0)||e.headersList.append(`accept-language`,`*`,!0),e.priority,oe.has(e.destination),Ae(m).catch(e=>{m.controller.terminate(e)}),m.controller}async function Ae(e,t=!1){let r=e.request,a=null;if(r.localURLsOnly&&!L(y(r))&&(a=n(`local URLs only`)),x(r),m(r)===`blocked`&&(a=n(`bad port`)),r.referrerPolicy===``&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!==`no-referrer`&&(r.referrer=E(r)),a===null&&(a=await(async()=>{let t=y(r);return A(t,r.url)&&r.responseTainting===`basic`||t.protocol===`data:`||r.mode===`navigate`||r.mode===`websocket`?(r.responseTainting=`basic`,await je(e)):r.mode===`same-origin`?n(`request mode cannot be "same-origin"`):r.mode===`no-cors`?r.redirect===`follow`?(r.responseTainting=`opaque`,await je(e)):n(`redirect mode cannot be "follow" for "no-cors" request`):R(y(r))?(r.responseTainting=`cors`,await Pe(e)):n(`URL scheme must be a HTTP(S) scheme`)})()),t)return a;a.status!==0&&!a.internalResponse&&(r.responseTainting,r.responseTainting===`basic`?a=i(a,`basic`):r.responseTainting===`cors`?a=i(a,`cors`):r.responseTainting===`opaque`?a=i(a,`opaque`):K(!1));let o=a.status===0?a:a.internalResponse;if(o.urlList.length===0&&o.urlList.push(...r.urlList),r.timingAllowFailed||(a.timingAllowPassed=!0),a.type===`opaque`&&o.status===206&&o.rangeRequested&&!r.headers.contains(`range`,!0)&&(a=o=n()),a.status!==0&&(r.method===`HEAD`||r.method===`CONNECT`||re.includes(o.status))&&(o.body=null,e.controller.dump=!0),r.integrity){let t=t=>Ne(e,n(t));if(r.responseTainting===`opaque`||a.body==null){t(a.error);return}await P(a.body,n=>{if(!d(n,r.integrity)){t(`integrity mismatch`);return}a.body=q(n)[0],Ne(e,a)},t)}else Ne(e,a)}function je(e){if(j(e)&&e.request.redirectCount===0)return Promise.resolve(r(e));let{request:t}=e,{protocol:i}=y(t);switch(i){case`about:`:return Promise.resolve(n(`about scheme is not supported`));case`blob:`:{Se||=Y(`node:buffer`).resolveObjectURL;let e=y(t);if(e.search.length!==0)return Promise.resolve(n(`NetworkError when attempting to fetch resource.`));let r=Se(e.toString());if(t.method!==`GET`||!k(r))return Promise.resolve(n(`invalid method`));let i=a(),o=r.size,s=I(`${o}`),c=r.type;if(t.headersList.contains(`range`,!0)){i.rangeRequested=!0;let e=t.headersList.get(`range`,!0),a=B(e,!0);if(a===`failure`)return Promise.resolve(n(`failed to fetch the data URL`));let{rangeStartValue:s,rangeEndValue:l}=a;if(s===null)s=o-l,l=s+l-1;else{if(s>=o)return Promise.resolve(n(`Range start is greater than the blob's size.`));(l===null||l>=o)&&(l=o-1)}let u=r.slice(s,l,c);i.body=te(u)[0];let d=I(`${u.size}`),f=V(s,l,o);i.status=206,i.statusText=`Partial Content`,i.headersList.set(`content-length`,d,!0),i.headersList.set(`content-type`,c,!0),i.headersList.set(`content-range`,f,!0)}else{let e=te(r);i.statusText=`OK`,i.body=e[0],i.headersList.set(`content-length`,s,!0),i.headersList.set(`content-type`,c,!0)}return Promise.resolve(i)}case`data:`:{let e=y(t),r=he(e);if(r===`failure`)return Promise.resolve(n(`failed to fetch the data URL`));let i=ge(r.mimeType);return Promise.resolve(a({statusText:`OK`,headersList:[[`content-type`,{name:`Content-Type`,value:i}]],body:q(r.body)[0]}))}case`file:`:return Promise.resolve(n(`not implemented... yet...`));case`http:`:case`https:`:return Pe(e).catch(e=>n(e));default:return Promise.resolve(n(`unknown scheme`))}}function Me(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function Ne(e,t){let n=e.timingInfo,r=()=>{let r=Date.now();e.request.destination===`document`&&(e.controller.fullTimingInfo=n),e.controller.reportTimingSteps=()=>{if(e.request.url.protocol!==`https:`)return;n.endTime=r;let i=t.cacheState,a=t.bodyInfo;t.timingAllowPassed||(n=S(n),i=``);let o=0;if(e.request.mode!==`navigator`||!t.hasCrossOriginRedirects){o=t.status;let e=U(t.headersList);e!==`failure`&&(a.contentType=_e(e))}e.request.initiatorType!=null&&De(n,e.request.url.href,e.request.initiatorType,globalThis,i,a,o)};let i=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>i())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(t),e.processResponse=null});let i=t.type===`error`?t:t.internalResponse??t;i.body==null?r():ue(i.body.stream,()=>{r()})}async function Pe(e){let t=e.request,r=null,i=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect===`follow`&&(t.serviceWorkers=`none`),i=r=await Ie(e),t.responseTainting===`cors`&&w(t,r)===`failure`)return n(`cors failure`);h(t,r)===`failure`&&(t.timingAllowFailed=!0)}return(t.responseTainting===`opaque`||r.type===`opaque`)&&T(t.origin,t.client,t.destination,i)===`blocked`?n(`blocked`):(ne.has(i.status)&&(t.redirect!==`manual`&&e.controller.connection.destroy(void 0,!1),t.redirect===`error`?r=n(`unexpected redirect`):t.redirect===`manual`?r=i:t.redirect===`follow`?r=await Fe(e,r):K(!1)),r.timingInfo=a,r)}function Fe(e,t){let r=e.request,i=t.internalResponse?t.internalResponse:t,a;try{if(a=v(i,y(r).hash),a==null)return t}catch(e){return Promise.resolve(n(e))}if(!R(a))return Promise.resolve(n(`URL scheme must be a HTTP(S) scheme`));if(r.redirectCount===20)return Promise.resolve(n(`redirect count exceeded`));if(r.redirectCount+=1,r.mode===`cors`&&(a.username||a.password)&&!A(r,a))return Promise.resolve(n(`cross origin not allowed for request mode "cors"`));if(r.responseTainting===`cors`&&(a.username||a.password))return Promise.resolve(n(`URL cannot contain credentials for request mode "cors"`));if(i.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(n());if([301,302].includes(i.status)&&r.method===`POST`||i.status===303&&!be.includes(r.method)){r.method=`GET`,r.body=null;for(let e of ae)r.headersList.delete(e)}A(y(r),a)||(r.headersList.delete(`authorization`,!0),r.headersList.delete(`proxy-authorization`,!0),r.headersList.delete(`cookie`,!0),r.headersList.delete(`host`,!0)),r.body!=null&&(K(r.body.source!=null),r.body=q(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=D(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),b(r,i),Ae(e,!0)}async function Ie(e,t=!1,i=!1){let a=e.request,o=null,s=null,c=null;a.window===`no-window`&&a.redirect===`error`?(o=e,s=a):(s=l(a),o={...e},o.request=s);let u=a.credentials===`include`||a.credentials===`same-origin`&&a.responseTainting===`basic`,d=s.body?s.body.length:null,f=null;if(s.body==null&&[`POST`,`PUT`].includes(s.method)&&(f=`0`),d!=null&&(f=I(`${d}`)),f!=null&&s.headersList.append(`content-length`,f,!0),d!=null&&s.keepalive,s.referrer instanceof URL&&s.headersList.append(`referer`,I(s.referrer.href),!0),g(s),C(s),s.headersList.contains(`user-agent`,!0)||s.headersList.append(`user-agent`,xe),s.cache==="default"&&(s.headersList.contains(`if-modified-since`,!0)||s.headersList.contains(`if-none-match`,!0)||s.headersList.contains(`if-unmodified-since`,!0)||s.headersList.contains(`if-match`,!0)||s.headersList.contains(`if-range`,!0))&&(s.cache=`no-store`),s.cache===`no-cache`&&!s.preventNoCacheCacheControlHeaderModification&&!s.headersList.contains(`cache-control`,!0)&&s.headersList.append(`cache-control`,`max-age=0`,!0),(s.cache===`no-store`||s.cache===`reload`)&&(s.headersList.contains(`pragma`,!0)||s.headersList.append(`pragma`,`no-cache`,!0),s.headersList.contains(`cache-control`,!0)||s.headersList.append(`cache-control`,`no-cache`,!0)),s.headersList.contains(`range`,!0)&&s.headersList.append(`accept-encoding`,`identity`,!0),s.headersList.contains(`accept-encoding`,!0)||(z(y(s))?s.headersList.append(`accept-encoding`,`br, gzip, deflate`,!0):s.headersList.append(`accept-encoding`,`gzip, deflate`,!0)),s.headersList.delete(`host`,!0),s.cache=`no-store`,s.cache!==`no-store`&&s.cache,c==null){if(s.cache===`only-if-cached`)return n(`only if cached`);let e=await Le(o,u,i);!ie.has(s.method)&&e.status>=200&&e.status,c??=e}if(c.urlList=[...s.urlList],s.headersList.contains(`range`,!0)&&(c.rangeRequested=!0),c.requestIncludesCredentials=u,c.status===407)return a.window===`no-window`?n():j(e)?r(e):n(`proxy authentication required`);if(c.status===421&&!i&&(a.body==null||a.body.source!=null)){if(j(e))return r(e);e.controller.connection.destroy(),c=await Ie(e,t,!0)}return c}async function Le(e,t=!1,i=!1){K(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(e,t=!0){this.destroyed||(this.destroyed=!0,t&&this.abort?.(e??new DOMException(`The operation was aborted.`,`AbortError`)))}};let o=e.request,c=null,l=e.timingInfo;o.cache=`no-store`,o.mode;let d=null;if(o.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(o.body!=null){let t=async function*(t){j(e)||(yield t,e.processRequestBodyChunkLength?.(t.byteLength))},n=()=>{j(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},r=t=>{j(e)||(t.name===`AbortError`?e.controller.abort():e.controller.terminate(t))};d=(async function*(){try{for await(let e of o.body.stream)yield*t(e);n()}catch(e){r(e)}})()}try{let{body:t,status:n,statusText:r,headersList:i,socket:o}=await g({body:d});if(o)c=a({status:n,statusText:r,headersList:i,socket:o});else{let o=t[Symbol.asyncIterator]();e.controller.next=()=>o.next(),c=a({status:n,statusText:r,headersList:i})}}catch(t){return t.name===`AbortError`?(e.controller.connection.destroy(),r(e,t)):n(t)}let f=async()=>{await e.controller.resume()},p=t=>{j(e)||e.controller.abort(t)},m=new ReadableStream({async start(t){e.controller.controller=t},async pull(e){await f(e)},async cancel(e){await p(e)},type:`bytes`});c.body={stream:m,source:null,length:null},e.controller.onAborted=h,e.controller.on(`terminated`,h),e.controller.resume=async()=>{for(;;){let t,n;try{let{done:n,value:r}=await e.controller.next();if(M(e))break;t=n?void 0:r}catch(r){e.controller.ended&&!l.encodedBodySize?t=void 0:(t=r,n=!0)}if(t===void 0){F(e.controller.controller),Me(e,c);return}if(l.decodedBodySize+=t?.byteLength??0,n){e.controller.terminate(t);return}let r=new Uint8Array(t);if(r.byteLength&&e.controller.controller.enqueue(r),fe(m)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function h(t){M(e)?(c.aborted=!0,pe(m)&&e.controller.controller.error(e.controller.serializedAbortReason)):pe(m)&&e.controller.controller.error(TypeError(`terminated`,{cause:N(t)?t:void 0})),e.controller.connection.destroy()}return c;function g({body:t}){let n=y(o),r=e.controller.dispatcher;return new Promise((i,a)=>r.dispatch({path:n.pathname+n.search,origin:n.origin,method:o.method,body:r.isMockActive?o.body&&(o.body.source||o.body.stream):t,headers:o.headersList.entries,maxRedirections:0,upgrade:o.mode===`websocket`?`websocket`:void 0},{body:null,abort:null,onConnect(t){let{connection:n}=e.controller;l.finalConnectionTimingInfo=ee(void 0,l.postRedirectStartTime,e.crossOriginIsolatedCapability),n.destroyed?t(new DOMException(`The operation was aborted.`,`AbortError`)):(e.controller.on(`terminated`,t),this.abort=n.abort=t),l.finalNetworkRequestStartTime=D(e.crossOriginIsolatedCapability)},onResponseStarted(){l.finalNetworkResponseStartTime=D(e.crossOriginIsolatedCapability)},onHeaders(e,t,n,r){if(e<200)return;let c=``,l=new s;for(let e=0;e5)return a(Error(`too many content-encodings in response: ${t.length}, maximum allowed is 5`)),!0;for(let e=t.length-1;e>=0;--e){let n=t[e].trim();if(n===`x-gzip`||n===`gzip`)d.push(u.createGunzip({flush:u.constants.Z_SYNC_FLUSH,finishFlush:u.constants.Z_SYNC_FLUSH}));else if(n===`deflate`)d.push(H({flush:u.constants.Z_SYNC_FLUSH,finishFlush:u.constants.Z_SYNC_FLUSH}));else if(n===`br`)d.push(u.createBrotliDecompress({flush:u.constants.BROTLI_OPERATION_FLUSH,finishFlush:u.constants.BROTLI_OPERATION_FLUSH}));else{d.length=0;break}}}let p=this.onError.bind(this);return i({status:e,statusText:r,headersList:l,body:d.length?le(this.body,...d,e=>{e&&this.onError(e)}).on(`error`,p):this.body.on(`error`,p)}),!0},onData(t){if(e.controller.dump)return;let n=t;return l.encodedBodySize+=n.byteLength,this.body.push(n)},onComplete(){this.abort&&e.controller.off(`terminated`,this.abort),e.controller.onAborted&&e.controller.off(`terminated`,e.controller.onAborted),e.controller.ended=!0,this.body.push(null)},onError(t){this.abort&&e.controller.off(`terminated`,this.abort),this.body?.destroy(t),e.controller.terminate(t),a(t)},onUpgrade(e,t,n){if(e!==101)return;let r=new s;for(let e=0;e{t.exports={kState:Symbol(`FileReader state`),kResult:Symbol(`FileReader result`),kError:Symbol(`FileReader error`),kLastProgressEventFired:Symbol(`FileReader last progress event fired timestamp`),kEvents:Symbol(`FileReader events`),kAborted:Symbol(`FileReader aborted`)}})),Zt=J(((e,t)=>{let{webidl:n}=$e(),r=Symbol(`ProgressEvent state`);var i=class e extends Event{constructor(e,t={}){e=n.converters.DOMString(e,`ProgressEvent constructor`,`type`),t=n.converters.ProgressEventInit(t??{}),super(e,t),this[r]={lengthComputable:t.lengthComputable,loaded:t.loaded,total:t.total}}get lengthComputable(){return n.brandCheck(this,e),this[r].lengthComputable}get loaded(){return n.brandCheck(this,e),this[r].loaded}get total(){return n.brandCheck(this,e),this[r].total}};n.converters.ProgressEventInit=n.dictionaryConverter([{key:`lengthComputable`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`loaded`,converter:n.converters[`unsigned long long`],defaultValue:()=>0},{key:`total`,converter:n.converters[`unsigned long long`],defaultValue:()=>0},{key:`bubbles`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`cancelable`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`composed`,converter:n.converters.boolean,defaultValue:()=>!1}]),t.exports={ProgressEvent:i}})),Qt=J(((e,t)=>{function n(e){if(!e)return`failure`;switch(e.trim().toLowerCase()){case`unicode-1-1-utf-8`:case`unicode11utf8`:case`unicode20utf8`:case`utf-8`:case`utf8`:case`x-unicode20utf8`:return`UTF-8`;case`866`:case`cp866`:case`csibm866`:case`ibm866`:return`IBM866`;case`csisolatin2`:case`iso-8859-2`:case`iso-ir-101`:case`iso8859-2`:case`iso88592`:case`iso_8859-2`:case`iso_8859-2:1987`:case`l2`:case`latin2`:return`ISO-8859-2`;case`csisolatin3`:case`iso-8859-3`:case`iso-ir-109`:case`iso8859-3`:case`iso88593`:case`iso_8859-3`:case`iso_8859-3:1988`:case`l3`:case`latin3`:return`ISO-8859-3`;case`csisolatin4`:case`iso-8859-4`:case`iso-ir-110`:case`iso8859-4`:case`iso88594`:case`iso_8859-4`:case`iso_8859-4:1988`:case`l4`:case`latin4`:return`ISO-8859-4`;case`csisolatincyrillic`:case`cyrillic`:case`iso-8859-5`:case`iso-ir-144`:case`iso8859-5`:case`iso88595`:case`iso_8859-5`:case`iso_8859-5:1988`:return`ISO-8859-5`;case`arabic`:case`asmo-708`:case`csiso88596e`:case`csiso88596i`:case`csisolatinarabic`:case`ecma-114`:case`iso-8859-6`:case`iso-8859-6-e`:case`iso-8859-6-i`:case`iso-ir-127`:case`iso8859-6`:case`iso88596`:case`iso_8859-6`:case`iso_8859-6:1987`:return`ISO-8859-6`;case`csisolatingreek`:case`ecma-118`:case`elot_928`:case`greek`:case`greek8`:case`iso-8859-7`:case`iso-ir-126`:case`iso8859-7`:case`iso88597`:case`iso_8859-7`:case`iso_8859-7:1987`:case`sun_eu_greek`:return`ISO-8859-7`;case`csiso88598e`:case`csisolatinhebrew`:case`hebrew`:case`iso-8859-8`:case`iso-8859-8-e`:case`iso-ir-138`:case`iso8859-8`:case`iso88598`:case`iso_8859-8`:case`iso_8859-8:1988`:case`visual`:return`ISO-8859-8`;case`csiso88598i`:case`iso-8859-8-i`:case`logical`:return`ISO-8859-8-I`;case`csisolatin6`:case`iso-8859-10`:case`iso-ir-157`:case`iso8859-10`:case`iso885910`:case`l6`:case`latin6`:return`ISO-8859-10`;case`iso-8859-13`:case`iso8859-13`:case`iso885913`:return`ISO-8859-13`;case`iso-8859-14`:case`iso8859-14`:case`iso885914`:return`ISO-8859-14`;case`csisolatin9`:case`iso-8859-15`:case`iso8859-15`:case`iso885915`:case`iso_8859-15`:case`l9`:return`ISO-8859-15`;case`iso-8859-16`:return`ISO-8859-16`;case`cskoi8r`:case`koi`:case`koi8`:case`koi8-r`:case`koi8_r`:return`KOI8-R`;case`koi8-ru`:case`koi8-u`:return`KOI8-U`;case`csmacintosh`:case`mac`:case`macintosh`:case`x-mac-roman`:return`macintosh`;case`iso-8859-11`:case`iso8859-11`:case`iso885911`:case`tis-620`:case`windows-874`:return`windows-874`;case`cp1250`:case`windows-1250`:case`x-cp1250`:return`windows-1250`;case`cp1251`:case`windows-1251`:case`x-cp1251`:return`windows-1251`;case`ansi_x3.4-1968`:case`ascii`:case`cp1252`:case`cp819`:case`csisolatin1`:case`ibm819`:case`iso-8859-1`:case`iso-ir-100`:case`iso8859-1`:case`iso88591`:case`iso_8859-1`:case`iso_8859-1:1987`:case`l1`:case`latin1`:case`us-ascii`:case`windows-1252`:case`x-cp1252`:return`windows-1252`;case`cp1253`:case`windows-1253`:case`x-cp1253`:return`windows-1253`;case`cp1254`:case`csisolatin5`:case`iso-8859-9`:case`iso-ir-148`:case`iso8859-9`:case`iso88599`:case`iso_8859-9`:case`iso_8859-9:1989`:case`l5`:case`latin5`:case`windows-1254`:case`x-cp1254`:return`windows-1254`;case`cp1255`:case`windows-1255`:case`x-cp1255`:return`windows-1255`;case`cp1256`:case`windows-1256`:case`x-cp1256`:return`windows-1256`;case`cp1257`:case`windows-1257`:case`x-cp1257`:return`windows-1257`;case`cp1258`:case`windows-1258`:case`x-cp1258`:return`windows-1258`;case`x-mac-cyrillic`:case`x-mac-ukrainian`:return`x-mac-cyrillic`;case`chinese`:case`csgb2312`:case`csiso58gb231280`:case`gb2312`:case`gb_2312`:case`gb_2312-80`:case`gbk`:case`iso-ir-58`:case`x-gbk`:return`GBK`;case`gb18030`:return`gb18030`;case`big5`:case`big5-hkscs`:case`cn-big5`:case`csbig5`:case`x-x-big5`:return`Big5`;case`cseucpkdfmtjapanese`:case`euc-jp`:case`x-euc-jp`:return`EUC-JP`;case`csiso2022jp`:case`iso-2022-jp`:return`ISO-2022-JP`;case`csshiftjis`:case`ms932`:case`ms_kanji`:case`shift-jis`:case`shift_jis`:case`sjis`:case`windows-31j`:case`x-sjis`:return`Shift_JIS`;case`cseuckr`:case`csksc56011987`:case`euc-kr`:case`iso-ir-149`:case`korean`:case`ks_c_5601-1987`:case`ks_c_5601-1989`:case`ksc5601`:case`ksc_5601`:case`windows-949`:return`EUC-KR`;case`csiso2022kr`:case`hz-gb-2312`:case`iso-2022-cn`:case`iso-2022-cn-ext`:case`iso-2022-kr`:case`replacement`:return`replacement`;case`unicodefffe`:case`utf-16be`:return`UTF-16BE`;case`csunicode`:case`iso-10646-ucs-2`:case`ucs-2`:case`unicode`:case`unicodefeff`:case`utf-16`:case`utf-16le`:return`UTF-16LE`;case`x-user-defined`:return`x-user-defined`;default:return`failure`}}t.exports={getEncoding:n}})),$t=J(((e,t)=>{let{kState:n,kError:r,kResult:i,kAborted:a,kLastProgressEventFired:o}=Xt(),{ProgressEvent:s}=Zt(),{getEncoding:c}=Qt(),{serializeAMimeType:l,parseMIMEType:u}=Qe(),{types:d}=Y(`node:util`),{StringDecoder:f}=Y(`string_decoder`),{btoa:p}=Y(`node:buffer`),m={enumerable:!0,writable:!1,configurable:!1};function h(e,t,s,c){if(e[n]===`loading`)throw new DOMException(`Invalid state`,`InvalidStateError`);e[n]=`loading`,e[i]=null,e[r]=null;let l=t.stream().getReader(),u=[],f=l.read(),p=!0;(async()=>{for(;!e[a];)try{let{done:m,value:h}=await f;if(p&&!e[a]&&queueMicrotask(()=>{g(`loadstart`,e)}),p=!1,!m&&d.isUint8Array(h))u.push(h),(e[o]===void 0||Date.now()-e[o]>=50)&&!e[a]&&(e[o]=Date.now(),queueMicrotask(()=>{g(`progress`,e)})),f=l.read();else if(m){queueMicrotask(()=>{e[n]=`done`;try{let n=v(u,s,t.type,c);if(e[a])return;e[i]=n,g(`load`,e)}catch(t){e[r]=t,g(`error`,e)}e[n]!==`loading`&&g(`loadend`,e)});break}}catch(t){if(e[a])return;queueMicrotask(()=>{e[n]=`done`,e[r]=t,g(`error`,e),e[n]!==`loading`&&g(`loadend`,e)});break}})()}function g(e,t){let n=new s(e,{bubbles:!1,cancelable:!1});t.dispatchEvent(n)}function v(e,t,n,r){switch(t){case`DataURL`:{let t=`data:`,r=u(n||`application/octet-stream`);r!==`failure`&&(t+=l(r)),t+=`;base64,`;let i=new f(`latin1`);for(let n of e)t+=p(i.write(n));return t+=p(i.end()),t}case`Text`:{let t=`failure`;if(r&&(t=c(r)),t===`failure`&&n){let e=u(n);e!==`failure`&&(t=c(e.parameters.get(`charset`)))}return t===`failure`&&(t=`UTF-8`),y(e,t)}case`ArrayBuffer`:return x(e).buffer;case`BinaryString`:{let t=``,n=new f(`latin1`);for(let r of e)t+=n.write(r);return t+=n.end(),t}}}function y(e,t){let n=x(e),r=b(n),i=0;r!==null&&(t=r,i=r===`UTF-8`?3:2);let a=n.slice(i);return new TextDecoder(t).decode(a)}function b(e){let[t,n,r]=e;return t===239&&n===187&&r===191?`UTF-8`:t===254&&n===255?`UTF-16BE`:t===255&&n===254?`UTF-16LE`:null}function x(e){let t=e.reduce((e,t)=>e+t.byteLength,0),n=0;return e.reduce((e,t)=>(e.set(t,n),n+=t.byteLength,e),new Uint8Array(t))}t.exports={staticPropertyDescriptors:m,readOperation:h,fireAProgressEvent:g}})),en=J(((e,t)=>{let{staticPropertyDescriptors:n,readOperation:r,fireAProgressEvent:i}=$t(),{kState:a,kError:o,kResult:s,kEvents:c,kAborted:l}=Xt(),{webidl:u}=$e(),{kEnumerableProperty:d}=ze();var f=class e extends EventTarget{constructor(){super(),this[a]=`empty`,this[s]=null,this[o]=null,this[c]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(t){u.brandCheck(this,e),u.argumentLengthCheck(arguments,1,`FileReader.readAsArrayBuffer`),t=u.converters.Blob(t,{strict:!1}),r(this,t,`ArrayBuffer`)}readAsBinaryString(t){u.brandCheck(this,e),u.argumentLengthCheck(arguments,1,`FileReader.readAsBinaryString`),t=u.converters.Blob(t,{strict:!1}),r(this,t,`BinaryString`)}readAsText(t,n=void 0){u.brandCheck(this,e),u.argumentLengthCheck(arguments,1,`FileReader.readAsText`),t=u.converters.Blob(t,{strict:!1}),n!==void 0&&(n=u.converters.DOMString(n,`FileReader.readAsText`,`encoding`)),r(this,t,`Text`,n)}readAsDataURL(t){u.brandCheck(this,e),u.argumentLengthCheck(arguments,1,`FileReader.readAsDataURL`),t=u.converters.Blob(t,{strict:!1}),r(this,t,`DataURL`)}abort(){if(this[a]===`empty`||this[a]===`done`){this[s]=null;return}this[a]===`loading`&&(this[a]=`done`,this[s]=null),this[l]=!0,i(`abort`,this),this[a]!==`loading`&&i(`loadend`,this)}get readyState(){switch(u.brandCheck(this,e),this[a]){case`empty`:return this.EMPTY;case`loading`:return this.LOADING;case`done`:return this.DONE}}get result(){return u.brandCheck(this,e),this[s]}get error(){return u.brandCheck(this,e),this[o]}get onloadend(){return u.brandCheck(this,e),this[c].loadend}set onloadend(t){u.brandCheck(this,e),this[c].loadend&&this.removeEventListener(`loadend`,this[c].loadend),typeof t==`function`?(this[c].loadend=t,this.addEventListener(`loadend`,t)):this[c].loadend=null}get onerror(){return u.brandCheck(this,e),this[c].error}set onerror(t){u.brandCheck(this,e),this[c].error&&this.removeEventListener(`error`,this[c].error),typeof t==`function`?(this[c].error=t,this.addEventListener(`error`,t)):this[c].error=null}get onloadstart(){return u.brandCheck(this,e),this[c].loadstart}set onloadstart(t){u.brandCheck(this,e),this[c].loadstart&&this.removeEventListener(`loadstart`,this[c].loadstart),typeof t==`function`?(this[c].loadstart=t,this.addEventListener(`loadstart`,t)):this[c].loadstart=null}get onprogress(){return u.brandCheck(this,e),this[c].progress}set onprogress(t){u.brandCheck(this,e),this[c].progress&&this.removeEventListener(`progress`,this[c].progress),typeof t==`function`?(this[c].progress=t,this.addEventListener(`progress`,t)):this[c].progress=null}get onload(){return u.brandCheck(this,e),this[c].load}set onload(t){u.brandCheck(this,e),this[c].load&&this.removeEventListener(`load`,this[c].load),typeof t==`function`?(this[c].load=t,this.addEventListener(`load`,t)):this[c].load=null}get onabort(){return u.brandCheck(this,e),this[c].abort}set onabort(t){u.brandCheck(this,e),this[c].abort&&this.removeEventListener(`abort`,this[c].abort),typeof t==`function`?(this[c].abort=t,this.addEventListener(`abort`,t)):this[c].abort=null}};f.EMPTY=f.prototype.EMPTY=0,f.LOADING=f.prototype.LOADING=1,f.DONE=f.prototype.DONE=2,Object.defineProperties(f.prototype,{EMPTY:n,LOADING:n,DONE:n,readAsArrayBuffer:d,readAsBinaryString:d,readAsText:d,readAsDataURL:d,abort:d,readyState:d,result:d,error:d,onloadstart:d,onprogress:d,onload:d,onabort:d,onerror:d,onloadend:d,[Symbol.toStringTag]:{value:`FileReader`,writable:!1,enumerable:!1,configurable:!0}}),Object.defineProperties(f,{EMPTY:n,LOADING:n,DONE:n}),t.exports={FileReader:f}})),tn=J(((e,t)=>{t.exports={kConstruct:Fe().kConstruct}})),nn=J(((e,t)=>{let n=Y(`node:assert`),{URLSerializer:r}=Qe(),{isValidHeaderName:i}=et();function a(e,t,n=!1){return r(e,n)===r(t,n)}function o(e){n(e!==null);let t=[];for(let n of e.split(`,`))n=n.trim(),i(n)&&t.push(n);return t}t.exports={urlEquals:a,getFieldValues:o}})),rn=J(((e,t)=>{let{kConstruct:n}=tn(),{urlEquals:r,getFieldValues:i}=nn(),{kEnumerableProperty:a,isDisturbed:o}=ze(),{webidl:s}=$e(),{Response:c,cloneResponse:l,fromInnerResponse:u}=Kt(),{Request:d,fromInnerRequest:f}=Jt(),{kState:p}=tt(),{fetching:m}=Yt(),{urlIsHttpHttpsScheme:h,createDeferredPromise:g,readAllBytes:v}=et(),y=Y(`node:assert`);var b=class e{#e;constructor(){arguments[0]!==n&&s.illegalConstructor(),s.util.markAsUncloneable(this),this.#e=arguments[1]}async match(t,n={}){s.brandCheck(this,e);let r=`Cache.match`;s.argumentLengthCheck(arguments,1,r),t=s.converters.RequestInfo(t,r,`request`),n=s.converters.CacheQueryOptions(n,r,`options`);let i=this.#i(t,n,1);if(i.length!==0)return i[0]}async matchAll(t=void 0,n={}){s.brandCheck(this,e);let r=`Cache.matchAll`;return t!==void 0&&(t=s.converters.RequestInfo(t,r,`request`)),n=s.converters.CacheQueryOptions(n,r,`options`),this.#i(t,n)}async add(t){s.brandCheck(this,e);let n=`Cache.add`;s.argumentLengthCheck(arguments,1,n),t=s.converters.RequestInfo(t,n,`request`);let r=[t];return await this.addAll(r)}async addAll(t){s.brandCheck(this,e);let n=`Cache.addAll`;s.argumentLengthCheck(arguments,1,n);let r=[],a=[];for(let e of t){if(e===void 0)throw s.errors.conversionFailed({prefix:n,argument:`Argument 1`,types:[`undefined is not allowed`]});if(e=s.converters.RequestInfo(e),typeof e==`string`)continue;let t=e[p];if(!h(t.url)||t.method!==`GET`)throw s.errors.exception({header:n,message:`Expected http/s scheme when method is not GET.`})}let o=[];for(let e of t){let t=new d(e)[p];if(!h(t.url))throw s.errors.exception({header:n,message:`Expected http/s scheme.`});t.initiator=`fetch`,t.destination=`subresource`,a.push(t);let c=g();o.push(m({request:t,processResponse(e){if(e.type===`error`||e.status===206||e.status<200||e.status>299)c.reject(s.errors.exception({header:`Cache.addAll`,message:`Received an invalid status code or the request failed.`}));else if(e.headersList.contains(`vary`)){let t=i(e.headersList.get(`vary`));for(let e of t)if(e===`*`){c.reject(s.errors.exception({header:`Cache.addAll`,message:`invalid vary field value`}));for(let e of o)e.abort();return}}},processResponseEndOfBody(e){if(e.aborted){c.reject(new DOMException(`aborted`,`AbortError`));return}c.resolve(e)}})),r.push(c.promise)}let c=await Promise.all(r),l=[],u=0;for(let e of c){let t={type:`put`,request:a[u],response:e};l.push(t),u++}let f=g(),v=null;try{this.#t(l)}catch(e){v=e}return queueMicrotask(()=>{v===null?f.resolve(void 0):f.reject(v)}),f.promise}async put(t,n){s.brandCheck(this,e);let r=`Cache.put`;s.argumentLengthCheck(arguments,2,r),t=s.converters.RequestInfo(t,r,`request`),n=s.converters.Response(n,r,`response`);let a=null;if(a=t instanceof d?t[p]:new d(t)[p],!h(a.url)||a.method!==`GET`)throw s.errors.exception({header:r,message:`Expected an http/s scheme when method is not GET`});let c=n[p];if(c.status===206)throw s.errors.exception({header:r,message:`Got 206 status`});if(c.headersList.contains(`vary`)){let e=i(c.headersList.get(`vary`));for(let t of e)if(t===`*`)throw s.errors.exception({header:r,message:`Got * vary field value`})}if(c.body&&(o(c.body.stream)||c.body.stream.locked))throw s.errors.exception({header:r,message:`Response body is locked or disturbed`});let u=l(c),f=g();if(c.body!=null){let e=c.body.stream.getReader();v(e).then(f.resolve,f.reject)}else f.resolve(void 0);let m=[],y={type:`put`,request:a,response:u};m.push(y);let b=await f.promise;u.body!=null&&(u.body.source=b);let x=g(),S=null;try{this.#t(m)}catch(e){S=e}return queueMicrotask(()=>{S===null?x.resolve():x.reject(S)}),x.promise}async delete(t,n={}){s.brandCheck(this,e);let r=`Cache.delete`;s.argumentLengthCheck(arguments,1,r),t=s.converters.RequestInfo(t,r,`request`),n=s.converters.CacheQueryOptions(n,r,`options`);let i=null;if(t instanceof d){if(i=t[p],i.method!==`GET`&&!n.ignoreMethod)return!1}else y(typeof t==`string`),i=new d(t)[p];let a=[],o={type:`delete`,request:i,options:n};a.push(o);let c=g(),l=null,u;try{u=this.#t(a)}catch(e){l=e}return queueMicrotask(()=>{l===null?c.resolve(!!u?.length):c.reject(l)}),c.promise}async keys(t=void 0,n={}){s.brandCheck(this,e);let r=`Cache.keys`;t!==void 0&&(t=s.converters.RequestInfo(t,r,`request`)),n=s.converters.CacheQueryOptions(n,r,`options`);let i=null;if(t!==void 0){if(t instanceof d){if(i=t[p],i.method!==`GET`&&!n.ignoreMethod)return[]}else typeof t==`string`&&(i=new d(t)[p])}let a=g(),o=[];if(t===void 0)for(let e of this.#e)o.push(e[0]);else{let e=this.#n(i,n);for(let t of e)o.push(t[0])}return queueMicrotask(()=>{let e=[];for(let t of o){let n=f(t,new AbortController().signal,`immutable`);e.push(n)}a.resolve(Object.freeze(e))}),a.promise}#t(e){let t=this.#e,n=[...t],r=[],i=[];try{for(let n of e){if(n.type!==`delete`&&n.type!==`put`)throw s.errors.exception({header:`Cache.#batchCacheOperations`,message:`operation type does not match "delete" or "put"`});if(n.type===`delete`&&n.response!=null)throw s.errors.exception({header:`Cache.#batchCacheOperations`,message:`delete operation should not have an associated response`});if(this.#n(n.request,n.options,r).length)throw new DOMException(`???`,`InvalidStateError`);let e;if(n.type===`delete`){if(e=this.#n(n.request,n.options),e.length===0)return[];for(let n of e){let e=t.indexOf(n);y(e!==-1),t.splice(e,1)}}else if(n.type===`put`){if(n.response==null)throw s.errors.exception({header:`Cache.#batchCacheOperations`,message:`put operation should have an associated response`});let i=n.request;if(!h(i.url))throw s.errors.exception({header:`Cache.#batchCacheOperations`,message:`expected http or https scheme`});if(i.method!==`GET`)throw s.errors.exception({header:`Cache.#batchCacheOperations`,message:`not get method`});if(n.options!=null)throw s.errors.exception({header:`Cache.#batchCacheOperations`,message:`options must not be defined`});e=this.#n(n.request);for(let n of e){let e=t.indexOf(n);y(e!==-1),t.splice(e,1)}t.push([n.request,n.response]),r.push([n.request,n.response])}i.push([n.request,n.response])}return i}catch(e){throw this.#e.length=0,this.#e=n,e}}#n(e,t,n){let r=[],i=n??this.#e;for(let n of i){let[i,a]=n;this.#r(e,i,a,t)&&r.push(n)}return r}#r(e,t,n=null,a){let o=new URL(e.url),s=new URL(t.url);if(a?.ignoreSearch&&(s.search=``,o.search=``),!r(o,s,!0))return!1;if(n==null||a?.ignoreVary||!n.headersList.contains(`vary`))return!0;let c=i(n.headersList.get(`vary`));for(let n of c)if(n===`*`||t.headersList.get(n)!==e.headersList.get(n))return!1;return!0}#i(e,t,n=1/0){let r=null;if(e!==void 0){if(e instanceof d){if(r=e[p],r.method!==`GET`&&!t.ignoreMethod)return[]}else typeof e==`string`&&(r=new d(e)[p])}let i=[];if(e===void 0)for(let e of this.#e)i.push(e[1]);else{let e=this.#n(r,t);for(let t of e)i.push(t[1])}let a=[];for(let e of i){let t=u(e,`immutable`);if(a.push(t.clone()),a.length>=n)break}return Object.freeze(a)}};Object.defineProperties(b.prototype,{[Symbol.toStringTag]:{value:`Cache`,configurable:!0},match:a,matchAll:a,add:a,addAll:a,put:a,delete:a,keys:a});let x=[{key:`ignoreSearch`,converter:s.converters.boolean,defaultValue:()=>!1},{key:`ignoreMethod`,converter:s.converters.boolean,defaultValue:()=>!1},{key:`ignoreVary`,converter:s.converters.boolean,defaultValue:()=>!1}];s.converters.CacheQueryOptions=s.dictionaryConverter(x),s.converters.MultiCacheQueryOptions=s.dictionaryConverter([...x,{key:`cacheName`,converter:s.converters.DOMString}]),s.converters.Response=s.interfaceConverter(c),s.converters[`sequence`]=s.sequenceConverter(s.converters.RequestInfo),t.exports={Cache:b}})),an=J(((e,t)=>{let{kConstruct:n}=tn(),{Cache:r}=rn(),{webidl:i}=$e(),{kEnumerableProperty:a}=ze();var o=class e{#e=new Map;constructor(){arguments[0]!==n&&i.illegalConstructor(),i.util.markAsUncloneable(this)}async match(t,a={}){if(i.brandCheck(this,e),i.argumentLengthCheck(arguments,1,`CacheStorage.match`),t=i.converters.RequestInfo(t),a=i.converters.MultiCacheQueryOptions(a),a.cacheName!=null){if(this.#e.has(a.cacheName)){let e=this.#e.get(a.cacheName);return await new r(n,e).match(t,a)}}else for(let e of this.#e.values()){let i=await new r(n,e).match(t,a);if(i!==void 0)return i}}async has(t){i.brandCheck(this,e);let n=`CacheStorage.has`;return i.argumentLengthCheck(arguments,1,n),t=i.converters.DOMString(t,n,`cacheName`),this.#e.has(t)}async open(t){i.brandCheck(this,e);let a=`CacheStorage.open`;if(i.argumentLengthCheck(arguments,1,a),t=i.converters.DOMString(t,a,`cacheName`),this.#e.has(t)){let e=this.#e.get(t);return new r(n,e)}let o=[];return this.#e.set(t,o),new r(n,o)}async delete(t){i.brandCheck(this,e);let n=`CacheStorage.delete`;return i.argumentLengthCheck(arguments,1,n),t=i.converters.DOMString(t,n,`cacheName`),this.#e.delete(t)}async keys(){return i.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(o.prototype,{[Symbol.toStringTag]:{value:`CacheStorage`,configurable:!0},match:a,has:a,open:a,delete:a,keys:a}),t.exports={CacheStorage:o}})),on=J(((e,t)=>{t.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}})),sn=J(((e,t)=>{function n(e){for(let t=0;t=0&&n<=8||n>=10&&n<=31||n===127)return!0}return!1}function r(e){for(let t=0;t126||n===34||n===40||n===41||n===60||n===62||n===64||n===44||n===59||n===58||n===92||n===47||n===91||n===93||n===63||n===61||n===123||n===125)throw Error(`Invalid cookie name`)}}function i(e){let t=e.length,n=0;if(e[0]===`"`){if(t===1||e[t-1]!==`"`)throw Error(`Invalid cookie value`);--t,++n}for(;n126||t===34||t===44||t===59||t===92)throw Error(`Invalid cookie value`)}}function a(e){for(let t=0;t126||n===59)throw Error(`Invalid cookie path`)}}function o(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function s(e){if(e===` `)return;if(e.length>255)throw Error(`Invalid cookie domain`);let t=0;for(let n=0;n63)throw Error(`Invalid cookie domain`)}if(t===0||e.charCodeAt(e.length-1)===45)throw Error(`Invalid cookie domain`)}let c=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],l=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],u=Array(61).fill(0).map((e,t)=>t.toString().padStart(2,`0`));function d(e){return typeof e==`number`&&(e=new Date(e)),`${c[e.getUTCDay()]}, ${u[e.getUTCDate()]} ${l[e.getUTCMonth()]} ${e.getUTCFullYear()} ${u[e.getUTCHours()]}:${u[e.getUTCMinutes()]}:${u[e.getUTCSeconds()]} GMT`}function f(e){if(e<0)throw Error(`Invalid cookie max-age`)}function p(e){if(e.name.length===0)return null;r(e.name),i(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith(`__Secure-`)&&(e.secure=!0),e.name.startsWith(`__Host-`)&&(e.secure=!0,e.domain=null,e.path=`/`),e.secure&&t.push(`Secure`),e.httpOnly&&t.push(`HttpOnly`),typeof e.maxAge==`number`&&(f(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(s(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(a(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!==`Invalid Date`&&t.push(`Expires=${d(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let n of e.unparsed){if(!n.includes(`=`))throw Error(`Invalid unparsed`);let[e,...a]=n.split(`=`),o=e.trim(),s=a.join(`=`);r(o),i(s),t.push(`${o}=${s}`)}return t.join(`; `)}t.exports={isCTLExcludingHtab:n,validateCookieName:r,validateCookiePath:a,validateCookieValue:i,toIMFDate:d,stringify:p}})),cn=J(((e,t)=>{let{maxNameValuePairSize:n,maxAttributeValueSize:r}=on(),{isCTLExcludingHtab:i}=sn(),{collectASequenceOfCodePointsFast:a}=Qe(),o=Y(`node:assert`);function s(e){if(i(e))return null;let t=``,r=``,o=``,s=``;if(e.includes(`;`)){let n={position:0};t=a(`;`,e,n),r=e.slice(n.position)}else t=e;if(!t.includes(`=`))s=t;else{let e={position:0};o=a(`=`,t,e),s=t.slice(e.position+1)}return o=o.trim(),s=s.trim(),o.length+s.length>n?null:{name:o,value:s,...c(r)}}function c(e,t={}){if(e.length===0)return t;o(e[0]===`;`),e=e.slice(1);let n=``;e.includes(`;`)?(n=a(`;`,e,{position:0}),e=e.slice(n.length)):(n=e,e=``);let i=``,s=``;if(n.includes(`=`)){let e={position:0};i=a(`=`,n,e),s=n.slice(e.position+1)}else i=n;if(i=i.trim(),s=s.trim(),s.length>r)return c(e,t);let l=i.toLowerCase();if(l===`expires`)t.expires=new Date(s);else if(l===`max-age`){let n=s.charCodeAt(0);if((n<48||n>57)&&s[0]!==`-`||!/^\d+$/.test(s))return c(e,t);t.maxAge=Number(s)}else if(l===`domain`){let e=s;e[0]===`.`&&(e=e.slice(1)),e=e.toLowerCase(),t.domain=e}else if(l===`path`){let e=``;e=s.length===0||s[0]!==`/`?`/`:s,t.path=e}else if(l===`secure`)t.secure=!0;else if(l===`httponly`)t.httpOnly=!0;else if(l===`samesite`){let e=s.toLowerCase();e===`none`?t.sameSite=`None`:e===`strict`?t.sameSite=`Strict`:e===`lax`&&(t.sameSite=`Lax`)}else t.unparsed??=[],t.unparsed.push(`${i}=${s}`);return c(e,t)}t.exports={parseSetCookie:s,parseUnparsedAttributes:c}})),ln=J(((e,t)=>{let{parseSetCookie:n}=cn(),{stringify:r}=sn(),{webidl:i}=$e(),{Headers:a}=Gt();function o(e){i.argumentLengthCheck(arguments,1,`getCookies`),i.brandCheck(e,a,{strict:!1});let t=e.get(`cookie`),n={};if(!t)return n;for(let e of t.split(`;`)){let[t,...r]=e.split(`=`);n[t.trim()]=r.join(`=`)}return n}function s(e,t,n){i.brandCheck(e,a,{strict:!1});let r=`deleteCookie`;i.argumentLengthCheck(arguments,2,r),t=i.converters.DOMString(t,r,`name`),n=i.converters.DeleteCookieAttributes(n),l(e,{name:t,value:``,expires:new Date(0),...n})}function c(e){i.argumentLengthCheck(arguments,1,`getSetCookies`),i.brandCheck(e,a,{strict:!1});let t=e.getSetCookie();return t?t.map(e=>n(e)):[]}function l(e,t){i.argumentLengthCheck(arguments,2,`setCookie`),i.brandCheck(e,a,{strict:!1}),t=i.converters.Cookie(t);let n=r(t);n&&e.append(`Set-Cookie`,n)}i.converters.DeleteCookieAttributes=i.dictionaryConverter([{converter:i.nullableConverter(i.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`domain`,defaultValue:()=>null}]),i.converters.Cookie=i.dictionaryConverter([{converter:i.converters.DOMString,key:`name`},{converter:i.converters.DOMString,key:`value`},{converter:i.nullableConverter(e=>typeof e==`number`?i.converters[`unsigned long long`](e):new Date(e)),key:`expires`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters[`long long`]),key:`maxAge`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`domain`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.boolean),key:`secure`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.boolean),key:`httpOnly`,defaultValue:()=>null},{converter:i.converters.USVString,key:`sameSite`,allowedValues:[`Strict`,`Lax`,`None`]},{converter:i.sequenceConverter(i.converters.DOMString),key:`unparsed`,defaultValue:()=>[]}]),t.exports={getCookies:o,deleteCookie:s,getSetCookies:c,setCookie:l}})),un=J(((e,t)=>{let{webidl:n}=$e(),{kEnumerableProperty:r}=ze(),{kConstruct:i}=Fe(),{MessagePort:a}=Y(`node:worker_threads`);var o=class e extends Event{#e;constructor(e,t={}){if(e===i){super(arguments[1],arguments[2]),n.util.markAsUncloneable(this);return}let r=`MessageEvent constructor`;n.argumentLengthCheck(arguments,1,r),e=n.converters.DOMString(e,r,`type`),t=n.converters.MessageEventInit(t,r,`eventInitDict`),super(e,t),this.#e=t,n.util.markAsUncloneable(this)}get data(){return n.brandCheck(this,e),this.#e.data}get origin(){return n.brandCheck(this,e),this.#e.origin}get lastEventId(){return n.brandCheck(this,e),this.#e.lastEventId}get source(){return n.brandCheck(this,e),this.#e.source}get ports(){return n.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,i=!1,a=null,o=``,s=``,c=null,l=[]){return n.brandCheck(this,e),n.argumentLengthCheck(arguments,1,`MessageEvent.initMessageEvent`),new e(t,{bubbles:r,cancelable:i,data:a,origin:o,lastEventId:s,source:c,ports:l})}static createFastMessageEvent(t,n){let r=new e(i,t,n);return r.#e=n,r.#e.data??=null,r.#e.origin??=``,r.#e.lastEventId??=``,r.#e.source??=null,r.#e.ports??=[],r}};let{createFastMessageEvent:s}=o;delete o.createFastMessageEvent;var c=class e extends Event{#e;constructor(e,t={}){let r=`CloseEvent constructor`;n.argumentLengthCheck(arguments,1,r),e=n.converters.DOMString(e,r,`type`),t=n.converters.CloseEventInit(t),super(e,t),this.#e=t,n.util.markAsUncloneable(this)}get wasClean(){return n.brandCheck(this,e),this.#e.wasClean}get code(){return n.brandCheck(this,e),this.#e.code}get reason(){return n.brandCheck(this,e),this.#e.reason}},l=class e extends Event{#e;constructor(e,t){let r=`ErrorEvent constructor`;n.argumentLengthCheck(arguments,1,r),super(e,t),n.util.markAsUncloneable(this),e=n.converters.DOMString(e,r,`type`),t=n.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return n.brandCheck(this,e),this.#e.message}get filename(){return n.brandCheck(this,e),this.#e.filename}get lineno(){return n.brandCheck(this,e),this.#e.lineno}get colno(){return n.brandCheck(this,e),this.#e.colno}get error(){return n.brandCheck(this,e),this.#e.error}};Object.defineProperties(o.prototype,{[Symbol.toStringTag]:{value:`MessageEvent`,configurable:!0},data:r,origin:r,lastEventId:r,source:r,ports:r,initMessageEvent:r}),Object.defineProperties(c.prototype,{[Symbol.toStringTag]:{value:`CloseEvent`,configurable:!0},reason:r,code:r,wasClean:r}),Object.defineProperties(l.prototype,{[Symbol.toStringTag]:{value:`ErrorEvent`,configurable:!0},message:r,filename:r,lineno:r,colno:r,error:r}),n.converters.MessagePort=n.interfaceConverter(a),n.converters[`sequence`]=n.sequenceConverter(n.converters.MessagePort);let u=[{key:`bubbles`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`cancelable`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`composed`,converter:n.converters.boolean,defaultValue:()=>!1}];n.converters.MessageEventInit=n.dictionaryConverter([...u,{key:`data`,converter:n.converters.any,defaultValue:()=>null},{key:`origin`,converter:n.converters.USVString,defaultValue:()=>``},{key:`lastEventId`,converter:n.converters.DOMString,defaultValue:()=>``},{key:`source`,converter:n.nullableConverter(n.converters.MessagePort),defaultValue:()=>null},{key:`ports`,converter:n.converters[`sequence`],defaultValue:()=>[]}]),n.converters.CloseEventInit=n.dictionaryConverter([...u,{key:`wasClean`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`code`,converter:n.converters[`unsigned short`],defaultValue:()=>0},{key:`reason`,converter:n.converters.USVString,defaultValue:()=>``}]),n.converters.ErrorEventInit=n.dictionaryConverter([...u,{key:`message`,converter:n.converters.DOMString,defaultValue:()=>``},{key:`filename`,converter:n.converters.USVString,defaultValue:()=>``},{key:`lineno`,converter:n.converters[`unsigned long`],defaultValue:()=>0},{key:`colno`,converter:n.converters[`unsigned long`],defaultValue:()=>0},{key:`error`,converter:n.converters.any}]),t.exports={MessageEvent:o,CloseEvent:c,ErrorEvent:l,createFastMessageEvent:s}})),dn=J(((e,t)=>{t.exports={uid:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,sentCloseFrameState:{NOT_SENT:0,PROCESSING:1,SENT:2},staticPropertyDescriptors:{enumerable:!0,writable:!1,configurable:!1},states:{CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},opcodes:{CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},maxUnsigned16Bit:2**16-1,parserStates:{INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},emptyBuffer:Buffer.allocUnsafe(0),sendHints:{string:1,typedArray:2,arrayBuffer:3,blob:4}}})),fn=J(((e,t)=>{t.exports={kWebSocketURL:Symbol(`url`),kReadyState:Symbol(`ready state`),kController:Symbol(`controller`),kResponse:Symbol(`response`),kBinaryType:Symbol(`binary type`),kSentClose:Symbol(`sent close`),kReceivedClose:Symbol(`received close`),kByteParser:Symbol(`byte parser`)}})),pn=J(((e,t)=>{let{kReadyState:n,kController:r,kResponse:i,kBinaryType:a,kWebSocketURL:o}=fn(),{states:s,opcodes:c}=dn(),{ErrorEvent:l,createFastMessageEvent:u}=un(),{isUtf8:d}=Y(`node:buffer`),{collectASequenceOfCodePointsFast:f,removeHTTPWhitespace:p}=Qe();function m(e){return e[n]===s.CONNECTING}function h(e){return e[n]===s.OPEN}function g(e){return e[n]===s.CLOSING}function v(e){return e[n]===s.CLOSED}function y(e,t,n=(e,t)=>new Event(e,t),r={}){let i=n(e,r);t.dispatchEvent(i)}function b(e,t,r){if(e[n]!==s.OPEN)return;let i;if(t===c.TEXT)try{i=N(r)}catch{w(e,`Received invalid UTF-8 in text frame.`);return}else t===c.BINARY&&(i=e[a]===`blob`?new Blob([r]):x(r));y(`message`,e,u,{origin:e[o].origin,data:i})}function x(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function S(e){if(e.length===0)return!1;for(let t=0;t126||n===34||n===40||n===41||n===44||n===47||n===58||n===59||n===60||n===61||n===62||n===63||n===64||n===91||n===92||n===93||n===123||n===125)return!1}return!0}function C(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function w(e,t){let{[r]:n,[i]:a}=e;n.abort(),a?.socket&&!a.socket.destroyed&&a.socket.destroy(),t&&y(`error`,e,(e,t)=>new l(e,t),{error:Error(t),message:t})}function T(e){return e===c.CLOSE||e===c.PING||e===c.PONG}function E(e){return e===c.CONTINUATION}function D(e){return e===c.TEXT||e===c.BINARY}function O(e){return D(e)||E(e)||T(e)}function k(e){let t={position:0},n=new Map;for(;t.position57)return!1}let t=Number.parseInt(e,10);return t>=8&&t<=15}let j=typeof process.versions.icu==`string`,M=j?new TextDecoder(`utf-8`,{fatal:!0}):void 0,N=j?M.decode.bind(M):function(e){if(d(e))return e.toString(`utf-8`);throw TypeError(`Invalid utf-8 received.`)};t.exports={isConnecting:m,isEstablished:h,isClosing:g,isClosed:v,fireEvent:y,isValidSubprotocol:S,isValidStatusCode:C,failWebsocketConnection:w,websocketMessageReceived:b,utf8Decode:N,isControlFrame:T,isContinuationFrame:E,isTextBinaryFrame:D,isValidOpcode:O,parseExtensions:k,isValidClientWindowBits:A}})),mn=J(((e,t)=>{let{maxUnsigned16Bit:n}=dn(),r=16386,i,a=null,o=r;try{i=Y(`node:crypto`)}catch{i={randomFillSync:function(e,t,n){for(let t=0;tn?(o+=8,a=127):i>125&&(o+=2,a=126);let c=Buffer.allocUnsafe(i+o);c[0]=c[1]=0,c[0]|=128,c[0]=(c[0]&240)+e,c[o-4]=r[0],c[o-3]=r[1],c[o-2]=r[2],c[o-1]=r[3],c[1]=a,a===126?c.writeUInt16BE(i,2):a===127&&(c[2]=c[3]=0,c.writeUIntBE(i,4,6)),c[1]|=128;for(let e=0;e{let{uid:n,states:r,sentCloseFrameState:i,emptyBuffer:a,opcodes:o}=dn(),{kReadyState:s,kSentClose:c,kByteParser:l,kReceivedClose:u,kResponse:d}=fn(),{fireEvent:f,failWebsocketConnection:p,isClosing:m,isClosed:h,isEstablished:g,parseExtensions:v}=pn(),{channels:y}=Be(),{CloseEvent:b}=un(),{makeRequest:x}=Jt(),{fetching:S}=Yt(),{Headers:C,getHeadersList:w}=Gt(),{getDecodeSplit:T}=et(),{WebsocketFrameSend:E}=mn(),D;try{D=Y(`node:crypto`)}catch{}function O(e,t,r,i,a,o){let s=e;s.protocol=e.protocol===`ws:`?`http:`:`https:`;let c=x({urlList:[s],client:r,serviceWorkers:`none`,referrer:`no-referrer`,mode:`websocket`,credentials:`include`,cache:`no-store`,redirect:`error`});o.headers&&(c.headersList=w(new C(o.headers)));let l=D.randomBytes(16).toString(`base64`);c.headersList.append(`sec-websocket-key`,l),c.headersList.append(`sec-websocket-version`,`13`);for(let e of t)c.headersList.append(`sec-websocket-protocol`,e);return c.headersList.append(`sec-websocket-extensions`,`permessage-deflate; client_max_window_bits`),S({request:c,useParallelQueue:!0,dispatcher:o.dispatcher,processResponse(e){if(e.type===`error`||e.status!==101){p(i,`Received network error or non-101 status code.`);return}if(t.length!==0&&!e.headersList.get(`Sec-WebSocket-Protocol`)){p(i,`Server did not respond with sent protocols.`);return}if(e.headersList.get(`Upgrade`)?.toLowerCase()!==`websocket`){p(i,`Server did not set Upgrade header to "websocket".`);return}if(e.headersList.get(`Connection`)?.toLowerCase()!==`upgrade`){p(i,`Server did not set Connection header to "upgrade".`);return}if(e.headersList.get(`Sec-WebSocket-Accept`)!==D.createHash(`sha1`).update(l+n).digest(`base64`)){p(i,`Incorrect hash received in Sec-WebSocket-Accept header.`);return}let r=e.headersList.get(`Sec-WebSocket-Extensions`),o;if(r!==null&&(o=v(r),!o.has(`permessage-deflate`))){p(i,`Sec-WebSocket-Extensions header does not match.`);return}let s=e.headersList.get(`Sec-WebSocket-Protocol`);if(s!==null&&!T(`sec-websocket-protocol`,c.headersList).includes(s)){p(i,`Protocol was not set in the opening handshake.`);return}e.socket.on(`data`,A),e.socket.on(`close`,j),e.socket.on(`error`,M),y.open.hasSubscribers&&y.open.publish({address:e.socket.address(),protocol:s,extensions:r}),a(e,o)}})}function k(e,t,n,l){if(!(m(e)||h(e))){if(!g(e))p(e,`Connection was closed before it was established.`),e[s]=r.CLOSING;else if(e[c]===i.NOT_SENT){e[c]=i.PROCESSING;let u=new E;t!==void 0&&n===void 0?(u.frameData=Buffer.allocUnsafe(2),u.frameData.writeUInt16BE(t,0)):t!==void 0&&n!==void 0?(u.frameData=Buffer.allocUnsafe(2+l),u.frameData.writeUInt16BE(t,0),u.frameData.write(n,2,`utf-8`)):u.frameData=a,e[d].socket.write(u.createFrame(o.CLOSE)),e[c]=i.SENT,e[s]=r.CLOSING}else e[s]=r.CLOSING}}function A(e){this.ws[l].write(e)||this.pause()}function j(){let{ws:e}=this,{[d]:t}=e;t.socket.off(`data`,A),t.socket.off(`close`,j),t.socket.off(`error`,M);let n=e[c]===i.SENT&&e[u],a=1005,o=``,p=e[l].closingInfo;p&&!p.error?(a=p.code??1005,o=p.reason):e[u]||(a=1006),e[s]=r.CLOSED,f(`close`,e,(e,t)=>new b(e,t),{wasClean:n,code:a,reason:o}),y.close.hasSubscribers&&y.close.publish({websocket:e,code:a,reason:o})}function M(e){let{ws:t}=this;t[s]=r.CLOSING,y.socketError.hasSubscribers&&y.socketError.publish(e),this.destroy()}t.exports={establishWebSocketConnection:O,closeWebSocketConnection:k}})),gn=J(((e,t)=>{let{createInflateRaw:n,Z_DEFAULT_WINDOWBITS:r}=Y(`node:zlib`),{isValidClientWindowBits:i}=pn(),{MessageSizeExceededError:a}=Ie(),o=Buffer.from([0,0,255,255]),s=Symbol(`kBuffer`),c=Symbol(`kLength`);t.exports={PerMessageDeflate:class{#e;#t={};#n=0;constructor(e,t){this.#t.serverNoContextTakeover=e.has(`server_no_context_takeover`),this.#t.serverMaxWindowBits=e.get(`server_max_window_bits`),this.#n=t.maxPayloadSize}decompress(e,t,l){if(!this.#e){let e=r;if(this.#t.serverMaxWindowBits){if(!i(this.#t.serverMaxWindowBits)){l(Error(`Invalid server_max_window_bits`));return}e=Number.parseInt(this.#t.serverMaxWindowBits)}try{this.#e=n({windowBits:e})}catch(e){l(e);return}this.#e[s]=[],this.#e[c]=0,this.#e.on(`data`,e=>{if(this.#e[c]+=e.length,this.#n>0&&this.#e[c]>this.#n){l(new a),this.#e.removeAllListeners(),this.#e=null;return}this.#e[s].push(e)}),this.#e.on(`error`,e=>{this.#e=null,l(e)})}this.#e.write(e),t&&this.#e.write(o),this.#e.flush(()=>{if(!this.#e)return;let e=Buffer.concat(this.#e[s],this.#e[c]);this.#e[s].length=0,this.#e[c]=0,l(null,e)})}}}})),_n=J(((e,t)=>{let{Writable:n}=Y(`node:stream`),r=Y(`node:assert`),{parserStates:i,opcodes:a,states:o,emptyBuffer:s,sentCloseFrameState:c}=dn(),{kReadyState:l,kSentClose:u,kResponse:d,kReceivedClose:f}=fn(),{channels:p}=Be(),{isValidStatusCode:m,isValidOpcode:h,failWebsocketConnection:g,websocketMessageReceived:v,utf8Decode:y,isControlFrame:b,isTextBinaryFrame:x,isContinuationFrame:S}=pn(),{WebsocketFrameSend:C}=mn(),{closeWebSocketConnection:w}=hn(),{PerMessageDeflate:T}=gn(),{MessageSizeExceededError:E}=Ie();function D(e,t,n){w(e,t,n,Buffer.byteLength(n)),g(e,n)}t.exports={ByteParser:class extends n{#e=[];#t=0;#n=0;#r=!1;#i=i.INFO;#a={};#o=[];#s;#c;#l;constructor(e,t,n={}){super(),this.ws=e,this.#s=t??new Map,this.#c=n.maxFragments??0,this.#l=n.maxPayloadSize??0,this.#s.has(`permessage-deflate`)&&this.#s.set(`permessage-deflate`,new T(t,n))}_write(e,t,n){this.#e.push(e),this.#n+=e.length,this.#r=!0,this.run(n)}#u(){return this.#l>0&&!b(this.#a.opcode)&&this.#a.payloadLength+this.#t>this.#l?(D(this.ws,1009,`Payload size exceeds maximum allowed size`),!1):!0}run(e){for(;this.#r;)if(this.#i===i.INFO){if(this.#n<2)return e();let t=this.consume(2),n=!!(t[0]&128),r=t[0]&15,o=(t[1]&128)==128,s=!n&&r!==a.CONTINUATION,c=t[1]&127,l=t[0]&64,u=t[0]&32,d=t[0]&16;if(!h(r))return g(this.ws,`Invalid opcode received`),e();if(o)return g(this.ws,`Frame cannot be masked`),e();if(l!==0&&!this.#s.has(`permessage-deflate`)){g(this.ws,`Expected RSV1 to be clear.`);return}if(u!==0||d!==0){g(this.ws,`RSV1, RSV2, RSV3 must be clear`);return}if(s&&!x(r)){g(this.ws,`Invalid frame type was fragmented.`);return}if(x(r)&&this.#o.length>0){g(this.ws,`Expected continuation frame`);return}if(this.#a.fragmented&&s){g(this.ws,`Fragmented frame exceeded 125 bytes.`);return}if((c>125||s)&&b(r)){g(this.ws,`Control frame either too large or fragmented`);return}if(S(r)&&this.#o.length===0&&!this.#a.compressed){g(this.ws,`Unexpected continuation frame`);return}if(c<=125){if(this.#a.payloadLength=c,this.#i=i.READ_DATA,!this.#u())return}else c===126?this.#i=i.PAYLOADLENGTH_16:c===127&&(this.#i=i.PAYLOADLENGTH_64);x(r)&&(this.#a.binaryType=r,this.#a.compressed=l!==0),this.#a.opcode=r,this.#a.masked=o,this.#a.fin=n,this.#a.fragmented=s}else if(this.#i===i.PAYLOADLENGTH_16){if(this.#n<2)return e();let t=this.consume(2);if(this.#a.payloadLength=t.readUInt16BE(0),this.#i=i.READ_DATA,!this.#u())return}else if(this.#i===i.PAYLOADLENGTH_64){if(this.#n<8)return e();let t=this.consume(8),n=t.readUInt32BE(0),r=t.readUInt32BE(4);if(n!==0||r>2**31-1){g(this.ws,`Received payload length > 2^31 bytes.`);return}if(this.#a.payloadLength=r,this.#i=i.READ_DATA,!this.#u())return}else if(this.#i===i.READ_DATA){if(this.#n{if(t){let e=t instanceof E?1009:1007;D(this.ws,e,t.message);return}if(this.writeFragments(n)){if(this.#l>0&&this.#t>this.#l){D(this.ws,1009,new E().message);return}if(!this.#a.fin){this.#i=i.INFO,this.#r=!0,this.run(e);return}v(this.ws,this.#a.binaryType,this.consumeFragments()),this.#r=!0,this.#i=i.INFO,this.run(e)}}),this.#r=!1;break}else{if(!this.writeFragments(t))return;if(this.#l>0&&this.#t>this.#l){D(this.ws,1009,new E().message);return}!this.#a.fragmented&&this.#a.fin&&v(this.ws,this.#a.binaryType,this.consumeFragments()),this.#i=i.INFO}}}consume(e){if(e>this.#n)throw Error(`Called consume() before buffers satiated.`);if(e===0)return s;if(this.#e[0].length===e)return this.#n-=this.#e[0].length,this.#e.shift();let t=Buffer.allocUnsafe(e),n=0;for(;n!==e;){let r=this.#e[0],{length:i}=r;if(i+n===e){t.set(this.#e.shift(),n);break}if(i+n>e){t.set(r.subarray(0,e-n),n),this.#e[0]=r.subarray(e-n);break}t.set(this.#e.shift(),n),n+=r.length}return this.#n-=e,t}writeFragments(e){return this.#c>0&&this.#o.length===this.#c?(D(this.ws,1008,`Too many message fragments`),!1):(this.#t+=e.length,this.#o.push(e),!0)}consumeFragments(){let e=this.#o;if(e.length===1)return this.#t=0,e.shift();let t=Buffer.concat(e,this.#t);return this.#o=[],this.#t=0,t}parseCloseBody(e){r(e.length!==1);let t;if(e.length>=2&&(t=e.readUInt16BE(0)),t!==void 0&&!m(t))return{code:1002,reason:`Invalid status code`,error:!0};let n=e.subarray(2);n[0]===239&&n[1]===187&&n[2]===191&&(n=n.subarray(3));try{n=y(n)}catch{return{code:1007,reason:`Invalid UTF-8`,error:!0}}return{code:t,reason:n,error:!1}}parseControlFrame(e){let{opcode:t,payloadLength:n}=this.#a;if(t===a.CLOSE){if(n===1)return g(this.ws,`Received close frame with a 1-byte body.`),!1;if(this.#a.closeInfo=this.parseCloseBody(e),this.#a.closeInfo.error){let{code:e,reason:t}=this.#a.closeInfo;return w(this.ws,e,t,t.length),g(this.ws,t),!1}if(this.ws[u]!==c.SENT){let e=s;this.#a.closeInfo.code&&(e=Buffer.allocUnsafe(2),e.writeUInt16BE(this.#a.closeInfo.code,0));let t=new C(e);this.ws[d].socket.write(t.createFrame(a.CLOSE),e=>{e||(this.ws[u]=c.SENT)})}return this.ws[l]=o.CLOSING,this.ws[f]=!0,!1}if(t===a.PING){if(!this.ws[f]){let t=new C(e);this.ws[d].socket.write(t.createFrame(a.PONG)),p.ping.hasSubscribers&&p.ping.publish({payload:e})}}else t===a.PONG&&p.pong.hasSubscribers&&p.pong.publish({payload:e});return!0}get closingInfo(){return this.#a.closeInfo}}}})),vn=J(((e,t)=>{let{WebsocketFrameSend:n}=mn(),{opcodes:r,sendHints:i}=dn(),a=dt(),o=Buffer[Symbol.species];var s=class{#e=new a;#t=!1;#n;constructor(e){this.#n=e}add(e,t,n){if(n!==i.blob){let r=c(e,n);if(!this.#t)this.#n.write(r,t);else{let e={promise:null,callback:t,frame:r};this.#e.push(e)}return}let r={promise:e.arrayBuffer().then(e=>{r.promise=null,r.frame=c(e,n)}),callback:t,frame:null};this.#e.push(r),this.#t||this.#r()}async#r(){this.#t=!0;let e=this.#e;for(;!e.isEmpty();){let t=e.shift();t.promise!==null&&await t.promise,this.#n.write(t.frame,t.callback),t.callback=t.frame=null}this.#t=!1}};function c(e,t){return new n(l(e,t)).createFrame(t===i.string?r.TEXT:r.BINARY)}function l(e,t){switch(t){case i.string:return Buffer.from(e);case i.arrayBuffer:case i.blob:return new o(e);case i.typedArray:return new o(e.buffer,e.byteOffset,e.byteLength)}}t.exports={SendQueue:s}})),yn=J(((e,t)=>{let{webidl:n}=$e(),{URLSerializer:r}=Qe(),{environmentSettingsObject:i}=et(),{staticPropertyDescriptors:a,states:o,sentCloseFrameState:s,sendHints:c}=dn(),{kWebSocketURL:l,kReadyState:u,kController:d,kBinaryType:f,kResponse:p,kSentClose:m,kByteParser:h}=fn(),{isConnecting:g,isEstablished:v,isClosing:y,isValidSubprotocol:b,fireEvent:x}=pn(),{establishWebSocketConnection:S,closeWebSocketConnection:C}=hn(),{ByteParser:w}=_n(),{kEnumerableProperty:T,isBlobLike:E}=ze(),{getGlobalDispatcher:D}=zt(),{types:O}=Y(`node:util`),{ErrorEvent:k,CloseEvent:A}=un(),{SendQueue:j}=vn();var M=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n=``;#r=``;#i;constructor(t,r=[]){super(),n.util.markAsUncloneable(this);let a=`WebSocket constructor`;n.argumentLengthCheck(arguments,1,a);let o=n.converters[`DOMString or sequence or WebSocketInit`](r,a,`options`);t=n.converters.USVString(t,a,`url`),r=o.protocols;let c=i.settingsObject.baseUrl,p;try{p=new URL(t,c)}catch(e){throw new DOMException(e,`SyntaxError`)}if(p.protocol===`http:`?p.protocol=`ws:`:p.protocol===`https:`&&(p.protocol=`wss:`),p.protocol!==`ws:`&&p.protocol!==`wss:`)throw new DOMException(`Expected a ws: or wss: protocol, got ${p.protocol}`,`SyntaxError`);if(p.hash||p.href.endsWith(`#`))throw new DOMException(`Got fragment`,`SyntaxError`);if(typeof r==`string`&&(r=[r]),r.length!==new Set(r.map(e=>e.toLowerCase())).size||r.length>0&&!r.every(e=>b(e)))throw new DOMException(`Invalid Sec-WebSocket-Protocol value`,`SyntaxError`);this[l]=new URL(p.href);let h=i.settingsObject;this[d]=S(p,r,h,this,(e,t)=>this.#a(e,t),o),this[u]=e.CONNECTING,this[m]=s.NOT_SENT,this[f]=`blob`}close(t=void 0,r=void 0){n.brandCheck(this,e);let i=`WebSocket.close`;if(t!==void 0&&(t=n.converters[`unsigned short`](t,i,`code`,{clamp:!0})),r!==void 0&&(r=n.converters.USVString(r,i,`reason`)),t!==void 0&&t!==1e3&&(t<3e3||t>4999))throw new DOMException(`invalid code`,`InvalidAccessError`);let a=0;if(r!==void 0&&(a=Buffer.byteLength(r),a>123))throw new DOMException(`Reason must be less than 123 bytes; received ${a}`,`SyntaxError`);C(this,t,r,a)}send(t){n.brandCheck(this,e);let r=`WebSocket.send`;if(n.argumentLengthCheck(arguments,1,r),t=n.converters.WebSocketSendData(t,r,`data`),g(this))throw new DOMException(`Sent before connected.`,`InvalidStateError`);if(!(!v(this)||y(this))){if(typeof t==`string`){let e=Buffer.byteLength(t);this.#t+=e,this.#i.add(t,()=>{this.#t-=e},c.string)}else O.isArrayBuffer(t)?(this.#t+=t.byteLength,this.#i.add(t,()=>{this.#t-=t.byteLength},c.arrayBuffer)):ArrayBuffer.isView(t)?(this.#t+=t.byteLength,this.#i.add(t,()=>{this.#t-=t.byteLength},c.typedArray)):E(t)&&(this.#t+=t.size,this.#i.add(t,()=>{this.#t-=t.size},c.blob))}}get readyState(){return n.brandCheck(this,e),this[u]}get bufferedAmount(){return n.brandCheck(this,e),this.#t}get url(){return n.brandCheck(this,e),r(this[l])}get extensions(){return n.brandCheck(this,e),this.#r}get protocol(){return n.brandCheck(this,e),this.#n}get onopen(){return n.brandCheck(this,e),this.#e.open}set onopen(t){n.brandCheck(this,e),this.#e.open&&this.removeEventListener(`open`,this.#e.open),typeof t==`function`?(this.#e.open=t,this.addEventListener(`open`,t)):this.#e.open=null}get onerror(){return n.brandCheck(this,e),this.#e.error}set onerror(t){n.brandCheck(this,e),this.#e.error&&this.removeEventListener(`error`,this.#e.error),typeof t==`function`?(this.#e.error=t,this.addEventListener(`error`,t)):this.#e.error=null}get onclose(){return n.brandCheck(this,e),this.#e.close}set onclose(t){n.brandCheck(this,e),this.#e.close&&this.removeEventListener(`close`,this.#e.close),typeof t==`function`?(this.#e.close=t,this.addEventListener(`close`,t)):this.#e.close=null}get onmessage(){return n.brandCheck(this,e),this.#e.message}set onmessage(t){n.brandCheck(this,e),this.#e.message&&this.removeEventListener(`message`,this.#e.message),typeof t==`function`?(this.#e.message=t,this.addEventListener(`message`,t)):this.#e.message=null}get binaryType(){return n.brandCheck(this,e),this[f]}set binaryType(t){n.brandCheck(this,e),t!==`blob`&&t!==`arraybuffer`?this[f]=`blob`:this[f]=t}#a(e,t){this[p]=e;let n=this[d]?.dispatcher?.webSocketOptions,r=n?.maxFragments,i=n?.maxPayloadSize,a=new w(this,t,{maxFragments:r,maxPayloadSize:i});a.on(`drain`,N),a.on(`error`,P.bind(this)),e.socket.ws=this,this[h]=a,this.#i=new j(e.socket),this[u]=o.OPEN;let s=e.headersList.get(`sec-websocket-extensions`);s!==null&&(this.#r=s);let c=e.headersList.get(`sec-websocket-protocol`);c!==null&&(this.#n=c),x(`open`,this)}};M.CONNECTING=M.prototype.CONNECTING=o.CONNECTING,M.OPEN=M.prototype.OPEN=o.OPEN,M.CLOSING=M.prototype.CLOSING=o.CLOSING,M.CLOSED=M.prototype.CLOSED=o.CLOSED,Object.defineProperties(M.prototype,{CONNECTING:a,OPEN:a,CLOSING:a,CLOSED:a,url:T,readyState:T,bufferedAmount:T,onopen:T,onerror:T,onclose:T,close:T,onmessage:T,binaryType:T,send:T,extensions:T,protocol:T,[Symbol.toStringTag]:{value:`WebSocket`,writable:!1,enumerable:!1,configurable:!0}}),Object.defineProperties(M,{CONNECTING:a,OPEN:a,CLOSING:a,CLOSED:a}),n.converters[`sequence`]=n.sequenceConverter(n.converters.DOMString),n.converters[`DOMString or sequence`]=function(e,t,r){return n.util.Type(e)===`Object`&&Symbol.iterator in e?n.converters[`sequence`](e):n.converters.DOMString(e,t,r)},n.converters.WebSocketInit=n.dictionaryConverter([{key:`protocols`,converter:n.converters[`DOMString or sequence`],defaultValue:()=>[]},{key:`dispatcher`,converter:n.converters.any,defaultValue:()=>D()},{key:`headers`,converter:n.nullableConverter(n.converters.HeadersInit)}]),n.converters[`DOMString or sequence or WebSocketInit`]=function(e){return n.util.Type(e)===`Object`&&!(Symbol.iterator in e)?n.converters.WebSocketInit(e):{protocols:n.converters[`DOMString or sequence`](e)}},n.converters.WebSocketSendData=function(e){if(n.util.Type(e)===`Object`){if(E(e))return n.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||O.isArrayBuffer(e))return n.converters.BufferSource(e)}return n.converters.USVString(e)};function N(){this.ws[p].socket.resume()}function P(e){let t,n;e instanceof A?(t=e.reason,n=e.code):t=e.message,x(`error`,this,()=>new k(`error`,{error:e,message:t})),C(this,n)}t.exports={WebSocket:M}})),bn=J(((e,t)=>{function n(e){return e.indexOf(`\0`)===-1}function r(e){if(e.length===0)return!1;for(let t=0;t57)return!1;return!0}function i(e){return new Promise(t=>{setTimeout(t,e).unref()})}t.exports={isValidLastEventId:n,isASCIINumber:r,delay:i}})),xn=J(((e,t)=>{let{Transform:n}=Y(`node:stream`),{isASCIINumber:r,isValidLastEventId:i}=bn(),a=[239,187,191];t.exports={EventSourceStream:class extends n{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(e={}){e.readableObjectMode=!0,super(e),this.state=e.eventSourceSettings||{},e.push&&(this.push=e.push)}_transform(e,t,n){if(e.length===0){n();return}if(this.buffer=this.buffer?Buffer.concat([this.buffer,e]):e,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===a[0]){n();return}this.checkBOM=!1,n();return;case 2:if(this.buffer[0]===a[0]&&this.buffer[1]===a[1]){n();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===a[0]&&this.buffer[1]===a[1]&&this.buffer[2]===a[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,n();return}this.checkBOM=!1;break;default:this.buffer[0]===a[0]&&this.buffer[1]===a[1]&&this.buffer[2]===a[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1}for(;this.pos0&&(t[a]=o)}}processEvent(e){e.retry&&r(e.retry)&&(this.state.reconnectionTime=parseInt(e.retry,10)),e.id&&i(e.id)&&(this.state.lastEventId=e.id),e.data!==void 0&&this.push({type:e.event||`message`,options:{data:e.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}}}})),Sn=J(((e,t)=>{let{pipeline:n}=Y(`node:stream`),{fetching:r}=Yt(),{makeRequest:i}=Jt(),{webidl:a}=$e(),{EventSourceStream:o}=xn(),{parseMIMEType:s}=Qe(),{createFastMessageEvent:c}=un(),{isNetworkError:l}=Kt(),{delay:u}=bn(),{kEnumerableProperty:d}=ze(),{environmentSettingsObject:f}=et(),p=!1,m=3e3;var h=class e extends EventTarget{#e={open:null,error:null,message:null};#t=null;#n=!1;#r=0;#i=null;#a=null;#o;#s;constructor(e,t={}){super(),a.util.markAsUncloneable(this);let n=`EventSource constructor`;a.argumentLengthCheck(arguments,1,n),p||(p=!0,process.emitWarning(`EventSource is experimental, expect them to change at any time.`,{code:`UNDICI-ES`})),e=a.converters.USVString(e,n,`url`),t=a.converters.EventSourceInitDict(t,n,`eventSourceInitDict`),this.#o=t.dispatcher,this.#s={lastEventId:``,reconnectionTime:m};let r=f,o;try{o=new URL(e,r.settingsObject.baseUrl),this.#s.origin=o.origin}catch(e){throw new DOMException(e,`SyntaxError`)}this.#t=o.href;let s=`anonymous`;t.withCredentials&&(s=`use-credentials`,this.#n=!0);let c={redirect:`follow`,keepalive:!0,mode:`cors`,credentials:s===`anonymous`?`same-origin`:`omit`,referrer:`no-referrer`};c.client=f.settingsObject,c.headersList=[[`accept`,{name:`accept`,value:`text/event-stream`}]],c.cache=`no-store`,c.initiator=`other`,c.urlList=[new URL(this.#t)],this.#i=i(c),this.#c()}get readyState(){return this.#r}get url(){return this.#t}get withCredentials(){return this.#n}#c(){if(this.#r===2)return;this.#r=0;let e={request:this.#i,dispatcher:this.#o};e.processResponseEndOfBody=e=>{l(e)&&(this.dispatchEvent(new Event(`error`)),this.close()),this.#l()},e.processResponse=e=>{if(l(e)){if(e.aborted){this.close(),this.dispatchEvent(new Event(`error`));return}this.#l();return}let t=e.headersList.get(`content-type`,!0),r=t===null?`failure`:s(t),i=r!==`failure`&&r.essence===`text/event-stream`;if(e.status!==200||i===!1){this.close(),this.dispatchEvent(new Event(`error`));return}this.#r=1,this.dispatchEvent(new Event(`open`)),this.#s.origin=e.urlList[e.urlList.length-1].origin;let a=new o({eventSourceSettings:this.#s,push:e=>{this.dispatchEvent(c(e.type,e.options))}});n(e.body.stream,a,e=>{e?.aborted===!1&&(this.close(),this.dispatchEvent(new Event(`error`)))})},this.#a=r(e)}async#l(){this.#r!==2&&(this.#r=0,this.dispatchEvent(new Event(`error`)),await u(this.#s.reconnectionTime),this.#r===0&&(this.#s.lastEventId.length&&this.#i.headersList.set(`last-event-id`,this.#s.lastEventId,!0),this.#c()))}close(){a.brandCheck(this,e),this.#r!==2&&(this.#r=2,this.#a.abort(),this.#i=null)}get onopen(){return this.#e.open}set onopen(e){this.#e.open&&this.removeEventListener(`open`,this.#e.open),typeof e==`function`?(this.#e.open=e,this.addEventListener(`open`,e)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(e){this.#e.message&&this.removeEventListener(`message`,this.#e.message),typeof e==`function`?(this.#e.message=e,this.addEventListener(`message`,e)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(e){this.#e.error&&this.removeEventListener(`error`,this.#e.error),typeof e==`function`?(this.#e.error=e,this.addEventListener(`error`,e)):this.#e.error=null}};let g={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:0,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:1,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:2,writable:!1}};Object.defineProperties(h,g),Object.defineProperties(h.prototype,g),Object.defineProperties(h.prototype,{close:d,onerror:d,onmessage:d,onopen:d,readyState:d,url:d,withCredentials:d}),a.converters.EventSourceInitDict=a.dictionaryConverter([{key:`withCredentials`,converter:a.converters.boolean,defaultValue:()=>!1},{key:`dispatcher`,converter:a.converters.any}]),t.exports={EventSource:h,defaultReconnectionTime:m}})),Cn=J(((e,t)=>{let n=ut(),r=He(),i=mt(),a=ht(),o=gt(),s=_t(),c=vt(),l=bt(),u=Ie(),d=ze(),{InvalidArgumentError:f}=u,p=kt(),m=Ge(),h=Pt(),g=Rt(),v=Ft(),y=At(),b=yt(),{getGlobalDispatcher:x,setGlobalDispatcher:S}=zt(),C=Bt(),w=ct(),T=lt();Object.assign(r.prototype,p),t.exports.Dispatcher=r,t.exports.Client=n,t.exports.Pool=i,t.exports.BalancedPool=a,t.exports.Agent=o,t.exports.ProxyAgent=s,t.exports.EnvHttpProxyAgent=c,t.exports.RetryAgent=l,t.exports.RetryHandler=b,t.exports.DecoratorHandler=C,t.exports.RedirectHandler=w,t.exports.createRedirectInterceptor=T,t.exports.interceptors={redirect:Vt(),retry:Ht(),dump:Ut(),dns:Wt()},t.exports.buildConnector=m,t.exports.errors=u,t.exports.util={parseHeaders:d.parseHeaders,headerNameToString:d.headerNameToString};function E(e){return(t,n,r)=>{if(typeof n==`function`&&(r=n,n=null),!t||typeof t!=`string`&&typeof t!=`object`&&!(t instanceof URL))throw new f(`invalid url`);if(n!=null&&typeof n!=`object`)throw new f(`invalid opts`);if(n&&n.path!=null){if(typeof n.path!=`string`)throw new f(`invalid opts.path`);let e=n.path;n.path.startsWith(`/`)||(e=`/${e}`),t=new URL(d.parseOrigin(t).origin+e)}else n||=typeof t==`object`?t:{},t=d.parseURL(t);let{agent:i,dispatcher:a=x()}=n;if(i)throw new f(`unsupported opts.agent. Did you mean opts.client?`);return e.call(a,{...n,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:n.method||(n.body?`PUT`:`GET`)},r)}}t.exports.setGlobalDispatcher=S,t.exports.getGlobalDispatcher=x;let D=Yt().fetch;t.exports.fetch=async function(e,t=void 0){try{return await D(e,t)}catch(e){throw e&&typeof e==`object`&&Error.captureStackTrace(e),e}},t.exports.Headers=Gt().Headers,t.exports.Response=Kt().Response,t.exports.Request=Jt().Request,t.exports.FormData=rt().FormData,t.exports.File=globalThis.File??Y(`node:buffer`).File,t.exports.FileReader=en().FileReader;let{setGlobalOrigin:O,getGlobalOrigin:k}=Ze();t.exports.setGlobalOrigin=O,t.exports.getGlobalOrigin=k;let{CacheStorage:A}=an(),{kConstruct:j}=tn();t.exports.caches=new A(j);let{deleteCookie:M,getCookies:N,getSetCookies:P,setCookie:F}=ln();t.exports.deleteCookie=M,t.exports.getCookies=N,t.exports.getSetCookies=P,t.exports.setCookie=F;let{parseMIMEType:I,serializeAMimeType:L}=Qe();t.exports.parseMIMEType=I,t.exports.serializeAMimeType=L;let{CloseEvent:R,ErrorEvent:z,MessageEvent:ee}=un();t.exports.WebSocket=yn().WebSocket,t.exports.CloseEvent=R,t.exports.ErrorEvent=z,t.exports.MessageEvent=ee,t.exports.request=E(p.request),t.exports.stream=E(p.stream),t.exports.pipeline=E(p.pipeline),t.exports.connect=E(p.connect),t.exports.upgrade=E(p.upgrade),t.exports.MockClient=h,t.exports.MockPool=v,t.exports.MockAgent=g,t.exports.mockErrors=y;let{EventSource:B}=Sn();t.exports.EventSource=B})),wn=be(Pe(),1),Tn=Cn(),En=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Dn;(function(e){e[e.OK=200]=`OK`,e[e.MultipleChoices=300]=`MultipleChoices`,e[e.MovedPermanently=301]=`MovedPermanently`,e[e.ResourceMoved=302]=`ResourceMoved`,e[e.SeeOther=303]=`SeeOther`,e[e.NotModified=304]=`NotModified`,e[e.UseProxy=305]=`UseProxy`,e[e.SwitchProxy=306]=`SwitchProxy`,e[e.TemporaryRedirect=307]=`TemporaryRedirect`,e[e.PermanentRedirect=308]=`PermanentRedirect`,e[e.BadRequest=400]=`BadRequest`,e[e.Unauthorized=401]=`Unauthorized`,e[e.PaymentRequired=402]=`PaymentRequired`,e[e.Forbidden=403]=`Forbidden`,e[e.NotFound=404]=`NotFound`,e[e.MethodNotAllowed=405]=`MethodNotAllowed`,e[e.NotAcceptable=406]=`NotAcceptable`,e[e.ProxyAuthenticationRequired=407]=`ProxyAuthenticationRequired`,e[e.RequestTimeout=408]=`RequestTimeout`,e[e.Conflict=409]=`Conflict`,e[e.Gone=410]=`Gone`,e[e.TooManyRequests=429]=`TooManyRequests`,e[e.InternalServerError=500]=`InternalServerError`,e[e.NotImplemented=501]=`NotImplemented`,e[e.BadGateway=502]=`BadGateway`,e[e.ServiceUnavailable=503]=`ServiceUnavailable`,e[e.GatewayTimeout=504]=`GatewayTimeout`})(Dn||={});var On;(function(e){e.Accept=`accept`,e.ContentType=`content-type`})(On||={});var kn;(function(e){e.ApplicationJson=`application/json`})(kn||={});const An=[Dn.MovedPermanently,Dn.ResourceMoved,Dn.SeeOther,Dn.TemporaryRedirect,Dn.PermanentRedirect],jn=[Dn.BadGateway,Dn.ServiceUnavailable,Dn.GatewayTimeout],Mn=[`OPTIONS`,`GET`,`DELETE`,`HEAD`];var Nn=class e extends Error{constructor(t,n){super(t),this.name=`HttpClientError`,this.statusCode=n,Object.setPrototypeOf(this,e.prototype)}},Pn=class{constructor(e){this.message=e}readBody(){return En(this,void 0,void 0,function*(){return new Promise(e=>En(this,void 0,void 0,function*(){let t=Buffer.alloc(0);this.message.on(`data`,e=>{t=Buffer.concat([t,e])}),this.message.on(`end`,()=>{e(t.toString())})}))})}readBodyBuffer(){return En(this,void 0,void 0,function*(){return new Promise(e=>En(this,void 0,void 0,function*(){let t=[];this.message.on(`data`,e=>{t.push(e)}),this.message.on(`end`,()=>{e(Buffer.concat(t))})}))})}},Fn=class{constructor(e,t,n){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=this._getUserAgentWithOrchestrationId(e),this.handlers=t||[],this.requestOptions=n,n&&(n.ignoreSslError!=null&&(this._ignoreSslError=n.ignoreSslError),this._socketTimeout=n.socketTimeout,n.allowRedirects!=null&&(this._allowRedirects=n.allowRedirects),n.allowRedirectDowngrade!=null&&(this._allowRedirectDowngrade=n.allowRedirectDowngrade),n.maxRedirects!=null&&(this._maxRedirects=Math.max(n.maxRedirects,0)),n.keepAlive!=null&&(this._keepAlive=n.keepAlive),n.allowRetries!=null&&(this._allowRetries=n.allowRetries),n.maxRetries!=null&&(this._maxRetries=n.maxRetries))}options(e,t){return En(this,void 0,void 0,function*(){return this.request(`OPTIONS`,e,null,t||{})})}get(e,t){return En(this,void 0,void 0,function*(){return this.request(`GET`,e,null,t||{})})}del(e,t){return En(this,void 0,void 0,function*(){return this.request(`DELETE`,e,null,t||{})})}post(e,t,n){return En(this,void 0,void 0,function*(){return this.request(`POST`,e,t,n||{})})}patch(e,t,n){return En(this,void 0,void 0,function*(){return this.request(`PATCH`,e,t,n||{})})}put(e,t,n){return En(this,void 0,void 0,function*(){return this.request(`PUT`,e,t,n||{})})}head(e,t){return En(this,void 0,void 0,function*(){return this.request(`HEAD`,e,null,t||{})})}sendStream(e,t,n,r){return En(this,void 0,void 0,function*(){return this.request(e,t,n,r)})}getJson(e){return En(this,arguments,void 0,function*(e,t={}){t[On.Accept]=this._getExistingOrDefaultHeader(t,On.Accept,kn.ApplicationJson);let n=yield this.get(e,t);return this._processResponse(n,this.requestOptions)})}postJson(e,t){return En(this,arguments,void 0,function*(e,t,n={}){let r=JSON.stringify(t,null,2);n[On.Accept]=this._getExistingOrDefaultHeader(n,On.Accept,kn.ApplicationJson),n[On.ContentType]=this._getExistingOrDefaultContentTypeHeader(n,kn.ApplicationJson);let i=yield this.post(e,r,n);return this._processResponse(i,this.requestOptions)})}putJson(e,t){return En(this,arguments,void 0,function*(e,t,n={}){let r=JSON.stringify(t,null,2);n[On.Accept]=this._getExistingOrDefaultHeader(n,On.Accept,kn.ApplicationJson),n[On.ContentType]=this._getExistingOrDefaultContentTypeHeader(n,kn.ApplicationJson);let i=yield this.put(e,r,n);return this._processResponse(i,this.requestOptions)})}patchJson(e,t){return En(this,arguments,void 0,function*(e,t,n={}){let r=JSON.stringify(t,null,2);n[On.Accept]=this._getExistingOrDefaultHeader(n,On.Accept,kn.ApplicationJson),n[On.ContentType]=this._getExistingOrDefaultContentTypeHeader(n,kn.ApplicationJson);let i=yield this.patch(e,r,n);return this._processResponse(i,this.requestOptions)})}request(e,t,n,r){return En(this,void 0,void 0,function*(){if(this._disposed)throw Error(`Client has already been disposed.`);let i=new URL(t),a=this._prepareRequest(e,i,r),o=this._allowRetries&&Mn.includes(e)?this._maxRetries+1:1,s=0,c;do{if(c=yield this.requestRaw(a,n),c&&c.message&&c.message.statusCode===Dn.Unauthorized){let e;for(let t of this.handlers)if(t.canHandleAuthentication(c)){e=t;break}return e?e.handleAuthentication(this,a,n):c}let t=this._maxRedirects;for(;c.message.statusCode&&An.includes(c.message.statusCode)&&this._allowRedirects&&t>0;){let o=c.message.headers.location;if(!o)break;let s=new URL(o);if(i.protocol===`https:`&&i.protocol!==s.protocol&&!this._allowRedirectDowngrade)throw Error(`Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.`);if(yield c.readBody(),s.hostname!==i.hostname)for(let e in r)e.toLowerCase()===`authorization`&&delete r[e];a=this._prepareRequest(e,s,r),c=yield this.requestRaw(a,n),t--}if(!c.message.statusCode||!jn.includes(c.message.statusCode))return c;s+=1,s{function i(e,t){e?r(e):t?n(t):r(Error(`Unknown error`))}this.requestRawWithCallback(e,t,i)})})}requestRawWithCallback(e,t,n){typeof t==`string`&&(e.options.headers||(e.options.headers={}),e.options.headers[`Content-Length`]=Buffer.byteLength(t,`utf8`));let r=!1;function i(e,t){r||(r=!0,n(e,t))}let a=e.httpModule.request(e.options,e=>{i(void 0,new Pn(e))}),o;a.on(`socket`,e=>{o=e}),a.setTimeout(this._socketTimeout||18e4,()=>{o&&o.end(),i(Error(`Request timeout: ${e.options.path}`))}),a.on(`error`,function(e){i(e)}),t&&typeof t==`string`&&a.write(t,`utf8`),t&&typeof t!=`string`?(t.on(`close`,function(){a.end()}),t.pipe(a)):a.end()}getAgent(e){let t=new URL(e);return this._getAgent(t)}getAgentDispatcher(e){let t=new URL(e),n=ke(t);if(n&&n.hostname)return this._getProxyAgentDispatcher(t,n)}_prepareRequest(e,t,n){let r={};r.parsedUrl=t;let i=r.parsedUrl.protocol===`https:`;r.httpModule=i?D:E;let a=i?443:80;if(r.options={},r.options.host=r.parsedUrl.hostname,r.options.port=r.parsedUrl.port?parseInt(r.parsedUrl.port):a,r.options.path=(r.parsedUrl.pathname||``)+(r.parsedUrl.search||``),r.options.method=e,r.options.headers=this._mergeHeaders(n),this.userAgent!=null&&(r.options.headers[`user-agent`]=this.userAgent),r.options.agent=this._getAgent(r.parsedUrl),this.handlers)for(let e of this.handlers)e.prepareRequest(r.options);return r}_mergeHeaders(e){return this.requestOptions&&this.requestOptions.headers?Object.assign({},In(this.requestOptions.headers),In(e||{})):In(e||{})}_getExistingOrDefaultHeader(e,t,n){let r;if(this.requestOptions&&this.requestOptions.headers){let e=In(this.requestOptions.headers)[t];e&&(r=typeof e==`number`?e.toString():e)}let i=e[t];return i===void 0?r===void 0?n:r:typeof i==`number`?i.toString():i}_getExistingOrDefaultContentTypeHeader(e,t){let n;if(this.requestOptions&&this.requestOptions.headers){let e=In(this.requestOptions.headers)[On.ContentType];e&&(n=typeof e==`number`?String(e):Array.isArray(e)?e.join(`, `):e)}let r=e[On.ContentType];return r===void 0?n===void 0?t:n:typeof r==`number`?String(r):Array.isArray(r)?r.join(`, `):r}_getAgent(e){let t,n=ke(e),r=n&&n.hostname;if(this._keepAlive&&r&&(t=this._proxyAgent),r||(t=this._agent),t)return t;let i=e.protocol===`https:`,a=100;if(this.requestOptions&&(a=this.requestOptions.maxSockets||E.globalAgent.maxSockets),n&&n.hostname){let e={maxSockets:a,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(n.username||n.password)&&{proxyAuth:`${n.username}:${n.password}`}),{host:n.hostname,port:n.port})},r,o=n.protocol===`https:`;r=i?o?wn.httpsOverHttps:wn.httpsOverHttp:o?wn.httpOverHttps:wn.httpOverHttp,t=r(e),this._proxyAgent=t}if(!t){let e={keepAlive:this._keepAlive,maxSockets:a};t=i?new D.Agent(e):new E.Agent(e),this._agent=t}return i&&this._ignoreSslError&&(t.options=Object.assign(t.options||{},{rejectUnauthorized:!1})),t}_getProxyAgentDispatcher(e,t){let n;if(this._keepAlive&&(n=this._proxyAgentDispatcher),n)return n;let r=e.protocol===`https:`;return n=new Tn.ProxyAgent(Object.assign({uri:t.href,pipelining:+!!this._keepAlive},(t.username||t.password)&&{token:`Basic ${Buffer.from(`${t.username}:${t.password}`).toString(`base64`)}`})),this._proxyAgentDispatcher=n,r&&this._ignoreSslError&&(n.options=Object.assign(n.options.requestTls||{},{rejectUnauthorized:!1})),n}_getUserAgentWithOrchestrationId(e){let t=e||`actions/http-client`,n=process.env.ACTIONS_ORCHESTRATION_ID;return n?`${t} actions_orchestration_id/${n.replace(/[^a-z0-9_.-]/gi,`_`)}`:t}_performExponentialBackoff(e){return En(this,void 0,void 0,function*(){e=Math.min(10,e);let t=5*2**e;return new Promise(e=>setTimeout(()=>e(),t))})}_processResponse(e,t){return En(this,void 0,void 0,function*(){return new Promise((n,r)=>En(this,void 0,void 0,function*(){let i=e.message.statusCode||0,a={statusCode:i,result:null,headers:{}};i===Dn.NotFound&&n(a);function o(e,t){if(typeof t==`string`){let e=new Date(t);if(!isNaN(e.valueOf()))return e}return t}let s,c;try{c=yield e.readBody(),c&&c.length>0&&(s=t&&t.deserializeDates?JSON.parse(c,o):JSON.parse(c),a.result=s),a.headers=e.message.headers}catch{}if(i>299){let e;e=s&&s.message?s.message:c&&c.length>0?c:`Failed request: (${i})`;let t=new Nn(e,i);t.result=a.result,r(t)}else n(a)}))})}};const In=e=>Object.keys(e).reduce((t,n)=>(t[n.toLowerCase()]=e[n],t),{});var Ln=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Rn=class{constructor(e){this.token=e}prepareRequest(e){if(!e.headers)throw Error(`The request has no headers`);e.headers.Authorization=`Bearer ${this.token}`}canHandleAuthentication(){return!1}handleAuthentication(){return Ln(this,void 0,void 0,function*(){throw Error(`not implemented`)})}},zn=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};const{access:Bn,appendFile:Vn,writeFile:Hn}=c,Un=`GITHUB_STEP_SUMMARY`;new class{constructor(){this._buffer=``}filePath(){return zn(this,void 0,void 0,function*(){if(this._filePath)return this._filePath;let e=process.env[Un];if(!e)throw Error(`Unable to find environment variable for $${Un}. Check if your runtime environment supports job summaries.`);try{yield Bn(e,o.R_OK|o.W_OK)}catch{throw Error(`Unable to access summary file: '${e}'. Check if the file has correct read/write permissions.`)}return this._filePath=e,this._filePath})}wrap(e,t,n={}){let r=Object.entries(n).map(([e,t])=>` ${e}="${t}"`).join(``);return t?`<${e}${r}>${t}`:`<${e}${r}>`}write(e){return zn(this,void 0,void 0,function*(){let t=!!e?.overwrite,n=yield this.filePath();return yield(t?Hn:Vn)(n,this._buffer,{encoding:`utf8`}),this.emptyBuffer()})}clear(){return zn(this,void 0,void 0,function*(){return this.emptyBuffer().write({overwrite:!0})})}stringify(){return this._buffer}isEmptyBuffer(){return this._buffer.length===0}emptyBuffer(){return this._buffer=``,this}addRaw(e,t=!1){return this._buffer+=e,t?this.addEOL():this}addEOL(){return this.addRaw(r)}addCodeBlock(e,t){let n=Object.assign({},t&&{lang:t}),r=this.wrap(`pre`,this.wrap(`code`,e),n);return this.addRaw(r).addEOL()}addList(e,t=!1){let n=t?`ol`:`ul`,r=e.map(e=>this.wrap(`li`,e)).join(``),i=this.wrap(n,r);return this.addRaw(i).addEOL()}addTable(e){let t=e.map(e=>{let t=e.map(e=>{if(typeof e==`string`)return this.wrap(`td`,e);let{header:t,data:n,colspan:r,rowspan:i}=e,a=t?`th`:`td`,o=Object.assign(Object.assign({},r&&{colspan:r}),i&&{rowspan:i});return this.wrap(a,n,o)}).join(``);return this.wrap(`tr`,t)}).join(``),n=this.wrap(`table`,t);return this.addRaw(n).addEOL()}addDetails(e,t){let n=this.wrap(`details`,this.wrap(`summary`,e)+t);return this.addRaw(n).addEOL()}addImage(e,t,n){let{width:r,height:i}=n||{},a=Object.assign(Object.assign({},r&&{width:r}),i&&{height:i}),o=this.wrap(`img`,null,Object.assign({src:e,alt:t},a));return this.addRaw(o).addEOL()}addHeading(e,t){let n=`h${t}`,r=[`h1`,`h2`,`h3`,`h4`,`h5`,`h6`].includes(n)?n:`h1`,i=this.wrap(r,e);return this.addRaw(i).addEOL()}addSeparator(){let e=this.wrap(`hr`,null);return this.addRaw(e).addEOL()}addBreak(){let e=this.wrap(`br`,null);return this.addRaw(e).addEOL()}addQuote(e,t){let n=Object.assign({},t&&{cite:t}),r=this.wrap(`blockquote`,e,n);return this.addRaw(r).addEOL()}addLink(e,t){let n=this.wrap(`a`,e,{href:t});return this.addRaw(n).addEOL()}};var Wn=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};const{chmod:Gn,copyFile:Kn,lstat:qn,mkdir:Jn,open:Yn,readdir:Xn,rename:Zn,rm:Qn,rmdir:$n,stat:er,symlink:tr,unlink:nr}=a.promises,rr=process.platform===`win32`;a.constants.O_RDONLY;function ir(e){return Wn(this,void 0,void 0,function*(){try{yield er(e)}catch(e){if(e.code===`ENOENT`)return!1;throw e}return!0})}function ar(e){if(e=sr(e),!e)throw Error(`isRooted() parameter "p" cannot be empty`);return rr?e.startsWith(`\\`)||/^[A-Z]:/i.test(e):e.startsWith(`/`)}function or(e,t){return Wn(this,void 0,void 0,function*(){let n;try{n=yield er(e)}catch(t){t.code!==`ENOENT`&&console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}if(n&&n.isFile()){if(rr){let n=g.extname(e).toUpperCase();if(t.some(e=>e.toUpperCase()===n))return e}else if(cr(n))return e}let r=e;for(let i of t){e=r+i,n=void 0;try{n=yield er(e)}catch(t){t.code!==`ENOENT`&&console.log(`Unexpected error attempting to determine if executable file exists '${e}': ${t}`)}if(n&&n.isFile()){if(rr){try{let t=g.dirname(e),n=g.basename(e).toUpperCase();for(let r of yield Xn(t))if(n===r.toUpperCase()){e=g.join(t,r);break}}catch(t){console.log(`Unexpected error attempting to determine the actual case of the file '${e}': ${t}`)}return e}if(cr(n))return e}}return``})}function sr(e){return e||=``,rr?(e=e.replace(/\//g,`\\`),e.replace(/\\\\+/g,`\\`)):e.replace(/\/\/+/g,`/`)}function cr(e){return(e.mode&1)>0||(e.mode&8)>0&&process.getgid!==void 0&&e.gid===process.getgid()||(e.mode&64)>0&&process.getuid!==void 0&&e.uid===process.getuid()}var lr=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};function ur(e,t){return lr(this,void 0,void 0,function*(){if(!e)throw Error(`parameter 'tool' is required`);if(t){let t=yield ur(e,!1);if(!t)throw Error(rr?`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also verify the file has a valid extension for an executable file.`:`Unable to locate executable file: ${e}. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.`);return t}let n=yield dr(e);return n&&n.length>0?n[0]:``})}function dr(e){return lr(this,void 0,void 0,function*(){if(!e)throw Error(`parameter 'tool' is required`);let t=[];if(rr&&process.env.PATHEXT)for(let e of process.env.PATHEXT.split(g.delimiter))e&&t.push(e);if(ar(e)){let n=yield or(e,t);return n?[n]:[]}if(e.includes(g.sep))return[];let n=[];if(process.env.PATH)for(let e of process.env.PATH.split(g.delimiter))e&&n.push(e);let r=[];for(let i of n){let n=yield or(g.join(i,e),t);n&&r.push(n)}return r})}var fr=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};const pr=process.platform===`win32`;var mr=class extends O.EventEmitter{constructor(e,t,n){if(super(),!e)throw Error(`Parameter 'toolPath' cannot be null or empty.`);this.toolPath=e,this.args=t||[],this.options=n||{}}_debug(e){this.options.listeners&&this.options.listeners.debug&&this.options.listeners.debug(e)}_getCommandString(e,t){let n=this._getSpawnFileName(),r=this._getSpawnArgs(e),i=t?``:`[command]`;if(pr){if(this._isCmdFile()){i+=n;for(let e of r)i+=` ${e}`}else if(e.windowsVerbatimArguments){i+=`"${n}"`;for(let e of r)i+=` ${e}`}else{i+=this._windowsQuoteCmdArg(n);for(let e of r)i+=` ${this._windowsQuoteCmdArg(e)}`}}else{i+=n;for(let e of r)i+=` ${e}`}return i}_processLineBuffer(e,n,r){try{let i=n+e.toString(),a=i.indexOf(t.EOL);for(;a>-1;)r(i.substring(0,a)),i=i.substring(a+t.EOL.length),a=i.indexOf(t.EOL);return i}catch(e){return this._debug(`error processing line. Failed with error ${e}`),``}}_getSpawnFileName(){return pr&&this._isCmdFile()?process.env.COMSPEC||`cmd.exe`:this.toolPath}_getSpawnArgs(e){if(pr&&this._isCmdFile()){let t=`/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`;for(let n of this.args)t+=` `,t+=e.windowsVerbatimArguments?n:this._windowsQuoteCmdArg(n);return t+=`"`,[t]}return this.args}_endsWith(e,t){return e.endsWith(t)}_isCmdFile(){let e=this.toolPath.toUpperCase();return this._endsWith(e,`.CMD`)||this._endsWith(e,`.BAT`)}_windowsQuoteCmdArg(e){if(!this._isCmdFile())return this._uvQuoteCmdArg(e);if(!e)return`""`;let t=[` `,` `,`&`,`(`,`)`,`[`,`]`,`{`,`}`,`^`,`=`,`;`,`!`,`'`,`+`,`,`,"`",`~`,`|`,`<`,`>`,`"`],n=!1;for(let r of e)if(t.some(e=>e===r)){n=!0;break}if(!n)return e;let r=`"`,i=!0;for(let t=e.length;t>0;t--)r+=e[t-1],i&&e[t-1]===`\\`?r+=`\\`:e[t-1]===`"`?(i=!0,r+=`"`):i=!1;return r+=`"`,r.split(``).reverse().join(``)}_uvQuoteCmdArg(e){if(!e)return`""`;if(!e.includes(` `)&&!e.includes(` `)&&!e.includes(`"`))return e;if(!e.includes(`"`)&&!e.includes(`\\`))return`"${e}"`;let t=`"`,n=!0;for(let r=e.length;r>0;r--)t+=e[r-1],n&&e[r-1]===`\\`?t+=`\\`:e[r-1]===`"`?(n=!0,t+=`\\`):n=!1;return t+=`"`,t.split(``).reverse().join(``)}_cloneExecOptions(e){e||={};let t={cwd:e.cwd||process.cwd(),env:e.env||process.env,silent:e.silent||!1,windowsVerbatimArguments:e.windowsVerbatimArguments||!1,failOnStdErr:e.failOnStdErr||!1,ignoreReturnCode:e.ignoreReturnCode||!1,delay:e.delay||1e4};return t.outStream=e.outStream||process.stdout,t.errStream=e.errStream||process.stderr,t}_getSpawnOptions(e,t){e||={};let n={};return n.cwd=e.cwd,n.env=e.env,n.windowsVerbatimArguments=e.windowsVerbatimArguments||this._isCmdFile(),e.windowsVerbatimArguments&&(n.argv0=`"${t}"`),n}exec(){return fr(this,void 0,void 0,function*(){return!ar(this.toolPath)&&(this.toolPath.includes(`/`)||pr&&this.toolPath.includes(`\\`))&&(this.toolPath=g.resolve(process.cwd(),this.options.cwd||process.cwd(),this.toolPath)),this.toolPath=yield ur(this.toolPath,!0),new Promise((e,n)=>fr(this,void 0,void 0,function*(){this._debug(`exec tool: ${this.toolPath}`),this._debug(`arguments:`);for(let e of this.args)this._debug(` ${e}`);let r=this._cloneExecOptions(this.options);!r.silent&&r.outStream&&r.outStream.write(this._getCommandString(r)+t.EOL);let i=new gr(r,this.toolPath);if(i.on(`debug`,e=>{this._debug(e)}),this.options.cwd&&!(yield ir(this.options.cwd)))return n(Error(`The cwd: ${this.options.cwd} does not exist!`));let a=this._getSpawnFileName(),o=ee.spawn(a,this._getSpawnArgs(r),this._getSpawnOptions(this.options,a)),s=``;o.stdout&&o.stdout.on(`data`,e=>{this.options.listeners&&this.options.listeners.stdout&&this.options.listeners.stdout(e),!r.silent&&r.outStream&&r.outStream.write(e),s=this._processLineBuffer(e,s,e=>{this.options.listeners&&this.options.listeners.stdline&&this.options.listeners.stdline(e)})});let c=``;if(o.stderr&&o.stderr.on(`data`,e=>{i.processStderr=!0,this.options.listeners&&this.options.listeners.stderr&&this.options.listeners.stderr(e),!r.silent&&r.errStream&&r.outStream&&(r.failOnStdErr?r.errStream:r.outStream).write(e),c=this._processLineBuffer(e,c,e=>{this.options.listeners&&this.options.listeners.errline&&this.options.listeners.errline(e)})}),o.on(`error`,e=>{i.processError=e.message,i.processExited=!0,i.processClosed=!0,i.CheckComplete()}),o.on(`exit`,e=>{i.processExitCode=e,i.processExited=!0,this._debug(`Exit code ${e} received from tool '${this.toolPath}'`),i.CheckComplete()}),o.on(`close`,e=>{i.processExitCode=e,i.processExited=!0,i.processClosed=!0,this._debug(`STDIO streams have closed for tool '${this.toolPath}'`),i.CheckComplete()}),i.on(`done`,(t,r)=>{s.length>0&&this.emit(`stdline`,s),c.length>0&&this.emit(`errline`,c),o.removeAllListeners(),t?n(t):e(r)}),this.options.input){if(!o.stdin)throw Error(`child process missing stdin`);o.stdin.end(this.options.input)}}))})}};function hr(e){let t=[],n=!1,r=!1,i=``;function a(e){r&&e!==`"`&&(i+=`\\`),i+=e,r=!1}for(let o=0;o0&&(t.push(i),i=``);continue}a(s)}return i.length>0&&t.push(i.trim()),t}var gr=class e extends O.EventEmitter{constructor(e,t){if(super(),this.processClosed=!1,this.processError=``,this.processExitCode=0,this.processExited=!1,this.processStderr=!1,this.delay=1e4,this.done=!1,this.timeout=null,!t)throw Error(`toolPath must not be empty`);this.options=e,this.toolPath=t,e.delay&&(this.delay=e.delay)}CheckComplete(){this.done||(this.processClosed?this._setResult():this.processExited&&(this.timeout=B(e.HandleTimeout,this.delay,this)))}_debug(e){this.emit(`debug`,e)}_setResult(){let e;this.processExited&&(this.processError?e=Error(`There was an error when attempting to execute the process '${this.toolPath}'. This may indicate the process failed to start. Error: ${this.processError}`):this.processExitCode!==0&&!this.options.ignoreReturnCode?e=Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`):this.processStderr&&this.options.failOnStdErr&&(e=Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`))),this.timeout&&=(clearTimeout(this.timeout),null),this.done=!0,this.emit(`done`,e,this.processExitCode)}static HandleTimeout(e){if(!e.done){if(!e.processClosed&&e.processExited){let t=`The STDIO streams did not close within ${e.delay/1e3} seconds of the exit event from process '${e.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`;e._debug(t)}e._setResult()}}},_r=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};function vr(e,t,n){return _r(this,void 0,void 0,function*(){let r=hr(e);if(r.length===0)throw Error(`Parameter 'commandLine' cannot be null or empty.`);let i=r[0];return t=r.slice(1).concat(t||[]),new mr(i,t,n).exec()})}function yr(e,t,n){return _r(this,void 0,void 0,function*(){let r=``,i=``,a=new z(`utf8`),o=new z(`utf8`),s=n?.listeners?.stdout,c=n?.listeners?.stderr,l=Object.assign(Object.assign({},n?.listeners),{stdout:e=>{r+=a.write(e),s&&s(e)},stderr:e=>{i+=o.write(e),c&&c(e)}}),u=yield vr(e,t,Object.assign(Object.assign({},n),{listeners:l}));return r+=a.end(),i+=o.end(),{exitCode:u,stdout:r,stderr:i}})}n.platform(),n.arch();var br;(function(e){e[e.Success=0]=`Success`,e[e.Failure=1]=`Failure`})(br||={});function xr(e){Ce(`add-mask`,{},e)}function Sr(e,t){let n=process.env[`INPUT_${e.replace(/ /g,`_`).toUpperCase()}`]||``;if(t&&t.required&&!n)throw Error(`Input required and not supplied: ${e}`);return t&&t.trimWhitespace===!1?n:n.trim()}function Cr(e,t){let n=[`true`,`True`,`TRUE`],r=[`false`,`False`,`FALSE`],i=Sr(e,t);if(n.includes(i))return!0;if(r.includes(i))return!1;throw TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${e}\nSupport boolean input list: \`true | True | TRUE | false | False | FALSE\``)}function wr(e,n){if(process.env.GITHUB_OUTPUT)return De(`OUTPUT`,Oe(e,n));process.stdout.write(t.EOL),Ce(`set-output`,{name:e},xe(n))}function Tr(e){process.exitCode=br.Failure,Dr(e)}function Er(e){Ce(`debug`,{},e)}function Dr(e,t={}){Ce(`error`,Se(t),e instanceof Error?e.toString():e)}function Or(e,t={}){Ce(`warning`,Se(t),e instanceof Error?e.toString():e)}function kr(e){process.stdout.write(e+t.EOL)}var Ar=class{constructor(){if(this.payload={},process.env.GITHUB_EVENT_PATH){if(s(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse(l(process.env.GITHUB_EVENT_PATH,{encoding:`utf8`}));else{let e=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${e} does not exist${r}`)}}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runAttempt=parseInt(process.env.GITHUB_RUN_ATTEMPT,10),this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10),this.apiUrl=process.env.GITHUB_API_URL??`https://api.github.com`,this.serverUrl=process.env.GITHUB_SERVER_URL??`https://github.com`,this.graphqlUrl=process.env.GITHUB_GRAPHQL_URL??`https://api.github.com/graphql`}get issue(){let e=this.payload;return Object.assign(Object.assign({},this.repo),{number:(e.issue||e.pull_request||e).number})}get repo(){if(process.env.GITHUB_REPOSITORY){let[e,t]=process.env.GITHUB_REPOSITORY.split(`/`);return{owner:e,repo:t}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw Error(`context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'`)}},jr=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getProxyUrl=t,e.checkBypass=n;function t(e){let t=e.protocol===`https:`;if(n(e))return;let r=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;if(r)try{return new i(r)}catch{if(!r.startsWith(`http://`)&&!r.startsWith(`https://`))return new i(`http://${r}`)}else return}function n(e){if(!e.hostname)return!1;let t=e.hostname;if(r(t))return!0;let n=process.env.no_proxy||process.env.NO_PROXY||``;if(!n)return!1;let i;e.port?i=Number(e.port):e.protocol===`http:`?i=80:e.protocol===`https:`&&(i=443);let a=[e.hostname.toUpperCase()];typeof i==`number`&&a.push(`${a[0]}:${i}`);for(let e of n.split(`,`).map(e=>e.trim().toUpperCase()).filter(e=>e))if(e===`*`||a.some(t=>t===e||t.endsWith(`.${e}`)||e.startsWith(`.`)&&t.endsWith(`${e}`)))return!0;return!1}function r(e){let t=e.toLowerCase();return t===`localhost`||t.startsWith(`127.`)||t.startsWith(`[::1]`)||t.startsWith(`[0:0:0:0:0:0:0:1]`)}var i=class extends URL{constructor(e,t){super(e,t),this._decodedUsername=decodeURIComponent(super.username),this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}}})),Mr=be(J((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},e(t)};return function(r){if(r&&r.__esModule)return r;var i={};if(r!=null)for(var a=e(r),o=0;oi(this,void 0,void 0,function*(){let t=Buffer.alloc(0);this.message.on(`data`,e=>{t=Buffer.concat([t,e])}),this.message.on(`end`,()=>{e(t.toString())})}))})}readBodyBuffer(){return i(this,void 0,void 0,function*(){return new Promise(e=>i(this,void 0,void 0,function*(){let t=[];this.message.on(`data`,e=>{t.push(e)}),this.message.on(`end`,()=>{e(Buffer.concat(t))})}))})}};e.HttpClientResponse=y;function b(e){return new URL(e).protocol===`https:`}e.HttpClient=class{constructor(e,t,n){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=this._getUserAgentWithOrchestrationId(e),this.handlers=t||[],this.requestOptions=n,n&&(n.ignoreSslError!=null&&(this._ignoreSslError=n.ignoreSslError),this._socketTimeout=n.socketTimeout,n.allowRedirects!=null&&(this._allowRedirects=n.allowRedirects),n.allowRedirectDowngrade!=null&&(this._allowRedirectDowngrade=n.allowRedirectDowngrade),n.maxRedirects!=null&&(this._maxRedirects=Math.max(n.maxRedirects,0)),n.keepAlive!=null&&(this._keepAlive=n.keepAlive),n.allowRetries!=null&&(this._allowRetries=n.allowRetries),n.maxRetries!=null&&(this._maxRetries=n.maxRetries))}options(e,t){return i(this,void 0,void 0,function*(){return this.request(`OPTIONS`,e,null,t||{})})}get(e,t){return i(this,void 0,void 0,function*(){return this.request(`GET`,e,null,t||{})})}del(e,t){return i(this,void 0,void 0,function*(){return this.request(`DELETE`,e,null,t||{})})}post(e,t,n){return i(this,void 0,void 0,function*(){return this.request(`POST`,e,t,n||{})})}patch(e,t,n){return i(this,void 0,void 0,function*(){return this.request(`PATCH`,e,t,n||{})})}put(e,t,n){return i(this,void 0,void 0,function*(){return this.request(`PUT`,e,t,n||{})})}head(e,t){return i(this,void 0,void 0,function*(){return this.request(`HEAD`,e,null,t||{})})}sendStream(e,t,n,r){return i(this,void 0,void 0,function*(){return this.request(e,t,n,r)})}getJson(e){return i(this,arguments,void 0,function*(e,t={}){t[d.Accept]=this._getExistingOrDefaultHeader(t,d.Accept,f.ApplicationJson);let n=yield this.get(e,t);return this._processResponse(n,this.requestOptions)})}postJson(e,t){return i(this,arguments,void 0,function*(e,t,n={}){let r=JSON.stringify(t,null,2);n[d.Accept]=this._getExistingOrDefaultHeader(n,d.Accept,f.ApplicationJson),n[d.ContentType]=this._getExistingOrDefaultContentTypeHeader(n,f.ApplicationJson);let i=yield this.post(e,r,n);return this._processResponse(i,this.requestOptions)})}putJson(e,t){return i(this,arguments,void 0,function*(e,t,n={}){let r=JSON.stringify(t,null,2);n[d.Accept]=this._getExistingOrDefaultHeader(n,d.Accept,f.ApplicationJson),n[d.ContentType]=this._getExistingOrDefaultContentTypeHeader(n,f.ApplicationJson);let i=yield this.put(e,r,n);return this._processResponse(i,this.requestOptions)})}patchJson(e,t){return i(this,arguments,void 0,function*(e,t,n={}){let r=JSON.stringify(t,null,2);n[d.Accept]=this._getExistingOrDefaultHeader(n,d.Accept,f.ApplicationJson),n[d.ContentType]=this._getExistingOrDefaultContentTypeHeader(n,f.ApplicationJson);let i=yield this.patch(e,r,n);return this._processResponse(i,this.requestOptions)})}request(e,t,n,r){return i(this,void 0,void 0,function*(){if(this._disposed)throw Error(`Client has already been disposed.`);let i=new URL(t),a=this._prepareRequest(e,i,r),o=this._allowRetries&&g.includes(e)?this._maxRetries+1:1,s=0,c;do{if(c=yield this.requestRaw(a,n),c&&c.message&&c.message.statusCode===u.Unauthorized){let e;for(let t of this.handlers)if(t.canHandleAuthentication(c)){e=t;break}return e?e.handleAuthentication(this,a,n):c}let t=this._maxRedirects;for(;c.message.statusCode&&m.includes(c.message.statusCode)&&this._allowRedirects&&t>0;){let o=c.message.headers.location;if(!o)break;let s=new URL(o);if(i.protocol===`https:`&&i.protocol!==s.protocol&&!this._allowRedirectDowngrade)throw Error(`Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.`);if(yield c.readBody(),s.hostname!==i.hostname)for(let e in r)e.toLowerCase()===`authorization`&&delete r[e];a=this._prepareRequest(e,s,r),c=yield this.requestRaw(a,n),t--}if(!c.message.statusCode||!h.includes(c.message.statusCode))return c;s+=1,s{function i(e,t){e?r(e):t?n(t):r(Error(`Unknown error`))}this.requestRawWithCallback(e,t,i)})})}requestRawWithCallback(e,t,n){typeof t==`string`&&(e.options.headers||(e.options.headers={}),e.options.headers[`Content-Length`]=Buffer.byteLength(t,`utf8`));let r=!1;function i(e,t){r||(r=!0,n(e,t))}let a=e.httpModule.request(e.options,e=>{i(void 0,new y(e))}),o;a.on(`socket`,e=>{o=e}),a.setTimeout(this._socketTimeout||18e4,()=>{o&&o.end(),i(Error(`Request timeout: ${e.options.path}`))}),a.on(`error`,function(e){i(e)}),t&&typeof t==`string`&&a.write(t,`utf8`),t&&typeof t!=`string`?(t.on(`close`,function(){a.end()}),t.pipe(a)):a.end()}getAgent(e){let t=new URL(e);return this._getAgent(t)}getAgentDispatcher(e){let t=new URL(e),n=s.getProxyUrl(t);if(n&&n.hostname)return this._getProxyAgentDispatcher(t,n)}_prepareRequest(e,t,n){let r={};r.parsedUrl=t;let i=r.parsedUrl.protocol===`https:`;r.httpModule=i?o:a;let s=i?443:80;if(r.options={},r.options.host=r.parsedUrl.hostname,r.options.port=r.parsedUrl.port?parseInt(r.parsedUrl.port):s,r.options.path=(r.parsedUrl.pathname||``)+(r.parsedUrl.search||``),r.options.method=e,r.options.headers=this._mergeHeaders(n),this.userAgent!=null&&(r.options.headers[`user-agent`]=this.userAgent),r.options.agent=this._getAgent(r.parsedUrl),this.handlers)for(let e of this.handlers)e.prepareRequest(r.options);return r}_mergeHeaders(e){return this.requestOptions&&this.requestOptions.headers?Object.assign({},x(this.requestOptions.headers),x(e||{})):x(e||{})}_getExistingOrDefaultHeader(e,t,n){let r;if(this.requestOptions&&this.requestOptions.headers){let e=x(this.requestOptions.headers)[t];e&&(r=typeof e==`number`?e.toString():e)}let i=e[t];return i===void 0?r===void 0?n:r:typeof i==`number`?i.toString():i}_getExistingOrDefaultContentTypeHeader(e,t){let n;if(this.requestOptions&&this.requestOptions.headers){let e=x(this.requestOptions.headers)[d.ContentType];e&&(n=typeof e==`number`?String(e):Array.isArray(e)?e.join(`, `):e)}let r=e[d.ContentType];return r===void 0?n===void 0?t:n:typeof r==`number`?String(r):Array.isArray(r)?r.join(`, `):r}_getAgent(e){let t,n=s.getProxyUrl(e),r=n&&n.hostname;if(this._keepAlive&&r&&(t=this._proxyAgent),r||(t=this._agent),t)return t;let i=e.protocol===`https:`,l=100;if(this.requestOptions&&(l=this.requestOptions.maxSockets||a.globalAgent.maxSockets),n&&n.hostname){let e={maxSockets:l,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(n.username||n.password)&&{proxyAuth:`${n.username}:${n.password}`}),{host:n.hostname,port:n.port})},r,a=n.protocol===`https:`;r=i?a?c.httpsOverHttps:c.httpsOverHttp:a?c.httpOverHttps:c.httpOverHttp,t=r(e),this._proxyAgent=t}if(!t){let e={keepAlive:this._keepAlive,maxSockets:l};t=i?new o.Agent(e):new a.Agent(e),this._agent=t}return i&&this._ignoreSslError&&(t.options=Object.assign(t.options||{},{rejectUnauthorized:!1})),t}_getProxyAgentDispatcher(e,t){let n;if(this._keepAlive&&(n=this._proxyAgentDispatcher),n)return n;let r=e.protocol===`https:`;return n=new l.ProxyAgent(Object.assign({uri:t.href,pipelining:+!!this._keepAlive},(t.username||t.password)&&{token:`Basic ${Buffer.from(`${t.username}:${t.password}`).toString(`base64`)}`})),this._proxyAgentDispatcher=n,r&&this._ignoreSslError&&(n.options=Object.assign(n.options.requestTls||{},{rejectUnauthorized:!1})),n}_getUserAgentWithOrchestrationId(e){let t=e||`actions/http-client`,n=process.env.ACTIONS_ORCHESTRATION_ID;return n?`${t} actions_orchestration_id/${n.replace(/[^a-z0-9_.-]/gi,`_`)}`:t}_performExponentialBackoff(e){return i(this,void 0,void 0,function*(){e=Math.min(10,e);let t=5*2**e;return new Promise(e=>setTimeout(()=>e(),t))})}_processResponse(e,t){return i(this,void 0,void 0,function*(){return new Promise((n,r)=>i(this,void 0,void 0,function*(){let i=e.message.statusCode||0,a={statusCode:i,result:null,headers:{}};i===u.NotFound&&n(a);function o(e,t){if(typeof t==`string`){let e=new Date(t);if(!isNaN(e.valueOf()))return e}return t}let s,c;try{c=yield e.readBody(),c&&c.length>0&&(s=t&&t.deserializeDates?JSON.parse(c,o):JSON.parse(c),a.result=s),a.headers=e.message.headers}catch{}if(i>299){let e;e=s&&s.message?s.message:c&&c.length>0?c:`Failed request: (${i})`;let t=new v(e,i);t.result=a.result,r(t)}else n(a)}))})}};let x=e=>Object.keys(e).reduce((t,n)=>(t[n.toLowerCase()]=e[n],t),{})}))(),1),Nr=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};function Pr(e,t){if(!e&&!t.auth)throw Error(`Parameter token or opts.auth is required`);if(e&&t.auth)throw Error(`Parameters token and opts.auth may not both be specified`);return typeof t.auth==`string`?t.auth:`token ${e}`}function Fr(e){return new Mr.HttpClient().getAgent(e)}function Ir(e){return new Mr.HttpClient().getAgentDispatcher(e)}function Lr(e){let t=Ir(e);return(e,n)=>Nr(this,void 0,void 0,function*(){return(0,Tn.fetch)(e,Object.assign(Object.assign({},n),{dispatcher:t}))})}function Rr(){return process.env.GITHUB_API_URL||`https://api.github.com`}function zr(e){let t=process.env.ACTIONS_ORCHESTRATION_ID?.trim();if(t){let n=`actions_orchestration_id/${t.replace(/[^a-z0-9_.-]/gi,`_`)}`;return e?.includes(n)?e:`${e?`${e} `:``}${n}`}return e}function Br(){return typeof navigator==`object`&&`userAgent`in navigator?navigator.userAgent:typeof process==`object`&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:``}function Vr(e,t,n,r){if(typeof n!=`function`)throw Error(`method for before hook must be a function`);return r||={},Array.isArray(t)?t.reverse().reduce((t,n)=>Vr.bind(null,e,n,t,r),n)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((e,t)=>t.hook.bind(null,e,r),n)():n(r))}function Hr(e,t,n,r){let i=r;e.registry[n]||(e.registry[n]=[]),t===`before`&&(r=(e,t)=>Promise.resolve().then(i.bind(null,t)).then(e.bind(null,t))),t===`after`&&(r=(e,t)=>{let n;return Promise.resolve().then(e.bind(null,t)).then(e=>(n=e,i(n,t))).then(()=>n)}),t===`error`&&(r=(e,t)=>Promise.resolve().then(e.bind(null,t)).catch(e=>i(e,t))),e.registry[n].push({hook:r,orig:i})}function Ur(e,t,n){if(!e.registry[t])return;let r=e.registry[t].map(e=>e.orig).indexOf(n);r!==-1&&e.registry[t].splice(r,1)}const Wr=Function.bind,Gr=Wr.bind(Wr);function Kr(e,t,n){let r=Gr(Ur,null).apply(null,n?[t,n]:[t]);e.api={remove:r},e.remove=r,[`before`,`error`,`after`,`wrap`].forEach(r=>{let i=n?[t,r,n]:[t,r];e[r]=e.api[r]=Gr(Hr,null).apply(null,i)})}function qr(){let e=Symbol(`Singular`),t={registry:{}},n=Vr.bind(null,t,e);return Kr(n,t,e),n}function Jr(){let e={registry:{}},t=Vr.bind(null,e);return Kr(t,e),t}var Yr={Singular:qr,Collection:Jr},Xr={method:`GET`,baseUrl:`https://api.github.com`,headers:{accept:`application/vnd.github.v3+json`,"user-agent":`octokit-endpoint.js/0.0.0-development ${Br()}`},mediaType:{format:``}};function Zr(e){return e?Object.keys(e).reduce((t,n)=>(t[n.toLowerCase()]=e[n],t),{}):{}}function Qr(e){if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let n=Object.prototype.hasOwnProperty.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&Function.prototype.call(n)===Function.prototype.call(e)}function $r(e,t){let n=Object.assign({},e);return Object.keys(t).forEach(r=>{Qr(t[r])&&r in e?n[r]=$r(e[r],t[r]):Object.assign(n,{[r]:t[r]})}),n}function ei(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function ti(e,t,n){if(typeof t==`string`){let[e,r]=t.split(` `);n=Object.assign(r?{method:e,url:r}:{url:e},n)}else n=Object.assign({},t);n.headers=Zr(n.headers),ei(n),ei(n.headers);let r=$r(e||{},n);return n.url===`/graphql`&&(e&&e.mediaType.previews?.length&&(r.mediaType.previews=e.mediaType.previews.filter(e=>!r.mediaType.previews.includes(e)).concat(r.mediaType.previews)),r.mediaType.previews=(r.mediaType.previews||[]).map(e=>e.replace(/-preview/,``))),r}function ni(e,t){let n=/\?/.test(e)?`&`:`?`,r=Object.keys(t);return r.length===0?e:e+n+r.map(e=>e===`q`?`q=`+t.q.split(`+`).map(encodeURIComponent).join(`+`):`${e}=${encodeURIComponent(t[e])}`).join(`&`)}var ri=/\{[^{}}]+\}/g;function ii(e){return e.replace(/(?:^\W+)|(?:(?e.concat(t),[]):[]}function oi(e,t){let n={__proto__:null};for(let r of Object.keys(e))t.indexOf(r)===-1&&(n[r]=e[r]);return n}function si(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(e){return/%[0-9A-Fa-f]/.test(e)||(e=encodeURI(e).replace(/%5B/g,`[`).replace(/%5D/g,`]`)),e}).join(``)}function ci(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return`%`+e.charCodeAt(0).toString(16).toUpperCase()})}function li(e,t,n){return t=e===`+`||e===`#`?si(t):ci(t),n?ci(n)+`=`+t:t}function ui(e){return e!=null}function di(e){return e===`;`||e===`&`||e===`?`}function fi(e,t,n,r){var i=e[n],a=[];if(ui(i)&&i!==``){if(typeof i==`string`||typeof i==`number`||typeof i==`bigint`||typeof i==`boolean`)i=i.toString(),r&&r!==`*`&&(i=i.substring(0,parseInt(r,10))),a.push(li(t,i,di(t)?n:``));else if(r===`*`)Array.isArray(i)?i.filter(ui).forEach(function(e){a.push(li(t,e,di(t)?n:``))}):Object.keys(i).forEach(function(e){ui(i[e])&&a.push(li(t,i[e],e))});else{let e=[];Array.isArray(i)?i.filter(ui).forEach(function(n){e.push(li(t,n))}):Object.keys(i).forEach(function(n){ui(i[n])&&(e.push(ci(n)),e.push(li(t,i[n].toString())))}),di(t)?a.push(ci(n)+`=`+e.join(`,`)):e.length!==0&&a.push(e.join(`,`))}}else t===`;`?ui(i)&&a.push(ci(n)):i===``&&(t===`&`||t===`?`)?a.push(ci(n)+`=`):i===``&&a.push(``);return a}function pi(e){return{expand:mi.bind(null,e)}}function mi(e,t){var n=[`+`,`#`,`.`,`/`,`;`,`?`,`&`];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(e,r,i){if(r){let e=``,i=[];if(n.indexOf(r.charAt(0))!==-1&&(e=r.charAt(0),r=r.substr(1)),r.split(/,/g).forEach(function(n){var r=/([^:\*]*)(?::(\d+)|(\*))?/.exec(n);i.push(fi(t,e,r[1],r[2]||r[3]))}),e&&e!==`+`){var a=`,`;return e===`?`?a=`&`:e!==`#`&&(a=e),(i.length===0?``:e)+i.join(a)}return i.join(`,`)}return si(i)}),e===`/`?e:e.replace(/\/$/,``)}function hi(e){let t=e.method.toUpperCase(),n=(e.url||`/`).replace(/:([a-z]\w+)/g,`{$1}`),r=Object.assign({},e.headers),i,a=oi(e,[`method`,`baseUrl`,`url`,`headers`,`request`,`mediaType`]),o=ai(n);n=pi(n).expand(a),/^http/.test(n)||(n=e.baseUrl+n);let s=oi(a,Object.keys(e).filter(e=>o.includes(e)).concat(`baseUrl`));return/application\/octet-stream/i.test(r.accept)||(e.mediaType.format&&(r.accept=r.accept.split(/,/).map(t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(`,`)),n.endsWith(`/graphql`)&&e.mediaType.previews?.length&&(r.accept=(r.accept.match(/(?`application/vnd.github.${t}-preview${e.mediaType.format?`.${e.mediaType.format}`:`+json`}`).join(`,`))),[`GET`,`HEAD`].includes(t)?n=ni(n,s):`data`in s?i=s.data:Object.keys(s).length&&(i=s),!r[`content-type`]&&i!==void 0&&(r[`content-type`]=`application/json; charset=utf-8`),[`PATCH`,`PUT`].includes(t)&&i===void 0&&(i=``),Object.assign({method:t,url:n,headers:r},i===void 0?null:{body:i},e.request?{request:e.request}:null)}function gi(e,t,n){return hi(ti(e,t,n))}function _i(e,t){let n=ti(e,t),r=gi.bind(null,n);return Object.assign(r,{DEFAULTS:n,defaults:_i.bind(null,n),merge:ti.bind(null,n),parse:hi})}var vi=_i(null,Xr),yi=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.parse=n;let t=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function n(e,n){let s=e.length,c=a(e,0,s),l=c;c=i(e,c,s);let u=o(e,l,c);return{type:e.slice(l,u).toLowerCase(),parameters:n?.parameters===!1?new t:r(e,c,s)}}function r(e,n,r){let s=new t;parameter:for(;nt;){let t=e.charCodeAt(n-1);if(t!==32&&t!==9)break;n--}return n}}))();const bi=/^-?\d+$/,xi=/^-?\d+n+$/,Si=JSON.stringify,Ci=JSON.parse,wi=/^-?\d+n$/,Ti=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Ei=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Di=e=>e===void 0||typeof e==`function`||typeof e==`symbol`,Oi=e=>typeof e==`object`&&!!e&&e.constructor&&e.constructor.name===`RawJSON`,ki=(e,t,n)=>{let r=``;typeof n==`number`?r=` `.repeat(Math.min(10,Math.max(0,Math.floor(n)))):typeof n==`string`&&(r=n.slice(0,10));let i=typeof t==`function`,a=Array.isArray(t)?new Set(t.map(String)):null,o=(e,n,r)=>(typeof r==`object`&&r&&typeof r.toJSON==`function`&&(r=r.toJSON(n)),typeof r==`string`&&xi.test(r)?r+`n`:typeof r==`bigint`?`rawJSON`in JSON?JSON.rawJSON(r.toString()):r.toString()+`n`:(i&&(r=t.call(e,n,r)),typeof r==`object`&&r&&(r instanceof Number||r instanceof String||r instanceof Boolean)&&(r=r.valueOf()),r)),s=o({"":e},``,e);if(Di(s))return;let c=typeof s!=`object`||!s,l=Oi(s);if(c||l)return Si(s);let u=[],d=0,f=[{parent:{"":s},key:``,val:s,isArray:Array.isArray(s),keys:Array.isArray(s)?null:Object.keys(s),index:0,first:!0}],p=new WeakSet([s]);for(;f.length>0;){let e=f[f.length-1];e.index===0&&(u.push(e.isArray?`[`:`{`),d++);let t=!1;if(e.isArray){if(e.index=e.keys.length&&f[f.length-1]===e&&(t=!0)}t&&(d--,!e.first&&r&&u.push(` +`+r.repeat(d)),u.push(e.isArray?`]`:`}`),p.delete(e.val),f.pop())}return u.join(``)},Ai=(e,t,n)=>{try{return`rawJSON`in JSON?Si(e,(e,n)=>typeof n==`bigint`?JSON.rawJSON(n.toString()):typeof t==`function`?t(e,n):(Array.isArray(t)&&t.includes(e),n),n):e?Si(e,(e,n)=>typeof n==`string`&&xi.test(n)||typeof n==`bigint`?n.toString()+`n`:typeof t==`function`?t(e,n):(Array.isArray(t)&&t.includes(e),n),n).replace(Ti,`$1$2$3`).replace(Ei,`$1$2$3`):Si(e,t,n)}catch(r){if(r instanceof RangeError){let r=ki(e,t,n);return r===void 0?void 0:`rawJSON`in JSON?r:r.replace(Ti,`$1$2$3`).replace(Ei,`$1$2$3`)}throw r}},ji=new Map,Mi=()=>{let e=JSON.parse.toString();if(ji.has(e))return ji.get(e);try{let t=JSON.parse(`1`,(e,t,n)=>!!n?.source&&n.source===`1`);return ji.set(e,t),t}catch{return ji.set(e,!1),!1}},Ni=(e,t,n,r)=>typeof t==`string`&&wi.test(t)?BigInt(t.slice(0,-1)):typeof t==`string`&&xi.test(t)?t.slice(0,-1):typeof r==`function`?r(e,t,n):t,Pi=(e,t)=>JSON.parse(e,(e,n,r)=>{let i=typeof n==`number`&&(n>2**53-1||n<-(2**53-1)),a=r&&bi.test(r.source);return i&&a?BigInt(r.source):typeof t==`function`?t(e,n,r):n}),Fi=(2**53-1).toString(),Ii=Fi.length,Li=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,Ri=/^"-?\d+n+"$/,zi=(e,t)=>{let n={"":e},r=[{parent:n,key:``,visited:!1}];for(;r.length>0;){let e=r[r.length-1];if(e.visited){let{parent:n,key:i}=e,a=n[i];typeof a==`string`&&(wi.test(a)?a=BigInt(a.slice(0,-1)):xi.test(a)&&(a=a.slice(0,-1))),typeof t==`function`&&(a=t.call(n,i,a)),a===void 0?delete n[i]:n[i]=a,r.pop()}else{e.visited=!0;let t=e.parent[e.key];if(typeof t==`object`&&t){let e=Object.keys(t);for(let n=e.length-1;n>=0;n--)r.push({parent:t,key:e[n],visited:!1})}}}return n[``]},Bi=e=>e.replace(Li,(e,t,n,r)=>{let i=e[0]===`"`;if(i&&Ri.test(e))return e.substring(0,e.length-1)+`n"`;let a=n||r,o=t&&(t.length{if(!e)return Ci(e,t);try{if(Mi())return Pi(e,t);let n=Bi(e);return Ci(n,(e,n,r)=>Ni(e,n,r,t))}catch(n){if(n instanceof RangeError){let n=Bi(e),r=Ci(n);return zi(r,t)}throw n}};var Hi=class extends Error{name;status;request;response;constructor(e,t,n){super(e,{cause:n.cause}),this.name=`HttpError`,this.status=Number.parseInt(t),Number.isNaN(this.status)&&(this.status=0),`response`in n&&(this.response=n.response);let r=Object.assign({},n.request);n.request.headers.authorization&&(r.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?``;async function Ki(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw Error(`fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing`);let n=e.request?.log||console,r=e.request?.parseSuccessResponseBody!==!1,i=Wi(e.body)||Array.isArray(e.body)?Ai(e.body):e.body,a=Object.fromEntries(Object.entries(e.headers).map(([e,t])=>[e,String(t)])),o;try{o=await t(e.url,{method:e.method,body:i,redirect:e.request?.redirect,headers:a,signal:e.request?.signal,...e.body&&{duplex:`half`}})}catch(t){let n=`Unknown Error`;if(t instanceof Error){if(t.name===`AbortError`)throw t.status=500,t;n=t.message,t.name===`TypeError`&&`cause`in t&&(t.cause instanceof Error?n=t.cause.message:typeof t.cause==`string`&&(n=t.cause))}let r=new Hi(n,500,{request:e});throw r.cause=t,r}let s=o.status,c=o.url,l={};for(let[e,t]of o.headers)l[e]=t;let u={url:c,status:s,headers:l,data:``};if(`deprecation`in l){let t=l.link&&l.link.match(/<([^<>]+)>; rel="deprecation"/),r=t&&t.pop();n.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${l.sunset}${r?`. See ${r}`:``}`)}if(s===204||s===205)return u;if(e.method===`HEAD`){if(s<400)return u;throw new Hi(o.statusText,s,{response:u,request:e})}if(s===304)throw u.data=await qi(o),new Hi(`Not modified`,s,{response:u,request:e});if(s>=400)throw u.data=await qi(o),new Hi(Yi(u.data),s,{response:u,request:e});return u.data=r?await qi(o):o.body,u}async function qi(e){let t=e.headers.get(`content-type`);if(!t)return e.text().catch(Gi);let n=(0,yi.parse)(t);if(Ji(n)){let t=``;try{return t=await e.text(),Vi(t)}catch{return t}}return n.type.startsWith(`text/`)||n.parameters.charset?.toLowerCase()===`utf-8`&&n.type!==`application/octet-stream`?e.text().catch(Gi):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function Ji(e){return e.type===`application/json`||e.type===`application/scim+json`}function Yi(e){if(typeof e==`string`)return e;if(e instanceof ArrayBuffer)return`Unknown error`;if(typeof e==`object`&&e&&`message`in e){let t=e,n=`documentation_url`in t?` - ${t.documentation_url}`:``;return Array.isArray(t.errors)?`${t.message}: ${t.errors.map(e=>JSON.stringify(e)).join(`, `)}${n}`:`${t.message}${n}`}return`Unknown error: ${JSON.stringify(e)}`}function Xi(e,t){let n=e.defaults(t);return Object.assign(function(e,t){let r=n.merge(e,t);if(!r.request||!r.request.hook)return Ki(n.parse(r));let i=(e,t)=>Ki(n.parse(n.merge(e,t)));return Object.assign(i,{endpoint:n,defaults:Xi.bind(null,n)}),r.request.hook(i,r)},{endpoint:n,defaults:Xi.bind(null,n)})}var Zi=Xi(vi,Ui),Qi=`0.0.0-development`;function $i(e){return`Request failed due to following response errors: +`+e.errors.map(e=>` - ${e.message}`).join(` +`)}var ea=class extends Error{constructor(e,t,n){super($i(n)),this.request=e,this.headers=t,this.response=n,this.errors=n.errors,this.data=n.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}request;headers;response;name=`GraphqlResponseError`;errors;data},ta=[`method`,`baseUrl`,`url`,`headers`,`request`,`query`,`mediaType`,`operationName`],na=[`query`,`method`,`url`],ra=/\/api\/v3\/?$/;function ia(e,t,n){if(n){if(typeof t==`string`&&`query`in n)return Promise.reject(Error(`[@octokit/graphql] "query" cannot be used as variable name`));for(let e in n)if(na.includes(e))return Promise.reject(Error(`[@octokit/graphql] "${e}" cannot be used as variable name`))}let r=typeof t==`string`?Object.assign({query:t},n):t,i=Object.keys(r).reduce((e,t)=>ta.includes(t)?(e[t]=r[t],e):(e.variables||={},e.variables[t]=r[t],e),{}),a=r.baseUrl||e.endpoint.DEFAULTS.baseUrl;return ra.test(a)&&(i.url=a.replace(ra,`/api/graphql`)),e(i).then(e=>{if(e.data.errors){let t={};for(let n of Object.keys(e.headers))t[n]=e.headers[n];throw new ea(i,t,e.data)}return e.data.data})}function aa(e,t){let n=e.defaults(t);return Object.assign((e,t)=>ia(n,e,t),{defaults:aa.bind(null,n),endpoint:n.endpoint})}aa(Zi,{headers:{"user-agent":`octokit-graphql.js/${Qi} ${Br()}`},method:`POST`,url:`/graphql`});function oa(e){return aa(e,{method:`POST`,url:`/graphql`})}var sa=`(?:[a-zA-Z0-9_-]+)`,ca=`\\.`,la=RegExp(`^${sa}${ca}${sa}${ca}${sa}$`),ua=la.test.bind(la);async function da(e){let t=ua(e),n=e.startsWith(`v1.`)||e.startsWith(`ghs_`),r=e.startsWith(`ghu_`);return{type:`token`,token:e,tokenType:t?`app`:n?`installation`:r?`user-to-server`:`oauth`}}function fa(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function pa(e,t,n,r){let i=t.endpoint.merge(n,r);return i.headers.authorization=fa(e),t(i)}var ma=function(e){if(!e)throw Error(`[@octokit/auth-token] No token passed to createTokenAuth`);if(typeof e!=`string`)throw Error(`[@octokit/auth-token] Token passed to createTokenAuth is not a string`);return e=e.replace(/^(token|bearer) +/i,``),Object.assign(da.bind(null,e),{hook:pa.bind(null,e)})};const ha=`7.0.7`,ga=()=>{},_a=console.warn.bind(console),va=console.error.bind(console);function ya(e={}){return typeof e.debug!=`function`&&(e.debug=ga),typeof e.info!=`function`&&(e.info=ga),typeof e.warn!=`function`&&(e.warn=_a),typeof e.error!=`function`&&(e.error=va),e}const ba=`octokit-core.js/${ha} ${Br()}`;var xa=class{static VERSION=ha;static defaults(e){return class extends this{constructor(...t){let n=t[0]||{};if(typeof e==`function`){super(e(n));return}super(Object.assign({},e,n,n.userAgent&&e.userAgent?{userAgent:`${n.userAgent} ${e.userAgent}`}:null))}}}static plugins=[];static plugin(...e){let t=this.plugins;return class extends this{static plugins=t.concat(e.filter(e=>!t.includes(e)))}}constructor(e={}){let t=new Yr.Collection,n={baseUrl:Zi.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,`request`)}),mediaType:{previews:[],format:``}};if(n.headers[`user-agent`]=e.userAgent?`${e.userAgent} ${ba}`:ba,e.baseUrl&&(n.baseUrl=e.baseUrl),e.previews&&(n.mediaType.previews=e.previews),e.timeZone&&(n.headers[`time-zone`]=e.timeZone),this.request=Zi.defaults(n),this.graphql=oa(this.request).defaults(n),this.log=ya(e.log),this.hook=t,e.authStrategy){let{authStrategy:n,...r}=e,i=n(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:r},e.auth));t.wrap(`request`,i.hook),this.auth=i}else if(!e.auth)this.auth=async()=>({type:`unauthenticated`});else{let n=ma(e.auth);t.wrap(`request`,n.hook),this.auth=n}let r=this.constructor;for(let t=0;t({async next(){if(!s)return{done:!0};try{let e=ka(await i({method:a,url:s,headers:o}));if(s=((e.headers.link||``).match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!s&&`total_commits`in e.data){let t=new URL(e.url),n=t.searchParams,r=parseInt(n.get(`page`)||`1`,10);r*parseInt(n.get(`per_page`)||`250`,10){if(i.done)return t;let a=!1;function o(){a=!0}return t=t.concat(r?r(i.value,o):i.value.data),a?t:Ma(e,t,n,r)})}Object.assign(ja,{iterator:Aa});function Na(e){return{paginate:Object.assign(ja.bind(null,e),{iterator:Aa.bind(null,e)})}}Na.VERSION=Oa,new Ar;const Pa=Rr(),Fa={baseUrl:Pa,request:{agent:Fr(Pa),fetch:Lr(Pa)}},Ia=xa.plugin(Da,Na).defaults(Fa);function La(e,t){let n=Object.assign({},t||{}),r=Pr(e,n);r&&(n.auth=r);let i=zr(n.userAgent);return i&&(n.userAgent=i),n}const Ra=new Ar;function za(e,t,...n){return new(Ia.plugin(...n))(La(e,t))}var Ba=J(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):n.Bottleneck=r()})(e,(function(){var e=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{};function t(e){return e&&e.default||e}var n={load:function(e,t,n={}){var r,i;for(r in t)i=t[r],n[r]=e[r]??i;return n},overwrite:function(e,t,n={}){var r,i;for(r in e)i=e[r],t[r]!==void 0&&(n[r]=i);return n}},r=class{constructor(e,t){this.incr=e,this.decr=t,this._first=null,this._last=null,this.length=0}push(e){var t;this.length++,typeof this.incr==`function`&&this.incr(),t={value:e,prev:this._last,next:null},this._last==null?this._first=this._last=t:(this._last.next=t,this._last=t)}shift(){var e;if(this._first!=null)return this.length--,typeof this.decr==`function`&&this.decr(),e=this._first.value,(this._first=this._first.next)==null?this._last=null:this._first.prev=null,e}first(){if(this._first!=null)return this._first.value}getArray(){for(var e=this._first,t,n=[];e!=null;)n.push((t=e,e=e.next,t.value));return n}forEachShift(e){for(var t=this.shift();t!=null;)e(t),t=this.shift()}debug(){for(var e=this._first,t,n=[];e!=null;)n.push((t=e,e=e.next,{value:t.value,prev:t.prev?.value,next:t.next?.value}));return n}},i=class{constructor(e){if(this.instance=e,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw Error(`An Emitter already exists for this object`);this.instance.on=(e,t)=>this._addListener(e,`many`,t),this.instance.once=(e,t)=>this._addListener(e,`once`,t),this.instance.removeAllListeners=(e=null)=>e==null?this._events={}:delete this._events[e]}_addListener(e,t,n){var r;return(r=this._events)[e]??(r[e]=[]),this._events[e].push({cb:n,status:t}),this.instance}listenerCount(e){return this._events[e]==null?0:this._events[e].length}async trigger(e,...t){var n,r;try{return e!==`debug`&&this.trigger(`debug`,`Event triggered: ${e}`,t),this._events[e]==null?void 0:(this._events[e]=this._events[e].filter(function(e){return e.status!==`none`}),r=this._events[e].map(async e=>{var n,r;if(e.status!==`none`){e.status===`once`&&(e.status=`none`);try{return r=typeof e.cb==`function`?e.cb(...t):void 0,typeof r?.then==`function`?await r:r}catch(e){return n=e,this.trigger(`error`,n),null}}}),(await Promise.all(r)).find(function(e){return e!=null}))}catch(e){return n=e,this.trigger(`error`,n),null}}},a=r,o=i,s=class{constructor(e){this.Events=new o(this),this._length=0,this._lists=(function(){var t,n,r=[];for(t=1,n=e;1<=n?t<=n:t>=n;1<=n?++t:--t)r.push(new a((()=>this.incr()),(()=>this.decr())));return r}).call(this)}incr(){if(this._length++===0)return this.Events.trigger(`leftzero`)}decr(){if(--this._length===0)return this.Events.trigger(`zero`)}push(e){return this._lists[e.options.priority].push(e)}queued(e){return e==null?this._length:this._lists[e].length}shiftAll(e){return this._lists.forEach(function(t){return t.forEachShift(e)})}getFirst(e=this._lists){var t,n,r;for(t=0,n=e.length;t0)return r;return[]}shiftLastFrom(e){return this.getFirst(this._lists.slice(e).reverse()).shift()}},c=class extends Error{},l,u,d,f=10,p;u=5,p=n,l=c,d=class{constructor(e,t,n,r,i,a,o,s){this.task=e,this.args=t,this.rejectOnDrop=i,this.Events=a,this._states=o,this.Promise=s,this.options=p.load(n,r),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===r.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((e,t)=>{this._resolve=e,this._reject=t}),this.retryCount=0}_sanitizePriority(e){var t=~~e===e?e:u;return t<0?0:t>f-1?f-1:t}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:e,message:t=`This job has been dropped by Bottleneck`}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(e??new l(t)),this.Events.trigger(`dropped`,{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(e){var t=this._states.jobStatus(this.options.id);if(!(t===e||e===`DONE`&&t===null))throw new l(`Invalid job status ${t}, expected ${e}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger(`received`,{args:this.args,options:this.options})}doQueue(e,t){return this._assertStatus(`RECEIVED`),this._states.next(this.options.id),this.Events.trigger(`queued`,{args:this.args,options:this.options,reachedHWM:e,blocked:t})}doRun(){return this.retryCount===0?(this._assertStatus(`QUEUED`),this._states.next(this.options.id)):this._assertStatus(`EXECUTING`),this.Events.trigger(`scheduled`,{args:this.args,options:this.options})}async doExecute(e,t,n,r){var i,a,o;this.retryCount===0?(this._assertStatus(`RUNNING`),this._states.next(this.options.id)):this._assertStatus(`EXECUTING`),a={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger(`executing`,a);try{if(o=await(e==null?this.task(...this.args):e.schedule(this.options,this.task,...this.args)),t())return this.doDone(a),await r(this.options,a),this._assertStatus(`DONE`),this._resolve(o)}catch(e){return i=e,this._onFailure(i,a,t,n,r)}}doExpire(e,t,n){var r,i;return this._states.jobStatus(this.options.id===`RUNNING`)&&this._states.next(this.options.id),this._assertStatus(`EXECUTING`),i={args:this.args,options:this.options,retryCount:this.retryCount},r=new l(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(r,i,e,t,n)}async _onFailure(e,t,n,r,i){var a,o;if(n())return a=await this.Events.trigger(`failed`,e,t),a==null?(this.doDone(t),await i(this.options,t),this._assertStatus(`DONE`),this._reject(e)):(o=~~a,this.Events.trigger(`retry`,`Retrying ${this.options.id} after ${o} ms`,t),this.retryCount++,r(o))}doDone(e){return this._assertStatus(`EXECUTING`),this._states.next(this.options.id),this.Events.trigger(`done`,e)}};var m=d,h,g,v=n;h=c,g=class{constructor(e,t,n){this.instance=e,this.storeOptions=t,this.clientId=this.instance._randomIndex(),v.load(n,n,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var e;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(e=this.heartbeat=setInterval(()=>{var e,t,n,r=Date.now(),i;if(this.storeOptions.reservoirRefreshInterval!=null&&r>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=r,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&r>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:e,reservoirIncreaseMaximum:n,reservoir:i}=this.storeOptions,this._lastReservoirIncrease=r,t=n==null?e:Math.min(e,n-i),t>0))return this.storeOptions.reservoir+=t,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref==`function`?e.unref():void 0:clearInterval(this.heartbeat)}async __publish__(e){return await this.yieldLoop(),this.instance.Events.trigger(`message`,e.toString())}async __disconnect__(e){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(e=0){return new this.Promise(function(t,n){return setTimeout(t,e)})}computePenalty(){return this.storeOptions.penalty??(15*this.storeOptions.minTime||5e3)}async __updateSettings__(e){return await this.yieldLoop(),v.overwrite(e,e,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(e){return await this.yieldLoop(),this._nextRequest+this.timeout=e}check(e,t){return this.conditionsCheck(e)&&this._nextRequest-t<=0}async __check__(e){var t;return await this.yieldLoop(),t=Date.now(),this.check(e,t)}async __register__(e,t,n){var r,i;return await this.yieldLoop(),r=Date.now(),this.conditionsCheck(t)?(this._running+=t,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=t),i=Math.max(this._nextRequest-r,0),this._nextRequest=r+i+this.storeOptions.minTime,{success:!0,wait:i,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(e,t){var n,r,i;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&t>this.storeOptions.maxConcurrent)throw new h(`Impossible to add a job having a weight of ${t} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return r=Date.now(),i=this.storeOptions.highWater!=null&&e===this.storeOptions.highWater&&!this.check(t,r),n=this.strategyIsBlock()&&(i||this.isBlocked(r)),n&&(this._unblockTime=r+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:i,blocked:n,strategy:this.storeOptions.strategy}}async __free__(e,t){return await this.yieldLoop(),this._running-=t,this._done+=t,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var y=g,b=c,x=class{constructor(e){this.status=e,this._jobs={},this.counts=this.status.map(function(){return 0})}next(e){var t=this._jobs[e],n=t+1;if(t!=null&&n(e[this.status[n]]=t,e)),{})}},S=r,C=class{constructor(e,t){this.schedule=this.schedule.bind(this),this.name=e,this.Promise=t,this._running=0,this._queue=new S}isEmpty(){return this._queue.length===0}async _tryToRun(){var e,t,n,r,i,a,o;if(this._running<1&&this._queue.length>0)return this._running++,{task:o,args:e,resolve:i,reject:r}=this._queue.shift(),t=await(async function(){try{return a=await o(...e),function(){return i(a)}}catch(e){return n=e,function(){return r(n)}}})(),this._running--,this._tryToRun(),t()}schedule(e,...t){var n,r,i=r=null;return n=new this.Promise(function(e,t){return i=e,r=t}),this._queue.push({task:e,args:t,resolve:i,reject:r}),this._tryToRun(),n}},w=`2.19.5`,T=Object.freeze({version:w,default:{version:w}}),E=()=>console.log(`You must import the full version of Bottleneck in order to use this feature.`),D=()=>console.log(`You must import the full version of Bottleneck in order to use this feature.`),O=()=>console.log(`You must import the full version of Bottleneck in order to use this feature.`),k,A,j,M,N,P=n;k=i,M=E,j=D,N=O,A=(function(){class e{constructor(e={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=e,P.load(this.limiterOptions,this.defaults,this),this.Events=new k(this),this.instances={},this.Bottleneck=oe,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection??(this.limiterOptions.datastore===`redis`?this.connection=new M(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore===`ioredis`&&(this.connection=new j(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(e=``){return this.instances[e]??(()=>{var t=this.instances[e]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${e}`,timeout:this.timeout,connection:this.connection}));return this.Events.trigger(`created`,t,e),t})()}async deleteKey(e=``){var t,n=this.instances[e];return this.connection&&(t=await this.connection.__runCommand__([`del`,...N.allKeys(`${this.id}-${e}`)])),n!=null&&(delete this.instances[e],await n.disconnect()),n!=null||t>0}limiters(){var e,t=this.instances,n=[],r;for(e in t)r=t[e],n.push({key:e,limiter:r});return n}keys(){return Object.keys(this.instances)}async clusterKeys(){var e,t,n,r,i,a,o,s,c;if(this.connection==null)return this.Promise.resolve(this.keys());for(a=[],e=null,c=`b_${this.id}-`.length,t=9;e!==0;)for([s,n]=await this.connection.__runCommand__([`scan`,e??0,`match`,`b_${this.id}-*_settings`,`count`,1e4]),e=~~s,r=0,o=n.length;r{var e,t,n,r,i=Date.now(),a;for(t in n=this.instances,r=[],n){a=n[t];try{await a._store.__groupCheck__(i)?r.push(this.deleteKey(t)):r.push(void 0)}catch(t){e=t,r.push(a.Events.trigger(`error`,e))}}return r},this.timeout/2)).unref==`function`?e.unref():void 0}updateSettings(e={}){if(P.overwrite(e,this.defaults,this),P.overwrite(e,e,this.limiterOptions),e.timeout!=null)return this._startAutoCleanup()}disconnect(e=!0){if(!this.sharedConnection)return this.connection?.disconnect(e)}}return e.prototype.defaults={timeout:3e5,connection:null,Promise,id:`group-key`},e}).call(e);var F=A,I,L,R=n;L=i,I=(function(){class e{constructor(e={}){this.options=e,R.load(this.options,this.defaults,this),this.Events=new L(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((e,t)=>this._resolve=e)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger(`batch`,this._arr),this._arr=[],this._resetPromise()}add(e){var t;return this._arr.push(e),t=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),t}}return e.prototype.defaults={maxTime:null,maxSize:null,Promise},e}).call(e);var z=I,ee=()=>console.log(`You must import the full version of Bottleneck in order to use this feature.`),B=t(T),V,H,U,W,G,K,q,te,ne,re,ie,ae=[].splice;K=10,H=5,ie=n,q=s,W=m,G=y,te=ee,U=i,ne=x,re=C,V=(function(){class e{constructor(t={},...n){var r,i;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(t,n),ie.load(t,this.instanceDefaults,this),this._queues=new q(K),this._scheduled={},this._states=new ne([`RECEIVED`,`QUEUED`,`RUNNING`,`EXECUTING`].concat(this.trackDoneStatus?[`DONE`]:[])),this._limiter=null,this.Events=new U(this),this._submitLock=new re(`submit`,this.Promise),this._registerLock=new re(`register`,this.Promise),i=ie.load(t,this.storeDefaults,{}),this._store=(function(){if(this.datastore===`redis`||this.datastore===`ioredis`||this.connection!=null)return r=ie.load(t,this.redisStoreDefaults,{}),new te(this,i,r);if(this.datastore===`local`)return r=ie.load(t,this.localStoreDefaults,{}),new G(this,i,r);throw new e.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}).call(this),this._queues.on(`leftzero`,()=>{var e;return(e=this._store.heartbeat)==null?void 0:typeof e.ref==`function`?e.ref():void 0}),this._queues.on(`zero`,()=>{var e;return(e=this._store.heartbeat)==null?void 0:typeof e.unref==`function`?e.unref():void 0})}_validateOptions(t,n){if(!(typeof t==`object`&&t&&n.length===0))throw new e.prototype.BottleneckError(`Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.`)}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(e){return this._store.__publish__(e)}disconnect(e=!0){return this._store.__disconnect__(e)}chain(e){return this._limiter=e,this}queued(e){return this._queues.queued(e)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(e){return this._states.jobStatus(e)}jobs(e){return this._states.statusJobs(e)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(e=1){return this._store.__check__(e)}_clearGlobalState(e){return this._scheduled[e]!=null&&(clearTimeout(this._scheduled[e].expiration),delete this._scheduled[e],!0)}async _free(e,t,n,r){var i,a;try{if({running:a}=await this._store.__free__(e,n.weight),this.Events.trigger(`debug`,`Freed ${n.id}`,r),a===0&&this.empty())return this.Events.trigger(`idle`)}catch(e){return i=e,this.Events.trigger(`error`,i)}}_run(e,t,n){var r,i,a;return t.doRun(),r=this._clearGlobalState.bind(this,e),a=this._run.bind(this,e,t),i=this._free.bind(this,e,t),this._scheduled[e]={timeout:setTimeout(()=>t.doExecute(this._limiter,r,a,i),n),expiration:t.options.expiration==null?void 0:setTimeout(function(){return t.doExpire(r,a,i)},n+t.options.expiration),job:t}}_drainOne(e){return this._registerLock.schedule(()=>{var t,n,r,i,a;return this.queued()===0||(a=this._queues.getFirst(),{options:i,args:t}=r=a.first(),e!=null&&i.weight>e)?this.Promise.resolve(null):(this.Events.trigger(`debug`,`Draining ${i.id}`,{args:t,options:i}),n=this._randomIndex(),this._store.__register__(n,i.weight,i.expiration).then(({success:e,wait:o,reservoir:s})=>{var c;return this.Events.trigger(`debug`,`Drained ${i.id}`,{success:e,args:t,options:i}),e?(a.shift(),c=this.empty(),c&&this.Events.trigger(`empty`),s===0&&this.Events.trigger(`depleted`,c),this._run(n,r,o),this.Promise.resolve(i.weight)):this.Promise.resolve(null)}))})}_drainAll(e,t=0){return this._drainOne(e).then(n=>{var r;return n==null?this.Promise.resolve(t):(r=e==null?e:e-n,this._drainAll(r,t+n))}).catch(e=>this.Events.trigger(`error`,e))}_dropAllQueued(e){return this._queues.shiftAll(function(t){return t.doDrop({message:e})})}stop(t={}){var n,r;return t=ie.load(t,this.stopDefaults),r=e=>{var t=()=>{var t=this._states.counts;return t[0]+t[1]+t[2]+t[3]===e};return new this.Promise((e,n)=>t()?e():this.on(`done`,()=>{if(t())return this.removeAllListeners(`done`),e()}))},n=t.dropWaitingJobs?(this._run=function(e,n){return n.doDrop({message:t.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var e,n=this._scheduled,i;for(e in n)i=n[e],this.jobStatus(i.job.options.id)===`RUNNING`&&(clearTimeout(i.timeout),clearTimeout(i.expiration),i.job.doDrop({message:t.dropErrorMessage}));return this._dropAllQueued(t.dropErrorMessage),r(0)}))):this.schedule({priority:K-1,weight:0},()=>r(1)),this._receive=function(n){return n._reject(new e.prototype.BottleneckError(t.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new e.prototype.BottleneckError(`stop() has already been called`)),n}async _addToQueue(t){var n,r,i,a,o,s,c;({args:n,options:a}=t);try{({reachedHWM:o,blocked:r,strategy:c}=await this._store.__submit__(this.queued(),a.weight))}catch(e){return i=e,this.Events.trigger(`debug`,`Could not queue ${a.id}`,{args:n,options:a,error:i}),t.doDrop({error:i}),!1}return r?(t.doDrop(),!0):o&&(s=c===e.prototype.strategy.LEAK?this._queues.shiftLastFrom(a.priority):c===e.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(a.priority+1):c===e.prototype.strategy.OVERFLOW?t:void 0,s?.doDrop(),s==null||c===e.prototype.strategy.OVERFLOW)?(s??t.doDrop(),o):(t.doQueue(o,r),this._queues.push(t),await this._drainAll(),o)}_receive(t){return this._states.jobStatus(t.options.id)==null?(t.doReceive(),this._submitLock.schedule(this._addToQueue,t)):(t._reject(new e.prototype.BottleneckError(`A job with the same id already exists (id=${t.options.id})`)),!1)}submit(...e){var t,n,r,i,a,o,s;return typeof e[0]==`function`?(a=e,[n,...e]=a,[t]=ae.call(e,-1),i=ie.load({},this.jobDefaults)):(o=e,[i,n,...e]=o,[t]=ae.call(e,-1),i=ie.load(i,this.jobDefaults)),s=(...e)=>new this.Promise(function(t,r){return n(...e,function(...e){return(e[0]==null?t:r)(e)})}),r=new W(s,e,i,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),r.promise.then(function(e){return typeof t==`function`?t(...e):void 0}).catch(function(e){return Array.isArray(e)?typeof t==`function`?t(...e):void 0:typeof t==`function`?t(e):void 0}),this._receive(r)}schedule(...e){var t,n,r;return typeof e[0]==`function`?([r,...e]=e,n={}):[n,r,...e]=e,t=new W(r,e,n,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(t),t.promise}wrap(e){var t=this.schedule.bind(this),n=function(...n){return t(e.bind(this),...n)};return n.withOptions=function(n,...r){return t(n,e,...r)},n}async updateSettings(e={}){return await this._store.__updateSettings__(ie.overwrite(e,this.storeDefaults)),ie.overwrite(e,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(e=0){return this._store.__incrementReservoir__(e)}}return e.default=e,e.Events=U,e.version=e.prototype.version=B.version,e.strategy=e.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},e.BottleneckError=e.prototype.BottleneckError=c,e.Group=e.prototype.Group=F,e.RedisConnection=e.prototype.RedisConnection=E,e.IORedisConnection=e.prototype.IORedisConnection=D,e.Batcher=e.prototype.Batcher=z,e.prototype.jobDefaults={priority:H,weight:1,expiration:null,id:``},e.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:e.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},e.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},e.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},e.prototype.instanceDefaults={datastore:`local`,connection:null,id:``,rejectOnDrop:!0,trackDoneStatus:!1,Promise},e.prototype.stopDefaults={enqueueErrorMessage:`This limiter has been stopped and cannot accept new jobs.`,dropWaitingJobs:!0,dropErrorMessage:`This limiter has been stopped.`},e}).call(e);var oe=V;return oe}))})),Va=be(Ba(),1),Ha=re(import.meta.url);function Ua(e){let t=x(e);return t.length>1&&t[t.length-1]===T&&(t=t.substring(0,t.length-1)),t}const Wa=/[\\/]/g;function Ga(e,t){return e.replace(Wa,t)}const Ka=/^[a-z]:[\\/]$/i;function qa(e){return e===`/`||Ka.test(e)}function Ja(e,t){let{resolvePaths:n,normalizePath:r,pathSeparator:i}=t,a=process.platform===`win32`&&e.includes(`/`)||e.startsWith(`.`);return n&&(e=w(e)),(r||a)&&(e=Ua(e)),e===`.`?``:Ga(e[e.length-1]===i?e:e+i,i)}function Ya(e,t){return t+e}function Xa(e,t){return function(n,r){return r.startsWith(e)?r.slice(e.length)+n:Ga(C(e,r),t.pathSeparator)+t.pathSeparator+n}}function Za(e){return e}function Qa(e,t,n){return t+e+n}function $a(e,t){let{relativePaths:n,includeBasePath:r}=t;return n&&e?Xa(e,t):r?Ya:Za}function eo(e){return function(t,n){n.push(t.substring(e.length)||`.`)}}function to(e){return function(t,n,r){let i=t.substring(e.length)||`.`;r.every(e=>e(i,!0))&&n.push(i)}}const no=(e,t)=>{t.push(e||`.`)},ro=(e,t,n)=>{let r=e||`.`;n.every(e=>e(r,!0))&&t.push(r)},io=()=>{};function ao(e,t){let{includeDirs:n,filters:r,relativePaths:i}=t;return n?i?r&&r.length?to(e):eo(e):r&&r.length?ro:no:io}const oo=(e,t,n,r)=>{r.every(t=>t(e,!1))&&n.files++},so=(e,t,n,r)=>{r.every(t=>t(e,!1))&&t.push(e)},co=(e,t,n,r)=>{n.files++},lo=(e,t)=>{t.push(e)},uo=()=>{};function fo(e){let{excludeFiles:t,filters:n,onlyCounts:r}=e;return t?uo:n&&n.length?r?oo:so:r?co:lo}const po=e=>e,mo=()=>[``].slice(0,0);function ho(e){return e.group?mo:po}const go=(e,t,n)=>{e.push({directory:t,files:n,dir:t})},_o=()=>{};function vo(e){return e.group?go:_o}const yo=function(e,t,n){let{queue:r,fs:i,options:{suppressErrors:a}}=t;r.enqueue(),i.realpath(e,(o,s)=>{if(o)return r.dequeue(a?null:o,t);i.stat(s,(i,o)=>{if(i)return r.dequeue(a?null:i,t);if(o.isDirectory()&&So(e,s,t))return r.dequeue(null,t);n(o,s),r.dequeue(null,t)})})},bo=function(e,t,n){let{queue:r,fs:i,options:{suppressErrors:a}}=t;r.enqueue();try{let r=i.realpathSync(e),a=i.statSync(r);if(a.isDirectory()&&So(e,r,t))return;n(a,r)}catch(e){if(!a)throw e}};function xo(e,t){return!e.resolveSymlinks||e.excludeSymlinks?null:t?bo:yo}function So(e,t,n){if(n.options.useRealPaths)return Co(t,n);let r=y(e),i=1;for(;r!==n.root&&i<2;){let e=n.symlinks.get(r);e&&(e===t||e.startsWith(t)||t.startsWith(e))?i++:r=y(r)}return n.symlinks.set(e,t),i>1}function Co(e,t){return t.visited.includes(e+t.options.pathSeparator)}const wo=e=>e.counts,To=e=>e.groups,Eo=e=>e.paths,Do=e=>e.paths.slice(0,e.options.maxFiles),Oo=(e,t,n)=>(Mo(t,n,e.counts,e.options.suppressErrors),null),ko=(e,t,n)=>(Mo(t,n,e.paths,e.options.suppressErrors),null),Ao=(e,t,n)=>(Mo(t,n,e.paths.slice(0,e.options.maxFiles),e.options.suppressErrors),null),jo=(e,t,n)=>(Mo(t,n,e.groups,e.options.suppressErrors),null);function Mo(e,t,n,r){t(e&&!r?e:null,n)}function No(e,t){let{onlyCounts:n,group:r,maxFiles:i}=e;return n?t?wo:Oo:r?t?To:jo:i?t?Do:Ao:t?Eo:ko}const Po={withFileTypes:!0},Fo=(e,t,n,r,i)=>{if(e.queue.enqueue(),r<0)return e.queue.dequeue(null,e);let{fs:a}=e;e.visited.push(t),e.counts.directories++,a.readdir(t||`.`,Po,(t,a=[])=>{i(a,n,r),e.queue.dequeue(e.options.suppressErrors?null:t,e)})},Io=(e,t,n,r,i)=>{let{fs:a}=e;if(r<0)return;e.visited.push(t),e.counts.directories++;let o=[];try{o=a.readdirSync(t||`.`,Po)}catch(t){if(!e.options.suppressErrors)throw t}i(o,n,r)};function Lo(e){return e?Io:Fo}var Ro=class{count=0;constructor(e){this.onQueueEmpty=e}enqueue(){return this.count++,this.count}dequeue(e,t){this.onQueueEmpty&&(--this.count<=0||e)&&(this.onQueueEmpty(e,t),e&&(t.controller.abort(),this.onQueueEmpty=void 0))}},zo=class{_files=0;_directories=0;set files(e){this._files=e}get files(){return this._files}set directories(e){this._directories=e}get directories(){return this._directories}get dirs(){return this._directories}},Bo=class{aborted=!1;abort(){this.aborted=!0}},Vo=class{root;isSynchronous;state;joinPath;pushDirectory;pushFile;getArray;groupFiles;resolveSymlink;walkDirectory;callbackInvoker;constructor(e,t,n){this.isSynchronous=!n,this.callbackInvoker=No(t,this.isSynchronous),this.root=Ja(e,t),this.state={root:qa(this.root)?this.root:this.root.slice(0,-1),paths:[``].slice(0,0),groups:[],counts:new zo,options:t,queue:new Ro((e,t)=>this.callbackInvoker(t,e,n)),symlinks:new Map,visited:[``].slice(0,0),controller:new Bo,fs:t.fs||a},this.joinPath=$a(this.root,t),this.pushDirectory=ao(this.root,t),this.pushFile=fo(t),this.getArray=ho(t),this.groupFiles=vo(t),this.resolveSymlink=xo(t,this.isSynchronous),this.walkDirectory=Lo(this.isSynchronous)}start(){return this.pushDirectory(this.root,this.state.paths,this.state.options.filters),this.walkDirectory(this.state,this.root,this.root,this.state.options.maxDepth,this.walk),this.isSynchronous?this.callbackInvoker(this.state,null):null}walk=(e,t,n)=>{let{paths:r,options:{filters:i,resolveSymlinks:a,excludeSymlinks:o,exclude:s,maxFiles:c,signal:l,useRealPaths:u,pathSeparator:d},controller:f}=this.state;if(f.aborted||l&&l.aborted||c&&r.length>c)return;let p=this.getArray(this.state.paths);for(let c=0;c{if(t.isDirectory()){if(r=Ja(r,this.state.options),s&&s(l.name,u?r:e+d))return;this.walkDirectory(this.state,r,u?r:e+d,n-1,this.walk)}else{r=u?r:e;let t=v(r),n=Ja(y(r),this.state.options);r=this.joinPath(t,n),this.pushFile(r,p,this.state.counts,i)}})}}this.groupFiles(this.state.groups,t,p)}};function Ho(e,t){return new Promise((n,r)=>{Uo(e,t,(e,t)=>{if(e)return r(e);n(t)})})}function Uo(e,t,n){new Vo(e,t,n).start()}function Wo(e,t){return new Vo(e,t).start()}var Go=class{constructor(e,t){this.root=e,this.options=t}withPromise(){return Ho(this.root,this.options)}withCallback(e){Uo(this.root,this.options,e)}sync(){return Wo(this.root,this.options)}};let Ko=null;try{Ha.resolve(`picomatch`),Ko=Ha(`picomatch`)}catch{}var qo=class{globCache={};options={maxDepth:1/0,suppressErrors:!0,pathSeparator:T,filters:[]};globFunction;constructor(e){this.options={...this.options,...e},this.globFunction=this.options.globFunction}group(){return this.options.group=!0,this}withPathSeparator(e){return this.options.pathSeparator=e,this}withBasePath(){return this.options.includeBasePath=!0,this}withRelativePaths(){return this.options.relativePaths=!0,this}withDirs(){return this.options.includeDirs=!0,this}withMaxDepth(e){return this.options.maxDepth=e,this}withMaxFiles(e){return this.options.maxFiles=e,this}withFullPaths(){return this.options.resolvePaths=!0,this.options.includeBasePath=!0,this}withErrors(){return this.options.suppressErrors=!1,this}withSymlinks({resolvePaths:e=!0}={}){return this.options.resolveSymlinks=!0,this.options.useRealPaths=e,this.withFullPaths()}withAbortSignal(e){return this.options.signal=e,this}normalize(){return this.options.normalizePath=!0,this}filter(e){return this.options.filters.push(e),this}onlyDirs(){return this.options.excludeFiles=!0,this.options.includeDirs=!0,this}exclude(e){return this.options.exclude=e,this}onlyCounts(){return this.options.onlyCounts=!0,this}crawl(e){return new Go(e||`.`,this.options)}withGlobFunction(e){return this.globFunction=e,this}crawlWithOptions(e,t){return this.options={...this.options,...t},new Go(e||`.`,this.options)}glob(...e){return this.globFunction?this.globWithOptions(e):this.globWithOptions(e,{dot:!0})}globWithOptions(e,...t){let n=this.globFunction||Ko;if(!n)throw Error(`Please specify a glob function to use glob matching.`);var r=this.globCache[e.join(`\0`)];return r||(r=n(e,...t),this.globCache[e.join(`\0`)]=r),this.options.filters.push(e=>r(e)),this}},Jo=J(((e,t)=>{let n=`[^\\\\/]`,r=`[^/]`,i=`(?:\\/|$)`,a=`(?:^|\\/)`,o=`\\.{1,2}${i}`,s={DOT_LITERAL:`\\.`,PLUS_LITERAL:`\\+`,QMARK_LITERAL:`\\?`,SLASH_LITERAL:`\\/`,ONE_CHAR:`(?=.)`,QMARK:r,END_ANCHOR:i,DOTS_SLASH:o,NO_DOT:`(?!\\.)`,NO_DOTS:`(?!${a}${o})`,NO_DOT_SLASH:`(?!\\.{0,1}${i})`,NO_DOTS_SLASH:`(?!${o})`,QMARK_NO_DOT:`[^.\\/]`,STAR:`${r}*?`,START_ANCHOR:a,SEP:`/`},c={...s,SLASH_LITERAL:`[\\\\/]`,QMARK:n,STAR:`${n}*?`,DOTS_SLASH:`\\.{1,2}(?:[\\\\/]|$)`,NO_DOT:`(?!\\.)`,NO_DOTS:`(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))`,NO_DOT_SLASH:`(?!\\.{0,1}(?:[\\\\/]|$))`,NO_DOTS_SLASH:`(?!\\.{1,2}(?:[\\\\/]|$))`,QMARK_NO_DOT:`[^.\\\\/]`,START_ANCHOR:`(?:^|[\\\\/])`,END_ANCHOR:`(?:[\\\\/]|$)`,SEP:`\\`};t.exports={DEFAULT_MAX_EXTGLOB_RECURSION:0,MAX_LENGTH:65536,POSIX_REGEX_SOURCE:{__proto__:null,alnum:`a-zA-Z0-9`,alpha:`a-zA-Z`,ascii:`\\x00-\\x7F`,blank:` \\t`,cntrl:`\\x00-\\x1F\\x7F`,digit:`0-9`,graph:`\\x21-\\x7E`,lower:`a-z`,print:`\\x20-\\x7E `,punct:`\\-!"#$%&'()\\*+,./:;<=>?@[\\]^_\`{|}~`,space:` \\t\\r\\n\\v\\f`,upper:`A-Z`,word:`A-Za-z0-9_`,xdigit:`A-Fa-f0-9`},REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":`*`,"**/**":`**`,"**/**/**":`**`},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(e){return{"!":{type:`negate`,open:`(?:(?!(?:`,close:`))${e.STAR})`},"?":{type:`qmark`,open:`(?:`,close:`)?`},"+":{type:`plus`,open:`(?:`,close:`)+`},"*":{type:`star`,open:`(?:`,close:`)*`},"@":{type:`at`,open:`(?:`,close:`)`}}},globChars(e){return e===!0?c:s}}})),Yo=J((e=>{let{REGEX_BACKSLASH:t,REGEX_REMOVE_BACKSLASH:n,REGEX_SPECIAL_CHARS:r,REGEX_SPECIAL_CHARS_GLOBAL:i}=Jo();e.isObject=e=>typeof e==`object`&&!!e&&!Array.isArray(e),e.hasRegexChars=e=>r.test(e),e.isRegexChar=t=>t.length===1&&e.hasRegexChars(t),e.escapeRegex=e=>e.replace(i,`\\$1`),e.toPosixSlashes=e=>e.replace(t,`/`),e.isWindows=()=>{if(typeof navigator<`u`&&navigator.platform){let e=navigator.platform.toLowerCase();return e===`win32`||e===`windows`}return typeof process<`u`&&process.platform?process.platform===`win32`:!1},e.removeBackslashes=e=>e.replace(n,e=>e===`\\`?``:e),e.escapeLast=(t,n,r)=>{let i=t.lastIndexOf(n,r);return i===-1?t:t[i-1]===`\\`?e.escapeLast(t,n,i-1):`${t.slice(0,i)}\\${t.slice(i)}`},e.removePrefix=(e,t={})=>{let n=e;return n.startsWith(`./`)&&(n=n.slice(2),t.prefix=`./`),n},e.wrapOutput=(e,t={},n={})=>{let r=`${n.contains?``:`^`}(?:${e})${n.contains?``:`$`}`;return t.negated===!0&&(r=`(?:^(?!${r}).*$)`),r},e.basename=(e,{windows:t}={})=>{let n=e.split(t?/[\\/]/:`/`),r=n[n.length-1];return r===``?n[n.length-2]:r}})),Xo=J(((e,t)=>{let n=Yo(),{CHAR_ASTERISK:r,CHAR_AT:i,CHAR_BACKWARD_SLASH:a,CHAR_COMMA:o,CHAR_DOT:s,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:l,CHAR_LEFT_CURLY_BRACE:u,CHAR_LEFT_PARENTHESES:d,CHAR_LEFT_SQUARE_BRACKET:f,CHAR_PLUS:p,CHAR_QUESTION_MARK:m,CHAR_RIGHT_CURLY_BRACE:h,CHAR_RIGHT_PARENTHESES:g,CHAR_RIGHT_SQUARE_BRACKET:v}=Jo(),y=e=>e===l||e===a,b=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)};t.exports=(e,t)=>{let x=t||{},S=e.length-1,C=x.parts===!0||x.tokens===!0||x.scanToEnd===!0,w=[],T=[],E=[],D=e,O=-1,k=0,A=0,j=!1,M=!1,N=!1,P=!1,F=!1,I=!1,L=!1,R=!1,z=!1,ee=!1,B=0,V,H,U={value:``,depth:0,isGlob:!1},W=()=>O>=S,G=()=>D.charCodeAt(O+1),K=()=>(V=H,D.charCodeAt(++O));for(;O0&&(te=D.slice(0,k),D=D.slice(k),A-=k),q&&N===!0&&A>0?(q=D.slice(0,A),ne=D.slice(A)):N===!0?(q=``,ne=D):q=D,q&&q!==``&&q!==`/`&&q!==D&&y(q.charCodeAt(q.length-1))&&(q=q.slice(0,-1)),x.unescape===!0&&(ne&&=n.removeBackslashes(ne),q&&L===!0&&(q=n.removeBackslashes(q)));let re={prefix:te,input:e,start:k,base:q,glob:ne,isBrace:j,isBracket:M,isGlob:N,isExtglob:P,isGlobstar:F,negated:R,negatedExtglob:z};if(x.tokens===!0&&(re.maxDepth=0,y(H)||T.push(U),re.tokens=T),x.parts===!0||x.tokens===!0){let t;for(let n=0;n=k&&(E.push(a),t=i)}let n=t===void 0?k:t+1,r=e.slice(n);E.push(r),x.tokens&&t&&t+1{let n=Jo(),r=Yo(),{MAX_LENGTH:i,POSIX_REGEX_SOURCE:a,REGEX_NON_SPECIAL_CHARS:o,REGEX_SPECIAL_CHARS_BACKREF:s,REPLACEMENTS:c}=n,l=(e,t)=>{if(typeof t.expandRange==`function`)return t.expandRange(...e,t);e.sort();let n=`[${e.join(`-`)}]`;try{new RegExp(n)}catch{return e.map(e=>r.escapeRegex(e)).join(`..`)}return n},u=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,d=e=>{let t=[],n=0,r=0,i=0,a=``,o=!1;for(let s of e){if(o===!0){a+=s,o=!1;continue}if(s===`\\`){a+=s,o=!0;continue}if(s===`"`){i=i===1?0:1,a+=s;continue}if(i===0){if(s===`[`)n++;else if(s===`]`&&n>0)n--;else if(n===0){if(s===`(`)r++;else if(s===`)`&&r>0)r--;else if(s===`|`&&r===0){t.push(a),a=``;continue}}}a+=s}return t.push(a),t},f=e=>{let t=!1;for(let n of e){if(t===!0){t=!1;continue}if(n===`\\`){t=!0;continue}if(/[?*+@!()[\]{}]/.test(n))return!1}return!0},p=e=>{let t=e.trim(),n=!0;for(;n===!0;)n=!1,/^@\([^\\()[\]{}|]+\)$/.test(t)&&(t=t.slice(2,-1),n=!0);if(f(t))return t.replace(/\\(.)/g,`$1`)},m=e=>{let t=e.map(p).filter(Boolean);for(let e=0;e{if(e[0]!==`+`&&e[0]!==`*`||e[1]!==`(`)return;let n=0,r=0,i=0,a=!1;for(let o=1;o0){n--;continue}if(!(n>0)){if(s===`(`){r++;continue}if(s===`)`&&(r--,r===0))return t===!0&&o!==e.length-1?void 0:{type:e[0],body:e.slice(2,o),end:o}}}}},g=e=>`${e.length===1?r.escapeRegex(e[0]):`[${e.map(e=>r.escapeRegex(e)).join(``)}]`}*`,v=e=>{let t=0,n=[];for(;te.trim());if(i.length!==1)return;let a=p(i[0]);if(!a||a.length!==1)return;n.push(a),t+=r.end+1}if(!(n.length<1))return n},y=e=>{let t=0,n=e.trim(),r=h(n);for(;r;)t++,n=r.body.trim(),r=h(n);return t},b=(e,t)=>{if(t.maxExtglobRecursion===!1)return{risky:!1};let r=typeof t.maxExtglobRecursion==`number`?t.maxExtglobRecursion:n.DEFAULT_MAX_EXTGLOB_RECURSION,i=d(e).map(e=>e.trim());if(i.length>1&&(i.some(e=>e===``)||i.some(e=>/^[*?]+$/.test(e))||m(i)))return{risky:!0};let a=[],o=!1,s=!0;for(let e of i){let t=v(e);if(t){o=!0,a.push(...t);continue}let n=p(e);if(n&&n.length===1){a.push(n);continue}if(s=!1,y(e)>r)return{risky:!0}}return o?s?{risky:!0,safeOutput:g([...new Set(a)])}:{risky:!0}:{risky:!1}},x=(e,t)=>{if(typeof e!=`string`)throw TypeError(`Expected a string`);e=c[e]||e;let d={...t},f=typeof d.maxLength==`number`?Math.min(i,d.maxLength):i,p=e.length;if(p>f)throw SyntaxError(`Input length: ${p}, exceeds maximum allowed length: ${f}`);let m={type:`bos`,value:``,output:d.prepend||``},h=[m],g=d.capture?``:`?:`,v=n.globChars(d.windows),y=n.extglobChars(v),{DOT_LITERAL:S,PLUS_LITERAL:C,SLASH_LITERAL:w,ONE_CHAR:T,DOTS_SLASH:E,NO_DOT:D,NO_DOT_SLASH:O,NO_DOTS_SLASH:k,QMARK:A,QMARK_NO_DOT:j,STAR:M,START_ANCHOR:N}=v,P=e=>`(${g}(?:(?!${N}${e.dot?E:S}).)*?)`,F=d.dot?``:D,I=d.dot?A:j,L=d.bash===!0?P(d):M;d.capture&&(L=`(${L})`),typeof d.noext==`boolean`&&(d.noextglob=d.noext);let R={input:e,index:-1,start:0,dot:d.dot===!0,consumed:``,output:``,prefix:``,backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:h};e=r.removePrefix(e,R),p=e.length;let z=[],ee=[],B=[],V=m,H,U=()=>R.index===p-1,W=R.peek=(t=1)=>e[R.index+t],G=R.advance=()=>e[++R.index]||``,K=()=>e.slice(R.index+1),q=(e=``,t=0)=>{R.consumed+=e,R.index+=t},te=e=>{R.output+=e.output==null?e.value:e.output,q(e.value)},ne=()=>{let e=1;for(;W()===`!`&&(W(2)!==`(`||W(3)===`?`);)G(),R.start++,e++;return e%2!=0&&(R.negated=!0,R.start++,!0)},re=e=>{R[e]++,B.push(e)},ie=e=>{R[e]--,B.pop()},ae=e=>{if(V.type===`globstar`){let t=R.braces>0&&(e.type===`comma`||e.type===`brace`),n=e.extglob===!0||z.length&&(e.type===`pipe`||e.type===`paren`);e.type!==`slash`&&e.type!==`paren`&&!t&&!n&&(R.output=R.output.slice(0,-V.output.length),V.type=`star`,V.value=`*`,V.output=L,R.output+=V.output)}if(z.length&&e.type!==`paren`&&(z[z.length-1].inner+=e.value),(e.value||e.output)&&te(e),V&&V.type===`text`&&e.type===`text`){V.output=(V.output||V.value)+e.value,V.value+=e.value;return}e.prev=V,h.push(e),V=e},oe=(e,t)=>{let n={...y[t],conditions:1,inner:``};n.prev=V,n.parens=R.parens,n.output=R.output,n.startIndex=R.index,n.tokensIndex=h.length;let r=(d.capture?`(`:``)+n.open;re(`parens`),ae({type:e,value:t,output:R.output?``:T}),ae({type:`paren`,extglob:!0,value:G(),output:r}),z.push(n)},se=n=>{let i=e.slice(n.startIndex,R.index+1),a=e.slice(n.startIndex+2,R.index),o=b(a,d);if((n.type===`plus`||n.type===`star`)&&o.risky){let e=o.safeOutput?(n.output?``:T)+(d.capture?`(${o.safeOutput})`:o.safeOutput):void 0,t=h[n.tokensIndex];t.type=`text`,t.value=i,t.output=e||r.escapeRegex(i);for(let e=n.tokensIndex+1;e1&&n.inner.includes(`/`)&&(e=P(d)),(e!==L||U()||/^\)+$/.test(K()))&&(s=n.close=`)$))${e}`),n.inner.includes(`*`)&&(c=K())&&/^\.[^\\/.]+$/.test(c)&&(s=n.close=`)${x(c,{...t,fastpaths:!1}).output})${e})`),n.prev.type===`bos`&&(R.negatedExtglob=!0)}ae({type:`paren`,extglob:!0,value:H,output:s}),ie(`parens`)};if(d.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let n=!1,i=e.replace(s,(e,t,r,i,a,o)=>i===`\\`?(n=!0,e):i===`?`?t?t+i+(a?A.repeat(a.length):``):o===0?I+(a?A.repeat(a.length):``):A.repeat(r.length):i===`.`?S.repeat(r.length):i===`*`?t?t+i+(a?L:``):L:t?e:`\\${e}`);return n===!0&&(i=d.unescape===!0?i.replace(/\\/g,``):i.replace(/\\+/g,e=>e.length%2==0?`\\\\`:e?`\\`:``)),i===e&&d.contains===!0?(R.output=e,R):(R.output=r.wrapOutput(i,R,t),R)}for(;!U();){if(H=G(),H===`\0`)continue;if(H===`\\`){let e=W();if(e===`/`&&d.bash!==!0||e===`.`||e===`;`)continue;if(!e){H+=`\\`,ae({type:`text`,value:H});continue}let t=/^\\+/.exec(K()),n=0;if(t&&t[0].length>2&&(n=t[0].length,R.index+=n,n%2!=0&&(H+=`\\`)),d.unescape===!0?H=G():H+=G(),R.brackets===0){ae({type:`text`,value:H});continue}}if(R.brackets>0&&(H!==`]`||V.value===`[`||V.value===`[^`)){if(d.posix!==!1&&H===`:`){let e=V.value.slice(1);if(e.includes(`[`)&&(V.posix=!0,e.includes(`:`))){let e=V.value.lastIndexOf(`[`),t=V.value.slice(0,e),n=V.value.slice(e+2),r=a[n];if(r){V.value=t+r,R.backtrack=!0,G(),!m.output&&h.indexOf(V)===1&&(m.output=T);continue}}}(H===`[`&&W()!==`:`||H===`-`&&W()===`]`)&&(H=`\\${H}`),H===`]`&&(V.value===`[`||V.value===`[^`)&&(H=`\\${H}`),d.posix===!0&&H===`!`&&V.value===`[`&&(H=`^`),V.value+=H,te({value:H});continue}if(R.quotes===1&&H!==`"`){H=r.escapeRegex(H),V.value+=H,te({value:H});continue}if(H===`"`){R.quotes=R.quotes===1?0:1,d.keepQuotes===!0&&ae({type:`text`,value:H});continue}if(H===`(`){re(`parens`),ae({type:`paren`,value:H});continue}if(H===`)`){if(R.parens===0&&d.strictBrackets===!0)throw SyntaxError(u(`opening`,`(`));let e=z[z.length-1];if(e&&R.parens===e.parens+1){se(z.pop());continue}ae({type:`paren`,value:H,output:R.parens?`)`:`\\)`}),ie(`parens`);continue}if(H===`[`){if(d.nobracket===!0||!K().includes(`]`)){if(d.nobracket!==!0&&d.strictBrackets===!0)throw SyntaxError(u(`closing`,`]`));H=`\\${H}`}else re(`brackets`);ae({type:`bracket`,value:H});continue}if(H===`]`){if(d.nobracket===!0||V&&V.type===`bracket`&&V.value.length===1){ae({type:`text`,value:H,output:`\\${H}`});continue}if(R.brackets===0){if(d.strictBrackets===!0)throw SyntaxError(u(`opening`,`[`));ae({type:`text`,value:H,output:`\\${H}`});continue}ie(`brackets`);let e=V.value.slice(1);if(V.posix!==!0&&e[0]===`^`&&!e.includes(`/`)&&(H=`/${H}`),V.value+=H,te({value:H}),d.literalBrackets===!1||r.hasRegexChars(e))continue;let t=r.escapeRegex(V.value);if(R.output=R.output.slice(0,-V.value.length),d.literalBrackets===!0){R.output+=t,V.value=t;continue}V.value=`(${g}${t}|${V.value})`,R.output+=V.value;continue}if(H===`{`&&d.nobrace!==!0){re(`braces`);let e={type:`brace`,value:H,output:`(`,outputIndex:R.output.length,tokensIndex:R.tokens.length};ee.push(e),ae(e);continue}if(H===`}`){let e=ee[ee.length-1];if(d.nobrace===!0||!e){ae({type:`text`,value:H,output:H});continue}let t=`)`;if(e.dots===!0){let e=h.slice(),n=[];for(let t=e.length-1;t>=0&&(h.pop(),e[t].type!==`brace`);t--)e[t].type!==`dots`&&n.unshift(e[t].value);t=l(n,d),R.backtrack=!0}if(e.comma!==!0&&e.dots!==!0){let n=R.output.slice(0,e.outputIndex),r=R.tokens.slice(e.tokensIndex);e.value=e.output=`\\{`,H=t=`\\}`,R.output=n;for(let e of r)R.output+=e.output||e.value}ae({type:`brace`,value:H,output:t}),ie(`braces`),ee.pop();continue}if(H===`|`){z.length>0&&z[z.length-1].conditions++,ae({type:`text`,value:H});continue}if(H===`,`){let e=H,t=ee[ee.length-1];t&&B[B.length-1]===`braces`&&(t.comma=!0,e=`|`),ae({type:`comma`,value:H,output:e});continue}if(H===`/`){if(V.type===`dot`&&R.index===R.start+1){R.start=R.index+1,R.consumed=``,R.output=``,h.pop(),V=m;continue}ae({type:`slash`,value:H,output:w});continue}if(H===`.`){if(R.braces>0&&V.type===`dot`){V.value===`.`&&(V.output=S);let e=ee[ee.length-1];V.type=`dots`,V.output+=H,V.value+=H,e.dots=!0;continue}if(R.braces+R.parens===0&&V.type!==`bos`&&V.type!==`slash`){ae({type:`text`,value:H,output:S});continue}ae({type:`dot`,value:H,output:S});continue}if(H===`?`){if(!(V&&V.value===`(`)&&d.noextglob!==!0&&W()===`(`&&W(2)!==`?`){oe(`qmark`,H);continue}if(V&&V.type===`paren`){let e=W(),t=H;(V.value===`(`&&!/[!=<:]/.test(e)||e===`<`&&!/<([!=]|\w+>)/.test(K()))&&(t=`\\${H}`),ae({type:`text`,value:H,output:t});continue}if(d.dot!==!0&&(V.type===`slash`||V.type===`bos`)){ae({type:`qmark`,value:H,output:j});continue}ae({type:`qmark`,value:H,output:A});continue}if(H===`!`){if(d.noextglob!==!0&&W()===`(`&&(W(2)!==`?`||!/[!=<:]/.test(W(3)))){oe(`negate`,H);continue}if(d.nonegate!==!0&&R.index===0){ne();continue}}if(H===`+`){if(d.noextglob!==!0&&W()===`(`&&W(2)!==`?`){oe(`plus`,H);continue}if(V&&V.value===`(`||d.regex===!1){ae({type:`plus`,value:H,output:C});continue}if(V&&(V.type===`bracket`||V.type===`paren`||V.type===`brace`)||R.parens>0){ae({type:`plus`,value:H});continue}ae({type:`plus`,value:C});continue}if(H===`@`){if(d.noextglob!==!0&&W()===`(`&&W(2)!==`?`){ae({type:`at`,extglob:!0,value:H,output:``});continue}ae({type:`text`,value:H});continue}if(H!==`*`){(H===`$`||H===`^`)&&(H=`\\${H}`);let e=o.exec(K());e&&(H+=e[0],R.index+=e[0].length),ae({type:`text`,value:H});continue}if(V&&(V.type===`globstar`||V.star===!0)){V.type=`star`,V.star=!0,V.value+=H,V.output=L,R.backtrack=!0,R.globstar=!0,q(H);continue}let t=K();if(d.noextglob!==!0&&/^\([^?]/.test(t)){oe(`star`,H);continue}if(V.type===`star`){if(d.noglobstar===!0){q(H);continue}let n=V.prev,r=n.prev,i=n.type===`slash`||n.type===`bos`,a=r&&(r.type===`star`||r.type===`globstar`);if(d.bash===!0&&(!i||t[0]&&t[0]!==`/`)){ae({type:`star`,value:H,output:``});continue}let o=R.braces>0&&(n.type===`comma`||n.type===`brace`),s=z.length&&(n.type===`pipe`||n.type===`paren`);if(!i&&n.type!==`paren`&&!o&&!s){ae({type:`star`,value:H,output:``});continue}for(;t.slice(0,3)===`/**`;){let n=e[R.index+4];if(n&&n!==`/`)break;t=t.slice(3),q(`/**`,3)}let c=U()||R.parens>0&&t===`)`.repeat(R.parens)&&!z.some(e=>e.type===`negate`);if(n.type===`bos`&&U()){V.type=`globstar`,V.value+=H,V.output=P(d),R.output=V.output,R.globstar=!0,q(H);continue}if(n.type===`slash`&&n.prev.type!==`bos`&&!a&&c){R.output=R.output.slice(0,-(n.output+V.output).length),n.output=`(?:${n.output}`,V.type=`globstar`,V.output=P(d)+(d.strictSlashes?`)`:`|$)`),V.value+=H,R.globstar=!0,R.output+=n.output+V.output,q(H);continue}if(n.type===`slash`&&n.prev.type!==`bos`&&t[0]===`/`){let e=t[1]===void 0?``:`|$`;R.output=R.output.slice(0,-(n.output+V.output).length),n.output=`(?:${n.output}`,V.type=`globstar`,V.output=`${P(d)}${w}|${w}${e})`,V.value+=H,R.output+=n.output+V.output,R.globstar=!0,q(H+G()),ae({type:`slash`,value:`/`,output:``});continue}if(n.type===`bos`&&t[0]===`/`){V.type=`globstar`,V.value+=H,V.output=`(?:^|${w}|${P(d)}${w})`,R.output=V.output,R.globstar=!0,q(H+G()),ae({type:`slash`,value:`/`,output:``});continue}R.output=R.output.slice(0,-V.output.length),V.type=`globstar`,V.output=P(d),V.value+=H,R.output+=V.output,R.globstar=!0,q(H);continue}let n={type:`star`,value:H,output:L};if(d.bash===!0){n.output=`.*?`,(V.type===`bos`||V.type===`slash`)&&(n.output=F+n.output),ae(n);continue}if(V&&(V.type===`bracket`||V.type===`paren`)&&d.regex===!0){n.output=H,ae(n);continue}(R.index===R.start||V.type===`slash`||V.type===`dot`)&&(V.type===`dot`?(R.output+=O,V.output+=O):d.dot===!0?(R.output+=k,V.output+=k):(R.output+=F,V.output+=F),W()!==`*`&&(R.output+=T,V.output+=T)),ae(n)}for(;R.brackets>0;){if(d.strictBrackets===!0)throw SyntaxError(u(`closing`,`]`));R.output=r.escapeLast(R.output,`[`),ie(`brackets`)}for(;R.parens>0;){if(d.strictBrackets===!0)throw SyntaxError(u(`closing`,`)`));R.output=r.escapeLast(R.output,`(`),ie(`parens`)}for(;R.braces>0;){if(d.strictBrackets===!0)throw SyntaxError(u(`closing`,`}`));R.output=r.escapeLast(R.output,`{`),ie(`braces`)}if(d.strictSlashes!==!0&&(V.type===`star`||V.type===`bracket`)&&ae({type:`maybe_slash`,value:``,output:`${w}?`}),R.backtrack===!0){R.output=``;for(let e of R.tokens)R.output+=e.output==null?e.value:e.output,e.suffix&&(R.output+=e.suffix)}return R};x.fastpaths=(e,t)=>{let a={...t},o=typeof a.maxLength==`number`?Math.min(i,a.maxLength):i,s=e.length;if(s>o)throw SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${o}`);e=c[e]||e;let{DOT_LITERAL:l,SLASH_LITERAL:u,ONE_CHAR:d,DOTS_SLASH:f,NO_DOT:p,NO_DOTS:m,NO_DOTS_SLASH:h,STAR:g,START_ANCHOR:v}=n.globChars(a.windows),y=a.dot?m:p,b=a.dot?h:p,x=a.capture?``:`?:`,S={negated:!1,prefix:``},C=a.bash===!0?`.*?`:g;a.capture&&(C=`(${C})`);let w=e=>e.noglobstar===!0?C:`(${x}(?:(?!${v}${e.dot?f:l}).)*?)`,T=e=>{switch(e){case`*`:return`${y}${d}${C}`;case`.*`:return`${l}${d}${C}`;case`*.*`:return`${y}${C}${l}${d}${C}`;case`*/*`:return`${y}${C}${u}${d}${b}${C}`;case`**`:return y+w(a);case`**/*`:return`(?:${y}${w(a)}${u})?${b}${d}${C}`;case`**/*.*`:return`(?:${y}${w(a)}${u})?${b}${C}${l}${d}${C}`;case`**/.*`:return`(?:${y}${w(a)}${u})?${l}${d}${C}`;default:{let t=/^(.*?)\.(\w+)$/.exec(e);if(!t)return;let n=T(t[1]);return n?n+l+t[2]:void 0}}},E=T(r.removePrefix(e,S));return E&&a.strictSlashes!==!0&&(E+=`${u}?`),E},t.exports=x})),Qo=J(((e,t)=>{let n=Xo(),r=Zo(),i=Yo(),a=Jo(),o=e=>e&&typeof e==`object`&&!Array.isArray(e),s=(e,t,n=!1)=>{if(Array.isArray(e)){let r=e.map(e=>s(e,t,n));return e=>{for(let t of r){let n=t(e);if(n)return n}return!1}}let r=o(e)&&e.tokens&&e.input;if(e===``||typeof e!=`string`&&!r)throw TypeError(`Expected pattern to be a non-empty string`);let i=t||{},a=i.windows,c=r?s.compileRe(e,t):s.makeRe(e,t,!1,!0),l=c.state;delete c.state;let u=()=>!1;if(i.ignore){let e={...t,ignore:null,onMatch:null,onResult:null};u=s(i.ignore,e,n)}let d=(n,r=!1)=>{let{isMatch:o,match:d,output:f}=s.test(n,c,t,{glob:e,posix:a}),p={glob:e,state:l,regex:c,posix:a,input:n,output:f,match:d,isMatch:o};return typeof i.onResult==`function`&&i.onResult(p),o===!1?(p.isMatch=!1,r?p:!1):u(n)?(typeof i.onIgnore==`function`&&i.onIgnore(p),p.isMatch=!1,r?p:!1):(typeof i.onMatch==`function`&&i.onMatch(p),!r||p)};return n&&(d.state=l),d};s.test=(e,t,n,{glob:r,posix:a}={})=>{if(typeof e!=`string`)throw TypeError(`Expected input to be a string`);if(e===``)return{isMatch:!1,output:``};let o=n||{},c=o.format||(a?i.toPosixSlashes:null),l=e===r,u=l&&c?c(e):e;return l===!1&&(u=c?c(e):e,l=u===r),(l===!1||o.capture===!0)&&(l=o.matchBase===!0||o.basename===!0?s.matchBase(e,t,n,a):t.exec(u)),{isMatch:!!l,match:l,output:u}},s.matchBase=(e,t,n,r=n&&n.windows)=>(t instanceof RegExp?t:s.makeRe(t,n)).test(i.basename(e,{windows:r})),s.isMatch=(e,t,n)=>s(t,n)(e),s.parse=(e,t)=>Array.isArray(e)?e.map(e=>s.parse(e,t)):r(e,{...t,fastpaths:!1}),s.scan=(e,t)=>n(e,t),s.compileRe=(e,t,n=!1,r=!1)=>{if(n===!0)return e.output;let i=t||{},a=i.contains?``:`^`,o=i.contains?``:`$`,c=`${a}(?:${e.output})${o}`;e&&e.negated===!0&&(c=`^(?!${c}).*$`);let l=s.toRegex(c,t);return r===!0&&(l.state=e),l},s.makeRe=(e,t={},n=!1,i=!1)=>{if(!e||typeof e!=`string`)throw TypeError(`Expected a non-empty string`);let a={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]===`.`||e[0]===`*`)&&(a.output=r.fastpaths(e,t)),a.output||(a=r(e,t)),s.compileRe(a,t,n,i)},s.toRegex=(e,t)=>{try{let n=t||{};return new RegExp(e,n.flags||(n.nocase?`i`:``))}catch(e){if(t&&t.debug===!0)throw e;return/$^/}},s.constants=a,t.exports=s})),$o=J(((e,t)=>{let n=Qo(),r=Yo();function i(e,t,i=!1){return t&&(t.windows===null||t.windows===void 0)&&(t={...t,windows:r.isWindows()}),n(e,t,i)}Object.assign(i,n),t.exports=i})),es=be($o(),1);const ts=Array.isArray,ns=/\\/g,rs=/^[A-Za-z]:$/,is=process.platform===`win32`,as=/^(\/?\.\.)+$/;function os(e,t={}){let n=e.length,r=Array(n),i=Array(n),a,o;for(a=0;a{let s=e.split(`/`);if(s[0]===`..`&&as.test(e))return!0;for(a=0;ass.test(e):e=>e===`/`;function ls(e,t,n){if(e===t||t.startsWith(`${e}/`)){if(n){let t=e.length+ +!cs(e);return(e,n)=>e.slice(t,n?-1:void 0)||`.`}let r=t.slice(e.length+1);return r?(e,t)=>{if(e===`.`)return r;let n=`${r}/${e}`;return t?n.slice(0,-1):n}:(e,t)=>t&&e!==`.`?e.slice(0,-1):e}return n?t=>S.relative(e,t)||`.`:n=>S.relative(e,`${t}/${n}`)||`.`}function us(e,t){if(t.startsWith(`${e}/`)){let n=t.slice(e.length+1);return e=>`${n}/${e}`}return n=>{let r=S.relative(e,`${t}/${n}`);return n[n.length-1]===`/`&&r!==``?`${r}/`:r||`.`}}function ds(e){return e.replace(rs,e=>`${e}/`)}const fs={parts:!0};function ps(e){let t=es.default.scan(e,fs);return t.parts?.length?t.parts:[e]}const ms=/(?e.replace(hs,`\\$&`):e=>e.replace(ms,`\\$&`);function _s(e,t){if(t?.caseSensitiveMatch===!1)return!0;let n=es.default.scan(e);return n.isGlob||n.negated}function vs(...e){console.log(`[tinyglobby ${new Date().toLocaleTimeString(`es`)}]`,...e)}function ys(e){return typeof e==`string`?[e]:e??[]}const bs=/^(\/?\.\.)+/,xs=/\\(?=[()[\]{}!*+?@|])/g;function Ss(e,t,n,r){let i=t.cwd,a=e;e[e.length-1]===`/`&&(a=e.slice(0,-1)),a[a.length-1]!==`*`&&t.expandDirectories&&(a+=`/**`);let o=gs(i);a=b(a.replace(xs,``))?S.relative(o,a):S.normalize(a);let s=bs.exec(a)?.[0],c=ps(a);if(s){let e=(s.length+1)/3,t=0,r=o.split(`/`);for(;tl.length&&(n.root=ds(l),n.depthOffset=-e+t)}if(!r&&n.depthOffset>=0){n.commonPath??=c;let e=[],t=Math.min(n.commonPath.length,c.length);for(let r=0;r0?S.join(i,...e):i)}return a}function Cs(e,t,n){let r=[],i=[];for(let t of e.ignore)t&&(t[0]!==`!`||t[1]===`(`)&&i.push(Ss(t,e,n,!0));for(let a of t)a&&(a[0]!==`!`||a[1]===`(`?r.push(Ss(a,e,n,!1)):(a[1]!==`!`||a[2]===`(`)&&i.push(Ss(a.slice(1),e,n,!0)));return{match:r,ignore:i}}function ws(e,t){let n=e.cwd,r={root:n,depthOffset:0},i=Cs(e,t,r);e.debug&&vs(`internal processing patterns:`,i);let{absolute:a,caseSensitiveMatch:o,debug:s,dot:c,followSymbolicLinks:l,onlyDirectories:u}=e,d=r.root.replace(ns,``),f={dot:c,nobrace:e.braceExpansion===!1,nocase:!o,noextglob:e.extglob===!1,noglobstar:e.globstar===!1,posix:!0},p=(0,es.default)(i.match,f),m=(0,es.default)(i.ignore,f),h=os(i.match,f),g=ls(n,d,a),v=a?g:ls(n,d,!0),y=(e,t)=>{let n=v(t,!0);return n!==`.`&&!h(n)||m(n)},b;e.deep!==void 0&&(b=Math.round(e.deep-r.depthOffset));let x=new qo({filters:[s?(e,t)=>{let n=g(e,t),r=p(n)&&!m(n);return r&&vs(`matched ${n}`),r}:(e,t)=>{let n=g(e,t);return p(n)&&!m(n)}],exclude:s?(e,t)=>{let n=y(e,t);return vs(`${n?`skipped`:`crawling`} ${t}`),n}:y,fs:e.fs,pathSeparator:`/`,relativePaths:!a,resolvePaths:a,includeBasePath:a,resolveSymlinks:l,excludeSymlinks:!l,excludeFiles:u,includeDirs:u||!e.onlyFiles,maxDepth:b,signal:e.signal}).crawl(d);return e.debug&&vs(`internal properties:`,{...r,root:d}),[x,n!==d&&!a&&us(n,d)]}function Ts(e,t){if(t)for(let n=e.length-1;n>=0;n--)e[n]=t(e[n]);return e}const Es={caseSensitiveMatch:!0,debug:!!process.env.TINYGLOBBY_DEBUG,expandDirectories:!0,followSymbolicLinks:!0,onlyFiles:!0};function Ds(e){let t=Object.assign({},e);for(let e in Es)t[e]===void 0&&Object.assign(t,{[e]:Es[e]});return t.cwd=(t.cwd instanceof URL?ne(t.cwd):w(t.cwd||process.cwd())).replace(ns,`/`),t.ignore=ys(t.ignore),t.fs&&={readdir:t.fs.readdir||u,readdirSync:t.fs.readdirSync||d,realpath:t.fs.realpath||f,realpathSync:t.fs.realpathSync||p,stat:t.fs.stat||m,statSync:t.fs.statSync||h},t.debug&&vs(`globbing with options:`,t),t}function Os(e,t={}){if(e&&t?.patterns)throw Error(`Cannot pass patterns as both an argument and an option`);let n=ts(e)||typeof e==`string`,r=ys((n?e:e.patterns)??`**/*`),i=Ds(n?t:e);return r.length>0?ws(i,r):[]}async function ks(e,t){let[n,r]=Os(e,t);return n?Ts(await n.withPromise(),r):[]}function As(e,t){let[n,r]=Os(e,t);return n?Ts(n.sync(),r):[]}var js=J((e=>{let t=Symbol.for(`yaml.alias`),n=Symbol.for(`yaml.document`),r=Symbol.for(`yaml.map`),i=Symbol.for(`yaml.pair`),a=Symbol.for(`yaml.scalar`),o=Symbol.for(`yaml.seq`),s=Symbol.for(`yaml.node.type`),c=e=>!!e&&typeof e==`object`&&e[s]===t,l=e=>!!e&&typeof e==`object`&&e[s]===n,u=e=>!!e&&typeof e==`object`&&e[s]===r,d=e=>!!e&&typeof e==`object`&&e[s]===i,f=e=>!!e&&typeof e==`object`&&e[s]===a,p=e=>!!e&&typeof e==`object`&&e[s]===o;function m(e){if(e&&typeof e==`object`)switch(e[s]){case r:case o:return!0}return!1}function h(e){if(e&&typeof e==`object`)switch(e[s]){case t:case r:case a:case o:return!0}return!1}e.ALIAS=t,e.DOC=n,e.MAP=r,e.NODE_TYPE=s,e.PAIR=i,e.SCALAR=a,e.SEQ=o,e.hasAnchor=e=>(f(e)||m(e))&&!!e.anchor,e.isAlias=c,e.isCollection=m,e.isDocument=l,e.isMap=u,e.isNode=h,e.isPair=d,e.isScalar=f,e.isSeq=p})),Ms=J((e=>{var t=js();let n=Symbol(`break visit`),r=Symbol(`skip children`),i=Symbol(`remove node`);function a(e,n){let r=l(n);t.isDocument(e)?o(null,e.contents,r,Object.freeze([e]))===i&&(e.contents=null):o(null,e,r,Object.freeze([]))}a.BREAK=n,a.SKIP=r,a.REMOVE=i;function o(e,r,a,s){let c=u(e,r,a,s);if(t.isNode(c)||t.isPair(c))return d(e,s,c),o(e,c,a,s);if(typeof c!=`symbol`){if(t.isCollection(r)){s=Object.freeze(s.concat(r));for(let e=0;e{var t=js(),n=Ms();let r={"!":`%21`,",":`%2C`,"[":`%5B`,"]":`%5D`,"{":`%7B`,"}":`%7D`},i=e=>e.replace(/[!,[\]{}]/g,e=>r[e]);var a=class e{constructor(t,n){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,n)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case`1.1`:this.atNextDocument=!0;break;case`1.2`:this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:`1.2`},this.tags=Object.assign({},e.defaultTags)}return t}add(t,n){this.atNextDocument&&=(this.yaml={explicit:e.defaultYaml.explicit,version:`1.1`},this.tags=Object.assign({},e.defaultTags),!1);let r=t.trim().split(/[ \t]+/),i=r.shift();switch(i){case`%TAG`:{if(r.length!==2&&(n(0,`%TAG directive should contain exactly two parts`),r.length<2))return!1;let[e,t]=r;return this.tags[e]=t,!0}case`%YAML`:{if(this.yaml.explicit=!0,r.length!==1)return n(0,`%YAML directive should contain exactly one part`),!1;let[e]=r;if(e===`1.1`||e===`1.2`)return this.yaml.version=e,!0;{let t=/^\d+\.\d+$/.test(e);return n(6,`Unsupported YAML version ${e}`,t),!1}}default:return n(0,`Unknown directive ${i}`,!0),!1}}tagName(e,t){if(e===`!`)return`!`;if(e[0]!==`!`)return t(`Not a valid tag: ${e}`),null;if(e[1]===`<`){let n=e.slice(2,-1);return n===`!`||n===`!!`?(t(`Verbatim tags aren't resolved, so ${e} is invalid.`),null):(e[e.length-1]!==`>`&&t(`Verbatim tags must end with a >`),n)}let[,n,r]=e.match(/^(.*!)([^!]*)$/s);r||t(`The ${e} tag has no suffix`);let i=this.tags[n];if(i)try{return i+decodeURIComponent(r)}catch(e){return t(String(e)),null}return n===`!`?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,n]of Object.entries(this.tags))if(e.startsWith(n))return t+i(e.substring(n.length));return e[0]===`!`?e:`!<${e}>`}toString(e){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||`1.2`}`]:[],i=Object.entries(this.tags),a;if(e&&i.length>0&&t.isNode(e.contents)){let r={};n.visit(e.contents,(e,n)=>{t.isNode(n)&&n.tag&&(r[n.tag]=!0)}),a=Object.keys(r)}else a=[];for(let[t,n]of i)(t!==`!!`||n!==`tag:yaml.org,2002:`)&&(!e||a.some(e=>e.startsWith(n)))&&r.push(`%TAG ${t} ${n}`);return r.join(` +`)}};a.defaultYaml={explicit:!1,version:`1.2`},a.defaultTags={"!!":`tag:yaml.org,2002:`},e.Directives=a})),Ps=J((e=>{var t=js(),n=Ms();function r(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw Error(t)}return!0}function i(e){let t=new Set;return n.visit(e,{Value(e,n){n.anchor&&t.add(n.anchor)}}),t}function a(e,t){for(let n=1;;++n){let r=`${e}${n}`;if(!t.has(r))return r}}function o(e,n){let r=[],o=new Map,s=null;return{onAnchor:t=>{r.push(t),s??=i(e);let o=a(n,s);return s.add(o),o},setAnchors:()=>{for(let e of r){let n=o.get(e);if(typeof n==`object`&&n.anchor&&(t.isScalar(n.node)||t.isCollection(n.node)))n.node.anchor=n.anchor;else{let t=Error(`Failed to resolve repeated object (this should not happen)`);throw t.source=e,t}}},sourceObjects:o}}e.anchorIsValid=r,e.anchorNames=i,e.createNodeAnchors=o,e.findNewAnchor=a})),Fs=J((e=>{function t(e,n,r,i){if(i&&typeof i==`object`){if(Array.isArray(i))for(let n=0,r=i.length;n{var t=js();function n(e,r,i){if(Array.isArray(e))return e.map((e,t)=>n(e,String(t),i));if(e&&typeof e.toJSON==`function`){if(!i||!t.hasAnchor(e))return e.toJSON(r,i);let n={aliasCount:0,count:1,res:void 0};i.anchors.set(e,n),i.onCreate=e=>{n.res=e,delete i.onCreate};let a=e.toJSON(r,i);return i.onCreate&&i.onCreate(a),a}return typeof e==`bigint`&&!i?.keep?Number(e):e}e.toJS=n})),Ls=J((e=>{var t=Fs(),n=js(),r=Is();e.NodeBase=class{constructor(e){Object.defineProperty(this,n.NODE_TYPE,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:i,maxAliasCount:a,onAnchor:o,reviver:s}={}){if(!n.isDocument(e))throw TypeError(`A document argument is required`);let c={anchors:new Map,doc:e,keep:!0,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof a==`number`?a:100},l=r.toJS(this,``,c);if(typeof o==`function`)for(let{count:e,res:t}of c.anchors.values())o(t,e);return typeof s==`function`?t.applyReviver(s,{"":l},``,l):l}}})),Rs=J((e=>{var t=Ps(),n=Ms(),r=js(),i=Ls(),a=Is(),o=class extends i.NodeBase{constructor(e){super(r.ALIAS),this.source=e,Object.defineProperty(this,"tag",{set(){throw Error(`Alias nodes cannot have tags`)}})}resolve(e,t){if(t?.maxAliasCount===0)throw ReferenceError(`Alias resolution is disabled`);let i;t?.aliasResolveCache?i=t.aliasResolveCache:(i=[],n.visit(e,{Node:(e,t)=>{(r.isAlias(t)||r.hasAnchor(t))&&i.push(t)}}),t&&(t.aliasResolveCache=i));let a;for(let e of i){if(e===this)break;e.anchor===this.source&&(a=e)}return a}toJSON(e,t){if(!t)return{source:this.source};let{anchors:n,doc:r,maxAliasCount:i}=t,o=this.resolve(r,t);if(!o){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(e)}let c=n.get(o);if(c||=(a.toJS(o,null,t),n.get(o)),c?.res===void 0)throw ReferenceError(`This should not happen: Alias anchor was not resolved?`);if(i>=0&&(c.count+=1,c.aliasCount===0&&(c.aliasCount=s(r,o,n)),c.count*c.aliasCount>i))throw ReferenceError(`Excessive alias count indicates a resource exhaustion attack`);return c.res}toString(e,n,r){let i=`*${this.source}`;if(e){if(t.anchorIsValid(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let e=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(e)}if(e.implicitKey)return`${i} `}return i}};function s(e,t,n){if(r.isAlias(t)){let r=t.resolve(e),i=n&&r&&n.get(r);return i?i.count*i.aliasCount:0}if(r.isCollection(t)){let r=0;for(let i of t.items){let t=s(e,i,n);t>r&&(r=t)}return r}if(r.isPair(t)){let r=s(e,t.key,n),i=s(e,t.value,n);return Math.max(r,i)}return 1}e.Alias=o})),zs=J((e=>{var t=js(),n=Ls(),r=Is();let i=e=>!e||typeof e!=`function`&&typeof e!=`object`;var a=class extends n.NodeBase{constructor(e){super(t.SCALAR),this.value=e}toJSON(e,t){return t?.keep?this.value:r.toJS(this.value,e,t)}toString(){return String(this.value)}};a.BLOCK_FOLDED=`BLOCK_FOLDED`,a.BLOCK_LITERAL=`BLOCK_LITERAL`,a.PLAIN=`PLAIN`,a.QUOTE_DOUBLE=`QUOTE_DOUBLE`,a.QUOTE_SINGLE=`QUOTE_SINGLE`,e.Scalar=a,e.isScalarValue=i})),Bs=J((e=>{var t=Rs(),n=js(),r=zs();function i(e,t,n){if(t){let e=n.filter(e=>e.tag===t),r=e.find(e=>!e.format)??e[0];if(!r)throw Error(`Tag ${t} not found`);return r}return n.find(t=>t.identify?.(e)&&!t.format)}function a(e,a,o){if(n.isDocument(e)&&(e=e.contents),n.isNode(e))return e;if(n.isPair(e)){let t=o.schema[n.MAP].createNode?.(o.schema,null,o);return t.items.push(e),t}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<`u`&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:s,onAnchor:c,onTagObj:l,schema:u,sourceObjects:d}=o,f;if(s&&e&&typeof e==`object`){if(f=d.get(e),f)return f.anchor??(f.anchor=c(e)),new t.Alias(f.anchor);f={anchor:null,node:null},d.set(e,f)}a?.startsWith(`!!`)&&(a=`tag:yaml.org,2002:`+a.slice(2));let p=i(e,a,u.tags);if(!p){if(e&&typeof e.toJSON==`function`&&(e=e.toJSON()),!e||typeof e!=`object`){let t=new r.Scalar(e);return f&&(f.node=t),t}p=e instanceof Map?u[n.MAP]:Symbol.iterator in Object(e)?u[n.SEQ]:u[n.MAP]}l&&(l(p),delete o.onTagObj);let m=p?.createNode?p.createNode(o.schema,e,o):typeof p?.nodeClass?.from==`function`?p.nodeClass.from(o.schema,e,o):new r.Scalar(e);return a?m.tag=a:p.default||(m.tag=p.tag),f&&(f.node=m),m}e.createNode=a})),Vs=J((e=>{var t=Bs(),n=js(),r=Ls();function i(e,n,r){let i=r;for(let e=n.length-1;e>=0;--e){let t=n[e];if(typeof t==`number`&&Number.isInteger(t)&&t>=0){let e=[];e[t]=i,i=e}else i=new Map([[t,i]])}return t.createNode(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error(`This should not happen, please report a bug.`)},schema:e,sourceObjects:new Map})}let a=e=>e==null||typeof e==`object`&&!!e[Symbol.iterator]().next().done;e.Collection=class extends r.NodeBase{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(t=>n.isNode(t)||n.isPair(t)?t.clone(e):t),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(a(e))this.add(t);else{let[r,...a]=e,o=this.get(r,!0);if(n.isCollection(o))o.addIn(a,t);else if(o===void 0&&this.schema)this.set(r,i(this.schema,a,t));else throw Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}deleteIn(e){let[t,...r]=e;if(r.length===0)return this.delete(t);let i=this.get(t,!0);if(n.isCollection(i))return i.deleteIn(r);throw Error(`Expected YAML collection at ${t}. Remaining path: ${r}`)}getIn(e,t){let[r,...i]=e,a=this.get(r,!0);return i.length===0?!t&&n.isScalar(a)?a.value:a:n.isCollection(a)?a.getIn(i,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!n.isPair(t))return!1;let r=t.value;return r==null||e&&n.isScalar(r)&&r.value==null&&!r.commentBefore&&!r.comment&&!r.tag})}hasIn(e){let[t,...r]=e;if(r.length===0)return this.has(t);let i=this.get(t,!0);return n.isCollection(i)?i.hasIn(r):!1}setIn(e,t){let[r,...a]=e;if(a.length===0)this.set(r,t);else{let e=this.get(r,!0);if(n.isCollection(e))e.setIn(a,t);else if(e===void 0&&this.schema)this.set(r,i(this.schema,a,t));else throw Error(`Expected YAML collection at ${r}. Remaining path: ${a}`)}}},e.collectionFromPath=i,e.isEmptyPath=a})),Hs=J((e=>{let t=e=>e.replace(/^(?!$)(?: $)?/gm,`#`);function n(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}e.indentComment=n,e.lineComment=(e,t,r)=>e.endsWith(` +`)?n(r,t):r.includes(` +`)?` +`+n(r,t):(e.endsWith(` `)?``:` `)+r,e.stringifyComment=t})),Us=J((e=>{let t=`block`,n=`quoted`;function r(e,r,a=`flow`,{indentAtStart:o,lineWidth:s=80,minContentWidth:c=20,onFold:l,onOverflow:u}={}){if(!s||s<0)return e;ss-Math.max(2,c)?f.push(0):m=s-o);let h,g,v=!1,y=-1,b=-1,x=-1;a===t&&(y=i(e,y,r.length),y!==-1&&(m=y+d));for(let o;o=e[y+=1];){if(a===n&&o===`\\`){switch(b=y,e[y+1]){case`x`:y+=3;break;case`u`:y+=5;break;case`U`:y+=9;break;default:y+=1}x=y}if(o===` +`)a===t&&(y=i(e,y,r.length)),m=y+r.length+d,h=void 0;else{if(o===` `&&g&&g!==` `&&g!==` +`&&g!==` `){let t=e[y+1];t&&t!==` `&&t!==` +`&&t!==` `&&(h=y)}if(y>=m){if(h)f.push(h),m=h+d,h=void 0;else if(a===n){for(;g===` `||g===` `;)g=o,o=e[y+=1],v=!0;let t=y>x+1?y-2:b-1;if(p[t])return e;f.push(t),p[t]=!0,m=t+d,h=void 0}else v=!0}}g=o}if(v&&u&&u(),f.length===0)return e;l&&l();let S=e.slice(0,f[0]);for(let t=0;t{var t=zs(),n=Us();let r=(e,t)=>({indentAtStart:t?e.indent.length:e.indentAtStart,lineWidth:e.options.lineWidth,minContentWidth:e.options.minContentWidth}),i=e=>/^(%|---|\.\.\.)/m.test(e);function a(e,t,n){if(!t||t<0)return!1;let r=t-n,i=e.length;if(i<=r)return!1;for(let t=0,n=0;tr)return!0;if(n=t+1,i-n<=r)return!1}return!0}function o(e,t){let a=JSON.stringify(e);if(t.options.doubleQuotedAsJSON)return a;let{implicitKey:o}=t,s=t.options.doubleQuotedMinMultiLineLength,c=t.indent||(i(e)?` `:``),l=``,u=0;for(let e=0,t=a[e];t;t=a[++e])if(t===` `&&a[e+1]===`\\`&&a[e+2]===`n`&&(l+=a.slice(u,e)+`\\ `,e+=1,u=e,t=`\\`),t===`\\`)switch(a[e+1]){case`u`:{l+=a.slice(u,e);let t=a.substr(e+2,4);switch(t){case`0000`:l+=`\\0`;break;case`0007`:l+=`\\a`;break;case`000b`:l+=`\\v`;break;case`001b`:l+=`\\e`;break;case`0085`:l+=`\\N`;break;case`00a0`:l+=`\\_`;break;case`2028`:l+=`\\L`;break;case`2029`:l+=`\\P`;break;default:t.substr(0,2)===`00`?l+=`\\x`+t.substr(2):l+=a.substr(e,6)}e+=5,u=e+1}break;case`n`:if(o||a[e+2]===`"`||a.length +`;let y,b;for(b=s.length;b>0;--b){let e=s[b-1];if(e!==` +`&&e!==` `&&e!==` `)break}let x=s.substring(b),S=x.indexOf(` +`);S===-1?y=`-`:s===x||S!==x.length-1?(y=`+`,f&&f()):y=``,x&&=(s=s.slice(0,-x.length),x[x.length-1]===` +`&&(x=x.slice(0,-1)),x.replace(l,`$&${g}`));let C=!1,w,T=-1;for(w=0;w{i=!0});let c=n.foldFlowLines(`${E}${e}${x}`,g,n.FOLD_BLOCK,a);if(!i)return`>${D}\n${g}${c}`}return s=s.replace(/\n+/g,`$&${g}`),`|${D}\n${g}${E}${s}${x}`}function d(e,a,o,s){let{type:l,value:d}=e,{actualString:f,implicitKey:p,indent:m,indentStep:h,inFlow:g}=a;if(p&&d.includes(` +`)||g&&/[[\]{},]/.test(d))return c(d,a);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(d))return p||g||!d.includes(` +`)?c(d,a):u(e,a,o,s);if(!p&&!g&&l!==t.Scalar.PLAIN&&d.includes(` +`))return u(e,a,o,s);if(i(d)){if(m===``)return a.forceBlockIndent=!0,u(e,a,o,s);if(p&&m===h)return c(d,a)}let v=d.replace(/\n+/g,`$&\n${m}`);if(f){let e=e=>e.default&&e.tag!==`tag:yaml.org,2002:str`&&e.test?.test(v),{compat:t,tags:n}=a.doc.schema;if(n.some(e)||t?.some(e))return c(d,a)}return p?v:n.foldFlowLines(v,m,n.FOLD_FLOW,r(a,!1))}function f(e,n,r,i){let{implicitKey:a,inFlow:l}=n,f=typeof e.value==`string`?e:Object.assign({},e,{value:String(e.value)}),{type:p}=e;p!==t.Scalar.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(f.value)&&(p=t.Scalar.QUOTE_DOUBLE);let m=e=>{switch(e){case t.Scalar.BLOCK_FOLDED:case t.Scalar.BLOCK_LITERAL:return a||l?c(f.value,n):u(f,n,r,i);case t.Scalar.QUOTE_DOUBLE:return o(f.value,n);case t.Scalar.QUOTE_SINGLE:return s(f.value,n);case t.Scalar.PLAIN:return d(f,n,r,i);default:return null}},h=m(p);if(h===null){let{defaultKeyType:e,defaultStringType:t}=n.options,r=a&&e||t;if(h=m(r),h===null)throw Error(`Unsupported default string type ${r}`)}return h}e.stringifyString=f})),Gs=J((e=>{var t=Ps(),n=js(),r=Hs(),i=Ws();function a(e,t){let n=Object.assign({blockQuote:!0,commentString:r.stringifyComment,defaultKeyType:null,defaultStringType:`PLAIN`,directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:`false`,flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:`null`,simpleKeys:!1,singleQuote:null,trailingComma:!1,trueStr:`true`,verifyAliasOrder:!0},e.schema.toStringOptions,t),i;switch(n.collectionStyle){case`block`:i=!1;break;case`flow`:i=!0;break;default:i=null}return{anchors:new Set,doc:e,flowCollectionPadding:n.flowCollectionPadding?` `:``,indent:``,indentStep:typeof n.indent==`number`?` `.repeat(n.indent):` `,inFlow:i,options:n}}function o(e,t){if(t.tag){let n=e.filter(e=>e.tag===t.tag);if(n.length>0)return n.find(e=>e.format===t.format)??n[0]}let r,i;if(n.isScalar(t)){i=t.value;let n=e.filter(e=>e.identify?.(i));if(n.length>1){let e=n.filter(e=>e.test);e.length>0&&(n=e)}r=n.find(e=>e.format===t.format)??n.find(e=>!e.format)}else i=t,r=e.find(e=>e.nodeClass&&i instanceof e.nodeClass);if(!r){let e=i?.constructor?.name??(i===null?`null`:typeof i);throw Error(`Tag not resolved for ${e} value`)}return r}function s(e,r,{anchors:i,doc:a}){if(!a.directives)return``;let o=[],s=(n.isScalar(e)||n.isCollection(e))&&e.anchor;s&&t.anchorIsValid(s)&&(i.add(s),o.push(`&${s}`));let c=e.tag??(r.default?null:r.tag);return c&&o.push(a.directives.tagString(c)),o.join(` `)}function c(e,t,r,a){if(n.isPair(e))return e.toString(t,r,a);if(n.isAlias(e)){if(t.doc.directives)return e.toString(t);if(t.resolvedAliases?.has(e))throw TypeError(`Cannot stringify circular structure without alias nodes`);t.resolvedAliases?t.resolvedAliases.add(e):t.resolvedAliases=new Set([e]),e=e.resolve(t.doc)}let c,l=n.isNode(e)?e:t.doc.createNode(e,{onTagObj:e=>c=e});c??=o(t.doc.schema.tags,l);let u=s(l,c,t);u.length>0&&(t.indentAtStart=(t.indentAtStart??0)+u.length+1);let d=typeof c.stringify==`function`?c.stringify(l,t,r,a):n.isScalar(l)?i.stringifyString(l,t,r,a):l.toString(t,r,a);return u?n.isScalar(l)||d[0]===`{`||d[0]===`[`?`${u} ${d}`:`${u}\n${t.indent}${d}`:d}e.createStringifyContext=a,e.stringify=c})),Ks=J((e=>{var t=js(),n=zs(),r=Gs(),i=Hs();function a({key:e,value:a},o,s,c){let{allNullValues:l,doc:u,indent:d,indentStep:f,options:{commentString:p,indentSeq:m,simpleKeys:h}}=o,g=t.isNode(e)&&e.comment||null;if(h){if(g)throw Error(`With simple keys, key nodes cannot have comments`);if(t.isCollection(e)||!t.isNode(e)&&typeof e==`object`)throw Error(`With simple keys, collection cannot be used as a key value`)}let v=!h&&(!e||g&&a==null&&!o.inFlow||t.isCollection(e)||(t.isScalar(e)?e.type===n.Scalar.BLOCK_FOLDED||e.type===n.Scalar.BLOCK_LITERAL:typeof e==`object`));o=Object.assign({},o,{allNullValues:!1,implicitKey:!v&&(h||!l),indent:d+f});let y=!1,b=!1,x=r.stringify(e,o,()=>y=!0,()=>b=!0);if(!v&&!o.inFlow&&x.length>1024){if(h)throw Error(`With simple keys, single line scalar must not span more than 1024 characters`);v=!0}if(o.inFlow){if(l||a==null)return y&&s&&s(),x===``?`?`:v?`? ${x}`:x}else if(l&&!h||a==null&&v)return x=`? ${x}`,g&&!y?x+=i.lineComment(x,o.indent,p(g)):b&&c&&c(),x;y&&(g=null),v?(g&&(x+=i.lineComment(x,o.indent,p(g))),x=`? ${x}\n${d}:`):(x=`${x}:`,g&&(x+=i.lineComment(x,o.indent,p(g))));let S,C,w;t.isNode(a)?(S=!!a.spaceBefore,C=a.commentBefore,w=a.comment):(S=!1,C=null,w=null,a&&typeof a==`object`&&(a=u.createNode(a))),o.implicitKey=!1,!v&&!g&&t.isScalar(a)&&(o.indentAtStart=x.length+1),b=!1,!m&&f.length>=2&&!o.inFlow&&!v&&t.isSeq(a)&&!a.flow&&!a.tag&&!a.anchor&&(o.indent=o.indent.substring(2));let T=!1,E=r.stringify(a,o,()=>T=!0,()=>b=!0),D=` `;if(g||S||C){if(D=S?` +`:``,C){let e=p(C);D+=`\n${i.indentComment(e,o.indent)}`}E===``&&!o.inFlow?D===` +`&&w&&(D=` + +`):D+=`\n${o.indent}`}else if(!v&&t.isCollection(a)){let e=E[0],t=E.indexOf(` +`),n=t!==-1,r=o.inFlow??a.flow??a.items.length===0;if(n||!r){let r=!1;if(n&&(e===`&`||e===`!`)){let n=E.indexOf(` `);e===`&`&&n!==-1&&n{var t=Y(`process`);function n(e,...t){e===`debug`&&console.log(...t)}function r(e,n){(e===`debug`||e===`warn`)&&(typeof t.emitWarning==`function`?t.emitWarning(n):console.warn(n))}e.debug=n,e.warn=r})),Js=J((e=>{var t=js(),n=zs();let r={identify:e=>e===`<<`||typeof e==`symbol`&&e.description===`<<`,default:`key`,tag:`tag:yaml.org,2002:merge`,test:/^<<$/,resolve:()=>Object.assign(new n.Scalar(Symbol(`<<`)),{addToJSMap:a}),stringify:()=>`<<`},i=(e,i)=>(r.identify(i)||t.isScalar(i)&&(!i.type||i.type===n.Scalar.PLAIN)&&r.identify(i.value))&&e?.doc.schema.tags.some(e=>e.tag===r.tag&&e.default);function a(e,n,r){let i=s(e,r);if(t.isSeq(i))for(let t of i.items)o(e,n,t);else if(Array.isArray(i))for(let t of i)o(e,n,t);else o(e,n,i)}function o(e,n,r){let i=s(e,r);if(!t.isMap(i))throw Error(`Merge sources must be maps or map aliases`);let a=i.toJSON(null,e,Map);for(let[e,t]of a)n instanceof Map?n.has(e)||n.set(e,t):n instanceof Set?n.add(e):Object.prototype.hasOwnProperty.call(n,e)||Object.defineProperty(n,e,{value:t,writable:!0,enumerable:!0,configurable:!0});return n}function s(e,n){return e&&t.isAlias(n)?n.resolve(e.doc,e):n}e.addMergeToJSMap=a,e.isMergeKey=i,e.merge=r})),Ys=J((e=>{var t=qs(),n=Js(),r=Gs(),i=js(),a=Is();function o(e,t,{key:r,value:o}){if(i.isNode(r)&&r.addToJSMap)r.addToJSMap(e,t,o);else if(n.isMergeKey(e,r))n.addMergeToJSMap(e,t,o);else{let n=a.toJS(r,``,e);if(t instanceof Map)t.set(n,a.toJS(o,n,e));else if(t instanceof Set)t.add(n);else{let i=s(r,n,e),c=a.toJS(o,i,e);i in t?Object.defineProperty(t,i,{value:c,writable:!0,enumerable:!0,configurable:!0}):t[i]=c}}return t}function s(e,n,a){if(n===null)return``;if(typeof n!=`object`)return String(n);if(i.isNode(e)&&a?.doc){let n=r.createStringifyContext(a.doc,{});n.anchors=new Set;for(let e of a.anchors.keys())n.anchors.add(e.anchor);n.inFlow=!0,n.inStringifyKey=!0;let i=e.toString(n);if(!a.mapKeyWarned){let e=JSON.stringify(i);e.length>40&&(e=e.substring(0,36)+`..."`),t.warn(a.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${e}. Set mapAsMap: true to use object keys.`),a.mapKeyWarned=!0}return i}return JSON.stringify(n)}e.addPairToJSMap=o})),Xs=J((e=>{var t=Bs(),n=Ks(),r=Ys(),i=js();function a(e,n,r){return new o(t.createNode(e,void 0,r),t.createNode(n,void 0,r))}var o=class e{constructor(e,t=null){Object.defineProperty(this,i.NODE_TYPE,{value:i.PAIR}),this.key=e,this.value=t}clone(t){let{key:n,value:r}=this;return i.isNode(n)&&(n=n.clone(t)),i.isNode(r)&&(r=r.clone(t)),new e(n,r)}toJSON(e,t){let n=t?.mapAsMap?new Map:{};return r.addPairToJSMap(t,n,this)}toString(e,t,r){return e?.doc?n.stringifyPair(this,e,t,r):JSON.stringify(this)}};e.Pair=o,e.createPair=a})),Zs=J((e=>{var t=js(),n=Gs(),r=Hs();function i(e,t,n){return(t.inFlow??e.flow?o:a)(e,t,n)}function a({comment:e,items:i},a,{blockItemPrefix:o,flowChars:c,itemIndent:l,onChompKeep:u,onComment:d}){let{indent:f,options:{commentString:p}}=a,m=Object.assign({},a,{indent:l,type:null}),h=!1,g=[];for(let e=0;eu=null,()=>h=!0);u&&(d+=r.lineComment(d,l,p(u))),h&&u&&(h=!1),g.push(o+d)}let v;if(g.length===0)v=c.start+c.end;else{v=g[0];for(let e=1;el=null);p||=h.length>m||u.includes(` +`),a0&&(p||=h.reduce((e,t)=>e+t.length+2,2)+(u.length+2)>i.options.lineWidth),p&&(u+=`,`)),l&&(u+=r.lineComment(u,o,d(l))),h.push(u),m=h.length}let{start:g,end:v}=a;if(h.length===0)return g+v;if(!p){let e=h.reduce((e,t)=>e+t.length+2,2);p=i.options.lineWidth>0&&e>i.options.lineWidth}if(p){let e=g;for(let t of h)e+=t?`\n${l}${c}${t}`:` +`;return`${e}\n${c}${v}`}return`${g}${u}${h.join(` `)}${u}${v}`}function s({indent:e,options:{commentString:t}},n,i,a){if(i&&a&&(i=i.replace(/^\n+/,``)),i){let a=r.indentComment(t(i),e);n.push(a.trimStart())}}e.stringifyCollection=i})),Qs=J((e=>{var t=Zs(),n=Ys(),r=Vs(),i=js(),a=Xs(),o=zs();function s(e,t){let n=i.isScalar(t)?t.value:t;for(let r of e)if(i.isPair(r)&&(r.key===t||r.key===n||i.isScalar(r.key)&&r.key.value===n))return r}e.YAMLMap=class extends r.Collection{static get tagName(){return`tag:yaml.org,2002:map`}constructor(e){super(i.MAP,e),this.items=[]}static from(e,t,n){let{keepUndefined:r,replacer:i}=n,o=new this(e),s=(e,s)=>{if(typeof i==`function`)s=i.call(t,e,s);else if(Array.isArray(i)&&!i.includes(e))return;(s!==void 0||r)&&o.items.push(a.createPair(e,s,n))};if(t instanceof Map)for(let[e,n]of t)s(e,n);else if(t&&typeof t==`object`)for(let e of Object.keys(t))s(e,t[e]);return typeof e.sortMapEntries==`function`&&o.items.sort(e.sortMapEntries),o}add(e,t){let n;n=i.isPair(e)?e:!e||typeof e!=`object`||!(`key`in e)?new a.Pair(e,e?.value):new a.Pair(e.key,e.value);let r=s(this.items,n.key),c=this.schema?.sortMapEntries;if(r){if(!t)throw Error(`Key ${n.key} already set`);i.isScalar(r.value)&&o.isScalarValue(n.value)?r.value.value=n.value:r.value=n.value}else if(c){let e=this.items.findIndex(e=>c(n,e)<0);e===-1?this.items.push(n):this.items.splice(e,0,n)}else this.items.push(n)}delete(e){let t=s(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){let n=s(this.items,e)?.value;return(!t&&i.isScalar(n)?n.value:n)??void 0}has(e){return!!s(this.items,e)}set(e,t){this.add(new a.Pair(e,t),!0)}toJSON(e,t,r){let i=r?new r:t?.mapAsMap?new Map:{};t?.onCreate&&t.onCreate(i);for(let e of this.items)n.addPairToJSMap(t,i,e);return i}toString(e,n,r){if(!e)return JSON.stringify(this);for(let e of this.items)if(!i.isPair(e))throw Error(`Map items must all be pairs; found ${JSON.stringify(e)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),t.stringifyCollection(this,e,{blockItemPrefix:``,flowChars:{start:`{`,end:`}`},itemIndent:e.indent||``,onChompKeep:r,onComment:n})}},e.findPair=s})),$s=J((e=>{var t=js(),n=Qs();e.map={collection:`map`,default:!0,nodeClass:n.YAMLMap,tag:`tag:yaml.org,2002:map`,resolve(e,n){return t.isMap(e)||n(`Expected a mapping for this tag`),e},createNode:(e,t,r)=>n.YAMLMap.from(e,t,r)}})),ec=J((e=>{var t=Bs(),n=Zs(),r=Vs(),i=js(),a=zs(),o=Is(),s=class extends r.Collection{static get tagName(){return`tag:yaml.org,2002:seq`}constructor(e){super(i.SEQ,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=c(e);return typeof t==`number`&&this.items.splice(t,1).length>0}get(e,t){let n=c(e);if(typeof n!=`number`)return;let r=this.items[n];return!t&&i.isScalar(r)?r.value:r}has(e){let t=c(e);return typeof t==`number`&&t=0?t:null}e.YAMLSeq=s})),tc=J((e=>{var t=js(),n=ec();e.seq={collection:`seq`,default:!0,nodeClass:n.YAMLSeq,tag:`tag:yaml.org,2002:seq`,resolve(e,n){return t.isSeq(e)||n(`Expected a sequence for this tag`),e},createNode:(e,t,r)=>n.YAMLSeq.from(e,t,r)}})),nc=J((e=>{var t=Ws();e.string={identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify(e,n,r,i){return n=Object.assign({actualString:!0},n),t.stringifyString(e,n,r,i)}}})),rc=J((e=>{var t=zs();let n={identify:e=>e==null,createNode:()=>new t.Scalar(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new t.Scalar(null),stringify:({source:e},t)=>typeof e==`string`&&n.test.test(e)?e:t.options.nullStr};e.nullTag=n})),ic=J((e=>{var t=zs();let n={identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:e=>new t.Scalar(e[0]===`t`||e[0]===`T`),stringify({source:e,value:t},r){return e&&n.test.test(e)&&t===(e[0]===`t`||e[0]===`T`)?e:t?r.options.trueStr:r.options.falseStr}};e.boolTag=n})),ac=J((e=>{function t({format:e,minFractionDigits:t,tag:n,value:r}){if(typeof r==`bigint`)return String(r);let i=typeof r==`number`?r:Number(r);if(!isFinite(i))return isNaN(i)?`.nan`:i<0?`-.inf`:`.inf`;let a=Object.is(r,-0)?`-0`:JSON.stringify(r);if(!e&&t&&(!n||n===`tag:yaml.org,2002:float`)&&/^-?\d/.test(a)&&!a.includes(`e`)){let e=a.indexOf(`.`);e<0&&(e=a.length,a+=`.`);let n=t-(a.length-e-1);for(;n-->0;)a+=`0`}return a}e.stringifyNumber=t})),oc=J((e=>{var t=zs(),n=ac();let r={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:n.stringifyNumber};e.float={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(e){let n=new t.Scalar(parseFloat(e)),r=e.indexOf(`.`);return r!==-1&&e[e.length-1]===`0`&&(n.minFractionDigits=e.length-r-1),n},stringify:n.stringifyNumber},e.floatExp={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():n.stringifyNumber(e)}},e.floatNaN=r})),sc=J((e=>{var t=ac();let n=e=>typeof e==`bigint`||Number.isInteger(e),r=(e,t,n,{intAsBigInt:r})=>r?BigInt(e):parseInt(e.substring(t),n);function i(e,r,i){let{value:a}=e;return n(a)&&a>=0?i+a.toString(r):t.stringifyNumber(e)}e.int={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9]+$/,resolve:(e,t,n)=>r(e,0,10,n),stringify:t.stringifyNumber},e.intHex={identify:e=>n(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^0x[0-9a-fA-F]+$/,resolve:(e,t,n)=>r(e,2,16,n),stringify:e=>i(e,16,`0x`)},e.intOct={identify:e=>n(e)&&e>=0,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^0o[0-7]+$/,resolve:(e,t,n)=>r(e,2,8,n),stringify:e=>i(e,8,`0o`)}})),cc=J((e=>{var t=$s(),n=rc(),r=tc(),i=nc(),a=ic(),o=oc(),s=sc();e.schema=[t.map,r.seq,i.string,n.nullTag,a.boolTag,s.intOct,s.int,s.intHex,o.floatNaN,o.floatExp,o.float]})),lc=J((e=>{var t=zs(),n=$s(),r=tc();function i(e){return typeof e==`bigint`||Number.isInteger(e)}let a=({value:e})=>JSON.stringify(e),o=[{identify:e=>typeof e==`string`,default:!0,tag:`tag:yaml.org,2002:str`,resolve:e=>e,stringify:a},{identify:e=>e==null,createNode:()=>new t.Scalar(null),default:!0,tag:`tag:yaml.org,2002:null`,test:/^null$/,resolve:()=>null,stringify:a},{identify:e=>typeof e==`boolean`,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^true$|^false$/,resolve:e=>e===`true`,stringify:a},{identify:i,default:!0,tag:`tag:yaml.org,2002:int`,test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(e,t,{intAsBigInt:n})=>n?BigInt(e):parseInt(e,10),stringify:({value:e})=>i(e)?e.toString():JSON.stringify(e)},{identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:e=>parseFloat(e),stringify:a}];e.schema=[n.map,r.seq].concat(o,{default:!0,tag:``,test:/^/,resolve(e,t){return t(`Unresolved plain scalar ${JSON.stringify(e)}`),e}})})),uc=J((e=>{var t=Y(`buffer`),n=zs(),r=Ws();e.binary={identify:e=>e instanceof Uint8Array,default:!1,tag:`tag:yaml.org,2002:binary`,resolve(e,n){if(typeof t.Buffer==`function`)return t.Buffer.from(e,`base64`);if(typeof atob==`function`){let t=atob(e.replace(/[\n\r]/g,``)),n=new Uint8Array(t.length);for(let e=0;e{var t=js(),n=Xs(),r=zs(),i=ec();function a(e,i){if(t.isSeq(e))for(let a=0;a1&&i(`Each pair must have its own sequence indicator`);let e=o.items[0]||new n.Pair(new r.Scalar(null));if(o.commentBefore&&(e.key.commentBefore=e.key.commentBefore?`${o.commentBefore}\n${e.key.commentBefore}`:o.commentBefore),o.comment){let t=e.value??e.key;t.comment=t.comment?`${o.comment}\n${t.comment}`:o.comment}o=e}e.items[a]=t.isPair(o)?o:new n.Pair(o)}}else i(`Expected a sequence for this tag`);return e}function o(e,t,r){let{replacer:a}=r,o=new i.YAMLSeq(e);o.tag=`tag:yaml.org,2002:pairs`;let s=0;if(t&&Symbol.iterator in Object(t))for(let e of t){typeof a==`function`&&(e=a.call(t,String(s++),e));let i,c;if(Array.isArray(e)){if(e.length===2)i=e[0],c=e[1];else throw TypeError(`Expected [key, value] tuple: ${e}`)}else if(e&&e instanceof Object){let t=Object.keys(e);if(t.length===1)i=t[0],c=e[i];else throw TypeError(`Expected tuple with one key, not ${t.length} keys`)}else i=e;o.items.push(n.createPair(i,c,r))}return o}let s={collection:`seq`,default:!1,tag:`tag:yaml.org,2002:pairs`,resolve:a,createNode:o};e.createPairs=o,e.pairs=s,e.resolvePairs=a})),fc=J((e=>{var t=js(),n=Is(),r=Qs(),i=ec(),a=dc(),o=class e extends i.YAMLSeq{constructor(){super(),this.add=r.YAMLMap.prototype.add.bind(this),this.delete=r.YAMLMap.prototype.delete.bind(this),this.get=r.YAMLMap.prototype.get.bind(this),this.has=r.YAMLMap.prototype.has.bind(this),this.set=r.YAMLMap.prototype.set.bind(this),this.tag=e.tag}toJSON(e,r){if(!r)return super.toJSON(e);let i=new Map;r?.onCreate&&r.onCreate(i);for(let e of this.items){let a,o;if(t.isPair(e)?(a=n.toJS(e.key,``,r),o=n.toJS(e.value,a,r)):a=n.toJS(e,``,r),i.has(a))throw Error(`Ordered maps must not include duplicate keys`);i.set(a,o)}return i}static from(e,t,n){let r=a.createPairs(e,t,n),i=new this;return i.items=r.items,i}};o.tag=`tag:yaml.org,2002:omap`;let s={collection:`seq`,identify:e=>e instanceof Map,nodeClass:o,default:!1,tag:`tag:yaml.org,2002:omap`,resolve(e,n){let r=a.resolvePairs(e,n),i=[];for(let{key:e}of r.items)t.isScalar(e)&&(i.includes(e.value)?n(`Ordered maps must not include duplicate keys: ${e.value}`):i.push(e.value));return Object.assign(new o,r)},createNode:(e,t,n)=>o.from(e,t,n)};e.YAMLOMap=o,e.omap=s})),pc=J((e=>{var t=zs();function n({value:e,source:t},n){return t&&(e?r:i).test.test(t)?t:e?n.options.trueStr:n.options.falseStr}let r={identify:e=>e===!0,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new t.Scalar(!0),stringify:n},i={identify:e=>e===!1,default:!0,tag:`tag:yaml.org,2002:bool`,test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new t.Scalar(!1),stringify:n};e.falseTag=i,e.trueTag=r})),mc=J((e=>{var t=zs(),n=ac();let r={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:e=>e.slice(-3).toLowerCase()===`nan`?NaN:e[0]===`-`?-1/0:1/0,stringify:n.stringifyNumber};e.float={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(e){let n=new t.Scalar(parseFloat(e.replace(/_/g,``))),r=e.indexOf(`.`);if(r!==-1){let t=e.substring(r+1).replace(/_/g,``);t[t.length-1]===`0`&&(n.minFractionDigits=t.length)}return n},stringify:n.stringifyNumber},e.floatExp={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`EXP`,test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:e=>parseFloat(e.replace(/_/g,``)),stringify(e){let t=Number(e.value);return isFinite(t)?t.toExponential():n.stringifyNumber(e)}},e.floatNaN=r})),hc=J((e=>{var t=ac();let n=e=>typeof e==`bigint`||Number.isInteger(e);function r(e,t,n,{intAsBigInt:r}){let i=e[0];if((i===`-`||i===`+`)&&(t+=1),e=e.substring(t).replace(/_/g,``),r){switch(n){case 2:e=`0b${e}`;break;case 8:e=`0o${e}`;break;case 16:e=`0x${e}`}let t=BigInt(e);return i===`-`?BigInt(-1)*t:t}let a=parseInt(e,n);return i===`-`?-1*a:a}function i(e,r,i){let{value:a}=e;if(n(a)){let e=a.toString(r);return a<0?`-`+i+e.substr(1):i+e}return t.stringifyNumber(e)}let a={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`BIN`,test:/^[-+]?0b[0-1_]+$/,resolve:(e,t,n)=>r(e,2,2,n),stringify:e=>i(e,2,`0b`)},o={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`OCT`,test:/^[-+]?0[0-7_]+$/,resolve:(e,t,n)=>r(e,1,8,n),stringify:e=>i(e,8,`0`)},s={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,test:/^[-+]?[0-9][0-9_]*$/,resolve:(e,t,n)=>r(e,0,10,n),stringify:t.stringifyNumber},c={identify:n,default:!0,tag:`tag:yaml.org,2002:int`,format:`HEX`,test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(e,t,n)=>r(e,2,16,n),stringify:e=>i(e,16,`0x`)};e.int=s,e.intBin=a,e.intHex=c,e.intOct=o})),gc=J((e=>{var t=js(),n=Xs(),r=Qs(),i=class e extends r.YAMLMap{constructor(t){super(t),this.tag=e.tag}add(e){let i;i=t.isPair(e)?e:e&&typeof e==`object`&&`key`in e&&`value`in e&&e.value===null?new n.Pair(e.key,null):new n.Pair(e,null),r.findPair(this.items,i.key)||this.items.push(i)}get(e,n){let i=r.findPair(this.items,e);return!n&&t.isPair(i)?t.isScalar(i.key)?i.key.value:i.key:i}set(e,t){if(typeof t!=`boolean`)throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let i=r.findPair(this.items,e);i&&!t?this.items.splice(this.items.indexOf(i),1):!i&&t&&this.items.push(new n.Pair(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,n){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,n);throw Error(`Set items must all have null values`)}static from(e,t,r){let{replacer:i}=r,a=new this(e);if(t&&Symbol.iterator in Object(t))for(let e of t)typeof i==`function`&&(e=i.call(t,e,e)),a.items.push(n.createPair(e,null,r));return a}};i.tag=`tag:yaml.org,2002:set`;let a={collection:`map`,identify:e=>e instanceof Set,nodeClass:i,default:!1,tag:`tag:yaml.org,2002:set`,createNode:(e,t,n)=>i.from(e,t,n),resolve(e,n){if(t.isMap(e)){if(e.hasAllNullValues(!0))return Object.assign(new i,e);n(`Set items must all have null values`)}else n(`Expected a mapping for this tag`);return e}};e.YAMLSet=i,e.set=a})),_c=J((e=>{var t=ac();function n(e,t){let n=e[0],r=n===`-`||n===`+`?e.substring(1):e,i=e=>t?BigInt(e):Number(e),a=r.replace(/_/g,``).split(`:`).reduce((e,t)=>e*i(60)+i(t),i(0));return n===`-`?i(-1)*a:a}function r(e){let{value:n}=e,r=e=>e;if(typeof n==`bigint`)r=e=>BigInt(e);else if(isNaN(n)||!isFinite(n))return t.stringifyNumber(e);let i=``;n<0&&(i=`-`,n*=r(-1));let a=r(60),o=[n%a];return n<60?o.unshift(0):(n=(n-o[0])/a,o.unshift(n%a),n>=60&&(n=(n-o[0])/a,o.unshift(n))),i+o.map(e=>String(e).padStart(2,`0`)).join(`:`).replace(/000000\d*$/,``)}let i={identify:e=>typeof e==`bigint`||Number.isInteger(e),default:!0,tag:`tag:yaml.org,2002:int`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(e,t,{intAsBigInt:r})=>n(e,r),stringify:r},a={identify:e=>typeof e==`number`,default:!0,tag:`tag:yaml.org,2002:float`,format:`TIME`,test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:e=>n(e,!1),stringify:r},o={identify:e=>e instanceof Date,default:!0,tag:`tag:yaml.org,2002:timestamp`,test:RegExp(`^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$`),resolve(e){let t=e.match(o.test);if(!t)throw Error(`!!timestamp expects a date, starting with yyyy-mm-dd`);let[,r,i,a,s,c,l]=t.map(Number),u=t[7]?Number((t[7]+`00`).substr(1,3)):0,d=Date.UTC(r,i-1,a,s||0,c||0,l||0,u),f=t[8];if(f&&f!==`Z`){let e=n(f,!1);Math.abs(e)<30&&(e*=60),d-=6e4*e}return new Date(d)},stringify:({value:e})=>e?.toISOString().replace(/(T00:00:00)?\.000Z$/,``)??``};e.floatTime=a,e.intTime=i,e.timestamp=o})),vc=J((e=>{var t=$s(),n=rc(),r=tc(),i=nc(),a=uc(),o=pc(),s=mc(),c=hc(),l=Js(),u=fc(),d=dc(),f=gc(),p=_c();e.schema=[t.map,r.seq,i.string,n.nullTag,o.trueTag,o.falseTag,c.intBin,c.intOct,c.int,c.intHex,s.floatNaN,s.floatExp,s.float,a.binary,l.merge,u.omap,d.pairs,f.set,p.intTime,p.floatTime,p.timestamp]})),yc=J((e=>{var t=$s(),n=rc(),r=tc(),i=nc(),a=ic(),o=oc(),s=sc(),c=cc(),l=lc(),u=uc(),d=Js(),f=fc(),p=dc(),m=vc(),h=gc(),g=_c();let v=new Map([[`core`,c.schema],[`failsafe`,[t.map,r.seq,i.string]],[`json`,l.schema],[`yaml11`,m.schema],[`yaml-1.1`,m.schema]]),y={binary:u.binary,bool:a.boolTag,float:o.float,floatExp:o.floatExp,floatNaN:o.floatNaN,floatTime:g.floatTime,int:s.int,intHex:s.intHex,intOct:s.intOct,intTime:g.intTime,map:t.map,merge:d.merge,null:n.nullTag,omap:f.omap,pairs:p.pairs,seq:r.seq,set:h.set,timestamp:g.timestamp},b={"tag:yaml.org,2002:binary":u.binary,"tag:yaml.org,2002:merge":d.merge,"tag:yaml.org,2002:omap":f.omap,"tag:yaml.org,2002:pairs":p.pairs,"tag:yaml.org,2002:set":h.set,"tag:yaml.org,2002:timestamp":g.timestamp};function x(e,t,n){let r=v.get(t);if(r&&!e)return n&&!r.includes(d.merge)?r.concat(d.merge):r.slice();let i=r;if(!i){if(Array.isArray(e))i=[];else{let e=Array.from(v.keys()).filter(e=>e!==`yaml11`).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown schema "${t}"; use one of ${e} or define customTags array`)}}if(Array.isArray(e))for(let t of e)i=i.concat(t);else typeof e==`function`&&(i=e(i.slice()));return n&&(i=i.concat(d.merge)),i.reduce((e,t)=>{let n=typeof t==`string`?y[t]:t;if(!n){let e=JSON.stringify(t),n=Object.keys(y).map(e=>JSON.stringify(e)).join(`, `);throw Error(`Unknown custom tag ${e}; use one of ${n}`)}return e.includes(n)||e.push(n),e},[])}e.coreKnownTags=b,e.getTags=x})),bc=J((e=>{var t=js(),n=$s(),r=tc(),i=nc(),a=yc();let o=(e,t)=>e.keyt.key);e.Schema=class e{constructor({compat:e,customTags:s,merge:c,resolveKnownTags:l,schema:u,sortMapEntries:d,toStringDefaults:f}){this.compat=Array.isArray(e)?a.getTags(e,`compat`):e?a.getTags(null,e):null,this.name=typeof u==`string`&&u||`core`,this.knownTags=l?a.coreKnownTags:{},this.tags=a.getTags(s,this.name,c),this.toStringOptions=f??null,Object.defineProperty(this,t.MAP,{value:n.map}),Object.defineProperty(this,t.SCALAR,{value:i.string}),Object.defineProperty(this,t.SEQ,{value:r.seq}),this.sortMapEntries=typeof d==`function`?d:d===!0?o:null}clone(){let t=Object.create(e.prototype,Object.getOwnPropertyDescriptors(this));return t.tags=this.tags.slice(),t}}})),xc=J((e=>{var t=js(),n=Gs(),r=Hs();function i(e,i){let a=[],o=i.directives===!0;if(i.directives!==!1&&e.directives){let t=e.directives.toString(e);t?(a.push(t),o=!0):e.directives.docStart&&(o=!0)}o&&a.push(`---`);let s=n.createStringifyContext(e,i),{commentString:c}=s.options;if(e.commentBefore){a.length!==1&&a.unshift(``);let t=c(e.commentBefore);a.unshift(r.indentComment(t,``))}let l=!1,u=null;if(e.contents){if(t.isNode(e.contents)){if(e.contents.spaceBefore&&o&&a.push(``),e.contents.commentBefore){let t=c(e.contents.commentBefore);a.push(r.indentComment(t,``))}s.forceBlockIndent=!!e.comment,u=e.contents.comment}let i=u?void 0:()=>l=!0,d=n.stringify(e.contents,s,()=>u=null,i);u&&(d+=r.lineComment(d,``,c(u))),(d[0]===`|`||d[0]===`>`)&&a[a.length-1]===`---`?a[a.length-1]=`--- ${d}`:a.push(d)}else a.push(n.stringify(e.contents,s));if(e.directives?.docEnd){if(e.comment){let t=c(e.comment);t.includes(` +`)?(a.push(`...`),a.push(r.indentComment(t,``))):a.push(`... ${t}`)}else a.push(`...`)}else{let t=e.comment;t&&l&&(t=t.replace(/^\n+/,``)),t&&((!l||u)&&a[a.length-1]!==``&&a.push(``),a.push(r.indentComment(c(t),``)))}return a.join(` +`)+` +`}e.stringifyDocument=i})),Sc=J((e=>{var t=Rs(),n=Vs(),r=js(),i=Xs(),a=Is(),o=bc(),s=xc(),c=Ps(),l=Fs(),u=Bs(),d=Ns(),f=class e{constructor(e,t,n){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,r.NODE_TYPE,{value:r.DOC});let i=null;typeof t==`function`||Array.isArray(t)?i=t:n===void 0&&t&&(n=t,t=void 0);let a=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:`warn`,prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:`1.2`},n);this.options=a;let{version:o}=a;n?._directives?(this.directives=n._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new d.Directives({version:o}),this.setSchema(o,n),this.contents=e===void 0?null:this.createNode(e,i,n)}clone(){let t=Object.create(e.prototype,{[r.NODE_TYPE]:{value:r.DOC}});return t.commentBefore=this.commentBefore,t.comment=this.comment,t.errors=this.errors.slice(),t.warnings=this.warnings.slice(),t.options=Object.assign({},this.options),this.directives&&(t.directives=this.directives.clone()),t.schema=this.schema.clone(),t.contents=r.isNode(this.contents)?this.contents.clone(t.schema):this.contents,this.range&&(t.range=this.range.slice()),t}add(e){p(this.contents)&&this.contents.add(e)}addIn(e,t){p(this.contents)&&this.contents.addIn(e,t)}createAlias(e,n){if(!e.anchor){let t=c.anchorNames(this);e.anchor=!n||t.has(n)?c.findNewAnchor(n||`a`,t):n}return new t.Alias(e.anchor)}createNode(e,t,n){let i;if(typeof t==`function`)e=t.call({"":e},``,e),i=t;else if(Array.isArray(t)){let e=t.filter(e=>typeof e==`number`||e instanceof String||e instanceof Number).map(String);e.length>0&&(t=t.concat(e)),i=t}else n===void 0&&t&&(n=t,t=void 0);let{aliasDuplicateObjects:a,anchorPrefix:o,flow:s,keepUndefined:l,onTagObj:d,tag:f}=n??{},{onAnchor:p,setAnchors:m,sourceObjects:h}=c.createNodeAnchors(this,o||`a`),g={aliasDuplicateObjects:a??!0,keepUndefined:l??!1,onAnchor:p,onTagObj:d,replacer:i,schema:this.schema,sourceObjects:h},v=u.createNode(e,f,g);return s&&r.isCollection(v)&&(v.flow=!0),m(),v}createPair(e,t,n={}){let r=this.createNode(e,null,n),a=this.createNode(t,null,n);return new i.Pair(r,a)}delete(e){return p(this.contents)?this.contents.delete(e):!1}deleteIn(e){return n.isEmptyPath(e)?this.contents!=null&&(this.contents=null,!0):p(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return r.isCollection(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return n.isEmptyPath(e)?!t&&r.isScalar(this.contents)?this.contents.value:this.contents:r.isCollection(this.contents)?this.contents.getIn(e,t):void 0}has(e){return r.isCollection(this.contents)?this.contents.has(e):!1}hasIn(e){return n.isEmptyPath(e)?this.contents!==void 0:r.isCollection(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=n.collectionFromPath(this.schema,[e],t):p(this.contents)&&this.contents.set(e,t)}setIn(e,t){n.isEmptyPath(e)?this.contents=t:this.contents==null?this.contents=n.collectionFromPath(this.schema,Array.from(e),t):p(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e==`number`&&(e=String(e));let n;switch(e){case`1.1`:this.directives?this.directives.yaml.version=`1.1`:this.directives=new d.Directives({version:`1.1`}),n={resolveKnownTags:!1,schema:`yaml-1.1`};break;case`1.2`:case`next`:this.directives?this.directives.yaml.version=e:this.directives=new d.Directives({version:e}),n={resolveKnownTags:!0,schema:`core`};break;case null:this.directives&&delete this.directives,n=null;break;default:{let t=JSON.stringify(e);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${t}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(n)this.schema=new o.Schema(Object.assign(n,t));else throw Error(`With a null YAML version, the { schema: Schema } option is required`)}toJS({json:e,jsonArg:t,mapAsMap:n,maxAliasCount:r,onAnchor:i,reviver:o}={}){let s={anchors:new Map,doc:this,keep:!e,mapAsMap:n===!0,mapKeyWarned:!1,maxAliasCount:typeof r==`number`?r:100},c=a.toJS(this.contents,t??``,s);if(typeof i==`function`)for(let{count:e,res:t}of s.anchors.values())i(t,e);return typeof o==`function`?l.applyReviver(o,{"":c},``,c):c}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw Error(`Document with errors cannot be stringified`);if(`indent`in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw Error(`"indent" option must be a positive integer, not ${t}`)}return s.stringifyDocument(this,e)}};function p(e){if(r.isCollection(e))return!0;throw Error(`Expected a YAML collection as document contents`)}e.Document=f})),Cc=J((e=>{var t=class extends Error{constructor(e,t,n,r){super(),this.name=e,this.code=n,this.message=r,this.pos=t}},n=class extends t{constructor(e,t,n){super(`YAMLParseError`,e,t,n)}},r=class extends t{constructor(e,t,n){super(`YAMLWarning`,e,t,n)}};e.YAMLError=t,e.YAMLParseError=n,e.YAMLWarning=r,e.prettifyError=(e,t)=>n=>{if(n.pos[0]===-1)return;n.linePos=n.pos.map(e=>t.linePos(e));let{line:r,col:i}=n.linePos[0];n.message+=` at line ${r}, column ${i}`;let a=i-1,o=e.substring(t.lineStarts[r-1],t.lineStarts[r]).replace(/[\n\r]+$/,``);if(a>=60&&o.length>80){let e=Math.min(a-39,o.length-79);o=`…`+o.substring(e),a-=e-1}if(o.length>80&&(o=o.substring(0,79)+`…`),r>1&&/^ *$/.test(o.substring(0,a))){let n=e.substring(t.lineStarts[r-2],t.lineStarts[r-1]);n.length>80&&(n=n.substring(0,79)+`… +`),o=n+o}if(/[^ ]/.test(o)){let e=1,t=n.linePos[1];t?.line===r&&t.col>i&&(e=Math.max(1,Math.min(t.col-i,80-a)));let s=` `.repeat(a)+`^`.repeat(e);n.message+=`:\n\n${o}\n${s}\n`}}})),wc=J((e=>{function t(e,{flow:t,indicator:n,next:r,offset:i,onError:a,parentIndent:o,startOnNewline:s}){let c=!1,l=s,u=s,d=``,f=``,p=!1,m=!1,h=null,g=null,v=null,y=null,b=null,x=null,S=null;for(let i of e)switch(m&&=(i.type!==`space`&&i.type!==`newline`&&i.type!==`comma`&&a(i.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),!1),h&&=(l&&i.type!==`comment`&&i.type!==`newline`&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),null),i.type){case`space`:!t&&(n!==`doc-start`||r?.type!==`flow-collection`)&&i.source.includes(` `)&&(h=i),u=!0;break;case`comment`:{u||a(i,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let e=i.source.substring(1)||` `;d?d+=f+e:d=e,f=``,l=!1;break}case`newline`:l?d?d+=i.source:(!x||n!==`seq-item-ind`)&&(c=!0):f+=i.source,l=!0,p=!0,(g||v)&&(y=i),u=!0;break;case`anchor`:g&&a(i,`MULTIPLE_ANCHORS`,`A node can have at most one anchor`),i.source.endsWith(`:`)&&a(i.offset+i.source.length-1,`BAD_ALIAS`,`Anchor ending in : is ambiguous`,!0),g=i,S??=i.offset,l=!1,u=!1,m=!0;break;case`tag`:v&&a(i,`MULTIPLE_TAGS`,`A node can have at most one tag`),v=i,S??=i.offset,l=!1,u=!1,m=!0;break;case n:(g||v)&&a(i,`BAD_PROP_ORDER`,`Anchors and tags must be after the ${i.source} indicator`),x&&a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.source} in ${t??`collection`}`),x=i,l=n===`seq-item-ind`||n===`explicit-key-ind`,u=!1;break;case`comma`:if(t){b&&a(i,`UNEXPECTED_TOKEN`,`Unexpected , in ${t}`),b=i,l=!1,u=!1;break}default:a(i,`UNEXPECTED_TOKEN`,`Unexpected ${i.type} token`),l=!1,u=!1}let C=e[e.length-1],w=C?C.offset+C.source.length:i;return m&&r&&r.type!==`space`&&r.type!==`newline`&&r.type!==`comma`&&(r.type!==`scalar`||r.source!==``)&&a(r.offset,`MISSING_CHAR`,`Tags and anchors must be separated from the next token by white space`),h&&(l&&h.indent<=o||r?.type===`block-map`||r?.type===`block-seq`)&&a(h,`TAB_AS_INDENT`,`Tabs are not allowed as indentation`),{comma:b,found:x,spaceBefore:c,comment:d,hasNewline:p,anchor:g,tag:v,newlineAfterProp:y,end:w,start:S??w}}e.resolveProps=t})),Tc=J((e=>{function t(e){if(!e)return null;switch(e.type){case`alias`:case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:if(e.source.includes(` +`))return!0;if(e.end){for(let t of e.end)if(t.type===`newline`)return!0}return!1;case`flow-collection`:for(let n of e.items){for(let e of n.start)if(e.type===`newline`)return!0;if(n.sep){for(let e of n.sep)if(e.type===`newline`)return!0}if(t(n.key)||t(n.value))return!0}return!1;default:return!0}}e.containsNewline=t})),Ec=J((e=>{var t=Tc();function n(e,n,r){if(n?.type===`flow-collection`){let i=n.end[0];i.indent===e&&(i.source===`]`||i.source===`}`)&&t.containsNewline(n)&&r(i,`BAD_INDENT`,`Flow end indicator should be more indented than parent`,!0)}}e.flowIndentCheck=n})),Dc=J((e=>{var t=js();function n(e,n,r){let{uniqueKeys:i}=e.options;if(i===!1)return!1;let a=typeof i==`function`?i:(e,n)=>e===n||t.isScalar(e)&&t.isScalar(n)&&e.value===n.value;return n.some(e=>a(e.key,r))}e.mapIncludes=n})),Oc=J((e=>{var t=Xs(),n=Qs(),r=wc(),i=Tc(),a=Ec(),o=Dc();let s=`All mapping items must start at the same column`;function c({composeNode:e,composeEmptyNode:c},l,u,d,f){let p=new((f?.nodeClass)??n.YAMLMap)(l.schema);l.atRoot&&=!1;let m=u.offset,h=null;for(let n of u.items){let{start:f,key:g,sep:v,value:y}=n,b=r.resolveProps(f,{indicator:`explicit-key-ind`,next:g??v?.[0],offset:m,onError:d,parentIndent:u.indent,startOnNewline:!0}),x=!b.found;if(x){if(g&&(g.type===`block-seq`?d(m,`BLOCK_AS_IMPLICIT_KEY`,`A block sequence may not be used as an implicit map key`):`indent`in g&&g.indent!==u.indent&&d(m,`BAD_INDENT`,s)),!b.anchor&&!b.tag&&!v){h=b.end,b.comment&&(p.comment?p.comment+=` +`+b.comment:p.comment=b.comment);continue}(b.newlineAfterProp||i.containsNewline(g))&&d(g??f[f.length-1],`MULTILINE_IMPLICIT_KEY`,`Implicit keys need to be on a single line`)}else b.found?.indent!==u.indent&&d(m,`BAD_INDENT`,s);l.atKey=!0;let S=b.end,C=g?e(l,g,b,d):c(l,S,f,null,b,d);l.schema.compat&&a.flowIndentCheck(u.indent,g,d),l.atKey=!1,o.mapIncludes(l,p.items,C)&&d(S,`DUPLICATE_KEY`,`Map keys must be unique`);let w=r.resolveProps(v??[],{indicator:`map-value-ind`,next:y,offset:C.range[2],onError:d,parentIndent:u.indent,startOnNewline:!g||g.type===`block-scalar`});if(m=w.end,w.found){x&&(y?.type===`block-map`&&!w.hasNewline&&d(m,`BLOCK_AS_IMPLICIT_KEY`,`Nested mappings are not allowed in compact mappings`),l.options.strict&&b.start{var t=ec(),n=wc(),r=Ec();function i({composeNode:e,composeEmptyNode:i},a,o,s,c){let l=new((c?.nodeClass)??t.YAMLSeq)(a.schema);a.atRoot&&=!1,a.atKey&&=!1;let u=o.offset,d=null;for(let{start:t,value:c}of o.items){let f=n.resolveProps(t,{indicator:`seq-item-ind`,next:c,offset:u,onError:s,parentIndent:o.indent,startOnNewline:!0});if(!f.found){if(f.anchor||f.tag||c)c?.type===`block-seq`?s(f.end,`BAD_INDENT`,`All sequence items must start at the same column`):s(u,`MISSING_CHAR`,`Sequence item without - indicator`);else{d=f.end,f.comment&&(l.comment=f.comment);continue}}let p=c?e(a,c,f,s):i(a,f.end,t,null,f,s);a.schema.compat&&r.flowIndentCheck(o.indent,c,s),u=p.range[2],l.items.push(p)}return l.range=[o.offset,u,d??u],l}e.resolveBlockSeq=i})),Ac=J((e=>{function t(e,t,n,r){let i=``;if(e){let a=!1,o=``;for(let s of e){let{source:e,type:c}=s;switch(c){case`space`:a=!0;break;case`comment`:{n&&!a&&r(s,`MISSING_CHAR`,`Comments must be separated from other tokens by white space characters`);let t=e.substring(1)||` `;i?i+=o+t:i=t,o=``;break}case`newline`:i&&(o+=e),a=!0;break;default:r(s,`UNEXPECTED_TOKEN`,`Unexpected ${c} at node end`)}t+=e.length}}return{comment:i,offset:t}}e.resolveEnd=t})),jc=J((e=>{var t=js(),n=Xs(),r=Qs(),i=ec(),a=Ac(),o=wc(),s=Tc(),c=Dc();let l=`Block collections are not allowed within flow collections`,u=e=>e&&(e.type===`block-map`||e.type===`block-seq`);function d({composeNode:e,composeEmptyNode:d},f,p,m,h){let g=p.start.source===`{`,v=g?`flow map`:`flow sequence`,y=new((h?.nodeClass)??(g?r.YAMLMap:i.YAMLSeq))(f.schema);y.flow=!0;let b=f.atRoot;b&&(f.atRoot=!1),f.atKey&&=!1;let x=p.offset+p.start.source.length;for(let i=0;i0){let e=a.resolveEnd(w,T,f.options.strict,m);e.comment&&(y.comment?y.comment+=` +`+e.comment:y.comment=e.comment),y.range=[p.offset,T,e.offset]}else y.range=[p.offset,T,T];return y}e.resolveFlowCollection=d})),Mc=J((e=>{var t=js(),n=zs(),r=Qs(),i=ec(),a=Oc(),o=kc(),s=jc();function c(e,t,n,r,i,c){let l=n.type===`block-map`?a.resolveBlockMap(e,t,n,r,c):n.type===`block-seq`?o.resolveBlockSeq(e,t,n,r,c):s.resolveFlowCollection(e,t,n,r,c),u=l.constructor;return i===`!`||i===u.tagName?(l.tag=u.tagName,l):(i&&(l.tag=i),l)}function l(e,a,o,s,l){let u=s.tag,d=u?a.directives.tagName(u.source,e=>l(u,`TAG_RESOLVE_FAILED`,e)):null;if(o.type===`block-seq`){let{anchor:e,newlineAfterProp:t}=s,n=e&&u?e.offset>u.offset?e:u:e??u;n&&(!t||t.offsete.tag===d&&e.collection===f);if(!p){let t=a.schema.knownTags[d];if(t?.collection===f)a.schema.tags.push(Object.assign({},t,{default:!1})),p=t;else return t?l(u,`BAD_COLLECTION_TYPE`,`${t.tag} used for ${f} collection, but expects ${t.collection??`scalar`}`,!0):l(u,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${d}`,!0),c(e,a,o,l,d)}let m=c(e,a,o,l,d,p),h=p.resolve?.(m,e=>l(u,`TAG_RESOLVE_FAILED`,e),a.options)??m,g=t.isNode(h)?h:new n.Scalar(h);return g.range=m.range,g.tag=d,p?.format&&(g.format=p.format),g}e.composeCollection=l})),Nc=J((e=>{var t=zs();function n(e,n,a){let o=n.offset,s=r(n,e.options.strict,a);if(!s)return{value:``,type:null,comment:``,range:[o,o,o]};let c=s.mode===`>`?t.Scalar.BLOCK_FOLDED:t.Scalar.BLOCK_LITERAL,l=n.source?i(n.source):[],u=l.length;for(let e=l.length-1;e>=0;--e){let t=l[e][1];if(t===``||t===`\r`)u=e;else break}if(u===0){let e=s.chomp===`+`&&l.length>0?` +`.repeat(Math.max(1,l.length-1)):``,t=o+s.length;return n.source&&(t+=n.source.length),{value:e,type:c,comment:s.comment,range:[o,t,t]}}let d=n.indent+s.indent,f=n.offset+s.length,p=0;for(let t=0;td&&(d=n.length);else{n.length=u;--e)l[e][0].length>d&&(u=e+1);let m=``,h=``,g=!1;for(let e=0;ed||r[0]===` `?(h===` `?h=` +`:!g&&h===` +`&&(h=` + +`),m+=h+n.slice(d)+r,h=` +`,g=!0):r===``?h===` +`?m+=` +`:h=` +`:(m+=h+r,h=` `,g=!1)}switch(s.chomp){case`-`:break;case`+`:for(let e=u;e{var t=zs(),n=Ac();function r(e,r,o){let{offset:c,type:l,source:u,end:d}=e,f,p,m=(e,t,n)=>o(c+e,t,n);switch(l){case`scalar`:f=t.Scalar.PLAIN,p=i(u,m);break;case`single-quoted-scalar`:f=t.Scalar.QUOTE_SINGLE,p=a(u,m);break;case`double-quoted-scalar`:f=t.Scalar.QUOTE_DOUBLE,p=s(u,m);break;default:return o(e,`UNEXPECTED_TOKEN`,`Expected a flow scalar value, but found: ${l}`),{value:``,type:null,comment:``,range:[c,c+u.length,c+u.length]}}let h=c+u.length,g=n.resolveEnd(d,h,r,o);return{value:p,type:f,comment:g.comment,range:[c,h,g.offset]}}function i(e,t){let n=``;switch(e[0]){case` `:n=`a tab character`;break;case`,`:n=`flow indicator character ,`;break;case`%`:n=`directive indicator character %`;break;case`|`:case`>`:n=`block scalar indicator ${e[0]}`;break;case`@`:case"`":n=`reserved character ${e[0]}`}return n&&t(0,`BAD_SCALAR_START`,`Plain value cannot start with ${n}`),o(e)}function a(e,t){return(e[e.length-1]!==`'`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing 'quote`),o(e.slice(1,-1)).replace(/''/g,`'`)}function o(e){let t,n;try{t=RegExp(`(.*?)(?t?e.slice(t,r+1):i)}else n+=i}}return(e[e.length-1]!==`"`||e.length===1)&&t(e.length,`MISSING_CHAR`,`Missing closing "quote`),n}function c(e,t){let n=``,r=e[t+1];for(;(r===` `||r===` `||r===` +`||r===`\r`)&&(r!==`\r`||e[t+2]===` +`);)r===` +`&&(n+=` +`),t+=1,r=e[t+1];return n||=` `,{fold:n,offset:t}}let l={0:`\0`,a:`\x07`,b:`\b`,e:`\x1B`,f:`\f`,n:` +`,r:`\r`,t:` `,v:`\v`,N:`…`,_:`\xA0`,L:`\u2028`,P:`\u2029`," ":` `,'"':`"`,"/":`/`,"\\":`\\`," ":` `};function u(e,t,n,r){let i=e.substr(t,n),a=i.length===n&&/^[0-9a-fA-F]+$/.test(i)?parseInt(i,16):NaN;try{return String.fromCodePoint(a)}catch{let i=e.substr(t-2,n+2);return r(t-2,`BAD_DQ_ESCAPE`,`Invalid escape sequence ${i}`),i}}e.resolveFlowScalar=r})),Fc=J((e=>{var t=js(),n=zs(),r=Nc(),i=Pc();function a(e,a,c,l){let{value:u,type:d,comment:f,range:p}=a.type===`block-scalar`?r.resolveBlockScalar(e,a,l):i.resolveFlowScalar(a,e.options.strict,l),m=c?e.directives.tagName(c.source,e=>l(c,`TAG_RESOLVE_FAILED`,e)):null,h;h=e.options.stringKeys&&e.atKey?e.schema[t.SCALAR]:m?o(e.schema,u,m,c,l):a.type===`scalar`?s(e,u,a,l):e.schema[t.SCALAR];let g;try{let r=h.resolve(u,e=>l(c??a,`TAG_RESOLVE_FAILED`,e),e.options);g=t.isScalar(r)?r:new n.Scalar(r)}catch(e){let t=e instanceof Error?e.message:String(e);l(c??a,`TAG_RESOLVE_FAILED`,t),g=new n.Scalar(u)}return g.range=p,g.source=u,d&&(g.type=d),m&&(g.tag=m),h.format&&(g.format=h.format),f&&(g.comment=f),g}function o(e,n,r,i,a){if(r===`!`)return e[t.SCALAR];let o=[];for(let t of e.tags)if(!t.collection&&t.tag===r){if(t.default&&t.test)o.push(t);else return t}for(let e of o)if(e.test?.test(n))return e;let s=e.knownTags[r];return s&&!s.collection?(e.tags.push(Object.assign({},s,{default:!1,test:void 0})),s):(a(i,`TAG_RESOLVE_FAILED`,`Unresolved tag: ${r}`,r!==`tag:yaml.org,2002:str`),e[t.SCALAR])}function s({atKey:e,directives:n,schema:r},i,a,o){let s=r.tags.find(t=>(t.default===!0||e&&t.default===`key`)&&t.test?.test(i))||r[t.SCALAR];if(r.compat){let e=r.compat.find(e=>e.default&&e.test?.test(i))??r[t.SCALAR];s.tag!==e.tag&&o(a,`TAG_RESOLVE_FAILED`,`Value may be parsed as either ${n.tagString(s.tag)} or ${n.tagString(e.tag)}`,!0)}return s}e.composeScalar=a})),Ic=J((e=>{function t(e,t,n){if(t){n??=t.length;for(let r=n-1;r>=0;--r){let n=t[r];switch(n.type){case`space`:case`comment`:case`newline`:e-=n.source.length;continue}for(n=t[++r];n?.type===`space`;)e+=n.source.length,n=t[++r];break}}return e}e.emptyScalarPosition=t})),Lc=J((e=>{var t=Rs(),n=js(),r=Mc(),i=Fc(),a=Ac(),o=Ic();let s={composeNode:c,composeEmptyNode:l};function c(e,t,a,o){let c=e.atKey,{spaceBefore:d,comment:f,anchor:p,tag:m}=a,h,g=!0;switch(t.type){case`alias`:h=u(e,t,o),(p||m)&&o(t,`ALIAS_PROPS`,`An alias node must not specify any properties`);break;case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:case`block-scalar`:h=i.composeScalar(e,t,m,o),p&&(h.anchor=p.source.substring(1));break;case`block-map`:case`block-seq`:case`flow-collection`:try{h=r.composeCollection(s,e,t,a,o),p&&(h.anchor=p.source.substring(1))}catch(e){o(t,`RESOURCE_EXHAUSTION`,e instanceof Error?e.message:String(e))}break;default:o(t,`UNEXPECTED_TOKEN`,t.type===`error`?t.message:`Unsupported token (type: ${t.type})`),g=!1}return h??=l(e,t.offset,void 0,null,a,o),p&&h.anchor===``&&o(p,`BAD_ALIAS`,`Anchor cannot be an empty string`),c&&e.options.stringKeys&&(!n.isScalar(h)||typeof h.value!=`string`||h.tag&&h.tag!==`tag:yaml.org,2002:str`)&&o(m??t,`NON_STRING_KEY`,`With stringKeys, all keys must be strings`),d&&(h.spaceBefore=!0),f&&(t.type===`scalar`&&t.source===``?h.comment=f:h.commentBefore=f),e.options.keepSourceTokens&&g&&(h.srcToken=t),h}function l(e,t,n,r,{spaceBefore:a,comment:s,anchor:c,tag:l,end:u},d){let f={type:`scalar`,offset:o.emptyScalarPosition(t,n,r),indent:-1,source:``},p=i.composeScalar(e,f,l,d);return c&&(p.anchor=c.source.substring(1),p.anchor===``&&d(c,`BAD_ALIAS`,`Anchor cannot be an empty string`)),a&&(p.spaceBefore=!0),s&&(p.comment=s,p.range[2]=u),p}function u({options:e},{offset:n,source:r,end:i},o){let s=new t.Alias(r.substring(1));s.source===``&&o(n,`BAD_ALIAS`,`Alias cannot be an empty string`),s.source.endsWith(`:`)&&o(n+r.length-1,`BAD_ALIAS`,`Alias ending in : is ambiguous`,!0);let c=n+r.length,l=a.resolveEnd(i,c,e.strict,o);return s.range=[n,c,l.offset],l.comment&&(s.comment=l.comment),s}e.composeEmptyNode=l,e.composeNode=c})),Rc=J((e=>{var t=Sc(),n=Lc(),r=Ac(),i=wc();function a(e,a,{offset:o,start:s,value:c,end:l},u){let d=Object.assign({_directives:a},e),f=new t.Document(void 0,d),p={atKey:!1,atRoot:!0,directives:f.directives,options:f.options,schema:f.schema},m=i.resolveProps(s,{indicator:`doc-start`,next:c??l?.[0],offset:o,onError:u,parentIndent:0,startOnNewline:!0});m.found&&(f.directives.docStart=!0,c&&(c.type===`block-map`||c.type===`block-seq`)&&!m.hasNewline&&u(m.end,`MISSING_CHAR`,`Block collection cannot start on same line with directives-end marker`)),f.contents=c?n.composeNode(p,c,m,u):n.composeEmptyNode(p,m.end,s,null,m,u);let h=f.contents.range[2],g=r.resolveEnd(l,h,!1,u);return g.comment&&(f.comment=g.comment),f.range=[o,h,g.offset],f}e.composeDoc=a})),zc=J((e=>{var t=Y(`process`),n=Ns(),r=Sc(),i=Cc(),a=js(),o=Rc(),s=Ac();function c(e){if(typeof e==`number`)return[e,e+1];if(Array.isArray(e))return e.length===2?e:[e[0],e[1]];let{offset:t,source:n}=e;return[t,t+(typeof n==`string`?n.length:1)]}function l(e){let t=``,n=!1,r=!1;for(let i=0;i{let a=c(e);r?this.warnings.push(new i.YAMLWarning(a,t,n)):this.errors.push(new i.YAMLParseError(a,t,n))},this.directives=new n.Directives({version:e.version||`1.2`}),this.options=e}decorate(e,t){let{comment:n,afterEmptyLine:r}=l(this.prelude);if(n){let i=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${n}`:n;else if(r||e.directives.docStart||!i)e.commentBefore=n;else if(a.isCollection(i)&&!i.flow&&i.items.length>0){let e=i.items[0];a.isPair(e)&&(e=e.key);let t=e.commentBefore;e.commentBefore=t?`${n}\n${t}`:n}else{let e=i.commentBefore;i.commentBefore=e?`${n}\n${e}`:n}}if(t){for(let t=0;t{let i=c(e);i[0]+=t,this.onError(i,`BAD_DIRECTIVE`,n,r)}),this.prelude.push(e.source),this.atDirectives=!0;break;case`document`:{let t=o.composeDoc(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,`MISSING_CHAR`,`Missing directives-end/doc-start indicator line`),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case`byte-order-mark`:case`space`:break;case`comment`:case`newline`:this.prelude.push(e.source);break;case`error`:{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,n=new i.YAMLParseError(c(e),`UNEXPECTED_TOKEN`,t);this.atDirectives||!this.doc?this.errors.push(n):this.doc.errors.push(n);break}case`doc-end`:{if(!this.doc){this.errors.push(new i.YAMLParseError(c(e),`UNEXPECTED_TOKEN`,`Unexpected doc-end without preceding document`));break}this.doc.directives.docEnd=!0;let t=s.resolveEnd(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let e=this.doc.comment;this.doc.comment=e?`${e}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new i.YAMLParseError(c(e),`UNEXPECTED_TOKEN`,`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let e=Object.assign({_directives:this.directives},this.options),n=new r.Document(void 0,e);this.atDirectives&&this.onError(t,`MISSING_CHAR`,`Missing directives-end indicator line`),n.range=[0,t,t],this.decorate(n,!1),yield n}}}})),Bc=J((e=>{var t=Nc(),n=Pc(),r=Cc(),i=Ws();function a(e,i=!0,a){if(e){let o=(e,t,n)=>{let i=typeof e==`number`?e:Array.isArray(e)?e[0]:e.offset;if(a)a(i,t,n);else throw new r.YAMLParseError([i,i+1],t,n)};switch(e.type){case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return n.resolveFlowScalar(e,i,o);case`block-scalar`:return t.resolveBlockScalar({options:{strict:i}},e,o)}}return null}function o(e,t){let{implicitKey:n=!1,indent:r,inFlow:a=!1,offset:o=-1,type:s=`PLAIN`}=t,c=i.stringifyString({type:s,value:e},{implicitKey:n,indent:r>0?` `.repeat(r):``,inFlow:a,options:{blockQuote:!0,lineWidth:-1}}),u=t.end??[{type:`newline`,offset:-1,indent:r,source:` +`}];switch(c[0]){case`|`:case`>`:{let e=c.indexOf(` +`),t=c.substring(0,e),n=c.substring(e+1)+` +`,i=[{type:`block-scalar-header`,offset:o,indent:r,source:t}];return l(i,u)||i.push({type:`newline`,offset:-1,indent:r,source:` +`}),{type:`block-scalar`,offset:o,indent:r,props:i,source:n}}case`"`:return{type:`double-quoted-scalar`,offset:o,indent:r,source:c,end:u};case`'`:return{type:`single-quoted-scalar`,offset:o,indent:r,source:c,end:u};default:return{type:`scalar`,offset:o,indent:r,source:c,end:u}}}function s(e,t,n={}){let{afterKey:r=!1,implicitKey:a=!1,inFlow:o=!1,type:s}=n,l=`indent`in e?e.indent:null;if(r&&typeof l==`number`&&(l+=2),!s)switch(e.type){case`single-quoted-scalar`:s=`QUOTE_SINGLE`;break;case`double-quoted-scalar`:s=`QUOTE_DOUBLE`;break;case`block-scalar`:{let t=e.props[0];if(t.type!==`block-scalar-header`)throw Error(`Invalid block scalar header`);s=t.source[0]===`>`?`BLOCK_FOLDED`:`BLOCK_LITERAL`;break}default:s=`PLAIN`}let d=i.stringifyString({type:s,value:t},{implicitKey:a||l===null,indent:l!==null&&l>0?` `.repeat(l):``,inFlow:o,options:{blockQuote:!0,lineWidth:-1}});switch(d[0]){case`|`:case`>`:c(e,d);break;case`"`:u(e,d,`double-quoted-scalar`);break;case`'`:u(e,d,`single-quoted-scalar`);break;default:u(e,d,`scalar`)}}function c(e,t){let n=t.indexOf(` +`),r=t.substring(0,n),i=t.substring(n+1)+` +`;if(e.type===`block-scalar`){let t=e.props[0];if(t.type!==`block-scalar-header`)throw Error(`Invalid block scalar header`);t.source=r,e.source=i}else{let{offset:t}=e,n=`indent`in e?e.indent:-1,a=[{type:`block-scalar-header`,offset:t,indent:n,source:r}];l(a,`end`in e?e.end:void 0)||a.push({type:`newline`,offset:-1,indent:n,source:` +`});for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:`block-scalar`,indent:n,props:a,source:i})}}function l(e,t){if(t)for(let n of t)switch(n.type){case`space`:case`comment`:e.push(n);break;case`newline`:return e.push(n),!0}return!1}function u(e,t,n){switch(e.type){case`scalar`:case`double-quoted-scalar`:case`single-quoted-scalar`:e.type=n,e.source=t;break;case`block-scalar`:{let r=e.props.slice(1),i=t.length;e.props[0].type===`block-scalar-header`&&(i-=e.props[0].source.length);for(let e of r)e.offset+=i;delete e.props,Object.assign(e,{type:n,source:t,end:r});break}case`block-map`:case`block-seq`:{let r={type:`newline`,offset:e.offset+t.length,indent:e.indent,source:` +`};delete e.items,Object.assign(e,{type:n,source:t,end:[r]});break}default:{let r=`indent`in e?e.indent:-1,i=`end`in e&&Array.isArray(e.end)?e.end.filter(e=>e.type===`space`||e.type===`comment`||e.type===`newline`):[];for(let t of Object.keys(e))t!==`type`&&t!==`offset`&&delete e[t];Object.assign(e,{type:n,indent:r,source:t,end:i})}}}e.createScalarToken=o,e.resolveAsScalar=a,e.setScalarValue=s})),Vc=J((e=>{let t=e=>`type`in e?n(e):r(e);function n(e){switch(e.type){case`block-scalar`:{let t=``;for(let r of e.props)t+=n(r);return t+e.source}case`block-map`:case`block-seq`:{let t=``;for(let n of e.items)t+=r(n);return t}case`flow-collection`:{let t=e.start.source;for(let n of e.items)t+=r(n);for(let n of e.end)t+=n.source;return t}case`document`:{let t=r(e);if(e.end)for(let n of e.end)t+=n.source;return t}default:{let t=e.source;if(`end`in e&&e.end)for(let n of e.end)t+=n.source;return t}}}function r({start:e,key:t,sep:r,value:i}){let a=``;for(let t of e)a+=t.source;if(t&&(a+=n(t)),r)for(let e of r)a+=e.source;return i&&(a+=n(i)),a}e.stringify=t})),Hc=J((e=>{let t=Symbol(`break visit`),n=Symbol(`skip children`),r=Symbol(`remove item`);function i(e,t){`type`in e&&e.type===`document`&&(e={start:e.start,value:e.value}),a(Object.freeze([]),e,t)}i.BREAK=t,i.SKIP=n,i.REMOVE=r,i.itemAtPath=(e,t)=>{let n=e;for(let[e,r]of t){let t=n?.[e];if(t&&`items`in t)n=t.items[r];else return}return n},i.parentCollection=(e,t)=>{let n=i.itemAtPath(e,t.slice(0,-1)),r=t[t.length-1][0],a=n?.[r];if(a&&`items`in a)return a;throw Error(`Parent collection not found`)};function a(e,n,i){let o=i(n,e);if(typeof o==`symbol`)return o;for(let s of[`key`,`value`]){let c=n[s];if(c&&`items`in c){for(let n=0;n{var t=Bc(),n=Vc(),r=Hc();let i=e=>!!e&&`items`in e,a=e=>!!e&&(e.type===`scalar`||e.type===`single-quoted-scalar`||e.type===`double-quoted-scalar`||e.type===`block-scalar`);function o(e){switch(e){case``:return``;case``:return``;case``:return``;case``:return``;default:return JSON.stringify(e)}}function s(e){switch(e){case``:return`byte-order-mark`;case``:return`doc-mode`;case``:return`flow-error-end`;case``:return`scalar`;case`---`:return`doc-start`;case`...`:return`doc-end`;case``:case` +`:case`\r +`:return`newline`;case`-`:return`seq-item-ind`;case`?`:return`explicit-key-ind`;case`:`:return`map-value-ind`;case`{`:return`flow-map-start`;case`}`:return`flow-map-end`;case`[`:return`flow-seq-start`;case`]`:return`flow-seq-end`;case`,`:return`comma`}switch(e[0]){case` `:case` `:return`space`;case`#`:return`comment`;case`%`:return`directive-line`;case`*`:return`alias`;case`&`:return`anchor`;case`!`:return`tag`;case`'`:return`single-quoted-scalar`;case`"`:return`double-quoted-scalar`;case`|`:case`>`:return`block-scalar-header`}return null}e.createScalarToken=t.createScalarToken,e.resolveAsScalar=t.resolveAsScalar,e.setScalarValue=t.setScalarValue,e.stringify=n.stringify,e.visit=r.visit,e.BOM=``,e.DOCUMENT=``,e.FLOW_END=``,e.SCALAR=``,e.isCollection=i,e.isScalar=a,e.prettyToken=o,e.tokenType=s})),Wc=J((e=>{var t=Uc();function n(e){switch(e){case void 0:case` `:case` +`:case`\r`:case` `:return!0;default:return!1}}let r=new Set(`0123456789ABCDEFabcdef`),i=new Set(`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()`),a=new Set(`,[]{}`),o=new Set(` ,[]{} +\r `),s=e=>!e||o.has(e);e.Lexer=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer=``,this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){if(e){if(typeof e!=`string`)throw TypeError(`source is not a string`);this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null}this.atEnd=!t;let n=this.next??`stream`;for(;n&&(t||this.hasChars(1));)n=yield*this.parseNext(n)}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===` `||t===` `;)t=this.buffer[++e];return!t||t===`#`||t===` +`||t===`\r`&&this.buffer[e+1]===` +`}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let n=0;for(;t===` `;)t=this.buffer[++n+e];if(t===`\r`){let t=this.buffer[n+e+1];if(t===` +`||!t&&!this.atEnd)return e+n+1}return t===` +`||n>=this.indentNext||!t&&!this.atEnd?e+n:-1}if(t===`-`||t===`.`){let t=this.buffer.substr(e,3);if((t===`---`||t===`...`)&&n(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!=`number`||e!==-1&&ethis.indentValue&&!n(this.charAt(1))&&(this.indentNext=this.indentValue),yield*this.parseBlockStart()}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext(`block-start`);if((e===`-`||e===`?`||e===`:`)&&n(t)){let e=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=e,`block-start`}return`doc`}*parseDocument(){yield*this.pushSpaces(!0);let e=this.getLine();if(e===null)return this.setNext(`doc`);let t=yield*this.pushIndicators();switch(e[t]){case`#`:yield*this.pushCount(e.length-t);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case`{`:case`[`:return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,`flow`;case`}`:case`]`:return yield*this.pushCount(1),`doc`;case`*`:return yield*this.pushUntil(s),`doc`;case`"`:case`'`:return yield*this.parseQuotedScalar();case`|`:case`>`:return t+=yield*this.parseBlockScalarHeader(),t+=yield*this.pushSpaces(!0),yield*this.pushCount(e.length-t),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let e,r,i=-1;do e=yield*this.pushNewline(),e>0?(r=yield*this.pushSpaces(!1),this.indentValue=i=r):r=0,r+=yield*this.pushSpaces(!0);while(e+r>0);let a=this.getLine();if(a===null)return this.setNext(`flow`);if((i!==-1&&i`0`&&t<=`9`)this.blockScalarIndent=Number(t)-1;else if(t!==`-`)break}return yield*this.pushUntil(e=>n(e)||e===`#`)}*parseBlockScalar(){let e=this.pos-1,n=0,r;loop:for(let t=this.pos;r=this.buffer[t];++t)switch(r){case` `:n+=1;break;case` +`:e=t,n=0;break;case`\r`:{let e=this.buffer[t+1];if(!e&&!this.atEnd)return this.setNext(`block-scalar`);if(e===` +`)break}default:break loop}if(!r&&!this.atEnd)return this.setNext(`block-scalar`);if(n>=this.indentNext){this.indentNext=this.blockScalarIndent===-1?n:this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let t=this.continueScalar(e+1);if(t===-1)break;e=this.buffer.indexOf(` +`,t)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext(`block-scalar`);e=this.buffer.length}}let i=e+1;for(r=this.buffer[i];r===` `;)r=this.buffer[++i];if(r===` `){for(;r===` `||r===` `||r===`\r`||r===` +`;)r=this.buffer[++i];e=i-1}else if(!this.blockScalarKeep)do{let t=e-1,r=this.buffer[t];r===`\r`&&(r=this.buffer[--t]);let i=t;for(;r===` `;)r=this.buffer[--t];if(r===` +`&&t>=this.pos&&t+1+n>i)e=t;else break}while(!0);return yield t.SCALAR,yield*this.pushToIndex(e+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let e=this.flowLevel>0,r=this.pos-1,i=this.pos-1,o;for(;o=this.buffer[++i];)if(o===`:`){let t=this.buffer[i+1];if(n(t)||e&&a.has(t))break;r=i}else if(n(o)){let t=this.buffer[i+1];if(o===`\r`&&(t===` +`?(i+=1,o=` +`,t=this.buffer[i+1]):r=i),t===`#`||e&&a.has(t))break;if(o===` +`){let e=this.continueScalar(i+1);if(e===-1)break;i=Math.max(i,e-2)}}else{if(e&&a.has(o))break;r=i}return!o&&!this.atEnd?this.setNext(`plain-scalar`):(yield t.SCALAR,yield*this.pushToIndex(r+1,!0),e?`flow`:`doc`)}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let n=this.buffer.slice(this.pos,e);return n?(yield n,this.pos+=n.length,n.length):(t&&(yield``),0)}*pushIndicators(){let e=0;loop:for(;;){switch(this.charAt(0)){case`!`:e+=yield*this.pushTag(),e+=yield*this.pushSpaces(!0);continue loop;case`&`:e+=yield*this.pushUntil(s),e+=yield*this.pushSpaces(!0);continue loop;case`-`:case`?`:case`:`:{let t=this.flowLevel>0,r=this.charAt(1);if(n(r)||t&&a.has(r)){t?this.flowKey&&=!1:this.indentNext=this.indentValue+1,e+=yield*this.pushCount(1),e+=yield*this.pushSpaces(!0);continue loop}}}break loop}return e}*pushTag(){if(this.charAt(1)===`<`){let e=this.pos+2,t=this.buffer[e];for(;!n(t)&&t!==`>`;)t=this.buffer[++e];return yield*this.pushToIndex(t===`>`?e+1:e,!1)}{let e=this.pos+1,t=this.buffer[e];for(;t;)if(i.has(t))t=this.buffer[++e];else if(t===`%`&&r.has(this.buffer[e+1])&&r.has(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*this.pushToIndex(e,!1)}}*pushNewline(){let e=this.buffer[this.pos];return e===` +`?yield*this.pushCount(1):e===`\r`&&this.charAt(1)===` +`?yield*this.pushCount(2):0}*pushSpaces(e){let t=this.pos-1,n;do n=this.buffer[++t];while(n===` `||e&&n===` `);let r=t-this.pos;return r>0&&(yield this.buffer.substr(this.pos,r),this.pos=t),r}*pushUntil(e){let t=this.pos,n=this.buffer[t];for(;!e(n);)n=this.buffer[++t];return yield*this.pushToIndex(t,!1)}}})),Gc=J((e=>{e.LineCounter=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,n=this.lineStarts.length;for(;t>1;this.lineStarts[r]{var t=Y(`process`),n=Uc(),r=Wc();function i(e,t){for(let n=0;n=0;)switch(e[t].type){case`doc-start`:case`explicit-key-ind`:case`map-value-ind`:case`seq-item-ind`:case`newline`:break loop}for(;e[++t]?.type===`space`;);return e.splice(t,e.length)}function l(e,t){if(t.length<1e5)Array.prototype.push.apply(e,t);else for(let n=0;n0;)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type===`doc-end`&&e?.type!==`doc-end`){for(;this.stack.length>0;)yield*this.pop();this.stack.push({type:`doc-end`,offset:this.offset,source:this.source});return}if(!e)return yield*this.stream();switch(e.type){case`document`:return yield*this.document(e);case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return yield*this.scalar(e);case`block-scalar`:return yield*this.blockScalar(e);case`block-map`:return yield*this.blockMap(e);case`block-seq`:return yield*this.blockSequence(e);case`flow-collection`:return yield*this.flowCollection(e);case`doc-end`:return yield*this.documentEnd(e)}yield*this.pop()}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e??this.stack.pop();if(!t)yield{type:`error`,offset:this.offset,source:``,message:`Tried to pop an empty stack`};else if(this.stack.length===0)yield t;else{let e=this.peek(1);switch(t.type===`block-scalar`?t.indent=`indent`in e?e.indent:0:t.type===`flow-collection`&&e.type===`document`&&(t.indent=0),t.type===`flow-collection`&&u(t),e.type){case`document`:e.value=t;break;case`block-scalar`:e.props.push(t);break;case`block-map`:{let n=e.items[e.items.length-1];if(n.value){e.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!n.explicitKey;return}break}case`block-seq`:{let n=e.items[e.items.length-1];n.value?e.items.push({start:[],value:t}):n.value=t;break}case`flow-collection`:{let n=e.items[e.items.length-1];!n||n.value?e.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*this.pop(),yield*this.pop(t)}if((e.type===`document`||e.type===`block-map`||e.type===`block-seq`)&&(t.type===`block-map`||t.type===`block-seq`)){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&a(n.start)===-1&&(t.indent===0||n.start.every(e=>e.type!==`comment`||e.indent=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,a=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;re.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(a=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(a.push(this.sourceToken),e.items.push({start:a}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(a.push(this.sourceToken),e.items.push({start:a,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey){if(!t.sep){if(i(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=c(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(i(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]});else if(o(t.key)&&!i(t.sep,`newline`)){let e=c(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else a.length>0?t.sep=t.sep.concat(a,this.sourceToken):t.sep.push(this.sourceToken)}else t.sep?t.value||r?e.items.push({start:a,key:null,sep:[this.sourceToken]}):i(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:a,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type===`block-seq`){if(!t.explicitKey&&t.sep&&!i(t.sep,`newline`)){yield*this.pop({type:`error`,offset:this.offset,message:`Unexpected block-seq-ind on same line with key`,source:this.source});return}}else n&&e.items.push({start:a});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type===`comment`?n?.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2]?.value?.end;if(Array.isArray(n)){l(n,t.start),n.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||i(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while(e?.type===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=c(s(t));u(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(` +`)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(` +`,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=c(s(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=c(s(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}}})),qc=J((e=>{var t=zc(),n=Sc(),r=Cc(),i=qs(),a=js(),o=Gc(),s=Kc();function c(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new o.LineCounter||null,prettyErrors:t}}function l(e,n={}){let{lineCounter:i,prettyErrors:a}=c(n),o=new s.Parser(i?.addNewLine),l=new t.Composer(n),u=Array.from(l.compose(o.parse(e)));if(a&&i)for(let t of u)t.errors.forEach(r.prettifyError(e,i)),t.warnings.forEach(r.prettifyError(e,i));return u.length>0?u:Object.assign([],{empty:!0},l.streamInfo())}function u(e,n={}){let{lineCounter:i,prettyErrors:a}=c(n),o=new s.Parser(i?.addNewLine),l=new t.Composer(n),u=null;for(let t of l.compose(o.parse(e),!0,e.length))if(!u)u=t;else if(u.options.logLevel!==`silent`){u.errors.push(new r.YAMLParseError(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return a&&i&&(u.errors.forEach(r.prettifyError(e,i)),u.warnings.forEach(r.prettifyError(e,i))),u}function d(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let a=u(e,n);if(!a)return null;if(a.warnings.forEach(e=>i.warn(a.options.logLevel,e)),a.errors.length>0){if(a.options.logLevel!==`silent`)throw a.errors[0];a.errors=[]}return a.toJS(Object.assign({reviver:r},n))}function f(e,t,r){let i=null;if(typeof t==`function`||Array.isArray(t)?i=t:r===void 0&&t&&(r=t),typeof r==`string`&&(r=r.length),typeof r==`number`){let e=Math.round(r);r=e<1?void 0:e>8?{indent:8}:{indent:e}}if(e===void 0){let{keepUndefined:e}=r??t??{};if(!e)return}return a.isDocument(e)&&!i?e.toString(r):new n.Document(e,i,r).toString(r)}e.parse=d,e.parseAllDocuments=l,e.parseDocument=u,e.stringify=f})),Jc=J((e=>{var t=zc(),n=Sc(),r=bc(),i=Cc(),a=Rs(),o=js(),s=Xs(),c=zs(),l=Qs(),u=ec();Uc();var d=Wc(),f=Gc(),p=Kc(),m=qc(),h=Ms();e.Composer=t.Composer,e.Document=n.Document,e.Schema=r.Schema,e.YAMLError=i.YAMLError,e.YAMLParseError=i.YAMLParseError,e.YAMLWarning=i.YAMLWarning,e.Alias=a.Alias,e.isAlias=o.isAlias,e.isCollection=o.isCollection,e.isDocument=o.isDocument,e.isMap=o.isMap,e.isNode=o.isNode,e.isPair=o.isPair,e.isScalar=o.isScalar,e.isSeq=o.isSeq,e.Pair=s.Pair,e.Scalar=c.Scalar,e.YAMLMap=l.YAMLMap,e.YAMLSeq=u.YAMLSeq,e.Lexer=d.Lexer,e.LineCounter=f.LineCounter,e.Parser=p.Parser,e.parse=m.parse,e.parseAllDocuments=m.parseAllDocuments,e.parseDocument=m.parseDocument,e.stringify=m.stringify,e.visit=h.visit,e.visitAsync=h.visitAsync})),Yc=J(((e,t)=>{var n=t.exports;t.exports.isWhiteSpace=function(e){return e===` `||e===`\xA0`||e===``||e>=` `&&e<=`\r`||e===` `||e>=` `&&e<=` `||e===`\u2028`||e===`\u2029`||e===` `||e===` `||e===` `},t.exports.isWhiteSpaceJSON=function(e){return e===` `||e===` `||e===` +`||e===`\r`},t.exports.isLineTerminator=function(e){return e===` +`||e===`\r`||e===`\u2028`||e===`\u2029`},t.exports.isLineTerminatorJSON=function(e){return e===` +`||e===`\r`},t.exports.isIdentifierStart=function(e){return e===`$`||e===`_`||e>=`A`&&e<=`Z`||e>=`a`&&e<=`z`||e>=`€`&&n.NonAsciiIdentifierStart.test(e)},t.exports.isIdentifierPart=function(e){return e===`$`||e===`_`||e>=`A`&&e<=`Z`||e>=`a`&&e<=`z`||e>=`0`&&e<=`9`||e>=`€`&&n.NonAsciiIdentifierPart.test(e)},t.exports.NonAsciiIdentifierStart=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,t.exports.NonAsciiIdentifierPart=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/})),Xc=J(((e,t)=>{var n=Yc();function r(e){return e>=`0`&&e<=`9`||e>=`A`&&e<=`F`||e>=`a`&&e<=`f`}function i(e){return e>=`0`&&e<=`7`}function a(e){return e>=`0`&&e<=`9`}var o={"'":`'`,'"':`"`,"\\":`\\`,b:`\b`,f:`\f`,n:` +`,r:`\r`,t:` `,v:`\v`,"/":`/`};function s(e,t,r,i,a,o){var s=t+` at `+(i+1)+`:`+(a+1),c=r-a-1,l=``,u=``,d=o?n.isLineTerminator:n.isLineTerminatorJSON;for(c=c&&(u+=`^`);break}if(l+=f,r===c?u+=`^`:r>c&&(u+=e[c]===` `?` `:` `),l.length>78)break}return s+` +`+l+` +`+u}function c(e,t){var c=!1,l=!1;t.legacy||t.mode===`json`||(t.mode===`cjson`?l=!0:c=(t.mode,!0));var u=c?n.isLineTerminator:n.isLineTerminatorJSON,d=c?n.isWhiteSpace:n.isWhiteSpaceJSON,f=e.length,p=0,m=0,h=0,g=[],v=function(){},y=function(e){return e};t._tokenize&&(function(){var n=null;v=function(){if(n!==null)throw Error(`internal error, token overlap`);n=h},y=function(r,i){if(n!=h){var a={raw:e.substr(n,h-n),type:i,stack:g.slice(0)};r!==void 0&&(a.value=r),t._tokenize.call(null,a)}return n=null,r}})();function b(t){var n=h-m;if(!t){if(h=f||t[i]!=e[h])&&(h=n-1,b()),h++}function D(){for(var n=t.null_prototype?Object.create(null):{},r={},i=!1;h=`1`&&n<=`9`){for(;h=f&&b(),a=e[h++],o[a]&&(c||a!=`v`&&a!=`'`))n+=o[a];else if(c&&u(a))x(a);else if(a===`u`||a===`x`&&c){for(var s=a===`u`?4:2,l=0;l=f&&b(),r(e[h])||b(`Bad escape sequence`),h++;n+=String.fromCharCode(parseInt(e.substr(h-s,s),16))}else if(c&&i(a)){if(a<`4`&&i(e[h])&&i(e[h+1]))var d=3;else if(i(e[h]))var d=2;else var d=1;h+=d-1,n+=String.fromCharCode(parseInt(e.substr(h-d,d),8))}else c?n+=a:(h--,b())}else u(a)?b():(!c&&a.charCodeAt(0)<32&&(h--,b(`Unexpected control character`)),n+=a)}b()}w();var M=S();if(M!==void 0||h=f)return typeof t.reviver==`function`&&(M=t.reviver.call(null,``,M)),M;b()}else b(h?`No data, only a whitespace`:`No data, empty input`)}t.exports.parse=function(e,t){if(typeof t==`function`&&(t={reviver:t}),e!==void 0){typeof e!=`string`&&(e=String(e)),t??={},t.reserved_keys??(t.reserved_keys=`ignore`),(t.reserved_keys===`throw`||t.reserved_keys===`ignore`)&&(t.null_prototype??(t.null_prototype=!0));try{return c(e,t)}catch(e){if(e instanceof SyntaxError&&e.row!=null&&e.column!=null){var n=e;e=SyntaxError(n.message),e.column=n.column,e.row=n.row}throw e}}},t.exports.tokenize=function(e,n){n??={},n._tokenize=function(e){n._addstack&&e.stack.unshift.apply(e.stack,n._addstack),r.push(e)};var r=[];return r.data=t.exports.parse(e,n),r}})),Zc=J(((e,t)=>{var n=Yc();(function(){}).name||Object.defineProperty((function(){}).constructor.prototype,"name",{get:function(){var e=this.toString().match(/^\s*function\s*(\S*)\s*\(/)[1];return Object.defineProperty(this,"name",{value:e}),e}});var r={0:`\\0`,8:`\\b`,9:`\\t`,10:`\\n`,11:`\\v`,12:`\\f`,13:`\\r`,92:`\\\\`},i=Object.prototype.hasOwnProperty,a=/[\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/;function o(e,t,s,c){var l=t.mode===`json5`||!t.mode;function u(e,n){var r=t._prefix?t._prefix:``;if(!t.indent)return r+e;for(var i=``,a=s+(n||0),o=0;o0){if(!n.isIdentifierPart(e[i]))return f(e)}else if(!n.isIdentifierStart(e[i]))return f(e);var o=e.charCodeAt(i);t.ascii?r+=o<128?e[i]:`\\u`+(`0000`+o.toString(16)).slice(-4):a.exec(e[i])?r+=`\\u`+(`0000`+o.toString(16)).slice(-4):r+=e[i]}return r}function f(e){for(var i=t.quote,o=i.charCodeAt(0),s=``,c=0;c=8&&u<=13&&(l||u!==11)?r[u]:l?`\\x0`+u.toString(16):`\\u000`+u.toString(16);else if(u<32)s+=l?`\\x`+u.toString(16):`\\u00`+u.toString(16);else if(u>=32&&u<128)u===47&&c&&e[c-1]===`<`?s+=`\\`+e[c]:s+=u===92?`\\\\`:u===o?`\\`+i:e[c];else if(t.ascii||n.isLineTerminator(e[c])||a.exec(e[c])){if(u<256)s+=l?`\\x`+u.toString(16):`\\u00`+u.toString(16);else if(u<4096)s+=`\\u0`+u.toString(16);else if(u<65536)s+=`\\u`+u.toString(16);else throw Error(`weird codepoint`)}else s+=e[c]}return i+s+i}function p(){if(e===null)return`null`;var n=[],r=0,a;if(Array.isArray(e)){a=`[]`;for(var c=0;ct._splitMax-s*t.indent.length||r>t._splitMin)){t.no_trailing_comma&&n.length&&(n[n.length-1]=n[n.length-1].substring(0,n[n.length-1].length-1));var m=n.map(function(e){return u(e,1)}).join(``);return a[0]+(t.indent?` +`:``)+m+u(a[1])}n.length&&(n[n.length-1]=n[n.length-1].substring(0,n[n.length-1].length-1));var m=n.join(t.indent?` `:``);return a[0]+m+a[1]}function m(e){switch(typeof t.replacer==`function`&&(e=t.replacer.call(null,c,e)),typeof e){case`string`:return f(e);case`number`:return e===0&&1/e<0?`-0`:!l&&!Number.isFinite(e)?`null`:e.toString();case`boolean`:return e.toString();case`undefined`:return;default:return JSON.stringify(e)}}if(t._stringify_key)return d(e);if(typeof e==`object`){if(e===null)return`null`;var h;return(typeof(h=e.toJSON5)==`function`&&t.mode!==`json`||typeof(h=e.toJSON)==`function`)&&(e=h.call(e,c)),e===null?`null`:typeof e==`object`?e.constructor===Number||e.constructor===Boolean||e.constructor===String?(e=e.valueOf(),m(e)):e.constructor===Date?m(e.toISOString()):typeof t.replacer==`function`&&(e=t.replacer.call(null,c,e),typeof e!=`object`)?m(e):p(e):m(e)}return m(e)}t.exports.stringify=function(e,t,n){return typeof t==`function`||Array.isArray(t)?t={replacer:t}:typeof t==`object`&&t||(t={}),n!=null&&(t.indent=n),t.indent??(t.indent=` `),t.quote??(t.quote=`'`),t.ascii??(t.ascii=!1),t.mode??(t.mode=`json5`),(t.mode===`json`||t.mode===`cjson`)&&(t.quote=`"`,t.no_trailing_comma=!0,t.quote_keys=!0),typeof t.indent==`object`&&(t.indent.constructor===Number||t.indent.constructor===Boolean||t.indent.constructor===String)&&(t.indent=t.indent.valueOf()),typeof t.indent==`number`?t.indent>=0?t.indent=Array(Math.min(~~t.indent,10)+1).join(` `):t.indent=!1:typeof t.indent==`string`&&(t.indent=t.indent.substr(0,10)),t._splitMin??(t._splitMin=50),t._splitMax??(t._splitMax=70),o(e,t,0,``)}})),Qc=J(((e,t)=>{var n=Xc().tokenize;t.exports.analyze=function(e,t){t??={},Array.isArray(e)||(e=n(e,t));for(var r={has_whitespace:!1,has_comments:!1,has_newlines:!1,has_trailing_comma:!1,indent:``,newline:` +`,quote:`"`,quote_keys:!0},i={indent:{},newline:{},quote:{}},a=0;ai[u][t]?e:t}));return r}})),$c=J(((e,t)=>{var n=Y(`assert`),r=Xc().tokenize,i=Zc().stringify,a=Qc().analyze;function o(e){return typeof e==`object`&&!!e}function s(e,t,n,a,o){n=Object.create(n),n._stringify_key=!!a,o&&(n._prefix=o.prefix.map(function(e){return e.raw}).join(``)),n._splitMin??(n._splitMin=0),n._splitMax??(n._splitMax=0);var s=i(e,n);if(a)return[{raw:s,type:`key`,stack:t,value:e}];n._addstack=t;var c=r(s,{_addstack:t});return c.data=null,c}function c(e){if(typeof e==`number`&&(e=String(e)),e===``&&(e=[]),typeof e==`string`&&(e=e.split(`.`)),!Array.isArray(e))throw Error(`Invalid path type, string or array expected`);return e}function l(e,t,n,r,i){for(;n[r].stack[t]!=e;)if(r++>=i)return!1;for(;n[i].stack[t]!=e;)if(i--=n)return!1;return t}function f(e,t,n){for(;u(e[n].type);)if(n--a;)i--;if(!t){for(;u(e[i].type);){if(ir.length)for(var a=0;a=0;a--)e.push(String(a)),n(e,r[a],i[a]),e.pop()}else{for(var a in i)e.push(String(a)),n(e,r[a],i[a]),e.pop();for(var a in r)a in i||(e.push(String(a)),n(e,r[a],i[a]),e.pop())}}},m.prototype.toString=function(){return this._tokens.map(function(e){return e.raw}).join(``)},t.exports.Document=m,t.exports.update=function(e,t,n){return m(e,n).update(t).toString()}})),el=J(((e,t)=>{var n=Y(`fs`),r=tl();t.exports.register=function(){var e=Y,t=`extensions`;e[t][`.json5`]=function(e,t){e.exports=r.parse(n.readFileSync(t,`utf8`))}},t.exports.patch_JSON_parse=function(){var e=JSON.parse;JSON.parse=function(t,n){try{return e(t,n)}catch(e){throw tl().parse(t,{mode:`json`,legacy:!0,reviver:n,reserved_keys:`replace`,null_prototype:!1}),e}}},t.exports.middleware=function(){return function(e,t,n){throw Error(`this function is removed, use express-json5 instead`)}}})),tl=J(((e,t)=>{t.exports.__defineGetter__(`parse`,function(){return Xc().parse}),t.exports.__defineGetter__(`stringify`,function(){return Zc().stringify}),t.exports.__defineGetter__(`tokenize`,function(){return Xc().tokenize}),t.exports.__defineGetter__(`update`,function(){return $c().update}),t.exports.__defineGetter__(`analyze`,function(){return Qc().analyze}),t.exports.__defineGetter__(`utils`,function(){return el()})})),nl=be(Jc(),1),rl=be(tl(),1),il=class extends Error{};const al=async(e,t)=>JSON.parse(await H.readFile(G.join(e,t),`utf-8`)),ol=(e,t)=>JSON.parse(q.readFileSync(G.join(e,t),`utf-8`));async function sl(e,t){let n=(await ks(e,{cwd:t,onlyDirectories:!0,ignore:[`**/node_modules`],expandDirectories:!1})).map(e=>G.resolve(t,e)).sort();return(await Promise.all(n.map(e=>H.readFile(G.join(e,`package.json`),`utf-8`).catch(e=>{if(!(e&&e.code===`ENOENT`))throw e}).then(n=>{if(n)return{dir:G.resolve(e),relativeDir:G.relative(t,e),packageJson:JSON.parse(n)}})))).filter(e=>e)}function cl(e,t){return As(e,{cwd:t,onlyDirectories:!0,ignore:[`**/node_modules`],expandDirectories:!1}).map(e=>G.resolve(t,e)).sort().map(e=>{try{let n=ol(e,`package.json`);return{dir:G.resolve(e),relativeDir:G.relative(t,e),packageJson:n}}catch(e){if(e&&e.code===`ENOENT`)return;throw e}}).filter(e=>e)}async function ll(e){try{return await Promise.any([V.access(W.join(e,`bun.lockb`),te),V.access(W.join(e,`bun.lock`),te)]),!0}catch{return!1}}function ul(e){try{return K.accessSync(W.join(e,`bun.lockb`),te),!0}catch{try{return K.accessSync(W.join(e,`bun.lock`),te),!0}catch{return!1}}}const dl={type:`bun`,async isMonorepoRoot(e){try{let[t,n]=await Promise.all([al(e,`package.json`),ll(e)]);if(t.workspaces&&n&&(Array.isArray(t.workspaces)||Array.isArray(t.workspaces.packages)))return!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}return!1},isMonorepoRootSync(e){try{if(!ul(e))return!1;let t=ol(e,`package.json`);if(t.workspaces&&(Array.isArray(t.workspaces)||Array.isArray(t.workspaces.packages)))return!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}return!1},async getPackages(e){let t=W.resolve(e);try{let e=await al(t,`package.json`),n=Array.isArray(e.workspaces)?e.workspaces:e.workspaces?.packages||[];return{tool:dl,packages:await sl(n,t),rootPackage:{dir:t,relativeDir:`.`,packageJson:e},rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${dl.type} monorepo root`):e}},getPackagesSync(e){let t=W.resolve(e);try{let e=ol(t,`package.json`),n=Array.isArray(e.workspaces)?e.workspaces:e.workspaces?.packages||[];return{tool:dl,packages:cl(n,t),rootPackage:{dir:t,relativeDir:`.`,packageJson:e},rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${dl.type} monorepo root`):e}}},fl={type:`lerna`,async isMonorepoRoot(e){try{if((await al(e,`lerna.json`)).useWorkspaces!==!0)return!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}return!1},isMonorepoRootSync(e){try{if(ol(e,`lerna.json`).useWorkspaces!==!0)return!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}return!1},async getPackages(e){let t=G.resolve(e);try{let e=await al(t,`lerna.json`),n=await al(t,`package.json`),r=e.packages||[`packages/*`];return{tool:fl,packages:await sl(r,t),rootPackage:{dir:t,relativeDir:`.`,packageJson:n},rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${fl.type} monorepo root: missing lerna.json and/or package.json`):e}},getPackagesSync(e){let t=G.resolve(e);try{let e=ol(t,`lerna.json`),n=ol(t,`package.json`),r=e.packages||[`packages/*`];return{tool:fl,packages:cl(r,t),rootPackage:{dir:t,relativeDir:`.`,packageJson:n},rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${fl.type} monorepo root: missing lerna.json and/or package.json`):e}}},pl={type:`npm`,async isMonorepoRoot(e){try{let[t]=await Promise.all([al(e,`package.json`),H.access(G.join(e,`package-lock.json`),te)]);if(t.workspaces&&Array.isArray(t.workspaces))return!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}return!1},isMonorepoRootSync(e){try{q.accessSync(G.join(e,`package-lock.json`),te);let t=ol(e,`package.json`);if(t.workspaces&&Array.isArray(t.workspaces))return!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}return!1},async getPackages(e){let t=G.resolve(e);try{let e=await al(t,`package.json`),n=e.workspaces;return{tool:pl,packages:await sl(n,t),rootPackage:{dir:t,relativeDir:`.`,packageJson:e},rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${pl.type} monorepo root`):e}},getPackagesSync(e){let t=G.resolve(e);try{let e=ol(t,`package.json`),n=e.workspaces;return{tool:pl,packages:cl(n,t),rootPackage:{dir:t,relativeDir:`.`,packageJson:e},rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${pl.type} monorepo root`):e}}};async function ml(e){return H.readFile(e,`utf8`).then(e=>nl.parse(e))}function hl(e){return nl.parse(q.readFileSync(e,`utf8`))}const gl={type:`pnpm`,async isMonorepoRoot(e){try{if((await ml(G.join(e,`pnpm-workspace.yaml`))).packages)return!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}return!1},isMonorepoRootSync(e){try{if(hl(G.join(e,`pnpm-workspace.yaml`)).packages)return!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}return!1},async getPackages(e){let t=G.resolve(e);try{let e=await ml(G.join(t,`pnpm-workspace.yaml`)),n=await al(t,`package.json`),r=e.packages;return{tool:gl,packages:await sl(r,t),rootPackage:{dir:t,relativeDir:`.`,packageJson:n},rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${gl.type} monorepo root: missing pnpm-workspace.yaml and/or package.json`):e}},getPackagesSync(e){let t=G.resolve(e);try{let e=hl(G.join(t,`pnpm-workspace.yaml`)),n=ol(t,`package.json`),r=e.packages;return{tool:gl,packages:cl(r,t),rootPackage:{dir:t,relativeDir:`.`,packageJson:n},rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${gl.type} monorepo root: missing pnpm-workspace.yaml and/or package.json`):e}}},_l={type:`root`,async isMonorepoRoot(e){return!1},isMonorepoRootSync(e){return!1},async getPackages(e){let t=G.resolve(e);try{let e={dir:t,relativeDir:`.`,packageJson:await al(t,`package.json`)};return{tool:_l,packages:[e],rootPackage:e,rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${_l.type} monorepo root`):e}},getPackagesSync(e){let t=G.resolve(e);try{let e={dir:t,relativeDir:`.`,packageJson:ol(t,`package.json`)};return{tool:_l,packages:[e],rootPackage:e,rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${_l.type} monorepo root`):e}}},vl={type:`rush`,async isMonorepoRoot(e){try{return await H.access(G.join(e,`rush.json`),te),!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}},isMonorepoRootSync(e){try{return q.accessSync(G.join(e,`rush.json`),te),!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}},async getPackages(e){let t=G.resolve(e);try{let n=await H.readFile(G.join(t,`rush.json`),`utf8`),r=rl.default.parse(n).projects.map(e=>G.resolve(t,e.projectFolder)),i=await Promise.all(r.map(async t=>({dir:t,relativeDir:G.relative(e,t),packageJson:await al(t,`package.json`)})));return{tool:vl,packages:i,rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${vl.type} monorepo root: missing rush.json`):e}},getPackagesSync(e){let t=G.resolve(e);try{let n=q.readFileSync(G.join(t,`rush.json`),`utf8`),r=rl.default.parse(n).projects.map(e=>G.resolve(t,e.projectFolder)).map(t=>{let n=ol(t,`package.json`);return{dir:t,relativeDir:G.relative(e,t),packageJson:n}});return{tool:vl,packages:r,rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${vl.type} monorepo root: missing rush.json`):e}}},yl={type:`yarn`,async isMonorepoRoot(e){try{let[t]=await Promise.all([al(e,`package.json`),H.access(G.join(e,`yarn.lock`),te)]);if(t.workspaces&&(Array.isArray(t.workspaces)||Array.isArray(t.workspaces.packages)))return!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}return!1},isMonorepoRootSync(e){try{q.accessSync(G.join(e,`yarn.lock`),te);let t=ol(e,`package.json`);if(t.workspaces&&(Array.isArray(t.workspaces)||Array.isArray(t.workspaces.packages)))return!0}catch(e){if(e&&e.code===`ENOENT`)return!1;throw e}return!1},async getPackages(e){let t=G.resolve(e);try{let e=await al(t,`package.json`),n=Array.isArray(e.workspaces)?e.workspaces:e.workspaces.packages;return{tool:yl,packages:await sl(n,t),rootPackage:{dir:t,relativeDir:`.`,packageJson:e},rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${yl.type} monorepo root`):e}},getPackagesSync(e){let t=G.resolve(e);try{let e=ol(t,`package.json`),n=Array.isArray(e.workspaces)?e.workspaces:e.workspaces.packages;return{tool:yl,packages:cl(n,t),rootPackage:{dir:t,relativeDir:`.`,packageJson:e},rootDir:t}}catch(e){throw e&&e.code===`ENOENT`?new il(`Directory ${t} is not a valid ${yl.type} monorepo root`):e}}},bl=[yl,gl,pl,dl,fl,vl,_l],xl=e=>!!e&&typeof e==`object`&&`code`in e&&e.code===`ENOENT`;var Sl=class extends Error{constructor(e){super(`No package.json could be found upwards from directory ${e}`),this.directory=e}},Cl=class extends Error{constructor(e){super(`No monorepo matching the list of supported monorepos could be found upwards from directory ${e}`),this.directory=e}};async function wl(e,t={}){let n,r=t.tools||bl;if(await Tl(async e=>Promise.all(r.map(async t=>{if(await t.isMonorepoRoot(e))return{tool:t.type,rootDir:e}})).then(e=>e.find(e=>e)).then(t=>{if(t)return n=t,e}),e),n)return n;if(!r.includes(_l))throw new Cl(e);let i=await Tl(async e=>{try{return await H.access(G.join(e,`package.json`)),e}catch(e){if(!xl(e))throw e}},e);if(!i)throw new Sl(e);return{tool:_l.type,rootDir:i}}async function Tl(e,t){let n=G.resolve(t),{root:r}=G.parse(n);for(;n&&n!==r;){let t=await e(n);if(t)return G.resolve(n,t);n=G.dirname(n)}}var El=class extends Error{constructor(e){super(`The following package.jsons are missing the "name" field:\n${e.join(` +`)}`),this.directories=e}};async function Dl(e,t){let n=await wl(e,t),r=(t?.tools||bl).find(e=>e.type===n.tool);if(!r)throw Error(`Could not find ${n.tool} tool`);let i=await r.getPackages(n.rootDir);return Ol(i),i}function Ol(e){let t=[];for(let n of e.packages)n.packageJson.name||t.push(G.join(n.relativeDir,`package.json`));if(t.length>0)throw t.sort(),new El(t)}function kl(){return 8388608}function Al(){let e=process.env.ACTIONS_RUNTIME_TOKEN;if(!e)throw Error(`Unable to get the ACTIONS_RUNTIME_TOKEN env variable`);return e}function jl(){let e=process.env.ACTIONS_RESULTS_URL;if(!e)throw Error(`Unable to get the ACTIONS_RESULTS_URL env variable`);return new URL(e).origin}function Ml(){let e=new URL(process.env.GITHUB_SERVER_URL||`https://github.com`).hostname.trimEnd().toUpperCase(),t=e===`GITHUB.COM`,n=e.endsWith(`.GHE.COM`),r=e.endsWith(`.LOCALHOST`);return!t&&!n&&!r}function Nl(){let e=process.env.GITHUB_WORKSPACE;if(!e)throw Error(`Unable to get the GITHUB_WORKSPACE env variable`);return e}function Pl(){let e=n.cpus().length,t=32;if(e>4){let n=16*e;t=n>300?300:n}let r=process.env.ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY;if(r){let e=parseInt(r);if(isNaN(e)||e<1)throw Error(`Invalid value set for ACTIONS_ARTIFACT_UPLOAD_CONCURRENCY env variable`);return e{Object.defineProperty(e,"__esModule",{value:!0}),e.isJsonObject=e.typeofJsonValue=void 0;function t(e){let t=typeof e;if(t==`object`){if(Array.isArray(e))return`array`;if(e===null)return`null`}return t}e.typeofJsonValue=t;function n(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}e.isJsonObject=n})),Rl=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.base64encode=e.base64decode=void 0;let t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`.split(``),n=[];for(let e=0;e>4,s=o,a=2;break;case 2:r[i++]=(s&15)<<4|(o&60)>>2,s=o,a=3;break;case 3:r[i++]=(s&3)<<6|o,a=0}}if(a==1)throw Error(`invalid base64 string.`);return r.subarray(0,i)}e.base64decode=r;function i(e){let n=``,r=0,i,a=0;for(let o=0;o>2],a=(i&3)<<4,r=1;break;case 1:n+=t[a|i>>4],a=(i&15)<<2,r=2;break;case 2:n+=t[a|i>>6],n+=t[i&63],r=0}return r&&(n+=t[a],n+=`=`,r==1&&(n+=`=`)),n}e.base64encode=i})),zl=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.utf8read=void 0;let t=e=>String.fromCharCode.apply(String,e);function n(e){if(e.length<1)return``;let n=0,r=[],i=[],a=0,o,s=e.length;for(;n191&&o<224?i[a++]=(o&31)<<6|e[n++]&63:o>239&&o<365?(o=((o&7)<<18|(e[n++]&63)<<12|(e[n++]&63)<<6|e[n++]&63)-65536,i[a++]=55296+(o>>10),i[a++]=56320+(o&1023)):i[a++]=(o&15)<<12|(e[n++]&63)<<6|e[n++]&63,a>8191&&(r.push(t(i)),a=0);return r.length?(a&&r.push(t(i.slice(0,a))),r.join(``)):t(i.slice(0,a))}e.utf8read=n})),Bl=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.WireType=e.mergeBinaryOptions=e.UnknownFieldHandler=void 0,(function(e){e.symbol=Symbol.for(`protobuf-ts/unknown`),e.onRead=(n,r,i,a,o)=>{(t(r)?r[e.symbol]:r[e.symbol]=[]).push({no:i,wireType:a,data:o})},e.onWrite=(t,n,r)=>{for(let{no:t,wireType:i,data:a}of e.list(n))r.tag(t,i).raw(a)},e.list=(n,r)=>{if(t(n)){let t=n[e.symbol];return r?t.filter(e=>e.no==r):t}return[]},e.last=(t,n)=>e.list(t,n).slice(-1)[0];let t=t=>t&&Array.isArray(t[e.symbol])})(e.UnknownFieldHandler||={});function t(e,t){return Object.assign(Object.assign({},e),t)}e.mergeBinaryOptions=t,(function(e){e[e.Varint=0]=`Varint`,e[e.Bit64=1]=`Bit64`,e[e.LengthDelimited=2]=`LengthDelimited`,e[e.StartGroup=3]=`StartGroup`,e[e.EndGroup=4]=`EndGroup`,e[e.Bit32=5]=`Bit32`})(e.WireType||={})})),Vl=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.varint32read=e.varint32write=e.int64toString=e.int64fromString=e.varint64write=e.varint64read=void 0;function t(){let e=0,t=0;for(let n=0;n<28;n+=7){let r=this.buf[this.pos++];if(e|=(r&127)<>4,!(n&128))return this.assertBounds(),[e,t];for(let n=3;n<=31;n+=7){let r=this.buf[this.pos++];if(t|=(r&127)<>>r,a=!(!(i>>>7)&&t==0),o=(a?i|128:i)&255;if(n.push(o),!a)return}let r=e>>>28&15|(t&7)<<4,i=!!(t>>3);if(n.push((i?r|128:r)&255),i){for(let e=3;e<31;e+=7){let r=t>>>e,i=!!(r>>>7),a=(i?r|128:r)&255;if(n.push(a),!i)return}n.push(t>>>31&1)}}e.varint64write=n;let r=4294967296;function i(e){let t=e[0]==`-`;t&&(e=e.slice(1));let n=1e6,i=0,a=0;function o(t,o){let s=Number(e.slice(t,o));a*=n,i=i*n+s,i>=r&&(a+=i/r|0,i%=r)}return o(-24,-18),o(-18,-12),o(-12,-6),o(-6),[t,i,a]}e.int64fromString=i;function a(e,t){if(t>>>0<=2097151)return``+(r*t+(e>>>0));let n=e&16777215,i=(e>>>24|t<<8)>>>0&16777215,a=t>>16&65535,o=n+i*6777216+a*6710656,s=i+a*8147497,c=a*2,l=1e7;o>=l&&(s+=Math.floor(o/l),o%=l),s>=l&&(c+=Math.floor(s/l),s%=l);function u(e,t){let n=e?String(e):``;return t?`0000000`.slice(n.length)+n:n}return u(c,0)+u(s,c)+u(o,1)}e.int64toString=a;function o(e,t){if(e>=0){for(;e>127;)t.push(e&127|128),e>>>=7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e>>=7;t.push(1)}}e.varint32write=o;function s(){let e=this.buf[this.pos++],t=e&127;if(!(e&128)||(e=this.buf[this.pos++],t|=(e&127)<<7,!(e&128))||(e=this.buf[this.pos++],t|=(e&127)<<14,!(e&128))||(e=this.buf[this.pos++],t|=(e&127)<<21,!(e&128)))return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let t=5;e&128&&t<10;t++)e=this.buf[this.pos++];if(e&128)throw Error(`invalid varint`);return this.assertBounds(),t>>>0}e.varint32read=s})),Hl=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.PbLong=e.PbULong=e.detectBi=void 0;let t=Vl(),n;function r(){let e=new DataView(new ArrayBuffer(8));n=globalThis.BigInt!==void 0&&typeof e.getBigInt64==`function`&&typeof e.getBigUint64==`function`&&typeof e.setBigInt64==`function`&&typeof e.setBigUint64==`function`?{MIN:BigInt(`-9223372036854775808`),MAX:BigInt(`9223372036854775807`),UMIN:BigInt(`0`),UMAX:BigInt(`18446744073709551615`),C:BigInt,V:e}:void 0}e.detectBi=r,r();function i(e){if(!e)throw Error(`BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support`)}let a=/^-?[0-9]+$/,o=4294967296,s=2147483648;var c=class{constructor(e,t){this.lo=e|0,this.hi=t|0}isZero(){return this.lo==0&&this.hi==0}toNumber(){let e=this.hi*o+(this.lo>>>0);if(!Number.isSafeInteger(e))throw Error(`cannot convert to safe number`);return e}},l=class e extends c{static from(r){if(n)switch(typeof r){case`string`:if(r==`0`)return this.ZERO;if(r==``)throw Error(`string is no integer`);r=n.C(r);case`number`:if(r===0)return this.ZERO;r=n.C(r);case`bigint`:if(!r)return this.ZERO;if(rn.UMAX)throw Error(`ulong too large`);return n.V.setBigUint64(0,r,!0),new e(n.V.getInt32(0,!0),n.V.getInt32(4,!0))}else switch(typeof r){case`string`:if(r==`0`)return this.ZERO;if(r=r.trim(),!a.test(r))throw Error(`string is no integer`);let[n,i,s]=t.int64fromString(r);if(n)throw Error(`signed value for ulong`);return new e(i,s);case`number`:if(r==0)return this.ZERO;if(!Number.isSafeInteger(r))throw Error(`number is no integer`);if(r<0)throw Error(`signed value for ulong`);return new e(r,r/o)}throw Error(`unknown value `+typeof r)}toString(){return n?this.toBigInt().toString():t.int64toString(this.lo,this.hi)}toBigInt(){return i(n),n.V.setInt32(0,this.lo,!0),n.V.setInt32(4,this.hi,!0),n.V.getBigUint64(0,!0)}};e.PbULong=l,l.ZERO=new l(0,0);var u=class e extends c{static from(r){if(n)switch(typeof r){case`string`:if(r==`0`)return this.ZERO;if(r==``)throw Error(`string is no integer`);r=n.C(r);case`number`:if(r===0)return this.ZERO;r=n.C(r);case`bigint`:if(!r)return this.ZERO;if(rn.MAX)throw Error(`signed long too large`);return n.V.setBigInt64(0,r,!0),new e(n.V.getInt32(0,!0),n.V.getInt32(4,!0))}else switch(typeof r){case`string`:if(r==`0`)return this.ZERO;if(r=r.trim(),!a.test(r))throw Error(`string is no integer`);let[n,i,c]=t.int64fromString(r);if(n){if(c>s||c==s&&i!=0)throw Error(`signed long too small`)}else if(c>=s)throw Error(`signed long too large`);let l=new e(i,c);return n?l.negate():l;case`number`:if(r==0)return this.ZERO;if(!Number.isSafeInteger(r))throw Error(`number is no integer`);return r>0?new e(r,r/o):new e(-r,-r/o).negate()}throw Error(`unknown value `+typeof r)}isNegative(){return!!(this.hi&s)}negate(){let t=~this.hi,n=this.lo;return n?n=~n+1:t+=1,new e(n,t)}toString(){if(n)return this.toBigInt().toString();if(this.isNegative()){let e=this.negate();return`-`+t.int64toString(e.lo,e.hi)}return t.int64toString(this.lo,this.hi)}toBigInt(){return i(n),n.V.setInt32(0,this.lo,!0),n.V.setInt32(4,this.hi,!0),n.V.getBigInt64(0,!0)}};e.PbLong=u,u.ZERO=new u(0,0)})),Ul=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BinaryReader=e.binaryReadOptions=void 0;let t=Bl(),n=Hl(),r=Vl(),i={readUnknownField:!0,readerFactory:e=>new o(e)};function a(e){return e?Object.assign(Object.assign({},i),e):i}e.binaryReadOptions=a;var o=class{constructor(e,t){this.varint64=r.varint64read,this.uint32=r.varint32read,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=t??new TextDecoder(`utf-8`,{fatal:!0,ignoreBOM:!0})}tag(){let e=this.uint32(),t=e>>>3,n=e&7;if(t<=0||n<0||n>5)throw Error(`illegal tag: field no `+t+` wire type `+n);return[t,n]}skip(e){let n=this.pos;switch(e){case t.WireType.Varint:for(;this.buf[this.pos++]&128;);break;case t.WireType.Bit64:this.pos+=4;case t.WireType.Bit32:this.pos+=4;break;case t.WireType.LengthDelimited:let n=this.uint32();this.pos+=n;break;case t.WireType.StartGroup:let r;for(;(r=this.tag()[1])!==t.WireType.EndGroup;)this.skip(r);break;default:throw Error(`cant skip wire type `+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw RangeError(`premature EOF`)}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return new n.PbLong(...this.varint64())}uint64(){return new n.PbULong(...this.varint64())}sint64(){let[e,t]=this.varint64(),r=-(e&1);return e=(e>>>1|(t&1)<<31)^r,t=t>>>1^r,new n.PbLong(e,t)}bool(){let[e,t]=this.varint64();return e!==0||t!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return new n.PbULong(this.sfixed32(),this.sfixed32())}sfixed64(){return new n.PbLong(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}};e.BinaryReader=o})),Wl=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.assertFloat32=e.assertUInt32=e.assertInt32=e.assertNever=e.assert=void 0;function t(e,t){if(!e)throw Error(t)}e.assert=t;function n(e,t){throw Error(t??`Unexpected object: `+e)}e.assertNever=n;function r(e){if(typeof e!=`number`)throw Error(`invalid int 32: `+typeof e);if(!Number.isInteger(e)||e>2147483647||e<-2147483648)throw Error(`invalid int 32: `+e)}e.assertInt32=r;function i(e){if(typeof e!=`number`)throw Error(`invalid uint 32: `+typeof e);if(!Number.isInteger(e)||e>4294967295||e<0)throw Error(`invalid uint 32: `+e)}e.assertUInt32=i;function a(e){if(typeof e!=`number`)throw Error(`invalid float 32: `+typeof e);if(Number.isFinite(e)&&(e>34028234663852886e22||e<-34028234663852886e22))throw Error(`invalid float 32: `+e)}e.assertFloat32=a})),Gl=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.BinaryWriter=e.binaryWriteOptions=void 0;let t=Hl(),n=Vl(),r=Wl(),i={writeUnknownFields:!0,writerFactory:()=>new o};function a(e){return e?Object.assign(Object.assign({},i),e):i}e.binaryWriteOptions=a;var o=class{constructor(e){this.stack=[],this.textEncoder=e??new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let t=0;t>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(r.assertUInt32(e);e>127;)this.buf.push(e&127|128),e>>>=7;return this.buf.push(e),this}int32(e){return r.assertInt32(e),n.varint32write(e,this.buf),this}bool(e){return this.buf.push(+!!e),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){r.assertFloat32(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){r.assertUInt32(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){r.assertInt32(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return r.assertInt32(e),e=(e<<1^e>>31)>>>0,n.varint32write(e,this.buf),this}sfixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),i=t.PbLong.from(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}fixed64(e){let n=new Uint8Array(8),r=new DataView(n.buffer),i=t.PbULong.from(e);return r.setInt32(0,i.lo,!0),r.setInt32(4,i.hi,!0),this.raw(n)}int64(e){let r=t.PbLong.from(e);return n.varint64write(r.lo,r.hi,this.buf),this}sint64(e){let r=t.PbLong.from(e),i=r.hi>>31,a=r.lo<<1^i,o=(r.hi<<1|r.lo>>>31)^i;return n.varint64write(a,o,this.buf),this}uint64(e){let r=t.PbULong.from(e);return n.varint64write(r.lo,r.hi,this.buf),this}};e.BinaryWriter=o})),Kl=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.mergeJsonOptions=e.jsonWriteOptions=e.jsonReadOptions=void 0;let t={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0},n={ignoreUnknownFields:!1};function r(e){return e?Object.assign(Object.assign({},n),e):n}e.jsonReadOptions=r;function i(e){return e?Object.assign(Object.assign({},t),e):t}e.jsonWriteOptions=i;function a(e,t){let n=Object.assign(Object.assign({},e),t);return n.typeRegistry=[...e?.typeRegistry??[],...t?.typeRegistry??[]],n}e.mergeJsonOptions=a})),ql=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MESSAGE_TYPE=void 0,e.MESSAGE_TYPE=Symbol.for(`protobuf-ts/message-type`)})),Jl=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.lowerCamelCase=void 0;function t(e){let t=!1,n=[];for(let r=0;r{Object.defineProperty(e,"__esModule",{value:!0}),e.readMessageOption=e.readFieldOption=e.readFieldOptions=e.normalizeFieldInfo=e.RepeatType=e.LongType=e.ScalarType=void 0;let t=Jl();(function(e){e[e.DOUBLE=1]=`DOUBLE`,e[e.FLOAT=2]=`FLOAT`,e[e.INT64=3]=`INT64`,e[e.UINT64=4]=`UINT64`,e[e.INT32=5]=`INT32`,e[e.FIXED64=6]=`FIXED64`,e[e.FIXED32=7]=`FIXED32`,e[e.BOOL=8]=`BOOL`,e[e.STRING=9]=`STRING`,e[e.BYTES=12]=`BYTES`,e[e.UINT32=13]=`UINT32`,e[e.SFIXED32=15]=`SFIXED32`,e[e.SFIXED64=16]=`SFIXED64`,e[e.SINT32=17]=`SINT32`,e[e.SINT64=18]=`SINT64`})(e.ScalarType||={}),(function(e){e[e.BIGINT=0]=`BIGINT`,e[e.STRING=1]=`STRING`,e[e.NUMBER=2]=`NUMBER`})(e.LongType||={});var n;(function(e){e[e.NO=0]=`NO`,e[e.PACKED=1]=`PACKED`,e[e.UNPACKED=2]=`UNPACKED`})(n=e.RepeatType||={});function r(e){return e.localName=e.localName??t.lowerCamelCase(e.name),e.jsonName=e.jsonName??t.lowerCamelCase(e.name),e.repeat=e.repeat??n.NO,e.opt=e.opt??(!e.repeat&&!e.oneof&&e.kind==`message`),e}e.normalizeFieldInfo=r;function i(e,t,n,r){let i=e.fields.find((e,n)=>e.localName==t||n==t)?.options;return i&&i[n]?r.fromJson(i[n]):void 0}e.readFieldOptions=i;function a(e,t,n,r){let i=e.fields.find((e,n)=>e.localName==t||n==t)?.options;if(!i)return;let a=i[n];return a===void 0?a:r?r.fromJson(a):a}e.readFieldOption=a;function o(e,t,n){let r=e.options[t];return r===void 0?r:n?n.fromJson(r):r}e.readMessageOption=o})),Xl=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getSelectedOneofValue=e.clearOneofValue=e.setUnknownOneofValue=e.setOneofValue=e.getOneofValue=e.isOneofGroup=void 0;function t(e){if(typeof e!=`object`||!e||!e.hasOwnProperty(`oneofKind`))return!1;switch(typeof e.oneofKind){case`string`:return e[e.oneofKind]!==void 0&&Object.keys(e).length==2;case`undefined`:return Object.keys(e).length==1;default:return!1}}e.isOneofGroup=t;function n(e,t){return e[t]}e.getOneofValue=n;function r(e,t,n){e.oneofKind!==void 0&&delete e[e.oneofKind],e.oneofKind=t,n!==void 0&&(e[t]=n)}e.setOneofValue=r;function i(e,t,n){e.oneofKind!==void 0&&delete e[e.oneofKind],e.oneofKind=t,n!==void 0&&t!==void 0&&(e[t]=n)}e.setUnknownOneofValue=i;function a(e){e.oneofKind!==void 0&&delete e[e.oneofKind],e.oneofKind=void 0}e.clearOneofValue=a;function o(e){if(e.oneofKind!==void 0)return e[e.oneofKind]}e.getSelectedOneofValue=o})),Zl=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ReflectionTypeCheck=void 0;let t=Yl(),n=Xl();e.ReflectionTypeCheck=class{constructor(e){this.fields=e.fields??[]}prepare(){if(this.data)return;let e=[],t=[],n=[];for(let r of this.fields)if(r.oneof)n.includes(r.oneof)||(n.push(r.oneof),e.push(r.oneof),t.push(r.oneof));else switch(t.push(r.localName),r.kind){case`scalar`:case`enum`:(!r.opt||r.repeat)&&e.push(r.localName);break;case`message`:r.repeat&&e.push(r.localName);break;case`map`:e.push(r.localName)}this.data={req:e,known:t,oneofs:Object.values(n)}}is(e,t,r=!1){if(t<0)return!0;if(typeof e!=`object`||!e)return!1;this.prepare();let i=Object.keys(e),a=this.data;if(i.length!i.includes(e))||!r&&i.some(e=>!a.known.includes(e)))return!1;if(t<1)return!0;for(let i of a.oneofs){let a=e[i];if(!n.isOneofGroup(a))return!1;if(a.oneofKind===void 0)continue;let o=this.fields.find(e=>e.localName===a.oneofKind);if(!o||!this.field(a[a.oneofKind],o,r,t))return!1}for(let n of this.fields)if(n.oneof===void 0&&!this.field(e[n.localName],n,r,t))return!1;return!0}field(e,n,r,i){let a=n.repeat;switch(n.kind){case`scalar`:return e===void 0?n.opt:a?this.scalars(e,n.T,i,n.L):this.scalar(e,n.T,n.L);case`enum`:return e===void 0?n.opt:a?this.scalars(e,t.ScalarType.INT32,i):this.scalar(e,t.ScalarType.INT32);case`message`:return e===void 0?!0:a?this.messages(e,n.T(),r,i):this.message(e,n.T(),r,i);case`map`:if(typeof e!=`object`||!e)return!1;if(i<2)return!0;if(!this.mapKeys(e,n.K,i))return!1;switch(n.V.kind){case`scalar`:return this.scalars(Object.values(e),n.V.T,i,n.V.L);case`enum`:return this.scalars(Object.values(e),t.ScalarType.INT32,i);case`message`:return this.messages(Object.values(e),n.V.T(),r,i)}}return!0}message(e,t,n,r){return n?t.isAssignable(e,r):t.is(e,r)}messages(e,t,n,r){if(!Array.isArray(e))return!1;if(r<2)return!0;if(n){for(let n=0;nparseInt(e)),n,r);case t.ScalarType.BOOL:return this.scalars(i.slice(0,r).map(e=>e==`true`||e!=`false`&&e),n,r);default:return this.scalars(i,n,r,t.LongType.STRING)}}}})),Ql=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.reflectionLongConvert=void 0;let t=Yl();function n(e,n){switch(n){case t.LongType.BIGINT:return e.toBigInt();case t.LongType.NUMBER:return e.toNumber();default:return e.toString()}}e.reflectionLongConvert=n})),$l=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ReflectionJsonReader=void 0;let t=Ll(),n=Rl(),r=Yl(),i=Hl(),a=Wl(),o=Ql();e.ReflectionJsonReader=class{constructor(e){this.info=e}prepare(){if(this.fMap===void 0){this.fMap={};let e=this.info.fields??[];for(let t of e)this.fMap[t.name]=t,this.fMap[t.jsonName]=t,this.fMap[t.localName]=t}}assert(e,n,r){if(!e){let e=t.typeofJsonValue(r);throw(e==`number`||e==`boolean`)&&(e=r.toString()),Error(`Cannot parse JSON ${e} for ${this.info.typeName}#${n}`)}}read(e,n,i){this.prepare();let a=[];for(let[o,s]of Object.entries(e)){let e=this.fMap[o];if(!e){if(!i.ignoreUnknownFields)throw Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${o}`);continue}let c=e.localName,l;if(e.oneof){if(s===null&&(e.kind!==`enum`||e.T()[0]!==`google.protobuf.NullValue`))continue;if(a.includes(e.oneof))throw Error(`Multiple members of the oneof group "${e.oneof}" of ${this.info.typeName} are present in JSON.`);a.push(e.oneof),l=n[e.oneof]={oneofKind:c}}else l=n;if(e.kind==`map`){if(s===null)continue;this.assert(t.isJsonObject(s),e.name,s);let n=l[c];for(let[t,a]of Object.entries(s)){this.assert(a!==null,e.name+` map value`,null);let o;switch(e.V.kind){case`message`:o=e.V.T().internalJsonRead(a,i);break;case`enum`:if(o=this.enum(e.V.T(),a,e.name,i.ignoreUnknownFields),o===!1)continue;break;case`scalar`:o=this.scalar(a,e.V.T,e.V.L,e.name)}this.assert(o!==void 0,e.name+` map value`,a);let s=t;e.K==r.ScalarType.BOOL&&(s=s==`true`||s!=`false`&&s),s=this.scalar(s,e.K,r.LongType.STRING,e.name).toString(),n[s]=o}}else if(e.repeat){if(s===null)continue;this.assert(Array.isArray(s),e.name,s);let t=l[c];for(let n of s){this.assert(n!==null,e.name,null);let r;switch(e.kind){case`message`:r=e.T().internalJsonRead(n,i);break;case`enum`:if(r=this.enum(e.T(),n,e.name,i.ignoreUnknownFields),r===!1)continue;break;case`scalar`:r=this.scalar(n,e.T,e.L,e.name)}this.assert(r!==void 0,e.name,s),t.push(r)}}else switch(e.kind){case`message`:if(s===null&&e.T().typeName!=`google.protobuf.Value`){this.assert(e.oneof===void 0,e.name+` (oneof member)`,null);continue}l[c]=e.T().internalJsonRead(s,i,l[c]);break;case`enum`:if(s===null)continue;let t=this.enum(e.T(),s,e.name,i.ignoreUnknownFields);if(t===!1)continue;l[c]=t;break;case`scalar`:if(s===null)continue;l[c]=this.scalar(s,e.T,e.L,e.name)}}}enum(e,t,n,r){if(e[0]==`google.protobuf.NullValue`&&a.assert(t===null||t===`NULL_VALUE`,`Unable to parse field ${this.info.typeName}#${n}, enum ${e[0]} only accepts null.`),t===null)return 0;switch(typeof t){case`number`:return a.assert(Number.isInteger(t),`Unable to parse field ${this.info.typeName}#${n}, enum can only be integral number, got ${t}.`),t;case`string`:let i=t;e[2]&&t.substring(0,e[2].length)===e[2]&&(i=t.substring(e[2].length));let o=e[1][i];return o===void 0&&r?!1:(a.assert(typeof o==`number`,`Unable to parse field ${this.info.typeName}#${n}, enum ${e[0]} has no value for "${t}".`),o)}a.assert(!1,`Unable to parse field ${this.info.typeName}#${n}, cannot parse enum value from ${typeof t}".`)}scalar(e,t,s,c){let l;try{switch(t){case r.ScalarType.DOUBLE:case r.ScalarType.FLOAT:if(e===null)return 0;if(e===`NaN`)return NaN;if(e===`Infinity`)return 1/0;if(e===`-Infinity`)return-1/0;if(e===``){l=`empty string`;break}if(typeof e==`string`&&e.trim().length!==e.length){l=`extra whitespace`;break}if(typeof e!=`string`&&typeof e!=`number`)break;let c=Number(e);if(Number.isNaN(c)){l=`not a number`;break}if(!Number.isFinite(c)){l=`too large or small`;break}return t==r.ScalarType.FLOAT&&a.assertFloat32(c),c;case r.ScalarType.INT32:case r.ScalarType.FIXED32:case r.ScalarType.SFIXED32:case r.ScalarType.SINT32:case r.ScalarType.UINT32:if(e===null)return 0;let u;if(typeof e==`number`?u=e:e===``?l=`empty string`:typeof e==`string`&&(e.trim().length===e.length?u=Number(e):l=`extra whitespace`),u===void 0)break;return t==r.ScalarType.UINT32?a.assertUInt32(u):a.assertInt32(u),u;case r.ScalarType.INT64:case r.ScalarType.SFIXED64:case r.ScalarType.SINT64:if(e===null)return o.reflectionLongConvert(i.PbLong.ZERO,s);if(typeof e!=`number`&&typeof e!=`string`)break;return o.reflectionLongConvert(i.PbLong.from(e),s);case r.ScalarType.FIXED64:case r.ScalarType.UINT64:if(e===null)return o.reflectionLongConvert(i.PbULong.ZERO,s);if(typeof e!=`number`&&typeof e!=`string`)break;return o.reflectionLongConvert(i.PbULong.from(e),s);case r.ScalarType.BOOL:if(e===null)return!1;if(typeof e!=`boolean`)break;return e;case r.ScalarType.STRING:if(e===null)return``;if(typeof e!=`string`){l=`extra whitespace`;break}return e;case r.ScalarType.BYTES:if(e===null||e===``)return new Uint8Array;if(typeof e!=`string`)break;return n.base64decode(e)}}catch(e){l=e.message}this.assert(!1,c+(l?` - `+l:``),e)}}})),eu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ReflectionJsonWriter=void 0;let t=Rl(),n=Hl(),r=Yl(),i=Wl();e.ReflectionJsonWriter=class{constructor(e){this.fields=e.fields??[]}write(e,t){let n={},r=e;for(let e of this.fields){if(!e.oneof){let i=this.field(e,r[e.localName],t);i!==void 0&&(n[t.useProtoFieldName?e.name:e.jsonName]=i);continue}let a=r[e.oneof];if(a.oneofKind!==e.localName)continue;let o=e.kind==`scalar`||e.kind==`enum`?Object.assign(Object.assign({},t),{emitDefaultValues:!0}):t,s=this.field(e,a[e.localName],o);i.assert(s!==void 0),n[t.useProtoFieldName?e.name:e.jsonName]=s}return n}field(e,t,n){let r;if(e.kind==`map`){i.assert(typeof t==`object`&&!!t);let a={};switch(e.V.kind){case`scalar`:for(let[n,r]of Object.entries(t)){let t=this.scalar(e.V.T,r,e.name,!1,!0);i.assert(t!==void 0),a[n.toString()]=t}break;case`message`:let r=e.V.T();for(let[o,s]of Object.entries(t)){let t=this.message(r,s,e.name,n);i.assert(t!==void 0),a[o.toString()]=t}break;case`enum`:let o=e.V.T();for(let[r,s]of Object.entries(t)){i.assert(s===void 0||typeof s==`number`);let t=this.enum(o,s,e.name,!1,!0,n.enumAsInteger);i.assert(t!==void 0),a[r.toString()]=t}}(n.emitDefaultValues||Object.keys(a).length>0)&&(r=a)}else if(e.repeat){i.assert(Array.isArray(t));let a=[];switch(e.kind){case`scalar`:for(let n=0;n0||n.emitDefaultValues)&&(r=a)}else switch(e.kind){case`scalar`:r=this.scalar(e.T,t,e.name,e.opt,n.emitDefaultValues);break;case`enum`:r=this.enum(e.T(),t,e.name,e.opt,n.emitDefaultValues,n.enumAsInteger);break;case`message`:r=this.message(e.T(),t,e.name,n)}return r}enum(e,t,n,r,a,o){if(e[0]==`google.protobuf.NullValue`)return!a&&!r?void 0:null;if(t===void 0){i.assert(r);return}if(!(t===0&&!a&&!r))return i.assert(typeof t==`number`),i.assert(Number.isInteger(t)),o||!e[1].hasOwnProperty(t)?t:e[2]?e[2]+e[1][t]:e[1][t]}message(e,t,n,r){return t===void 0?r.emitDefaultValues?null:void 0:e.internalJsonWrite(t,r)}scalar(e,a,o,s,c){if(a===void 0){i.assert(s);return}let l=c||s;switch(e){case r.ScalarType.INT32:case r.ScalarType.SFIXED32:case r.ScalarType.SINT32:return a===0?l?0:void 0:(i.assertInt32(a),a);case r.ScalarType.FIXED32:case r.ScalarType.UINT32:return a===0?l?0:void 0:(i.assertUInt32(a),a);case r.ScalarType.FLOAT:i.assertFloat32(a);case r.ScalarType.DOUBLE:return a===0?l?0:void 0:(i.assert(typeof a==`number`),Number.isNaN(a)?`NaN`:a===1/0?`Infinity`:a===-1/0?`-Infinity`:a);case r.ScalarType.STRING:return a===``?l?``:void 0:(i.assert(typeof a==`string`),a);case r.ScalarType.BOOL:return a===!1?!l&&void 0:(i.assert(typeof a==`boolean`),a);case r.ScalarType.UINT64:case r.ScalarType.FIXED64:i.assert(typeof a==`number`||typeof a==`string`||typeof a==`bigint`);let e=n.PbULong.from(a);return e.isZero()&&!l?void 0:e.toString();case r.ScalarType.INT64:case r.ScalarType.SFIXED64:case r.ScalarType.SINT64:i.assert(typeof a==`number`||typeof a==`string`||typeof a==`bigint`);let o=n.PbLong.from(a);return o.isZero()&&!l?void 0:o.toString();case r.ScalarType.BYTES:return i.assert(a instanceof Uint8Array),a.byteLength?t.base64encode(a):l?``:void 0}}}})),tu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.reflectionScalarDefault=void 0;let t=Yl(),n=Ql(),r=Hl();function i(e,i=t.LongType.STRING){switch(e){case t.ScalarType.BOOL:return!1;case t.ScalarType.UINT64:case t.ScalarType.FIXED64:return n.reflectionLongConvert(r.PbULong.ZERO,i);case t.ScalarType.INT64:case t.ScalarType.SFIXED64:case t.ScalarType.SINT64:return n.reflectionLongConvert(r.PbLong.ZERO,i);case t.ScalarType.DOUBLE:case t.ScalarType.FLOAT:return 0;case t.ScalarType.BYTES:return new Uint8Array;case t.ScalarType.STRING:return``;default:return 0}}e.reflectionScalarDefault=i})),nu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ReflectionBinaryReader=void 0;let t=Bl(),n=Yl(),r=Ql(),i=tu();e.ReflectionBinaryReader=class{constructor(e){this.info=e}prepare(){if(!this.fieldNoToField){let e=this.info.fields??[];this.fieldNoToField=new Map(e.map(e=>[e.no,e]))}}read(e,r,i,a){this.prepare();let o=a===void 0?e.len:e.pos+a;for(;e.pos{Object.defineProperty(e,"__esModule",{value:!0}),e.ReflectionBinaryWriter=void 0;let t=Bl(),n=Yl(),r=Wl(),i=Hl();e.ReflectionBinaryWriter=class{constructor(e){this.info=e}prepare(){if(!this.fields){let e=this.info.fields?this.info.fields.concat():[];this.fields=e.sort((e,t)=>e.no-t.no)}}write(e,i,a){this.prepare();for(let t of this.fields){let o,s,c=t.repeat,l=t.localName;if(t.oneof){let n=e[t.oneof];if(n.oneofKind!==l)continue;o=n[l],s=!0}else o=e[l],s=!1;switch(t.kind){case`scalar`:case`enum`:let e=t.kind==`enum`?n.ScalarType.INT32:t.T;if(c){if(r.assert(Array.isArray(o)),c==n.RepeatType.PACKED)this.packed(i,e,t.no,o);else for(let n of o)this.scalar(i,e,t.no,n,!0)}else o===void 0?r.assert(t.opt):this.scalar(i,e,t.no,o,s||t.opt);break;case`message`:if(c){r.assert(Array.isArray(o));for(let e of o)this.message(i,a,t.T(),t.no,e)}else this.message(i,a,t.T(),t.no,o);break;case`map`:r.assert(typeof o==`object`&&!!o);for(let[e,n]of Object.entries(o))this.mapEntry(i,a,t,e,n)}}let o=a.writeUnknownFields;o!==!1&&(o===!0?t.UnknownFieldHandler.onWrite:o)(this.info.typeName,e,i)}mapEntry(e,i,a,o,s){e.tag(a.no,t.WireType.LengthDelimited),e.fork();let c=o;switch(a.K){case n.ScalarType.INT32:case n.ScalarType.FIXED32:case n.ScalarType.UINT32:case n.ScalarType.SFIXED32:case n.ScalarType.SINT32:c=Number.parseInt(o);break;case n.ScalarType.BOOL:r.assert(o==`true`||o==`false`),c=o==`true`}switch(this.scalar(e,a.K,1,c,!0),a.V.kind){case`scalar`:this.scalar(e,a.V.T,2,s,!0);break;case`enum`:this.scalar(e,n.ScalarType.INT32,2,s,!0);break;case`message`:this.message(e,i,a.V.T(),2,s)}e.join()}message(e,n,r,i,a){a!==void 0&&(r.internalBinaryWrite(a,e.tag(i,t.WireType.LengthDelimited).fork(),n),e.join())}scalar(e,t,n,r,i){let[a,o,s]=this.scalarInfo(t,r);(!s||i)&&(e.tag(n,a),e[o](r))}packed(e,i,a,o){if(!o.length)return;r.assert(i!==n.ScalarType.BYTES&&i!==n.ScalarType.STRING),e.tag(a,t.WireType.LengthDelimited),e.fork();let[,s]=this.scalarInfo(i);for(let t=0;t{Object.defineProperty(e,"__esModule",{value:!0}),e.reflectionCreate=void 0;let t=tu(),n=ql();function r(e){let r=e.messagePrototype?Object.create(e.messagePrototype):Object.defineProperty({},n.MESSAGE_TYPE,{value:e});for(let n of e.fields){let e=n.localName;if(!n.opt){if(n.oneof)r[n.oneof]={oneofKind:void 0};else if(n.repeat)r[e]=[];else switch(n.kind){case`scalar`:r[e]=t.reflectionScalarDefault(n.T,n.L);break;case`enum`:r[e]=0;break;case`map`:r[e]={};break}}}return r}e.reflectionCreate=r})),au=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.reflectionMergePartial=void 0;function t(e,t,n){let r,i=n,a;for(let n of e.fields){let e=n.localName;if(n.oneof){let o=i[n.oneof];if(o?.oneofKind==null)continue;if(r=o[e],a=t[n.oneof],a.oneofKind=o.oneofKind,r==null){delete a[e];continue}}else if(r=i[e],a=t,r==null)continue;switch(n.repeat&&(a[e].length=r.length),n.kind){case`scalar`:case`enum`:if(n.repeat)for(let t=0;t{Object.defineProperty(e,"__esModule",{value:!0}),e.reflectionEquals=void 0;let t=Yl();function n(e,n,s){if(n===s)return!0;if(!n||!s)return!1;for(let c of e.fields){let e=c.localName,l=c.oneof?n[c.oneof][e]:n[e],u=c.oneof?s[c.oneof][e]:s[e];switch(c.kind){case`enum`:case`scalar`:let e=c.kind==`enum`?t.ScalarType.INT32:c.T;if(!(c.repeat?a(e,l,u):i(e,l,u)))return!1;break;case`map`:if(!(c.V.kind==`message`?o(c.V.T(),r(l),r(u)):a(c.V.kind==`enum`?t.ScalarType.INT32:c.V.T,r(l),r(u))))return!1;break;case`message`:let n=c.T();if(!(c.repeat?o(n,l,u):n.equals(l,u)))return!1}}return!0}e.reflectionEquals=n;let r=Object.values;function i(e,n,r){if(n===r)return!0;if(e!==t.ScalarType.BYTES)return!1;let i=n,a=r;if(i.length!==a.length)return!1;for(let e=0;e{Object.defineProperty(e,"__esModule",{value:!0}),e.MessageType=void 0;let t=ql(),n=Yl(),r=Zl(),i=$l(),a=eu(),o=nu(),s=ru(),c=iu(),l=au(),u=Ll(),d=Kl(),f=ou(),p=Gl(),m=Ul(),h=Object.getOwnPropertyDescriptors(Object.getPrototypeOf({})),g=h[t.MESSAGE_TYPE]={};e.MessageType=class{constructor(e,t,c){this.defaultCheckDepth=16,this.typeName=e,this.fields=t.map(n.normalizeFieldInfo),this.options=c??{},g.value=this,this.messagePrototype=Object.create(null,h),this.refTypeCheck=new r.ReflectionTypeCheck(this),this.refJsonReader=new i.ReflectionJsonReader(this),this.refJsonWriter=new a.ReflectionJsonWriter(this),this.refBinReader=new o.ReflectionBinaryReader(this),this.refBinWriter=new s.ReflectionBinaryWriter(this)}create(e){let t=c.reflectionCreate(this);return e!==void 0&&l.reflectionMergePartial(this,t,e),t}clone(e){let t=this.create();return l.reflectionMergePartial(this,t,e),t}equals(e,t){return f.reflectionEquals(this,e,t)}is(e,t=this.defaultCheckDepth){return this.refTypeCheck.is(e,t,!1)}isAssignable(e,t=this.defaultCheckDepth){return this.refTypeCheck.is(e,t,!0)}mergePartial(e,t){l.reflectionMergePartial(this,e,t)}fromBinary(e,t){let n=m.binaryReadOptions(t);return this.internalBinaryRead(n.readerFactory(e),e.byteLength,n)}fromJson(e,t){return this.internalJsonRead(e,d.jsonReadOptions(t))}fromJsonString(e,t){let n=JSON.parse(e);return this.fromJson(n,t)}toJson(e,t){return this.internalJsonWrite(e,d.jsonWriteOptions(t))}toJsonString(e,t){let n=this.toJson(e,t);return JSON.stringify(n,null,t?.prettySpaces??0)}toBinary(e,t){let n=p.binaryWriteOptions(t);return this.internalBinaryWrite(e,n.writerFactory(),n).finish()}internalJsonRead(e,t,n){if(typeof e==`object`&&e&&!Array.isArray(e)){let r=n??this.create();return this.refJsonReader.read(e,r,t),r}throw Error(`Unable to parse message ${this.typeName} from JSON ${u.typeofJsonValue(e)}.`)}internalJsonWrite(e,t){return this.refJsonWriter.write(e,t)}internalBinaryWrite(e,t,n){return this.refBinWriter.write(e,t,n),t}internalBinaryRead(e,t,n,r){let i=r??this.create();return this.refBinReader.read(e,i,n,t),i}}})),cu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.containsMessageType=void 0;let t=ql();function n(e){return e[t.MESSAGE_TYPE]!=null}e.containsMessageType=n})),lu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.listEnumNumbers=e.listEnumNames=e.listEnumValues=e.isEnumObject=void 0;function t(e){if(typeof e!=`object`||!e||!e.hasOwnProperty(0))return!1;for(let t of Object.keys(e)){let n=parseInt(t);if(Number.isNaN(n)){let n=e[t];if(n===void 0||typeof n!=`number`||e[n]===void 0)return!1}else{let t=e[n];if(t===void 0||e[t]!==n)return!1}}return!0}e.isEnumObject=t;function n(e){if(!t(e))throw Error(`not a typescript enum object`);let n=[];for(let[t,r]of Object.entries(e))typeof r==`number`&&n.push({name:t,number:r});return n}e.listEnumValues=n;function r(e){return n(e).map(e=>e.name)}e.listEnumNames=r;function i(e){return n(e).map(e=>e.number).filter((e,t,n)=>n.indexOf(e)==t)}e.listEnumNumbers=i})),uu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Ll();Object.defineProperty(e,"typeofJsonValue",{enumerable:!0,get:function(){return t.typeofJsonValue}}),Object.defineProperty(e,"isJsonObject",{enumerable:!0,get:function(){return t.isJsonObject}});var n=Rl();Object.defineProperty(e,"base64decode",{enumerable:!0,get:function(){return n.base64decode}}),Object.defineProperty(e,"base64encode",{enumerable:!0,get:function(){return n.base64encode}});var r=zl();Object.defineProperty(e,"utf8read",{enumerable:!0,get:function(){return r.utf8read}});var i=Bl();Object.defineProperty(e,"WireType",{enumerable:!0,get:function(){return i.WireType}}),Object.defineProperty(e,"mergeBinaryOptions",{enumerable:!0,get:function(){return i.mergeBinaryOptions}}),Object.defineProperty(e,"UnknownFieldHandler",{enumerable:!0,get:function(){return i.UnknownFieldHandler}});var a=Ul();Object.defineProperty(e,"BinaryReader",{enumerable:!0,get:function(){return a.BinaryReader}}),Object.defineProperty(e,"binaryReadOptions",{enumerable:!0,get:function(){return a.binaryReadOptions}});var o=Gl();Object.defineProperty(e,"BinaryWriter",{enumerable:!0,get:function(){return o.BinaryWriter}}),Object.defineProperty(e,"binaryWriteOptions",{enumerable:!0,get:function(){return o.binaryWriteOptions}});var s=Hl();Object.defineProperty(e,"PbLong",{enumerable:!0,get:function(){return s.PbLong}}),Object.defineProperty(e,"PbULong",{enumerable:!0,get:function(){return s.PbULong}});var c=Kl();Object.defineProperty(e,"jsonReadOptions",{enumerable:!0,get:function(){return c.jsonReadOptions}}),Object.defineProperty(e,"jsonWriteOptions",{enumerable:!0,get:function(){return c.jsonWriteOptions}}),Object.defineProperty(e,"mergeJsonOptions",{enumerable:!0,get:function(){return c.mergeJsonOptions}});var l=ql();Object.defineProperty(e,"MESSAGE_TYPE",{enumerable:!0,get:function(){return l.MESSAGE_TYPE}});var u=su();Object.defineProperty(e,"MessageType",{enumerable:!0,get:function(){return u.MessageType}});var d=Yl();Object.defineProperty(e,"ScalarType",{enumerable:!0,get:function(){return d.ScalarType}}),Object.defineProperty(e,"LongType",{enumerable:!0,get:function(){return d.LongType}}),Object.defineProperty(e,"RepeatType",{enumerable:!0,get:function(){return d.RepeatType}}),Object.defineProperty(e,"normalizeFieldInfo",{enumerable:!0,get:function(){return d.normalizeFieldInfo}}),Object.defineProperty(e,"readFieldOptions",{enumerable:!0,get:function(){return d.readFieldOptions}}),Object.defineProperty(e,"readFieldOption",{enumerable:!0,get:function(){return d.readFieldOption}}),Object.defineProperty(e,"readMessageOption",{enumerable:!0,get:function(){return d.readMessageOption}});var f=Zl();Object.defineProperty(e,"ReflectionTypeCheck",{enumerable:!0,get:function(){return f.ReflectionTypeCheck}});var p=iu();Object.defineProperty(e,"reflectionCreate",{enumerable:!0,get:function(){return p.reflectionCreate}});var m=tu();Object.defineProperty(e,"reflectionScalarDefault",{enumerable:!0,get:function(){return m.reflectionScalarDefault}});var h=au();Object.defineProperty(e,"reflectionMergePartial",{enumerable:!0,get:function(){return h.reflectionMergePartial}});var g=ou();Object.defineProperty(e,"reflectionEquals",{enumerable:!0,get:function(){return g.reflectionEquals}});var v=nu();Object.defineProperty(e,"ReflectionBinaryReader",{enumerable:!0,get:function(){return v.ReflectionBinaryReader}});var y=ru();Object.defineProperty(e,"ReflectionBinaryWriter",{enumerable:!0,get:function(){return y.ReflectionBinaryWriter}});var b=$l();Object.defineProperty(e,"ReflectionJsonReader",{enumerable:!0,get:function(){return b.ReflectionJsonReader}});var x=eu();Object.defineProperty(e,"ReflectionJsonWriter",{enumerable:!0,get:function(){return x.ReflectionJsonWriter}});var S=cu();Object.defineProperty(e,"containsMessageType",{enumerable:!0,get:function(){return S.containsMessageType}});var C=Xl();Object.defineProperty(e,"isOneofGroup",{enumerable:!0,get:function(){return C.isOneofGroup}}),Object.defineProperty(e,"setOneofValue",{enumerable:!0,get:function(){return C.setOneofValue}}),Object.defineProperty(e,"getOneofValue",{enumerable:!0,get:function(){return C.getOneofValue}}),Object.defineProperty(e,"clearOneofValue",{enumerable:!0,get:function(){return C.clearOneofValue}}),Object.defineProperty(e,"getSelectedOneofValue",{enumerable:!0,get:function(){return C.getSelectedOneofValue}});var w=lu();Object.defineProperty(e,"listEnumValues",{enumerable:!0,get:function(){return w.listEnumValues}}),Object.defineProperty(e,"listEnumNames",{enumerable:!0,get:function(){return w.listEnumNames}}),Object.defineProperty(e,"listEnumNumbers",{enumerable:!0,get:function(){return w.listEnumNumbers}}),Object.defineProperty(e,"isEnumObject",{enumerable:!0,get:function(){return w.isEnumObject}});var T=Jl();Object.defineProperty(e,"lowerCamelCase",{enumerable:!0,get:function(){return T.lowerCamelCase}});var E=Wl();Object.defineProperty(e,"assert",{enumerable:!0,get:function(){return E.assert}}),Object.defineProperty(e,"assertNever",{enumerable:!0,get:function(){return E.assertNever}}),Object.defineProperty(e,"assertInt32",{enumerable:!0,get:function(){return E.assertInt32}}),Object.defineProperty(e,"assertUInt32",{enumerable:!0,get:function(){return E.assertUInt32}}),Object.defineProperty(e,"assertFloat32",{enumerable:!0,get:function(){return E.assertFloat32}})})),X=uu();const du=new class extends X.MessageType{constructor(){super(`google.protobuf.Timestamp`,[{no:1,name:`seconds`,kind:`scalar`,T:3},{no:2,name:`nanos`,kind:`scalar`,T:5}])}now(){let e=this.create(),t=Date.now();return e.seconds=X.PbLong.from(Math.floor(t/1e3)).toString(),e.nanos=t%1e3*1e6,e}toDate(e){return new Date(X.PbLong.from(e.seconds).toNumber()*1e3+Math.ceil(e.nanos/1e6))}fromDate(e){let t=this.create(),n=e.getTime();return t.seconds=X.PbLong.from(Math.floor(n/1e3)).toString(),t.nanos=n%1e3*1e6,t}internalJsonWrite(e,t){let n=X.PbLong.from(e.seconds).toNumber()*1e3;if(nDate.parse(`9999-12-31T23:59:59Z`))throw Error(`Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.`);if(e.nanos<0)throw Error(`Unable to encode invalid Timestamp to JSON. Nanos must not be negative.`);let r=`Z`;if(e.nanos>0){let t=(e.nanos+1e9).toString().substring(1);r=t.substring(3)===`000000`?`.`+t.substring(0,3)+`Z`:t.substring(6)===`000`?`.`+t.substring(0,6)+`Z`:`.`+t+`Z`}return new Date(n).toISOString().replace(`.000Z`,r)}internalJsonRead(e,t,n){if(typeof e!=`string`)throw Error(`Unable to parse Timestamp from JSON `+(0,X.typeofJsonValue)(e)+`.`);let r=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!r)throw Error(`Unable to parse Timestamp from JSON. Invalid format.`);let i=Date.parse(r[1]+`-`+r[2]+`-`+r[3]+`T`+r[4]+`:`+r[5]+`:`+r[6]+(r[8]?r[8]:`Z`));if(Number.isNaN(i))throw Error(`Unable to parse Timestamp from JSON. Invalid value.`);if(iDate.parse(`9999-12-31T23:59:59Z`))throw new globalThis.Error(`Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.`);return n||=this.create(),n.seconds=X.PbLong.from(i/1e3).toString(),n.nanos=0,r[7]&&(n.nanos=parseInt(`1`+r[7]+`0`.repeat(9-r[7].length))-1e9),n}create(e){let t={seconds:`0`,nanos:0};return globalThis.Object.defineProperty(t,X.MESSAGE_TYPE,{enumerable:!1,value:this}),e!==void 0&&(0,X.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,n,r){let i=r??this.create(),a=e.pos+t;for(;e.pos{Object.defineProperty(e,"__esModule",{value:!0}),e.readServiceOption=e.readMethodOption=e.readMethodOptions=e.normalizeMethodInfo=void 0;let t=uu();function n(e,n){let r=e;return r.service=n,r.localName=r.localName??t.lowerCamelCase(r.name),r.serverStreaming=!!r.serverStreaming,r.clientStreaming=!!r.clientStreaming,r.options=r.options??{},r.idempotency=r.idempotency??void 0,r}e.normalizeMethodInfo=n;function r(e,t,n,r){let i=e.methods.find((e,n)=>e.localName===t||n===t)?.options;return i&&i[n]?r.fromJson(i[n]):void 0}e.readMethodOptions=r;function i(e,t,n,r){let i=e.methods.find((e,n)=>e.localName===t||n===t)?.options;if(!i)return;let a=i[n];return a===void 0?a:r?r.fromJson(a):a}e.readMethodOption=i;function a(e,t,n){let r=e.options;if(!r)return;let i=r[t];return i===void 0?i:n?n.fromJson(i):i}e.readServiceOption=a})),hu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ServiceType=void 0;let t=mu();e.ServiceType=class{constructor(e,n,r){this.typeName=e,this.methods=n.map(e=>t.normalizeMethodInfo(e,this)),this.options=r??{}}}})),gu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.RpcError=void 0,e.RpcError=class extends Error{constructor(e,t=`UNKNOWN`,n){super(e),this.name=`RpcError`,Object.setPrototypeOf(this,new.target.prototype),this.code=t,this.meta=n??{}}toString(){let e=[this.name+`: `+this.message];this.code&&(e.push(``),e.push(`Code: `+this.code)),this.serviceName&&this.methodName&&e.push(`Method: `+this.serviceName+`/`+this.methodName);let t=Object.entries(this.meta);if(t.length){e.push(``),e.push(`Meta:`);for(let[n,r]of t)e.push(` ${n}: ${r}`)}return e.join(` +`)}}})),_u=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.mergeRpcOptions=void 0;let t=uu();function n(e,n){if(!n)return e;let i={};r(e,i),r(n,i);for(let a of Object.keys(n)){let o=n[a];switch(a){case`jsonOptions`:i.jsonOptions=t.mergeJsonOptions(e.jsonOptions,i.jsonOptions);break;case`binaryOptions`:i.binaryOptions=t.mergeBinaryOptions(e.binaryOptions,i.binaryOptions);break;case`meta`:i.meta={},r(e.meta,i.meta),r(n.meta,i.meta);break;case`interceptors`:i.interceptors=e.interceptors?e.interceptors.concat(o):o.concat()}}return i}e.mergeRpcOptions=n;function r(e,t){if(!e)return;let n=t;for(let[t,r]of Object.entries(e))n[t]=r instanceof Date?new Date(r.getTime()):Array.isArray(r)?r.concat():r}})),vu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Deferred=e.DeferredState=void 0;var t;(function(e){e[e.PENDING=0]=`PENDING`,e[e.REJECTED=1]=`REJECTED`,e[e.RESOLVED=2]=`RESOLVED`})(t=e.DeferredState||={}),e.Deferred=class{constructor(e=!0){this._state=t.PENDING,this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t}),e&&this._promise.catch(e=>{})}get state(){return this._state}get promise(){return this._promise}resolve(e){if(this.state!==t.PENDING)throw Error(`cannot resolve ${t[this.state].toLowerCase()}`);this._resolve(e),this._state=t.RESOLVED}reject(e){if(this.state!==t.PENDING)throw Error(`cannot reject ${t[this.state].toLowerCase()}`);this._reject(e),this._state=t.REJECTED}resolvePending(e){this._state===t.PENDING&&this.resolve(e)}rejectPending(e){this._state===t.PENDING&&this.reject(e)}}})),yu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.RpcOutputStreamController=void 0;let t=vu(),n=uu();e.RpcOutputStreamController=class{constructor(){this._lis={nxt:[],msg:[],err:[],cmp:[]},this._closed=!1,this._itState={q:[]}}onNext(e){return this.addLis(e,this._lis.nxt)}onMessage(e){return this.addLis(e,this._lis.msg)}onError(e){return this.addLis(e,this._lis.err)}onComplete(e){return this.addLis(e,this._lis.cmp)}addLis(e,t){return t.push(e),()=>{let n=t.indexOf(e);n>=0&&t.splice(n,1)}}clearLis(){for(let e of Object.values(this._lis))e.splice(0,e.length)}get closed(){return this._closed!==!1}notifyNext(e,t,r){n.assert(+!!e+ +!!t+ +!!r<=1,`only one emission at a time`),e&&this.notifyMessage(e),t&&this.notifyError(t),r&&this.notifyComplete()}notifyMessage(e){n.assert(!this.closed,`stream is closed`),this.pushIt({value:e,done:!1}),this._lis.msg.forEach(t=>t(e)),this._lis.nxt.forEach(t=>t(e,void 0,!1))}notifyError(e){n.assert(!this.closed,`stream is closed`),this._closed=e,this.pushIt(e),this._lis.err.forEach(t=>t(e)),this._lis.nxt.forEach(t=>t(void 0,e,!1)),this.clearLis()}notifyComplete(){n.assert(!this.closed,`stream is closed`),this._closed=!0,this.pushIt({value:null,done:!0}),this._lis.cmp.forEach(e=>e()),this._lis.nxt.forEach(e=>e(void 0,void 0,!0)),this.clearLis()}[Symbol.asyncIterator](){return this._closed===!0?this.pushIt({value:null,done:!0}):this._closed!==!1&&this.pushIt(this._closed),{next:()=>{let e=this._itState;n.assert(e,`bad state`),n.assert(!e.p,`iterator contract broken`);let r=e.q.shift();return r?`value`in r?Promise.resolve(r):Promise.reject(r):(e.p=new t.Deferred,e.p.promise)}}}pushIt(e){let r=this._itState;if(r.p){let i=r.p;n.assert(i.state==t.DeferredState.PENDING,`iterator contract broken`),`value`in e?i.resolve(e):i.reject(e),delete r.p}else r.q.push(e)}}})),bu=J((e=>{var t=e&&e.__awaiter||function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0}),e.UnaryCall=void 0,e.UnaryCall=class{constructor(e,t,n,r,i,a,o){this.method=e,this.requestHeaders=t,this.request=n,this.headers=r,this.response=i,this.status=a,this.trailers=o}then(e,t){return this.promiseFinished().then(t=>e?Promise.resolve(e(t)):t,e=>t?Promise.resolve(t(e)):Promise.reject(e))}promiseFinished(){return t(this,void 0,void 0,function*(){let[e,t,n,r]=yield Promise.all([this.headers,this.response,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,request:this.request,headers:e,response:t,status:n,trailers:r}})}}})),xu=J((e=>{var t=e&&e.__awaiter||function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0}),e.ServerStreamingCall=void 0,e.ServerStreamingCall=class{constructor(e,t,n,r,i,a,o){this.method=e,this.requestHeaders=t,this.request=n,this.headers=r,this.responses=i,this.status=a,this.trailers=o}then(e,t){return this.promiseFinished().then(t=>e?Promise.resolve(e(t)):t,e=>t?Promise.resolve(t(e)):Promise.reject(e))}promiseFinished(){return t(this,void 0,void 0,function*(){let[e,t,n]=yield Promise.all([this.headers,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,request:this.request,headers:e,status:t,trailers:n}})}}})),Su=J((e=>{var t=e&&e.__awaiter||function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0}),e.ClientStreamingCall=void 0,e.ClientStreamingCall=class{constructor(e,t,n,r,i,a,o){this.method=e,this.requestHeaders=t,this.requests=n,this.headers=r,this.response=i,this.status=a,this.trailers=o}then(e,t){return this.promiseFinished().then(t=>e?Promise.resolve(e(t)):t,e=>t?Promise.resolve(t(e)):Promise.reject(e))}promiseFinished(){return t(this,void 0,void 0,function*(){let[e,t,n,r]=yield Promise.all([this.headers,this.response,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,headers:e,response:t,status:n,trailers:r}})}}})),Cu=J((e=>{var t=e&&e.__awaiter||function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0}),e.DuplexStreamingCall=void 0,e.DuplexStreamingCall=class{constructor(e,t,n,r,i,a,o){this.method=e,this.requestHeaders=t,this.requests=n,this.headers=r,this.responses=i,this.status=a,this.trailers=o}then(e,t){return this.promiseFinished().then(t=>e?Promise.resolve(e(t)):t,e=>t?Promise.resolve(t(e)):Promise.reject(e))}promiseFinished(){return t(this,void 0,void 0,function*(){let[e,t,n]=yield Promise.all([this.headers,this.status,this.trailers]);return{method:this.method,requestHeaders:this.requestHeaders,headers:e,status:t,trailers:n}})}}})),wu=J((e=>{var t=e&&e.__awaiter||function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};Object.defineProperty(e,"__esModule",{value:!0}),e.TestTransport=void 0;let n=gu(),r=uu(),i=yu(),a=_u(),o=bu(),s=xu(),c=Su(),l=Cu();var u=class e{constructor(e){this.suppressUncaughtRejections=!0,this.headerDelay=10,this.responseDelay=50,this.betweenResponseDelay=10,this.afterResponseDelay=10,this.data=e??{}}get sentMessages(){return this.lastInput instanceof f?this.lastInput.sent:typeof this.lastInput==`object`?[this.lastInput.single]:[]}get sendComplete(){return this.lastInput instanceof f?this.lastInput.completed:typeof this.lastInput==`object`}promiseHeaders(){let t=this.data.headers??e.defaultHeaders;return t instanceof n.RpcError?Promise.reject(t):Promise.resolve(t)}promiseSingleResponse(e){if(this.data.response instanceof n.RpcError)return Promise.reject(this.data.response);let t;return Array.isArray(this.data.response)?(r.assert(this.data.response.length>0),t=this.data.response[0]):t=this.data.response===void 0?e.O.create():this.data.response,r.assert(e.O.is(t)),Promise.resolve(t)}streamResponses(e,i,a){return t(this,void 0,void 0,function*(){let t=[];if(this.data.response===void 0)t.push(e.O.create());else if(Array.isArray(this.data.response))for(let n of this.data.response)r.assert(e.O.is(n)),t.push(n);else this.data.response instanceof n.RpcError||(r.assert(e.O.is(this.data.response)),t.push(this.data.response));try{yield d(this.responseDelay,a)(void 0)}catch(e){i.notifyError(e);return}if(this.data.response instanceof n.RpcError){i.notifyError(this.data.response);return}for(let e of t){i.notifyMessage(e);try{yield d(this.betweenResponseDelay,a)(void 0)}catch(e){i.notifyError(e);return}}if(this.data.status instanceof n.RpcError){i.notifyError(this.data.status);return}if(this.data.trailers instanceof n.RpcError){i.notifyError(this.data.trailers);return}i.notifyComplete()})}promiseStatus(){let t=this.data.status??e.defaultStatus;return t instanceof n.RpcError?Promise.reject(t):Promise.resolve(t)}promiseTrailers(){let t=this.data.trailers??e.defaultTrailers;return t instanceof n.RpcError?Promise.reject(t):Promise.resolve(t)}maybeSuppressUncaught(...e){if(this.suppressUncaughtRejections)for(let t of e)t.catch(()=>{})}mergeOptions(e){return a.mergeRpcOptions({},e)}unary(e,t,n){let r=n.meta??{},i=this.promiseHeaders().then(d(this.headerDelay,n.abort)),a=i.catch(e=>{}).then(d(this.responseDelay,n.abort)).then(t=>this.promiseSingleResponse(e)),s=a.catch(e=>{}).then(d(this.afterResponseDelay,n.abort)).then(e=>this.promiseStatus()),c=a.catch(e=>{}).then(d(this.afterResponseDelay,n.abort)).then(e=>this.promiseTrailers());return this.maybeSuppressUncaught(s,c),this.lastInput={single:t},new o.UnaryCall(e,r,t,i,a,s,c)}serverStreaming(e,t,n){let r=n.meta??{},a=this.promiseHeaders().then(d(this.headerDelay,n.abort)),o=new i.RpcOutputStreamController,c=a.then(d(this.responseDelay,n.abort)).catch(()=>{}).then(()=>this.streamResponses(e,o,n.abort)).then(d(this.afterResponseDelay,n.abort)),l=c.then(()=>this.promiseStatus()),u=c.then(()=>this.promiseTrailers());return this.maybeSuppressUncaught(l,u),this.lastInput={single:t},new s.ServerStreamingCall(e,r,t,a,o,l,u)}clientStreaming(e,t){let n=t.meta??{},r=this.promiseHeaders().then(d(this.headerDelay,t.abort)),i=r.catch(e=>{}).then(d(this.responseDelay,t.abort)).then(t=>this.promiseSingleResponse(e)),a=i.catch(e=>{}).then(d(this.afterResponseDelay,t.abort)).then(e=>this.promiseStatus()),o=i.catch(e=>{}).then(d(this.afterResponseDelay,t.abort)).then(e=>this.promiseTrailers());return this.maybeSuppressUncaught(a,o),this.lastInput=new f(this.data,t.abort),new c.ClientStreamingCall(e,n,this.lastInput,r,i,a,o)}duplex(e,t){let n=t.meta??{},r=this.promiseHeaders().then(d(this.headerDelay,t.abort)),a=new i.RpcOutputStreamController,o=r.then(d(this.responseDelay,t.abort)).catch(()=>{}).then(()=>this.streamResponses(e,a,t.abort)).then(d(this.afterResponseDelay,t.abort)),s=o.then(()=>this.promiseStatus()),c=o.then(()=>this.promiseTrailers());return this.maybeSuppressUncaught(s,c),this.lastInput=new f(this.data,t.abort),new l.DuplexStreamingCall(e,n,this.lastInput,r,a,s,c)}};e.TestTransport=u,u.defaultHeaders={responseHeader:`test`},u.defaultStatus={code:`OK`,detail:`all good`},u.defaultTrailers={responseTrailer:`test`};function d(e,t){return r=>new Promise((i,a)=>{if(t?.aborted)a(new n.RpcError(`user cancel`,`CANCELLED`));else{let o=setTimeout(()=>i(r),e);t&&t.addEventListener(`abort`,e=>{clearTimeout(o),a(new n.RpcError(`user cancel`,`CANCELLED`))})}})}var f=class{constructor(e,t){this._completed=!1,this._sent=[],this.data=e,this.abort=t}get sent(){return this._sent}get completed(){return this._completed}send(e){if(this.data.inputMessage instanceof n.RpcError)return Promise.reject(this.data.inputMessage);let t=this.data.inputMessage===void 0?10:this.data.inputMessage;return Promise.resolve(void 0).then(()=>{this._sent.push(e)}).then(d(t,this.abort))}complete(){if(this.data.inputComplete instanceof n.RpcError)return Promise.reject(this.data.inputComplete);let e=this.data.inputComplete===void 0?10:this.data.inputComplete;return Promise.resolve(void 0).then(()=>{this._completed=!0}).then(d(e,this.abort))}}})),Tu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.stackDuplexStreamingInterceptors=e.stackClientStreamingInterceptors=e.stackServerStreamingInterceptors=e.stackUnaryInterceptors=e.stackIntercept=void 0;let t=uu();function n(e,n,r,i,a){if(e==`unary`){let e=(e,t,r)=>n.unary(e,t,r);for(let t of(i.interceptors??[]).filter(e=>e.interceptUnary).reverse()){let n=e;e=(e,r,i)=>t.interceptUnary(n,e,r,i)}return e(r,a,i)}if(e==`serverStreaming`){let e=(e,t,r)=>n.serverStreaming(e,t,r);for(let t of(i.interceptors??[]).filter(e=>e.interceptServerStreaming).reverse()){let n=e;e=(e,r,i)=>t.interceptServerStreaming(n,e,r,i)}return e(r,a,i)}if(e==`clientStreaming`){let e=(e,t)=>n.clientStreaming(e,t);for(let t of(i.interceptors??[]).filter(e=>e.interceptClientStreaming).reverse()){let n=e;e=(e,r)=>t.interceptClientStreaming(n,e,r)}return e(r,i)}if(e==`duplex`){let e=(e,t)=>n.duplex(e,t);for(let t of(i.interceptors??[]).filter(e=>e.interceptDuplex).reverse()){let n=e;e=(e,r)=>t.interceptDuplex(n,e,r)}return e(r,i)}t.assertNever(e)}e.stackIntercept=n;function r(e,t,r,i){return n(`unary`,e,t,i,r)}e.stackUnaryInterceptors=r;function i(e,t,r,i){return n(`serverStreaming`,e,t,i,r)}e.stackServerStreamingInterceptors=i;function a(e,t,r){return n(`clientStreaming`,e,t,r)}e.stackClientStreamingInterceptors=a;function o(e,t,r){return n(`duplex`,e,t,r)}e.stackDuplexStreamingInterceptors=o})),Eu=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ServerCallContextController=void 0,e.ServerCallContextController=class{constructor(e,t,n,r,i={code:`OK`,detail:``}){this._cancelled=!1,this._listeners=[],this.method=e,this.headers=t,this.deadline=n,this.trailers={},this._sendRH=r,this.status=i}notifyCancelled(){if(!this._cancelled){this._cancelled=!0;for(let e of this._listeners)e()}}sendResponseHeaders(e){this._sendRH(e)}get cancelled(){return this._cancelled}onCancel(e){let t=this._listeners;return t.push(e),()=>{let n=t.indexOf(e);n>=0&&t.splice(n,1)}}}})),Du=J((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=hu();Object.defineProperty(e,"ServiceType",{enumerable:!0,get:function(){return t.ServiceType}});var n=mu();Object.defineProperty(e,"readMethodOptions",{enumerable:!0,get:function(){return n.readMethodOptions}}),Object.defineProperty(e,"readMethodOption",{enumerable:!0,get:function(){return n.readMethodOption}}),Object.defineProperty(e,"readServiceOption",{enumerable:!0,get:function(){return n.readServiceOption}});var r=gu();Object.defineProperty(e,"RpcError",{enumerable:!0,get:function(){return r.RpcError}});var i=_u();Object.defineProperty(e,"mergeRpcOptions",{enumerable:!0,get:function(){return i.mergeRpcOptions}});var a=yu();Object.defineProperty(e,"RpcOutputStreamController",{enumerable:!0,get:function(){return a.RpcOutputStreamController}});var o=wu();Object.defineProperty(e,"TestTransport",{enumerable:!0,get:function(){return o.TestTransport}});var s=vu();Object.defineProperty(e,"Deferred",{enumerable:!0,get:function(){return s.Deferred}}),Object.defineProperty(e,"DeferredState",{enumerable:!0,get:function(){return s.DeferredState}});var c=Cu();Object.defineProperty(e,"DuplexStreamingCall",{enumerable:!0,get:function(){return c.DuplexStreamingCall}});var l=Su();Object.defineProperty(e,"ClientStreamingCall",{enumerable:!0,get:function(){return l.ClientStreamingCall}});var u=xu();Object.defineProperty(e,"ServerStreamingCall",{enumerable:!0,get:function(){return u.ServerStreamingCall}});var d=bu();Object.defineProperty(e,"UnaryCall",{enumerable:!0,get:function(){return d.UnaryCall}});var f=Tu();Object.defineProperty(e,"stackIntercept",{enumerable:!0,get:function(){return f.stackIntercept}}),Object.defineProperty(e,"stackDuplexStreamingInterceptors",{enumerable:!0,get:function(){return f.stackDuplexStreamingInterceptors}}),Object.defineProperty(e,"stackClientStreamingInterceptors",{enumerable:!0,get:function(){return f.stackClientStreamingInterceptors}}),Object.defineProperty(e,"stackServerStreamingInterceptors",{enumerable:!0,get:function(){return f.stackServerStreamingInterceptors}}),Object.defineProperty(e,"stackUnaryInterceptors",{enumerable:!0,get:function(){return f.stackUnaryInterceptors}});var p=Eu();Object.defineProperty(e,"ServerCallContextController",{enumerable:!0,get:function(){return p.ServerCallContextController}})}))();const Ou=new class extends X.MessageType{constructor(){super(`github.actions.results.api.v1.CreateArtifactRequest`,[{no:1,name:`workflow_run_backend_id`,kind:`scalar`,T:9},{no:2,name:`workflow_job_run_backend_id`,kind:`scalar`,T:9},{no:3,name:`name`,kind:`scalar`,T:9},{no:4,name:`expires_at`,kind:`message`,T:()=>du},{no:5,name:`version`,kind:`scalar`,T:5},{no:6,name:`mime_type`,kind:`message`,T:()=>pu}])}create(e){let t={workflowRunBackendId:``,workflowJobRunBackendId:``,name:``,version:0};return globalThis.Object.defineProperty(t,X.MESSAGE_TYPE,{enumerable:!1,value:this}),e!==void 0&&(0,X.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,n,r){let i=r??this.create(),a=e.pos+t;for(;e.pospu}])}create(e){let t={workflowRunBackendId:``,workflowJobRunBackendId:``,name:``,size:`0`};return globalThis.Object.defineProperty(t,X.MESSAGE_TYPE,{enumerable:!1,value:this}),e!==void 0&&(0,X.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,n,r){let i=r??this.create(),a=e.pos+t;for(;e.pospu},{no:4,name:`id_filter`,kind:`message`,T:()=>fu}])}create(e){let t={workflowRunBackendId:``,workflowJobRunBackendId:``};return globalThis.Object.defineProperty(t,X.MESSAGE_TYPE,{enumerable:!1,value:this}),e!==void 0&&(0,X.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,n,r){let i=r??this.create(),a=e.pos+t;for(;e.posPu}])}create(e){let t={artifacts:[]};return globalThis.Object.defineProperty(t,X.MESSAGE_TYPE,{enumerable:!1,value:this}),e!==void 0&&(0,X.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,n,r){let i=r??this.create(),a=e.pos+t;for(;e.posdu},{no:7,name:`digest`,kind:`message`,T:()=>pu}])}create(e){let t={workflowRunBackendId:``,workflowJobRunBackendId:``,databaseId:`0`,name:``,size:`0`};return globalThis.Object.defineProperty(t,X.MESSAGE_TYPE,{enumerable:!1,value:this}),e!==void 0&&(0,X.reflectionMergePartial)(this,t,e),t}internalBinaryRead(e,t,n,r){let i=r??this.create(),a=e.pos+t;for(;e.posku.fromJson(e,{ignoreUnknownFields:!0}))}FinalizeArtifact(e){let t=Au.toJson(e,{useProtoFieldName:!0,emitDefaultValues:!1});return this.rpc.request(`github.actions.results.api.v1.ArtifactService`,`FinalizeArtifact`,`application/json`,t).then(e=>ju.fromJson(e,{ignoreUnknownFields:!0}))}ListArtifacts(e){let t=Mu.toJson(e,{useProtoFieldName:!0,emitDefaultValues:!1});return this.rpc.request(`github.actions.results.api.v1.ArtifactService`,`ListArtifacts`,`application/json`,t).then(e=>Nu.fromJson(e,{ignoreUnknownFields:!0}))}GetSignedArtifactURL(e){let t=Fu.toJson(e,{useProtoFieldName:!0,emitDefaultValues:!1});return this.rpc.request(`github.actions.results.api.v1.ArtifactService`,`GetSignedArtifactURL`,`application/json`,t).then(e=>Iu.fromJson(e,{ignoreUnknownFields:!0}))}DeleteArtifact(e){let t=Lu.toJson(e,{useProtoFieldName:!0,emitDefaultValues:!1});return this.rpc.request(`github.actions.results.api.v1.ArtifactService`,`DeleteArtifact`,`application/json`,t).then(e=>Ru.fromJson(e,{ignoreUnknownFields:!0}))}};function Bu(e){if(!e)return;let t=Vu();t&&t`,` Greater than >`],[`|`,` Vertical bar |`],[`*`,` Asterisk *`],[`?`,` Question mark ?`],[`\r`,` Carriage return \\r`],[` +`,` Line feed \\n`]]),Uu=new Map([...Hu,[`\\`,` Backslash \\`],[`/`,` Forward slash /`]]);function Wu(e){if(!e)throw Error(`Provided artifact name input during validation is empty`);for(let[t,n]of Uu)if(e.includes(t))throw Error(`The artifact name is not valid: ${e}. Contains the following character: ${n} + +Invalid characters include: ${Array.from(Uu.values()).toString()} + +These characters are not allowed in the artifact name due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems.`);kr(`Artifact name is valid!`)}function Gu(e){if(!e)throw Error(`Provided file path input during validation is empty`);for(let[t,n]of Hu)if(e.includes(t))throw Error(`The path for one of the files in artifact is not valid: ${e}. Contains the following character: ${n} + +Invalid characters include: ${Array.from(Hu.values()).toString()} + +The following characters are not allowed in files that are uploaded due to limitations with certain file systems such as NTFS. To maintain file system agnostic behavior, these characters are intentionally not allowed to prevent potential problems with downloads on different file systems. + `)}var Ku=J(((e,t)=>{t.exports={name:`@actions/artifact`,version:`6.2.1`,preview:!0,description:`Actions artifact lib`,keywords:[`github`,`actions`,`artifact`],homepage:`https://github.com/actions/toolkit/tree/main/packages/artifact`,license:`MIT`,type:`module`,main:`lib/artifact.js`,types:`lib/artifact.d.ts`,exports:{".":{types:`./lib/artifact.d.ts`,import:`./lib/artifact.js`}},directories:{lib:`lib`,test:`__tests__`},files:[`lib`,`!.DS_Store`],publishConfig:{access:`public`},repository:{type:`git`,url:`git+https://github.com/actions/toolkit.git`,directory:`packages/artifact`},scripts:{"audit-moderate":`npm install && npm audit --json --audit-level=moderate > audit.json`,test:`cd ../../ && npm run test ./packages/artifact`,bootstrap:`cd ../../ && npm run bootstrap`,"tsc-run":`tsc && cp src/internal/shared/package-version.cjs lib/internal/shared/`,tsc:`npm run bootstrap && npm run tsc-run`,"gen:docs":`typedoc --plugin typedoc-plugin-markdown --out docs/generated src/artifact.ts --githubPages false --readme none`},bugs:{url:`https://github.com/actions/toolkit/issues`},dependencies:{"@actions/core":`^3.0.0`,"@actions/github":`^9.0.0`,"@actions/http-client":`^4.0.0`,"@azure/storage-blob":`^12.30.0`,"@octokit/core":`^7.0.6`,"@octokit/plugin-request-log":`^6.0.0`,"@octokit/plugin-retry":`^8.0.0`,"@octokit/request":`^10.0.7`,"@octokit/request-error":`^7.1.0`,"@protobuf-ts/plugin":`^2.2.3-alpha.1`,"@protobuf-ts/runtime":`^2.9.4`,archiver:`^7.0.1`,"jwt-decode":`^4.0.0`,"unzip-stream":`^0.3.1`},devDependencies:{"@types/archiver":`^7.0.0`,"@types/unzip-stream":`^0.3.4`,typedoc:`^0.28.16`,"typedoc-plugin-markdown":`^4.9.0`,typescript:`^5.9.3`},overrides:{"uri-js":`npm:uri-js-replace@^1.0.1`,"node-fetch":`^3.3.2`}}})),qu=J(((e,t)=>{t.exports={version:Ku().version}}))();function Ju(){return`@actions/artifact-${qu.version}`}var Yu=class extends Error{constructor(e=[]){let t=`No files were found to upload`;e.length>0&&(t+=`: ${e.join(`, `)}`),super(t),this.files=e,this.name=`FilesNotFoundError`}},Xu=class extends Error{constructor(e){super(e),this.name=`InvalidResponseError`}},Zu=class extends Error{constructor(e=`Artifact not found`){super(e),this.name=`ArtifactNotFoundError`}},Qu=class extends Error{constructor(e=`@actions/artifact v2.0.0+, upload-artifact@v4+ and download-artifact@v4+ are not currently supported on GHES.`){super(e),this.name=`GHESNotSupportedError`}},$u=class extends Error{constructor(e){let t=`Unable to make request: ${e}\nIf you are using self-hosted runners, please make sure your runner has access to all GitHub endpoints: https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#communication-between-self-hosted-runners-and-github`;super(t),this.code=e,this.name=`NetworkError`}};$u.isNetworkErrorCode=e=>e?[`ECONNRESET`,`ENOTFOUND`,`ETIMEDOUT`,`ECONNREFUSED`,`EHOSTUNREACH`].includes(e):!1;var ed=class extends Error{constructor(){super(`Artifact storage quota has been hit. Unable to upload any new artifacts. +More info on storage limits: https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions#calculating-minute-and-storage-spending`),this.name=`UsageError`}};ed.isUsageErrorMessage=e=>e?e.includes(`insufficient usage`):!1;var td=class extends Error{};td.prototype.name=`InvalidTokenError`;function nd(e){return decodeURIComponent(atob(e).replace(/(.)/g,(e,t)=>{let n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n=`0`+n),`%`+n}))}function rd(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`);switch(t.length%4){case 0:break;case 2:t+=`==`;break;case 3:t+=`=`;break;default:throw Error(`base64 string is not of the correct length`)}try{return nd(t)}catch{return atob(t)}}function id(e,t){if(typeof e!=`string`)throw new td(`Invalid token specified: must be a string`);t||={};let n=t.header===!0?0:1,r=e.split(`.`)[n];if(typeof r!=`string`)throw new td(`Invalid token specified: missing part #${n+1}`);let i;try{i=rd(r)}catch(e){throw new td(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(i)}catch(e){throw new td(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}const ad=Error(`Failed to get backend IDs: The provided JWT token is invalid and/or missing claims`);function od(){let e=id(Al());if(!e.scp)throw ad;let t=e.scp.split(` `);if(t.length===0)throw ad;for(let e of t){let t=e.split(`:`);if(t?.[0]!==`Actions.Results`)continue;if(t.length!==3)throw ad;let n={workflowRunBackendId:t[1],workflowJobRunBackendId:t[2]};return Er(`Workflow Run Backend ID: ${n.workflowRunBackendId}`),Er(`Workflow Job Run Backend ID: ${n.workflowJobRunBackendId}`),n}throw ad}function sd(e){if(e)try{let t=new URL(e).searchParams.get(`sig`);t&&(xr(t),xr(encodeURIComponent(t)))}catch(t){Er(`Failed to parse URL: ${e} ${t instanceof Error?t.message:String(t)}`)}}function cd(e){if(typeof e!=`object`||!e){Er(`body is not an object or is null`);return}`signed_upload_url`in e&&typeof e.signed_upload_url==`string`&&sd(e.signed_upload_url),`signed_url`in e&&typeof e.signed_url==`string`&&sd(e.signed_url)}var ld=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},ud=class{constructor(e,t,n,r){this.maxAttempts=5,this.baseRetryIntervalMilliseconds=3e3,this.retryMultiplier=1.5;let i=Al();this.baseUrl=jl(),t&&(this.maxAttempts=t),n&&(this.baseRetryIntervalMilliseconds=n),r&&(this.retryMultiplier=r),this.httpClient=new Fn(e,[new Rn(i)])}request(e,t,n,r){return ld(this,void 0,void 0,function*(){let i=new URL(`/twirp/${e}/${t}`,this.baseUrl).href;Er(`[Request] ${t} ${i}`);let a={"Content-Type":n};try{let{body:e}=yield this.retryableRequest(()=>ld(this,void 0,void 0,function*(){return this.httpClient.post(i,JSON.stringify(r),a)}));return e}catch(e){throw Error(`Failed to ${t}: ${e.message}`)}})}retryableRequest(e){return ld(this,void 0,void 0,function*(){let t=0,n=``,r=``;for(;t=200&&e<300:!1}isRetryableHttpStatusCode(e){return e?[Dn.BadGateway,Dn.GatewayTimeout,Dn.InternalServerError,Dn.ServiceUnavailable,Dn.TooManyRequests].includes(e):!1}sleep(e){return ld(this,void 0,void 0,function*(){return new Promise(t=>setTimeout(t,e))})}getExponentialRetryTimeMilliseconds(e){if(e<0)throw Error(`attempt should be a positive integer`);if(e===0)return this.baseRetryIntervalMilliseconds;let t=this.baseRetryIntervalMilliseconds*this.retryMultiplier**+e,n=t*this.retryMultiplier;return Math.trunc(Math.random()*(n-t)+t)}};function dd(e){return new zu(new ud(Ju(),e?.maxAttempts,e?.retryIntervalMs,e?.retryMultiplier))}function fd(e){if(!a.existsSync(e))throw Error(`The provided rootDirectory ${e} does not exist`);if(!a.statSync(e).isDirectory())throw Error(`The provided rootDirectory ${e} is not a valid directory`);kr(`Root directory input is valid!`)}function pd(e,t){let n=[];t=x(t),t=w(t);for(let r of e){let e=a.lstatSync(r,{throwIfNoEntry:!1});if(!e)throw Error(`File ${r} does not exist`);if(e.isDirectory()){let i=r.replace(t,``);Gu(i),n.push({sourcePath:null,destinationPath:i,stats:e})}else{if(r=x(r),r=w(r),!r.startsWith(t))throw Error(`The rootDirectory: ${t} is not a parent directory of the file: ${r}`);let i=r.replace(t,``);Gu(i),n.push({sourcePath:r,destinationPath:i,stats:e})}}return n}var md=class extends Error{constructor(e){super(e),this.name=`AbortError`}};function hd(e,...t){U.stderr.write(`${F.format(e,...t)}${oe}`)}function gd(e){return U.env[e]}typeof U.versions.deno==`string`&&U.versions.deno.length,typeof U.versions.bun==`string`&&U.versions.bun.length;const _d=gd(`DEBUG`);let vd,yd=[],bd=[];const xd=[];_d&&Cd(_d);const Sd=Object.assign(e=>Dd(e),{enable:Cd,enabled:wd,disable:Ed,log:hd});function Cd(e){vd=e,yd=[],bd=[];let t=e.split(`,`).map(e=>e.trim());for(let e of t)e.startsWith(`-`)?bd.push(e.substring(1)):yd.push(e);for(let e of xd)e.enabled=wd(e.namespace)}function wd(e){if(e.endsWith(`*`))return!0;for(let t of bd)if(Td(e,t))return!1;for(let t of yd)if(Td(e,t))return!0;return!1}function Td(e,t){if(t.indexOf(`*`)===-1)return e===t;let n=t;if(t.indexOf(`**`)!==-1){let e=[],r=``;for(let n of t)if(n===`*`&&r===`*`)continue;else r=n,e.push(n);n=e.join(``)}let r=0,i=0,a=n.length,o=e.length,s=-1,c=-1;for(;r=0){if(i=s+1,r=c+1,r===o)return!1;for(;e[r]!==n[i];)if(r++,r===o)return!1;c=r,r++,i++;continue}else return!1;let l=r===e.length,u=i===n.length,d=i===n.length-1&&n[i]===`*`;return l&&(u||d)}function Ed(){let e=vd||``;return Cd(``),e}function Dd(e){let t=Object.assign(n,{enabled:wd(e),destroy:Od,log:Sd.log,namespace:e,extend:kd});function n(...n){t.enabled&&(n.length>0&&(n[0]=`${e} ${n[0]}`),t.log(...n))}return xd.push(t),t}function Od(){let e=xd.indexOf(this);return e>=0&&(xd.splice(e,1),!0)}function kd(e){let t=Dd(`${this.namespace}:${e}`);return t.log=this.log,t}const Ad=[`verbose`,`info`,`warning`,`error`],jd={verbose:400,info:300,warning:200,error:100};function Md(e,t){t.log=(...t)=>{e.log(...t)}}function Nd(e){return Ad.includes(e)}function Pd(e){let t=new Set,n=gd(e.logLevelEnvVarName),r,i=Sd(e.namespace);i.log=(...e)=>{Sd.log(...e)};function a(e){if(e&&!Nd(e))throw Error(`Unknown log level '${e}'. Acceptable values: ${Ad.join(`,`)}`);r=e;let n=[];for(let e of t)o(e)&&n.push(e.namespace);Sd.enable(n.join(`,`))}n&&(Nd(n)?a(n):console.error(`${e.logLevelEnvVarName} set to unknown log level '${n}'; logging is not enabled. Acceptable values: ${Ad.join(`, `)}.`));function o(e){return!!(r&&jd[e.level]<=jd[r])}function s(e,n){let r=Object.assign(e.extend(n),{level:n});if(Md(e,r),o(r)){let e=Sd.disable();Sd.enable(e+`,`+r.namespace)}return t.add(r),r}function c(){return r}function l(e){let t=i.extend(e);return Md(i,t),{error:s(t,`error`),warning:s(t,`warning`),info:s(t,`info`),verbose:s(t,`verbose`)}}return{setLogLevel:a,getLogLevel:c,createClientLogger:l,logger:i}}const Fd=Pd({logLevelEnvVarName:`TYPESPEC_RUNTIME_LOG_LEVEL`,namespace:`typeSpecRuntime`});Fd.logger;function Id(e){return Fd.createClientLogger(e)}function Ld(e){return e.toLowerCase()}function Rd(e){return String(e).trim().replace(/[\r\n]/g,``)}function*zd(e){for(let t of e.values())yield[t.name,t.value]}var Bd=class{_headersMap;constructor(e){if(this._headersMap=new Map,e)for(let t of Object.keys(e))this.set(t,e[t])}set(e,t){this._headersMap.set(Ld(e),{name:e,value:Rd(t)})}get(e){return this._headersMap.get(Ld(e))?.value}has(e){return this._headersMap.has(Ld(e))}delete(e){this._headersMap.delete(Ld(e))}toJSON(e={}){let t={};if(e.preserveCase)for(let e of this._headersMap.values())t[e.name]=e.value;else for(let[e,n]of this._headersMap)t[e]=n.value;return t}toString(){return JSON.stringify(this.toJSON({preserveCase:!0}))}[Symbol.iterator](){return zd(this._headersMap)}};function Vd(e){return new Bd(e)}function Hd(){return globalThis.crypto.randomUUID()}var Ud=class{url;method;headers;timeout;withCredentials;body;multipartBody;formData;streamResponseStatusCodes;enableBrowserStreams;proxySettings;disableKeepAlive;abortSignal;requestId;allowInsecureConnection;onUploadProgress;onDownloadProgress;requestOverrides;authSchemes;constructor(e){this.url=e.url,this.body=e.body,this.headers=e.headers??Vd(),this.method=e.method??`GET`,this.timeout=e.timeout??0,this.multipartBody=e.multipartBody,this.formData=e.formData,this.disableKeepAlive=e.disableKeepAlive??!1,this.proxySettings=e.proxySettings,this.streamResponseStatusCodes=e.streamResponseStatusCodes,this.withCredentials=e.withCredentials??!1,this.abortSignal=e.abortSignal,this.onUploadProgress=e.onUploadProgress,this.onDownloadProgress=e.onDownloadProgress,this.requestId=e.requestId||Hd(),this.allowInsecureConnection=e.allowInsecureConnection??!1,this.enableBrowserStreams=e.enableBrowserStreams??!1,this.requestOverrides=e.requestOverrides,this.authSchemes=e.authSchemes}};function Wd(e){return new Ud(e)}const Gd=new Set([`Deserialize`,`Serialize`,`Retry`,`Sign`]);var Kd=class e{_policies=[];_orderedPolicies;constructor(e){this._policies=e?.slice(0)??[],this._orderedPolicies=void 0}addPolicy(e,t={}){if(t.phase&&t.afterPhase)throw Error(`Policies inside a phase cannot specify afterPhase.`);if(t.phase&&!Gd.has(t.phase))throw Error(`Invalid phase name: ${t.phase}`);if(t.afterPhase&&!Gd.has(t.afterPhase))throw Error(`Invalid afterPhase name: ${t.afterPhase}`);this._policies.push({policy:e,options:t}),this._orderedPolicies=void 0}removePolicy(e){let t=[];return this._policies=this._policies.filter(n=>e.name&&n.policy.name===e.name||e.phase&&n.options.phase===e.phase?(t.push(n.policy),!1):!0),this._orderedPolicies=void 0,t}sendRequest(e,t){return this.getOrderedPolicies().reduceRight((e,t)=>n=>t.sendRequest(n,e),t=>e.sendRequest(t))(t)}getOrderedPolicies(){return this._orderedPolicies||=this.orderPolicies(),this._orderedPolicies}clone(){return new e(this._policies)}static create(){return new e}orderPolicies(){let e=[],t=new Map;function n(e){return{name:e,policies:new Set,hasRun:!1,hasAfterPolicies:!1}}let r=n(`Serialize`),i=n(`None`),a=n(`Deserialize`),o=n(`Retry`),s=n(`Sign`),c=[r,i,a,o,s];function l(e){return e===`Retry`?o:e===`Serialize`?r:e===`Deserialize`?a:e===`Sign`?s:i}for(let e of this._policies){let n=e.policy,r=e.options,i=n.name;if(t.has(i))throw Error(`Duplicate policy names not allowed in pipeline`);let a={policy:n,dependsOn:new Set,dependants:new Set};r.afterPhase&&(a.afterPhase=l(r.afterPhase),a.afterPhase.hasAfterPolicies=!0),t.set(i,a),l(r.phase).policies.add(a)}for(let e of this._policies){let{policy:n,options:r}=e,i=n.name,a=t.get(i);if(!a)throw Error(`Missing node for policy ${i}`);if(r.afterPolicies)for(let e of r.afterPolicies){let n=t.get(e);n&&(a.dependsOn.add(n),n.dependants.add(a))}if(r.beforePolicies)for(let e of r.beforePolicies){let n=t.get(e);n&&(n.dependsOn.add(a),a.dependants.add(n))}}function u(n){n.hasRun=!0;for(let r of n.policies)if(!(r.afterPhase&&(!r.afterPhase.hasRun||r.afterPhase.policies.size))&&r.dependsOn.size===0){e.push(r.policy);for(let e of r.dependants)e.dependsOn.delete(r);t.delete(r.policy.name),n.policies.delete(r)}}function d(){for(let e of c){if(u(e),e.policies.size>0&&e!==i){i.hasRun||u(i);return}e.hasAfterPolicies&&u(i)}}let f=0;for(;t.size>0;){f++;let t=e.length;if(d(),e.length<=t&&f>1)throw Error(`Cannot satisfy policy dependencies due to requirements cycle.`)}return e}};function qd(){return Kd.create()}function Jd(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&!(e instanceof RegExp)&&!(e instanceof Date)}function Yd(e){if(Jd(e)){let t=typeof e.name==`string`,n=typeof e.message==`string`;return t&&n}return!1}const Xd=I.custom,Zd=`REDACTED`,Qd=`x-ms-client-request-id.x-ms-return-client-request-id.x-ms-useragent.x-ms-correlation-request-id.x-ms-request-id.client-request-id.ms-cv.return-client-request-id.traceparent.Access-Control-Allow-Credentials.Access-Control-Allow-Headers.Access-Control-Allow-Methods.Access-Control-Allow-Origin.Access-Control-Expose-Headers.Access-Control-Max-Age.Access-Control-Request-Headers.Access-Control-Request-Method.Origin.Accept.Accept-Encoding.Cache-Control.Connection.Content-Length.Content-Type.Date.ETag.Expires.If-Match.If-Modified-Since.If-None-Match.If-Unmodified-Since.Last-Modified.Pragma.Request-Id.Retry-After.Server.Transfer-Encoding.User-Agent.WWW-Authenticate`.split(`.`),$d=[`api-version`];var ef=class{allowedHeaderNames;allowedQueryParameters;constructor({additionalAllowedHeaderNames:e=[],additionalAllowedQueryParameters:t=[]}={}){e=Qd.concat(e),t=$d.concat(t),this.allowedHeaderNames=new Set(e.map(e=>e.toLowerCase())),this.allowedQueryParameters=new Set(t.map(e=>e.toLowerCase()))}sanitize(e){let t=new Set;return JSON.stringify(e,(e,n)=>{if(n instanceof Error)return{...n,name:n.name,message:n.message};if(e===`headers`&&Jd(n))return this.sanitizeHeaders(n);if(e===`url`&&typeof n==`string`)return this.sanitizeUrl(n);if(e===`query`&&Jd(n))return this.sanitizeQuery(n);if(e!==`body`&&e!==`response`&&e!==`operationSpec`){if(Array.isArray(n)||Jd(n)){if(t.has(n))return`[Circular]`;t.add(n)}return n}},2)}sanitizeUrl(e){if(typeof e!=`string`||e===null||e===``)return e;let t=new URL(e);if(!t.search)return e;for(let[e]of t.searchParams)this.allowedQueryParameters.has(e.toLowerCase())||t.searchParams.set(e,Zd);return t.toString()}sanitizeHeaders(e){let t={};for(let n of Object.keys(e))t[n]=this.allowedHeaderNames.has(n.toLowerCase())?e[n]:Zd;return t}sanitizeQuery(e){if(typeof e!=`object`||!e)return e;let t={};for(let n of Object.keys(e))t[n]=this.allowedQueryParameters.has(n.toLowerCase())?e[n]:Zd;return t}};const tf=new ef;var nf=class e extends Error{static REQUEST_SEND_ERROR=`REQUEST_SEND_ERROR`;static PARSE_ERROR=`PARSE_ERROR`;code;statusCode;request;response;details;constructor(t,n={}){super(t),this.name=`RestError`,this.code=n.code,this.statusCode=n.statusCode,Object.defineProperty(this,"request",{value:n.request,enumerable:!1}),Object.defineProperty(this,"response",{value:n.response,enumerable:!1});let r=this.request?.agent?{maxFreeSockets:this.request.agent.maxFreeSockets,maxSockets:this.request.agent.maxSockets}:void 0;Object.defineProperty(this,Xd,{value:()=>`RestError: ${this.message} \n ${tf.sanitize({...this,request:{...this.request,agent:r},response:this.response})}`,enumerable:!1}),Object.setPrototypeOf(this,e.prototype)}};function rf(e){return e instanceof nf||Yd(e)&&e.name===`RestError`}function af(e,t){return Buffer.from(e).toString(t)}function of(e,t){return Buffer.from(e,t)}const sf=Id(`ts-http-runtime`),cf={};function lf(e){return e&&typeof e.pipe==`function`}function uf(e){return e.readable===!1?Promise.resolve():new Promise(t=>{let n=()=>{t(),e.removeListener(`close`,n),e.removeListener(`end`,n),e.removeListener(`error`,n)};e.on(`close`,n),e.on(`end`,n),e.on(`error`,n)})}function df(e){return e&&typeof e.byteLength==`number`}var ff=class extends N{loadedBytes=0;progressCallback;_transform(e,t,n){this.push(e),this.loadedBytes+=e.length;try{this.progressCallback({loadedBytes:this.loadedBytes}),n()}catch(e){n(e)}}constructor(e){super(),this.progressCallback=e}},pf=class{cachedHttpAgent;cachedHttpsAgents=new WeakMap;async sendRequest(e){let t=new AbortController,n;if(e.abortSignal){if(e.abortSignal.aborted)throw new md(`The operation was aborted. Request has already been canceled.`);n=e=>{e.type===`abort`&&t.abort()},e.abortSignal.addEventListener(`abort`,n)}let r;e.timeout>0&&(r=setTimeout(()=>{let n=new ef;sf.info(`request to '${n.sanitizeUrl(e.url)}' timed out. canceling...`),t.abort()},e.timeout));let i=e.headers.get(`Accept-Encoding`),a=i?.includes(`gzip`)||i?.includes(`deflate`),o=typeof e.body==`function`?e.body():e.body;if(o&&!e.headers.has(`Content-Length`)){let t=_f(o);t!==null&&e.headers.set(`Content-Length`,t)}let s;try{if(o&&e.onUploadProgress){let t=e.onUploadProgress,n=new ff(t);n.on(`error`,e=>{sf.error(`Error in upload progress`,e)}),lf(o)?o.pipe(n):n.end(o),o=n}let n=await this.makeRequest(e,t,o);r!==void 0&&clearTimeout(r);let i=mf(n),c={status:n.statusCode??0,headers:i,request:e};if(e.method===`HEAD`)return n.resume(),c;s=a?hf(n,i):n;let l=e.onDownloadProgress;if(l){let e=new ff(l);e.on(`error`,e=>{sf.error(`Error in download progress`,e)}),s.pipe(e),s=e}return e.streamResponseStatusCodes?.has(1/0)||e.streamResponseStatusCodes?.has(c.status)?c.readableStreamBody=s:c.bodyAsText=await gf(s),c}finally{if(e.abortSignal&&n){let t=Promise.resolve();lf(o)&&(t=uf(o));let r=Promise.resolve();lf(s)&&(r=uf(s)),Promise.all([t,r]).then(()=>{n&&e.abortSignal?.removeEventListener(`abort`,n)}).catch(e=>{sf.warning(`Error when cleaning up abortListener on httpRequest`,e)})}}}makeRequest(e,t,n){let r=new URL(e.url),i=r.protocol!==`https:`;if(i&&!e.allowInsecureConnection)throw Error(`Cannot connect to ${e.url} while allowInsecureConnection is false.`);let a={agent:e.agent??this.getOrCreateAgent(e,i),hostname:r.hostname,path:`${r.pathname}${r.search}`,port:r.port,method:e.method,headers:e.headers.toJSON({preserveCase:!0}),...e.requestOverrides};return new Promise((r,o)=>{let s=i?A.request(a,r):se.request(a,r);s.once(`error`,t=>{o(new nf(t.message,{code:t.code??nf.REQUEST_SEND_ERROR,request:e}))}),t.signal.addEventListener(`abort`,()=>{let e=new md(`The operation was aborted. Rejecting from abort signal callback while making request.`);s.destroy(e),o(e)}),n&&lf(n)?n.pipe(s):n?typeof n==`string`||Buffer.isBuffer(n)?s.end(n):df(n)?s.end(ArrayBuffer.isView(n)?Buffer.from(n.buffer,n.byteOffset,n.byteLength):Buffer.from(n)):(sf.error(`Unrecognized body type`,n),o(new nf(`Unrecognized body type`))):s.end()})}getOrCreateAgent(e,t){let n=e.disableKeepAlive;if(t)return n?A.globalAgent:(this.cachedHttpAgent||=new A.Agent({keepAlive:!0}),this.cachedHttpAgent);{if(n&&!e.tlsSettings)return se.globalAgent;let t=e.tlsSettings??cf,r=this.cachedHttpsAgents.get(t);return r&&r.options.keepAlive===!n?r:(sf.info(`No cached TLS Agent exist, creating a new Agent`),r=new se.Agent({keepAlive:!n,...t}),this.cachedHttpsAgents.set(t,r),r)}}};function mf(e){let t=Vd();for(let n of Object.keys(e.headers)){let r=e.headers[n];Array.isArray(r)?r.length>0&&t.set(n,r[0]):r&&t.set(n,r)}return t}function hf(e,t){let n=t.get(`Content-Encoding`);if(n===`gzip`){let t=L.createGunzip();return e.pipe(t),t}if(n===`deflate`){let t=L.createInflate();return e.pipe(t),t}return e}function gf(e){return new Promise((t,n)=>{let r=[];e.on(`data`,e=>{Buffer.isBuffer(e)?r.push(e):r.push(Buffer.from(e))}),e.on(`end`,()=>{t(Buffer.concat(r).toString(`utf8`))}),e.on(`error`,e=>{e&&e?.name===`AbortError`?n(e):n(new nf(`Error reading response as text: ${e.message}`,{code:nf.PARSE_ERROR}))})})}function _f(e){return e?Buffer.isBuffer(e)?e.length:lf(e)?null:df(e)?e.byteLength:typeof e==`string`?Buffer.from(e).length:null:0}function vf(){return new pf}function yf(){return vf()}function bf(e={}){let t=e.logger??sf.info,n=new ef({additionalAllowedHeaderNames:e.additionalAllowedHeaderNames,additionalAllowedQueryParameters:e.additionalAllowedQueryParameters});return{name:`logPolicy`,async sendRequest(e,r){if(!t.enabled)return r(e);t(`Request: ${n.sanitize(e)}`);let i=await r(e);return t(`Response status code: ${i.status}`),t(`Headers: ${n.sanitize({headers:i.headers})}`),i}}}function xf(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e}function Sf(e,t){let n=t.retryDelayInMs*2**e,r=Math.min(t.maxRetryDelayInMs,n);return{retryAfterInMs:r/2+xf(0,r/2)}}function Cf(e,t,n){return new Promise((r,i)=>{let a,o,s=()=>i(new md(n?.abortErrorMsg?n?.abortErrorMsg:`The operation was aborted.`)),c=()=>{n?.abortSignal&&o&&n.abortSignal.removeEventListener(`abort`,o)};if(o=()=>(a&&clearTimeout(a),c(),s()),n?.abortSignal&&n.abortSignal.aborted)return s();a=setTimeout(()=>{c(),r(t)},e),n?.abortSignal&&n.abortSignal.addEventListener(`abort`,o)})}function wf(e,t){let n=e.headers.get(t);if(!n)return;let r=Number(n);if(!Number.isNaN(r))return r}const Tf=`Retry-After`,Ef=[`retry-after-ms`,`x-ms-retry-after-ms`,Tf];function Df(e){if(e&&[429,503].includes(e.status))try{for(let t of Ef){let n=wf(e,t);if(n===0||n)return n*(t===Tf?1e3:1)}let t=e.headers.get(Tf);if(!t)return;let n=Date.parse(t)-Date.now();return Number.isFinite(n)?Math.max(0,n):void 0}catch{return}}function Of(e){return Number.isFinite(Df(e))}function kf(){return{name:`throttlingRetryStrategy`,retry({response:e}){let t=Df(e);return Number.isFinite(t)?{retryAfterInMs:t}:{skipStrategy:!0}}}}function Af(e={}){let t=e.retryDelayInMs??1e3,n=e.maxRetryDelayInMs??64e3;return{name:`exponentialRetryStrategy`,retry({retryCount:r,response:i,responseError:a}){let o=Mf(a),s=o&&e.ignoreSystemErrors,c=jf(i),l=c&&e.ignoreHttpStatusCodes;return i&&(Of(i)||!c)||l||s?{skipStrategy:!0}:a&&!o&&!c?{errorToThrow:a}:Sf(r,{retryDelayInMs:t,maxRetryDelayInMs:n})}}}function jf(e){return!!(e&&e.status!==void 0&&(e.status>=500||e.status===408)&&e.status!==501&&e.status!==505)}function Mf(e){return e?e.code===`ETIMEDOUT`||e.code===`ESOCKETTIMEDOUT`||e.code===`ECONNREFUSED`||e.code===`ECONNRESET`||e.code===`ENOENT`||e.code===`ENOTFOUND`:!1}const Nf=Id(`ts-http-runtime retryPolicy`);function Pf(e,t={maxRetries:3}){let n=t.logger||Nf;return{name:`retryPolicy`,async sendRequest(r,i){let a,o,s=-1;retryRequest:for(;;){s+=1,a=void 0,o=void 0;try{n.info(`Retry ${s}: Attempting to send request`,r.requestId),a=await i(r),n.info(`Retry ${s}: Received a response from request`,r.requestId)}catch(e){if(n.error(`Retry ${s}: Received an error from request`,r.requestId),!rf(e))throw e;o=e,a=e.response}if(r.abortSignal?.aborted)throw n.error(`Retry ${s}: Request aborted.`),new md;if(s>=(t.maxRetries??3)){if(n.info(`Retry ${s}: Maximum retries reached. Returning the last received response, or throwing the last received error.`),o)throw o;if(a)return a;throw Error(`Maximum retries reached with no response or error to throw`)}n.info(`Retry ${s}: Processing ${e.length} retry strategies.`);strategiesLoop:for(let t of e){let e=t.logger||n;e.info(`Retry ${s}: Processing retry strategy ${t.name}.`);let i=t.retry({retryCount:s,response:a,responseError:o});if(i.skipStrategy){e.info(`Retry ${s}: Skipped.`);continue strategiesLoop}let{errorToThrow:c,retryAfterInMs:l,redirectTo:u}=i;if(c)throw e.error(`Retry ${s}: Retry strategy ${t.name} throws error:`,c),c;if(l||l===0){e.info(`Retry ${s}: Retry strategy ${t.name} retries after ${l}`),await Cf(l,void 0,{abortSignal:r.abortSignal});continue retryRequest}if(u){e.info(`Retry ${s}: Retry strategy ${t.name} redirects to ${u}`),r.url=u;continue retryRequest}}if(o)throw n.info(`None of the retry strategies could work with the received error. Throwing it.`),o;if(a)return n.info(`None of the retry strategies could work with the received response. Returning it.`),a}}}}function Ff(e={}){return{name:`defaultRetryPolicy`,sendRequest:Pf([kf(),Af(e)],{maxRetries:e.maxRetries??3}).sendRequest}}function If(e){if(typeof FormData<`u`&&e instanceof FormData){let t={};for(let[n,r]of e.entries()){let e=t[n];Array.isArray(e)?e.push(r):t[n]=e===void 0?[r]:[e,r]}return t}}function Lf(){return{name:`formDataPolicy`,async sendRequest(e,t){let n=If(e.body);if(n&&(e.formData=n,e.body=void 0),e.formData){let t=e.headers.get(`Content-Type`);t&&t.indexOf(`application/x-www-form-urlencoded`)!==-1?e.body=Rf(e.formData):await zf(e.formData,e),e.formData=void 0}return t(e)}}}function Rf(e){let t=new URLSearchParams;for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.append(n,e.toString());else t.append(n,r.toString());return t.toString()}async function zf(e,t){let n=t.headers.get(`Content-Type`);if(n&&!n.startsWith(`multipart/form-data`))return;t.headers.set(`Content-Type`,n??`multipart/form-data`);let r=[];for(let[t,n]of Object.entries(e))for(let e of Array.isArray(n)?n:[n])if(typeof e==`string`)r.push({headers:Vd({"Content-Disposition":`form-data; name="${t}"`}),body:of(e,`utf-8`)});else if(typeof e!=`object`||!e)throw Error(`Unexpected value for key ${t}: ${e}. Value should be serialized to string first.`);else{let n=e.name||`blob`,i=Vd();i.set(`Content-Disposition`,`form-data; name="${t}"; filename="${n}"`),i.set(`Content-Type`,e.type||`application/octet-stream`),r.push({headers:i,body:e})}t.multipartBody={parts:r}}function Bf(e){return{name:`agentPolicy`,sendRequest:async(t,n)=>(t.agent||=e,n(t))}}function Vf(e){return{name:`tlsPolicy`,sendRequest:async(t,n)=>(t.tlsSettings||=e,n(t))}}var Hf=J(((e,t)=>{var n=1e3,r=n*60,i=r*60,a=i*24,o=a*7,s=a*365.25;t.exports=function(e,t){t||={};var n=typeof e;if(n===`string`&&e.length>0)return c(e);if(n===`number`&&isFinite(e))return t.long?u(e):l(e);throw Error(`val is not a non-empty string or a valid number. val=`+JSON.stringify(e))};function c(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var c=parseFloat(t[1]);switch((t[2]||`ms`).toLowerCase()){case`years`:case`year`:case`yrs`:case`yr`:case`y`:return c*s;case`weeks`:case`week`:case`w`:return c*o;case`days`:case`day`:case`d`:return c*a;case`hours`:case`hour`:case`hrs`:case`hr`:case`h`:return c*i;case`minutes`:case`minute`:case`mins`:case`min`:case`m`:return c*r;case`seconds`:case`second`:case`secs`:case`sec`:case`s`:return c*n;case`milliseconds`:case`millisecond`:case`msecs`:case`msec`:case`ms`:return c;default:return}}}}function l(e){var t=Math.abs(e);return t>=a?Math.round(e/a)+`d`:t>=i?Math.round(e/i)+`h`:t>=r?Math.round(e/r)+`m`:t>=n?Math.round(e/n)+`s`:e+`ms`}function u(e){var t=Math.abs(e);return t>=a?d(e,t,a,`day`):t>=i?d(e,t,i,`hour`):t>=r?d(e,t,r,`minute`):t>=n?d(e,t,n,`second`):e+` ms`}function d(e,t,n,r){var i=t>=n*1.5;return Math.round(e/n)+` `+r+(i?`s`:``)}})),Uf=J(((e,t)=>{function n(e){n.debug=n,n.default=n,n.coerce=c,n.disable=o,n.enable=i,n.enabled=s,n.humanize=Hf(),n.destroy=l,Object.keys(e).forEach(t=>{n[t]=e[t]}),n.names=[],n.skips=[],n.formatters={};function t(e){let t=0;for(let n=0;n{if(t===`%%`)return`%`;a++;let o=n.formatters[i];if(typeof o==`function`){let n=e[a];t=o.call(r,n),e.splice(a,1),a--}return t}),n.formatArgs.call(r,e),(r.log||n.log).apply(r,e)}return s.namespace=e,s.useColors=n.useColors(),s.color=n.selectColor(e),s.extend=r,s.destroy=n.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>i===null?(a!==n.namespaces&&(a=n.namespaces,o=n.enabled(e)),o):i,set:e=>{i=e}}),typeof n.init==`function`&&n.init(s),s}function r(e,t){let r=n(this.namespace+(t===void 0?`:`:t)+e);return r.log=this.log,r}function i(e){n.save(e),n.namespaces=e,n.names=[],n.skips=[];let t=(typeof e==`string`?e:``).trim().replace(/\s+/g,`,`).split(`,`).filter(Boolean);for(let e of t)e[0]===`-`?n.skips.push(e.slice(1)):n.names.push(e)}function a(e,t){let n=0,r=0,i=-1,a=0;for(;n`-`+e)].join(`,`);return n.enable(``),e}function s(e){for(let t of n.skips)if(a(e,t))return!1;for(let t of n.names)if(a(e,t))return!0;return!1}function c(e){return e instanceof Error?e.stack||e.message:e}function l(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}t.exports=n})),Wf=J(((e,t)=>{e.formatArgs=r,e.save=i,e.load=a,e.useColors=n,e.storage=o(),e.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=`#0000CC.#0000FF.#0033CC.#0033FF.#0066CC.#0066FF.#0099CC.#0099FF.#00CC00.#00CC33.#00CC66.#00CC99.#00CCCC.#00CCFF.#3300CC.#3300FF.#3333CC.#3333FF.#3366CC.#3366FF.#3399CC.#3399FF.#33CC00.#33CC33.#33CC66.#33CC99.#33CCCC.#33CCFF.#6600CC.#6600FF.#6633CC.#6633FF.#66CC00.#66CC33.#9900CC.#9900FF.#9933CC.#9933FF.#99CC00.#99CC33.#CC0000.#CC0033.#CC0066.#CC0099.#CC00CC.#CC00FF.#CC3300.#CC3333.#CC3366.#CC3399.#CC33CC.#CC33FF.#CC6600.#CC6633.#CC9900.#CC9933.#CCCC00.#CCCC33.#FF0000.#FF0033.#FF0066.#FF0099.#FF00CC.#FF00FF.#FF3300.#FF3333.#FF3366.#FF3399.#FF33CC.#FF33FF.#FF6600.#FF6633.#FF9900.#FF9933.#FFCC00.#FFCC33`.split(`.`);function n(){if(typeof window<`u`&&window.process&&(window.process.type===`renderer`||window.process.__nwjs))return!0;if(typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<`u`&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<`u`&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<`u`&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function r(e){if(e[0]=(this.useColors?`%c`:``)+this.namespace+(this.useColors?` %c`:` `)+e[0]+(this.useColors?`%c `:` `)+`+`+t.exports.humanize(this.diff),!this.useColors)return;let n=`color: `+this.color;e.splice(1,0,n,`color: inherit`);let r=0,i=0;e[0].replace(/%[a-zA-Z%]/g,e=>{e!==`%%`&&(r++,e===`%c`&&(i=r))}),e.splice(i,0,n)}e.log=console.debug||console.log||(()=>{});function i(t){try{t?e.storage.setItem(`debug`,t):e.storage.removeItem(`debug`)}catch{}}function a(){let t;try{t=e.storage.getItem(`debug`)||e.storage.getItem(`DEBUG`)}catch{}return!t&&typeof process<`u`&&`env`in process&&(t=process.env.DEBUG),t}function o(){try{return localStorage}catch{}}t.exports=Uf()(e);let{formatters:s}=t.exports;s.j=function(e){try{return JSON.stringify(e)}catch(e){return`[UnexpectedJSONParseError]: `+e.message}}})),Gf=J(((e,t)=>{let n=Y(`tty`),r=Y(`util`);e.init=u,e.log=s,e.formatArgs=a,e.save=c,e.load=l,e.useColors=i,e.destroy=r.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),e.colors=[6,2,3,4,5,1];try{let t=Y(`supports-color`);t&&(t.stderr||t).level>=2&&(e.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}e.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(e,t)=>t.toUpperCase()),r=process.env[t];return r=/^(yes|on|true|enabled)$/i.test(r)?!0:/^(no|off|false|disabled)$/i.test(r)?!1:r===`null`?null:Number(r),e[n]=r,e},{});function i(){return`colors`in e.inspectOpts?!!e.inspectOpts.colors:n.isatty(process.stderr.fd)}function a(e){let{namespace:n,useColors:r}=this;if(r){let r=this.color,i=`\x1B[3`+(r<8?r:`8;5;`+r),a=` ${i};1m${n} \u001B[0m`;e[0]=a+e[0].split(` +`).join(` +`+a),e.push(i+`m+`+t.exports.humanize(this.diff)+`\x1B[0m`)}else e[0]=o()+n+` `+e[0]}function o(){return e.inspectOpts.hideDate?``:new Date().toISOString()+` `}function s(...t){return process.stderr.write(r.formatWithOptions(e.inspectOpts,...t)+` +`)}function c(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function l(){return process.env.DEBUG}function u(t){t.inspectOpts={};let n=Object.keys(e.inspectOpts);for(let r=0;re.trim()).join(` `)},d.O=function(e){return this.inspectOpts.colors=this.useColors,r.inspect(e,this.inspectOpts)}})),Kf=J(((e,t)=>{t.exports=typeof process>`u`||process.type===`renderer`||process.browser===!0||process.__nwjs?Wf():Gf()})),qf=J((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r};Object.defineProperty(e,"__esModule",{value:!0}),e.req=e.json=e.toBuffer=void 0;let i=r(Y(`http`)),a=r(Y(`https`));async function o(e){let t=0,n=[];for await(let r of e)t+=r.length,n.push(r);return Buffer.concat(n,t)}e.toBuffer=o;async function s(e){let t=(await o(e)).toString(`utf8`);try{return JSON.parse(t)}catch(e){let n=e;throw n.message+=` (input: ${t})`,n}}e.json=s;function c(e,t={}){let n=((typeof e==`string`?e:e.href).startsWith(`https:`)?a:i).request(e,t),r=new Promise((e,t)=>{n.once(`response`,e).once(`error`,t).end()});return n.then=r.then.bind(r),n}e.req=c})),Jf=J((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r},i=e&&e.__exportStar||function(e,n){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(n,r)&&t(n,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.Agent=void 0;let a=r(Y(`net`)),o=r(Y(`http`)),s=Y(`https`);i(qf(),e);let c=Symbol(`AgentBaseInternalState`);e.Agent=class extends o.Agent{constructor(e){super(e),this[c]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint==`boolean`)return e.secureEndpoint;if(typeof e.protocol==`string`)return e.protocol===`https:`}let{stack:t}=Error();return typeof t==`string`&&t.split(` +`).some(e=>e.indexOf(`(https.js:`)!==-1||e.indexOf(`node:https:`)!==-1)}incrementSockets(e){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[e]||(this.sockets[e]=[]);let t=new a.Socket({writable:!1});return this.sockets[e].push(t),this.totalSocketCount++,t}decrementSockets(e,t){if(!this.sockets[e]||t===null)return;let n=this.sockets[e],r=n.indexOf(t);r!==-1&&(n.splice(r,1),this.totalSocketCount--,n.length===0&&delete this.sockets[e])}getName(e){return this.isSecureEndpoint(e)?s.Agent.prototype.getName.call(this,e):super.getName(e)}createSocket(e,t,n){let r={...t,secureEndpoint:this.isSecureEndpoint(t)},i=this.getName(r),a=this.incrementSockets(i);Promise.resolve().then(()=>this.connect(e,r)).then(s=>{if(this.decrementSockets(i,a),s instanceof o.Agent)try{return s.addRequest(e,r)}catch(e){return n(e)}this[c].currentSocket=s,super.createSocket(e,t,n)},e=>{this.decrementSockets(i,a),n(e)})}createConnection(){let e=this[c].currentSocket;if(this[c].currentSocket=void 0,!e)throw Error("No socket was returned in the `connect()` function");return e}get defaultPort(){return this[c].defaultPort??(this.protocol===`https:`?443:80)}set defaultPort(e){this[c]&&(this[c].defaultPort=e)}get protocol(){return this[c].protocol??(this.isSecureEndpoint()?`https:`:`http:`)}set protocol(e){this[c]&&(this[c].protocol=e)}}})),Yf=J((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.parseProxyResponse=void 0;let n=(0,t(Kf()).default)(`https-proxy-agent:parse-proxy-response`);function r(e){return new Promise((t,r)=>{let i=0,a=[];function o(){let t=e.read();t?u(t):e.once(`readable`,o)}function s(){e.removeListener(`end`,c),e.removeListener(`error`,l),e.removeListener(`readable`,o)}function c(){s(),n(`onend`),r(Error(`Proxy connection ended before receiving CONNECT response`))}function l(e){s(),n(`onerror %o`,e),r(e)}function u(c){a.push(c),i+=c.length;let l=Buffer.concat(a,i),u=l.indexOf(`\r +\r +`);if(u===-1){n(`have not received end of HTTP headers yet...`),o();return}let d=l.slice(0,u).toString(`ascii`).split(`\r +`),f=d.shift();if(!f)return e.destroy(),r(Error(`No header received from proxy CONNECT response`));let p=f.split(` `),m=+p[1],h=p.slice(2).join(` `),g={};for(let t of d){if(!t)continue;let n=t.indexOf(`:`);if(n===-1)return e.destroy(),r(Error(`Invalid header from proxy CONNECT response: "${t}"`));let i=t.slice(0,n).toLowerCase(),a=t.slice(n+1).trimStart(),o=g[i];typeof o==`string`?g[i]=[o,a]:Array.isArray(o)?o.push(a):g[i]=a}n(`got proxy server response: %o %o`,f,g),s(),t({connect:{statusCode:m,statusText:h,headers:g},buffered:l})}e.on(`error`,l),e.on(`end`,c),o()})}e.parseProxyResponse=r})),Xf=J((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r},i=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.HttpsProxyAgent=void 0;let a=r(Y(`net`)),o=r(Y(`tls`)),s=i(Y(`assert`)),c=i(Kf()),l=Jf(),u=Y(`url`),d=Yf(),f=(0,c.default)(`https-proxy-agent`),p=e=>e.servername===void 0&&e.host&&!a.isIP(e.host)?{...e,servername:e.host}:e;var m=class extends l.Agent{constructor(e,t){super(t),this.options={path:void 0},this.proxy=typeof e==`string`?new u.URL(e):e,this.proxyHeaders=t?.headers??{},f(`Creating new HttpsProxyAgent instance: %o`,this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,``),r=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol===`https:`?443:80;this.connectOpts={ALPNProtocols:[`http/1.1`],...t?g(t,`headers`):null,host:n,port:r}}async connect(e,t){let{proxy:n}=this;if(!t.host)throw TypeError(`No "host" provided`);let r;n.protocol===`https:`?(f("Creating `tls.Socket`: %o",this.connectOpts),r=o.connect(p(this.connectOpts))):(f("Creating `net.Socket`: %o",this.connectOpts),r=a.connect(this.connectOpts));let i=typeof this.proxyHeaders==`function`?this.proxyHeaders():{...this.proxyHeaders},c=a.isIPv6(t.host)?`[${t.host}]`:t.host,l=`CONNECT ${c}:${t.port} HTTP/1.1\r\n`;if(n.username||n.password){let e=`${decodeURIComponent(n.username)}:${decodeURIComponent(n.password)}`;i[`Proxy-Authorization`]=`Basic ${Buffer.from(e).toString(`base64`)}`}i.Host=`${c}:${t.port}`,i[`Proxy-Connection`]||=this.keepAlive?`Keep-Alive`:`close`;for(let e of Object.keys(i))l+=`${e}: ${i[e]}\r\n`;let u=(0,d.parseProxyResponse)(r);r.write(`${l}\r\n`);let{connect:m,buffered:v}=await u;if(e.emit(`proxyConnect`,m),this.emit(`proxyConnect`,m,e),m.statusCode===200)return e.once(`socket`,h),t.secureEndpoint?(f(`Upgrading socket connection to TLS`),o.connect({...g(p(t),`host`,`path`,`port`),socket:r})):r;r.destroy();let y=new a.Socket({writable:!1});return y.readable=!0,e.once(`socket`,e=>{f(`Replaying proxy buffer for failed request`),(0,s.default)(e.listenerCount(`data`)>0),e.push(v),e.push(null)}),y}};m.protocols=[`http`,`https`],e.HttpsProxyAgent=m;function h(e){e.resume()}function g(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}})),Zf=J((e=>{var t=e&&e.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||(`get`in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),n=e&&e.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),r=e&&e.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var i in e)i!=="default"&&Object.prototype.hasOwnProperty.call(e,i)&&t(r,e,i);return n(r,e),r},i=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.HttpProxyAgent=void 0;let a=r(Y(`net`)),o=r(Y(`tls`)),s=i(Kf()),c=Y(`events`),l=Jf(),u=Y(`url`),d=(0,s.default)(`http-proxy-agent`);var f=class extends l.Agent{constructor(e,t){super(t),this.proxy=typeof e==`string`?new u.URL(e):e,this.proxyHeaders=t?.headers??{},d(`Creating new HttpProxyAgent instance: %o`,this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,``),r=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol===`https:`?443:80;this.connectOpts={...t?p(t,`headers`):null,host:n,port:r}}addRequest(e,t){e._header=null,this.setRequestProps(e,t),super.addRequest(e,t)}setRequestProps(e,t){let{proxy:n}=this,r=`${t.secureEndpoint?`https:`:`http:`}//${e.getHeader(`host`)||`localhost`}`,i=new u.URL(e.path,r);t.port!==80&&(i.port=String(t.port)),e.path=String(i);let a=typeof this.proxyHeaders==`function`?this.proxyHeaders():{...this.proxyHeaders};if(n.username||n.password){let e=`${decodeURIComponent(n.username)}:${decodeURIComponent(n.password)}`;a[`Proxy-Authorization`]=`Basic ${Buffer.from(e).toString(`base64`)}`}a[`Proxy-Connection`]||=this.keepAlive?`Keep-Alive`:`close`;for(let t of Object.keys(a)){let n=a[t];n&&e.setHeader(t,n)}}async connect(e,t){e._header=null,e.path.includes(`://`)||this.setRequestProps(e,t);let n,r;d(`Regenerating stored HTTP header string for request`),e._implicitHeader(),e.outputData&&e.outputData.length>0&&(d(`Patching connection write() output buffer with updated header`),n=e.outputData[0].data,r=n.indexOf(`\r +\r +`)+4,e.outputData[0].data=e._header+n.substring(r),d(`Output buffer: %o`,e.outputData[0].data));let i;return this.proxy.protocol===`https:`?(d("Creating `tls.Socket`: %o",this.connectOpts),i=o.connect(this.connectOpts)):(d("Creating `net.Socket`: %o",this.connectOpts),i=a.connect(this.connectOpts)),await(0,c.once)(i,`connect`),i}};f.protocols=[`http`,`https`],e.HttpProxyAgent=f;function p(e,...t){let n={},r;for(r in e)t.includes(r)||(n[r]=e[r]);return n}})),Qf=Xf(),$f=Zf();const ep=[];let tp=!1;const np=new Map;function rp(e){if(process.env[e])return process.env[e];if(process.env[e.toLowerCase()])return process.env[e.toLowerCase()]}function ip(){if(!process)return;let e=rp(`HTTPS_PROXY`),t=rp(`ALL_PROXY`),n=rp(`HTTP_PROXY`);return e||t||n}function ap(e,t,n){if(t.length===0)return!1;let r=new URL(e).hostname;if(n?.has(r))return n.get(r);let i=!1;for(let e of t)e[0]===`.`?(r.endsWith(e)||r.length===e.length-1&&r===e.slice(1))&&(i=!0):r===e&&(i=!0);return n?.set(r,i),i}function op(){let e=rp(`NO_PROXY`);return tp=!0,e?e.split(`,`).map(e=>e.trim()).filter(e=>e.length):[]}function sp(e){if(!e&&(e=ip(),!e))return;let t=new URL(e);return{host:(t.protocol?t.protocol+`//`:``)+t.hostname,port:Number.parseInt(t.port||`80`),username:t.username,password:t.password}}function cp(){let e=ip();return e?new URL(e):void 0}function lp(e){let t;try{t=new URL(e.host)}catch{throw Error(`Expecting a valid host string in proxy settings, but found "${e.host}".`)}return t.port=String(e.port),e.username&&(t.username=e.username),e.password&&(t.password=e.password),t}function up(e,t,n){if(e.agent)return;let r=new URL(e.url).protocol!==`https:`;e.tlsSettings&&sf.warning(`TLS settings are not supported in combination with custom Proxy, certificates provided to the client will be ignored.`),r?(t.httpProxyAgent||=new $f.HttpProxyAgent(n),e.agent=t.httpProxyAgent):(t.httpsProxyAgent||=new Qf.HttpsProxyAgent(n),e.agent=t.httpsProxyAgent)}function dp(e,t){tp||ep.push(...op());let n=e?lp(e):cp(),r={};return{name:`proxyPolicy`,async sendRequest(e,i){return!e.proxySettings&&n&&!ap(e.url,t?.customNoProxyList??ep,t?.customNoProxyList?void 0:np)?up(e,r,n):e.proxySettings&&up(e,r,lp(e.proxySettings)),i(e)}}}function fp(){return{name:`decompressResponsePolicy`,async sendRequest(e,t){return e.method!==`HEAD`&&e.headers.set(`Accept-Encoding`,`gzip,deflate`),t(e)}}}const pp=[`GET`,`HEAD`];function mp(e={}){let{maxRetries:t=20,allowCrossOriginRedirects:n=!1}=e;return{name:`redirectPolicy`,async sendRequest(e,r){return hp(r,await r(e),t,n)}}}async function hp(e,t,n,r,i=0){let{request:a,status:o,headers:s}=t,c=s.get(`location`);if(c&&(o===300||o===301&&pp.includes(a.method)||o===302&&pp.includes(a.method)||o===303&&a.method===`POST`||o===307)&&itypeof e==`function`?e():e).map(bp);return le.from((async function*(){for(let e of t)for await(let t of e)yield t})())}}function Sp(){return`----AzSDKFormBoundary${Hd()}`}function Cp(e){let t=``;for(let[n,r]of e)t+=`${n}: ${r}\r\n`;return t}function wp(e){if(e instanceof Uint8Array)return e.byteLength;if(gp(e))return e.size===-1?void 0:e.size}function Tp(e){let t=0;for(let n of e){let e=wp(n);if(e===void 0)return;t+=e}return t}async function Ep(e,t,n){let r=[of(`--${n}`,`utf-8`),...t.flatMap(e=>[of(`\r +`,`utf-8`),of(Cp(e.headers),`utf-8`),of(`\r +`,`utf-8`),e.body,of(`\r\n--${n}`,`utf-8`)]),of(`--\r +\r +`,`utf-8`)],i=Tp(r);i&&e.headers.set(`Content-Length`,i),e.body=await xp(r)}const Dp=`multipartPolicy`,Op=new Set(`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'()+,-./:=?`);function kp(e){if(e.length>70)throw Error(`Multipart boundary "${e}" exceeds maximum length of 70 characters`);if(Array.from(e).some(e=>!Op.has(e)))throw Error(`Multipart boundary "${e}" contains invalid characters`)}function Ap(){return{name:Dp,async sendRequest(e,t){if(!e.multipartBody)return t(e);if(e.body)throw Error(`multipartBody and regular body cannot be set at the same time`);let n=e.multipartBody.boundary,r=e.headers.get(`Content-Type`)??`multipart/mixed`,i=r.match(/^(multipart\/[^ ;]+)(?:; *boundary=(.+))?$/);if(!i)throw Error(`Got multipart request body, but content-type header was not multipart: ${r}`);let[,a,o]=i;if(o&&n&&o!==n)throw Error(`Multipart boundary was specified as ${o} in the header, but got ${n} in the request body`);return n??=o,n?kp(n):n=Sp(),e.headers.set(`Content-Type`,`${a}; boundary=${n}`),await Ep(e,e.multipartBody.parts,n),e.multipartBody=void 0,t(e)}}}function jp(){return qd()}const Mp=Pd({logLevelEnvVarName:`AZURE_LOG_LEVEL`,namespace:`azure`});Mp.logger;function Np(e){return Mp.createClientLogger(e)}const Pp=Np(`core-rest-pipeline`);function Fp(e={}){return bf({logger:Pp.info,...e})}function Ip(e={}){return mp(e)}function Lp(){return`User-Agent`}async function Rp(e){if(U&&U.versions){let t=`${ae.type()} ${ae.release()}; ${ae.arch()}`;U.versions.bun?e.set(`Bun`,`${U.versions.bun} (${t})`):U.versions.deno?e.set(`Deno`,`${U.versions.deno} (${t})`):U.versions.node&&e.set(`Node`,`${U.versions.node} (${t})`)}}const zp=`1.25.0`;function Bp(e){let t=[];for(let[n,r]of e){let e=r?`${n}/${r}`:n;t.push(e)}return t.join(` `)}function Vp(){return Lp()}async function Hp(e){let t=new Map;t.set(`core-rest-pipeline`,zp),await Rp(t);let n=Bp(t);return e?`${e} ${n}`:n}const Up=Vp();function Wp(e={}){let t=Hp(e.userAgentPrefix);return{name:`userAgentPolicy`,async sendRequest(e,n){return e.headers.has(Up)||e.headers.set(Up,await t),n(e)}}}const Gp=Symbol(`rawContent`);function Kp(e){return typeof e[Gp]==`function`}function qp(e){return Kp(e)?e[Gp]():e}const Jp=Dp;function Yp(){let e=Ap();return{name:Jp,sendRequest:async(t,n)=>{if(t.multipartBody)for(let e of t.multipartBody.parts)Kp(e.body)&&(e.body=qp(e.body));return e.sendRequest(t,n)}}}function Xp(){return fp()}function Zp(e={}){return Ff(e)}function Qp(){return Lf()}var $p=class extends Error{constructor(e){super(e),this.name=`AbortError`}};function em(e,t){let{cleanupBeforeAbort:n,abortSignal:r,abortErrorMsg:i}=t??{};return new Promise((t,a)=>{function o(){a(new $p(i??`The operation was aborted.`))}function s(){r?.removeEventListener(`abort`,c)}function c(){n?.(),s(),o()}if(r?.aborted)return o();try{e(e=>{s(),t(e)},e=>{s(),a(e)})}catch(e){a(e)}r?.addEventListener(`abort`,c)})}function tm(e,t){let n,{abortSignal:r,abortErrorMsg:i}=t??{};return em(t=>{n=setTimeout(t,e)},{cleanupBeforeAbort:()=>clearTimeout(n),abortSignal:r,abortErrorMsg:i??`The delay was aborted.`})}function nm(e){if(Yd(e))return e.message;{let t;try{t=typeof e==`object`&&e?JSON.stringify(e):String(e)}catch{t=`[unable to stringify input]`}return`Unknown error ${t}`}}function rm(e){return Yd(e)}function im(){return Hd()}function am(e,t){return af(e,t)}function om(e,t){return of(e,t)}function sm(e){return sp(e)}function cm(e,t){return dp(e,t)}function lm(e=`x-ms-client-request-id`){return{name:`setClientRequestIdPolicy`,async sendRequest(t,n){return t.headers.has(e)||t.headers.set(e,t.requestId),n(t)}}}function um(e){return Bf(e)}function dm(e){return Vf(e)}const fm={span:Symbol.for(`@azure/core-tracing span`),namespace:Symbol.for(`@azure/core-tracing namespace`)};function pm(e={}){let t=new mm(e.parentContext);return e.span&&(t=t.setValue(fm.span,e.span)),e.namespace&&(t=t.setValue(fm.namespace,e.namespace)),t}var mm=class e{_contextMap;constructor(t){this._contextMap=t instanceof e?new Map(t._contextMap):new Map}setValue(t,n){let r=new e(this);return r._contextMap.set(t,n),r}getValue(e){return this._contextMap.get(e)}deleteValue(t){let n=new e(this);return n._contextMap.delete(t),n}};const hm=J((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.state=void 0,e.state={instrumenterImplementation:void 0}}))().state;function gm(){return{end:()=>{},isRecording:()=>!1,recordException:()=>{},setAttribute:()=>{},setStatus:()=>{},addEvent:()=>{}}}function _m(){return{createRequestHeaders:()=>({}),parseTraceparentHeader:()=>{},startSpan:(e,t)=>({span:gm(),tracingContext:pm({parentContext:t.tracingContext})}),withContext(e,t,...n){return t(...n)}}}function vm(){return hm.instrumenterImplementation||=_m(),hm.instrumenterImplementation}function ym(e){let{namespace:t,packageName:n,packageVersion:r}=e;function i(e,i,a){let o=vm().startSpan(e,{...a,packageName:n,packageVersion:r,tracingContext:i?.tracingOptions?.tracingContext}),s=o.tracingContext,c=o.span;return s.getValue(fm.namespace)||(s=s.setValue(fm.namespace,t)),c.setAttribute(`az.namespace`,s.getValue(fm.namespace)),{span:c,updatedOptions:Object.assign({},i,{tracingOptions:{...i?.tracingOptions,tracingContext:s}})}}async function a(e,t,n,r){let{span:a,updatedOptions:s}=i(e,t,r);try{let e=await o(s.tracingOptions.tracingContext,()=>n(s,a));return a.setStatus({status:`success`}),e}catch(e){throw a.setStatus({status:`error`,error:e}),e}finally{a.end()}}function o(e,t,...n){return vm().withContext(e,t,...n)}function s(e){return vm().parseTraceparentHeader(e)}function c(e){return vm().createRequestHeaders(e)}return{startSpan:i,withSpan:a,withContext:o,parseTraceparentHeader:s,createRequestHeaders:c}}const bm=nf;function xm(e){return rf(e)}function Sm(e={}){let t=Hp(e.userAgentPrefix),n=new ef({additionalAllowedQueryParameters:e.additionalAllowedQueryParameters}),r=Cm();return{name:`tracingPolicy`,async sendRequest(e,i){if(!r)return i(e);let a=await t,o={"http.url":n.sanitizeUrl(e.url),"http.method":e.method,"http.user_agent":a,requestId:e.requestId};a&&(o[`http.user_agent`]=a);let{span:s,tracingContext:c}=wm(r,e,o)??{};if(!s||!c)return i(e);try{let t=await r.withContext(c,i,e);return Em(s,t),t}catch(e){throw Tm(s,e),e}}}}function Cm(){try{return ym({namespace:``,packageName:`@azure/core-rest-pipeline`,packageVersion:zp})}catch(e){Pp.warning(`Error when creating the TracingClient: ${nm(e)}`);return}}function wm(e,t,n){try{let{span:r,updatedOptions:i}=e.startSpan(`HTTP ${t.method}`,{tracingOptions:t.tracingOptions},{spanKind:`client`,spanAttributes:n});if(!r.isRecording()){r.end();return}let a=e.createRequestHeaders(i.tracingOptions.tracingContext);for(let[e,n]of Object.entries(a))t.headers.set(e,n);return{span:r,tracingContext:i.tracingOptions.tracingContext}}catch(e){Pp.warning(`Skipping creating a tracing span due to an error: ${nm(e)}`);return}}function Tm(e,t){try{e.setStatus({status:`error`,error:rm(t)?t:void 0}),xm(t)&&t.statusCode&&e.setAttribute(`http.status_code`,t.statusCode),e.end()}catch(e){Pp.warning(`Skipping tracing span processing due to an error: ${nm(e)}`)}}function Em(e,t){try{e.setAttribute(`http.status_code`,t.status);let n=t.headers.get(`x-ms-request-id`);n&&e.setAttribute(`serviceRequestId`,n),t.status>=400&&e.setStatus({status:`error`}),e.end()}catch(e){Pp.warning(`Skipping tracing span processing due to an error: ${nm(e)}`)}}function Dm(e){if(e instanceof AbortSignal)return{abortSignal:e};if(e.aborted)return{abortSignal:AbortSignal.abort(`reason`in e?e.reason:void 0)};let t=new AbortController,n=!0;function r(){n&&=(e.removeEventListener(`abort`,i),!1)}function i(){t.abort(`reason`in e?e.reason:void 0),r()}return e.addEventListener(`abort`,i),{abortSignal:t.signal,cleanup:r}}function Om(){return{name:`wrapAbortSignalLikePolicy`,sendRequest:async(e,t)=>{if(!e.abortSignal)return t(e);let{abortSignal:n,cleanup:r}=Dm(e.abortSignal);e.abortSignal=n;try{return await t(e)}finally{r?.()}}}}function km(e){let t=jp();return e.agent&&t.addPolicy(um(e.agent)),e.tlsOptions&&t.addPolicy(dm(e.tlsOptions)),t.addPolicy(cm(e.proxyOptions)),t.addPolicy(Xp()),t.addPolicy(Om()),t.addPolicy(Qp(),{beforePolicies:[Jp]}),t.addPolicy(Wp(e.userAgentOptions)),t.addPolicy(lm(e.telemetryOptions?.clientRequestIdHeaderName)),t.addPolicy(Yp(),{afterPhase:`Deserialize`}),t.addPolicy(Zp(e.retryOptions),{phase:`Retry`}),t.addPolicy(Sm({...e.userAgentOptions,...e.loggingOptions}),{afterPhase:`Retry`}),t.addPolicy(Ip(e.redirectOptions),{afterPhase:`Retry`}),t.addPolicy(Fp(e.loggingOptions),{afterPhase:`Sign`}),t}function Am(){let e=yf();return{async sendRequest(t){let{abortSignal:n,cleanup:r}=t.abortSignal?Dm(t.abortSignal):{};try{return t.abortSignal=n,await e.sendRequest(t)}finally{r?.()}}}}function jm(e){return Vd(e)}function Mm(e){return Wd(e)}const Nm={forcedRefreshWindowInMs:1e3,retryIntervalInMs:3e3,refreshWindowInMs:12e4};async function Pm(e,t,n){async function r(){if(Date.now()e.getToken(t,s),a.retryIntervalInMs,r?.expiresOnTimestamp??Date.now()).then(e=>(n=null,r=e,i=s.tenantId,r)).catch(e=>{throw n=null,r=null,i=void 0,e})),n}return async(e,t)=>{let n=!!t.claims,a=i!==t.tenantId;return n&&(r=null),a||n||o.mustRefresh?s(e,t):(o.shouldRefresh&&s(e,t),r)}}async function Im(e,t){try{return[await t(e),void 0]}catch(e){if(xm(e)&&e.response)return[e.response,e];throw e}}async function Lm(e){let{scopes:t,getAccessToken:n,request:r}=e,i=await n(t,{abortSignal:r.abortSignal,tracingOptions:r.tracingOptions,enableCae:!0});i&&e.request.headers.set(`Authorization`,`Bearer ${i.token}`)}function Rm(e){return e.status===401&&e.headers.has(`WWW-Authenticate`)}async function zm(e,t){let{scopes:n}=e,r=await e.getAccessToken(n,{enableCae:!0,claims:t});return r?(e.request.headers.set(`Authorization`,`${r.tokenType??`Bearer`} ${r.token}`),!0):!1}function Bm(e){let{credential:t,scopes:n,challengeCallbacks:r}=e,i=e.logger||Pp,a={authorizeRequest:r?.authorizeRequest?.bind(r)??Lm,authorizeRequestOnChallenge:r?.authorizeRequestOnChallenge?.bind(r)},o=t?Fm(t):()=>Promise.resolve(null);return{name:`bearerTokenAuthenticationPolicy`,async sendRequest(e,t){if(!e.url.toLowerCase().startsWith(`https://`))throw Error(`Bearer token authentication is not permitted for non-TLS protected (non-https) URLs.`);await a.authorizeRequest({scopes:Array.isArray(n)?n:[n],request:e,getAccessToken:o,logger:i});let r,s,c;if([r,s]=await Im(e,t),Rm(r)){let l=Hm(r.headers.get(`WWW-Authenticate`));if(l){let a;try{a=atob(l)}catch{return i.warning(`The WWW-Authenticate header contains "claims" that cannot be parsed. Unable to perform the Continuous Access Evaluation authentication flow. Unparsable claims: ${l}`),r}c=await zm({scopes:Array.isArray(n)?n:[n],response:r,request:e,getAccessToken:o,logger:i},a),c&&([r,s]=await Im(e,t))}else if(a.authorizeRequestOnChallenge&&(c=await a.authorizeRequestOnChallenge({scopes:Array.isArray(n)?n:[n],request:e,response:r,getAccessToken:o,logger:i}),c&&([r,s]=await Im(e,t)),Rm(r)&&(l=Hm(r.headers.get(`WWW-Authenticate`)??``),l))){let a;try{a=atob(l)}catch{return i.warning(`The WWW-Authenticate header contains "claims" that cannot be parsed. Unable to perform the Continuous Access Evaluation authentication flow. Unparsable claims: ${l}`),r}c=await zm({scopes:Array.isArray(n)?n:[n],response:r,request:e,getAccessToken:o,logger:i},a),c&&([r,s]=await Im(e,t))}}if(s)throw s;return r}}}function Vm(e){let t=/(\w+)\s+((?:\w+=(?:"[^"]*"|[^,]*),?\s*)+)/g,n=/(\w+)="([^"]*)"/g,r=[],i;for(;(i=t.exec(e))!==null;){let e=i[1],t=i[2],a={},o;for(;(o=n.exec(t))!==null;)a[o[1]]=o[2];r.push({scheme:e,params:a})}return r}function Hm(e){if(e)return Vm(e).find(e=>e.scheme===`Bearer`&&e.params.claims&&e.params.error===`insufficient_claims`)?.params.claims}function Um(e){let t=e;return t&&typeof t.getToken==`function`&&(t.signRequest===void 0||t.getToken.length>0)}const Wm=`DisableKeepAlivePolicy`;function Gm(){return{name:Wm,sendRequest(e,t){return e.disableKeepAlive=!0,t(e)}}}function Km(e){return e.getOrderedPolicies().some(e=>e.name===Wm)}function qm(e){return am(e,`base64`)}function Jm(e){return om(e,`base64`)}function Ym(e,t){return t!==`Composite`&&t!==`Dictionary`&&(typeof e==`string`||typeof e==`number`||typeof e==`boolean`||t?.match(/^(Date|DateTime|DateTimeRfc1123|UnixTime|ByteArray|Base64Url)$/i)!==null||e==null)}const Xm=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Zm(e){return Xm.test(e)}const Qm=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/i;function $m(e){return Qm.test(e)}function eh(e){let t={...e.headers,...e.body};return e.hasNullableType&&Object.getOwnPropertyNames(t).length===0?e.shouldWrapBody?{body:null}:null:e.shouldWrapBody?{...e.headers,body:e.body}:t}function th(e,t){let n=e.parsedHeaders;if(e.request.method===`HEAD`)return{...n,body:e.parsedBody};let r=t&&t.bodyMapper,i=!!r?.nullable,a=r?.type.name;if(a===`Stream`)return{...n,blobBody:e.blobBody,readableStreamBody:e.readableStreamBody};let o=a===`Composite`&&r.type.modelProperties||{},s=Object.keys(o).some(e=>o[e].serializedName===``);if(a===`Sequence`||s){let t=e.parsedBody??[];for(let n of Object.keys(o))o[n].serializedName&&(t[n]=e.parsedBody?.[n]);if(n)for(let e of Object.keys(n))t[e]=n[e];return i&&!e.parsedBody&&!n&&Object.getOwnPropertyNames(o).length===0?null:t}return eh({body:e.parsedBody,headers:n,hasNullableType:i,shouldWrapBody:Ym(e.parsedBody,a)})}var nh=class{modelMappers;isXML;constructor(e={},t=!1){this.modelMappers=e,this.isXML=t}validateConstraints(e,t,n){let r=(e,r)=>{throw Error(`"${n}" with value "${t}" should satisfy the constraint "${e}": ${r}.`)};if(e.constraints&&t!=null){let{ExclusiveMaximum:n,ExclusiveMinimum:i,InclusiveMaximum:a,InclusiveMinimum:o,MaxItems:s,MaxLength:c,MinItems:l,MinLength:u,MultipleOf:d,Pattern:f,UniqueItems:p}=e.constraints;if(n!==void 0&&t>=n&&r(`ExclusiveMaximum`,n),i!==void 0&&t<=i&&r(`ExclusiveMinimum`,i),a!==void 0&&t>a&&r(`InclusiveMaximum`,a),o!==void 0&&ts&&r(`MaxItems`,s),c!==void 0&&t.length>c&&r(`MaxLength`,c),l!==void 0&&t.lengthn.indexOf(e)!==t)&&r(`UniqueItems`,p)}}serialize(e,t,n,r={xml:{}}){let i={xml:{rootName:r.xml.rootName??``,includeRoot:r.xml.includeRoot??!1,xmlCharKey:r.xml.xmlCharKey??`_`}},a={},o=e.type.name;n||=e.serializedName,o.match(/^Sequence$/i)!==null&&(a=[]),e.isConstant&&(t=e.defaultValue);let{required:s,nullable:c}=e;if(s&&c&&t===void 0)throw Error(`${n} cannot be undefined.`);if(s&&!c&&t==null)throw Error(`${n} cannot be null or undefined.`);if(!s&&c===!1&&t===null)throw Error(`${n} cannot be null.`);return t==null?a=t:o.match(/^any$/i)===null?o.match(/^(Number|String|Boolean|Object|Stream|Uuid)$/i)===null?o.match(/^Enum$/i)===null?o.match(/^(Date|DateTime|TimeSpan|DateTimeRfc1123|UnixTime)$/i)===null?o.match(/^ByteArray$/i)===null?o.match(/^Base64Url$/i)===null?o.match(/^Sequence$/i)===null?o.match(/^Dictionary$/i)===null?o.match(/^Composite$/i)!==null&&(a=bh(this,e,t,n,!!this.isXML,i)):a=gh(this,e,t,n,!!this.isXML,i):a=hh(this,e,t,n,!!this.isXML,i):a=ph(n,t):a=fh(n,t):a=mh(o,t,n):a=dh(n,e.type.allowedValues,t):a=uh(o,n,t):a=t,a}deserialize(e,t,n,r={xml:{}}){let i={xml:{rootName:r.xml.rootName??``,includeRoot:r.xml.includeRoot??!1,xmlCharKey:r.xml.xmlCharKey??`_`},ignoreUnknownProperties:r.ignoreUnknownProperties??!1};if(t==null)return this.isXML&&e.type.name===`Sequence`&&!e.xmlIsWrapped&&(t=[]),e.defaultValue!==void 0&&(t=e.defaultValue),t;let a,o=e.type.name;if(n||=e.serializedName,o.match(/^Composite$/i)!==null)a=Ch(this,e,t,n,i);else{if(this.isXML){let e=i.xml.xmlCharKey;t.$!==void 0&&t[e]!==void 0&&(t=t[e])}o.match(/^Number$/i)===null?o.match(/^Boolean$/i)===null?o.match(/^(String|Enum|Object|Stream|Uuid|TimeSpan|any)$/i)===null?o.match(/^(Date|DateTime|DateTimeRfc1123)$/i)===null?o.match(/^UnixTime$/i)===null?o.match(/^ByteArray$/i)===null?o.match(/^Base64Url$/i)===null?o.match(/^Sequence$/i)===null?o.match(/^Dictionary$/i)!==null&&(a=wh(this,e,t,n,i)):a=Th(this,e,t,n,i):a=oh(t):a=Jm(t):a=lh(t):a=new Date(t):a=t:a=t===`true`||t!==`false`&&t:(a=parseFloat(t),isNaN(a)&&(a=t))}return e.isConstant&&(a=e.defaultValue),a}};function rh(e={},t=!1){return new nh(e,t)}function ih(e,t){let n=e.length;for(;n-1>=0&&e[n-1]===t;)--n;return e.substr(0,n)}function ah(e){if(e){if(!(e instanceof Uint8Array))throw Error(`Please provide an input of type Uint8Array for converting to Base64Url.`);return ih(qm(e),`=`).replace(/\+/g,`-`).replace(/\//g,`_`)}}function oh(e){if(e){if(e&&typeof e.valueOf()!=`string`)throw Error(`Please provide an input of type string for converting to Uint8Array`);return e=e.replace(/-/g,`+`).replace(/_/g,`/`),Jm(e)}}function sh(e){let t=[],n=``;if(e){let r=e.split(`.`);for(let e of r)e.charAt(e.length-1)===`\\`?n+=e.substr(0,e.length-1)+`.`:(n+=e,t.push(n),n=``)}return t}function ch(e){if(e)return typeof e.valueOf()==`string`&&(e=new Date(e)),Math.floor(e.getTime()/1e3)}function lh(e){if(e)return new Date(e*1e3)}function uh(e,t,n){if(n!=null){if(e.match(/^Number$/i)!==null){if(typeof n!=`number`)throw Error(`${t} with value ${n} must be of type number.`)}else if(e.match(/^String$/i)!==null){if(typeof n.valueOf()!=`string`)throw Error(`${t} with value "${n}" must be of type string.`)}else if(e.match(/^Uuid$/i)!==null){if(!(typeof n.valueOf()==`string`&&$m(n)))throw Error(`${t} with value "${n}" must be of type string and a valid uuid.`)}else if(e.match(/^Boolean$/i)!==null){if(typeof n!=`boolean`)throw Error(`${t} with value ${n} must be of type boolean.`)}else if(e.match(/^Stream$/i)!==null){let e=typeof n;if(e!==`string`&&typeof n.pipe!=`function`&&typeof n.tee!=`function`&&!(n instanceof ArrayBuffer)&&!ArrayBuffer.isView(n)&&!((typeof Blob==`function`||typeof Blob==`object`)&&n instanceof Blob)&&e!==`function`)throw Error(`${t} must be a string, Blob, ArrayBuffer, ArrayBufferView, ReadableStream, or () => ReadableStream.`)}}return n}function dh(e,t,n){if(!t)throw Error(`Please provide a set of allowedValues to validate ${e} as an Enum Type.`);if(!t.some(e=>typeof e.valueOf()==`string`?e.toLowerCase()===n.toLowerCase():e===n))throw Error(`${n} is not a valid value for ${e}. The valid values are: ${JSON.stringify(t)}.`);return n}function fh(e,t){if(t!=null){if(!(t instanceof Uint8Array))throw Error(`${e} must be of type Uint8Array.`);t=qm(t)}return t}function ph(e,t){if(t!=null){if(!(t instanceof Uint8Array))throw Error(`${e} must be of type Uint8Array.`);t=ah(t)}return t}function mh(e,t,n){if(t!=null){if(e.match(/^Date$/i)!==null){if(!(t instanceof Date||typeof t.valueOf()==`string`&&!isNaN(Date.parse(t))))throw Error(`${n} must be an instanceof Date or a string in ISO8601 format.`);t=t instanceof Date?t.toISOString().substring(0,10):new Date(t).toISOString().substring(0,10)}else if(e.match(/^DateTime$/i)!==null){if(!(t instanceof Date||typeof t.valueOf()==`string`&&!isNaN(Date.parse(t))))throw Error(`${n} must be an instanceof Date or a string in ISO8601 format.`);t=t instanceof Date?t.toISOString():new Date(t).toISOString()}else if(e.match(/^DateTimeRfc1123$/i)!==null){if(!(t instanceof Date||typeof t.valueOf()==`string`&&!isNaN(Date.parse(t))))throw Error(`${n} must be an instanceof Date or a string in RFC-1123 format.`);t=t instanceof Date?t.toUTCString():new Date(t).toUTCString()}else if(e.match(/^UnixTime$/i)!==null){if(!(t instanceof Date||typeof t.valueOf()==`string`&&!isNaN(Date.parse(t))))throw Error(`${n} must be an instanceof Date or a string in RFC-1123/ISO8601 format for it to be serialized in UnixTime/Epoch format.`);t=ch(t)}else if(e.match(/^TimeSpan$/i)!==null&&!Zm(t))throw Error(`${n} must be a string in ISO 8601 format. Instead was "${t}".`)}return t}function hh(e,t,n,r,i,a){if(!Array.isArray(n))throw Error(`${r} must be of type Array.`);let o=t.type.element;if(!o||typeof o!=`object`)throw Error(`"element" metadata for an Array must be defined in the mapper and it must be of type "object" in ${r}.`);o.type.name===`Composite`&&o.type.className&&(o=e.modelMappers[o.type.className]??o);let s=[];for(let t=0;te!==i)&&Object.defineProperty(o,i,{value:e.serialize(c,n[i],r+`["`+i+`"]`,a),enumerable:!0,configurable:!0,writable:!0})}return o}return n}function xh(e,t,n,r){if(!n||!e.xmlNamespace)return t;let i={[e.xmlNamespacePrefix?`xmlns:${e.xmlNamespacePrefix}`:`xmlns`]:e.xmlNamespace};if([`Composite`].includes(e.type.name)){if(t.$)return t;{let e={...t};return e.$=i,e}}let a={};return a[r.xml.xmlCharKey]=t,a.$=i,a}function Sh(e,t){return[`$`,t.xml.xmlCharKey].includes(e)}function Ch(e,t,n,r,i){let a=i.xml.xmlCharKey??`_`;Oh(e,t)&&(t=Dh(e,t,n,`serializedName`));let o=yh(e,t,r),s={},c=[];for(let l of Object.keys(o)){let u=o[l],d=sh(o[l].serializedName);c.push(d[0]);let{serializedName:f,xmlName:p,xmlElementName:m}=u,h=r;f!==``&&f!==void 0&&(h=r+`.`+f);let g=u.headerCollectionPrefix;if(g){let t={};for(let r of Object.keys(n))r.startsWith(g)&&(t[r.substring(g.length)]=e.deserialize(u.type.value,n[r],h,i)),c.push(r);s[l]=t}else if(e.isXML){if(u.xmlIsAttribute&&n.$)s[l]=e.deserialize(u,n.$[p],h,i);else if(u.xmlIsMsText)n[a]===void 0?typeof n==`string`&&(s[l]=n):s[l]=n[a];else{let t=m||p||f;if(u.xmlIsWrapped){let t=n[p]?.[m]??[];Object.defineProperty(s,l,{value:e.deserialize(u,t,h,i),enumerable:!0,configurable:!0,writable:!0}),c.push(p)}else{let r=n[t];s[l]=e.deserialize(u,r,h,i),c.push(t)}}}else{let r,a=n,c=0;for(let e of d){if(!a)break;c++,a=a[e]}a===null&&c{for(let t of Object.keys(o))if(sh(o[t].serializedName)[0]===e)return!1;return!0};for(let a of Object.keys(n))if(t(a)){let t=e.deserialize(l,n[a],r+`["`+a+`"]`,i);Object.defineProperty(s,a,{value:t,enumerable:!0,configurable:!0,writable:!0})}}else if(n&&!i.ignoreUnknownProperties)for(let e of Object.keys(n))s[e]===void 0&&!c.includes(e)&&!Sh(e,i)&&Object.defineProperty(s,e,{value:n[e],enumerable:!0,configurable:!0,writable:!0});return s}function wh(e,t,n,r,i){let a=t.type.value;if(!a||typeof a!=`object`)throw Error(`"value" metadata for a Dictionary must be defined in the mapper and it must of type "object" in ${r}`);if(n){let t={};for(let o of Object.keys(n))t[o]=e.deserialize(a,n[o],r,i);return t}return n}function Th(e,t,n,r,i){let a=t.type.element;if(!a||typeof a!=`object`)throw Error(`"element" metadata for an Array must be defined in the mapper and it must be of type "object" in ${r}`);if(n){Array.isArray(n)||(n=[n]),a.type.name===`Composite`&&a.type.className&&(a=e.modelMappers[a.type.className]??a);let t=[];for(let o=0;o{Object.defineProperty(e,"__esModule",{value:!0}),e.state=void 0,e.state={operationRequestMap:new WeakMap}}))().state;function Mh(e,t,n){let r=t.parameterPath,i=t.mapper,a;if(typeof r==`string`&&(r=[r]),Array.isArray(r)){if(r.length>0){if(i.isConstant)a=i.defaultValue;else{let t=Nh(e,r);!t.propertyFound&&n&&(t=Nh(n,r));let o=!1;t.propertyFound||(o=i.required||r[0]===`options`&&r.length===2),a=o?i.defaultValue:t.propertyValue}}}else{i.required&&(a={});for(let[t,o]of Object.entries(r)){let r=i.type.modelProperties[t],s=Mh(e,{parameterPath:o,mapper:r},n);s!==void 0&&(a||={},Object.defineProperty(a,t,{value:s,enumerable:!0,configurable:!0,writable:!0}))}}return a}function Nh(e,t){let n={propertyFound:!1},r=0;for(;r=200&&n.status<300);s.headersMapper&&(a.parsedHeaders=o.serializer.deserialize(s.headersMapper,a.headers.toJSON(),`operationRes.parsedHeaders`,{xml:{},ignoreUnknownProperties:!0}))}return a}function Uh(e){let t=Object.keys(e.responses);return t.length===0||t.length===1&&t[0]==="default"}function Wh(e,t,n,r){let i=200<=e.status&&e.status<300;if(Uh(t)?i:n){if(n){if(!n.isError)return{error:null,shouldReturnResponse:!1}}else return{error:null,shouldReturnResponse:!1}}let a=n??t.responses.default,o=e.request.streamResponseStatusCodes?.has(e.status)?`Unexpected status code: ${e.status}`:e.bodyAsText,s=new bm(o,{statusCode:e.status,request:e.request,response:e});if(!a&&!(e.parsedBody?.error?.code&&e.parsedBody?.error?.message))throw s;let c=a?.bodyMapper,l=a?.headersMapper;try{if(e.parsedBody){let n=e.parsedBody,i;if(c){let e=n;if(t.isXML&&c.type.name===Ah.Sequence){e=[];let t=c.xmlElementName;typeof n==`object`&&t&&(e=n[t])}i=t.serializer.deserialize(c,e,`error.response.parsedBody`,r)}let a=n.error||i||n;s.code=a.code,a.message&&(s.message=a.message),c&&(s.response.parsedBody=i)}e.headers&&l&&(s.response.parsedHeaders=t.serializer.deserialize(l,e.headers.toJSON(),`operationRes.parsedHeaders`))}catch(t){s.message=`Error "${t.message}" occurred in deserializing the responseBody - "${e.bodyAsText}" for the default response.`}return{error:s,shouldReturnResponse:!1}}async function Gh(e,t,n,r,i){if(!n.request.streamResponseStatusCodes?.has(n.status)&&n.bodyAsText){let a=n.bodyAsText,o=n.headers.get(`Content-Type`)||``,s=o?o.split(`;`).map(e=>e.toLowerCase()):[];try{if(s.length===0||s.some(t=>e.indexOf(t)!==-1))return n.parsedBody=JSON.parse(a),n;if(s.some(e=>t.indexOf(e)!==-1)){if(!i)throw Error(`Parsing XML not supported.`);return n.parsedBody=await i(a,r.xml),n}}catch(e){let t=`Error "${e}" occurred while parsing the response body - ${n.bodyAsText}.`,r=e.code||bm.PARSE_ERROR;throw new bm(t,{code:r,statusCode:n.status,request:n.request,response:n})}}return n}function Kh(e){let t=new Set;for(let[n,r]of Object.entries(e.responses))r.bodyMapper&&r.bodyMapper.type.name===Ah.Stream&&t.add(Number(n));return t}function qh(e){let{parameterPath:t,mapper:n}=e,r;return r=typeof t==`string`?t:Array.isArray(t)?t.join(`.`):n.serializedName,r}function Jh(e={}){let t=e.stringifyXML;return{name:`serializationPolicy`,sendRequest(e,n){let r=Ih(e),i=r?.operationSpec,a=r?.operationArguments;return i&&a&&(Yh(e,a,i),Xh(e,a,i,t)),n(e)}}}function Yh(e,t,n){if(n.headerParameters)for(let r of n.headerParameters){let i=Mh(t,r);if(i!=null||r.mapper.required){i=n.serializer.serialize(r.mapper,i,qh(r));let t=r.mapper.headerCollectionPrefix;if(t)for(let n of Object.keys(i))e.headers.set(t+n,i[n]);else e.headers.set(r.mapper.serializedName||qh(r),i)}}let r=t.options?.requestOptions?.customHeaders;if(r)for(let t of Object.keys(r))e.headers.set(t,r[t])}function Xh(e,t,n,r=function(){throw Error(`XML serialization unsupported!`)}){let i=t.options?.serializerOptions,a={xml:{rootName:i?.xml.rootName??``,includeRoot:i?.xml.includeRoot??!1,xmlCharKey:i?.xml.xmlCharKey??`_`}},o=a.xml.xmlCharKey;if(n.requestBody&&n.requestBody.mapper){e.body=Mh(t,n.requestBody);let i=n.requestBody.mapper,{required:s,serializedName:c,xmlName:l,xmlElementName:u,xmlNamespace:d,xmlNamespacePrefix:f,nullable:p}=i,m=i.type.name;try{if(e.body!==void 0&&e.body!==null||p&&e.body===null||s){let t=qh(n.requestBody);e.body=n.serializer.serialize(i,e.body,t,a);let s=m===Ah.Stream;if(n.isXML){let t=f?`xmlns:${f}`:`xmlns`,n=Zh(d,t,m,e.body,a);m===Ah.Sequence?e.body=r(Qh(n,u||l||c,t,d),{rootName:l||c,xmlCharKey:o}):s||(e.body=r(n,{rootName:l||c,xmlCharKey:o}))}else if(m===Ah.String&&(n.contentType?.match(`text/plain`)||n.mediaType===`text`))return;else s||(e.body=JSON.stringify(e.body))}}catch(e){throw Error(`Error "${e.message}" occurred in serializing the payload - ${JSON.stringify(c,void 0,` `)}.`)}}else if(n.formDataParameters&&n.formDataParameters.length>0){e.formData={};for(let r of n.formDataParameters){let i=Mh(t,r);if(i!=null){let t=r.mapper.serializedName||qh(r);e.formData[t]=n.serializer.serialize(r.mapper,i,qh(r),a)}}}}function Zh(e,t,n,r,i){if(e&&![`Composite`,`Sequence`,`Dictionary`].includes(n)){let n={};return n[i.xml.xmlCharKey]=r,n.$={[t]:e},n}return r}function Qh(e,t,n,r){if(Array.isArray(e)||(e=[e]),!n||!r)return{[t]:e};let i={[t]:e};return i.$={[n]:r},i}function $h(e={}){let t=km(e??{});return e.credentialOptions&&t.addPolicy(Bm({credential:e.credentialOptions.credential,scopes:e.credentialOptions.credentialScopes})),t.addPolicy(Jh(e.serializationOptions),{phase:`Serialize`}),t.addPolicy(zh(e.deserializationOptions),{phase:`Deserialize`}),t}let eg;function tg(){return eg||=Am(),eg}const ng={CSV:`,`,SSV:` `,Multi:`Multi`,TSV:` `,Pipes:`|`};function rg(e,t,n,r){let i=ag(t,n,r),a=!1,o=ig(e,i);if(t.path){let e=ig(t.path,i);t.path===`/{nextLink}`&&e.startsWith(`/`)&&(e=e.substring(1)),og(e)?(o=e,a=!0):o=sg(o,e)}let{queryParams:s,sequenceParams:c}=cg(t,n,r);return o=ug(o,s,c,a),o}function ig(e,t){let n=e;for(let[e,r]of t)n=n.split(e).join(r);return n}function ag(e,t,n){let r=new Map;if(e.urlParameters?.length)for(let i of e.urlParameters){let a=Mh(t,i,n),o=qh(i);a=e.serializer.serialize(i.mapper,a,o),i.skipEncoding||(a=encodeURIComponent(a)),r.set(`{${i.mapper.serializedName||o}}`,a)}return r}function og(e){return e.includes(`://`)}function sg(e,t){if(!t)return e;let n=new URL(e),r=n.pathname;r.endsWith(`/`)||(r=`${r}/`),t.startsWith(`/`)&&(t=t.substring(1));let i=t.indexOf(`?`);if(i!==-1){let e=t.substring(0,i),a=t.substring(i+1);r+=e,a&&(n.search=n.search?`${n.search}&${a}`:a)}else r+=t;return Object.assign(n,{pathname:r}),n.toString()}function cg(e,t,n){let r=new Map,i=new Set;if(e.queryParameters?.length)for(let a of e.queryParameters){a.mapper.type.name===`Sequence`&&a.mapper.serializedName&&i.add(a.mapper.serializedName);let o=Mh(t,a,n);if(o!=null||a.mapper.required){o=e.serializer.serialize(a.mapper,o,qh(a));let t=a.collectionFormat?ng[a.collectionFormat]:``;if(Array.isArray(o)&&(o=o.map(e=>e??``)),a.collectionFormat===`Multi`&&o.length===0)continue;Array.isArray(o)&&(a.collectionFormat===`SSV`||a.collectionFormat===`TSV`)&&(o=o.join(t)),a.skipEncoding||(o=Array.isArray(o)?o.map(e=>encodeURIComponent(e)):encodeURIComponent(o)),Array.isArray(o)&&(a.collectionFormat===`CSV`||a.collectionFormat===`Pipes`)&&(o=o.join(t)),r.set(a.mapper.serializedName||qh(a),o)}}return{queryParams:r,sequenceParams:i}}function lg(e){let t=new Map;if(!e||e[0]!==`?`)return t;e=e.slice(1);let n=e.split(`&`);for(let e of n){let[n,r]=e.split(`=`,2),i=t.get(n);i?Array.isArray(i)?i.push(r):t.set(n,[i,r]):t.set(n,r)}return t}function ug(e,t,n,r=!1){if(t.size===0)return e;let i=new URL(e),a=lg(i.search);for(let[e,i]of t){let t=a.get(e);if(Array.isArray(t)){if(Array.isArray(i)){t.push(...i);let n=new Set(t);a.set(e,Array.from(n))}else t.push(i)}else t?(Array.isArray(i)?i.unshift(t):n.has(e)&&a.set(e,[t,i]),r||a.set(e,i)):a.set(e,i)}let o=[];for(let[e,t]of a)if(typeof t==`string`)o.push(`${e}=${t}`);else if(Array.isArray(t))for(let n of t)o.push(`${e}=${n}`);else o.push(`${e}=${t}`);return i.search=o.length?`?${o.join(`&`)}`:``,i.toString()}const dg=Np(`core-client`);var fg=class{_endpoint;_requestContentType;_allowInsecureConnection;_httpClient;pipeline;constructor(e={}){if(this._requestContentType=e.requestContentType,this._endpoint=e.endpoint??e.baseUri,e.baseUri&&dg.warning(`The baseUri option for SDK Clients has been deprecated, please use endpoint instead.`),this._allowInsecureConnection=e.allowInsecureConnection,this._httpClient=e.httpClient||tg(),this.pipeline=e.pipeline||pg(e),e.additionalPolicies?.length)for(let{policy:t,position:n}of e.additionalPolicies){let e=n===`perRetry`?`Sign`:void 0;this.pipeline.addPolicy(t,{afterPhase:e})}}sendRequest(e){return this.pipeline.sendRequest(this._httpClient,e)}async sendOperationRequest(e,t){let n=t.baseUrl||this._endpoint;if(!n)throw Error(`If operationSpec.baseUrl is not specified, then the ServiceClient must have a endpoint string property that contains the base URL to use.`);let r=Mm({url:rg(n,t,e,this)});r.method=t.httpMethod;let i=Ih(r);i.operationSpec=t,i.operationArguments=e;let a=t.contentType||this._requestContentType;a&&t.requestBody&&r.headers.set(`Content-Type`,a);let o=e.options;if(o){let e=o.requestOptions;e&&(e.timeout&&(r.timeout=e.timeout),e.onUploadProgress&&(r.onUploadProgress=e.onUploadProgress),e.onDownloadProgress&&(r.onDownloadProgress=e.onDownloadProgress),e.shouldDeserialize!==void 0&&(i.shouldDeserialize=e.shouldDeserialize),e.allowInsecureConnection&&(r.allowInsecureConnection=!0)),o.abortSignal&&(r.abortSignal=o.abortSignal),o.tracingOptions&&(r.tracingOptions=o.tracingOptions)}this._allowInsecureConnection&&(r.allowInsecureConnection=!0),r.streamResponseStatusCodes===void 0&&(r.streamResponseStatusCodes=Kh(t));try{let e=await this.sendRequest(r),n=th(e,t.responses[e.status]);return o?.onResponse&&o.onResponse(e,n),n}catch(e){if(typeof e==`object`&&e?.response){let n=e.response,r=th(n,t.responses[e.statusCode]||t.responses.default);e.details=r,o?.onResponse&&o.onResponse(n,r,e)}throw e}}};function pg(e){let t=mg(e),n=e.credential&&t?{credentialScopes:t,credential:e.credential}:void 0;return $h({...e,credentialOptions:n})}function mg(e){if(e.credentialScopes)return e.credentialScopes;if(e.endpoint)return`${e.endpoint}/.default`;if(e.baseUri)return`${e.baseUri}/.default`;if(e.credential)throw Error(`When using credentials, the ServiceClientOptions must contain either a endpoint or a credentialScopes. Unable to create a bearerTokenAuthenticationPolicy`)}const hg={DefaultScope:`/.default`,HeaderConstants:{AUTHORIZATION:`authorization`}};function gg(e){return/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/.test(e)}const _g=async e=>{let t=Sg(e.request),n=bg(e.response);if(n){let r=xg(n),i=yg(e,r),a=vg(r);if(!a)return!1;let o=await e.getAccessToken(i,{...t,tenantId:a});return o?(e.request.headers.set(hg.HeaderConstants.AUTHORIZATION,`${o.tokenType??`Bearer`} ${o.token}`),!0):!1}return!1};function vg(e){let t=new URL(e.authorization_uri).pathname.split(`/`)[1];if(t&&gg(t))return t}function yg(e,t){if(!t.resource_id)return e.scopes;let n=new URL(t.resource_id),r=new URL(hg.DefaultScope,n.origin).toString();return r===`https://disk.azure.com/.default`&&(r=`https://disk.azure.com//.default`),[r]}function bg(e){let t=e.headers.get(`WWW-Authenticate`);if(e.status===401&&t)return t}function xg(e){return`${e.slice(7).trim()} `.split(` `).filter(e=>e).map(e=>(([e,t])=>({[e]:t}))(e.trim().split(`=`))).reduce((e,t)=>({...e,...t}),{})}function Sg(e){return{abortSignal:e.abortSignal,requestOptions:{timeout:e.timeout},tracingOptions:e.tracingOptions}}const Cg=Symbol(`Original PipelineRequest`),wg=Symbol.for(`@azure/core-client original request`),Tg=new Set([`url`,`method`,`withCredentials`,`timeout`,`requestId`,`abortSignal`,`body`,`formData`,`onDownloadProgress`,`onUploadProgress`,`proxySettings`,`streamResponseStatusCodes`,`agent`,`requestOverrides`]);function Eg(e,t={}){let n=e[Cg],r=jm(e.headers.toJson({preserveCase:!0}));if(n)return n.headers=r,n;{let n=Mm({url:e.url,method:e.method,headers:r,withCredentials:e.withCredentials,timeout:e.timeout,requestId:e.requestId,abortSignal:e.abortSignal,body:e.body,formData:e.formData,disableKeepAlive:!!e.keepAlive,onDownloadProgress:e.onDownloadProgress,onUploadProgress:e.onUploadProgress,proxySettings:e.proxySettings,streamResponseStatusCodes:e.streamResponseStatusCodes,agent:e.agent,requestOverrides:e.requestOverrides});return t.originalRequest&&(n[wg]=t.originalRequest),n}}function Dg(e,t){let n=t?.originalRequest??e,r={url:e.url,method:e.method,headers:Og(e.headers),withCredentials:e.withCredentials,timeout:e.timeout,requestId:e.headers.get(`x-ms-client-request-id`)||e.requestId,abortSignal:e.abortSignal,body:e.body,formData:e.formData,keepAlive:!!e.disableKeepAlive,onDownloadProgress:e.onDownloadProgress,onUploadProgress:e.onUploadProgress,proxySettings:e.proxySettings,streamResponseStatusCodes:e.streamResponseStatusCodes,agent:e.agent,requestOverrides:e.requestOverrides,clone(){throw Error(`Cannot clone a non-proxied WebResourceLike`)},prepare(){throw Error(`WebResourceLike.prepare() is not supported by @azure/core-http-compat`)},validateRequestProperties(){}};return t?.createProxy?new Proxy(r,{get(t,i,a){return i===Cg?e:i===`clone`?()=>Dg(Eg(r,{originalRequest:n}),{createProxy:!0,originalRequest:n}):Reflect.get(t,i,a)},set(t,n,r,i){return n===`keepAlive`&&(e.disableKeepAlive=!r),typeof n==`string`&&Tg.has(n)&&(e[n]=r),Reflect.set(t,n,r,i)}}):r}function Og(e){return new Ag(e.toJSON({preserveCase:!0}))}function kg(e){return e.toLowerCase()}var Ag=class e{_headersMap;constructor(e){if(this._headersMap={},e)for(let t in e)this.set(t,e[t])}set(e,t){this._headersMap[kg(e)]={name:e,value:t.toString()}}get(e){let t=this._headersMap[kg(e)];return t?t.value:void 0}contains(e){return!!this._headersMap[kg(e)]}remove(e){let t=this.contains(e);return delete this._headersMap[kg(e)],t}rawHeaders(){return this.toJson({preserveCase:!0})}headersArray(){let e=[];for(let t in this._headersMap)e.push(this._headersMap[t]);return e}headerNames(){let e=[],t=this.headersArray();for(let n=0;nNg(await e.sendRequest(Dg(t,{createProxy:!0})))}}const zg=RegExp(`^[:A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`);function Bg(e,t){let n=[],r=t.exec(e);for(;r;){let i=[];i.startIndex=t.lastIndex-r[0].length;let a=r.length;for(let e=0;e`&&e[a]!==` `&&e[a]!==` `&&e[a]!==` +`&&e[a]!==`\r`;a++)c+=e[a];if(c=c.trim(),c[c.length-1]===`/`&&(c=c.substring(0,c.length-1),a--),!r_(c)){let t;return t=c.trim().length===0?`Invalid space after '<'.`:`Tag '`+c+`' is an invalid name.`,t_(`InvalidTag`,t,i_(e,a))}let l=Xg(e,a);if(l===!1)return t_(`InvalidAttr`,`Attributes for '`+c+`' have open quote.`,i_(e,a));let u=l.value;if(a=l.index,u[u.length-1]===`/`){let n=a-u.length;u=u.substring(0,u.length-1);let i=Qg(u,t);if(i===!0)r=!0;else return t_(i.err.code,i.err.msg,i_(e,n+i.err.line))}else if(s){if(!l.tagClosed)return t_(`InvalidTag`,`Closing tag '`+c+`' doesn't have proper closing.`,i_(e,a));if(u.trim().length>0)return t_(`InvalidTag`,`Closing tag '`+c+`' can't have attributes or invalid starting.`,i_(e,o));if(n.length===0)return t_(`InvalidTag`,`Closing tag '`+c+`' has not been opened.`,i_(e,o));{let t=n.pop();if(c!==t.tagName){let n=i_(e,t.tagStartPos);return t_(`InvalidTag`,`Expected closing tag '`+t.tagName+`' (opened in line `+n.line+`, col `+n.col+`) instead of closing tag '`+c+`'.`,i_(e,o))}n.length==0&&(i=!0)}}else{let s=Qg(u,t);if(s!==!0)return t_(s.err.code,s.err.msg,i_(e,a-u.length+s.err.line));if(i===!0)return t_(`InvalidXml`,`Multiple possible root nodes found.`,i_(e,a));t.unpairedTags.indexOf(c)!==-1||n.push({tagName:c,tagStartPos:o}),r=!0}for(a++;a0?t_(`InvalidXml`,`Invalid '`+JSON.stringify(n.map(e=>e.tagName),null,4).replace(/\r?\n/g,``)+`' found.`,{line:1,col:1}):!0:t_(`InvalidXml`,`Start tag expected.`,1)}function qg(e){return e===` `||e===` `||e===` +`||e===`\r`}function Jg(e,t){let n=t;for(;t5&&r===`xml`)return t_(`InvalidXml`,`XML declaration allowed only at the start of the document.`,i_(e,t));if(e[t]==`?`&&e[t+1]==`>`){t++;break}continue}return t}function Yg(e,t){if(e.length>t+5&&e[t+1]===`-`&&e[t+2]===`-`){for(t+=3;t`){t+=2;break}}else if(e.length>t+8&&e[t+1]===`D`&&e[t+2]===`O`&&e[t+3]===`C`&&e[t+4]===`T`&&e[t+5]===`Y`&&e[t+6]===`P`&&e[t+7]===`E`){let n=1;for(t+=8;t`&&(n--,n===0))break}else if(e.length>t+9&&e[t+1]===`[`&&e[t+2]===`C`&&e[t+3]===`D`&&e[t+4]===`A`&&e[t+5]===`T`&&e[t+6]===`A`&&e[t+7]===`[`){for(t+=8;t`){t+=2;break}}return t}function Xg(e,t){let n=``,r=``,i=!1;for(;t`&&r===``){i=!0;break}n+=e[t]}return r===``&&{value:n,index:t,tagClosed:i}}const Zg=RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,`g`);function Qg(e,t){let n=Bg(e,Zg),r={};for(let e=0;e`,lt:`<`,quot:`"`},c_={nbsp:`\xA0`,copy:`©`,reg:`®`,trade:`™`,mdash:`—`,ndash:`–`,hellip:`…`,laquo:`«`,raquo:`»`,lsquo:`‘`,rsquo:`’`,ldquo:`“`,rdquo:`”`,bull:`•`,para:`¶`,sect:`§`,deg:`°`,frac12:`½`,frac14:`¼`,frac34:`¾`},l_=Object.freeze({ALLOW:`allow`,BLOCK:`block`,THROW:`throw`}),u_=new Set(`!?\\\\/[]$%{}^&*()<>|+`);function d_(e){if(e[0]===`#`)throw Error(`[EntityReplacer] Invalid character '#' in entity name: "${e}"`);for(let t of e)if(u_.has(t))throw Error(`[EntityReplacer] Invalid character '${t}' in entity name: "${e}"`);return e}function f_(...e){let t=Object.create(null);for(let n of e)if(n)for(let e of Object.keys(n)){let r=n[e];if(typeof r==`string`)t[e]=r;else if(r&&typeof r==`object`&&r.val!==void 0){let n=r.val;typeof n==`string`&&(t[e]=n)}}return t}const p_=`external`,m_=`base`;function h_(e){return!e||e===p_?new Set([p_]):e===`all`?new Set([`all`]):e===m_?new Set([m_]):Array.isArray(e)?new Set(e):new Set([p_])}const g_=Object.freeze({allow:0,leave:1,remove:2,throw:3}),__=new Set([9,10,13]);function v_(e){if(!e)return{xmlVersion:1,onLevel:g_.allow,nullLevel:g_.remove};let t=e.xmlVersion===1.1?1.1:1,n=g_[e.onNCR]??g_.allow,r=g_[e.nullNCR]??g_.remove;return{xmlVersion:t,onLevel:n,nullLevel:Math.max(r,g_.remove)}}var y_=class{constructor(e={}){this._limit=e.limit||{},this._maxTotalExpansions=this._limit.maxTotalExpansions||0,this._maxExpandedLength=this._limit.maxExpandedLength||0,this._postCheck=typeof e.postCheck==`function`?e.postCheck:e=>e,this._limitTiers=h_(this._limit.applyLimitsTo??p_),this._numericAllowed=e.numericAllowed??!0,this._baseMap=f_(s_,e.namedEntities||null),this._externalMap=Object.create(null),this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this._removeSet=new Set(e.remove&&Array.isArray(e.remove)?e.remove:[]),this._leaveSet=new Set(e.leave&&Array.isArray(e.leave)?e.leave:[]);let t=v_(e.ncr);this._ncrXmlVersion=t.xmlVersion,this._ncrOnLevel=t.onLevel,this._ncrNullLevel=t.nullLevel,this._onExternalEntity=typeof e.onExternalEntity==`function`?e.onExternalEntity:null,this._onInputEntity=typeof e.onInputEntity==`function`?e.onInputEntity:null}_applyRegistrationHook(e,t,n,r){if(!e)return!0;let i=e(t,n);if(i===l_.BLOCK)return!1;if(i===l_.THROW)throw Error(`[EntityDecoder] Registration of ${r} entity "&${t};" was rejected by hook`);return!0}setExternalEntities(e){if(e)for(let t of Object.keys(e))d_(t);if(!this._onExternalEntity){this._externalMap=f_(e);return}let t=f_(e),n=Object.create(null);for(let[e,r]of Object.entries(t))this._applyRegistrationHook(this._onExternalEntity,e,r,`external`)&&(n[e]=r);this._externalMap=n}addExternalEntity(e,t){d_(e),typeof t==`string`&&t.indexOf(`&`)===-1&&this._applyRegistrationHook(this._onExternalEntity,e,t,`external`)&&(this._externalMap[e]=t)}addInputEntities(e){if(this._totalExpansions=0,this._expandedLength=0,!this._onInputEntity){this._inputMap=f_(e);return}let t=f_(e),n=Object.create(null);for(let[e,r]of Object.entries(t))this._applyRegistrationHook(this._onInputEntity,e,r,`input`)&&(n[e]=r);this._inputMap=n}reset(){return this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this}setXmlVersion(e){this._ncrXmlVersion=e===1.1?1.1:1}decode(e){if(typeof e!=`string`||e.length===0||e.indexOf(`&`)===-1)return e;let t=e,n=[],r=e.length,i=0,a=0,o=this._maxTotalExpansions>0,s=this._maxExpandedLength>0,c=o||s;for(;a=r||e.charCodeAt(t)!==59){a++;continue}let l=e.slice(a+1,t);if(l.length===0){a++;continue}let u,d;if(this._removeSet.has(l))u=``,d===void 0&&(d=p_);else if(this._leaveSet.has(l)){a++;continue}else if(l.charCodeAt(0)===35){let e=this._resolveNCR(l);if(e===void 0){a++;continue}u=e,d=m_}else{let e=this._resolveName(l);u=e?.value,d=e?.tier}if(u===void 0){a++;continue}if(a>i&&n.push(e.slice(i,a)),n.push(u),i=t+1,a=i,c&&this._tierCounts(d)){if(o&&(this._totalExpansions++,this._totalExpansions>this._maxTotalExpansions))throw Error(`[EntityReplacer] Entity expansion count limit exceeded: ${this._totalExpansions} > ${this._maxTotalExpansions}`);if(s){let e=u.length-(l.length+2);if(e>0&&(this._expandedLength+=e,this._expandedLength>this._maxExpandedLength))throw Error(`[EntityReplacer] Expanded content length limit exceeded: ${this._expandedLength} > ${this._maxExpandedLength}`)}}}i=55296&&e<=57343||this._ncrXmlVersion===1&&e>=1&&e<=31&&!__.has(e)?g_.remove:-1}_applyNCRAction(e,t,n){switch(e){case g_.allow:return String.fromCodePoint(n);case g_.remove:return``;case g_.leave:return;case g_.throw:throw Error(`[EntityDecoder] Prohibited numeric character reference &${t}; (U+${n.toString(16).toUpperCase().padStart(4,`0`)})`);default:return String.fromCodePoint(n)}}_resolveNCR(e){let t=e.charCodeAt(1),n;if(n=t===120||t===88?parseInt(e.slice(2),16):parseInt(e.slice(1),10),Number.isNaN(n)||n<0||n>1114111)return;let r=this._classifyNCR(n);if(!this._numericAllowed&&rUg.includes(e)?`__`+e:e,x_={preserveOrder:!1,attributeNamePrefix:`@_`,attributesGroupName:!1,textNodeName:`#text`,ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0,unicode:!1},tagValueProcessor:function(e,t){return t},attributeValueProcessor:function(e,t){return t},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,entityDecoder:null,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(e,t,n){return e},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:b_};function S_(e,t){if(typeof e!=`string`)return;let n=e.toLowerCase();if(Ug.some(e=>n===e.toLowerCase())||Wg.some(e=>n===e.toLowerCase()))throw Error(`[SECURITY] Invalid ${t}: "${e}" is a reserved JavaScript keyword that could cause prototype pollution`)}function C_(e,t){return typeof e==`boolean`?{enabled:e,maxEntitySize:1e4,maxExpansionDepth:1e4,maxTotalExpansions:1/0,maxExpandedLength:1e5,maxEntityCount:1e3,allowedTags:null,tagFilter:null,appliesTo:`all`}:typeof e==`object`&&e?{enabled:e.enabled!==!1,maxEntitySize:Math.max(1,e.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,e.maxExpansionDepth??1e4),maxTotalExpansions:Math.max(1,e.maxTotalExpansions??1/0),maxExpandedLength:Math.max(1,e.maxExpandedLength??1e5),maxEntityCount:Math.max(1,e.maxEntityCount??1e3),allowedTags:e.allowedTags??null,tagFilter:e.tagFilter??null,appliesTo:e.appliesTo??`all`}:C_(!0)}const w_=function(e){let t=Object.assign({},x_,e),n=[{value:t.attributeNamePrefix,name:`attributeNamePrefix`},{value:t.attributesGroupName,name:`attributesGroupName`},{value:t.textNodeName,name:`textNodeName`},{value:t.cdataPropName,name:`cdataPropName`},{value:t.commentPropName,name:`commentPropName`}];for(let{value:e,name:t}of n)e&&S_(e,t);return t.onDangerousProperty===null&&(t.onDangerousProperty=b_),t.processEntities=C_(t.processEntities,t.htmlEntities),t.unpairedTagsSet=new Set(t.unpairedTags),t.stopNodes&&Array.isArray(t.stopNodes)&&(t.stopNodes=t.stopNodes.map(e=>typeof e==`string`&&e.startsWith(`*.`)?`..`+e.substring(2):e)),t};let T_;T_=typeof Symbol==`function`?Symbol(`XML Node Metadata`):`@@xmlMetadata`;var E_=class{constructor(e){this.tagname=e,this.child=[],this[`:@`]=Object.create(null)}add(e,t){e===`__proto__`&&(e=`#__proto__`),this.child.push({[e]:t})}addChild(e,t){e.tagname===`__proto__`&&(e.tagname=`#__proto__`),e[`:@`]&&Object.keys(e[`:@`]).length>0?this.child.push({[e.tagname]:e.child,":@":e[`:@`]}):this.child.push({[e.tagname]:e.child}),t!==void 0&&(this.child[this.child.length-1][T_]={startIndex:t})}static getMetaDataSymbol(){return T_}};const D_=(e,t,n=``)=>{let r=`[${e.replace(`:`,``)}][${t.replace(`:`,``)}]*`;return{name:RegExp(`^[${e}][${t}]*$`,n),ncName:RegExp(`^${r}$`,n),qName:RegExp(`^${r}(?::${r})?$`,n),nmToken:RegExp(`^[${t}]+$`,n),nmTokens:RegExp(`^[${t}]+(?:\\s+[${t}]+)*$`,n)}},O_=D_(`:A-Za-z_À-ÖØ-öø-˿Ͱ-ͽͿ-҆҈-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�`,`:A-Za-z_À-ÖØ-öø-˿Ͱ-ͽͿ-҆҈-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�\\-\\.\\d·̀-ͯ‿-⁀`),k_=D_(`:A-Za-z_À-˿Ͱ-ͽͿ-҆҈-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿`,`:A-Za-z_À-˿Ͱ-ͽͿ-҆҈-῿‌-‍⁰-↏Ⰰ-⿯、-퟿豈-﷏ﷰ-�𐀀-󯿿\\-\\.\\d·̀-ͯ҇‿-⁀`,`u`),A_=D_(`:A-Za-z_`,`:A-Za-z_\\-\\.\\d`),j_=(e=`1.0`,t=!1)=>t?A_:e===`1.1`?k_:O_,M_=(e,{xmlVersion:t=`1.0`,asciiOnly:n=!1}={})=>j_(t,n).qName.test(e),N_=[`name`,`ncName`,`qName`,`nmToken`,`nmTokens`],P_=(e,{xmlVersion:t=`1.0`,asciiOnly:n=!1,maxCacheSize:r=2048}={})=>{if(!N_.includes(e))throw TypeError(`Unknown production "${e}". Must be one of: ${N_.join(`, `)}`);let i=j_(t,n)[e],a=new Map,o=e=>{let t=a.get(e);if(t!==void 0)return t;let n=i.test(e);return a.size{a=new Map},o};var F_=class{constructor(e,t){this.suppressValidationErr=!e,this.options=e,this.xmlVersion=t||1}setXmlVersion(e=1){this.xmlVersion=e}readDocType(e,t){let n=Object.create(null),r=0;if(e[t+3]===`O`&&e[t+4]===`C`&&e[t+5]===`T`&&e[t+6]===`Y`&&e[t+7]===`P`&&e[t+8]===`E`){t+=9;let i=1,a=!1,o=!1,s=``;for(;t=this.options.maxEntityCount)throw Error(`Entity count (${r+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);n[i]=a,r++}}else if(a&&L_(e,`!ELEMENT`,t)){t+=8;let{index:n}=this.readElementExp(e,t+1);t=n}else if(a&&L_(e,`!ATTLIST`,t))t+=8;else if(a&&L_(e,`!NOTATION`,t)){t+=9;let{index:n}=this.readNotationExp(e,t+1,this.suppressValidationErr);t=n}else if(L_(e,`!--`,t))o=!0;else throw Error(`Invalid DOCTYPE`);i++,s=``}else if(e[t]===`>`){if(o?e[t-1]===`-`&&e[t-2]===`-`&&(o=!1,i--):i--,i===0)break}else e[t]===`[`?a=!0:s+=e[t];if(i!==0)throw Error(`Unclosed DOCTYPE`)}else throw Error(`Invalid Tag instead of DOCTYPE`);return{entities:n,i:t}}readEntityExp(e,t){t=I_(e,t);let n=t;for(;tthis.options.maxEntitySize)throw Error(`Entity "${r}" size (${i.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return t--,[r,i,t]}readNotationExp(e,t){t=I_(e,t);let n=t;for(;t{for(;t=48&&i<=57||i===45)){if(i<1632){if(U_.has(i)){n=r;break}continue}if(i>=55296&&i<=56319){if(r+1=56320&&t<=57343){let e=65536+(i-55296<<10)+(t-56320);if(B_.has(e)){n=r;break}}}continue}if(H_[i-1632]!==255||U_.has(i)){n=r;break}}}if(n===-1)return e;let r=[];n>0&&r.push(e.slice(0,n));for(let i=n;i=48&&n<=57||n===45){r.push(e[i]);continue}if(n<1632){r.push(U_.has(n)?`-`:e[i]);continue}if(n>=55296&&n<=56319){if(i+1=56320&&t<=57343){let e=65536+(n-55296<<10)+(t-56320),a=B_.get(e);if(a!==void 0){r.push(String.fromCharCode(a+48)),i++;continue}}}r.push(e[i]);continue}if(U_.has(n)){r.push(`-`);continue}let a=H_[n-V_];r.push(a===255?e[i]:String.fromCharCode(a+48))}return r.join(``)}const G_=/^[-+]?0x[a-fA-F0-9]+$/,K_=/^0b[01]+$/,q_=/^0o[0-7]+$/,J_=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,Y_={hex:!0,binary:!1,octal:!1,leadingZeros:!0,decimalPoint:`.`,eNotation:!0,infinity:`original`,unicode:!1};function X_(e,t={}){if(t=Object.assign({},Y_,t),!e||typeof e!=`string`)return e;let n=e.trim();if(n.length===0||t.skipLike!==void 0&&t.skipLike.test(n))return e;if(n===`0`||t.unicode&&(n=W_(n),n===`0`))return 0;if(t.hex&&G_.test(n))return ev(n,16);if(t.binary&&K_.test(n))return ev(n,2);if(t.octal&&q_.test(n))return ev(n,8);if(!isFinite(n))return tv(e,Number(n),t);if(n.includes(`e`)||n.includes(`E`))return Q_(e,n,t);{let r=J_.exec(n);if(r){let i=r[1]||``,a=r[2],o=$_(r[3]),s=i?e[a.length+1]===`.`:e[a.length]===`.`;if(!t.leadingZeros&&(a.length>1||a.length===1&&!s))return e;{let r=Number(n),s=String(r);if(r===0)return r;if(s.search(/[eE]/)!==-1)return t.eNotation?r:e;if(n.indexOf(`.`)!==-1)return s===`0`||s===o||s===`${i}${o}`?r:e;let c=a?o:n;return a?c===s||i+c===s?r:e:c===s||c===i+s?r:e}}return e}}const Z_=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function Q_(e,t,n){if(!n.eNotation)return e;let r=t.match(Z_);if(r){let i=r[1]||``,a=r[3].indexOf(`e`)===-1?`E`:`e`,o=r[2],s=i?e[o.length+1]===a:e[o.length]===a;return o.length>1&&s?e:o.length===1&&(r[3].startsWith(`.${a}`)||r[3][0]===a)?Number(t):o.length>0?n.leadingZeros&&!s?(t=(r[1]||``)+r[3],Number(t)):e:Number(t)}return e}function $_(e){return e&&e.indexOf(`.`)!==-1?(e=e.replace(/0+$/,``),e===`.`?e=`0`:e[0]===`.`?e=`0`+e:e[e.length-1]===`.`&&(e=e.substring(0,e.length-1)),e):e}function ev(e,t){let n=e.trim();if((t===2||t===8)&&(e=n.substring(2)),parseInt)return parseInt(e,t);if(Number.parseInt)return Number.parseInt(e,t);if(window&&window.parseInt)return window.parseInt(e,t);throw Error(`parseInt, Number.parseInt, window.parseInt are not supported`)}function tv(e,t,n){let r=t===1/0;switch(n.infinity.toLowerCase()){case`null`:return null;case`infinity`:return t;case`string`:return r?`Infinity`:`-Infinity`;default:return e}}function nv(e){return typeof e==`function`?e:Array.isArray(e)?t=>{for(let n of e)if(typeof n==`string`&&t===n||n instanceof RegExp&&n.test(t))return!0}:()=>!1}var rv=class{constructor(e,t={},n){this.pattern=e,this.separator=t.separator||`.`,this.segments=this._parse(e),this.data=n,this._hasDeepWildcard=this.segments.some(e=>e.type===`deep-wildcard`),this._hasAttributeCondition=this.segments.some(e=>e.attrName!==void 0),this._hasPositionSelector=this.segments.some(e=>e.position!==void 0)}_parse(e){let t=[],n=0,r=``;for(;n0?e[e.length-1].tag:void 0}getCurrentNamespace(){let e=this._matcher.path;return e.length>0?e[e.length-1].namespace:void 0}getAttrValue(e){let t=this._matcher.path;if(t.length!==0)return t[t.length-1].values?.[e]}hasAttr(e){let t=this._matcher.path;if(t.length===0)return!1;let n=t[t.length-1];return n.values!==void 0&&e in n.values}getAnyParentAttr(e){return this._matcher.getAnyParentAttr(e)}hasAnyParentAttr(e){return this._matcher.hasAnyParentAttr(e)}getPosition(){let e=this._matcher.path;return e.length===0?-1:e[e.length-1].position??0}getCounter(){let e=this._matcher.path;return e.length===0?-1:e[e.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this._matcher.path.length}toString(e,t=!0){return this._matcher.toString(e,t)}toArray(){return this._matcher.path.map(e=>e.tag)}matches(e){return this._matcher.matches(e)}matchesAny(e){return e.matchesAny(this._matcher)}},ov=class{constructor(e={}){this.separator=e.separator||`.`,this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new av(this),this._keptAttrs=[]}push(e,t=null,n=null,r=null){this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);let i=this.path.length,a=this.siblingStacks[i];a||(a={counts:new Map,total:0},this.siblingStacks[i]=a);let o=n?`${n}:${e}`:e,s=a.counts.get(o)||0,c=a.total;a.counts.set(o,s+1),a.total++;let l={tag:e,position:c,counter:s};n!=null&&(l.namespace=n),t!=null&&(l.values=t),this.path.push(l);let u=this.path.length,d=r===null?null:r.keep;if(d!=null&&d.length>0&&t)for(let e=0;ethis.path.length+1&&(this.siblingStacks.length=this.path.length+1);let t=this.path.length+1;for(;this._keptAttrs.length>0&&this._keptAttrs[this._keptAttrs.length-1].depth>=t;)this._keptAttrs.pop();return e}updateCurrent(e){if(this.path.length>0){let t=this.path[this.path.length-1];e!=null&&(t.values=e)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(e){if(this.path.length!==0)return this.path[this.path.length-1].values?.[e]}hasAttr(e){if(this.path.length===0)return!1;let t=this.path[this.path.length-1];return t.values!==void 0&&e in t.values}getAnyParentAttr(e){let t=this._keptAttrs;for(let n=t.length-1;n>=0;n--)if(t[n].name===e)return t[n].value}hasAnyParentAttr(e){let t=this._keptAttrs;for(let n=t.length-1;n>=0;n--)if(t[n].name===e)return!0;return!1}getPosition(){return this.path.length===0?-1:this.path[this.path.length-1].position??0}getCounter(){return this.path.length===0?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(e,t=!0){let n=e||this.separator;if(n===this.separator&&t===!0){if(this._pathStringCache!==null)return this._pathStringCache;let e=this.path.map(e=>e.namespace?`${e.namespace}:${e.tag}`:e.tag).join(n);return this._pathStringCache=e,e}return this.path.map(e=>t&&e.namespace?`${e.namespace}:${e.tag}`:e.tag).join(n)}toArray(){return this.path.map(e=>e.tag)}reset(){this._pathStringCache=null,this.path=[],this.siblingStacks=[],this._keptAttrs=[]}matches(e){let t=e.segments;return t.length===0?!1:e.hasDeepWildcard()?this._matchWithDeepWildcard(t):this._matchSimple(t)}_matchSimple(e){if(this.path.length!==e.length)return!1;for(let t=0;t=0&&t>=0;){let r=e[n];if(r.type===`deep-wildcard`){if(n--,n<0)return!0;let r=e[n],i=!1;for(let e=t;e>=0;e--)if(this._matchSegment(r,this.path[e],e===this.path.length-1)){t=e-1,n--,i=!0;break}if(!i)return!1}else{if(!this._matchSegment(r,this.path[t],t===this.path.length-1))return!1;t--,n--}}return n<0}_matchSegment(e,t,n){if(e.tag!==`*`&&e.tag!==t.tag||e.namespace!==void 0&&e.namespace!==`*`&&e.namespace!==t.namespace||e.attrName!==void 0&&(!n||!t.values||!(e.attrName in t.values)||e.attrValue!==void 0&&String(t.values[e.attrName])!==String(e.attrValue)))return!1;if(e.position!==void 0){if(!n)return!1;let r=t.counter??0;if(e.position===`first`&&r!==0||e.position===`odd`&&r%2!=1||e.position===`even`&&r%2!=0||e.position===`nth`&&r!==e.positionValue)return!1}return!0}matchesAny(e){return e.matchesAny(this)}snapshot(){return{path:this.path.map(e=>({...e})),siblingStacks:this.siblingStacks.map(e=>e&&{counts:new Map(e.counts),total:e.total}),keptAttrs:this._keptAttrs.map(e=>({...e}))}}restore(e){this._pathStringCache=null,this.path=e.path.map(e=>({...e})),this.siblingStacks=e.siblingStacks.map(e=>e&&{counts:new Map(e.counts),total:e.total}),this._keptAttrs=(e.keptAttrs||[]).map(e=>({...e}))}readOnly(){return this._view}};const sv=[{id:`html-script-open`,description:`