diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c38fee7..26d36ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,7 +62,7 @@ jobs: - name: Verify committed dist/ + action.yml + docs are up-to-date run: | - git diff --exit-code -- '**/dist/**' action.yml packages/build/action.yml docs/inputs.md || { + git diff --exit-code -- '**/dist/**' action.yml docs/inputs.md || { echo "::error::Committed dist/ or generated action.yml/inputs.md is out of sync. Run 'yarn build && yarn gen' locally and commit." exit 1 } diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index e303b97..e88542d 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -1,20 +1,25 @@ name: E2E -# Invokes the top-level composite against the test-fixtures/ projects on +# Invokes the top-level action against the test-fixtures/ projects on # ubuntu/macos/windows. Asserts: # - produced binary runs and prints the expected version # - checksum sidecar matches the binary # - archive round-trips (when compress != none) # - step summary contains a row for the target +# +# Every job below uses `uses: ./`, which resolves against the checked-out +# workspace. That is NOT how a consumer reaches the action, and the difference +# hid a release-blocking bug once. `consumer-ref` is the job that closes the +# gap — do not let it rot. on: push: branches: [main] pull_request: paths: - # `packages/**` covers packages/build/action.yml + every source, test, and - # dist/ under packages/. The action.yml entries below are the top-level - # composite and the two sub-actions whose directories are not under packages/. + # `packages/**` covers every source, test, and dist/ under packages/. + # The action.yml entries below are the top-level entrypoint and the two + # sub-actions whose directories are not under packages/. - 'packages/**' - 'scripts/**' - 'action.yml' @@ -108,7 +113,7 @@ jobs: - run: yarn gen - name: Verify committed action.yml matches source run: | - git diff --exit-code -- action.yml packages/build/action.yml docs/inputs.md || { + git diff --exit-code -- action.yml docs/inputs.md || { echo "::error::action.yml or docs/inputs.md is out of sync. Run 'yarn gen' locally and commit." exit 1 } @@ -537,3 +542,158 @@ jobs: [ "$out" = 'stamp=rewritten-by-transform' ] || { echo "::error::transform hook did not rewrite the packed source (got: $out)"; exit 1; } + + # ────────────────────────────────────────────────────────────────────── + # The job that exercises the action the way a consumer does: the action + # directory is NOT the workspace root. + # + # Every other job says `uses: ./`, which makes GITHUB_WORKSPACE and the + # action directory the same tree. That coincidence hid a release blocker: + # the top-level action was a composite delegating to `uses: ./packages/build`, + # and a composite resolves a local `uses:` against the *consumer's* workspace + # (actions/runner#1348). It passed here and would have failed for every real + # caller. + # + # `uses:` takes no expressions, so this cannot say `/@` for + # the commit under test. Checking the action out into a subdirectory + # reproduces the part that matters — the workspace root holds the fixture and + # nothing else, so an action reaching for `$GITHUB_WORKSPACE/packages/…` + # finds nothing. `consumer-download` below covers the real fetch path. + consumer-ref: + name: consumer (action in a subdirectory) + runs-on: ubuntu-latest + steps: + - name: Check out the fixture only — no packages/, no action.yml + uses: actions/checkout@v6 + with: + sparse-checkout: test-fixtures/tiny-app-cjs + sparse-checkout-cone-mode: false + + - name: Check out the action under test beside it + uses: actions/checkout@v6 + with: + ref: ${{ github.event.pull_request.head.sha || github.sha }} + path: _action-under-test + + - name: Assert the workspace root does not look like pkg-action + shell: bash + run: | + for path in action.yml packages dist; do + if [ -e "$path" ]; then + echo "::error::workspace root contains $path — this job no longer proves anything" + exit 1 + fi + done + ls -la + + - name: Run pkg-action from its subdirectory + id: build + uses: ./_action-under-test + with: + config: test-fixtures/tiny-app-cjs/package.json + targets: node22-linux-x64 + compress: tar.gz + checksum: sha256,sha512 + + - name: Assert the binary runs and the digests are real + shell: bash + run: | + bin=$(echo '${{ steps.build.outputs.binaries }}' | jq -r '.[0]') + [ -x "$bin" ] || { echo "::error::not executable: $bin"; exit 1; } + echo "binary output: $("$bin")" + + artifact=$(echo '${{ steps.build.outputs.artifacts }}' | jq -r '.[0]') + [ -f "$artifact" ] || { echo "::error::missing artifact $artifact"; exit 1; } + + # The digests output must agree with a local recompute, not just exist. + name=$(basename "$artifact") + expected=$(echo '${{ steps.build.outputs.digests }}' | jq -r --arg n "$name" '.[$n].sha256') + actual=$(sha256sum "$artifact" | cut -d' ' -f1) + [ "$expected" = "$actual" ] || { + echo "::error::sha256 mismatch — output says $expected, file is $actual"; exit 1; + } + echo "sha256 verified: $actual" + + - name: Assert PKG_CACHE_PATH was exported to the job + shell: bash + run: | + # Exported by the action's main step; a later step seeing it proves the + # cache directory is shared with anything else that shells out to pkg. + [ -n "${PKG_CACHE_PATH:-}" ] || { echo "::error::PKG_CACHE_PATH not exported"; exit 1; } + echo "PKG_CACHE_PATH=$PKG_CACHE_PATH" + + # ────────────────────────────────────────────────────────────────────── + # The real download path: `uses: /@`, resolved by GitHub + # rather than read off the runner's disk. A literal ref is the only thing + # `uses:` accepts, so this can only test `@main` — which makes it a + # post-merge canary, not a PR gate. `consumer-ref` above is the PR gate. + consumer-download: + name: consumer (downloaded from @main) + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + with: + sparse-checkout: test-fixtures/tiny-app-cjs + sparse-checkout-cone-mode: false + + - name: Run pkg-action as published + id: build + uses: yao-pkg/pkg-action@main + with: + config: test-fixtures/tiny-app-cjs/package.json + targets: node22-linux-x64 + checksum: sha256 + + - name: Assert the binary runs + shell: bash + run: | + bin=$(echo '${{ steps.build.outputs.binaries }}' | jq -r '.[0]') + [ -x "$bin" ] || { echo "::error::not executable: $bin"; exit 1; } + echo "binary output: $("$bin")" + + # ────────────────────────────────────────────────────────────────────── + # Carried over from the M-1 spikes: `runs.using: node24` has to resolve on a + # self-hosted runner too, where the runner's bundled node is whatever the + # admin installed rather than the hosted image's. Skipped unless the repo + # actually has a runner with these labels — a missing runner otherwise queues + # the job until it times out. + self-hosted-node24: + name: self-hosted node24 smoke + if: vars.HAS_SELF_HOSTED_LINUX == 'true' + runs-on: [self-hosted, linux, x64] + timeout-minutes: 20 + steps: + - uses: actions/checkout@v6 + + - name: Report runner + node + shell: bash + run: | + echo "runner: ${RUNNER_NAME:-unknown} (${RUNNER_OS}/${RUNNER_ARCH})" + echo "node: $(node --version) at $(command -v node)" + + - name: Run pkg-action + id: build + uses: ./ + with: + config: test-fixtures/tiny-app-cjs/package.json + targets: node22-linux-x64 + checksum: sha256 + + - name: Assert the binary runs + shell: bash + run: | + bin=$(echo '${{ steps.build.outputs.binaries }}' | jq -r '.[0]') + [ -x "$bin" ] || { echo "::error::not executable: $bin"; exit 1; } + echo "binary output: $("$bin")" + + - name: Assert the post step cleaned up after the previous run + shell: bash + run: | + # Hosted runners get a fresh VM; self-hosted ones do not, so a leaked + # invocation temp dir accumulates here and nowhere else. + leaked=$(find "${RUNNER_TEMP}" -maxdepth 1 -name 'pkg-action-*' | wc -l) + echo "invocation temp dirs currently present: $leaked" + [ "$leaked" -le 1 ] || { + echo "::error::post cleanup is leaking temp dirs on self-hosted runners"; exit 1; + } diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..13b2d0d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,83 @@ +name: Release + +# Cuts a release with release-it: bump → sync workspace versions → codegen → +# bundle → CHANGELOG from Conventional Commits → commit → tag → GitHub release +# → move the floating major tag. See .release-it.json for the sequence. +# +# Runs here rather than on a maintainer's laptop for one reason: the release +# commit contains the `dist/` bundles that consumers actually execute, and this +# is the only place they are guaranteed to be built by the Node in +# .node-version — the same one CI tested. A laptop on a different minor emits a +# different bundle, and nothing downstream would notice. + +on: + workflow_dispatch: + inputs: + increment: + description: 'Version increment (release-it). Leave as conventional to let the commits decide.' + type: choice + default: conventional + options: + - conventional + - patch + - minor + - major + dry-run: + description: 'Print what would happen and change nothing.' + type: boolean + default: true + +permissions: + contents: write + +concurrency: + group: release + cancel-in-progress: false + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + with: + # release-it reads the commit history to pick the bump and write the + # changelog, and move-major-tag.ts resolves the tag it just pushed. + fetch-depth: 0 + fetch-tags: true + + - uses: actions/setup-node@v6 + with: + node-version-file: .node-version + cache: yarn + + - run: yarn install --non-interactive + + - name: Identify as the release bot + run: | + git config user.name 'github-actions[bot]' + git config user.email '41898282+github-actions[bot]@users.noreply.github.com' + + # release-it's own before:init hook runs lint + typecheck + unit tests, so + # a release cannot be cut from a red tree. + - name: Run release-it + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + args=(--ci) + if [ "${{ inputs.increment }}" != 'conventional' ]; then + args+=("--increment=${{ inputs.increment }}") + fi + if [ "${{ inputs.dry-run }}" = 'true' ]; then + args+=(--dry-run) + fi + echo "release-it ${args[*]}" + yarn release-it "${args[@]}" + + - name: Remind about the Marketplace + if: ${{ inputs.dry-run != true }} + run: | + echo "### Released" >> "$GITHUB_STEP_SUMMARY" + echo "" >> "$GITHUB_STEP_SUMMARY" + echo "Publishing to the GitHub Marketplace is a manual checkbox on the" >> "$GITHUB_STEP_SUMMARY" + echo "release page — the API cannot set it. Open the new release and tick" >> "$GITHUB_STEP_SUMMARY" + echo "\"Publish this Action to the GitHub Marketplace\"." >> "$GITHUB_STEP_SUMMARY" diff --git a/.release-it.json b/.release-it.json new file mode 100644 index 0000000..acf507b --- /dev/null +++ b/.release-it.json @@ -0,0 +1,58 @@ +{ + "$schema": "https://unpkg.com/release-it@21/schema/release-it.json", + "git": { + "commitMessage": "chore(release): v${version}", + "tagName": "v${version}", + "tagAnnotation": "pkg-action v${version}", + "requireBranch": "main", + "requireCleanWorkingDir": true, + "requireUpstream": true, + "push": true + }, + "npm": { + "publish": false + }, + "github": { + "release": true, + "releaseName": "v${version}", + "autoGenerate": false, + "comments": { + "submit": false + } + }, + "hooks": { + "before:init": ["yarn lint", "yarn typecheck", "yarn test:unit"], + "after:bump": [ + "node --experimental-strip-types scripts/sync-workspace-versions.ts", + "yarn gen", + "yarn build" + ], + "after:release": "node --experimental-strip-types scripts/move-major-tag.ts ${version}" + }, + "plugins": { + "@release-it/conventional-changelog": { + "preset": { + "name": "conventionalcommits", + "types": [ + { "type": "feat", "section": "Features" }, + { "type": "fix", "section": "Bug Fixes" }, + { "type": "perf", "section": "Performance" }, + { "type": "refactor", "section": "Refactoring" }, + { "type": "docs", "section": "Documentation" }, + { "type": "build", "section": "Build & Dependencies" }, + { "type": "ci", "section": "CI" }, + { "type": "test", "hidden": true }, + { "type": "chore", "hidden": true }, + { "type": "style", "hidden": true } + ] + }, + "infile": "CHANGELOG.md", + "header": "# Changelog\n\nAll notable changes to `yao-pkg/pkg-action`. Generated from Conventional Commits — do not edit by hand.\n", + "ignoreRecommendedBump": false, + "strictSemVer": true, + "gitRawCommitsOpts": { + "from": "9781c17dbf8171995379f2ecf30c9d5a7ea1e592" + } + } + } +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..96742a3 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3 @@ +# Changelog + +All notable changes to `yao-pkg/pkg-action`. Generated from Conventional Commits — do not edit by hand. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index fb8183f..6e65f30 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,11 +23,17 @@ We run TypeScript directly via `node --experimental-strip-types`. **Do not** int Hard caps: **6 runtime deps, 3 dev deps.** Every addition requires a justification comment next to its `package.json` entry. See the plan's §16 for the current allow-list and deny-list. +Current runtime deps (6/6 — the budget is full): `@actions/core`, `@actions/exec`, `@actions/cache`, `@actions/glob`, `resedit`, `yazl`. `@actions/cache` + `@actions/glob` arrived when the composite wrapper was removed and the `actions/cache` step had to move in-process; they cost ~1.5 MB of bundle between them. Anything further needs one of these to leave first. + ## Commits + PRs - Conventional Commits (`feat:`, `fix:`, `refactor:`, `test:`, `chore:`, `docs:`). + These are not decoration: `CHANGELOG.md` and the version bump are generated + from them by release-it. A `feat:` cuts a minor, a `fix:` cuts a patch, and a + `BREAKING CHANGE:` footer cuts a major. `test:`, `chore:` and `style:` are + hidden from the changelog. - Rebase onto `main`, not merge. -- CI must be green before merge. `dist/` and generated `action.yml` files are checked via `git diff --exit-code` — run `yarn build` before committing. +- CI must be green before merge. `dist/` and the generated `action.yml` are checked via `git diff --exit-code` — run `yarn build && yarn gen` before committing. ## Milestones diff --git a/README.md b/README.md index 4c7be40..cd76c33 100644 --- a/README.md +++ b/README.md @@ -202,6 +202,16 @@ Homebrew tap, Scoop bucket, npm package — all live in the same - `yarn build` — esbuild ESM bundle of each sub-action - `yarn test` — `node --test` with `--experimental-strip-types` - `yarn lint` — ESLint + Prettier +- `yarn release:dry` — release-it dry run (see [`docs/architecture.md`](./docs/architecture.md) §11) + +Commit messages follow [Conventional Commits](https://www.conventionalcommits.org/) — +`CHANGELOG.md` and the version bump are generated from them. + +## Security + +Report vulnerabilities privately — see [`SECURITY.md`](./SECURITY.md), which +also documents the trust boundary around pkg build hooks (they are arbitrary +code execution sourced from the ref you build). ## License diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..f6d1980 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,76 @@ +# Security policy + +## Reporting a vulnerability + +Report privately through GitHub Security Advisories: +**https://github.com/yao-pkg/pkg-action/security/advisories/new** + +Please do not open a public issue for anything exploitable. + +Include what you have: the action version or ref, a workflow that reproduces it, +and what an attacker gets out of it. A proof-of-concept repository helps most. + +You should get an acknowledgement within 5 working days. If a fix is warranted +we aim to ship it within 30 days and will credit you in the advisory unless you +ask us not to. + +## What is in scope + +This repository — the action's TypeScript sources, the committed `dist/` +bundles, the codegen, and the workflows. Bugs in `@yao-pkg/pkg` itself belong in +[yao-pkg/pkg](https://github.com/yao-pkg/pkg/security); bugs in the Node.js +binaries pkg downloads belong upstream in Node.js. + +Things that are worth a report: + +- A secret input (`macos-sign-certificate`, `macos-keychain-password`, + `macos-app-password`, `windows-sign-cert`, `windows-sign-password`, + `azure-client-secret`) reaching a process argument list, a log line, the step + summary, or a file that outlives the job. Secrets go to files with `0600` or + to stdin — never to `argv`, which is world-readable through `/proc` on Linux. +- Anything that lets a workflow input execute code outside the pkg build, or + that escapes the invocation temp directory. +- An ephemeral macOS signing keychain surviving the post step. +- A checksum or digest output that does not match the bytes on disk. + +## Known trust boundaries (not vulnerabilities) + +These are how the action is designed to work. Reports about them will be closed +as intended behaviour — but if you can turn one into something worse, tell us. + +**pkg build hooks are arbitrary code execution, by design.** `@yao-pkg/pkg` +6.21+ runs `preBuild`, `postBuild`, and `transform` from your pkg config. The +action forwards the config to pkg and never reads those keys, so any code they +contain runs with the job's full privileges — including access to whatever +signing certificates and tokens that job holds. + +The consequence is about _which ref you build_. A workflow triggered by +`pull_request_target`, or one that checks out `github.event.pull_request.head.sha` +on a `pull_request` from a fork, hands an untrusted contributor a config file +that the action will honour. Build untrusted refs in a job with no secrets, or +gate them behind an environment approval. The action cannot enforce this — by +the time it runs, the config is already on disk. + +**`config-inline` is not a secret channel.** It is registered with +`core.setSecret`, so exact matches get masked in logs, but it is written to a +file on the runner and masking does not extend to whatever a hook prints. Put +secrets in `secrets`, not in `config-inline`. + +**The action runs whatever `pkg-version` resolves to.** The default is a `~` +range, so a patch release of `@yao-pkg/pkg` can land in your job without an +action release. Pin an exact version if your threat model needs it. + +## Supported versions + +Security fixes go to the latest `v1` release and the `v1` floating tag. Older +tags do not get backports. + +## Pinning + +`uses: yao-pkg/pkg-action@v1` follows a mutable tag — convenient, and it means +you get security fixes without acting. If you would rather review every change, +pin the full commit SHA and let Dependabot bump it: + +```yaml +- uses: yao-pkg/pkg-action@<40-char-sha> # v1.0.0 +``` diff --git a/STATUS.yaml b/STATUS.yaml index a208d9b..3f252e1 100644 --- a/STATUS.yaml +++ b/STATUS.yaml @@ -10,14 +10,15 @@ meta: repo: yao-pkg/pkg-action branch: main - last-updated: '2026-04-24' - action-status: ALPHA — ready for early adopters to try in their own workflows - ci-status: green (227 unit tests) + last-updated: '2026-07-27' + action-status: BETA — the action now resolves for external consumers; v1.0.0 blockers cleared + ci-status: green (278 unit tests) e2e-status: | - 7 jobs after the scope cut — tiny-cjs (ubuntu/macos/windows), codegen-drift, - matrix plan→fanout, multi-target-linux, windows-metadata, claude-code-smoke - (SEA + Zstd, 4 OS/arch combos). Signing e2e still deferred until live - credentials are available. + 11 jobs — tiny-cjs (ubuntu/macos/windows), codegen-drift, matrix + plan→fanout, multi-target-linux, windows-metadata, claude-code-smoke + (SEA + Zstd, 4 OS/arch combos), build-hooks, consumer-ref, + consumer-download, and self-hosted-node24. Signing e2e still deferred + until live credentials are available. # ─── Scope decision (2026-04-23) ───────────────────────────────────────── # @@ -68,7 +69,12 @@ input-surface-slim: - debug - extra-args migration: 'Move each value into .pkgrc / pkg.config.{js,cjs,mjs} or the `pkg` field of package.json. `buildPkgArgs` forwards the config path to pkg.' - breaking: 'yes — users setting any dropped input will see the unknown-input warning and the value will be ignored. Release note required.' + breaking: | + Behaviourally yes — a workflow setting any dropped input gets the + unknown-input warning and the value is ignored. NOT a release note: none of + this ever shipped under a tag, so there is no released version to break + from. The v1.0.0 changelog is cut from the scope-cut commit forward for the + same reason. minimum-pkg-version: | @yao-pkg/pkg >= 6.19.0 is required for the full build-flag surface in pkg config; >= 6.21.0 adds the preBuild / postBuild / transform build @@ -82,10 +88,9 @@ input-surface-slim: locate it. default-pkg-version-bump: | `pkg-version` default moved ~6.19.0 -> ~6.21.0. - breaking: 'no API change, but every consumer on a floating action tag - who never set `pkg-version` gets a new pkg toolchain on their next - run. Release note REQUIRED, and it must call out the trust change - below — not just the version number.' + breaking: 'no API change. Pre-1.0 there is no floating tag to move under + anyone, so this needs no release note — but the trust change below must + be documented for consumers regardless, and it is, in SECURITY.md.' security: | 6.21 hooks are arbitrary code execution sourced from the config in the checked-out tree. A workflow that builds an untrusted ref (fork @@ -114,7 +119,7 @@ removed: what: 'attach-to-release, release-{tag,name,body,draft,prerelease}, generate-release-table inputs + ReleaseAttacher + buildReleaseBody + step-summary Release trailer.' replacement: 'softprops/action-gh-release against steps..outputs.artifacts + outputs.checksums.' M6.1 SLSA provenance: - what: 'provenance input + attest-build-provenance wiring in composite action.yml.' + what: 'provenance input + attest-build-provenance wiring in the then-composite action.yml.' replacement: 'actions/attest-build-provenance@v4 — one step chained after pkg-action.' M6.2 SBOM: what: 'sbom input + packages/core/src/sbom.ts (CycloneDX 1.5 + SPDX 2.3).' @@ -132,20 +137,47 @@ removed: what: 'upload-artifact + artifact-name inputs + @actions/artifact integration.' replacement: 'actions/upload-artifact@v4 with path set from steps..outputs.artifacts.' -# ─── Pending ───────────────────────────────────────────────────────────── +# ─── Release blocker found and fixed (2026-07-27) ──────────────────────── -pending: - architecture: - orchestrator-refactor: - issue: packages/build/src/main.ts now ~380 lines (down from ~780 after scope cut) but still mixes wiring with transforms. - plan: 'Extract `finalizeBinary(out, ctx, deps)` (rename → windows-metadata → sign → archive → checksum) into @pkg-action/core. Optional — cosmetic, not blocking v1.0.0.' - size: 2-3 hours, dedicated PR. +composite-removal: + bug: | + The top-level action was a composite whose build step said + `uses: ./packages/build`. Inside a composite, a local `uses:` path + resolves against the CONSUMER's GITHUB_WORKSPACE, not the action's own + checkout (actions/runner#1348, still open). Every documented invocation + — `uses: yao-pkg/pkg-action@v1` — would have failed on its first step + with "Can't find 'action.yml' … for action './packages/build'". + why-ci-was-green: | + All eight e2e jobs used `uses: ./`, which makes GITHUB_WORKSPACE and the + action directory the same tree, so the wrong-root lookup happened to + land on the right files. The test setup masked the bug completely. + fix: | + /action.yml is now a plain `runs.using: node24` action with + main=packages/build/dist/index.mjs, post=packages/build/dist/post.mjs. + packages/build/action.yml is deleted — one action.yml, not two. The + three composite steps moved into TypeScript: + - PKG_CACHE_PATH export → core.exportVariable in main.ts + - actions/cache@v5 step → @actions/cache restore in main.ts, + save in post.ts (packages/build/src/pkg-cache-io.ts) + - npm i -g @yao-pkg/pkg → installPkg() in core/pkg-runner.ts + The bash specifier regex became parsePkgVersionSpecifier in inputs.ts. + Cache keys are byte-identical to the ones the composite's hashFiles() + produced, so pre-1.0 caches still hit. + cost: | + Two runtime deps (@actions/cache, @actions/glob) — the budget is now + full at 6/6. index.mjs 0.96 MB → 2.5 MB, post.mjs 0.73 MB → 2.2 MB. + Normal for an action that caches; actions/cache's own bundle is ~2 MB. + regression-guards: + - 'e2e `consumer-ref` job — fixture at the workspace root, action under test in `_action-under-test/`, so the action directory is not the workspace root. `uses:` accepts no expressions, so no job can name the commit under test by ref; the subdirectory reproduces the part that matters.' + - 'e2e `consumer-download` job — `uses: yao-pkg/pkg-action@main`, the real download path. Push-to-main only, so it is a post-merge canary rather than a PR gate.' + - 'unit test "no step uses an expression in its uses: key" — GitHub rejects such a workflow with no annotation naming the line. Cost one CI round-trip on this very PR.' + - 'unit test "no published action.yml references a local action" over all three action.yml files.' + - 'unit test "every published action.yml points at a bundle that exists" + "no action.yml escapes the repository root" (covers the `../packages/…` main paths in matrix/ and windows-metadata/).' + - 'unit test "the repo publishes no action.yml the tests do not know about" — a new action directory cannot silently skip the checks above.' - subpath-exports: - issue: '@pkg-action/core barrel re-exports everything; unit tests pay unused transitive cost. Less acute after distribution code removal.' - plan: 'Add `"./signing"`, `"./windows-metadata-apply"` subpath exports in packages/core/package.json.' - size: 1 hour. Cosmetic unless test startup measured slow. +# ─── Pending ───────────────────────────────────────────────────────────── +pending: e2e-coverage: - Add `test-fixtures/tiny-app-ts/` — TypeScript source + tsconfig to exercise pkg TS path. - Add `test-fixtures/tiny-app-assets/` — pkg.assets glob + runtime read from SEA snapshot. @@ -157,13 +189,53 @@ pending: - 'Blocked on: organization decision about secret provisioning.' release-readiness: - - Bump root `package.json#version` to 1.0.0 at tag time — auto-propagates via esbuild define into every bundled sub-action. - - Write CHANGELOG.md covering M0 → M4 from git history (include 2026-04-23 scope cut as a prominent BREAKING note). - - Self-hosted runner smoke for node24 (carried over from M-1). - GHES verification (out of reach without a GHES instance). + - 'Set the `HAS_SELF_HOSTED_LINUX` repo variable to `true` once a self-hosted runner exists — the `self-hosted-node24` e2e job is written and gated on it, so it stays skipped until then.' + - 'Tick "Publish this Action to the GitHub Marketplace" on the v1.0.0 release page. No API for it; the release workflow only prints a reminder.' + - 'AFTER v1.0.0 ships: delete `plugins.@release-it/conventional-changelog.gitRawCommitsOpts` from .release-it.json. It pins changelog generation to the scope-cut commit so pre-1.0 removed features stay out of the first entry; left in place it would also pin every later release to that same start point.' + +# ─── Release automation (2026-07-27) ───────────────────────────────────── + +release-tooling: + driver: 'release-it ^21 + @release-it/conventional-changelog ^12, config in .release-it.json.' + trigger: '.github/workflows/release.yml — workflow_dispatch, dry-run defaults to true.' + why-ci-not-laptop: | + The release commit carries the dist/ bundles consumers execute. CI is the + only place they are guaranteed to be built by the Node in .node-version — + the same one the test matrix ran. + version-flow: | + Conventional Commits pick the bump → release-it writes root package.json → + after:bump runs scripts/sync-workspace-versions.ts (root version into every + packages/*/package.json), then `yarn gen`, then `yarn build`. Only the root + version is load-bearing; esbuild inlines it as __PKG_ACTION_VERSION__. + Intra-workspace deps were repinned 0.0.0 → `*` so the sync never has to + rewrite ranges and yarn keeps linking locally. + changelog: | + CHANGELOG.md is generated, never hand-written — release-it rewrites it on + every release, so an entry edited by hand comes back duplicated on top of a + regenerated one. Verified: the plugin's `infile` cannot be unset from the + CLI (`--no-plugins.….infile` writes to a file literally named "false") and + a config using `extends` deep-merges the parent's `infile` back in. + + So the pre-1.0 noise is cut at the range instead of in the file: + `gitRawCommitsOpts.from` pins generation to the scope-cut commit + (9781c17), which is where the Docker / SBOM / Homebrew / Scoop / provenance + / release-attach work was removed. Everything before it describes features + that never shipped and are not in v1.0.0, so listing them would be wrong, + not merely noisy. test/chore/style types stay hidden. + open-question: | + RESOLVED — packages/*/package.json versions are synced by the release + script rather than left at 0.0.0. They are cosmetic (private:true, never + published), so this is a consistency choice: no manifest should claim 0.0.0 + inside a tagged release. + major-tag: 'scripts/move-major-tag.ts runs in after:release, force-moves vN to the new tag. Skipped for prereleases so @v1 never serves an rc.' + open-question: | + packages/*/package.json versions are cosmetic — those packages are + private:true and never published. Syncing them is what was asked for and + is harmless; leaving them at 0.0.0 forever would also have been defensible. # ─── Runtime dependencies ──────────────────────────────────────────────── -# Every runtime dep must be justified — cap 6 (plan §16). +# Every runtime dep must be justified — cap 6 (plan §16). NOW FULL AT 6/6. runtime-deps: '@actions/core': @@ -172,6 +244,17 @@ runtime-deps: '@actions/exec': version: ^3.0.0 purpose: process spawning with GH log streaming. + '@actions/cache': + version: ^6.2.0 + purpose: | + pkg-fetch download cache. Added 2026-07-27 when the composite wrapper + was removed — actions/cache@v5 was a composite step and had nowhere left + to live. Pulls @azure/storage-blob; ~2.1 MB of the bundle is this. + '@actions/glob': + version: ^0.6.1 + purpose: | + hashFiles() for the default cache key. Same implementation the workflow + expression used, so keys are unchanged across the migration. resedit: version: ^3.0.2 purpose: Windows PE resource editing (pulls pe-library@^2.0.1 transitively). @@ -180,6 +263,10 @@ runtime-deps: purpose: cross-platform deterministic zip writer. dev-deps: + release-it: + version: ^21.0.0 + notes: 'release driver. Engines require Node ^22.21.0 || >=24 — satisfied by .node-version (22.22.1) and the CI matrix.' + '@release-it/conventional-changelog': { version: ^12.0.0 } typescript: version: 5.9.3 notes: pinned — must stay compatible with Node 22.22.1 bundled amaro strip-types parser. @@ -201,8 +288,8 @@ dev-deps: gh-actions: actions/checkout: v6 actions/setup-node: v6 - actions/cache: v5 github/codeql-action: v4 + note: 'actions/cache is no longer referenced — caching moved in-process with the composite removal. See composite-removal.fix.' known-issues: - 'yarn install pulls transitive bare-os/bare-fs emitting invalid-engine warnings — cosmetic.' diff --git a/action.yml b/action.yml index 3602c83..084dba2 100644 --- a/action.yml +++ b/action.yml @@ -115,98 +115,16 @@ inputs: outputs: binaries: description: 'JSON array of pre-archive binary absolute paths.' - value: ${{ steps.pkg-action-build.outputs.binaries }} artifacts: description: 'JSON array of post-archive artifact absolute paths.' - value: ${{ steps.pkg-action-build.outputs.artifacts }} checksums: description: 'JSON array of absolute paths to SHASUMS*.txt files.' - value: ${{ steps.pkg-action-build.outputs.checksums }} digests: description: 'JSON object mapping each artifact basename to its {algo: hex} digest map, e.g. {"app-1.0.0-linux-x64.tar.gz": {"sha256": "…"}}.' - value: ${{ steps.pkg-action-build.outputs.digests }} version: description: 'Resolved package.json version used in filename templates.' - value: ${{ steps.pkg-action-build.outputs.version }} runs: - using: 'composite' - steps: - - name: Export PKG_CACHE_PATH - shell: bash - run: | - echo "PKG_CACHE_PATH=${RUNNER_TEMP}/pkg-cache" >> "${GITHUB_ENV}" - - - name: Cache pkg-fetch Node downloads - if: ${{ inputs.cache != 'false' }} - uses: actions/cache@v5 - with: - path: ${{ runner.temp }}/pkg-cache - key: ${{ inputs.cache-key || format('pkg-fetch-{0}-{1}-{2}', runner.os, runner.arch, hashFiles('**/package.json', '.pkgrc', '.pkgrc.json', '**/pkg.config.js', '**/pkg.config.cjs', '**/pkg.config.mjs')) }} - - - name: Install @yao-pkg/pkg - if: ${{ inputs.pkg-path == '' }} - shell: bash - env: - PKG_VERSION: ${{ inputs.pkg-version }} - run: | - # Read from env and quoted — never interpolated into this script by the - # workflow templater, or a crafted specifier would execute right here. - # The pattern lives in a variable because [[ ]] parses a bare > as an - # operator before it ever reaches the regex engine. - specifier_re='^[A-Za-z0-9.*|=<>~^ -]+$' - if [[ ! "${PKG_VERSION}" =~ $specifier_re ]]; then - echo "::error::Input 'pkg-version' is not a valid npm version specifier: ${PKG_VERSION}" - exit 1 - fi - npm i -g "@yao-pkg/pkg@${PKG_VERSION}" - - - name: Run pkg-action build - id: pkg-action-build - uses: ./packages/build - with: - config: ${{ inputs.config }} - config-inline: ${{ inputs.config-inline }} - entry: ${{ inputs.entry }} - targets: ${{ inputs.targets }} - pkg-version: ${{ inputs.pkg-version }} - pkg-path: ${{ inputs.pkg-path }} - strip: ${{ inputs.strip }} - compress: ${{ inputs.compress }} - filename: ${{ inputs.filename }} - checksum: ${{ inputs.checksum }} - windows-metadata-file: ${{ inputs.windows-metadata-file }} - windows-icon: ${{ inputs.windows-icon }} - windows-product-name: ${{ inputs.windows-product-name }} - windows-product-version: ${{ inputs.windows-product-version }} - windows-file-version: ${{ inputs.windows-file-version }} - windows-file-description: ${{ inputs.windows-file-description }} - windows-company-name: ${{ inputs.windows-company-name }} - windows-legal-copyright: ${{ inputs.windows-legal-copyright }} - windows-original-filename: ${{ inputs.windows-original-filename }} - windows-internal-name: ${{ inputs.windows-internal-name }} - windows-comments: ${{ inputs.windows-comments }} - windows-manifest: ${{ inputs.windows-manifest }} - windows-lang: ${{ inputs.windows-lang }} - windows-codepage: ${{ inputs.windows-codepage }} - macos-sign-identity: ${{ inputs.macos-sign-identity }} - macos-sign-certificate: ${{ inputs.macos-sign-certificate }} - macos-keychain-password: ${{ inputs.macos-keychain-password }} - macos-entitlements: ${{ inputs.macos-entitlements }} - macos-notarize: ${{ inputs.macos-notarize }} - macos-apple-id: ${{ inputs.macos-apple-id }} - macos-team-id: ${{ inputs.macos-team-id }} - macos-app-password: ${{ inputs.macos-app-password }} - windows-sign-mode: ${{ inputs.windows-sign-mode }} - windows-sign-cert: ${{ inputs.windows-sign-cert }} - windows-sign-password: ${{ inputs.windows-sign-password }} - windows-sign-rfc3161-url: ${{ inputs.windows-sign-rfc3161-url }} - windows-sign-description: ${{ inputs.windows-sign-description }} - azure-tenant-id: ${{ inputs.azure-tenant-id }} - azure-client-id: ${{ inputs.azure-client-id }} - azure-client-secret: ${{ inputs.azure-client-secret }} - azure-endpoint: ${{ inputs.azure-endpoint }} - azure-cert-profile: ${{ inputs.azure-cert-profile }} - cache: ${{ inputs.cache }} - cache-key: ${{ inputs.cache-key }} - step-summary: ${{ inputs.step-summary }} + using: 'node24' + main: 'packages/build/dist/index.mjs' + post: 'packages/build/dist/post.mjs' diff --git a/docs/architecture.md b/docs/architecture.md index fd4dc4c..aaf58cd 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -13,7 +13,7 @@ can stay focused on wiring. ``` pkg-action/ -├── action.yml # GENERATED — top-level composite (marketplace entry) +├── action.yml # GENERATED — Node24 JS action (marketplace entry) ├── matrix/action.yml # hand-maintained — matrix/ sub-action surface ├── windows-metadata/action.yml # hand-maintained — windows-metadata/ sub-action surface ├── packages/ @@ -23,10 +23,12 @@ pkg-action/ │ └── windows-metadata/ # runs.using: node24 — resedit PE patcher ├── scripts/ │ ├── bundle.ts # esbuild — writes every dist/index.mjs (+ post.mjs) -│ ├── gen-action-yml.ts # codegen — writes action.yml + packages/build/action.yml + docs/inputs.md -│ └── check-coverage.ts # CI gate — parses coverage.lcov, enforces minimum +│ ├── gen-action-yml.ts # codegen — writes action.yml + docs/inputs.md +│ ├── check-coverage.ts # CI gate — parses coverage.lcov, enforces minimum +│ ├── sync-workspace-versions.ts # release — root version → every workspace +│ └── move-major-tag.ts # release — repoints the floating vN tag ├── test-fixtures/ # apps the e2e workflow builds end-to-end -├── .github/workflows/ # ci.yml + e2e.yml + codeql.yml +├── .github/workflows/ # ci.yml + e2e.yml + codeql.yml + release.yml ├── docs/ # authored + (inputs.md) generated reference └── STATUS.yaml # transient pre-v1.0 tracker (retired at release) ``` @@ -81,10 +83,17 @@ directly). | `version.ts` | `VERSION` constant — esbuild-defined at bundle, read from package.json in dev | | `index.ts` | Barrel | -### `@pkg-action/build` (root composite's JS step) +### `@pkg-action/build` (the root action) -Orchestrates the full pipeline. Entry: `src/main.ts`. Post-step: `src/post.ts` -(tears down the macOS ephemeral keychain via `core.getState('macosKeychains')`). +Orchestrates the full pipeline and _is_ `/action.yml`'s `main`. Entry: +`src/main.ts` — restore pkg-fetch cache → `npm i -g @yao-pkg/pkg` → run pkg → +`finalizeBinary` per output → summary → outputs. Post-step: `src/post.ts` (saves +the pkg-fetch cache, then tears down the macOS ephemeral keychain via +`core.getState('macosKeychains')`). + +`src/pkg-cache-io.ts` holds the two-phase `@actions/cache` wiring; the key +derivation itself lives in `core/pkg-cache.ts` so it can be tested without the +cache service. ### `@pkg-action/matrix` @@ -103,15 +112,17 @@ pipeline. parseInputs → typed input record + secret registration readProjectInfo → package.json name + version (resolves config path) resolveTargets → 'host' → hostTarget() | parsed list +restorePkgCache → @actions/cache, key from derivePkgCacheKey (skipped when cache=false) +installPkg → npm i -g @yao-pkg/pkg@ (skipped when pkg-path is set) runPkg → @actions/exec → @yao-pkg/pkg CLI with buildPkgArgs mapPkgOutputs → reconcile on-disk .exe/mach-o/elf to Target[] parseWindowsMetadataInputs → null when unused, short-circuits the resedit step parseSigningInputs → null when unused, validates + registerSecrets up-front -per Target: +per Target: finalizeBinary() → core/finalize-binary.ts render(filename, tokens) → rename output applyWindowsMetadata (win-* only, windowsMeta != null) - signOneTarget (macos + win, signing != null) + sign (macos + win, signing != null) archive (compress != none) computeAllChecksums (any checksum != none) record SummaryRow @@ -122,7 +133,13 @@ setOutputs → binaries / artifacts / checksums / digests / versi ``` All heavy lifting lives in `@pkg-action/core`; the orchestrator is a wiring -shell around the `ExecFn` bridge (`getExecOutput` from `@actions/exec`). +shell around the `ExecFn` bridge (`getExecOutput` from `@actions/exec`). The +per-target work is one `finalizeBinary()` call so the sequencing that actually +matters — patch before sign, sign before checksum — is unit-testable without a +runner. + +The post step (`src/post.ts`) saves the pkg-fetch cache, then deletes the +ephemeral keychains and the invocation temp dir. It never fails the job. ## 5. Dependency-injection pattern @@ -169,11 +186,21 @@ Authoritative list of dropped inputs + migration note lives in Emitted: -- `/action.yml` — top-level composite. Every input forwarded explicitly to the - inner `./packages/build` step (GH Actions has no wildcard forward). -- `/packages/build/action.yml` — JS action definition (`runs.using: node24`). +- `/action.yml` — the marketplace entry: `runs.using: node24`, `main` + `packages/build/dist/index.mjs`, `post` `packages/build/dist/post.mjs`. - `/docs/inputs.md` — reference table grouped by `InputCategory`. +Deliberately **not** a composite. A composite delegating to +`uses: ./packages/build` resolves that path against the _consumer's_ workspace +rather than this repo ([actions/runner#1348][runner-1348]), so it only worked +when the workspace happened to be a checkout of pkg-action — which is exactly +what every `uses: ./` e2e job set up. Owning the run in one JS entrypoint also +keeps a real `post:` step, which is what tears down the signing keychains. The +`consumer-ref` e2e job and the `no published action.yml references a local +action` unit test both guard the regression. + +[runner-1348]: https://github.com/actions/runner/issues/1348 + **Not** touched by codegen: - `/matrix/action.yml` and `/windows-metadata/action.yml` (different surfaces). @@ -218,7 +245,7 @@ steps: install → lint → typecheck → test (with lcov) → coverage gate ( → build → gen → git diff --exit-code over dist/ + action.yml + docs/inputs.md ``` -### `e2e.yml` — full composite against fixtures +### `e2e.yml` — full action against fixtures Triggers: push to main, pull_request (path-filtered so docs-only PRs skip), workflow_dispatch. Jobs: @@ -228,6 +255,20 @@ workflow_dispatch. Jobs: - `matrix-plan` → `matrix-fanout` demo (strategy.matrix consumption) - `multi-target-linux` single-runner build - `windows-metadata` round-trip (`.github/scripts/assert-windows-metadata.ts`) +- `claude-code-smoke` — SEA + Zstd across 4 OS/arch combos +- `build-hooks` — preBuild / postBuild / transform +- `consumer-ref` — **the PR gate for consumer-shaped invocation**: the fixture + is sparse-checked-out at the workspace root and the action under test into + `_action-under-test/`, so the action directory is not the workspace root. + Every other job says `uses: ./`, which collapses the two and hides anything + that depends on the difference. `uses:` accepts no expressions, so a job + cannot name `/@` for the commit under test — hence the + subdirectory. +- `consumer-download` — post-merge canary: `uses: yao-pkg/pkg-action@main`, + the real GitHub-resolved download path. Push-to-main only. +- `self-hosted-node24` — `runs.using: node24` on a self-hosted runner, gated on + the `HAS_SELF_HOSTED_LINUX` repository variable so it does not queue forever + when no such runner exists. ### `codeql.yml` — GitHub CodeQL SAST @@ -248,15 +289,42 @@ asserted by the e2e jobs. Known gap: no fixture yet for TS-source apps, asset-bundling, or `package.json#bin` overrides — see `STATUS.yaml#pending.e2e-coverage`. -## 11. Release flow (future — v1.0.0) - -1. Bump `/package.json#version` to `1.0.0`. -2. `yarn build` — esbuild inlines `"1.0.0"` into every bundled sub-action via `__PKG_ACTION_VERSION__`. -3. `yarn gen` — noop for version, but ensures action.yml + inputs.md are fresh. -4. Commit bundle + codegen output (CI diff gate verifies). -5. Tag `v1.0.0`, push tag. -6. Move `v1` major-alias tag to the new SHA (`git tag -f v1 && git push -f origin v1`). -7. Replace `STATUS.yaml` with `CHANGELOG.md`. +## 11. Release flow + +Driven by **release-it** (`.release-it.json`), triggered from the +`Release` workflow (`workflow_dispatch`, defaults to a dry run). It runs in CI +rather than on a laptop because the release commit carries the `dist/` bundles +consumers execute, and CI is the only place they are guaranteed to be built by +the Node in `.node-version`. + +| Step | Owner | What | +| ------------------------ | ------------------------------------ | ----------------------------------------------------------- | +| pick the version | `@release-it/conventional-changelog` | Conventional Commits decide patch/minor/major | +| `before:init` | release-it hook | `yarn lint`, `yarn typecheck`, `yarn test:unit` | +| bump root `package.json` | release-it | | +| `after:bump` | release-it hook | `sync-workspace-versions.ts` → `yarn gen` → `yarn build` | +| `CHANGELOG.md` | plugin | prepended, generated — never hand-edited | +| commit + tag | release-it | `chore(release): vX.Y.Z`, tag `vX.Y.Z` | +| GitHub release | release-it | body = the generated changelog section | +| `after:release` | release-it hook | `move-major-tag.ts` repoints `vN` (skipped for prereleases) | + +`sync-workspace-versions.ts` exists so `packages/*/package.json` never claims +`0.0.0` inside a tagged release. Those packages are `private: true` and never +published; intra-workspace deps pin `*` so the sync never has to rewrite +ranges. Only the root version is load-bearing — esbuild inlines it as +`__PKG_ACTION_VERSION__`. + +`gitRawCommitsOpts.from` pins changelog generation to the scope-cut commit +(`9781c17`). Everything before it is the Docker / SBOM / Homebrew / Scoop / +provenance / release-attach work that was removed before any tag existed — +listing it in the v1.0.0 changelog would describe features v1.0.0 does not +have. **Delete that key once v1.0.0 ships**, or every later release regenerates +from the same start point. + +Publishing to the GitHub Marketplace stays manual: it is a checkbox on the +release page with no API. + +Retire `STATUS.yaml` once v1.0.0 ships — `CHANGELOG.md` replaces it. ## 12. Known architectural debt diff --git a/package.json b/package.json index 1996742..1aac4eb 100644 --- a/package.json +++ b/package.json @@ -27,9 +27,12 @@ "lint:code": "eslint 'packages/**/src/**/*.ts' 'scripts/**/*.ts' '.github/scripts/**/*.ts'", "lint:style": "prettier --check .", "fix": "eslint --fix 'packages/**/src/**/*.ts' 'scripts/**/*.ts' '.github/scripts/**/*.ts' && prettier --write .", - "typecheck": "tsc --noEmit -p ." + "typecheck": "tsc --noEmit -p .", + "release": "release-it", + "release:dry": "release-it --dry-run" }, "devDependencies": { + "@release-it/conventional-changelog": "^12.0.0", "@types/node": "^22.19.17", "@typescript-eslint/eslint-plugin": "^8.58.2", "@typescript-eslint/parser": "^8.58.2", @@ -39,6 +42,7 @@ "eslint-plugin-prettier": "^5.5.5", "globals": "^17.5.0", "prettier": "^3.8.3", + "release-it": "^21.0.0", "typescript": "5.9.3" } } diff --git a/packages/build/action.yml b/packages/build/action.yml deleted file mode 100644 index a62a7ec..0000000 --- a/packages/build/action.yml +++ /dev/null @@ -1,127 +0,0 @@ -# GENERATED — do not edit by hand. -# Source of truth: packages/core/src/inputs.ts (INPUT_SPECS). -# Regenerate with: yarn gen -name: 'pkg-action internal: build' -description: 'Internal Node 24 JS action invoked by the top-level pkg-action composite. Not a public API.' -author: 'yao-pkg contributors' - -inputs: - config: - description: 'Path to a pkg config. When omitted, pkg auto-detects .pkgrc, .pkgrc.json, pkg.config.js, pkg.config.cjs or pkg.config.mjs next to the entry; the package.json pkg field is used when the entry itself resolves to a package.json. An explicit path may point at a package.json or a standalone config; for a standalone config pkg also needs an entry script, so the action supplies package.json bin when the entry input is unset. Mutually exclusive with config-inline.' - config-inline: - description: 'Pkg config as a JSON string. Written to a temp file and passed to pkg via --config. Mutually exclusive with config. Being JSON, it can only carry the shell-string form of the preBuild/postBuild hooks — function hooks and transform need a pkg.config.{js,cjs,mjs} file via config. Registered with core.setSecret so exact matches are redacted from logs, which does not extend to output a hook prints; still written to a temp file on the runner, so prefer config for anything beyond trivial knobs.' - entry: - description: 'Entry script when not specified in the config.' - targets: - description: 'Comma- or newline-separated pkg target triples, e.g. node22-linux-x64,node22-macos-arm64. Defaults to the host target.' - pkg-version: - description: 'npm version specifier for @yao-pkg/pkg (e.g. ~6.21.0). 6.19.0+ is required for the full build-flag surface in pkg config (compress, fallbackToSource, public, publicPackages, options, bytecode, nativeBuild, noDictionary, debug, signature); 6.21.0+ adds the preBuild, postBuild and transform build hooks. Bypassed when pkg-path is set.' - default: '~6.21.0' - pkg-path: - description: 'Absolute path to a pre-installed pkg binary. Skips the implicit npm i -g.' - strip: - description: 'Strip debug symbols on Linux/macOS outputs.' - default: 'false' - compress: - description: 'Archive format: tar.gz | tar.xz | zip | 7z | none.' - default: 'none' - filename: - description: 'Output filename template. Tokens: {name} {version} {target} {node} {os} {arch} {sha} {ref} {date} {tag}.' - default: '{name}-{version}-{os}-{arch}' - checksum: - description: 'Checksum algorithms: comma list of none | sha256 | sha512 | md5.' - default: 'sha256' - windows-metadata-file: - description: 'Path to a JSON file with any subset of the Windows metadata fields.' - windows-icon: - description: 'Newline- or comma-separated list of = icon entries, or just for id 1.' - windows-product-name: - description: 'ProductName string.' - windows-product-version: - description: 'ProductVersion (auto-padded to four parts).' - windows-file-version: - description: 'FileVersion (auto-padded to four parts).' - windows-file-description: - description: 'FileDescription string.' - windows-company-name: - description: 'CompanyName string.' - windows-legal-copyright: - description: 'LegalCopyright string (© auto-inserted if omitted).' - windows-original-filename: - description: 'OriginalFilename string. Defaults to the output basename.' - windows-internal-name: - description: 'InternalName string.' - windows-comments: - description: 'Comments string.' - windows-manifest: - description: 'Path to a raw app.manifest file to embed as RT_MANIFEST.' - windows-lang: - description: 'Language identifier for VersionInfo.' - default: '1033' - windows-codepage: - description: 'Codepage for VersionInfo strings.' - default: '1200' - macos-sign-identity: - description: 'codesign identity (Common Name or SHA-1).' - macos-sign-certificate: - description: 'Base64-encoded .p12 certificate.' - macos-keychain-password: - description: 'Password for the ephemeral keychain holding the signing identity.' - macos-entitlements: - description: 'Path to an entitlements plist.' - macos-notarize: - description: 'Run xcrun notarytool + staple after signing.' - default: 'false' - macos-apple-id: - description: 'Apple ID for notarytool.' - macos-team-id: - description: 'Apple Team ID for notarytool.' - macos-app-password: - description: 'App-specific password for notarytool.' - windows-sign-mode: - description: 'none | signtool | trusted-signing.' - default: 'none' - windows-sign-cert: - description: 'Base64-encoded .pfx for signtool mode.' - windows-sign-password: - description: 'Password for the .pfx.' - windows-sign-rfc3161-url: - description: 'RFC3161 timestamp URL for signtool.' - default: 'http://timestamp.digicert.com' - windows-sign-description: - description: 'Description passed to signtool /d.' - azure-tenant-id: - description: 'Azure Trusted Signing: tenant ID.' - azure-client-id: - description: 'Azure Trusted Signing: client ID.' - azure-client-secret: - description: 'Azure Trusted Signing: client secret.' - azure-endpoint: - description: 'Azure Trusted Signing: endpoint URL.' - azure-cert-profile: - description: 'Azure Trusted Signing: certificate profile name.' - cache: - description: 'Cache the pkg-fetch Node downloads between runs.' - default: 'true' - cache-key: - description: 'Override the auto-derived cache key.' - step-summary: - description: 'Write a markdown summary of build time / size / checksum to the job summary.' - default: 'true' - -outputs: - binaries: - description: 'JSON array of pre-archive binary absolute paths.' - artifacts: - description: 'JSON array of post-archive artifact absolute paths.' - checksums: - description: 'JSON array of absolute paths to SHASUMS*.txt files.' - digests: - description: 'JSON object mapping each artifact basename to its {algo: hex} digest map, e.g. {"app-1.0.0-linux-x64.tar.gz": {"sha256": "…"}}.' - version: - description: 'Resolved package.json version used in filename templates.' - -runs: - using: 'node24' - main: 'dist/index.mjs' - post: 'dist/post.mjs' diff --git a/packages/build/dist/index.mjs b/packages/build/dist/index.mjs index cf4f8e8..2d121e1 100644 --- a/packages/build/dist/index.mjs +++ b/packages/build/dist/index.mjs @@ -34,63 +34,63 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge // node_modules/tunnel/lib/tunnel.js var require_tunnel = __commonJS({ - "node_modules/tunnel/lib/tunnel.js"(exports) { + "node_modules/tunnel/lib/tunnel.js"(exports2) { "use strict"; - var net = __require("net"), tls = __require("tls"), http = __require("http"), https = __require("https"), events2 = __require("events"), assert = __require("assert"), util = __require("util"); - exports.httpOverHttp = httpOverHttp2; - exports.httpsOverHttp = httpsOverHttp2; - exports.httpOverHttps = httpOverHttps2; - exports.httpsOverHttps = httpsOverHttps2; - function httpOverHttp2(options) { + var net = __require("net"), tls = __require("tls"), http3 = __require("http"), https3 = __require("https"), events2 = __require("events"), assert4 = __require("assert"), util6 = __require("util"); + exports2.httpOverHttp = httpOverHttp4; + exports2.httpsOverHttp = httpsOverHttp4; + exports2.httpOverHttps = httpOverHttps4; + exports2.httpsOverHttps = httpsOverHttps4; + function httpOverHttp4(options) { var agent = new TunnelingAgent(options); - return agent.request = http.request, agent; + return agent.request = http3.request, agent; } - function httpsOverHttp2(options) { + function httpsOverHttp4(options) { var agent = new TunnelingAgent(options); - return agent.request = http.request, agent.createSocket = createSecureSocket, agent.defaultPort = 443, agent; + return agent.request = http3.request, agent.createSocket = createSecureSocket, agent.defaultPort = 443, agent; } - function httpOverHttps2(options) { + function httpOverHttps4(options) { var agent = new TunnelingAgent(options); - return agent.request = https.request, agent; + return agent.request = https3.request, agent; } - function httpsOverHttps2(options) { + function httpsOverHttps4(options) { var agent = new TunnelingAgent(options); - return agent.request = https.request, agent.createSocket = createSecureSocket, agent.defaultPort = 443, agent; + return agent.request = https3.request, agent.createSocket = createSecureSocket, agent.defaultPort = 443, agent; } function TunnelingAgent(options) { - var self = this; - self.options = options || {}, self.proxyOptions = self.options.proxy || {}, self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets, self.requests = [], self.sockets = [], self.on("free", function(socket, host, port, localAddress) { - for (var options2 = toOptions(host, port, localAddress), i = 0, len = self.requests.length; i < len; ++i) { - var pending = self.requests[i]; + var self2 = this; + self2.options = options || {}, self2.proxyOptions = self2.options.proxy || {}, self2.maxSockets = self2.options.maxSockets || http3.Agent.defaultMaxSockets, self2.requests = [], self2.sockets = [], self2.on("free", function(socket, host, port, localAddress) { + for (var options2 = toOptions(host, port, localAddress), i = 0, len = self2.requests.length; i < len; ++i) { + var pending = self2.requests[i]; if (pending.host === options2.host && pending.port === options2.port) { - self.requests.splice(i, 1), pending.request.onSocket(socket); + self2.requests.splice(i, 1), pending.request.onSocket(socket); return; } } - socket.destroy(), self.removeSocket(socket); + socket.destroy(), self2.removeSocket(socket); }); } - util.inherits(TunnelingAgent, events2.EventEmitter); + util6.inherits(TunnelingAgent, events2.EventEmitter); TunnelingAgent.prototype.addRequest = function(req, host, port, localAddress) { - var self = this, options = mergeOptions({ request: req }, self.options, toOptions(host, port, localAddress)); - if (self.sockets.length >= this.maxSockets) { - self.requests.push(options); + var self2 = this, options = mergeOptions({ request: req }, self2.options, toOptions(host, port, localAddress)); + if (self2.sockets.length >= this.maxSockets) { + self2.requests.push(options); return; } - self.createSocket(options, function(socket) { + self2.createSocket(options, function(socket) { socket.on("free", onFree), socket.on("close", onCloseOrRemove), socket.on("agentRemove", onCloseOrRemove), req.onSocket(socket); function onFree() { - self.emit("free", socket, options); + self2.emit("free", socket, options); } function onCloseOrRemove(err) { - self.removeSocket(socket), socket.removeListener("free", onFree), socket.removeListener("close", onCloseOrRemove), socket.removeListener("agentRemove", onCloseOrRemove); + self2.removeSocket(socket), socket.removeListener("free", onFree), socket.removeListener("close", onCloseOrRemove), socket.removeListener("agentRemove", onCloseOrRemove); } }); }; TunnelingAgent.prototype.createSocket = function(options, cb) { - var self = this, placeholder = {}; - self.sockets.push(placeholder); - var connectOptions = mergeOptions({}, self.proxyOptions, { + var self2 = this, placeholder = {}; + self2.sockets.push(placeholder); + var connectOptions = mergeOptions({}, self2.proxyOptions, { method: "CONNECT", path: options.host + ":" + options.port, agent: !1, @@ -98,8 +98,8 @@ var require_tunnel = __commonJS({ host: options.host + ":" + options.port } }); - options.localAddress && (connectOptions.localAddress = options.localAddress), connectOptions.proxyAuth && (connectOptions.headers = connectOptions.headers || {}, connectOptions.headers["Proxy-Authorization"] = "Basic " + new Buffer(connectOptions.proxyAuth).toString("base64")), debug2("making CONNECT request"); - var connectReq = self.request(connectOptions); + options.localAddress && (connectOptions.localAddress = options.localAddress), connectOptions.proxyAuth && (connectOptions.headers = connectOptions.headers || {}, connectOptions.headers["Proxy-Authorization"] = "Basic " + new Buffer(connectOptions.proxyAuth).toString("base64")), debug3("making CONNECT request"); + var connectReq = self2.request(connectOptions); connectReq.useChunkedEncodingByDefault = !1, connectReq.once("response", onResponse), connectReq.once("upgrade", onUpgrade), connectReq.once("connect", onConnect), connectReq.once("error", onError), connectReq.end(); function onResponse(res) { res.upgrade = !0; @@ -111,31 +111,31 @@ var require_tunnel = __commonJS({ } function onConnect(res, socket, head) { if (connectReq.removeAllListeners(), socket.removeAllListeners(), res.statusCode !== 200) { - debug2( + debug3( "tunneling socket could not be established, statusCode=%d", res.statusCode ), socket.destroy(); - var error2 = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); - error2.code = "ECONNRESET", options.request.emit("error", error2), self.removeSocket(placeholder); + var error3 = new Error("tunneling socket could not be established, statusCode=" + res.statusCode); + error3.code = "ECONNRESET", options.request.emit("error", error3), self2.removeSocket(placeholder); return; } if (head.length > 0) { - debug2("got illegal response body from proxy"), socket.destroy(); - var error2 = new Error("got illegal response body from proxy"); - error2.code = "ECONNRESET", options.request.emit("error", error2), self.removeSocket(placeholder); + debug3("got illegal response body from proxy"), socket.destroy(); + var error3 = new Error("got illegal response body from proxy"); + error3.code = "ECONNRESET", options.request.emit("error", error3), self2.removeSocket(placeholder); return; } - return debug2("tunneling connection has established"), self.sockets[self.sockets.indexOf(placeholder)] = socket, cb(socket); + return debug3("tunneling connection has established"), self2.sockets[self2.sockets.indexOf(placeholder)] = socket, cb(socket); } function onError(cause) { - connectReq.removeAllListeners(), debug2( + connectReq.removeAllListeners(), debug3( `tunneling socket could not be established, cause=%s `, cause.message, cause.stack ); - var error2 = new Error("tunneling socket could not be established, cause=" + cause.message); - error2.code = "ECONNRESET", options.request.emit("error", error2), self.removeSocket(placeholder); + var error3 = new Error("tunneling socket could not be established, cause=" + cause.message); + error3.code = "ECONNRESET", options.request.emit("error", error3), self2.removeSocket(placeholder); } }; TunnelingAgent.prototype.removeSocket = function(socket) { @@ -149,13 +149,13 @@ var require_tunnel = __commonJS({ } }; function createSecureSocket(options, cb) { - var self = this; - TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { - var hostHeader = options.request.getHeader("host"), tlsOptions = mergeOptions({}, self.options, { + var self2 = this; + TunnelingAgent.prototype.createSocket.call(self2, options, function(socket) { + var hostHeader = options.request.getHeader("host"), tlsOptions = mergeOptions({}, self2.options, { socket, servername: hostHeader ? hostHeader.replace(/:.*$/, "") : options.host }), secureSocket = tls.connect(0, tlsOptions); - self.sockets[self.sockets.indexOf(socket)] = secureSocket, cb(secureSocket); + self2.sockets[self2.sockets.indexOf(socket)] = secureSocket, cb(secureSocket); }); } function toOptions(host, port, localAddress) { @@ -176,26 +176,26 @@ var require_tunnel = __commonJS({ } return target; } - var debug2; - process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG) ? debug2 = function() { + var debug3; + process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG) ? debug3 = function() { var args = Array.prototype.slice.call(arguments); typeof args[0] == "string" ? args[0] = "TUNNEL: " + args[0] : args.unshift("TUNNEL:"), console.error.apply(console, args); - } : debug2 = function() { + } : debug3 = function() { }; - exports.debug = debug2; + exports2.debug = debug3; } }); // node_modules/tunnel/index.js var require_tunnel2 = __commonJS({ - "node_modules/tunnel/index.js"(exports, module) { + "node_modules/tunnel/index.js"(exports2, module) { module.exports = require_tunnel(); } }); // node_modules/undici/lib/core/symbols.js var require_symbols = __commonJS({ - "node_modules/undici/lib/core/symbols.js"(exports, module) { + "node_modules/undici/lib/core/symbols.js"(exports2, module) { module.exports = { kClose: /* @__PURE__ */ Symbol("close"), kDestroy: /* @__PURE__ */ Symbol("destroy"), @@ -268,7 +268,7 @@ var require_symbols = __commonJS({ // node_modules/undici/lib/core/errors.js var require_errors = __commonJS({ - "node_modules/undici/lib/core/errors.js"(exports, module) { + "node_modules/undici/lib/core/errors.js"(exports2, module) { "use strict"; var kUndiciError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR"), UndiciError = class extends Error { constructor(message) { @@ -311,8 +311,8 @@ var require_errors = __commonJS({ } [kBodyTimeoutError] = !0; }, kResponseStatusCodeError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_RESPONSE_STATUS_CODE"), ResponseStatusCodeError = class extends UndiciError { - constructor(message, statusCode, headers, body) { - super(message), this.name = "ResponseStatusCodeError", this.message = message || "Response Status Code Error", this.code = "UND_ERR_RESPONSE_STATUS_CODE", this.body = body, this.status = statusCode, this.statusCode = statusCode, this.headers = headers; + constructor(message, statusCode, headers, body2) { + super(message), this.name = "ResponseStatusCodeError", this.message = message || "Response Status Code Error", this.code = "UND_ERR_RESPONSE_STATUS_CODE", this.body = body2, this.status = statusCode, this.statusCode = statusCode, this.headers = headers; } static [Symbol.hasInstance](instance) { return instance && instance[kResponseStatusCodeError] === !0; @@ -334,7 +334,7 @@ var require_errors = __commonJS({ return instance && instance[kInvalidReturnValueError] === !0; } [kInvalidReturnValueError] = !0; - }, kAbortError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_ABORT"), AbortError = class extends UndiciError { + }, kAbortError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_ABORT"), AbortError3 = class extends UndiciError { constructor(message) { super(message), this.name = "AbortError", this.message = message || "The operation was aborted", this.code = "UND_ERR_ABORT"; } @@ -342,7 +342,7 @@ var require_errors = __commonJS({ return instance && instance[kAbortError] === !0; } [kAbortError] = !0; - }, kRequestAbortedError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_ABORTED"), RequestAbortedError = class extends AbortError { + }, kRequestAbortedError = /* @__PURE__ */ Symbol.for("undici.error.UND_ERR_ABORTED"), RequestAbortedError = class extends AbortError3 { constructor(message) { super(message), this.name = "AbortError", this.message = message || "Request aborted", this.code = "UND_ERR_ABORTED"; } @@ -466,7 +466,7 @@ var require_errors = __commonJS({ } }; module.exports = { - AbortError, + AbortError: AbortError3, HTTPParserError, UndiciError, HeadersTimeoutError, @@ -496,7 +496,7 @@ var require_errors = __commonJS({ // node_modules/undici/lib/core/constants.js var require_constants = __commonJS({ - "node_modules/undici/lib/core/constants.js"(exports, module) { + "node_modules/undici/lib/core/constants.js"(exports2, module) { "use strict"; var headerNameLowerCasedRecord = {}, wellknownHeaderNames = [ "Accept", @@ -609,7 +609,7 @@ var require_constants = __commonJS({ // node_modules/undici/lib/core/tree.js var require_tree = __commonJS({ - "node_modules/undici/lib/core/tree.js"(exports, module) { + "node_modules/undici/lib/core/tree.js"(exports2, module) { "use strict"; var { wellknownHeaderNames, @@ -726,22 +726,22 @@ var require_tree = __commonJS({ // node_modules/undici/lib/core/util.js var require_util = __commonJS({ - "node_modules/undici/lib/core/util.js"(exports, module) { + "node_modules/undici/lib/core/util.js"(exports2, module) { "use strict"; - var assert = __require("node:assert"), { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols(), { IncomingMessage } = __require("node:http"), stream = __require("node:stream"), net = __require("node:net"), { Blob: Blob2 } = __require("node:buffer"), nodeUtil = __require("node:util"), { stringify } = __require("node:querystring"), { EventEmitter: EE } = __require("node:events"), { InvalidArgumentError } = require_errors(), { headerNameLowerCasedRecord } = require_constants(), { tree } = require_tree(), [nodeMajor, nodeMinor] = process.versions.node.split(".").map((v) => Number(v)), BodyAsyncIterable = class { - constructor(body) { - this[kBody] = body, this[kBodyUsed] = !1; + var assert4 = __require("node:assert"), { kDestroyed, kBodyUsed, kListeners, kBody } = require_symbols(), { IncomingMessage } = __require("node:http"), stream3 = __require("node:stream"), net = __require("node:net"), { Blob: Blob2 } = __require("node:buffer"), nodeUtil = __require("node:util"), { stringify } = __require("node:querystring"), { EventEmitter: EE } = __require("node:events"), { InvalidArgumentError } = require_errors(), { headerNameLowerCasedRecord } = require_constants(), { tree } = require_tree(), [nodeMajor, nodeMinor] = process.versions.node.split(".").map((v) => Number(v)), BodyAsyncIterable = class { + constructor(body2) { + this[kBody] = body2, this[kBodyUsed] = !1; } async *[Symbol.asyncIterator]() { - assert(!this[kBodyUsed], "disturbed"), this[kBodyUsed] = !0, yield* this[kBody]; + assert4(!this[kBodyUsed], "disturbed"), this[kBodyUsed] = !0, yield* this[kBody]; } }; - function wrapRequestBody(body) { - return isStream(body) ? (bodyLength(body) === 0 && body.on("data", function() { - assert(!1); - }), typeof body.readableDidRead != "boolean" && (body[kBodyUsed] = !1, EE.prototype.on.call(body, "data", function() { + function wrapRequestBody(body2) { + return isStream(body2) ? (bodyLength(body2) === 0 && body2.on("data", function() { + assert4(!1); + }), typeof body2.readableDidRead != "boolean" && (body2[kBodyUsed] = !1, EE.prototype.on.call(body2, "data", function() { this[kBodyUsed] = !0; - })), body) : body && typeof body.pipeTo == "function" ? new BodyAsyncIterable(body) : body && typeof body != "string" && !ArrayBuffer.isView(body) && isIterable(body) ? new BodyAsyncIterable(body) : body; + })), body2) : body2 && typeof body2.pipeTo == "function" ? new BodyAsyncIterable(body2) : body2 && typeof body2 != "string" && !ArrayBuffer.isView(body2) && isIterable(body2) ? new BodyAsyncIterable(body2) : body2; } function nop() { } @@ -760,11 +760,11 @@ var require_util = __commonJS({ return (sTag === "Blob" || sTag === "File") && ("stream" in object && typeof object.stream == "function" || "arrayBuffer" in object && typeof object.arrayBuffer == "function"); } } - function buildURL(url, queryParams) { - if (url.includes("?") || url.includes("#")) + function buildURL(url2, queryParams) { + if (url2.includes("?") || url2.includes("#")) throw new Error('Query params cannot be passed when url already contains "?" or "#".'); let stringified = stringify(queryParams); - return stringified && (url += "?" + stringified), url; + return stringified && (url2 += "?" + stringified), url2; } function isValidPort(port) { let value = parseInt(port, 10); @@ -773,43 +773,43 @@ var require_util = __commonJS({ function isHttpOrHttpsPrefixed(value) { return value != null && value[0] === "h" && value[1] === "t" && value[2] === "t" && value[3] === "p" && (value[4] === ":" || value[4] === "s" && value[5] === ":"); } - function parseURL(url) { - if (typeof url == "string") { - if (url = new URL(url), !isHttpOrHttpsPrefixed(url.origin || url.protocol)) + function parseURL(url2) { + if (typeof url2 == "string") { + if (url2 = new URL(url2), !isHttpOrHttpsPrefixed(url2.origin || url2.protocol)) throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); - return url; + return url2; } - if (!url || typeof url != "object") + if (!url2 || typeof url2 != "object") throw new InvalidArgumentError("Invalid URL: The URL argument must be a non-null object."); - if (!(url instanceof URL)) { - if (url.port != null && url.port !== "" && isValidPort(url.port) === !1) + if (!(url2 instanceof URL)) { + if (url2.port != null && url2.port !== "" && isValidPort(url2.port) === !1) throw new InvalidArgumentError("Invalid URL: port must be a valid integer or a string representation of an integer."); - if (url.path != null && typeof url.path != "string") + if (url2.path != null && typeof url2.path != "string") throw new InvalidArgumentError("Invalid URL path: the path must be a string or null/undefined."); - if (url.pathname != null && typeof url.pathname != "string") + if (url2.pathname != null && typeof url2.pathname != "string") throw new InvalidArgumentError("Invalid URL pathname: the pathname must be a string or null/undefined."); - if (url.hostname != null && typeof url.hostname != "string") + if (url2.hostname != null && typeof url2.hostname != "string") throw new InvalidArgumentError("Invalid URL hostname: the hostname must be a string or null/undefined."); - if (url.origin != null && typeof url.origin != "string") + if (url2.origin != null && typeof url2.origin != "string") throw new InvalidArgumentError("Invalid URL origin: the origin must be a string or null/undefined."); - if (!isHttpOrHttpsPrefixed(url.origin || url.protocol)) + if (!isHttpOrHttpsPrefixed(url2.origin || url2.protocol)) throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); - let port = url.port != null ? url.port : url.protocol === "https:" ? 443 : 80, origin = url.origin != null ? url.origin : `${url.protocol || ""}//${url.hostname || ""}:${port}`, path4 = url.path != null ? url.path : `${url.pathname || ""}${url.search || ""}`; - return origin[origin.length - 1] === "/" && (origin = origin.slice(0, origin.length - 1)), path4 && path4[0] !== "/" && (path4 = `/${path4}`), new URL(`${origin}${path4}`); + let port = url2.port != null ? url2.port : url2.protocol === "https:" ? 443 : 80, origin = url2.origin != null ? url2.origin : `${url2.protocol || ""}//${url2.hostname || ""}:${port}`, path12 = url2.path != null ? url2.path : `${url2.pathname || ""}${url2.search || ""}`; + return origin[origin.length - 1] === "/" && (origin = origin.slice(0, origin.length - 1)), path12 && path12[0] !== "/" && (path12 = `/${path12}`), new URL(`${origin}${path12}`); } - if (!isHttpOrHttpsPrefixed(url.origin || url.protocol)) + if (!isHttpOrHttpsPrefixed(url2.origin || url2.protocol)) throw new InvalidArgumentError("Invalid URL protocol: the URL must start with `http:` or `https:`."); - return url; + return url2; } - function parseOrigin(url) { - if (url = parseURL(url), url.pathname !== "/" || url.search || url.hash) + function parseOrigin(url2) { + if (url2 = parseURL(url2), url2.pathname !== "/" || url2.search || url2.hash) throw new InvalidArgumentError("invalid url"); - return url; + return url2; } function getHostname(host) { if (host[0] === "[") { let idx2 = host.indexOf("]"); - return assert(idx2 !== -1), host.substring(1, idx2); + return assert4(idx2 !== -1), host.substring(1, idx2); } let idx = host.indexOf(":"); return idx === -1 ? host : host.substring(0, idx); @@ -817,7 +817,7 @@ var require_util = __commonJS({ function getServerName(host) { if (!host) return null; - assert(typeof host == "string"); + assert4(typeof host == "string"); let servername = getHostname(host); return net.isIP(servername) ? "" : servername; } @@ -830,27 +830,27 @@ var require_util = __commonJS({ function isIterable(obj) { return obj != null && (typeof obj[Symbol.iterator] == "function" || typeof obj[Symbol.asyncIterator] == "function"); } - function bodyLength(body) { - if (body == null) + function bodyLength(body2) { + if (body2 == null) return 0; - if (isStream(body)) { - let state = body._readableState; - return state && state.objectMode === !1 && state.ended === !0 && Number.isFinite(state.length) ? state.length : null; + if (isStream(body2)) { + let state3 = body2._readableState; + return state3 && state3.objectMode === !1 && state3.ended === !0 && Number.isFinite(state3.length) ? state3.length : null; } else { - if (isBlobLike(body)) - return body.size != null ? body.size : null; - if (isBuffer(body)) - return body.byteLength; + if (isBlobLike(body2)) + return body2.size != null ? body2.size : null; + if (isBuffer(body2)) + return body2.byteLength; } return null; } - function isDestroyed(body) { - return body && !!(body.destroyed || body[kDestroyed] || stream.isDestroyed?.(body)); + function isDestroyed(body2) { + return body2 && !!(body2.destroyed || body2[kDestroyed] || stream3.isDestroyed?.(body2)); } - function destroy(stream2, err) { - stream2 == null || !isStream(stream2) || isDestroyed(stream2) || (typeof stream2.destroy == "function" ? (Object.getPrototypeOf(stream2).constructor === IncomingMessage && (stream2.socket = null), stream2.destroy(err)) : err && queueMicrotask(() => { - stream2.emit("error", err); - }), stream2.destroyed !== !0 && (stream2[kDestroyed] = !0)); + function destroy2(stream4, err) { + stream4 == null || !isStream(stream4) || isDestroyed(stream4) || (typeof stream4.destroy == "function" ? (Object.getPrototypeOf(stream4).constructor === IncomingMessage && (stream4.socket = null), stream4.destroy(err)) : err && queueMicrotask(() => { + stream4.emit("error", err); + }), stream4.destroyed !== !0 && (stream4[kDestroyed] = !0)); } var KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/; function parseKeepAliveTimeout(val) { @@ -882,8 +882,8 @@ var require_util = __commonJS({ key = headers[n], val = headers[n + 1], typeof key != "string" && (key = key.toString()), typeof val != "string" && (val = val.toString("utf8")), kLen = key.length, kLen === 14 && key[7] === "-" && (key === "content-length" || key.toLowerCase() === "content-length") ? hasContentLength = !0 : kLen === 19 && key[7] === "-" && (key === "content-disposition" || key.toLowerCase() === "content-disposition") && (contentDispositionIdx = n + 1), ret[n] = key, ret[n + 1] = val; return hasContentLength && contentDispositionIdx !== -1 && (ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString("latin1")), ret; } - function isBuffer(buffer) { - return buffer instanceof Uint8Array || Buffer.isBuffer(buffer); + function isBuffer(buffer3) { + return buffer3 instanceof Uint8Array || Buffer.isBuffer(buffer3); } function validateHandler(handler, method, upgrade) { if (!handler || typeof handler != "object") @@ -906,14 +906,14 @@ var require_util = __commonJS({ throw new InvalidArgumentError("invalid onComplete method"); } } - function isDisturbed(body) { - return !!(body && (stream.isDisturbed(body) || body[kBodyUsed])); + function isDisturbed(body2) { + return !!(body2 && (stream3.isDisturbed(body2) || body2[kBodyUsed])); } - function isErrored(body) { - return !!(body && stream.isErrored(body)); + function isErrored(body2) { + return !!(body2 && stream3.isErrored(body2)); } - function isReadable(body) { - return !!(body && stream.isReadable(body)); + function isReadable(body2) { + return !!(body2 && stream3.isReadable(body2)); } function getSocketInfo(socket) { return { @@ -1002,9 +1002,9 @@ var require_util = __commonJS({ function isValidHeaderValue(characters) { return !headerCharRegex.test(characters); } - function parseRangeHeader(range) { - if (range == null || range === "") return { start: 0, end: null, size: null }; - let m = range ? range.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null; + function parseRangeHeader(range2) { + if (range2 == null || range2 === "") return { start: 0, end: null, size: null }; + let m = range2 ? range2.match(/^bytes (\d+)-(\d+)\/(\d+)?$/) : null; return m ? { start: parseInt(m[1]), end: m[2] ? parseInt(m[2]) : null, @@ -1021,7 +1021,7 @@ var require_util = __commonJS({ } function errorRequest(client, request, err) { try { - request.onError(err), assert(request.aborted); + request.onError(err), assert4(request.aborted); } catch (err2) { client.emit("error", err2); } @@ -1072,7 +1072,7 @@ var require_util = __commonJS({ parseRawHeaders, parseHeaders, parseKeepAliveTimeout, - destroy, + destroy: destroy2, bodyLength, deepClone, ReadableStreamFrom, @@ -1100,9 +1100,9 @@ var require_util = __commonJS({ // node_modules/undici/lib/core/diagnostics.js var require_diagnostics = __commonJS({ - "node_modules/undici/lib/core/diagnostics.js"(exports, module) { + "node_modules/undici/lib/core/diagnostics.js"(exports2, module) { "use strict"; - var diagnosticsChannel = __require("node:diagnostics_channel"), util = __require("node:util"), undiciDebugLog = util.debuglog("undici"), fetchDebuglog = util.debuglog("fetch"), websocketDebuglog = util.debuglog("websocket"), isClientSet = !1, channels = { + var diagnosticsChannel = __require("node:diagnostics_channel"), util6 = __require("node:util"), undiciDebugLog = util6.debuglog("undici"), fetchDebuglog = util6.debuglog("fetch"), websocketDebuglog = util6.debuglog("websocket"), isClientSet = !1, channels = { // Client beforeConnect: diagnosticsChannel.channel("undici:client:beforeConnect"), connected: diagnosticsChannel.channel("undici:client:connected"), @@ -1125,69 +1125,69 @@ var require_diagnostics = __commonJS({ let debuglog = fetchDebuglog.enabled ? fetchDebuglog : undiciDebugLog; diagnosticsChannel.channel("undici:client:beforeConnect").subscribe((evt) => { let { - connectParams: { version, protocol, port, host } + connectParams: { version: version3, protocol, port, host } } = evt; debuglog( "connecting to %s using %s%s", `${host}${port ? `:${port}` : ""}`, protocol, - version + version3 ); }), diagnosticsChannel.channel("undici:client:connected").subscribe((evt) => { let { - connectParams: { version, protocol, port, host } + connectParams: { version: version3, protocol, port, host } } = evt; debuglog( "connected to %s using %s%s", `${host}${port ? `:${port}` : ""}`, protocol, - version + version3 ); }), diagnosticsChannel.channel("undici:client:connectError").subscribe((evt) => { let { - connectParams: { version, protocol, port, host }, - error: error2 + connectParams: { version: version3, protocol, port, host }, + error: error3 } = evt; debuglog( "connection to %s using %s%s errored - %s", `${host}${port ? `:${port}` : ""}`, protocol, - version, - error2.message + version3, + error3.message ); }), diagnosticsChannel.channel("undici:client:sendHeaders").subscribe((evt) => { let { - request: { method, path: path4, origin } + request: { method, path: path12, origin } } = evt; - debuglog("sending request to %s %s/%s", method, origin, path4); + debuglog("sending request to %s %s/%s", method, origin, path12); }), diagnosticsChannel.channel("undici:request:headers").subscribe((evt) => { let { - request: { method, path: path4, origin }, + request: { method, path: path12, origin }, response: { statusCode } } = evt; debuglog( "received response to %s %s/%s - HTTP %d", method, origin, - path4, + path12, statusCode ); }), diagnosticsChannel.channel("undici:request:trailers").subscribe((evt) => { let { - request: { method, path: path4, origin } + request: { method, path: path12, origin } } = evt; - debuglog("trailers received from %s %s/%s", method, origin, path4); + debuglog("trailers received from %s %s/%s", method, origin, path12); }), diagnosticsChannel.channel("undici:request:error").subscribe((evt) => { let { - request: { method, path: path4, origin }, - error: error2 + request: { method, path: path12, origin }, + error: error3 } = evt; debuglog( "request to %s %s/%s errored - %s", method, origin, - path4, - error2.message + path12, + error3.message ); }), isClientSet = !0; } @@ -1196,44 +1196,44 @@ var require_diagnostics = __commonJS({ let debuglog = undiciDebugLog.enabled ? undiciDebugLog : websocketDebuglog; diagnosticsChannel.channel("undici:client:beforeConnect").subscribe((evt) => { let { - connectParams: { version, protocol, port, host } + connectParams: { version: version3, protocol, port, host } } = evt; debuglog( "connecting to %s%s using %s%s", host, port ? `:${port}` : "", protocol, - version + version3 ); }), diagnosticsChannel.channel("undici:client:connected").subscribe((evt) => { let { - connectParams: { version, protocol, port, host } + connectParams: { version: version3, protocol, port, host } } = evt; debuglog( "connected to %s%s using %s%s", host, port ? `:${port}` : "", protocol, - version + version3 ); }), diagnosticsChannel.channel("undici:client:connectError").subscribe((evt) => { let { - connectParams: { version, protocol, port, host }, - error: error2 + connectParams: { version: version3, protocol, port, host }, + error: error3 } = evt; debuglog( "connection to %s%s using %s%s errored - %s", host, port ? `:${port}` : "", protocol, - version, - error2.message + version3, + error3.message ); }), diagnosticsChannel.channel("undici:client:sendHeaders").subscribe((evt) => { let { - request: { method, path: path4, origin } + request: { method, path: path12, origin } } = evt; - debuglog("sending request to %s %s/%s", method, origin, path4); + debuglog("sending request to %s %s/%s", method, origin, path12); }); } diagnosticsChannel.channel("undici:websocket:open").subscribe((evt) => { @@ -1265,16 +1265,16 @@ var require_diagnostics = __commonJS({ // node_modules/undici/lib/core/request.js var require_request = __commonJS({ - "node_modules/undici/lib/core/request.js"(exports, module) { + "node_modules/undici/lib/core/request.js"(exports2, module) { "use strict"; var { InvalidArgumentError, NotSupportedError - } = require_errors(), assert = __require("node:assert"), { + } = require_errors(), assert4 = __require("node:assert"), { isValidHTTPToken, isValidHeaderValue, isStream, - destroy, + destroy: destroy2, isBuffer, isFormDataLike, isIterable, @@ -1285,9 +1285,9 @@ var require_request = __commonJS({ normalizedMethodRecords } = require_util(), { channels } = require_diagnostics(), { headerNameLowerCasedRecord } = require_constants(), invalidPathRegex = /[^\u0021-\u00ff]/, kHandler = /* @__PURE__ */ Symbol("handler"), Request = class { constructor(origin, { - path: path4, + path: path12, method, - body, + body: body2, headers, query, idempotent, @@ -1300,11 +1300,11 @@ var require_request = __commonJS({ expectContinue, servername }, handler) { - if (typeof path4 != "string") + if (typeof path12 != "string") throw new InvalidArgumentError("path must be a string"); - if (path4[0] !== "/" && !(path4.startsWith("http://") || path4.startsWith("https://")) && method !== "CONNECT") + if (path12[0] !== "/" && !(path12.startsWith("http://") || path12.startsWith("https://")) && method !== "CONNECT") throw new InvalidArgumentError("path must be an absolute URL or start with a slash"); - if (invalidPathRegex.test(path4)) + if (invalidPathRegex.test(path12)) throw new InvalidArgumentError("invalid request path"); if (typeof method != "string") throw new InvalidArgumentError("method must be a string"); @@ -1322,29 +1322,29 @@ var require_request = __commonJS({ throw new InvalidArgumentError("invalid reset"); if (expectContinue != null && typeof expectContinue != "boolean") throw new InvalidArgumentError("invalid expectContinue"); - if (this.headersTimeout = headersTimeout, this.bodyTimeout = bodyTimeout, this.throwOnError = throwOnError === !0, this.method = method, this.abort = null, body == null) + if (this.headersTimeout = headersTimeout, this.bodyTimeout = bodyTimeout, this.throwOnError = throwOnError === !0, this.method = method, this.abort = null, body2 == null) this.body = null; - else if (isStream(body)) { - this.body = body; + else if (isStream(body2)) { + this.body = body2; let rState = this.body._readableState; (!rState || !rState.autoDestroy) && (this.endHandler = function() { - destroy(this); + destroy2(this); }, this.body.on("end", this.endHandler)), this.errorHandler = (err) => { this.abort ? this.abort(err) : this.error = err; }, this.body.on("error", this.errorHandler); - } else if (isBuffer(body)) - this.body = body.byteLength ? body : null; - else if (ArrayBuffer.isView(body)) - this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null; - else if (body instanceof ArrayBuffer) - this.body = body.byteLength ? Buffer.from(body) : null; - else if (typeof body == "string") - this.body = body.length ? Buffer.from(body) : null; - else if (isFormDataLike(body) || isIterable(body) || isBlobLike(body)) - this.body = body; + } else if (isBuffer(body2)) + this.body = body2.byteLength ? body2 : null; + else if (ArrayBuffer.isView(body2)) + this.body = body2.buffer.byteLength ? Buffer.from(body2.buffer, body2.byteOffset, body2.byteLength) : null; + else if (body2 instanceof ArrayBuffer) + this.body = body2.byteLength ? Buffer.from(body2) : null; + else if (typeof body2 == "string") + this.body = body2.length ? Buffer.from(body2) : null; + else if (isFormDataLike(body2) || isIterable(body2) || isBlobLike(body2)) + this.body = body2; else throw new InvalidArgumentError("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 = upgrade || null, this.path = query ? buildURL(path4, query) : path4, this.origin = origin, this.idempotent = idempotent ?? (method === "HEAD" || method === "GET"), this.blocking = blocking ?? !1, this.reset = reset ?? null, this.host = null, this.contentLength = null, this.contentType = null, this.headers = [], this.expectContinue = expectContinue ?? !1, Array.isArray(headers)) { + if (this.completed = !1, this.aborted = !1, this.upgrade = upgrade || null, this.path = query ? buildURL(path12, query) : path12, this.origin = origin, this.idempotent = idempotent ?? (method === "HEAD" || method === "GET"), this.blocking = blocking ?? !1, this.reset = reset ?? null, this.host = null, this.contentLength = null, this.contentType = null, this.headers = [], this.expectContinue = expectContinue ?? !1, Array.isArray(headers)) { if (headers.length % 2 !== 0) throw new InvalidArgumentError("headers array must be even"); for (let i = 0; i < headers.length; i += 2) @@ -1382,7 +1382,7 @@ var require_request = __commonJS({ } } onConnect(abort) { - if (assert(!this.aborted), assert(!this.completed), this.error) + if (assert4(!this.aborted), assert4(!this.completed), this.error) abort(this.error); else return this.abort = abort, this[kHandler].onConnect(abort); @@ -1391,7 +1391,7 @@ var require_request = __commonJS({ return this[kHandler].onResponseStarted?.(); } onHeaders(statusCode, headers, resume, statusText) { - assert(!this.aborted), assert(!this.completed), channels.headers.hasSubscribers && channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }); + assert4(!this.aborted), assert4(!this.completed), channels.headers.hasSubscribers && channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }); try { return this[kHandler].onHeaders(statusCode, headers, resume, statusText); } catch (err) { @@ -1399,7 +1399,7 @@ var require_request = __commonJS({ } } onData(chunk) { - assert(!this.aborted), assert(!this.completed); + assert4(!this.aborted), assert4(!this.completed); try { return this[kHandler].onData(chunk); } catch (err) { @@ -1407,19 +1407,19 @@ var require_request = __commonJS({ } } onUpgrade(statusCode, headers, socket) { - return assert(!this.aborted), assert(!this.completed), this[kHandler].onUpgrade(statusCode, headers, socket); + return assert4(!this.aborted), assert4(!this.completed), this[kHandler].onUpgrade(statusCode, headers, socket); } onComplete(trailers) { - this.onFinally(), assert(!this.aborted), this.completed = !0, channels.trailers.hasSubscribers && channels.trailers.publish({ request: this, trailers }); + this.onFinally(), assert4(!this.aborted), this.completed = !0, channels.trailers.hasSubscribers && channels.trailers.publish({ request: this, trailers }); try { return this[kHandler].onComplete(trailers); } catch (err) { this.onError(err); } } - onError(error2) { - if (this.onFinally(), channels.error.hasSubscribers && channels.error.publish({ request: this, error: error2 }), !this.aborted) - return this.aborted = !0, this[kHandler].onError(error2); + onError(error3) { + if (this.onFinally(), channels.error.hasSubscribers && channels.error.publish({ request: this, error: error3 }), !this.aborted) + return this.aborted = !0, this[kHandler].onError(error3); } onFinally() { this.errorHandler && (this.body.off("error", this.errorHandler), this.errorHandler = null), this.endHandler && (this.body.off("end", this.endHandler), this.endHandler = null); @@ -1489,9 +1489,9 @@ var require_request = __commonJS({ // node_modules/undici/lib/dispatcher/dispatcher.js var require_dispatcher = __commonJS({ - "node_modules/undici/lib/dispatcher/dispatcher.js"(exports, module) { + "node_modules/undici/lib/dispatcher/dispatcher.js"(exports2, module) { "use strict"; - var EventEmitter2 = __require("node:events"), Dispatcher = class extends EventEmitter2 { + var EventEmitter4 = __require("node:events"), Dispatcher = class extends EventEmitter4 { dispatch() { throw new Error("not implemented"); } @@ -1534,7 +1534,7 @@ var require_dispatcher = __commonJS({ // node_modules/undici/lib/dispatcher/dispatcher-base.js var require_dispatcher_base = __commonJS({ - "node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports, module) { + "node_modules/undici/lib/dispatcher/dispatcher-base.js"(exports2, module) { "use strict"; var Dispatcher = require_dispatcher(), { ClientDestroyedError, @@ -1649,7 +1649,7 @@ var require_dispatcher_base = __commonJS({ // node_modules/undici/lib/util/timers.js var require_timers = __commonJS({ - "node_modules/undici/lib/util/timers.js"(exports, module) { + "node_modules/undici/lib/util/timers.js"(exports2, module) { "use strict"; var fastNow = 0, RESOLUTION_MS = 1e3, TICK_MS = (RESOLUTION_MS >> 1) - 1, fastNowTimeout, kFastTimer = /* @__PURE__ */ Symbol("kFastTimer"), fastTimers = [], NOT_IN_LIST = -2, TO_BE_CLEARED = -1, PENDING = 0, ACTIVE = 1; function onTick() { @@ -1714,8 +1714,8 @@ var require_timers = __commonJS({ * before the specified function or code is executed. * @param {*} arg */ - constructor(callback, delay, arg) { - this._onTimeout = callback, this._idleTimeout = delay, this._timerArg = arg, this.refresh(); + constructor(callback, delay4, arg) { + this._onTimeout = callback, this._idleTimeout = delay4, this._timerArg = arg, this.refresh(); } /** * Sets the timer's start time to the current time, and reschedules the timer @@ -1751,8 +1751,8 @@ var require_timers = __commonJS({ * when the timer expires. * @returns {NodeJS.Timeout|FastTimer} */ - setTimeout(callback, delay, arg) { - return delay <= RESOLUTION_MS ? setTimeout(callback, delay, arg) : new FastTimer(callback, delay, arg); + setTimeout(callback, delay4, arg) { + return delay4 <= RESOLUTION_MS ? setTimeout(callback, delay4, arg) : new FastTimer(callback, delay4, arg); }, /** * The clearTimeout method cancels an instantiated Timer previously created @@ -1774,8 +1774,8 @@ var require_timers = __commonJS({ * when the timer expires. * @returns {FastTimer} */ - setFastTimeout(callback, delay, arg) { - return new FastTimer(callback, delay, arg); + setFastTimeout(callback, delay4, arg) { + return new FastTimer(callback, delay4, arg); }, /** * The clearTimeout method cancels an instantiated FastTimer previously @@ -1801,8 +1801,8 @@ var require_timers = __commonJS({ * @deprecated * @param {number} [delay=0] The delay in milliseconds to add to the now value. */ - tick(delay = 0) { - fastNow += delay - RESOLUTION_MS + 1, onTick(), onTick(); + tick(delay4 = 0) { + fastNow += delay4 - RESOLUTION_MS + 1, onTick(), onTick(); }, /** * Reset FastTimers. @@ -1825,9 +1825,9 @@ var require_timers = __commonJS({ // node_modules/undici/lib/core/connect.js var require_connect = __commonJS({ - "node_modules/undici/lib/core/connect.js"(exports, module) { + "node_modules/undici/lib/core/connect.js"(exports2, module) { "use strict"; - var net = __require("node:net"), assert = __require("node:assert"), util = require_util(), { InvalidArgumentError, ConnectTimeoutError } = require_errors(), timers = require_timers(); + var net = __require("node:net"), assert4 = __require("node:assert"), util6 = require_util(), { InvalidArgumentError, ConnectTimeoutError } = require_errors(), timers = require_timers(); function noop() { } var tls, SessionCache; @@ -1871,9 +1871,9 @@ var require_connect = __commonJS({ return timeout = timeout ?? 1e4, allowH2 = allowH2 ?? !1, function({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { let socket; if (protocol === "https:") { - tls || (tls = __require("node:tls")), servername = servername || options.servername || util.getServerName(host) || null; + tls || (tls = __require("node:tls")), servername = servername || options.servername || util6.getServerName(host) || null; let sessionKey = servername || hostname; - assert(sessionKey); + assert4(sessionKey); let session = customSession || sessionCache.get(sessionKey) || null; port = port || 443, socket = tls.connect({ highWaterMark: 16384, @@ -1892,7 +1892,7 @@ var require_connect = __commonJS({ sessionCache.set(sessionKey, session2); }); } else - assert(!httpSocket, "httpSocket can only be sent on TLS update"), port = port || 80, socket = net.connect({ + assert4(!httpSocket, "httpSocket can only be sent on TLS update"), port = port || 80, socket = net.connect({ highWaterMark: 64 * 1024, // Same as nodejs fs streams. ...options, @@ -1945,7 +1945,7 @@ var require_connect = __commonJS({ if (socket == null) return; let message = "Connect Timeout Error"; - Array.isArray(socket.autoSelectFamilyAttemptedAddresses) ? message += ` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},` : message += ` (attempted address: ${opts.hostname}:${opts.port},`, message += ` timeout: ${opts.timeout}ms)`, util.destroy(socket, new ConnectTimeoutError(message)); + Array.isArray(socket.autoSelectFamilyAttemptedAddresses) ? message += ` (attempted addresses: ${socket.autoSelectFamilyAttemptedAddresses.join(", ")},` : message += ` (attempted address: ${opts.hostname}:${opts.port},`, message += ` timeout: ${opts.timeout}ms)`, util6.destroy(socket, new ConnectTimeoutError(message)); } module.exports = buildConnector; } @@ -1953,10 +1953,10 @@ var require_connect = __commonJS({ // node_modules/undici/lib/llhttp/utils.js var require_utils = __commonJS({ - "node_modules/undici/lib/llhttp/utils.js"(exports) { + "node_modules/undici/lib/llhttp/utils.js"(exports2) { "use strict"; - Object.defineProperty(exports, "__esModule", { value: !0 }); - exports.enumToMap = void 0; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.enumToMap = void 0; function enumToMap(obj) { let res = {}; return Object.keys(obj).forEach((key) => { @@ -1964,37 +1964,37 @@ var require_utils = __commonJS({ typeof value == "number" && (res[key] = value); }), res; } - exports.enumToMap = enumToMap; + exports2.enumToMap = enumToMap; } }); // node_modules/undici/lib/llhttp/constants.js var require_constants2 = __commonJS({ - "node_modules/undici/lib/llhttp/constants.js"(exports) { + "node_modules/undici/lib/llhttp/constants.js"(exports2) { "use strict"; - Object.defineProperty(exports, "__esModule", { value: !0 }); - exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.SPECIAL_HEADERS = exports2.HEADER_STATE = exports2.MINOR = exports2.MAJOR = exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS = exports2.TOKEN = exports2.STRICT_TOKEN = exports2.HEX = exports2.URL_CHAR = exports2.STRICT_URL_CHAR = exports2.USERINFO_CHARS = exports2.MARK = exports2.ALPHANUM = exports2.NUM = exports2.HEX_MAP = exports2.NUM_MAP = exports2.ALPHA = exports2.FINISH = exports2.H_METHOD_MAP = exports2.METHOD_MAP = exports2.METHODS_RTSP = exports2.METHODS_ICE = exports2.METHODS_HTTP = exports2.METHODS = exports2.LENIENT_FLAGS = exports2.FLAGS = exports2.TYPE = exports2.ERROR = void 0; var utils_1 = require_utils(), ERROR; (function(ERROR2) { ERROR2[ERROR2.OK = 0] = "OK", ERROR2[ERROR2.INTERNAL = 1] = "INTERNAL", ERROR2[ERROR2.STRICT = 2] = "STRICT", ERROR2[ERROR2.LF_EXPECTED = 3] = "LF_EXPECTED", ERROR2[ERROR2.UNEXPECTED_CONTENT_LENGTH = 4] = "UNEXPECTED_CONTENT_LENGTH", ERROR2[ERROR2.CLOSED_CONNECTION = 5] = "CLOSED_CONNECTION", ERROR2[ERROR2.INVALID_METHOD = 6] = "INVALID_METHOD", ERROR2[ERROR2.INVALID_URL = 7] = "INVALID_URL", ERROR2[ERROR2.INVALID_CONSTANT = 8] = "INVALID_CONSTANT", ERROR2[ERROR2.INVALID_VERSION = 9] = "INVALID_VERSION", ERROR2[ERROR2.INVALID_HEADER_TOKEN = 10] = "INVALID_HEADER_TOKEN", ERROR2[ERROR2.INVALID_CONTENT_LENGTH = 11] = "INVALID_CONTENT_LENGTH", ERROR2[ERROR2.INVALID_CHUNK_SIZE = 12] = "INVALID_CHUNK_SIZE", ERROR2[ERROR2.INVALID_STATUS = 13] = "INVALID_STATUS", ERROR2[ERROR2.INVALID_EOF_STATE = 14] = "INVALID_EOF_STATE", ERROR2[ERROR2.INVALID_TRANSFER_ENCODING = 15] = "INVALID_TRANSFER_ENCODING", ERROR2[ERROR2.CB_MESSAGE_BEGIN = 16] = "CB_MESSAGE_BEGIN", ERROR2[ERROR2.CB_HEADERS_COMPLETE = 17] = "CB_HEADERS_COMPLETE", ERROR2[ERROR2.CB_MESSAGE_COMPLETE = 18] = "CB_MESSAGE_COMPLETE", ERROR2[ERROR2.CB_CHUNK_HEADER = 19] = "CB_CHUNK_HEADER", ERROR2[ERROR2.CB_CHUNK_COMPLETE = 20] = "CB_CHUNK_COMPLETE", ERROR2[ERROR2.PAUSED = 21] = "PAUSED", ERROR2[ERROR2.PAUSED_UPGRADE = 22] = "PAUSED_UPGRADE", ERROR2[ERROR2.PAUSED_H2_UPGRADE = 23] = "PAUSED_H2_UPGRADE", ERROR2[ERROR2.USER = 24] = "USER"; - })(ERROR = exports.ERROR || (exports.ERROR = {})); + })(ERROR = exports2.ERROR || (exports2.ERROR = {})); var TYPE; (function(TYPE2) { TYPE2[TYPE2.BOTH = 0] = "BOTH", TYPE2[TYPE2.REQUEST = 1] = "REQUEST", TYPE2[TYPE2.RESPONSE = 2] = "RESPONSE"; - })(TYPE = exports.TYPE || (exports.TYPE = {})); + })(TYPE = exports2.TYPE || (exports2.TYPE = {})); var FLAGS; (function(FLAGS2) { FLAGS2[FLAGS2.CONNECTION_KEEP_ALIVE = 1] = "CONNECTION_KEEP_ALIVE", FLAGS2[FLAGS2.CONNECTION_CLOSE = 2] = "CONNECTION_CLOSE", FLAGS2[FLAGS2.CONNECTION_UPGRADE = 4] = "CONNECTION_UPGRADE", FLAGS2[FLAGS2.CHUNKED = 8] = "CHUNKED", FLAGS2[FLAGS2.UPGRADE = 16] = "UPGRADE", FLAGS2[FLAGS2.CONTENT_LENGTH = 32] = "CONTENT_LENGTH", FLAGS2[FLAGS2.SKIPBODY = 64] = "SKIPBODY", FLAGS2[FLAGS2.TRAILING = 128] = "TRAILING", FLAGS2[FLAGS2.TRANSFER_ENCODING = 512] = "TRANSFER_ENCODING"; - })(FLAGS = exports.FLAGS || (exports.FLAGS = {})); + })(FLAGS = exports2.FLAGS || (exports2.FLAGS = {})); var LENIENT_FLAGS; (function(LENIENT_FLAGS2) { LENIENT_FLAGS2[LENIENT_FLAGS2.HEADERS = 1] = "HEADERS", LENIENT_FLAGS2[LENIENT_FLAGS2.CHUNKED_LENGTH = 2] = "CHUNKED_LENGTH", LENIENT_FLAGS2[LENIENT_FLAGS2.KEEP_ALIVE = 4] = "KEEP_ALIVE"; - })(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {})); + })(LENIENT_FLAGS = exports2.LENIENT_FLAGS || (exports2.LENIENT_FLAGS = {})); var METHODS; (function(METHODS2) { METHODS2[METHODS2.DELETE = 0] = "DELETE", METHODS2[METHODS2.GET = 1] = "GET", METHODS2[METHODS2.HEAD = 2] = "HEAD", METHODS2[METHODS2.POST = 3] = "POST", METHODS2[METHODS2.PUT = 4] = "PUT", METHODS2[METHODS2.CONNECT = 5] = "CONNECT", METHODS2[METHODS2.OPTIONS = 6] = "OPTIONS", METHODS2[METHODS2.TRACE = 7] = "TRACE", METHODS2[METHODS2.COPY = 8] = "COPY", METHODS2[METHODS2.LOCK = 9] = "LOCK", METHODS2[METHODS2.MKCOL = 10] = "MKCOL", METHODS2[METHODS2.MOVE = 11] = "MOVE", METHODS2[METHODS2.PROPFIND = 12] = "PROPFIND", METHODS2[METHODS2.PROPPATCH = 13] = "PROPPATCH", METHODS2[METHODS2.SEARCH = 14] = "SEARCH", METHODS2[METHODS2.UNLOCK = 15] = "UNLOCK", METHODS2[METHODS2.BIND = 16] = "BIND", METHODS2[METHODS2.REBIND = 17] = "REBIND", METHODS2[METHODS2.UNBIND = 18] = "UNBIND", METHODS2[METHODS2.ACL = 19] = "ACL", METHODS2[METHODS2.REPORT = 20] = "REPORT", METHODS2[METHODS2.MKACTIVITY = 21] = "MKACTIVITY", METHODS2[METHODS2.CHECKOUT = 22] = "CHECKOUT", METHODS2[METHODS2.MERGE = 23] = "MERGE", METHODS2[METHODS2["M-SEARCH"] = 24] = "M-SEARCH", METHODS2[METHODS2.NOTIFY = 25] = "NOTIFY", METHODS2[METHODS2.SUBSCRIBE = 26] = "SUBSCRIBE", METHODS2[METHODS2.UNSUBSCRIBE = 27] = "UNSUBSCRIBE", METHODS2[METHODS2.PATCH = 28] = "PATCH", METHODS2[METHODS2.PURGE = 29] = "PURGE", METHODS2[METHODS2.MKCALENDAR = 30] = "MKCALENDAR", METHODS2[METHODS2.LINK = 31] = "LINK", METHODS2[METHODS2.UNLINK = 32] = "UNLINK", METHODS2[METHODS2.SOURCE = 33] = "SOURCE", METHODS2[METHODS2.PRI = 34] = "PRI", METHODS2[METHODS2.DESCRIBE = 35] = "DESCRIBE", METHODS2[METHODS2.ANNOUNCE = 36] = "ANNOUNCE", METHODS2[METHODS2.SETUP = 37] = "SETUP", METHODS2[METHODS2.PLAY = 38] = "PLAY", METHODS2[METHODS2.PAUSE = 39] = "PAUSE", METHODS2[METHODS2.TEARDOWN = 40] = "TEARDOWN", METHODS2[METHODS2.GET_PARAMETER = 41] = "GET_PARAMETER", METHODS2[METHODS2.SET_PARAMETER = 42] = "SET_PARAMETER", METHODS2[METHODS2.REDIRECT = 43] = "REDIRECT", METHODS2[METHODS2.RECORD = 44] = "RECORD", METHODS2[METHODS2.FLUSH = 45] = "FLUSH"; - })(METHODS = exports.METHODS || (exports.METHODS = {})); - exports.METHODS_HTTP = [ + })(METHODS = exports2.METHODS || (exports2.METHODS = {})); + exports2.METHODS_HTTP = [ METHODS.DELETE, METHODS.GET, METHODS.HEAD, @@ -2032,10 +2032,10 @@ var require_constants2 = __commonJS({ // TODO(indutny): should we allow it with HTTP? METHODS.SOURCE ]; - exports.METHODS_ICE = [ + exports2.METHODS_ICE = [ METHODS.SOURCE ]; - exports.METHODS_RTSP = [ + exports2.METHODS_RTSP = [ METHODS.OPTIONS, METHODS.DESCRIBE, METHODS.ANNOUNCE, @@ -2052,19 +2052,19 @@ var require_constants2 = __commonJS({ METHODS.GET, METHODS.POST ]; - exports.METHOD_MAP = utils_1.enumToMap(METHODS); - exports.H_METHOD_MAP = {}; - Object.keys(exports.METHOD_MAP).forEach((key) => { - /^H/.test(key) && (exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key]); + exports2.METHOD_MAP = utils_1.enumToMap(METHODS); + exports2.H_METHOD_MAP = {}; + Object.keys(exports2.METHOD_MAP).forEach((key) => { + /^H/.test(key) && (exports2.H_METHOD_MAP[key] = exports2.METHOD_MAP[key]); }); var FINISH; (function(FINISH2) { FINISH2[FINISH2.SAFE = 0] = "SAFE", FINISH2[FINISH2.SAFE_WITH_CB = 1] = "SAFE_WITH_CB", FINISH2[FINISH2.UNSAFE = 2] = "UNSAFE"; - })(FINISH = exports.FINISH || (exports.FINISH = {})); - exports.ALPHA = []; + })(FINISH = exports2.FINISH || (exports2.FINISH = {})); + exports2.ALPHA = []; for (let i = 65; i <= 90; i++) - exports.ALPHA.push(String.fromCharCode(i)), exports.ALPHA.push(String.fromCharCode(i + 32)); - exports.NUM_MAP = { + exports2.ALPHA.push(String.fromCharCode(i)), exports2.ALPHA.push(String.fromCharCode(i + 32)); + exports2.NUM_MAP = { 0: 0, 1: 1, 2: 2, @@ -2076,7 +2076,7 @@ var require_constants2 = __commonJS({ 8: 8, 9: 9 }; - exports.HEX_MAP = { + exports2.HEX_MAP = { 0: 0, 1: 1, 2: 2, @@ -2100,7 +2100,7 @@ var require_constants2 = __commonJS({ e: 14, f: 15 }; - exports.NUM = [ + exports2.NUM = [ "0", "1", "2", @@ -2112,10 +2112,10 @@ var require_constants2 = __commonJS({ "8", "9" ]; - exports.ALPHANUM = exports.ALPHA.concat(exports.NUM); - exports.MARK = ["-", "_", ".", "!", "~", "*", "'", "(", ")"]; - exports.USERINFO_CHARS = exports.ALPHANUM.concat(exports.MARK).concat(["%", ";", ":", "&", "=", "+", "$", ","]); - exports.STRICT_URL_CHAR = [ + exports2.ALPHANUM = exports2.ALPHA.concat(exports2.NUM); + exports2.MARK = ["-", "_", ".", "!", "~", "*", "'", "(", ")"]; + exports2.USERINFO_CHARS = exports2.ALPHANUM.concat(exports2.MARK).concat(["%", ";", ":", "&", "=", "+", "$", ","]); + exports2.STRICT_URL_CHAR = [ "!", '"', "$", @@ -2146,12 +2146,12 @@ var require_constants2 = __commonJS({ "|", "}", "~" - ].concat(exports.ALPHANUM); - exports.URL_CHAR = exports.STRICT_URL_CHAR.concat([" ", "\f"]); + ].concat(exports2.ALPHANUM); + exports2.URL_CHAR = exports2.STRICT_URL_CHAR.concat([" ", "\f"]); for (let i = 128; i <= 255; i++) - exports.URL_CHAR.push(i); - exports.HEX = exports.NUM.concat(["a", "b", "c", "d", "e", "f", "A", "B", "C", "D", "E", "F"]); - exports.STRICT_TOKEN = [ + exports2.URL_CHAR.push(i); + exports2.HEX = exports2.NUM.concat(["a", "b", "c", "d", "e", "f", "A", "B", "C", "D", "E", "F"]); + exports2.STRICT_TOKEN = [ "!", "#", "$", @@ -2167,19 +2167,19 @@ var require_constants2 = __commonJS({ "`", "|", "~" - ].concat(exports.ALPHANUM); - exports.TOKEN = exports.STRICT_TOKEN.concat([" "]); - exports.HEADER_CHARS = [" "]; + ].concat(exports2.ALPHANUM); + exports2.TOKEN = exports2.STRICT_TOKEN.concat([" "]); + exports2.HEADER_CHARS = [" "]; for (let i = 32; i <= 255; i++) - i !== 127 && exports.HEADER_CHARS.push(i); - exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44); - exports.MAJOR = exports.NUM_MAP; - exports.MINOR = exports.MAJOR; + i !== 127 && exports2.HEADER_CHARS.push(i); + exports2.CONNECTION_TOKEN_CHARS = exports2.HEADER_CHARS.filter((c) => c !== 44); + exports2.MAJOR = exports2.NUM_MAP; + exports2.MINOR = exports2.MAJOR; var HEADER_STATE; (function(HEADER_STATE2) { HEADER_STATE2[HEADER_STATE2.GENERAL = 0] = "GENERAL", HEADER_STATE2[HEADER_STATE2.CONNECTION = 1] = "CONNECTION", HEADER_STATE2[HEADER_STATE2.CONTENT_LENGTH = 2] = "CONTENT_LENGTH", HEADER_STATE2[HEADER_STATE2.TRANSFER_ENCODING = 3] = "TRANSFER_ENCODING", HEADER_STATE2[HEADER_STATE2.UPGRADE = 4] = "UPGRADE", HEADER_STATE2[HEADER_STATE2.CONNECTION_KEEP_ALIVE = 5] = "CONNECTION_KEEP_ALIVE", HEADER_STATE2[HEADER_STATE2.CONNECTION_CLOSE = 6] = "CONNECTION_CLOSE", HEADER_STATE2[HEADER_STATE2.CONNECTION_UPGRADE = 7] = "CONNECTION_UPGRADE", HEADER_STATE2[HEADER_STATE2.TRANSFER_ENCODING_CHUNKED = 8] = "TRANSFER_ENCODING_CHUNKED"; - })(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {})); - exports.SPECIAL_HEADERS = { + })(HEADER_STATE = exports2.HEADER_STATE || (exports2.HEADER_STATE = {})); + exports2.SPECIAL_HEADERS = { connection: HEADER_STATE.CONNECTION, "content-length": HEADER_STATE.CONTENT_LENGTH, "proxy-connection": HEADER_STATE.CONNECTION, @@ -2191,25 +2191,25 @@ var require_constants2 = __commonJS({ // node_modules/undici/lib/llhttp/llhttp-wasm.js var require_llhttp_wasm = __commonJS({ - "node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports, module) { + "node_modules/undici/lib/llhttp/llhttp-wasm.js"(exports2, module) { "use strict"; - var { Buffer: Buffer2 } = __require("node:buffer"); - module.exports = Buffer2.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"); + var { Buffer: Buffer3 } = __require("node:buffer"); + module.exports = Buffer3.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"); } }); // node_modules/undici/lib/llhttp/llhttp_simd-wasm.js var require_llhttp_simd_wasm = __commonJS({ - "node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports, module) { + "node_modules/undici/lib/llhttp/llhttp_simd-wasm.js"(exports2, module) { "use strict"; - var { Buffer: Buffer2 } = __require("node:buffer"); - module.exports = Buffer2.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEVDF8LQZIBIQMgASAERg2aAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGhzwBqLQAARw1dIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAybAgsgAkEANgIAIAZBAWohAUEeDF4LIAEgBEYEQEGTASEDDJoCCyABLQAAQcwARw1bIAFBAWohAUEKDF0LIAEgBEYEQEGUASEDDJkCCwJAAkAgAS0AAEHBAGsODwBcXFxcXFxcXFxcXFxcAVwLIAFBAWohAUH+ACEDDIACCyABQQFqIQFB/wAhAwz/AQsgASAERgRAQZUBIQMMmAILAkACQCABLQAAQcEAaw4DAFsBWwsgAUEBaiEBQf0AIQMM/wELIAFBAWohAUGAASEDDP4BC0GWASEDIAEgBEYNlgIgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBp88Aai0AAEcNWSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMlwILIAJBADYCACAGQQFqIQFBCwxaCyABIARGBEBBlwEhAwyWAgsCQAJAAkACQCABLQAAQS1rDiMAW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1sBW1tbW1sCW1tbA1sLIAFBAWohAUH7ACEDDP8BCyABQQFqIQFB/AAhAwz+AQsgAUEBaiEBQYEBIQMM/QELIAFBAWohAUGCASEDDPwBC0GYASEDIAEgBEYNlAIgAigCACIAIAQgAWtqIQUgASAAa0EEaiEGAkADQCABLQAAIABBqc8Aai0AAEcNVyAAQQRGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMlQILIAJBADYCACAGQQFqIQFBGQxYC0GZASEDIAEgBEYNkwIgAigCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBrs8Aai0AAEcNViAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMlAILIAJBADYCACAGQQFqIQFBBgxXC0GaASEDIAEgBEYNkgIgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBtM8Aai0AAEcNVSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMkwILIAJBADYCACAGQQFqIQFBHAxWC0GbASEDIAEgBEYNkQIgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBts8Aai0AAEcNVCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMkgILIAJBADYCACAGQQFqIQFBJwxVCyABIARGBEBBnAEhAwyRAgsCQAJAIAEtAABB1ABrDgIAAVQLIAFBAWohAUGGASEDDPgBCyABQQFqIQFBhwEhAwz3AQtBnQEhAyABIARGDY8CIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjPAGotAABHDVIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADJACCyACQQA2AgAgBkEBaiEBQSYMUwtBngEhAyABIARGDY4CIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbrPAGotAABHDVEgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADI8CCyACQQA2AgAgBkEBaiEBQQMMUgtBnwEhAyABIARGDY0CIAIoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQe3PAGotAABHDVAgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADI4CCyACQQA2AgAgBkEBaiEBQQwMUQtBoAEhAyABIARGDYwCIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQbzPAGotAABHDU8gAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADI0CCyACQQA2AgAgBkEBaiEBQQ0MUAsgASAERgRAQaEBIQMMjAILAkACQCABLQAAQcYAaw4LAE9PT09PT09PTwFPCyABQQFqIQFBiwEhAwzzAQsgAUEBaiEBQYwBIQMM8gELIAEgBEYEQEGiASEDDIsCCyABLQAAQdAARw1MIAFBAWohAQxGCyABIARGBEBBowEhAwyKAgsCQAJAIAEtAABByQBrDgcBTU1NTU0ATQsgAUEBaiEBQY4BIQMM8QELIAFBAWohAUEiDE0LQaQBIQMgASAERg2IAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHAzwBqLQAARw1LIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyJAgsgAkEANgIAIAZBAWohAUEdDEwLIAEgBEYEQEGlASEDDIgCCwJAAkAgAS0AAEHSAGsOAwBLAUsLIAFBAWohAUGQASEDDO8BCyABQQFqIQFBBAxLCyABIARGBEBBpgEhAwyHAgsCQAJAAkACQAJAIAEtAABBwQBrDhUATU1NTU1NTU1NTQFNTQJNTQNNTQRNCyABQQFqIQFBiAEhAwzxAQsgAUEBaiEBQYkBIQMM8AELIAFBAWohAUGKASEDDO8BCyABQQFqIQFBjwEhAwzuAQsgAUEBaiEBQZEBIQMM7QELQacBIQMgASAERg2FAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHtzwBqLQAARw1IIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyGAgsgAkEANgIAIAZBAWohAUERDEkLQagBIQMgASAERg2EAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHCzwBqLQAARw1HIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyFAgsgAkEANgIAIAZBAWohAUEsDEgLQakBIQMgASAERg2DAiACKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHFzwBqLQAARw1GIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyEAgsgAkEANgIAIAZBAWohAUErDEcLQaoBIQMgASAERg2CAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHKzwBqLQAARw1FIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyDAgsgAkEANgIAIAZBAWohAUEUDEYLIAEgBEYEQEGrASEDDIICCwJAAkACQAJAIAEtAABBwgBrDg8AAQJHR0dHR0dHR0dHRwNHCyABQQFqIQFBkwEhAwzrAQsgAUEBaiEBQZQBIQMM6gELIAFBAWohAUGVASEDDOkBCyABQQFqIQFBlgEhAwzoAQsgASAERgRAQawBIQMMgQILIAEtAABBxQBHDUIgAUEBaiEBDD0LQa0BIQMgASAERg3/ASACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHNzwBqLQAARw1CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyAAgsgAkEANgIAIAZBAWohAUEODEMLIAEgBEYEQEGuASEDDP8BCyABLQAAQdAARw1AIAFBAWohAUElDEILQa8BIQMgASAERg39ASACKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEHQzwBqLQAARw1AIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAz+AQsgAkEANgIAIAZBAWohAUEqDEELIAEgBEYEQEGwASEDDP0BCwJAAkAgAS0AAEHVAGsOCwBAQEBAQEBAQEABQAsgAUEBaiEBQZoBIQMM5AELIAFBAWohAUGbASEDDOMBCyABIARGBEBBsQEhAwz8AQsCQAJAIAEtAABBwQBrDhQAPz8/Pz8/Pz8/Pz8/Pz8/Pz8/AT8LIAFBAWohAUGZASEDDOMBCyABQQFqIQFBnAEhAwziAQtBsgEhAyABIARGDfoBIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQdnPAGotAABHDT0gAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADPsBCyACQQA2AgAgBkEBaiEBQSEMPgtBswEhAyABIARGDfkBIAIoAgAiACAEIAFraiEFIAEgAGtBBmohBgJAA0AgAS0AACAAQd3PAGotAABHDTwgAEEGRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADPoBCyACQQA2AgAgBkEBaiEBQRoMPQsgASAERgRAQbQBIQMM+QELAkACQAJAIAEtAABBxQBrDhEAPT09PT09PT09AT09PT09Aj0LIAFBAWohAUGdASEDDOEBCyABQQFqIQFBngEhAwzgAQsgAUEBaiEBQZ8BIQMM3wELQbUBIQMgASAERg33ASACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHkzwBqLQAARw06IABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAz4AQsgAkEANgIAIAZBAWohAUEoDDsLQbYBIQMgASAERg32ASACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEHqzwBqLQAARw05IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAz3AQsgAkEANgIAIAZBAWohAUEHDDoLIAEgBEYEQEG3ASEDDPYBCwJAAkAgAS0AAEHFAGsODgA5OTk5OTk5OTk5OTkBOQsgAUEBaiEBQaEBIQMM3QELIAFBAWohAUGiASEDDNwBC0G4ASEDIAEgBEYN9AEgAigCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABB7c8Aai0AAEcNNyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM9QELIAJBADYCACAGQQFqIQFBEgw4C0G5ASEDIAEgBEYN8wEgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB8M8Aai0AAEcNNiAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM9AELIAJBADYCACAGQQFqIQFBIAw3C0G6ASEDIAEgBEYN8gEgAigCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABB8s8Aai0AAEcNNSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM8wELIAJBADYCACAGQQFqIQFBDww2CyABIARGBEBBuwEhAwzyAQsCQAJAIAEtAABByQBrDgcANTU1NTUBNQsgAUEBaiEBQaUBIQMM2QELIAFBAWohAUGmASEDDNgBC0G8ASEDIAEgBEYN8AEgAigCACIAIAQgAWtqIQUgASAAa0EHaiEGAkADQCABLQAAIABB9M8Aai0AAEcNMyAAQQdGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAM8QELIAJBADYCACAGQQFqIQFBGww0CyABIARGBEBBvQEhAwzwAQsCQAJAAkAgAS0AAEHCAGsOEgA0NDQ0NDQ0NDQBNDQ0NDQ0AjQLIAFBAWohAUGkASEDDNgBCyABQQFqIQFBpwEhAwzXAQsgAUEBaiEBQagBIQMM1gELIAEgBEYEQEG+ASEDDO8BCyABLQAAQc4ARw0wIAFBAWohAQwsCyABIARGBEBBvwEhAwzuAQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABLQAAQcEAaw4VAAECAz8EBQY/Pz8HCAkKCz8MDQ4PPwsgAUEBaiEBQegAIQMM4wELIAFBAWohAUHpACEDDOIBCyABQQFqIQFB7gAhAwzhAQsgAUEBaiEBQfIAIQMM4AELIAFBAWohAUHzACEDDN8BCyABQQFqIQFB9gAhAwzeAQsgAUEBaiEBQfcAIQMM3QELIAFBAWohAUH6ACEDDNwBCyABQQFqIQFBgwEhAwzbAQsgAUEBaiEBQYQBIQMM2gELIAFBAWohAUGFASEDDNkBCyABQQFqIQFBkgEhAwzYAQsgAUEBaiEBQZgBIQMM1wELIAFBAWohAUGgASEDDNYBCyABQQFqIQFBowEhAwzVAQsgAUEBaiEBQaoBIQMM1AELIAEgBEcEQCACQRA2AgggAiABNgIEQasBIQMM1AELQcABIQMM7AELQQAhAAJAIAIoAjgiA0UNACADKAI0IgNFDQAgAiADEQAAIQALIABFDV4gAEEVRw0HIAJB0QA2AhwgAiABNgIUIAJBsBc2AhAgAkEVNgIMQQAhAwzrAQsgAUEBaiABIARHDQgaQcIBIQMM6gELA0ACQCABLQAAQQprDgQIAAALAAsgBCABQQFqIgFHDQALQcMBIQMM6QELIAEgBEcEQCACQRE2AgggAiABNgIEQQEhAwzQAQtBxAEhAwzoAQsgASAERgRAQcUBIQMM6AELAkACQCABLQAAQQprDgQBKCgAKAsgAUEBagwJCyABQQFqDAULIAEgBEYEQEHGASEDDOcBCwJAAkAgAS0AAEEKaw4XAQsLAQsLCwsLCwsLCwsLCwsLCwsLCwALCyABQQFqIQELQbABIQMMzQELIAEgBEYEQEHIASEDDOYBCyABLQAAQSBHDQkgAkEAOwEyIAFBAWohAUGzASEDDMwBCwNAIAEhAAJAIAEgBEcEQCABLQAAQTBrQf8BcSIDQQpJDQEMJwtBxwEhAwzmAQsCQCACLwEyIgFBmTNLDQAgAiABQQpsIgU7ATIgBUH+/wNxIANB//8Dc0sNACAAQQFqIQEgAiADIAVqIgM7ATIgA0H//wNxQegHSQ0BCwtBACEDIAJBADYCHCACQcEJNgIQIAJBDTYCDCACIABBAWo2AhQM5AELIAJBADYCHCACIAE2AhQgAkHwDDYCECACQRs2AgxBACEDDOMBCyACKAIEIQAgAkEANgIEIAIgACABECYiAA0BIAFBAWoLIQFBrQEhAwzIAQsgAkHBATYCHCACIAA2AgwgAiABQQFqNgIUQQAhAwzgAQsgAigCBCEAIAJBADYCBCACIAAgARAmIgANASABQQFqCyEBQa4BIQMMxQELIAJBwgE2AhwgAiAANgIMIAIgAUEBajYCFEEAIQMM3QELIAJBADYCHCACIAE2AhQgAkGXCzYCECACQQ02AgxBACEDDNwBCyACQQA2AhwgAiABNgIUIAJB4xA2AhAgAkEJNgIMQQAhAwzbAQsgAkECOgAoDKwBC0EAIQMgAkEANgIcIAJBrws2AhAgAkECNgIMIAIgAUEBajYCFAzZAQtBAiEDDL8BC0ENIQMMvgELQSYhAwy9AQtBFSEDDLwBC0EWIQMMuwELQRghAwy6AQtBHCEDDLkBC0EdIQMMuAELQSAhAwy3AQtBISEDDLYBC0EjIQMMtQELQcYAIQMMtAELQS4hAwyzAQtBPSEDDLIBC0HLACEDDLEBC0HOACEDDLABC0HYACEDDK8BC0HZACEDDK4BC0HbACEDDK0BC0HxACEDDKwBC0H0ACEDDKsBC0GNASEDDKoBC0GXASEDDKkBC0GpASEDDKgBC0GvASEDDKcBC0GxASEDDKYBCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJB8Rs2AhAgAkEGNgIMDL0BCyACQQA2AgAgBkEBaiEBQSQLOgApIAIoAgQhACACQQA2AgQgAiAAIAEQJyIARQRAQeUAIQMMowELIAJB+QA2AhwgAiABNgIUIAIgADYCDEEAIQMMuwELIABBFUcEQCACQQA2AhwgAiABNgIUIAJBzA42AhAgAkEgNgIMQQAhAwy7AQsgAkH4ADYCHCACIAE2AhQgAkHKGDYCECACQRU2AgxBACEDDLoBCyACQQA2AhwgAiABNgIUIAJBjhs2AhAgAkEGNgIMQQAhAwy5AQsgAkEANgIcIAIgATYCFCACQf4RNgIQIAJBBzYCDEEAIQMMuAELIAJBADYCHCACIAE2AhQgAkGMHDYCECACQQc2AgxBACEDDLcBCyACQQA2AhwgAiABNgIUIAJBww82AhAgAkEHNgIMQQAhAwy2AQsgAkEANgIcIAIgATYCFCACQcMPNgIQIAJBBzYCDEEAIQMMtQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==", "base64"); + var { Buffer: Buffer3 } = __require("node:buffer"); + module.exports = Buffer3.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADDsYBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHyAhIyUmKCorLC8wMTIzNDU2Nzk6Ozw9lANAQkRFRklLTk9QUVJTVFVWWFpbXF1eX2BhYmNkZWZnaGpsb3Bxc3V2eHl6e3x/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcsBzAHNAc4BzwGKA4kDiAOHA4QDgwOAA/sC+gL5AvgC9wL0AvMC8gLLAsECsALZAQsgASAERw3wAkHdASEDDLMDCyABIARHDcgBQcMBIQMMsgMLIAEgBEcNe0H3ACEDDLEDCyABIARHDXBB7wAhAwywAwsgASAERw1pQeoAIQMMrwMLIAEgBEcNZUHoACEDDK4DCyABIARHDWJB5gAhAwytAwsgASAERw0aQRghAwysAwsgASAERw0VQRIhAwyrAwsgASAERw1CQcUAIQMMqgMLIAEgBEcNNEE/IQMMqQMLIAEgBEcNMkE8IQMMqAMLIAEgBEcNK0ExIQMMpwMLIAItAC5BAUYNnwMMwQILQQAhAAJAAkACQCACLQAqRQ0AIAItACtFDQAgAi8BMCIDQQJxRQ0BDAILIAIvATAiA0EBcUUNAQtBASEAIAItAChBAUYNACACLwEyIgVB5ABrQeQASQ0AIAVBzAFGDQAgBUGwAkYNACADQcAAcQ0AQQAhACADQYgEcUGABEYNACADQShxQQBHIQALIAJBADsBMCACQQA6AC8gAEUN3wIgAkIANwMgDOACC0EAIQACQCACKAI4IgNFDQAgAygCLCIDRQ0AIAIgAxEAACEACyAARQ3MASAAQRVHDd0CIAJBBDYCHCACIAE2AhQgAkGwGDYCECACQRU2AgxBACEDDKQDCyABIARGBEBBBiEDDKQDCyABQQFqIQFBACEAAkAgAigCOCIDRQ0AIAMoAlQiA0UNACACIAMRAAAhAAsgAA3ZAgwcCyACQgA3AyBBEiEDDIkDCyABIARHDRZBHSEDDKEDCyABIARHBEAgAUEBaiEBQRAhAwyIAwtBByEDDKADCyACIAIpAyAiCiAEIAFrrSILfSIMQgAgCiAMWhs3AyAgCiALWA3UAkEIIQMMnwMLIAEgBEcEQCACQQk2AgggAiABNgIEQRQhAwyGAwtBCSEDDJ4DCyACKQMgQgBSDccBIAIgAi8BMEGAAXI7ATAMQgsgASAERw0/QdAAIQMMnAMLIAEgBEYEQEELIQMMnAMLIAFBAWohAUEAIQACQCACKAI4IgNFDQAgAygCUCIDRQ0AIAIgAxEAACEACyAADc8CDMYBC0EAIQACQCACKAI4IgNFDQAgAygCSCIDRQ0AIAIgAxEAACEACyAARQ3GASAAQRVHDc0CIAJBCzYCHCACIAE2AhQgAkGCGTYCECACQRU2AgxBACEDDJoDC0EAIQACQCACKAI4IgNFDQAgAygCSCIDRQ0AIAIgAxEAACEACyAARQ0MIABBFUcNygIgAkEaNgIcIAIgATYCFCACQYIZNgIQIAJBFTYCDEEAIQMMmQMLQQAhAAJAIAIoAjgiA0UNACADKAJMIgNFDQAgAiADEQAAIQALIABFDcQBIABBFUcNxwIgAkELNgIcIAIgATYCFCACQZEXNgIQIAJBFTYCDEEAIQMMmAMLIAEgBEYEQEEPIQMMmAMLIAEtAAAiAEE7Rg0HIABBDUcNxAIgAUEBaiEBDMMBC0EAIQACQCACKAI4IgNFDQAgAygCTCIDRQ0AIAIgAxEAACEACyAARQ3DASAAQRVHDcICIAJBDzYCHCACIAE2AhQgAkGRFzYCECACQRU2AgxBACEDDJYDCwNAIAEtAABB8DVqLQAAIgBBAUcEQCAAQQJHDcECIAIoAgQhAEEAIQMgAkEANgIEIAIgACABQQFqIgEQLSIADcICDMUBCyAEIAFBAWoiAUcNAAtBEiEDDJUDC0EAIQACQCACKAI4IgNFDQAgAygCTCIDRQ0AIAIgAxEAACEACyAARQ3FASAAQRVHDb0CIAJBGzYCHCACIAE2AhQgAkGRFzYCECACQRU2AgxBACEDDJQDCyABIARGBEBBFiEDDJQDCyACQQo2AgggAiABNgIEQQAhAAJAIAIoAjgiA0UNACADKAJIIgNFDQAgAiADEQAAIQALIABFDcIBIABBFUcNuQIgAkEVNgIcIAIgATYCFCACQYIZNgIQIAJBFTYCDEEAIQMMkwMLIAEgBEcEQANAIAEtAABB8DdqLQAAIgBBAkcEQAJAIABBAWsOBMQCvQIAvgK9AgsgAUEBaiEBQQghAwz8AgsgBCABQQFqIgFHDQALQRUhAwyTAwtBFSEDDJIDCwNAIAEtAABB8DlqLQAAIgBBAkcEQCAAQQFrDgTFArcCwwK4ArcCCyAEIAFBAWoiAUcNAAtBGCEDDJEDCyABIARHBEAgAkELNgIIIAIgATYCBEEHIQMM+AILQRkhAwyQAwsgAUEBaiEBDAILIAEgBEYEQEEaIQMMjwMLAkAgAS0AAEENaw4UtQG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwEAvwELQQAhAyACQQA2AhwgAkGvCzYCECACQQI2AgwgAiABQQFqNgIUDI4DCyABIARGBEBBGyEDDI4DCyABLQAAIgBBO0cEQCAAQQ1HDbECIAFBAWohAQy6AQsgAUEBaiEBC0EiIQMM8wILIAEgBEYEQEEcIQMMjAMLQgAhCgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AAEEwaw43wQLAAgABAgMEBQYH0AHQAdAB0AHQAdAB0AEICQoLDA3QAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdABDg8QERIT0AELQgIhCgzAAgtCAyEKDL8CC0IEIQoMvgILQgUhCgy9AgtCBiEKDLwCC0IHIQoMuwILQgghCgy6AgtCCSEKDLkCC0IKIQoMuAILQgshCgy3AgtCDCEKDLYCC0INIQoMtQILQg4hCgy0AgtCDyEKDLMCC0IKIQoMsgILQgshCgyxAgtCDCEKDLACC0INIQoMrwILQg4hCgyuAgtCDyEKDK0CC0IAIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEtAABBMGsON8ACvwIAAQIDBAUGB74CvgK+Ar4CvgK+Ar4CCAkKCwwNvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ag4PEBESE74CC0ICIQoMvwILQgMhCgy+AgtCBCEKDL0CC0IFIQoMvAILQgYhCgy7AgtCByEKDLoCC0IIIQoMuQILQgkhCgy4AgtCCiEKDLcCC0ILIQoMtgILQgwhCgy1AgtCDSEKDLQCC0IOIQoMswILQg8hCgyyAgtCCiEKDLECC0ILIQoMsAILQgwhCgyvAgtCDSEKDK4CC0IOIQoMrQILQg8hCgysAgsgAiACKQMgIgogBCABa60iC30iDEIAIAogDFobNwMgIAogC1gNpwJBHyEDDIkDCyABIARHBEAgAkEJNgIIIAIgATYCBEElIQMM8AILQSAhAwyIAwtBASEFIAIvATAiA0EIcUUEQCACKQMgQgBSIQULAkAgAi0ALgRAQQEhACACLQApQQVGDQEgA0HAAHFFIAVxRQ0BC0EAIQAgA0HAAHENAEECIQAgA0EIcQ0AIANBgARxBEACQCACLQAoQQFHDQAgAi0ALUEKcQ0AQQUhAAwCC0EEIQAMAQsgA0EgcUUEQAJAIAItAChBAUYNACACLwEyIgBB5ABrQeQASQ0AIABBzAFGDQAgAEGwAkYNAEEEIQAgA0EocUUNAiADQYgEcUGABEYNAgtBACEADAELQQBBAyACKQMgUBshAAsgAEEBaw4FvgIAsAEBpAKhAgtBESEDDO0CCyACQQE6AC8MhAMLIAEgBEcNnQJBJCEDDIQDCyABIARHDRxBxgAhAwyDAwtBACEAAkAgAigCOCIDRQ0AIAMoAkQiA0UNACACIAMRAAAhAAsgAEUNJyAAQRVHDZgCIAJB0AA2AhwgAiABNgIUIAJBkRg2AhAgAkEVNgIMQQAhAwyCAwsgASAERgRAQSghAwyCAwtBACEDIAJBADYCBCACQQw2AgggAiABIAEQKiIARQ2UAiACQSc2AhwgAiABNgIUIAIgADYCDAyBAwsgASAERgRAQSkhAwyBAwsgAS0AACIAQSBGDRMgAEEJRw2VAiABQQFqIQEMFAsgASAERwRAIAFBAWohAQwWC0EqIQMM/wILIAEgBEYEQEErIQMM/wILIAEtAAAiAEEJRyAAQSBHcQ2QAiACLQAsQQhHDd0CIAJBADoALAzdAgsgASAERgRAQSwhAwz+AgsgAS0AAEEKRw2OAiABQQFqIQEMsAELIAEgBEcNigJBLyEDDPwCCwNAIAEtAAAiAEEgRwRAIABBCmsOBIQCiAKIAoQChgILIAQgAUEBaiIBRw0AC0ExIQMM+wILQTIhAyABIARGDfoCIAIoAgAiACAEIAFraiEHIAEgAGtBA2ohBgJAA0AgAEHwO2otAAAgAS0AACIFQSByIAUgBUHBAGtB/wFxQRpJG0H/AXFHDQEgAEEDRgRAQQYhAQziAgsgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAc2AgAM+wILIAJBADYCAAyGAgtBMyEDIAQgASIARg35AiAEIAFrIAIoAgAiAWohByAAIAFrQQhqIQYCQANAIAFB9DtqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0BIAFBCEYEQEEFIQEM4QILIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADPoCCyACQQA2AgAgACEBDIUCC0E0IQMgBCABIgBGDfgCIAQgAWsgAigCACIBaiEHIAAgAWtBBWohBgJAA0AgAUHQwgBqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0BIAFBBUYEQEEHIQEM4AILIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADPkCCyACQQA2AgAgACEBDIQCCyABIARHBEADQCABLQAAQYA+ai0AACIAQQFHBEAgAEECRg0JDIECCyAEIAFBAWoiAUcNAAtBMCEDDPgCC0EwIQMM9wILIAEgBEcEQANAIAEtAAAiAEEgRwRAIABBCmsOBP8B/gH+Af8B/gELIAQgAUEBaiIBRw0AC0E4IQMM9wILQTghAwz2AgsDQCABLQAAIgBBIEcgAEEJR3EN9gEgBCABQQFqIgFHDQALQTwhAwz1AgsDQCABLQAAIgBBIEcEQAJAIABBCmsOBPkBBAT5AQALIABBLEYN9QEMAwsgBCABQQFqIgFHDQALQT8hAwz0AgtBwAAhAyABIARGDfMCIAIoAgAiACAEIAFraiEFIAEgAGtBBmohBgJAA0AgAEGAQGstAAAgAS0AAEEgckcNASAAQQZGDdsCIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADPQCCyACQQA2AgALQTYhAwzZAgsgASAERgRAQcEAIQMM8gILIAJBDDYCCCACIAE2AgQgAi0ALEEBaw4E+wHuAewB6wHUAgsgAUEBaiEBDPoBCyABIARHBEADQAJAIAEtAAAiAEEgciAAIABBwQBrQf8BcUEaSRtB/wFxIgBBCUYNACAAQSBGDQACQAJAAkACQCAAQeMAaw4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIQMM3AILIAFBAWohAUEyIQMM2wILIAFBAWohAUEzIQMM2gILDP4BCyAEIAFBAWoiAUcNAAtBNSEDDPACC0E1IQMM7wILIAEgBEcEQANAIAEtAABBgDxqLQAAQQFHDfcBIAQgAUEBaiIBRw0AC0E9IQMM7wILQT0hAwzuAgtBACEAAkAgAigCOCIDRQ0AIAMoAkAiA0UNACACIAMRAAAhAAsgAEUNASAAQRVHDeYBIAJBwgA2AhwgAiABNgIUIAJB4xg2AhAgAkEVNgIMQQAhAwztAgsgAUEBaiEBC0E8IQMM0gILIAEgBEYEQEHCACEDDOsCCwJAA0ACQCABLQAAQQlrDhgAAswCzALRAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAgDMAgsgBCABQQFqIgFHDQALQcIAIQMM6wILIAFBAWohASACLQAtQQFxRQ3+AQtBLCEDDNACCyABIARHDd4BQcQAIQMM6AILA0AgAS0AAEGQwABqLQAAQQFHDZwBIAQgAUEBaiIBRw0AC0HFACEDDOcCCyABLQAAIgBBIEYN/gEgAEE6Rw3AAiACKAIEIQBBACEDIAJBADYCBCACIAAgARApIgAN3gEM3QELQccAIQMgBCABIgBGDeUCIAQgAWsgAigCACIBaiEHIAAgAWtBBWohBgNAIAFBkMIAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNvwIgAUEFRg3CAiABQQFqIQEgBCAAQQFqIgBHDQALIAIgBzYCAAzlAgtByAAhAyAEIAEiAEYN5AIgBCABayACKAIAIgFqIQcgACABa0EJaiEGA0AgAUGWwgBqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw2+AkECIAFBCUYNwgIaIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADOQCCyABIARGBEBByQAhAwzkAgsCQAJAIAEtAAAiAEEgciAAIABBwQBrQf8BcUEaSRtB/wFxQe4Aaw4HAL8CvwK/Ar8CvwIBvwILIAFBAWohAUE+IQMMywILIAFBAWohAUE/IQMMygILQcoAIQMgBCABIgBGDeICIAQgAWsgAigCACIBaiEGIAAgAWtBAWohBwNAIAFBoMIAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNvAIgAUEBRg2+AiABQQFqIQEgBCAAQQFqIgBHDQALIAIgBjYCAAziAgtBywAhAyAEIAEiAEYN4QIgBCABayACKAIAIgFqIQcgACABa0EOaiEGA0AgAUGiwgBqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw27AiABQQ5GDb4CIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADOECC0HMACEDIAQgASIARg3gAiAEIAFrIAIoAgAiAWohByAAIAFrQQ9qIQYDQCABQcDCAGotAAAgAC0AACIFQSByIAUgBUHBAGtB/wFxQRpJG0H/AXFHDboCQQMgAUEPRg2+AhogAUEBaiEBIAQgAEEBaiIARw0ACyACIAc2AgAM4AILQc0AIQMgBCABIgBGDd8CIAQgAWsgAigCACIBaiEHIAAgAWtBBWohBgNAIAFB0MIAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNuQJBBCABQQVGDb0CGiABQQFqIQEgBCAAQQFqIgBHDQALIAIgBzYCAAzfAgsgASAERgRAQc4AIQMM3wILAkACQAJAAkAgAS0AACIAQSByIAAgAEHBAGtB/wFxQRpJG0H/AXFB4wBrDhMAvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCAbwCvAK8AgIDvAILIAFBAWohAUHBACEDDMgCCyABQQFqIQFBwgAhAwzHAgsgAUEBaiEBQcMAIQMMxgILIAFBAWohAUHEACEDDMUCCyABIARHBEAgAkENNgIIIAIgATYCBEHFACEDDMUCC0HPACEDDN0CCwJAAkAgAS0AAEEKaw4EAZABkAEAkAELIAFBAWohAQtBKCEDDMMCCyABIARGBEBB0QAhAwzcAgsgAS0AAEEgRw0AIAFBAWohASACLQAtQQFxRQ3QAQtBFyEDDMECCyABIARHDcsBQdIAIQMM2QILQdMAIQMgASAERg3YAiACKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABB1sIAai0AAEcNxwEgAEEBRg3KASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBjYCAAzYAgsgASAERgRAQdUAIQMM2AILIAEtAABBCkcNwgEgAUEBaiEBDMoBCyABIARGBEBB1gAhAwzXAgsCQAJAIAEtAABBCmsOBADDAcMBAcMBCyABQQFqIQEMygELIAFBAWohAUHKACEDDL0CC0EAIQACQCACKAI4IgNFDQAgAygCPCIDRQ0AIAIgAxEAACEACyAADb8BQc0AIQMMvAILIAItAClBIkYNzwIMiQELIAQgASIFRgRAQdsAIQMM1AILQQAhAEEBIQFBASEGQQAhAwJAAn8CQAJAAkACQAJAAkACQCAFLQAAQTBrDgrFAcQBAAECAwQFBgjDAQtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshA0EAIQFBACEGDL0BC0EJIQNBASEAQQAhAUEAIQYMvAELIAEgBEYEQEHdACEDDNMCCyABLQAAQS5HDbgBIAFBAWohAQyIAQsgASAERw22AUHfACEDDNECCyABIARHBEAgAkEONgIIIAIgATYCBEHQACEDDLgCC0HgACEDDNACC0HhACEDIAEgBEYNzwIgAigCACIAIAQgAWtqIQUgASAAa0EDaiEGA0AgAS0AACAAQeLCAGotAABHDbEBIABBA0YNswEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMzwILQeIAIQMgASAERg3OAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYDQCABLQAAIABB5sIAai0AAEcNsAEgAEECRg2vASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAzOAgtB4wAhAyABIARGDc0CIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgNAIAEtAAAgAEHpwgBqLQAARw2vASAAQQNGDa0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADM0CCyABIARGBEBB5QAhAwzNAgsgAUEBaiEBQQAhAAJAIAIoAjgiA0UNACADKAIwIgNFDQAgAiADEQAAIQALIAANqgFB1gAhAwyzAgsgASAERwRAA0AgAS0AACIAQSBHBEACQAJAAkAgAEHIAGsOCwABswGzAbMBswGzAbMBswGzAQKzAQsgAUEBaiEBQdIAIQMMtwILIAFBAWohAUHTACEDDLYCCyABQQFqIQFB1AAhAwy1AgsgBCABQQFqIgFHDQALQeQAIQMMzAILQeQAIQMMywILA0AgAS0AAEHwwgBqLQAAIgBBAUcEQCAAQQJrDgOnAaYBpQGkAQsgBCABQQFqIgFHDQALQeYAIQMMygILIAFBAWogASAERw0CGkHnACEDDMkCCwNAIAEtAABB8MQAai0AACIAQQFHBEACQCAAQQJrDgSiAaEBoAEAnwELQdcAIQMMsQILIAQgAUEBaiIBRw0AC0HoACEDDMgCCyABIARGBEBB6QAhAwzIAgsCQCABLQAAIgBBCmsOGrcBmwGbAbQBmwGbAZsBmwGbAZsBmwGbAZsBmwGbAZsBmwGbAZsBmwGbAZsBpAGbAZsBAJkBCyABQQFqCyEBQQYhAwytAgsDQCABLQAAQfDGAGotAABBAUcNfSAEIAFBAWoiAUcNAAtB6gAhAwzFAgsgAUEBaiABIARHDQIaQesAIQMMxAILIAEgBEYEQEHsACEDDMQCCyABQQFqDAELIAEgBEYEQEHtACEDDMMCCyABQQFqCyEBQQQhAwyoAgsgASAERgRAQe4AIQMMwQILAkACQAJAIAEtAABB8MgAai0AAEEBaw4HkAGPAY4BAHwBAo0BCyABQQFqIQEMCwsgAUEBagyTAQtBACEDIAJBADYCHCACQZsSNgIQIAJBBzYCDCACIAFBAWo2AhQMwAILAkADQCABLQAAQfDIAGotAAAiAEEERwRAAkACQCAAQQFrDgeUAZMBkgGNAQAEAY0BC0HaACEDDKoCCyABQQFqIQFB3AAhAwypAgsgBCABQQFqIgFHDQALQe8AIQMMwAILIAFBAWoMkQELIAQgASIARgRAQfAAIQMMvwILIAAtAABBL0cNASAAQQFqIQEMBwsgBCABIgBGBEBB8QAhAwy+AgsgAC0AACIBQS9GBEAgAEEBaiEBQd0AIQMMpQILIAFBCmsiA0EWSw0AIAAhAUEBIAN0QYmAgAJxDfkBC0EAIQMgAkEANgIcIAIgADYCFCACQYwcNgIQIAJBBzYCDAy8AgsgASAERwRAIAFBAWohAUHeACEDDKMCC0HyACEDDLsCCyABIARGBEBB9AAhAwy7AgsCQCABLQAAQfDMAGotAABBAWsOA/cBcwCCAQtB4QAhAwyhAgsgASAERwRAA0AgAS0AAEHwygBqLQAAIgBBA0cEQAJAIABBAWsOAvkBAIUBC0HfACEDDKMCCyAEIAFBAWoiAUcNAAtB8wAhAwy6AgtB8wAhAwy5AgsgASAERwRAIAJBDzYCCCACIAE2AgRB4AAhAwygAgtB9QAhAwy4AgsgASAERgRAQfYAIQMMuAILIAJBDzYCCCACIAE2AgQLQQMhAwydAgsDQCABLQAAQSBHDY4CIAQgAUEBaiIBRw0AC0H3ACEDDLUCCyABIARGBEBB+AAhAwy1AgsgAS0AAEEgRw16IAFBAWohAQxbC0EAIQACQCACKAI4IgNFDQAgAygCOCIDRQ0AIAIgAxEAACEACyAADXgMgAILIAEgBEYEQEH6ACEDDLMCCyABLQAAQcwARw10IAFBAWohAUETDHYLQfsAIQMgASAERg2xAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYDQCABLQAAIABB8M4Aai0AAEcNcyAAQQVGDXUgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMsQILIAEgBEYEQEH8ACEDDLECCwJAAkAgAS0AAEHDAGsODAB0dHR0dHR0dHR0AXQLIAFBAWohAUHmACEDDJgCCyABQQFqIQFB5wAhAwyXAgtB/QAhAyABIARGDa8CIAIoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQe3PAGotAABHDXIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADLACCyACQQA2AgAgBkEBaiEBQRAMcwtB/gAhAyABIARGDa4CIAIoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQfbOAGotAABHDXEgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADK8CCyACQQA2AgAgBkEBaiEBQRYMcgtB/wAhAyABIARGDa0CIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQfzOAGotAABHDXAgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADK4CCyACQQA2AgAgBkEBaiEBQQUMcQsgASAERgRAQYABIQMMrQILIAEtAABB2QBHDW4gAUEBaiEBQQgMcAsgASAERgRAQYEBIQMMrAILAkACQCABLQAAQc4Aaw4DAG8BbwsgAUEBaiEBQesAIQMMkwILIAFBAWohAUHsACEDDJICCyABIARGBEBBggEhAwyrAgsCQAJAIAEtAABByABrDggAbm5ubm5uAW4LIAFBAWohAUHqACEDDJICCyABQQFqIQFB7QAhAwyRAgtBgwEhAyABIARGDakCIAIoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQYDPAGotAABHDWwgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADKoCCyACQQA2AgAgBkEBaiEBQQAMbQtBhAEhAyABIARGDagCIAIoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQYPPAGotAABHDWsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADKkCCyACQQA2AgAgBkEBaiEBQSMMbAsgASAERgRAQYUBIQMMqAILAkACQCABLQAAQcwAaw4IAGtra2trawFrCyABQQFqIQFB7wAhAwyPAgsgAUEBaiEBQfAAIQMMjgILIAEgBEYEQEGGASEDDKcCCyABLQAAQcUARw1oIAFBAWohAQxgC0GHASEDIAEgBEYNpQIgAigCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBiM8Aai0AAEcNaCAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMpgILIAJBADYCACAGQQFqIQFBLQxpC0GIASEDIAEgBEYNpAIgAigCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABB0M8Aai0AAEcNZyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMpQILIAJBADYCACAGQQFqIQFBKQxoCyABIARGBEBBiQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxBACEDDKIBCyACQeQANgIcIAIgATYCFCACQeMXNgIQIAJBFTYCDEEAIQMMoQELIAJBADYCACAGQQFqIQEgAi0AKSIAQSNrQQtJDQQCQCAAQQZLDQBBASAAdEHKAHFFDQAMBQtBACEDIAJBADYCHCACIAE2AhQgAkH3CTYCECACQQg2AgwMoAELIAJBADYCACAGQQFqIQEgAi0AKUEhRg0DIAJBADYCHCACIAE2AhQgAkGbCjYCECACQQg2AgxBACEDDJ8BCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJBkDM2AhAgAkEINgIMDJ0BCyACQQA2AgAgBkEBaiEBIAItAClBI0kNACACQQA2AhwgAiABNgIUIAJB0wk2AhAgAkEINgIMQQAhAwycAQtB0QAhAwyCAQsgAS0AAEEwayIAQf8BcUEKSQRAIAIgADoAKiABQQFqIQFBzwAhAwyCAQsgAigCBCEAIAJBADYCBCACIAAgARAoIgBFDYYBIAJB3gA2AhwgAiABNgIUIAIgADYCDEEAIQMMmgELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ2GASACQdwANgIcIAIgATYCFCACIAA2AgxBACEDDJkBCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMhwELIAJB2gA2AhwgAiAFNgIUIAIgADYCDAyYAQtBACEBQQEhAwsgAiADOgArIAVBAWohAwJAAkACQCACLQAtQRBxDQACQAJAAkAgAi0AKg4DAQACBAsgBkUNAwwCCyAADQEMAgsgAUUNAQsgAigCBCEAIAJBADYCBCACIAAgAxAoIgBFBEAgAyEBDAILIAJB2AA2AhwgAiADNgIUIAIgADYCDEEAIQMMmAELIAIoAgQhACACQQA2AgQgAiAAIAMQKCIARQRAIAMhAQyHAQsgAkHZADYCHCACIAM2AhQgAiAANgIMQQAhAwyXAQtBzAAhAwx9CyAAQRVHBEAgAkEANgIcIAIgATYCFCACQZQNNgIQIAJBITYCDEEAIQMMlgELIAJB1wA2AhwgAiABNgIUIAJByRc2AhAgAkEVNgIMQQAhAwyVAQtBACEDIAJBADYCHCACIAE2AhQgAkGAETYCECACQQk2AgwMlAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0AIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMkwELQckAIQMMeQsgAkEANgIcIAIgATYCFCACQcEoNgIQIAJBBzYCDCACQQA2AgBBACEDDJEBCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAlIgBFDQAgAkHSADYCHCACIAE2AhQgAiAANgIMDJABC0HIACEDDHYLIAJBADYCACAFIQELIAJBgBI7ASogAUEBaiEBQQAhAAJAIAIoAjgiA0UNACADKAIwIgNFDQAgAiADEQAAIQALIAANAQtBxwAhAwxzCyAAQRVGBEAgAkHRADYCHCACIAE2AhQgAkHjFzYCECACQRU2AgxBACEDDIwBC0EAIQMgAkEANgIcIAIgATYCFCACQbkNNgIQIAJBGjYCDAyLAQtBACEDIAJBADYCHCACIAE2AhQgAkGgGTYCECACQR42AgwMigELIAEtAABBOkYEQCACKAIEIQBBACEDIAJBADYCBCACIAAgARApIgBFDQEgAkHDADYCHCACIAA2AgwgAiABQQFqNgIUDIoBC0EAIQMgAkEANgIcIAIgATYCFCACQbERNgIQIAJBCjYCDAyJAQsgAUEBaiEBQTshAwxvCyACQcMANgIcIAIgADYCDCACIAFBAWo2AhQMhwELQQAhAyACQQA2AhwgAiABNgIUIAJB8A42AhAgAkEcNgIMDIYBCyACIAIvATBBEHI7ATAMZgsCQCACLwEwIgBBCHFFDQAgAi0AKEEBRw0AIAItAC1BCHFFDQMLIAIgAEH3+wNxQYAEcjsBMAwECyABIARHBEACQANAIAEtAABBMGsiAEH/AXFBCk8EQEE1IQMMbgsgAikDICIKQpmz5syZs+bMGVYNASACIApCCn4iCjcDICAKIACtQv8BgyILQn+FVg0BIAIgCiALfDcDICAEIAFBAWoiAUcNAAtBOSEDDIUBCyACKAIEIQBBACEDIAJBADYCBCACIAAgAUEBaiIBECoiAA0MDHcLQTkhAwyDAQsgAi0AMEEgcQ0GQcUBIQMMaQtBACEDIAJBADYCBCACIAEgARAqIgBFDQQgAkE6NgIcIAIgADYCDCACIAFBAWo2AhQMgQELIAItAChBAUcNACACLQAtQQhxRQ0BC0E3IQMMZgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIABEAgAkE7NgIcIAIgADYCDCACIAFBAWo2AhQMfwsgAUEBaiEBDG4LIAJBCDoALAwECyABQQFqIQEMbQtBACEDIAJBADYCHCACIAE2AhQgAkHkEjYCECACQQQ2AgwMewsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ1sIAJBNzYCHCACIAE2AhQgAiAANgIMDHoLIAIgAi8BMEEgcjsBMAtBMCEDDF8LIAJBNjYCHCACIAE2AhQgAiAANgIMDHcLIABBLEcNASABQQFqIQBBASEBAkACQAJAAkACQCACLQAsQQVrDgQDAQIEAAsgACEBDAQLQQIhAQwBC0EEIQELIAJBAToALCACIAIvATAgAXI7ATAgACEBDAELIAIgAi8BMEEIcjsBMCAAIQELQTkhAwxcCyACQQA6ACwLQTQhAwxaCyABIARGBEBBLSEDDHMLAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0EtIQMMdAsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ0CIAJBLDYCHCACIAE2AhQgAiAANgIMDHMLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAS0AAEENRgRAIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAi0ALUEBcQRAQcQBIQMMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIADQEMZQtBLyEDDFcLIAJBLjYCHCACIAE2AhQgAiAANgIMDG8LQQAhAyACQQA2AhwgAiABNgIUIAJB8BQ2AhAgAkEDNgIMDG4LQQEhAwJAAkACQAJAIAItACxBBWsOBAMBAgAECyACIAIvATBBCHI7ATAMAwtBAiEDDAELQQQhAwsgAkEBOgAsIAIgAi8BMCADcjsBMAtBKiEDDFMLQQAhAyACQQA2AhwgAiABNgIUIAJB4Q82AhAgAkEKNgIMDGsLQQEhAwJAAkACQAJAAkACQCACLQAsQQJrDgcFBAQDAQIABAsgAiACLwEwQQhyOwEwDAMLQQIhAwwBC0EEIQMLIAJBAToALCACIAIvATAgA3I7ATALQSshAwxSC0EAIQMgAkEANgIcIAIgATYCFCACQasSNgIQIAJBCzYCDAxqC0EAIQMgAkEANgIcIAIgATYCFCACQf0NNgIQIAJBHTYCDAxpCyABIARHBEADQCABLQAAQSBHDUggBCABQQFqIgFHDQALQSUhAwxpC0ElIQMMaAsgAi0ALUEBcQRAQcMBIQMMTwsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKSIABEAgAkEmNgIcIAIgADYCDCACIAFBAWo2AhQMaAsgAUEBaiEBDFwLIAFBAWohASACLwEwIgBBgAFxBEBBACEAAkAgAigCOCIDRQ0AIAMoAlQiA0UNACACIAMRAAAhAAsgAEUNBiAAQRVHDR8gAkEFNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMZwsCQCAAQaAEcUGgBEcNACACLQAtQQJxDQBBACEDIAJBADYCHCACIAE2AhQgAkGWEzYCECACQQQ2AgwMZwsgAgJ/IAIvATBBFHFBFEYEQEEBIAItAChBAUYNARogAi8BMkHlAEYMAQsgAi0AKUEFRgs6AC5BACEAAkAgAigCOCIDRQ0AIAMoAiQiA0UNACACIAMRAAAhAAsCQAJAAkACQAJAIAAOFgIBAAQEBAQEBAQEBAQEBAQEBAQEBAMECyACQQE6AC4LIAIgAi8BMEHAAHI7ATALQSchAwxPCyACQSM2AhwgAiABNgIUIAJBpRY2AhAgAkEVNgIMQQAhAwxnC0EAIQMgAkEANgIcIAIgATYCFCACQdULNgIQIAJBETYCDAxmC0EAIQACQCACKAI4IgNFDQAgAygCLCIDRQ0AIAIgAxEAACEACyAADQELQQ4hAwxLCyAAQRVGBEAgAkECNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMZAtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMYwtBACEDIAJBADYCHCACIAE2AhQgAkGqHDYCECACQQ82AgwMYgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEgCqdqIgEQKyIARQ0AIAJBBTYCHCACIAE2AhQgAiAANgIMDGELQQ8hAwxHC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxfC0IBIQoLIAFBAWohAQJAIAIpAyAiC0L//////////w9YBEAgAiALQgSGIAqENwMgDAELQQAhAyACQQA2AhwgAiABNgIUIAJBrQk2AhAgAkEMNgIMDF4LQSQhAwxEC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxcCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAsIgBFBEAgAUEBaiEBDFILIAJBFzYCHCACIAA2AgwgAiABQQFqNgIUDFsLIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQRY2AhwgAiAANgIMIAIgAUEBajYCFAxbC0EfIQMMQQtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQLSIARQRAIAFBAWohAQxQCyACQRQ2AhwgAiAANgIMIAIgAUEBajYCFAxYCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABEC0iAEUEQCABQQFqIQEMAQsgAkETNgIcIAIgADYCDCACIAFBAWo2AhQMWAtBHiEDDD4LQQAhAyACQQA2AhwgAiABNgIUIAJBxgw2AhAgAkEjNgIMDFYLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABEC0iAEUEQCABQQFqIQEMTgsgAkERNgIcIAIgADYCDCACIAFBAWo2AhQMVQsgAkEQNgIcIAIgATYCFCACIAA2AgwMVAtBACEDIAJBADYCHCACIAE2AhQgAkHGDDYCECACQSM2AgwMUwtBACEDIAJBADYCHCACIAE2AhQgAkHAFTYCECACQQI2AgwMUgsgAigCBCEAQQAhAyACQQA2AgQCQCACIAAgARAtIgBFBEAgAUEBaiEBDAELIAJBDjYCHCACIAA2AgwgAiABQQFqNgIUDFILQRshAww4C0EAIQMgAkEANgIcIAIgATYCFCACQcYMNgIQIAJBIzYCDAxQCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABECwiAEUEQCABQQFqIQEMAQsgAkENNgIcIAIgADYCDCACIAFBAWo2AhQMUAtBGiEDDDYLQQAhAyACQQA2AhwgAiABNgIUIAJBmg82AhAgAkEiNgIMDE4LIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQQw2AhwgAiAANgIMIAIgAUEBajYCFAxOC0EZIQMMNAtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMTAsgAEEVRwRAQQAhAyACQQA2AhwgAiABNgIUIAJBgww2AhAgAkETNgIMDEwLIAJBCjYCHCACIAE2AhQgAkHkFjYCECACQRU2AgxBACEDDEsLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABIAqnaiIBECsiAARAIAJBBzYCHCACIAE2AhQgAiAANgIMDEsLQRMhAwwxCyAAQRVHBEBBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMSgsgAkEeNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMSQtBACEAAkAgAigCOCIDRQ0AIAMoAiwiA0UNACACIAMRAAAhAAsgAEUNQSAAQRVGBEAgAkEDNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMSQtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMSAtBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMRwtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMRgsgAkEAOgAvIAItAC1BBHFFDT8LIAJBADoALyACQQE6ADRBACEDDCsLQQAhAyACQQA2AhwgAkHkETYCECACQQc2AgwgAiABQQFqNgIUDEMLAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB3QEhAwxDCwJAAkAgAi0ANEEBRw0AQQAhAAJAIAIoAjgiA0UNACADKAJYIgNFDQAgAiADEQAAIQALIABFDQAgAEEVRw0BIAJB3AE2AhwgAiABNgIUIAJB1RY2AhAgAkEVNgIMQQAhAwxEC0HBASEDDCoLIAJBADYCHCACIAE2AhQgAkHpCzYCECACQR82AgxBACEDDEILAkACQCACLQAoQQFrDgIEAQALQcABIQMMKQtBuQEhAwwoCyACQQI6AC9BACEAAkAgAigCOCIDRQ0AIAMoAgAiA0UNACACIAMRAAAhAAsgAEUEQEHCASEDDCgLIABBFUcEQCACQQA2AhwgAiABNgIUIAJBpAw2AhAgAkEQNgIMQQAhAwxBCyACQdsBNgIcIAIgATYCFCACQfoWNgIQIAJBFTYCDEEAIQMMQAsgASAERgRAQdoBIQMMQAsgAS0AAEHIAEYNASACQQE6ACgLQawBIQMMJQtBvwEhAwwkCyABIARHBEAgAkEQNgIIIAIgATYCBEG+ASEDDCQLQdkBIQMMPAsgASAERgRAQdgBIQMMPAsgAS0AAEHIAEcNBCABQQFqIQFBvQEhAwwiCyABIARGBEBB1wEhAww7CwJAAkAgAS0AAEHFAGsOEAAFBQUFBQUFBQUFBQUFBQEFCyABQQFqIQFBuwEhAwwiCyABQQFqIQFBvAEhAwwhC0HWASEDIAEgBEYNOSACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGD0ABqLQAARw0DIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw6CyACKAIEIQAgAkIANwMAIAIgACAGQQFqIgEQJyIARQRAQcYBIQMMIQsgAkHVATYCHCACIAE2AhQgAiAANgIMQQAhAww5C0HUASEDIAEgBEYNOCACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGB0ABqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw5CyACQYEEOwEoIAIoAgQhACACQgA3AwAgAiAAIAZBAWoiARAnIgANAwwCCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJB2Bs2AhAgAkEINgIMDDYLQboBIQMMHAsgAkHTATYCHCACIAE2AhQgAiAANgIMQQAhAww0C0EAIQACQCACKAI4IgNFDQAgAygCOCIDRQ0AIAIgAxEAACEACyAARQ0AIABBFUYNASACQQA2AhwgAiABNgIUIAJBzA42AhAgAkEgNgIMQQAhAwwzC0HkACEDDBkLIAJB+AA2AhwgAiABNgIUIAJByhg2AhAgAkEVNgIMQQAhAwwxC0HSASEDIAQgASIARg0wIAQgAWsgAigCACIBaiEFIAAgAWtBBGohBgJAA0AgAC0AACABQfzPAGotAABHDQEgAUEERg0DIAFBAWohASAEIABBAWoiAEcNAAsgAiAFNgIADDELIAJBADYCHCACIAA2AhQgAkGQMzYCECACQQg2AgwgAkEANgIAQQAhAwwwCyABIARHBEAgAkEONgIIIAIgATYCBEG3ASEDDBcLQdEBIQMMLwsgAkEANgIAIAZBAWohAQtBuAEhAwwUCyABIARGBEBB0AEhAwwtCyABLQAAQTBrIgBB/wFxQQpJBEAgAiAAOgAqIAFBAWohAUG2ASEDDBQLIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0UIAJBzwE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAsgASAERgRAQc4BIQMMLAsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0VIAJBzQE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAtBtQEhAwwSCyAEIAEiBUYEQEHMASEDDCsLQQAhAEEBIQFBASEGQQAhAwJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAUtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyEDQQAhAUEAIQYMAgtBCSEDQQEhAEEAIQFBACEGDAELQQAhAUEBIQMLIAIgAzoAKyAFQQFqIQMCQAJAIAItAC1BEHENAAJAAkACQCACLQAqDgMBAAIECyAGRQ0DDAILIAANAQwCCyABRQ0BCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMAwsgAkHJATYCHCACIAM2AhQgAiAANgIMQQAhAwwtCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMGAsgAkHKATYCHCACIAM2AhQgAiAANgIMQQAhAwwsCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMFgsgAkHLATYCHCACIAU2AhQgAiAANgIMDCsLQbQBIQMMEQtBACEAAkAgAigCOCIDRQ0AIAMoAjwiA0UNACACIAMRAAAhAAsCQCAABEAgAEEVRg0BIAJBADYCHCACIAE2AhQgAkGUDTYCECACQSE2AgxBACEDDCsLQbIBIQMMEQsgAkHIATYCHCACIAE2AhQgAkHJFzYCECACQRU2AgxBACEDDCkLIAJBADYCACAGQQFqIQFB9QAhAwwPCyACLQApQQVGBEBB4wAhAwwPC0HiACEDDA4LIAAhASACQQA2AgALIAJBADoALEEJIQMMDAsgAkEANgIAIAdBAWohAUHAACEDDAsLQQELOgAsIAJBADYCACAGQQFqIQELQSkhAwwIC0E4IQMMBwsCQCABIARHBEADQCABLQAAQYA+ai0AACIAQQFHBEAgAEECRw0DIAFBAWohAQwFCyAEIAFBAWoiAUcNAAtBPiEDDCELQT4hAwwgCwsgAkEAOgAsDAELQQshAwwEC0E6IQMMAwsgAUEBaiEBQS0hAwwCCyACIAE6ACwgAkEANgIAIAZBAWohAUEMIQMMAQsgAkEANgIAIAZBAWohAUEKIQMMAAsAC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwXC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwWC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwVC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwUC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwTC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwSC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwRC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwQC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwPC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwOC0EAIQMgAkEANgIcIAIgATYCFCACQcASNgIQIAJBCzYCDAwNC0EAIQMgAkEANgIcIAIgATYCFCACQZUJNgIQIAJBCzYCDAwMC0EAIQMgAkEANgIcIAIgATYCFCACQeEPNgIQIAJBCjYCDAwLC0EAIQMgAkEANgIcIAIgATYCFCACQfsPNgIQIAJBCjYCDAwKC0EAIQMgAkEANgIcIAIgATYCFCACQfEZNgIQIAJBAjYCDAwJC0EAIQMgAkEANgIcIAIgATYCFCACQcQUNgIQIAJBAjYCDAwIC0EAIQMgAkEANgIcIAIgATYCFCACQfIVNgIQIAJBAjYCDAwHCyACQQI2AhwgAiABNgIUIAJBnBo2AhAgAkEWNgIMQQAhAwwGC0EBIQMMBQtB1AAhAyABIARGDQQgCEEIaiEJIAIoAgAhBQJAAkAgASAERwRAIAVB2MIAaiEHIAQgBWogAWshACAFQX9zQQpqIgUgAWohBgNAIAEtAAAgBy0AAEcEQEECIQcMAwsgBUUEQEEAIQcgBiEBDAMLIAVBAWshBSAHQQFqIQcgBCABQQFqIgFHDQALIAAhBSAEIQELIAlBATYCACACIAU2AgAMAQsgAkEANgIAIAkgBzYCAAsgCSABNgIEIAgoAgwhACAIKAIIDgMBBAIACwALIAJBADYCHCACQbUaNgIQIAJBFzYCDCACIABBAWo2AhRBACEDDAILIAJBADYCHCACIAA2AhQgAkHKGjYCECACQQk2AgxBACEDDAELIAEgBEYEQEEiIQMMAQsgAkEJNgIIIAIgATYCBEEhIQMLIAhBEGokACADRQRAIAIoAgwhAAwBCyACIAM2AhxBACEAIAIoAgQiAUUNACACIAEgBCACKAIIEQEAIgFFDQAgAiAENgIUIAIgATYCDCABIQALIAALvgIBAn8gAEEAOgAAIABB3ABqIgFBAWtBADoAACAAQQA6AAIgAEEAOgABIAFBA2tBADoAACABQQJrQQA6AAAgAEEAOgADIAFBBGtBADoAAEEAIABrQQNxIgEgAGoiAEEANgIAQdwAIAFrQXxxIgIgAGoiAUEEa0EANgIAAkAgAkEJSQ0AIABBADYCCCAAQQA2AgQgAUEIa0EANgIAIAFBDGtBADYCACACQRlJDQAgAEEANgIYIABBADYCFCAAQQA2AhAgAEEANgIMIAFBEGtBADYCACABQRRrQQA2AgAgAUEYa0EANgIAIAFBHGtBADYCACACIABBBHFBGHIiAmsiAUEgSQ0AIAAgAmohAANAIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDACAAQSBqIQAgAUEgayIBQR9LDQALCwtWAQF/AkAgACgCDA0AAkACQAJAAkAgAC0ALw4DAQADAgsgACgCOCIBRQ0AIAEoAiwiAUUNACAAIAERAAAiAQ0DC0EADwsACyAAQcMWNgIQQQ4hAQsgAQsaACAAKAIMRQRAIABB0Rs2AhAgAEEVNgIMCwsUACAAKAIMQRVGBEAgAEEANgIMCwsUACAAKAIMQRZGBEAgAEEANgIMCwsHACAAKAIMCwcAIAAoAhALCQAgACABNgIQCwcAIAAoAhQLFwAgAEEkTwRAAAsgAEECdEGgM2ooAgALFwAgAEEuTwRAAAsgAEECdEGwNGooAgALvwkBAX9B6yghAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==", "base64"); } }); // node_modules/undici/lib/web/fetch/constants.js var require_constants3 = __commonJS({ - "node_modules/undici/lib/web/fetch/constants.js"(exports, module) { + "node_modules/undici/lib/web/fetch/constants.js"(exports2, module) { "use strict"; var corsSafeListedMethods = ( /** @type {const} */ @@ -2407,7 +2407,7 @@ var require_constants3 = __commonJS({ // node_modules/undici/lib/web/fetch/global.js var require_global = __commonJS({ - "node_modules/undici/lib/web/fetch/global.js"(exports, module) { + "node_modules/undici/lib/web/fetch/global.js"(exports2, module) { "use strict"; var globalOrigin = /* @__PURE__ */ Symbol.for("undici.globalOrigin.1"); function getGlobalOrigin() { @@ -2442,11 +2442,11 @@ var require_global = __commonJS({ // node_modules/undici/lib/web/fetch/data-url.js var require_data_url = __commonJS({ - "node_modules/undici/lib/web/fetch/data-url.js"(exports, module) { + "node_modules/undici/lib/web/fetch/data-url.js"(exports2, module) { "use strict"; - var assert = __require("node:assert"), encoder = new TextEncoder(), HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/, HTTP_WHITESPACE_REGEX = /[\u000A\u000D\u0009\u0020]/, ASCII_WHITESPACE_REPLACE_REGEX = /[\u0009\u000A\u000C\u000D\u0020]/g, HTTP_QUOTED_STRING_TOKENS = /^[\u0009\u0020-\u007E\u0080-\u00FF]+$/; + var assert4 = __require("node:assert"), encoder = new TextEncoder(), HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/, HTTP_WHITESPACE_REGEX = /[\u000A\u000D\u0009\u0020]/, ASCII_WHITESPACE_REPLACE_REGEX = /[\u0009\u000A\u000C\u000D\u0020]/g, HTTP_QUOTED_STRING_TOKENS = /^[\u0009\u0020-\u007E\u0080-\u00FF]+$/; function dataURLProcessor(dataURL) { - assert(dataURL.protocol === "data:"); + assert4(dataURL.protocol === "data:"); let input = URLSerializer(dataURL, !0); input = input.slice(5); let position = { position: 0 }, mimeType = collectASequenceOfCodePointsFast( @@ -2457,21 +2457,21 @@ var require_data_url = __commonJS({ if (mimeType = removeASCIIWhitespace(mimeType, !0, !0), position.position >= input.length) return "failure"; position.position++; - let encodedBody = input.slice(mimeTypeLength + 1), body = stringPercentDecode(encodedBody); + let encodedBody = input.slice(mimeTypeLength + 1), body2 = stringPercentDecode(encodedBody); if (/;(\u0020){0,}base64$/i.test(mimeType)) { - let stringBody = isomorphicDecode(body); - if (body = forgivingBase64(stringBody), body === "failure") + let stringBody = isomorphicDecode(body2); + if (body2 = forgivingBase64(stringBody), body2 === "failure") return "failure"; mimeType = mimeType.slice(0, -6), mimeType = mimeType.replace(/(\u0020)+$/, ""), mimeType = mimeType.slice(0, -1); } mimeType.startsWith(";") && (mimeType = "text/plain" + mimeType); let mimeTypeRecord = parseMIMEType(mimeType); - return mimeTypeRecord === "failure" && (mimeTypeRecord = parseMIMEType("text/plain;charset=US-ASCII")), { mimeType: mimeTypeRecord, body }; + return mimeTypeRecord === "failure" && (mimeTypeRecord = parseMIMEType("text/plain;charset=US-ASCII")), { mimeType: mimeTypeRecord, body: body2 }; } - function URLSerializer(url, excludeFragment = !1) { + function URLSerializer(url2, excludeFragment = !1) { if (!excludeFragment) - return url.href; - let href = url.href, hashLength = url.hash.length, serialized = hashLength === 0 ? href : href.substring(0, href.length - hashLength); + return url2.href; + let href = url2.href, hashLength = url2.hash.length, serialized = hashLength === 0 ? href : href.substring(0, href.length - hashLength); return !hashLength && href.endsWith("#") ? serialized.slice(0, -1) : serialized; } function collectASequenceOfCodePoints(condition, input, position) { @@ -2571,12 +2571,12 @@ var require_data_url = __commonJS({ let dataLength = data.length; if (dataLength % 4 === 0 && data.charCodeAt(dataLength - 1) === 61 && (--dataLength, data.charCodeAt(dataLength - 1) === 61 && --dataLength), dataLength % 4 === 1 || /[^+/0-9A-Za-z]/.test(data.length === dataLength ? data : data.substring(0, dataLength))) return "failure"; - let buffer = Buffer.from(data, "base64"); - return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength); + let buffer3 = Buffer.from(data, "base64"); + return new Uint8Array(buffer3.buffer, buffer3.byteOffset, buffer3.byteLength); } function collectAnHTTPQuotedString(input, position, extractValue) { let positionStart = position.position, value = ""; - for (assert(input[position.position] === '"'), position.position++; value += collectASequenceOfCodePoints( + for (assert4(input[position.position] === '"'), position.position++; value += collectASequenceOfCodePoints( (char) => char !== '"' && char !== "\\", input, position @@ -2589,14 +2589,14 @@ var require_data_url = __commonJS({ } value += input[position.position], position.position++; } else { - assert(quoteOrBackslash === '"'); + assert4(quoteOrBackslash === '"'); break; } } return extractValue ? value : input.slice(positionStart, position.position); } function serializeAMimeType(mimeType) { - assert(mimeType !== "failure"); + assert4(mimeType !== "failure"); let { parameters, essence } = mimeType, serialization = essence; for (let [name, value] of parameters.entries()) serialization += ";", serialization += name, serialization += "=", HTTP_TOKEN_CODEPOINTS.test(value) || (value = value.replace(/(\\|")/g, "\\$1"), value = '"' + value, value += '"'), serialization += value; @@ -2681,26 +2681,26 @@ var require_data_url = __commonJS({ // node_modules/undici/lib/web/fetch/webidl.js var require_webidl = __commonJS({ - "node_modules/undici/lib/web/fetch/webidl.js"(exports, module) { + "node_modules/undici/lib/web/fetch/webidl.js"(exports2, module) { "use strict"; - var { types, inspect } = __require("node:util"), { markAsUncloneable } = __require("node:worker_threads"), { toUSVString } = require_util(), webidl = {}; + var { types, inspect: inspect2 } = __require("node:util"), { markAsUncloneable } = __require("node:worker_threads"), { toUSVString } = require_util(), webidl = {}; webidl.converters = {}; webidl.util = {}; webidl.errors = {}; webidl.errors.exception = function(message) { return new TypeError(`${message.header}: ${message.message}`); }; - webidl.errors.conversionFailed = function(context) { - let plural = context.types.length === 1 ? "" : " one of", message = `${context.argument} could not be converted to${plural}: ${context.types.join(", ")}.`; + webidl.errors.conversionFailed = function(context3) { + let plural = context3.types.length === 1 ? "" : " one of", message = `${context3.argument} could not be converted to${plural}: ${context3.types.join(", ")}.`; return webidl.errors.exception({ - header: context.prefix, + header: context3.prefix, message }); }; - webidl.errors.invalidArgument = function(context) { + webidl.errors.invalidArgument = function(context3) { return webidl.errors.exception({ - header: context.prefix, - message: `"${context.value}" is an invalid ${context.type}.` + header: context3.prefix, + message: `"${context3.value}" is an invalid ${context3.type}.` }); }; webidl.brandCheck = function(V, I, opts) { @@ -2776,7 +2776,7 @@ var require_webidl = __commonJS({ case "Symbol": return `Symbol(${V.description})`; case "Object": - return inspect(V); + return inspect2(V); case "String": return `"${V}"`; default: @@ -2784,39 +2784,39 @@ var require_webidl = __commonJS({ } }; webidl.sequenceConverter = function(converter) { - return (V, prefix, argument, Iterable) => { + return (V, prefix2, argument, Iterable) => { if (webidl.util.Type(V) !== "Object") throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: `${argument} (${webidl.util.Stringify(V)}) is not iterable.` }); let method = typeof Iterable == "function" ? Iterable() : V?.[Symbol.iterator]?.(), seq = [], index = 0; if (method === void 0 || typeof method.next != "function") throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: `${argument} is not iterable.` }); for (; ; ) { let { done, value } = method.next(); if (done) break; - seq.push(converter(value, prefix, `${argument}[${index++}]`)); + seq.push(converter(value, prefix2, `${argument}[${index++}]`)); } return seq; }; }; webidl.recordConverter = function(keyConverter, valueConverter) { - return (O, prefix, argument) => { + return (O, prefix2, argument) => { if (webidl.util.Type(O) !== "Object") throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: `${argument} ("${webidl.util.Type(O)}") is not an Object.` }); let result = {}; if (!types.isProxy(O)) { let keys2 = [...Object.getOwnPropertyNames(O), ...Object.getOwnPropertySymbols(O)]; for (let key of keys2) { - let typedKey = keyConverter(key, prefix, argument), typedValue = valueConverter(O[key], prefix, argument); + let typedKey = keyConverter(key, prefix2, argument), typedValue = valueConverter(O[key], prefix2, argument); result[typedKey] = typedValue; } return result; @@ -2824,44 +2824,44 @@ var require_webidl = __commonJS({ let keys = Reflect.ownKeys(O); for (let key of keys) if (Reflect.getOwnPropertyDescriptor(O, key)?.enumerable) { - let typedKey = keyConverter(key, prefix, argument), typedValue = valueConverter(O[key], prefix, argument); + let typedKey = keyConverter(key, prefix2, argument), typedValue = valueConverter(O[key], prefix2, argument); result[typedKey] = typedValue; } return result; }; }; webidl.interfaceConverter = function(i) { - return (V, prefix, argument, opts) => { + return (V, prefix2, argument, opts) => { if (opts?.strict !== !1 && !(V instanceof i)) throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: `Expected ${argument} ("${webidl.util.Stringify(V)}") to be an instance of ${i.name}.` }); return V; }; }; webidl.dictionaryConverter = function(converters) { - return (dictionary, prefix, argument) => { + return (dictionary, prefix2, argument) => { let type = webidl.util.Type(dictionary), dict = {}; if (type === "Null" || type === "Undefined") return dict; if (type !== "Object") throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` }); for (let options of converters) { let { key, defaultValue, required, converter } = options; if (required === !0 && !Object.hasOwn(dictionary, key)) throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: `Missing required key "${key}".` }); let value = dictionary[key], hasDefault = Object.hasOwn(options, "defaultValue"); if (hasDefault && value !== null && (value ??= defaultValue()), required || hasDefault || value !== void 0) { - if (value = converter(value, prefix, `${argument}.${key}`), options.allowedValues && !options.allowedValues.includes(value)) + if (value = converter(value, prefix2, `${argument}.${key}`), options.allowedValues && !options.allowedValues.includes(value)) throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(", ")}.` }); dict[key] = value; @@ -2871,20 +2871,20 @@ var require_webidl = __commonJS({ }; }; webidl.nullableConverter = function(converter) { - return (V, prefix, argument) => V === null ? V : converter(V, prefix, argument); + return (V, prefix2, argument) => V === null ? V : converter(V, prefix2, argument); }; - webidl.converters.DOMString = function(V, prefix, argument, opts) { + webidl.converters.DOMString = function(V, prefix2, argument, opts) { if (V === null && opts?.legacyNullToEmptyString) return ""; if (typeof V == "symbol") throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: `${argument} is a symbol, which cannot be converted to a DOMString.` }); return String(V); }; - webidl.converters.ByteString = function(V, prefix, argument) { - let x = webidl.converters.DOMString(V, prefix, argument); + webidl.converters.ByteString = function(V, prefix2, argument) { + let x = webidl.converters.DOMString(V, prefix2, argument); for (let index = 0; index < x.length; index++) if (x.charCodeAt(index) > 255) throw new TypeError( @@ -2899,22 +2899,22 @@ var require_webidl = __commonJS({ webidl.converters.any = function(V) { return V; }; - webidl.converters["long long"] = function(V, prefix, argument) { - return webidl.util.ConvertToInt(V, 64, "signed", void 0, prefix, argument); + webidl.converters["long long"] = function(V, prefix2, argument) { + return webidl.util.ConvertToInt(V, 64, "signed", void 0, prefix2, argument); }; - webidl.converters["unsigned long long"] = function(V, prefix, argument) { - return webidl.util.ConvertToInt(V, 64, "unsigned", void 0, prefix, argument); + webidl.converters["unsigned long long"] = function(V, prefix2, argument) { + return webidl.util.ConvertToInt(V, 64, "unsigned", void 0, prefix2, argument); }; - webidl.converters["unsigned long"] = function(V, prefix, argument) { - return webidl.util.ConvertToInt(V, 32, "unsigned", void 0, prefix, argument); + webidl.converters["unsigned long"] = function(V, prefix2, argument) { + return webidl.util.ConvertToInt(V, 32, "unsigned", void 0, prefix2, argument); }; - webidl.converters["unsigned short"] = function(V, prefix, argument, opts) { - return webidl.util.ConvertToInt(V, 16, "unsigned", opts, prefix, argument); + webidl.converters["unsigned short"] = function(V, prefix2, argument, opts) { + return webidl.util.ConvertToInt(V, 16, "unsigned", opts, prefix2, argument); }; - webidl.converters.ArrayBuffer = function(V, prefix, argument, opts) { + webidl.converters.ArrayBuffer = function(V, prefix2, argument, opts) { if (webidl.util.Type(V) !== "Object" || !types.isAnyArrayBuffer(V)) throw webidl.errors.conversionFailed({ - prefix, + prefix: prefix2, argument: `${argument} ("${webidl.util.Stringify(V)}")`, types: ["ArrayBuffer"] }); @@ -2930,10 +2930,10 @@ var require_webidl = __commonJS({ }); return V; }; - webidl.converters.TypedArray = function(V, T, prefix, name, opts) { + webidl.converters.TypedArray = function(V, T, prefix2, name, opts) { if (webidl.util.Type(V) !== "Object" || !types.isTypedArray(V) || V.constructor.name !== T.name) throw webidl.errors.conversionFailed({ - prefix, + prefix: prefix2, argument: `${name} ("${webidl.util.Stringify(V)}")`, types: [T.name] }); @@ -2949,10 +2949,10 @@ var require_webidl = __commonJS({ }); return V; }; - webidl.converters.DataView = function(V, prefix, name, opts) { + webidl.converters.DataView = function(V, prefix2, name, opts) { if (webidl.util.Type(V) !== "Object" || !types.isDataView(V)) throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: `${name} is not a DataView.` }); if (opts?.allowShared === !1 && types.isSharedArrayBuffer(V.buffer)) @@ -2967,15 +2967,15 @@ var require_webidl = __commonJS({ }); return V; }; - webidl.converters.BufferSource = function(V, prefix, name, opts) { + webidl.converters.BufferSource = function(V, prefix2, name, opts) { if (types.isAnyArrayBuffer(V)) - return webidl.converters.ArrayBuffer(V, prefix, name, { ...opts, allowShared: !1 }); + return webidl.converters.ArrayBuffer(V, prefix2, name, { ...opts, allowShared: !1 }); if (types.isTypedArray(V)) - return webidl.converters.TypedArray(V, V.constructor, prefix, name, { ...opts, allowShared: !1 }); + return webidl.converters.TypedArray(V, V.constructor, prefix2, name, { ...opts, allowShared: !1 }); if (types.isDataView(V)) - return webidl.converters.DataView(V, prefix, name, { ...opts, allowShared: !1 }); + return webidl.converters.DataView(V, prefix2, name, { ...opts, allowShared: !1 }); throw webidl.errors.conversionFailed({ - prefix, + prefix: prefix2, argument: `${name} ("${webidl.util.Stringify(V)}")`, types: ["BufferSource"] }); @@ -2998,13 +2998,13 @@ var require_webidl = __commonJS({ // node_modules/undici/lib/web/fetch/util.js var require_util2 = __commonJS({ - "node_modules/undici/lib/web/fetch/util.js"(exports, module) { + "node_modules/undici/lib/web/fetch/util.js"(exports2, module) { "use strict"; - var { Transform } = __require("node:stream"), zlib = __require("node:zlib"), { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require_constants3(), { getGlobalOrigin } = require_global(), { collectASequenceOfCodePoints, collectAnHTTPQuotedString, removeChars, parseMIMEType } = require_data_url(), { performance: performance2 } = __require("node:perf_hooks"), { isBlobLike, ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = require_util(), assert = __require("node:assert"), { isUint8Array } = __require("node:util/types"), { webidl } = require_webidl(), supportedHashes = [], crypto2; + var { Transform: Transform2 } = __require("node:stream"), zlib2 = __require("node:zlib"), { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = require_constants3(), { getGlobalOrigin } = require_global(), { collectASequenceOfCodePoints, collectAnHTTPQuotedString, removeChars, parseMIMEType } = require_data_url(), { performance: performance2 } = __require("node:perf_hooks"), { isBlobLike, ReadableStreamFrom, isValidHTTPToken, normalizedMethodRecordsBase } = require_util(), assert4 = __require("node:assert"), { isUint8Array } = __require("node:util/types"), { webidl } = require_webidl(), supportedHashes = [], crypto4; try { - crypto2 = __require("node:crypto"); + crypto4 = __require("node:crypto"); let possibleRelevantHashes = ["sha256", "sha384", "sha512"]; - supportedHashes = crypto2.getHashes().filter((hash) => possibleRelevantHashes.includes(hash)); + supportedHashes = crypto4.getHashes().filter((hash) => possibleRelevantHashes.includes(hash)); } catch { } function responseURL(response) { @@ -3017,9 +3017,9 @@ var require_util2 = __commonJS({ let location = response.headersList.get("location", !0); return location !== null && isValidHeaderValue(location) && (isValidEncodedURL(location) || (location = normalizeBinaryStringToUtf8(location)), location = new URL(location, responseURL(response))), location && !location.hash && (location.hash = requestFragment), location; } - function isValidEncodedURL(url) { - for (let i = 0; i < url.length; ++i) { - let code = url.charCodeAt(i); + function isValidEncodedURL(url2) { + for (let i = 0; i < url2.length; ++i) { + let code = url2.charCodeAt(i); if (code > 126 || // Non-US-ASCII + DEL code < 32) return !1; @@ -3033,8 +3033,8 @@ var require_util2 = __commonJS({ return request.urlList[request.urlList.length - 1]; } function requestBadPort(request) { - let url = requestCurrentURL(request); - return urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port) ? "blocked" : "allowed"; + let url2 = requestCurrentURL(request); + return urlIsHttpHttpsScheme(url2) && badPortsSet.has(url2.port) ? "blocked" : "allowed"; } function isErrorLike(object) { return object instanceof Error || object?.constructor?.name === "Error" || object?.constructor?.name === "DOMException"; @@ -3153,7 +3153,7 @@ var require_util2 = __commonJS({ } function determineRequestsReferrer(request) { let policy = request.referrerPolicy; - assert(policy); + assert4(policy); let referrerSource = null; if (request.referrer === "client") { let globalOrigin = getGlobalOrigin(); @@ -3188,14 +3188,14 @@ var require_util2 = __commonJS({ return isNonPotentiallyTrustWorthy ? "no-referrer" : referrerOrigin; } } - function stripURLForReferrer(url, originOnly) { - return assert(url instanceof URL), url = new URL(url), url.protocol === "file:" || url.protocol === "about:" || url.protocol === "blank:" ? "no-referrer" : (url.username = "", url.password = "", url.hash = "", originOnly && (url.pathname = "", url.search = ""), url); + function stripURLForReferrer(url2, originOnly) { + return assert4(url2 instanceof URL), url2 = new URL(url2), url2.protocol === "file:" || url2.protocol === "about:" || url2.protocol === "blank:" ? "no-referrer" : (url2.username = "", url2.password = "", url2.hash = "", originOnly && (url2.pathname = "", url2.search = ""), url2); } - function isURLPotentiallyTrustworthy(url) { - if (!(url instanceof URL)) + function isURLPotentiallyTrustworthy(url2) { + if (!(url2 instanceof URL)) return !1; - if (url.href === "about:blank" || url.href === "about:srcdoc" || url.protocol === "data:" || url.protocol === "file:") return !0; - return isOriginPotentiallyTrustworthy(url.origin); + if (url2.href === "about:blank" || url2.href === "about:srcdoc" || url2.protocol === "data:" || url2.protocol === "file:") return !0; + return isOriginPotentiallyTrustworthy(url2.origin); function isOriginPotentiallyTrustworthy(origin) { if (origin == null || origin === "null") return !1; let originAsURL = new URL(origin); @@ -3203,23 +3203,23 @@ var require_util2 = __commonJS({ } } function bytesMatch(bytes, metadataList) { - if (crypto2 === void 0) + if (crypto4 === void 0) return !0; let parsedMetadata = parseMetadata(metadataList); if (parsedMetadata === "no metadata" || parsedMetadata.length === 0) return !0; - let strongest = getStrongestMetadata(parsedMetadata), metadata = filterMetadataListByAlgorithm(parsedMetadata, strongest); - for (let item of metadata) { - let algorithm = item.algo, expectedValue = item.hash, actualValue = crypto2.createHash(algorithm).update(bytes).digest("base64"); + let strongest = getStrongestMetadata(parsedMetadata), metadata2 = filterMetadataListByAlgorithm(parsedMetadata, strongest); + for (let item of metadata2) { + let algorithm = item.algo, expectedValue = item.hash, actualValue = crypto4.createHash(algorithm).update(bytes).digest("base64"); if (actualValue[actualValue.length - 1] === "=" && (actualValue[actualValue.length - 2] === "=" ? actualValue = actualValue.slice(0, -2) : actualValue = actualValue.slice(0, -1)), compareBase64Mixed(actualValue, expectedValue)) return !0; } return !1; } var parseHashWithOptions = /(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i; - function parseMetadata(metadata) { + function parseMetadata(metadata2) { let result = [], empty = !0; - for (let token of metadata.split(" ")) { + for (let token of metadata2.split(" ")) { empty = !1; let parsedToken = parseHashWithOptions.exec(token); if (parsedToken === null || parsedToken.groups === void 0 || parsedToken.groups.algo === void 0) @@ -3234,14 +3234,14 @@ var require_util2 = __commonJS({ if (algorithm[3] === "5") return algorithm; for (let i = 1; i < metadataList.length; ++i) { - let metadata = metadataList[i]; - if (metadata.algo[3] === "5") { + let metadata2 = metadataList[i]; + if (metadata2.algo[3] === "5") { algorithm = "sha512"; break; } else { if (algorithm[3] === "3") continue; - metadata.algo[3] === "3" && (algorithm = "sha384"); + metadata2.algo[3] === "3" && (algorithm = "sha384"); } } return algorithm; @@ -3289,7 +3289,7 @@ var require_util2 = __commonJS({ let result = JSON.stringify(value); if (result === void 0) throw new TypeError("Value is not JSON serializable"); - return assert(typeof result == "string"), result; + return assert4(typeof result == "string"), result; } var esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())); function createIterator(name, kInternalIterator, keyIndex = 0, valueIndex = 1) { @@ -3401,10 +3401,10 @@ var require_util2 = __commonJS({ } }); } - async function fullyReadBody(body, processBody, processBodyError) { + async function fullyReadBody(body2, processBody, processBodyError) { let successSteps = processBody, errorSteps = processBodyError, reader; try { - reader = body.stream.getReader(); + reader = body2.stream.getReader(); } catch (e) { errorSteps(e); return; @@ -3415,8 +3415,8 @@ var require_util2 = __commonJS({ errorSteps(e); } } - function isReadableStreamLike(stream) { - return stream instanceof ReadableStream || stream[Symbol.toStringTag] === "ReadableStream" && typeof stream.tee == "function"; + function isReadableStreamLike(stream3) { + return stream3 instanceof ReadableStream || stream3[Symbol.toStringTag] === "ReadableStream" && typeof stream3.tee == "function"; } function readableStreamClose(controller) { try { @@ -3428,7 +3428,7 @@ var require_util2 = __commonJS({ } var invalidIsomorphicEncodeValueRegex = /[^\x00-\xFF]/; function isomorphicEncode(input) { - return assert(!invalidIsomorphicEncodeValueRegex.test(input)), input; + return assert4(!invalidIsomorphicEncodeValueRegex.test(input)), input; } async function readAllBytes(reader) { let bytes = [], byteLength = 0; @@ -3441,17 +3441,17 @@ var require_util2 = __commonJS({ bytes.push(chunk), byteLength += chunk.length; } } - function urlIsLocal(url) { - assert("protocol" in url); - let protocol = url.protocol; + function urlIsLocal(url2) { + assert4("protocol" in url2); + let protocol = url2.protocol; return protocol === "about:" || protocol === "blob:" || protocol === "data:"; } - function urlHasHttpsScheme(url) { - return typeof url == "string" && url[5] === ":" && url[0] === "h" && url[1] === "t" && url[2] === "t" && url[3] === "p" && url[4] === "s" || url.protocol === "https:"; + function urlHasHttpsScheme(url2) { + return typeof url2 == "string" && url2[5] === ":" && url2[0] === "h" && url2[1] === "t" && url2[2] === "t" && url2[3] === "p" && url2[4] === "s" || url2.protocol === "https:"; } - function urlIsHttpHttpsScheme(url) { - assert("protocol" in url); - let protocol = url.protocol; + function urlIsHttpHttpsScheme(url2) { + assert4("protocol" in url2); + let protocol = url2.protocol; return protocol === "http:" || protocol === "https:"; } function simpleRangeHeaderValue(value, allowWhitespace) { @@ -3503,7 +3503,7 @@ var require_util2 = __commonJS({ let contentRange = "bytes "; return contentRange += isomorphicEncode(`${rangeStart}`), contentRange += "-", contentRange += isomorphicEncode(`${rangeEnd}`), contentRange += "/", contentRange += isomorphicEncode(`${fullLength}`), contentRange; } - var InflateStream = class extends Transform { + var InflateStream = class extends Transform2 { #zlibOptions; /** @param {zlib.ZlibOptions} [zlibOptions] */ constructor(zlibOptions) { @@ -3515,7 +3515,7 @@ var require_util2 = __commonJS({ callback(); return; } - this._inflateStream = (chunk[0] & 15) === 8 ? zlib.createInflate(this.#zlibOptions) : zlib.createInflateRaw(this.#zlibOptions), this._inflateStream.on("data", this.push.bind(this)), this._inflateStream.on("end", () => this.push(null)), this._inflateStream.on("error", (err) => this.destroy(err)); + this._inflateStream = (chunk[0] & 15) === 8 ? zlib2.createInflate(this.#zlibOptions) : zlib2.createInflateRaw(this.#zlibOptions), this._inflateStream.on("data", this.push.bind(this)), this._inflateStream.on("end", () => this.push(null)), this._inflateStream.on("error", (err) => this.destroy(err)); } this._inflateStream.write(chunk, encoding, callback); } @@ -3551,7 +3551,7 @@ var require_util2 = __commonJS({ ), position.position < input.length) continue; } else - assert(input.charCodeAt(position.position) === 44), position.position++; + assert4(input.charCodeAt(position.position) === 44), position.position++; temporaryValue = removeChars(temporaryValue, !0, !0, (char) => char === 9 || char === 32), values.push(temporaryValue), temporaryValue = ""; } return values; @@ -3561,8 +3561,8 @@ var require_util2 = __commonJS({ return value === null ? null : gettingDecodingSplitting(value); } var textDecoder = new TextDecoder(); - function utf8DecodeBytes(buffer) { - return buffer.length === 0 ? "" : (buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191 && (buffer = buffer.subarray(3)), textDecoder.decode(buffer)); + function utf8DecodeBytes(buffer3) { + return buffer3.length === 0 ? "" : (buffer3[0] === 239 && buffer3[1] === 187 && buffer3[2] === 191 && (buffer3 = buffer3.subarray(3)), textDecoder.decode(buffer3)); } var EnvironmentSettingsObjectBase = class { get baseUrl() { @@ -3633,7 +3633,7 @@ var require_util2 = __commonJS({ // node_modules/undici/lib/web/fetch/symbols.js var require_symbols2 = __commonJS({ - "node_modules/undici/lib/web/fetch/symbols.js"(exports, module) { + "node_modules/undici/lib/web/fetch/symbols.js"(exports2, module) { "use strict"; module.exports = { kUrl: /* @__PURE__ */ Symbol("url"), @@ -3647,9 +3647,9 @@ var require_symbols2 = __commonJS({ // node_modules/undici/lib/web/fetch/file.js var require_file = __commonJS({ - "node_modules/undici/lib/web/fetch/file.js"(exports, module) { + "node_modules/undici/lib/web/fetch/file.js"(exports2, module) { "use strict"; - var { Blob: Blob2, File } = __require("node:buffer"), { kState } = require_symbols2(), { webidl } = require_webidl(), FileLike = class _FileLike { + var { Blob: Blob2, File: File2 } = __require("node:buffer"), { kState } = require_symbols2(), { webidl } = require_webidl(), FileLike = class _FileLike { constructor(blobLike, fileName, options = {}) { let n = fileName, t = options.type, d = options.lastModified ?? Date.now(); this[kState] = { @@ -3689,7 +3689,7 @@ var require_file = __commonJS({ }; webidl.converters.Blob = webidl.interfaceConverter(Blob2); function isFileLike(object) { - return object instanceof File || object && (typeof object.stream == "function" || typeof object.arrayBuffer == "function") && object[Symbol.toStringTag] === "File"; + return object instanceof File2 || object && (typeof object.stream == "function" || typeof object.arrayBuffer == "function") && object[Symbol.toStringTag] === "File"; } module.exports = { FileLike, isFileLike }; } @@ -3697,9 +3697,9 @@ var require_file = __commonJS({ // node_modules/undici/lib/web/fetch/formdata.js var require_formdata = __commonJS({ - "node_modules/undici/lib/web/fetch/formdata.js"(exports, module) { + "node_modules/undici/lib/web/fetch/formdata.js"(exports2, module) { "use strict"; - var { isBlobLike, iteratorMixin } = require_util2(), { kState } = require_symbols2(), { kEnumerableProperty } = require_util(), { FileLike, isFileLike } = require_file(), { webidl } = require_webidl(), { File: NativeFile } = __require("node:buffer"), nodeUtil = __require("node:util"), File = globalThis.File ?? NativeFile, FormData = class _FormData { + var { isBlobLike, iteratorMixin } = require_util2(), { kState } = require_symbols2(), { kEnumerableProperty } = require_util(), { FileLike, isFileLike } = require_file(), { webidl } = require_webidl(), { File: NativeFile } = __require("node:buffer"), nodeUtil = __require("node:util"), File2 = globalThis.File ?? NativeFile, FormData2 = class _FormData { constructor(form) { if (webidl.util.markAsUncloneable(this), form !== void 0) throw webidl.errors.conversionFailed({ @@ -3711,45 +3711,45 @@ var require_formdata = __commonJS({ } append(name, value, filename = void 0) { webidl.brandCheck(this, _FormData); - let prefix = "FormData.append"; - if (webidl.argumentLengthCheck(arguments, 2, prefix), arguments.length === 3 && !isBlobLike(value)) + let prefix2 = "FormData.append"; + if (webidl.argumentLengthCheck(arguments, 2, prefix2), arguments.length === 3 && !isBlobLike(value)) throw new TypeError( "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" ); - name = webidl.converters.USVString(name, prefix, "name"), value = isBlobLike(value) ? webidl.converters.Blob(value, prefix, "value", { strict: !1 }) : webidl.converters.USVString(value, prefix, "value"), filename = arguments.length === 3 ? webidl.converters.USVString(filename, prefix, "filename") : void 0; + name = webidl.converters.USVString(name, prefix2, "name"), value = isBlobLike(value) ? webidl.converters.Blob(value, prefix2, "value", { strict: !1 }) : webidl.converters.USVString(value, prefix2, "value"), filename = arguments.length === 3 ? webidl.converters.USVString(filename, prefix2, "filename") : void 0; let entry = makeEntry(name, value, filename); this[kState].push(entry); } delete(name) { webidl.brandCheck(this, _FormData); - let prefix = "FormData.delete"; - webidl.argumentLengthCheck(arguments, 1, prefix), name = webidl.converters.USVString(name, prefix, "name"), this[kState] = this[kState].filter((entry) => entry.name !== name); + let prefix2 = "FormData.delete"; + webidl.argumentLengthCheck(arguments, 1, prefix2), name = webidl.converters.USVString(name, prefix2, "name"), this[kState] = this[kState].filter((entry) => entry.name !== name); } get(name) { webidl.brandCheck(this, _FormData); - let prefix = "FormData.get"; - webidl.argumentLengthCheck(arguments, 1, prefix), name = webidl.converters.USVString(name, prefix, "name"); + let prefix2 = "FormData.get"; + webidl.argumentLengthCheck(arguments, 1, prefix2), name = webidl.converters.USVString(name, prefix2, "name"); let idx = this[kState].findIndex((entry) => entry.name === name); return idx === -1 ? null : this[kState][idx].value; } getAll(name) { webidl.brandCheck(this, _FormData); - let prefix = "FormData.getAll"; - return webidl.argumentLengthCheck(arguments, 1, prefix), name = webidl.converters.USVString(name, prefix, "name"), this[kState].filter((entry) => entry.name === name).map((entry) => entry.value); + let prefix2 = "FormData.getAll"; + return webidl.argumentLengthCheck(arguments, 1, prefix2), name = webidl.converters.USVString(name, prefix2, "name"), this[kState].filter((entry) => entry.name === name).map((entry) => entry.value); } has(name) { webidl.brandCheck(this, _FormData); - let prefix = "FormData.has"; - return webidl.argumentLengthCheck(arguments, 1, prefix), name = webidl.converters.USVString(name, prefix, "name"), this[kState].findIndex((entry) => entry.name === name) !== -1; + let prefix2 = "FormData.has"; + return webidl.argumentLengthCheck(arguments, 1, prefix2), name = webidl.converters.USVString(name, prefix2, "name"), this[kState].findIndex((entry) => entry.name === name) !== -1; } set(name, value, filename = void 0) { webidl.brandCheck(this, _FormData); - let prefix = "FormData.set"; - if (webidl.argumentLengthCheck(arguments, 2, prefix), arguments.length === 3 && !isBlobLike(value)) + let prefix2 = "FormData.set"; + if (webidl.argumentLengthCheck(arguments, 2, prefix2), arguments.length === 3 && !isBlobLike(value)) throw new TypeError( "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" ); - name = webidl.converters.USVString(name, prefix, "name"), value = isBlobLike(value) ? webidl.converters.Blob(value, prefix, "name", { strict: !1 }) : webidl.converters.USVString(value, prefix, "name"), filename = arguments.length === 3 ? webidl.converters.USVString(filename, prefix, "name") : void 0; + name = webidl.converters.USVString(name, prefix2, "name"), value = isBlobLike(value) ? webidl.converters.Blob(value, prefix2, "name", { strict: !1 }) : webidl.converters.USVString(value, prefix2, "name"), filename = arguments.length === 3 ? webidl.converters.USVString(filename, prefix2, "name") : void 0; let entry = makeEntry(name, value, filename), idx = this[kState].findIndex((entry2) => entry2.name === name); idx !== -1 ? this[kState] = [ ...this[kState].slice(0, idx), @@ -3758,14 +3758,14 @@ var require_formdata = __commonJS({ ] : this[kState].push(entry); } [nodeUtil.inspect.custom](depth, options) { - let state = this[kState].reduce((a, b) => (a[b.name] ? Array.isArray(a[b.name]) ? a[b.name].push(b.value) : a[b.name] = [a[b.name], b.value] : a[b.name] = b.value, a), { __proto__: null }); + let state3 = this[kState].reduce((a, b) => (a[b.name] ? Array.isArray(a[b.name]) ? a[b.name].push(b.value) : a[b.name] = [a[b.name], b.value] : a[b.name] = b.value, a), { __proto__: null }); options.depth ??= depth, options.colors ??= !0; - let output = nodeUtil.formatWithOptions(options, state); + let output = nodeUtil.formatWithOptions(options, state3); return `FormData ${output.slice(output.indexOf("]") + 2)}`; } }; - iteratorMixin("FormData", FormData, kState, "name", "value"); - Object.defineProperties(FormData.prototype, { + iteratorMixin("FormData", FormData2, kState, "name", "value"); + Object.defineProperties(FormData2.prototype, { append: kEnumerableProperty, delete: kEnumerableProperty, get: kEnumerableProperty, @@ -3779,25 +3779,25 @@ var require_formdata = __commonJS({ }); function makeEntry(name, value, filename) { if (typeof value != "string") { - if (isFileLike(value) || (value = value instanceof Blob ? new File([value], "blob", { type: value.type }) : new FileLike(value, "blob", { type: value.type })), filename !== void 0) { + if (isFileLike(value) || (value = value instanceof Blob ? new File2([value], "blob", { type: value.type }) : new FileLike(value, "blob", { type: value.type })), filename !== void 0) { let options = { type: value.type, lastModified: value.lastModified }; - value = value instanceof NativeFile ? new File([value], filename, options) : new FileLike(value, filename, options); + value = value instanceof NativeFile ? new File2([value], filename, options) : new FileLike(value, filename, options); } } return { name, value }; } - module.exports = { FormData, makeEntry }; + module.exports = { FormData: FormData2, makeEntry }; } }); // node_modules/undici/lib/web/fetch/formdata-parser.js var require_formdata_parser = __commonJS({ - "node_modules/undici/lib/web/fetch/formdata-parser.js"(exports, module) { + "node_modules/undici/lib/web/fetch/formdata-parser.js"(exports2, module) { "use strict"; - var { isUSVString, bufferToLowerCasedHeaderName } = require_util(), { utf8DecodeBytes } = require_util2(), { HTTP_TOKEN_CODEPOINTS, isomorphicDecode } = require_data_url(), { isFileLike } = require_file(), { makeEntry } = require_formdata(), assert = __require("node:assert"), { File: NodeFile } = __require("node:buffer"), File = globalThis.File ?? NodeFile, formDataNameBuffer = Buffer.from('form-data; name="'), filenameBuffer = Buffer.from("; filename"), dd = Buffer.from("--"), ddcrlf = Buffer.from(`--\r + var { isUSVString, bufferToLowerCasedHeaderName } = require_util(), { utf8DecodeBytes } = require_util2(), { HTTP_TOKEN_CODEPOINTS, isomorphicDecode } = require_data_url(), { isFileLike } = require_file(), { makeEntry } = require_formdata(), assert4 = __require("node:assert"), { File: NodeFile } = __require("node:buffer"), File2 = globalThis.File ?? NodeFile, formDataNameBuffer = Buffer.from('form-data; name="'), filenameBuffer = Buffer.from("; filename"), dd = Buffer.from("--"), ddcrlf = Buffer.from(`--\r `); function isAsciiString(chars) { for (let i = 0; i < chars.length; ++i) @@ -3817,7 +3817,7 @@ var require_formdata_parser = __commonJS({ return !0; } function multipartFormDataParser(input, mimeType) { - assert(mimeType !== "failure" && mimeType.essence === "multipart/form-data"); + assert4(mimeType !== "failure" && mimeType.essence === "multipart/form-data"); let boundaryString = mimeType.parameters.get("boundary"); if (boundaryString === void 0) return "failure"; @@ -3840,27 +3840,27 @@ var require_formdata_parser = __commonJS({ let result = parseMultipartFormDataHeaders(input, position); if (result === "failure") return "failure"; - let { name, filename, contentType, encoding } = result; + let { name, filename, contentType: contentType2, encoding } = result; position.position += 2; - let body; + let body2; { let boundaryIndex = input.indexOf(boundary.subarray(2), position.position); if (boundaryIndex === -1) return "failure"; - body = input.subarray(position.position, boundaryIndex - 4), position.position += body.length, encoding === "base64" && (body = Buffer.from(body.toString(), "base64")); + body2 = input.subarray(position.position, boundaryIndex - 4), position.position += body2.length, encoding === "base64" && (body2 = Buffer.from(body2.toString(), "base64")); } if (input[position.position] !== 13 || input[position.position + 1] !== 10) return "failure"; position.position += 2; let value; - filename !== null ? (contentType ??= "text/plain", isAsciiString(contentType) || (contentType = ""), value = new File([body], filename, { type: contentType })) : value = utf8DecodeBytes(Buffer.from(body)), assert(isUSVString(name)), assert(typeof value == "string" && isUSVString(value) || isFileLike(value)), entryList.push(makeEntry(name, value, filename)); + filename !== null ? (contentType2 ??= "text/plain", isAsciiString(contentType2) || (contentType2 = ""), value = new File2([body2], filename, { type: contentType2 })) : value = utf8DecodeBytes(Buffer.from(body2)), assert4(isUSVString(name)), assert4(typeof value == "string" && isUSVString(value) || isFileLike(value)), entryList.push(makeEntry(name, value, filename)); } } function parseMultipartFormDataHeaders(input, position) { - let name = null, filename = null, contentType = null, encoding = null; + let name = null, filename = null, contentType2 = null, encoding = null; for (; ; ) { if (input[position.position] === 13 && input[position.position + 1] === 10) - return name === null ? "failure" : { name, filename, contentType, encoding }; + return name === null ? "failure" : { name, filename, contentType: contentType2, encoding }; let headerName = collectASequenceOfBytes( (char) => char !== 10 && char !== 13 && char !== 58, input, @@ -3889,7 +3889,7 @@ var require_formdata_parser = __commonJS({ input, position ); - headerValue = removeChars(headerValue, !1, !0, (char) => char === 9 || char === 32), contentType = isomorphicDecode(headerValue); + headerValue = removeChars(headerValue, !1, !0, (char) => char === 9 || char === 32), contentType2 = isomorphicDecode(headerValue); break; } case "content-transfer-encoding": { @@ -3914,7 +3914,7 @@ var require_formdata_parser = __commonJS({ } } function parseMultipartFormDataName(input, position) { - assert(input[position.position - 1] === 34); + assert4(input[position.position - 1] === 34); let name = collectASequenceOfBytes( (char) => char !== 10 && char !== 13 && char !== 34, input, @@ -3937,11 +3937,11 @@ var require_formdata_parser = __commonJS({ for (; trail > 0 && predicate(buf[trail]); ) trail--; return lead === 0 && trail === buf.length - 1 ? buf : buf.subarray(lead, trail + 1); } - function bufferStartsWith(buffer, start, position) { - if (buffer.length < start.length) + function bufferStartsWith(buffer3, start, position) { + if (buffer3.length < start.length) return !1; for (let i = 0; i < start.length; i++) - if (start[i] !== buffer[position.position + i]) + if (start[i] !== buffer3[position.position + i]) return !1; return !0; } @@ -3954,9 +3954,9 @@ var require_formdata_parser = __commonJS({ // node_modules/undici/lib/web/fetch/body.js var require_body = __commonJS({ - "node_modules/undici/lib/web/fetch/body.js"(exports, module) { + "node_modules/undici/lib/web/fetch/body.js"(exports2, module) { "use strict"; - var util = require_util(), { + var util6 = require_util(), { ReadableStreamFrom, isBlobLike, isReadableStreamLike, @@ -3965,10 +3965,10 @@ var require_body = __commonJS({ fullyReadBody, extractMimeType, utf8DecodeBytes - } = require_util2(), { FormData } = require_formdata(), { kState } = require_symbols2(), { webidl } = require_webidl(), { Blob: Blob2 } = __require("node:buffer"), assert = __require("node:assert"), { isErrored, isDisturbed } = __require("node:stream"), { isArrayBuffer } = __require("node:util/types"), { serializeAMimeType } = require_data_url(), { multipartFormDataParser } = require_formdata_parser(), random; + } = require_util2(), { FormData: FormData2 } = require_formdata(), { kState } = require_symbols2(), { webidl } = require_webidl(), { Blob: Blob2 } = __require("node:buffer"), assert4 = __require("node:assert"), { isErrored, isDisturbed } = __require("node:stream"), { isArrayBuffer: isArrayBuffer2 } = __require("node:util/types"), { serializeAMimeType } = require_data_url(), { multipartFormDataParser } = require_formdata_parser(), random; try { - let crypto2 = __require("node:crypto"); - random = (max) => crypto2.randomInt(0, max); + let crypto4 = __require("node:crypto"); + random = (max) => crypto4.randomInt(0, max); } catch { random = (max) => Math.floor(Math.random(max)); } @@ -3977,46 +3977,46 @@ var require_body = __commonJS({ } var hasFinalizationRegistry = globalThis.FinalizationRegistry && process.version.indexOf("v18") !== 0, streamRegistry; hasFinalizationRegistry && (streamRegistry = new FinalizationRegistry((weakRef) => { - let stream = weakRef.deref(); - stream && !stream.locked && !isDisturbed(stream) && !isErrored(stream) && stream.cancel("Response object has been garbage collected").catch(noop); + let stream3 = weakRef.deref(); + stream3 && !stream3.locked && !isDisturbed(stream3) && !isErrored(stream3) && stream3.cancel("Response object has been garbage collected").catch(noop); })); function extractBody(object, keepalive = !1) { - let stream = null; - object instanceof ReadableStream ? stream = object : isBlobLike(object) ? stream = object.stream() : stream = new ReadableStream({ + let stream3 = null; + object instanceof ReadableStream ? stream3 = object : isBlobLike(object) ? stream3 = object.stream() : stream3 = new ReadableStream({ async pull(controller) { - let buffer = typeof source == "string" ? textEncoder.encode(source) : source; - buffer.byteLength && controller.enqueue(buffer), queueMicrotask(() => readableStreamClose(controller)); + let buffer3 = typeof source == "string" ? textEncoder.encode(source) : source; + buffer3.byteLength && controller.enqueue(buffer3), queueMicrotask(() => readableStreamClose(controller)); }, start() { }, type: "bytes" - }), assert(isReadableStreamLike(stream)); - let action = null, source = null, length = null, type = null; + }), assert4(isReadableStreamLike(stream3)); + let action5 = null, source = null, length = null, type = null; if (typeof object == "string") source = object, type = "text/plain;charset=UTF-8"; else if (object instanceof URLSearchParams) source = object.toString(), type = "application/x-www-form-urlencoded;charset=UTF-8"; - else if (isArrayBuffer(object)) + else if (isArrayBuffer2(object)) source = new Uint8Array(object.slice()); else if (ArrayBuffer.isView(object)) source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)); - else if (util.isFormDataLike(object)) { - let boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, "0")}`, prefix = `--${boundary}\r + else if (util6.isFormDataLike(object)) { + let boundary = `----formdata-undici-0${`${random(1e11)}`.padStart(11, "0")}`, prefix2 = `--${boundary}\r Content-Disposition: form-data`; /*! formdata-polyfill. MIT License. Jimmy Wärting */ - let escape = (str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"), normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, `\r + let escape2 = (str) => str.replace(/\n/g, "%0A").replace(/\r/g, "%0D").replace(/"/g, "%22"), normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, `\r `), blobParts = [], rn = new Uint8Array([13, 10]); length = 0; let hasUnknownSizeValue = !1; for (let [name, value] of object) if (typeof value == "string") { - let chunk2 = textEncoder.encode(prefix + `; name="${escape(normalizeLinefeeds(name))}"\r + let chunk2 = textEncoder.encode(prefix2 + `; name="${escape2(normalizeLinefeeds(name))}"\r \r ${normalizeLinefeeds(value)}\r `); blobParts.push(chunk2), length += chunk2.byteLength; } else { - let chunk2 = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + (value.name ? `; filename="${escape(value.name)}"` : "") + `\r + let chunk2 = textEncoder.encode(`${prefix2}; name="${escape2(normalizeLinefeeds(name))}"` + (value.name ? `; filename="${escape2(value.name)}"` : "") + `\r Content-Type: ${value.type || "application/octet-stream"}\r \r `); @@ -4024,7 +4024,7 @@ Content-Type: ${value.type || "application/octet-stream"}\r } let chunk = textEncoder.encode(`--${boundary}--\r `); - blobParts.push(chunk), length += chunk.byteLength, hasUnknownSizeValue && (length = null), source = object, action = async function* () { + blobParts.push(chunk), length += chunk.byteLength, hasUnknownSizeValue && (length = null), source = object, action5 = async function* () { for (let part of blobParts) part.stream ? yield* part.stream() : yield part; }, type = `multipart/form-data; boundary=${boundary}`; @@ -4033,17 +4033,17 @@ Content-Type: ${value.type || "application/octet-stream"}\r else if (typeof object[Symbol.asyncIterator] == "function") { if (keepalive) throw new TypeError("keepalive"); - if (util.isDisturbed(object) || object.locked) + if (util6.isDisturbed(object) || object.locked) throw new TypeError( "Response body object should not be disturbed or locked" ); - stream = object instanceof ReadableStream ? object : ReadableStreamFrom(object); + stream3 = object instanceof ReadableStream ? object : ReadableStreamFrom(object); } - if ((typeof source == "string" || util.isBuffer(source)) && (length = Buffer.byteLength(source)), action != null) { + if ((typeof source == "string" || util6.isBuffer(source)) && (length = Buffer.byteLength(source)), action5 != null) { let iterator; - stream = new ReadableStream({ + stream3 = new ReadableStream({ async start() { - iterator = action(object)[Symbol.asyncIterator](); + iterator = action5(object)[Symbol.asyncIterator](); }, async pull(controller) { let { value, done } = await iterator.next(); @@ -4051,9 +4051,9 @@ Content-Type: ${value.type || "application/octet-stream"}\r queueMicrotask(() => { controller.close(), controller.byobRequest?.respond(0); }); - else if (!isErrored(stream)) { - let buffer = new Uint8Array(value); - buffer.byteLength && controller.enqueue(buffer); + else if (!isErrored(stream3)) { + let buffer3 = new Uint8Array(value); + buffer3.byteLength && controller.enqueue(buffer3); } return controller.desiredSize > 0; }, @@ -4063,21 +4063,21 @@ Content-Type: ${value.type || "application/octet-stream"}\r type: "bytes" }); } - return [{ stream, source, length }, type]; + return [{ stream: stream3, source, length }, type]; } function safelyExtractBody(object, keepalive = !1) { - return object instanceof ReadableStream && (assert(!util.isDisturbed(object), "The body has already been consumed."), assert(!object.locked, "The stream is locked.")), extractBody(object, keepalive); + return object instanceof ReadableStream && (assert4(!util6.isDisturbed(object), "The body has already been consumed."), assert4(!object.locked, "The stream is locked.")), extractBody(object, keepalive); } - function cloneBody(instance, body) { - let [out1, out2] = body.stream.tee(); - return body.stream = out1, { + function cloneBody(instance, body2) { + let [out1, out2] = body2.stream.tee(); + return body2.stream = out1, { stream: out2, - length: body.length, - source: body.source + length: body2.length, + source: body2.source }; } - function throwIfAborted(state) { - if (state.aborted) + function throwIfAborted(state3) { + if (state3.aborted) throw new DOMException("The operation was aborted.", "AbortError"); } function bodyMixinMethods(instance) { @@ -4106,11 +4106,11 @@ Content-Type: ${value.type || "application/octet-stream"}\r let parsed = multipartFormDataParser(value, mimeType); if (parsed === "failure") throw new TypeError("Failed to parse body as FormData."); - let fd = new FormData(); + let fd = new FormData2(); return fd[kState] = parsed, fd; } case "application/x-www-form-urlencoded": { - let entries = new URLSearchParams(value.toString()), fd = new FormData(); + let entries = new URLSearchParams(value.toString()), fd = new FormData2(); for (let [name, value2] of entries) fd.append(name, value2); return fd; @@ -4133,7 +4133,7 @@ Content-Type: ${value.type || "application/octet-stream"}\r if (webidl.brandCheck(object, instance), bodyUnusable(object)) throw new TypeError("Body is unusable: Body has already been read"); throwIfAborted(object[kState]); - let promise = createDeferredPromise(), errorSteps = (error2) => promise.reject(error2), successSteps = (data) => { + let promise = createDeferredPromise(), errorSteps = (error3) => promise.reject(error3), successSteps = (data) => { try { promise.resolve(convertBytesToJSValue(data)); } catch (e) { @@ -4143,8 +4143,8 @@ Content-Type: ${value.type || "application/octet-stream"}\r return object[kState].body == null ? (successSteps(Buffer.allocUnsafe(0)), promise.promise) : (await fullyReadBody(object[kState].body, successSteps, errorSteps), promise.promise); } function bodyUnusable(object) { - let body = object[kState].body; - return body != null && (body.stream.locked || util.isDisturbed(body.stream)); + let body2 = object[kState].body; + return body2 != null && (body2.stream.locked || util6.isDisturbed(body2.stream)); } function parseJSONFromBytes(bytes) { return JSON.parse(utf8DecodeBytes(bytes)); @@ -4167,9 +4167,9 @@ Content-Type: ${value.type || "application/octet-stream"}\r // node_modules/undici/lib/dispatcher/client-h1.js var require_client_h1 = __commonJS({ - "node_modules/undici/lib/dispatcher/client-h1.js"(exports, module) { + "node_modules/undici/lib/dispatcher/client-h1.js"(exports2, module) { "use strict"; - var assert = __require("node:assert"), util = require_util(), { channels } = require_diagnostics(), timers = require_timers(), { + var assert4 = __require("node:assert"), util6 = require_util(), { channels } = require_diagnostics(), timers = require_timers(), { RequestContentLengthMismatchError, ResponseContentLengthMismatchError, RequestAbortedError, @@ -4212,7 +4212,7 @@ var require_client_h1 = __commonJS({ kOnError, kResume, kHTTPContext - } = require_symbols(), constants3 = require_constants2(), EMPTY_BUF = Buffer.alloc(0), FastBuffer = Buffer[Symbol.species], addListener = util.addListener, removeAllListeners = util.removeAllListeners, extractBody; + } = require_symbols(), constants5 = require_constants2(), EMPTY_BUF = Buffer.alloc(0), FastBuffer = Buffer[Symbol.species], addListener = util6.addListener, removeAllListeners = util6.removeAllListeners, extractBody; async function lazyllhttp() { let llhttpWasmData = process.env.JEST_WORKER_ID ? require_llhttp_wasm() : void 0, mod; try { @@ -4225,28 +4225,28 @@ var require_client_h1 = __commonJS({ /* eslint-disable camelcase */ wasm_on_url: (p, at, len) => 0, wasm_on_status: (p, at, len) => { - assert(currentParser.ptr === p); + assert4(currentParser.ptr === p); let start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, - wasm_on_message_begin: (p) => (assert(currentParser.ptr === p), currentParser.onMessageBegin() || 0), + wasm_on_message_begin: (p) => (assert4(currentParser.ptr === p), currentParser.onMessageBegin() || 0), wasm_on_header_field: (p, at, len) => { - assert(currentParser.ptr === p); + assert4(currentParser.ptr === p); let start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, wasm_on_header_value: (p, at, len) => { - assert(currentParser.ptr === p); + assert4(currentParser.ptr === p); let start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, - wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => (assert(currentParser.ptr === p), currentParser.onHeadersComplete(statusCode, !!upgrade, !!shouldKeepAlive) || 0), + wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => (assert4(currentParser.ptr === p), currentParser.onHeadersComplete(statusCode, !!upgrade, !!shouldKeepAlive) || 0), wasm_on_body: (p, at, len) => { - assert(currentParser.ptr === p); + assert4(currentParser.ptr === p); let start = at - currentBufferPtr + currentBufferRef.byteOffset; return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0; }, - wasm_on_message_complete: (p) => (assert(currentParser.ptr === p), currentParser.onMessageComplete() || 0) + wasm_on_message_complete: (p) => (assert4(currentParser.ptr === p), currentParser.onMessageComplete() || 0) /* eslint-enable camelcase */ } }); @@ -4254,14 +4254,14 @@ var require_client_h1 = __commonJS({ var llhttpInstance = null, llhttpPromise = lazyllhttp(); llhttpPromise.catch(); var currentParser = null, currentBufferRef = null, currentBufferSize = 0, currentBufferPtr = null, USE_NATIVE_TIMER = 0, USE_FAST_TIMER = 1, TIMEOUT_HEADERS = 2 | USE_FAST_TIMER, TIMEOUT_BODY = 4 | USE_FAST_TIMER, TIMEOUT_KEEP_ALIVE = 8 | USE_NATIVE_TIMER, Parser = class { - constructor(client, socket, { exports: exports2 }) { - assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0), this.llhttp = exports2, this.ptr = this.llhttp.llhttp_alloc(constants3.TYPE.RESPONSE), this.client = client, this.socket = socket, this.timeout = null, this.timeoutValue = null, this.timeoutType = null, this.statusCode = null, this.statusText = "", this.upgrade = !1, this.headers = [], this.headersSize = 0, this.headersMaxSize = client[kMaxHeadersSize], this.shouldKeepAlive = !1, this.paused = !1, this.resume = this.resume.bind(this), this.bytesRead = 0, this.keepAlive = "", this.contentLength = "", this.connection = "", this.maxResponseSize = client[kMaxResponseSize]; + constructor(client, socket, { exports: exports3 }) { + assert4(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0), this.llhttp = exports3, this.ptr = this.llhttp.llhttp_alloc(constants5.TYPE.RESPONSE), this.client = client, this.socket = socket, this.timeout = null, this.timeoutValue = null, this.timeoutType = null, this.statusCode = null, this.statusText = "", this.upgrade = !1, this.headers = [], this.headersSize = 0, this.headersMaxSize = client[kMaxHeadersSize], this.shouldKeepAlive = !1, this.paused = !1, this.resume = this.resume.bind(this), this.bytesRead = 0, this.keepAlive = "", this.contentLength = "", this.connection = "", this.maxResponseSize = client[kMaxResponseSize]; } - setTimeout(delay, type) { - delay !== this.timeoutValue || type & USE_FAST_TIMER ^ this.timeoutType & USE_FAST_TIMER ? (this.timeout && (timers.clearTimeout(this.timeout), this.timeout = null), delay && (type & USE_FAST_TIMER ? this.timeout = timers.setFastTimeout(onParserTimeout, delay, new WeakRef(this)) : (this.timeout = setTimeout(onParserTimeout, delay, new WeakRef(this)), this.timeout.unref())), this.timeoutValue = delay) : this.timeout && this.timeout.refresh && this.timeout.refresh(), this.timeoutType = type; + setTimeout(delay4, type) { + delay4 !== this.timeoutValue || type & USE_FAST_TIMER ^ this.timeoutType & USE_FAST_TIMER ? (this.timeout && (timers.clearTimeout(this.timeout), this.timeout = null), delay4 && (type & USE_FAST_TIMER ? this.timeout = timers.setFastTimeout(onParserTimeout, delay4, new WeakRef(this)) : (this.timeout = setTimeout(onParserTimeout, delay4, new WeakRef(this)), this.timeout.unref())), this.timeoutValue = delay4) : this.timeout && this.timeout.refresh && this.timeout.refresh(), this.timeoutType = type; } resume() { - this.socket.destroyed || !this.paused || (assert(this.ptr != null), assert(currentParser == null), this.llhttp.llhttp_resume(this.ptr), assert(this.timeoutType === TIMEOUT_BODY), this.timeout && this.timeout.refresh && this.timeout.refresh(), this.paused = !1, this.execute(this.socket.read() || EMPTY_BUF), this.readMore()); + this.socket.destroyed || !this.paused || (assert4(this.ptr != null), assert4(currentParser == null), this.llhttp.llhttp_resume(this.ptr), assert4(this.timeoutType === TIMEOUT_BODY), this.timeout && this.timeout.refresh && this.timeout.refresh(), this.paused = !1, this.execute(this.socket.read() || EMPTY_BUF), this.readMore()); } readMore() { for (; !this.paused && this.ptr; ) { @@ -4272,7 +4272,7 @@ var require_client_h1 = __commonJS({ } } execute(data) { - assert(this.ptr != null), assert(currentParser == null), assert(!this.paused); + assert4(this.ptr != null), assert4(currentParser == null), assert4(!this.paused); let { socket, llhttp } = this; data.length > currentBufferSize && (currentBufferPtr && llhttp.free(currentBufferPtr), currentBufferSize = Math.ceil(data.length / 4096) * 4096, currentBufferPtr = llhttp.malloc(currentBufferSize)), new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data); try { @@ -4285,24 +4285,24 @@ var require_client_h1 = __commonJS({ currentParser = null, currentBufferRef = null; } let offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr; - if (ret === constants3.ERROR.PAUSED_UPGRADE) + if (ret === constants5.ERROR.PAUSED_UPGRADE) this.onUpgrade(data.slice(offset)); - else if (ret === constants3.ERROR.PAUSED) + else if (ret === constants5.ERROR.PAUSED) this.paused = !0, socket.unshift(data.slice(offset)); - else if (ret !== constants3.ERROR.OK) { + else if (ret !== constants5.ERROR.OK) { let ptr = llhttp.llhttp_get_error_reason(this.ptr), message = ""; if (ptr) { let len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0); message = "Response does not match the HTTP/1.1 protocol (" + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + ")"; } - throw new HTTPParserError(message, constants3.ERROR[ret], data.slice(offset)); + throw new HTTPParserError(message, constants5.ERROR[ret], data.slice(offset)); } } catch (err) { - util.destroy(socket, err); + util6.destroy(socket, err); } } destroy() { - assert(this.ptr != null), assert(currentParser == null), this.llhttp.llhttp_free(this.ptr), this.ptr = null, this.timeout && timers.clearTimeout(this.timeout), this.timeout = null, this.timeoutValue = null, this.timeoutType = null, this.paused = !1; + assert4(this.ptr != null), assert4(currentParser == null), this.llhttp.llhttp_free(this.ptr), this.ptr = null, this.timeout && timers.clearTimeout(this.timeout), this.timeout = null, this.timeoutValue = null, this.timeoutType = null, this.paused = !1; } onStatus(buf) { this.statusText = buf.toString(); @@ -4325,23 +4325,23 @@ var require_client_h1 = __commonJS({ (len & 1) === 1 ? (this.headers.push(buf), len += 1) : this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]); let key = this.headers[len - 2]; if (key.length === 10) { - let headerName = util.bufferToLowerCasedHeaderName(key); + let headerName = util6.bufferToLowerCasedHeaderName(key); headerName === "keep-alive" ? this.keepAlive += buf.toString() : headerName === "connection" && (this.connection += buf.toString()); - } else key.length === 14 && util.bufferToLowerCasedHeaderName(key) === "content-length" && (this.contentLength += buf.toString()); + } else key.length === 14 && util6.bufferToLowerCasedHeaderName(key) === "content-length" && (this.contentLength += buf.toString()); this.trackHeader(buf.length); } trackHeader(len) { - this.headersSize += len, this.headersSize >= this.headersMaxSize && util.destroy(this.socket, new HeadersOverflowError()); + this.headersSize += len, this.headersSize >= this.headersMaxSize && util6.destroy(this.socket, new HeadersOverflowError()); } onUpgrade(head) { let { upgrade, client, socket, headers, statusCode } = this; - assert(upgrade), assert(client[kSocket] === socket), assert(!socket.destroyed), assert(!this.paused), assert((headers.length & 1) === 0); + assert4(upgrade), assert4(client[kSocket] === socket), assert4(!socket.destroyed), assert4(!this.paused), assert4((headers.length & 1) === 0); let request = client[kQueue][client[kRunningIdx]]; - assert(request), assert(request.upgrade || request.method === "CONNECT"), this.statusCode = null, this.statusText = "", this.shouldKeepAlive = null, this.headers = [], this.headersSize = 0, socket.unshift(head), socket[kParser].destroy(), socket[kParser] = null, socket[kClient] = null, socket[kError] = null, removeAllListeners(socket), client[kSocket] = null, client[kHTTPContext] = null, client[kQueue][client[kRunningIdx]++] = null, client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade")); + assert4(request), assert4(request.upgrade || request.method === "CONNECT"), this.statusCode = null, this.statusText = "", this.shouldKeepAlive = null, this.headers = [], this.headersSize = 0, socket.unshift(head), socket[kParser].destroy(), socket[kParser] = null, socket[kClient] = null, socket[kError] = null, removeAllListeners(socket), client[kSocket] = null, client[kHTTPContext] = null, client[kQueue][client[kRunningIdx]++] = null, client.emit("disconnect", client[kUrl], [client], new InformationalError("upgrade")); try { request.onUpgrade(statusCode, headers, socket); } catch (err) { - util.destroy(socket, err); + util6.destroy(socket, err); } client[kResume](); } @@ -4352,21 +4352,21 @@ var require_client_h1 = __commonJS({ let request = client[kQueue][client[kRunningIdx]]; if (!request) return -1; - if (assert(!this.upgrade), assert(this.statusCode < 200), statusCode === 100) - return util.destroy(socket, new SocketError("bad response", util.getSocketInfo(socket))), -1; + if (assert4(!this.upgrade), assert4(this.statusCode < 200), statusCode === 100) + return util6.destroy(socket, new SocketError("bad response", util6.getSocketInfo(socket))), -1; if (upgrade && !request.upgrade) - return util.destroy(socket, new SocketError("bad upgrade", util.getSocketInfo(socket))), -1; - if (assert(this.timeoutType === TIMEOUT_HEADERS), this.statusCode = statusCode, this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD. + return util6.destroy(socket, new SocketError("bad upgrade", util6.getSocketInfo(socket))), -1; + if (assert4(this.timeoutType === TIMEOUT_HEADERS), this.statusCode = statusCode, this.shouldKeepAlive = shouldKeepAlive || // Override llhttp value which does not allow keepAlive for HEAD. request.method === "HEAD" && !socket[kReset] && this.connection.toLowerCase() === "keep-alive", this.statusCode >= 200) { let bodyTimeout = request.bodyTimeout != null ? request.bodyTimeout : client[kBodyTimeout]; this.setTimeout(bodyTimeout, TIMEOUT_BODY); } else this.timeout && this.timeout.refresh && this.timeout.refresh(); if (request.method === "CONNECT") - return assert(client[kRunning] === 1), this.upgrade = !0, 2; + return assert4(client[kRunning] === 1), this.upgrade = !0, 2; if (upgrade) - return assert(client[kRunning] === 1), this.upgrade = !0, 2; - if (assert((this.headers.length & 1) === 0), this.headers = [], this.headersSize = 0, this.shouldKeepAlive && client[kPipelining]) { - let keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null; + return assert4(client[kRunning] === 1), this.upgrade = !0, 2; + if (assert4((this.headers.length & 1) === 0), this.headers = [], this.headersSize = 0, this.shouldKeepAlive && client[kPipelining]) { + let keepAliveTimeout = this.keepAlive ? util6.parseKeepAliveTimeout(this.keepAlive) : null; if (keepAliveTimeout != null) { let timeout = Math.min( keepAliveTimeout - client[kKeepAliveTimeoutThreshold], @@ -4378,46 +4378,46 @@ var require_client_h1 = __commonJS({ } else socket[kReset] = !0; let pause = request.onHeaders(statusCode, headers, this.resume, statusText) === !1; - return request.aborted ? -1 : request.method === "HEAD" || statusCode < 200 ? 1 : (socket[kBlocking] && (socket[kBlocking] = !1, client[kResume]()), pause ? constants3.ERROR.PAUSED : 0); + return request.aborted ? -1 : request.method === "HEAD" || statusCode < 200 ? 1 : (socket[kBlocking] && (socket[kBlocking] = !1, client[kResume]()), pause ? constants5.ERROR.PAUSED : 0); } onBody(buf) { let { client, socket, statusCode, maxResponseSize } = this; if (socket.destroyed) return -1; let request = client[kQueue][client[kRunningIdx]]; - if (assert(request), assert(this.timeoutType === TIMEOUT_BODY), this.timeout && this.timeout.refresh && this.timeout.refresh(), assert(statusCode >= 200), maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) - return util.destroy(socket, new ResponseExceededMaxSizeError()), -1; + if (assert4(request), assert4(this.timeoutType === TIMEOUT_BODY), this.timeout && this.timeout.refresh && this.timeout.refresh(), assert4(statusCode >= 200), maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) + return util6.destroy(socket, new ResponseExceededMaxSizeError()), -1; if (this.bytesRead += buf.length, request.onData(buf) === !1) - return constants3.ERROR.PAUSED; + return constants5.ERROR.PAUSED; } onMessageComplete() { - let { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this; + let { client, socket, statusCode, upgrade, headers, contentLength: contentLength2, bytesRead, shouldKeepAlive } = this; if (socket.destroyed && (!statusCode || shouldKeepAlive)) return -1; if (upgrade) return; - assert(statusCode >= 100), assert((this.headers.length & 1) === 0); + assert4(statusCode >= 100), assert4((this.headers.length & 1) === 0); let request = client[kQueue][client[kRunningIdx]]; - if (assert(request), this.statusCode = null, this.statusText = "", this.bytesRead = 0, this.contentLength = "", this.keepAlive = "", this.connection = "", this.headers = [], this.headersSize = 0, !(statusCode < 200)) { - if (request.method !== "HEAD" && contentLength && bytesRead !== parseInt(contentLength, 10)) - return util.destroy(socket, new ResponseContentLengthMismatchError()), -1; + if (assert4(request), this.statusCode = null, this.statusText = "", this.bytesRead = 0, this.contentLength = "", this.keepAlive = "", this.connection = "", this.headers = [], this.headersSize = 0, !(statusCode < 200)) { + if (request.method !== "HEAD" && contentLength2 && bytesRead !== parseInt(contentLength2, 10)) + return util6.destroy(socket, new ResponseContentLengthMismatchError()), -1; if (request.onComplete(headers), client[kQueue][client[kRunningIdx]++] = null, socket[kWriting]) - return assert(client[kRunning] === 0), util.destroy(socket, new InformationalError("reset")), constants3.ERROR.PAUSED; + return assert4(client[kRunning] === 0), util6.destroy(socket, new InformationalError("reset")), constants5.ERROR.PAUSED; if (shouldKeepAlive) { if (socket[kReset] && client[kRunning] === 0) - return util.destroy(socket, new InformationalError("reset")), constants3.ERROR.PAUSED; + return util6.destroy(socket, new InformationalError("reset")), constants5.ERROR.PAUSED; client[kPipelining] == null || client[kPipelining] === 1 ? setImmediate(() => client[kResume]()) : client[kResume](); - } else return util.destroy(socket, new InformationalError("reset")), constants3.ERROR.PAUSED; + } else return util6.destroy(socket, new InformationalError("reset")), constants5.ERROR.PAUSED; } } }; function onParserTimeout(parser) { let { socket, timeoutType, client, paused } = parser.deref(); - timeoutType === TIMEOUT_HEADERS ? (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) && (assert(!paused, "cannot be paused while waiting for headers"), util.destroy(socket, new HeadersTimeoutError())) : timeoutType === TIMEOUT_BODY ? paused || util.destroy(socket, new BodyTimeoutError()) : timeoutType === TIMEOUT_KEEP_ALIVE && (assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]), util.destroy(socket, new InformationalError("socket idle timeout"))); + timeoutType === TIMEOUT_HEADERS ? (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) && (assert4(!paused, "cannot be paused while waiting for headers"), util6.destroy(socket, new HeadersTimeoutError())) : timeoutType === TIMEOUT_BODY ? paused || util6.destroy(socket, new BodyTimeoutError()) : timeoutType === TIMEOUT_KEEP_ALIVE && (assert4(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]), util6.destroy(socket, new InformationalError("socket idle timeout"))); } async function connectH1(client, socket) { client[kSocket] = socket, llhttpInstance || (llhttpInstance = await llhttpPromise, llhttpPromise = null), socket[kNoRef] = !1, socket[kWriting] = !1, socket[kReset] = !1, socket[kBlocking] = !1, socket[kParser] = new Parser(client, socket, llhttpInstance), addListener(socket, "error", function(err) { - assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); + assert4(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"); let parser = this[kParser]; if (err.code === "ECONNRESET" && parser.statusCode && !parser.shouldKeepAlive) { parser.onMessageComplete(); @@ -4433,23 +4433,23 @@ var require_client_h1 = __commonJS({ parser.onMessageComplete(); return; } - util.destroy(this, new SocketError("other side closed", util.getSocketInfo(this))); + util6.destroy(this, new SocketError("other side closed", util6.getSocketInfo(this))); }), addListener(socket, "close", function() { let client2 = this[kClient], parser = this[kParser]; parser && (!this[kError] && parser.statusCode && !parser.shouldKeepAlive && parser.onMessageComplete(), this[kParser].destroy(), this[kParser] = null); - let err = this[kError] || new SocketError("closed", util.getSocketInfo(this)); + let err = this[kError] || new SocketError("closed", util6.getSocketInfo(this)); if (client2[kSocket] = null, client2[kHTTPContext] = null, client2.destroyed) { - assert(client2[kPending] === 0); + assert4(client2[kPending] === 0); let requests = client2[kQueue].splice(client2[kRunningIdx]); for (let i = 0; i < requests.length; i++) { let request = requests[i]; - util.errorRequest(client2, request, err); + util6.errorRequest(client2, request, err); } } else if (client2[kRunning] > 0 && err.code !== "UND_ERR_INFO") { let request = client2[kQueue][client2[kRunningIdx]]; - client2[kQueue][client2[kRunningIdx]++] = null, util.errorRequest(client2, request, err); + client2[kQueue][client2[kRunningIdx]++] = null, util6.errorRequest(client2, request, err); } - client2[kPendingIdx] = client2[kRunningIdx], assert(client2[kRunning] === 0), client2.emit("disconnect", client2[kUrl], [client2], err), client2[kResume](); + client2[kPendingIdx] = client2[kRunningIdx], assert4(client2[kRunning] === 0), client2.emit("disconnect", client2[kUrl], [client2], err), client2[kResume](); }); let closed = !1; return socket.on("close", () => { @@ -4470,7 +4470,7 @@ var require_client_h1 = __commonJS({ return socket.destroyed; }, busy(request) { - return !!(socket[kWriting] || socket[kReset] || socket[kBlocking] || request && (client[kRunning] > 0 && !request.idempotent || client[kRunning] > 0 && (request.upgrade || request.method === "CONNECT") || client[kRunning] > 0 && util.bodyLength(request.body) !== 0 && (util.isStream(request.body) || util.isAsyncIterable(request.body) || util.isFormDataLike(request.body)))); + return !!(socket[kWriting] || socket[kReset] || socket[kBlocking] || request && (client[kRunning] > 0 && !request.idempotent || client[kRunning] > 0 && (request.upgrade || request.method === "CONNECT") || client[kRunning] > 0 && util6.bodyLength(request.body) !== 0 && (util6.isStream(request.body) || util6.isAsyncIterable(request.body) || util6.isFormDataLike(request.body)))); } }; } @@ -4489,31 +4489,31 @@ var require_client_h1 = __commonJS({ return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT"; } function writeH1(client, request) { - let { method, path: path4, host, upgrade, blocking, reset } = request, { body, headers, contentLength } = request, expectsPayload = method === "PUT" || method === "POST" || method === "PATCH" || method === "QUERY" || method === "PROPFIND" || method === "PROPPATCH"; - if (util.isFormDataLike(body)) { + let { method, path: path12, host, upgrade, blocking, reset } = request, { body: body2, headers, contentLength: contentLength2 } = request, expectsPayload = method === "PUT" || method === "POST" || method === "PATCH" || method === "QUERY" || method === "PROPFIND" || method === "PROPPATCH"; + if (util6.isFormDataLike(body2)) { extractBody || (extractBody = require_body().extractBody); - let [bodyStream, contentType] = extractBody(body); - request.contentType == null && headers.push("content-type", contentType), body = bodyStream.stream, contentLength = bodyStream.length; - } else util.isBlobLike(body) && request.contentType == null && body.type && headers.push("content-type", body.type); - body && typeof body.read == "function" && body.read(0); - let bodyLength = util.bodyLength(body); - if (contentLength = bodyLength ?? contentLength, contentLength === null && (contentLength = request.contentLength), contentLength === 0 && !expectsPayload && (contentLength = null), shouldSendContentLength(method) && contentLength > 0 && request.contentLength !== null && request.contentLength !== contentLength) { + let [bodyStream, contentType2] = extractBody(body2); + request.contentType == null && headers.push("content-type", contentType2), body2 = bodyStream.stream, contentLength2 = bodyStream.length; + } else util6.isBlobLike(body2) && request.contentType == null && body2.type && headers.push("content-type", body2.type); + body2 && typeof body2.read == "function" && body2.read(0); + let bodyLength = util6.bodyLength(body2); + if (contentLength2 = bodyLength ?? contentLength2, contentLength2 === null && (contentLength2 = request.contentLength), contentLength2 === 0 && !expectsPayload && (contentLength2 = null), shouldSendContentLength(method) && contentLength2 > 0 && request.contentLength !== null && request.contentLength !== contentLength2) { if (client[kStrictContentLength]) - return util.errorRequest(client, request, new RequestContentLengthMismatchError()), !1; + return util6.errorRequest(client, request, new RequestContentLengthMismatchError()), !1; process.emitWarning(new RequestContentLengthMismatchError()); } let socket = client[kSocket], abort = (err) => { - request.aborted || request.completed || (util.errorRequest(client, request, err || new RequestAbortedError()), util.destroy(body), util.destroy(socket, new InformationalError("aborted"))); + request.aborted || request.completed || (util6.errorRequest(client, request, err || new RequestAbortedError()), util6.destroy(body2), util6.destroy(socket, new InformationalError("aborted"))); }; try { request.onConnect(abort); } catch (err) { - util.errorRequest(client, request, err); + util6.errorRequest(client, request, err); } if (request.aborted) return !1; method === "HEAD" && (socket[kReset] = !0), (upgrade || method === "CONNECT") && (socket[kReset] = !0), reset != null && (socket[kReset] = reset), client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests] && (socket[kReset] = !0), blocking && (socket[kBlocking] = !0); - let header = `${method} ${path4} HTTP/1.1\r + let header = `${method} ${path12} HTTP/1.1\r `; if (typeof host == "string" ? header += `host: ${host}\r ` : header += client[kHostHeader], upgrade ? header += `connection: upgrade\r @@ -4531,66 +4531,66 @@ upgrade: ${upgrade}\r header += `${key}: ${val}\r `; } - return channels.sendHeaders.hasSubscribers && channels.sendHeaders.publish({ request, headers: header, socket }), !body || bodyLength === 0 ? writeBuffer(abort, null, client, request, socket, contentLength, header, expectsPayload) : util.isBuffer(body) ? writeBuffer(abort, body, client, request, socket, contentLength, header, expectsPayload) : util.isBlobLike(body) ? typeof body.stream == "function" ? writeIterable(abort, body.stream(), client, request, socket, contentLength, header, expectsPayload) : writeBlob(abort, body, client, request, socket, contentLength, header, expectsPayload) : util.isStream(body) ? writeStream(abort, body, client, request, socket, contentLength, header, expectsPayload) : util.isIterable(body) ? writeIterable(abort, body, client, request, socket, contentLength, header, expectsPayload) : assert(!1), !0; + return channels.sendHeaders.hasSubscribers && channels.sendHeaders.publish({ request, headers: header, socket }), !body2 || bodyLength === 0 ? writeBuffer(abort, null, client, request, socket, contentLength2, header, expectsPayload) : util6.isBuffer(body2) ? writeBuffer(abort, body2, client, request, socket, contentLength2, header, expectsPayload) : util6.isBlobLike(body2) ? typeof body2.stream == "function" ? writeIterable(abort, body2.stream(), client, request, socket, contentLength2, header, expectsPayload) : writeBlob(abort, body2, client, request, socket, contentLength2, header, expectsPayload) : util6.isStream(body2) ? writeStream(abort, body2, client, request, socket, contentLength2, header, expectsPayload) : util6.isIterable(body2) ? writeIterable(abort, body2, client, request, socket, contentLength2, header, expectsPayload) : assert4(!1), !0; } - function writeStream(abort, body, client, request, socket, contentLength, header, expectsPayload) { - assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); - let finished = !1, writer = new AsyncWriter({ abort, socket, request, contentLength, client, expectsPayload, header }), onData = function(chunk) { + function writeStream(abort, body2, client, request, socket, contentLength2, header, expectsPayload) { + assert4(contentLength2 !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); + let finished = !1, writer = new AsyncWriter({ abort, socket, request, contentLength: contentLength2, client, expectsPayload, header }), onData = function(chunk) { if (!finished) try { !writer.write(chunk) && this.pause && this.pause(); } catch (err) { - util.destroy(this, err); + util6.destroy(this, err); } }, onDrain = function() { - finished || body.resume && body.resume(); + finished || body2.resume && body2.resume(); }, onClose = function() { if (queueMicrotask(() => { - body.removeListener("error", onFinished); + body2.removeListener("error", onFinished); }), !finished) { let err = new RequestAbortedError(); queueMicrotask(() => onFinished(err)); } }, onFinished = function(err) { if (!finished) { - if (finished = !0, assert(socket.destroyed || socket[kWriting] && client[kRunning] <= 1), socket.off("drain", onDrain).off("error", onFinished), body.removeListener("data", onData).removeListener("end", onFinished).removeListener("close", onClose), !err) + if (finished = !0, assert4(socket.destroyed || socket[kWriting] && client[kRunning] <= 1), socket.off("drain", onDrain).off("error", onFinished), body2.removeListener("data", onData).removeListener("end", onFinished).removeListener("close", onClose), !err) try { writer.end(); } catch (er) { err = er; } - writer.destroy(err), err && (err.code !== "UND_ERR_INFO" || err.message !== "reset") ? util.destroy(body, err) : util.destroy(body); + writer.destroy(err), err && (err.code !== "UND_ERR_INFO" || err.message !== "reset") ? util6.destroy(body2, err) : util6.destroy(body2); } }; - body.on("data", onData).on("end", onFinished).on("error", onFinished).on("close", onClose), body.resume && body.resume(), socket.on("drain", onDrain).on("error", onFinished), body.errorEmitted ?? body.errored ? setImmediate(() => onFinished(body.errored)) : (body.endEmitted ?? body.readableEnded) && setImmediate(() => onFinished(null)), (body.closeEmitted ?? body.closed) && setImmediate(onClose); + body2.on("data", onData).on("end", onFinished).on("error", onFinished).on("close", onClose), body2.resume && body2.resume(), socket.on("drain", onDrain).on("error", onFinished), body2.errorEmitted ?? body2.errored ? setImmediate(() => onFinished(body2.errored)) : (body2.endEmitted ?? body2.readableEnded) && setImmediate(() => onFinished(null)), (body2.closeEmitted ?? body2.closed) && setImmediate(onClose); } - function writeBuffer(abort, body, client, request, socket, contentLength, header, expectsPayload) { + function writeBuffer(abort, body2, client, request, socket, contentLength2, header, expectsPayload) { try { - body ? util.isBuffer(body) && (assert(contentLength === body.byteLength, "buffer body must have content length"), socket.cork(), socket.write(`${header}content-length: ${contentLength}\r + body2 ? util6.isBuffer(body2) && (assert4(contentLength2 === body2.byteLength, "buffer body must have content length"), socket.cork(), socket.write(`${header}content-length: ${contentLength2}\r \r -`, "latin1"), socket.write(body), socket.uncork(), request.onBodySent(body), !expectsPayload && request.reset !== !1 && (socket[kReset] = !0)) : contentLength === 0 ? socket.write(`${header}content-length: 0\r +`, "latin1"), socket.write(body2), socket.uncork(), request.onBodySent(body2), !expectsPayload && request.reset !== !1 && (socket[kReset] = !0)) : contentLength2 === 0 ? socket.write(`${header}content-length: 0\r \r -`, "latin1") : (assert(contentLength === null, "no body must not have content length"), socket.write(`${header}\r +`, "latin1") : (assert4(contentLength2 === null, "no body must not have content length"), socket.write(`${header}\r `, "latin1")), request.onRequestSent(), client[kResume](); } catch (err) { abort(err); } } - async function writeBlob(abort, body, client, request, socket, contentLength, header, expectsPayload) { - assert(contentLength === body.size, "blob body must have content length"); + async function writeBlob(abort, body2, client, request, socket, contentLength2, header, expectsPayload) { + assert4(contentLength2 === body2.size, "blob body must have content length"); try { - if (contentLength != null && contentLength !== body.size) + if (contentLength2 != null && contentLength2 !== body2.size) throw new RequestContentLengthMismatchError(); - let buffer = Buffer.from(await body.arrayBuffer()); - socket.cork(), socket.write(`${header}content-length: ${contentLength}\r + let buffer3 = Buffer.from(await body2.arrayBuffer()); + socket.cork(), socket.write(`${header}content-length: ${contentLength2}\r \r -`, "latin1"), socket.write(buffer), socket.uncork(), request.onBodySent(buffer), request.onRequestSent(), !expectsPayload && request.reset !== !1 && (socket[kReset] = !0), client[kResume](); +`, "latin1"), socket.write(buffer3), socket.uncork(), request.onBodySent(buffer3), request.onRequestSent(), !expectsPayload && request.reset !== !1 && (socket[kReset] = !0), client[kResume](); } catch (err) { abort(err); } } - async function writeIterable(abort, body, client, request, socket, contentLength, header, expectsPayload) { - assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); + async function writeIterable(abort, body2, client, request, socket, contentLength2, header, expectsPayload) { + assert4(contentLength2 !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; function onDrain() { if (callback) { @@ -4599,12 +4599,12 @@ upgrade: ${upgrade}\r } } let waitForDrain = () => new Promise((resolve2, reject) => { - assert(callback === null), socket[kError] ? reject(socket[kError]) : callback = resolve2; + assert4(callback === null), socket[kError] ? reject(socket[kError]) : callback = resolve2; }); socket.on("close", onDrain).on("drain", onDrain); - let writer = new AsyncWriter({ abort, socket, request, contentLength, client, expectsPayload, header }); + let writer = new AsyncWriter({ abort, socket, request, contentLength: contentLength2, client, expectsPayload, header }); try { - for await (let chunk of body) { + for await (let chunk of body2) { if (socket[kError]) throw socket[kError]; writer.write(chunk) || await waitForDrain(); @@ -4617,11 +4617,11 @@ upgrade: ${upgrade}\r } } var AsyncWriter = class { - constructor({ abort, socket, request, contentLength, client, expectsPayload, header }) { - this.socket = socket, this.request = request, this.contentLength = contentLength, this.client = client, this.bytesWritten = 0, this.expectsPayload = expectsPayload, this.header = header, this.abort = abort, socket[kWriting] = !0; + constructor({ abort, socket, request, contentLength: contentLength2, client, expectsPayload, header }) { + this.socket = socket, this.request = request, this.contentLength = contentLength2, this.client = client, this.bytesWritten = 0, this.expectsPayload = expectsPayload, this.header = header, this.abort = abort, socket[kWriting] = !0; } write(chunk) { - let { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this; + let { socket, request, contentLength: contentLength2, client, bytesWritten, expectsPayload, header } = this; if (socket[kError]) throw socket[kError]; if (socket.destroyed) @@ -4629,32 +4629,32 @@ upgrade: ${upgrade}\r let len = Buffer.byteLength(chunk); if (!len) return !0; - if (contentLength !== null && bytesWritten + len > contentLength) { + if (contentLength2 !== null && bytesWritten + len > contentLength2) { if (client[kStrictContentLength]) throw new RequestContentLengthMismatchError(); process.emitWarning(new RequestContentLengthMismatchError()); } - socket.cork(), bytesWritten === 0 && (!expectsPayload && request.reset !== !1 && (socket[kReset] = !0), contentLength === null ? socket.write(`${header}transfer-encoding: chunked\r -`, "latin1") : socket.write(`${header}content-length: ${contentLength}\r + socket.cork(), bytesWritten === 0 && (!expectsPayload && request.reset !== !1 && (socket[kReset] = !0), contentLength2 === null ? socket.write(`${header}transfer-encoding: chunked\r +`, "latin1") : socket.write(`${header}content-length: ${contentLength2}\r \r -`, "latin1")), contentLength === null && socket.write(`\r +`, "latin1")), contentLength2 === null && socket.write(`\r ${len.toString(16)}\r `, "latin1"), this.bytesWritten += len; let ret = socket.write(chunk); return socket.uncork(), request.onBodySent(chunk), ret || socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS && socket[kParser].timeout.refresh && socket[kParser].timeout.refresh(), ret; } end() { - let { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this; + let { socket, contentLength: contentLength2, client, bytesWritten, expectsPayload, header, request } = this; if (request.onRequestSent(), socket[kWriting] = !1, socket[kError]) throw socket[kError]; if (!socket.destroyed) { if (bytesWritten === 0 ? expectsPayload ? socket.write(`${header}content-length: 0\r \r `, "latin1") : socket.write(`${header}\r -`, "latin1") : contentLength === null && socket.write(`\r +`, "latin1") : contentLength2 === null && socket.write(`\r 0\r \r -`, "latin1"), contentLength !== null && bytesWritten !== contentLength) { +`, "latin1"), contentLength2 !== null && bytesWritten !== contentLength2) { if (client[kStrictContentLength]) throw new RequestContentLengthMismatchError(); process.emitWarning(new RequestContentLengthMismatchError()); @@ -4664,7 +4664,7 @@ ${len.toString(16)}\r } destroy(err) { let { socket, client, abort } = this; - socket[kWriting] = !1, err && (assert(client[kRunning] <= 1, "pipeline should only contain this request"), abort(err)); + socket[kWriting] = !1, err && (assert4(client[kRunning] <= 1, "pipeline should only contain this request"), abort(err)); } }; module.exports = connectH1; @@ -4673,9 +4673,9 @@ ${len.toString(16)}\r // node_modules/undici/lib/dispatcher/client-h2.js var require_client_h2 = __commonJS({ - "node_modules/undici/lib/dispatcher/client-h2.js"(exports, module) { + "node_modules/undici/lib/dispatcher/client-h2.js"(exports2, module) { "use strict"; - var assert = __require("node:assert"), { pipeline: pipeline3 } = __require("node:stream"), util = require_util(), { + var assert4 = __require("node:assert"), { pipeline: pipeline5 } = __require("node:stream"), util6 = require_util(), { RequestContentLengthMismatchError, RequestAbortedError, SocketError, @@ -4698,11 +4698,11 @@ var require_client_h2 = __commonJS({ kResume, kSize, kHTTPContext - } = require_symbols(), kOpenStreams = /* @__PURE__ */ Symbol("open streams"), extractBody, h2ExperimentalWarned = !1, http2; + } = require_symbols(), kOpenStreams = /* @__PURE__ */ Symbol("open streams"), extractBody, h2ExperimentalWarned = !1, http22; try { - http2 = __require("node:http2"); + http22 = __require("node:http2"); } catch { - http2 = { constants: {} }; + http22 = { constants: {} }; } var { constants: { @@ -4714,7 +4714,7 @@ var require_client_h2 = __commonJS({ HTTP2_HEADER_EXPECT, HTTP2_HEADER_STATUS } - } = http2; + } = http22; function parseH2Headers(headers) { let result = []; for (let [name, value] of Object.entries(headers)) @@ -4729,27 +4729,27 @@ var require_client_h2 = __commonJS({ client[kSocket] = socket, h2ExperimentalWarned || (h2ExperimentalWarned = !0, process.emitWarning("H2 support is experimental, expect them to change at any time.", { code: "UNDICI-H2" })); - let session = http2.connect(client[kUrl], { + let session = http22.connect(client[kUrl], { createConnection: () => socket, peerMaxConcurrentStreams: client[kMaxConcurrentStreams] }); - session[kOpenStreams] = 0, session[kClient] = client, session[kSocket] = socket, util.addListener(session, "error", onHttp2SessionError), util.addListener(session, "frameError", onHttp2FrameError), util.addListener(session, "end", onHttp2SessionEnd), util.addListener(session, "goaway", onHTTP2GoAway), util.addListener(session, "close", function() { - let { [kClient]: client2 } = this, { [kSocket]: socket2 } = client2, err = this[kSocket][kError] || this[kError] || new SocketError("closed", util.getSocketInfo(socket2)); + session[kOpenStreams] = 0, session[kClient] = client, session[kSocket] = socket, util6.addListener(session, "error", onHttp2SessionError), util6.addListener(session, "frameError", onHttp2FrameError), util6.addListener(session, "end", onHttp2SessionEnd), util6.addListener(session, "goaway", onHTTP2GoAway), util6.addListener(session, "close", function() { + let { [kClient]: client2 } = this, { [kSocket]: socket2 } = client2, err = this[kSocket][kError] || this[kError] || new SocketError("closed", util6.getSocketInfo(socket2)); if (client2[kHTTP2Session] = null, client2.destroyed) { - assert(client2[kPending] === 0); + assert4(client2[kPending] === 0); let requests = client2[kQueue].splice(client2[kRunningIdx]); for (let i = 0; i < requests.length; i++) { let request = requests[i]; - util.errorRequest(client2, request, err); + util6.errorRequest(client2, request, err); } } - }), session.unref(), client[kHTTP2Session] = session, socket[kHTTP2Session] = session, util.addListener(socket, "error", function(err) { - assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"), this[kError] = err, this[kClient][kOnError](err); - }), util.addListener(socket, "end", function() { - util.destroy(this, new SocketError("other side closed", util.getSocketInfo(this))); - }), util.addListener(socket, "close", function() { - let err = this[kError] || new SocketError("closed", util.getSocketInfo(this)); - client[kSocket] = null, this[kHTTP2Session] != null && this[kHTTP2Session].destroy(err), client[kPendingIdx] = client[kRunningIdx], assert(client[kRunning] === 0), client.emit("disconnect", client[kUrl], [client], err), client[kResume](); + }), session.unref(), client[kHTTP2Session] = session, socket[kHTTP2Session] = session, util6.addListener(socket, "error", function(err) { + assert4(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"), this[kError] = err, this[kClient][kOnError](err); + }), util6.addListener(socket, "end", function() { + util6.destroy(this, new SocketError("other side closed", util6.getSocketInfo(this))); + }), util6.addListener(socket, "close", function() { + let err = this[kError] || new SocketError("closed", util6.getSocketInfo(this)); + client[kSocket] = null, this[kHTTP2Session] != null && this[kHTTP2Session].destroy(err), client[kPendingIdx] = client[kRunningIdx], assert4(client[kRunning] === 0), client.emit("disconnect", client[kUrl], [client], err), client[kResume](); }); let closed = !1; return socket.on("close", () => { @@ -4779,7 +4779,7 @@ var require_client_h2 = __commonJS({ socket?.destroyed === !1 && (client[kSize] === 0 && client[kMaxConcurrentStreams] === 0 ? (socket.unref(), client[kHTTP2Session].unref()) : (socket.ref(), client[kHTTP2Session].ref())); } function onHttp2SessionError(err) { - assert(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"), this[kSocket][kError] = err, this[kClient][kOnError](err); + assert4(err.code !== "ERR_TLS_CERT_ALTNAME_INVALID"), this[kSocket][kError] = err, this[kClient][kOnError](err); } function onHttp2FrameError(type, code, id) { if (id === 0) { @@ -4788,24 +4788,24 @@ var require_client_h2 = __commonJS({ } } function onHttp2SessionEnd() { - let err = new SocketError("other side closed", util.getSocketInfo(this[kSocket])); - this.destroy(err), util.destroy(this[kSocket], err); + let err = new SocketError("other side closed", util6.getSocketInfo(this[kSocket])); + this.destroy(err), util6.destroy(this[kSocket], err); } function onHTTP2GoAway(code) { - let err = this[kError] || new SocketError(`HTTP/2: "GOAWAY" frame received with code ${code}`, util.getSocketInfo(this)), client = this[kClient]; - if (client[kSocket] = null, client[kHTTPContext] = null, this[kHTTP2Session] != null && (this[kHTTP2Session].destroy(err), this[kHTTP2Session] = null), util.destroy(this[kSocket], err), client[kRunningIdx] < client[kQueue].length) { + let err = this[kError] || new SocketError(`HTTP/2: "GOAWAY" frame received with code ${code}`, util6.getSocketInfo(this)), client = this[kClient]; + if (client[kSocket] = null, client[kHTTPContext] = null, this[kHTTP2Session] != null && (this[kHTTP2Session].destroy(err), this[kHTTP2Session] = null), util6.destroy(this[kSocket], err), client[kRunningIdx] < client[kQueue].length) { let request = client[kQueue][client[kRunningIdx]]; - client[kQueue][client[kRunningIdx]++] = null, util.errorRequest(client, request, err), client[kPendingIdx] = client[kRunningIdx]; + client[kQueue][client[kRunningIdx]++] = null, util6.errorRequest(client, request, err), client[kPendingIdx] = client[kRunningIdx]; } - assert(client[kRunning] === 0), client.emit("disconnect", client[kUrl], [client], err), client[kResume](); + assert4(client[kRunning] === 0), client.emit("disconnect", client[kUrl], [client], err), client[kResume](); } function shouldSendContentLength(method) { return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE" && method !== "CONNECT"; } function writeH2(client, request) { - let session = client[kHTTP2Session], { method, path: path4, host, upgrade, expectContinue, signal, headers: reqHeaders } = request, { body } = request; + let session = client[kHTTP2Session], { method, path: path12, host, upgrade, expectContinue, signal, headers: reqHeaders } = request, { body: body2 } = request; if (upgrade) - return util.errorRequest(client, request, new Error("Upgrade not supported for H2")), !1; + return util6.errorRequest(client, request, new Error("Upgrade not supported for H2")), !1; let headers = {}; for (let n = 0; n < reqHeaders.length; n += 2) { let key = reqHeaders[n + 0], val = reqHeaders[n + 1]; @@ -4815,154 +4815,154 @@ var require_client_h2 = __commonJS({ else headers[key] = val; } - let stream, { hostname, port } = client[kUrl]; + let stream3, { hostname, port } = client[kUrl]; headers[HTTP2_HEADER_AUTHORITY] = host || `${hostname}${port ? `:${port}` : ""}`, headers[HTTP2_HEADER_METHOD] = method; let abort = (err) => { - request.aborted || request.completed || (err = err || new RequestAbortedError(), util.errorRequest(client, request, err), stream != null && util.destroy(stream, err), util.destroy(body, err), client[kQueue][client[kRunningIdx]++] = null, client[kResume]()); + request.aborted || request.completed || (err = err || new RequestAbortedError(), util6.errorRequest(client, request, err), stream3 != null && util6.destroy(stream3, err), util6.destroy(body2, err), client[kQueue][client[kRunningIdx]++] = null, client[kResume]()); }; try { request.onConnect(abort); } catch (err) { - util.errorRequest(client, request, err); + util6.errorRequest(client, request, err); } if (request.aborted) return !1; if (method === "CONNECT") - return session.ref(), stream = session.request(headers, { endStream: !1, signal }), stream.id && !stream.pending ? (request.onUpgrade(null, null, stream), ++session[kOpenStreams], client[kQueue][client[kRunningIdx]++] = null) : stream.once("ready", () => { - request.onUpgrade(null, null, stream), ++session[kOpenStreams], client[kQueue][client[kRunningIdx]++] = null; - }), stream.once("close", () => { + return session.ref(), stream3 = session.request(headers, { endStream: !1, signal }), stream3.id && !stream3.pending ? (request.onUpgrade(null, null, stream3), ++session[kOpenStreams], client[kQueue][client[kRunningIdx]++] = null) : stream3.once("ready", () => { + request.onUpgrade(null, null, stream3), ++session[kOpenStreams], client[kQueue][client[kRunningIdx]++] = null; + }), stream3.once("close", () => { session[kOpenStreams] -= 1, session[kOpenStreams] === 0 && session.unref(); }), !0; - headers[HTTP2_HEADER_PATH] = path4, headers[HTTP2_HEADER_SCHEME] = "https"; + headers[HTTP2_HEADER_PATH] = path12, headers[HTTP2_HEADER_SCHEME] = "https"; let expectsPayload = method === "PUT" || method === "POST" || method === "PATCH"; - body && typeof body.read == "function" && body.read(0); - let contentLength = util.bodyLength(body); - if (util.isFormDataLike(body)) { + body2 && typeof body2.read == "function" && body2.read(0); + let contentLength2 = util6.bodyLength(body2); + if (util6.isFormDataLike(body2)) { extractBody ??= require_body().extractBody; - let [bodyStream, contentType] = extractBody(body); - headers["content-type"] = contentType, body = bodyStream.stream, contentLength = bodyStream.length; + let [bodyStream, contentType2] = extractBody(body2); + headers["content-type"] = contentType2, body2 = bodyStream.stream, contentLength2 = bodyStream.length; } - if (contentLength == null && (contentLength = request.contentLength), (contentLength === 0 || !expectsPayload) && (contentLength = null), shouldSendContentLength(method) && contentLength > 0 && request.contentLength != null && request.contentLength !== contentLength) { + if (contentLength2 == null && (contentLength2 = request.contentLength), (contentLength2 === 0 || !expectsPayload) && (contentLength2 = null), shouldSendContentLength(method) && contentLength2 > 0 && request.contentLength != null && request.contentLength !== contentLength2) { if (client[kStrictContentLength]) - return util.errorRequest(client, request, new RequestContentLengthMismatchError()), !1; + return util6.errorRequest(client, request, new RequestContentLengthMismatchError()), !1; process.emitWarning(new RequestContentLengthMismatchError()); } - contentLength != null && (assert(body, "no body must not have content length"), headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}`), session.ref(); - let shouldEndStream = method === "GET" || method === "HEAD" || body === null; - return expectContinue ? (headers[HTTP2_HEADER_EXPECT] = "100-continue", stream = session.request(headers, { endStream: shouldEndStream, signal }), stream.once("continue", writeBodyH2)) : (stream = session.request(headers, { + contentLength2 != null && (assert4(body2, "no body must not have content length"), headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength2}`), session.ref(); + let shouldEndStream = method === "GET" || method === "HEAD" || body2 === null; + return expectContinue ? (headers[HTTP2_HEADER_EXPECT] = "100-continue", stream3 = session.request(headers, { endStream: shouldEndStream, signal }), stream3.once("continue", writeBodyH2)) : (stream3 = session.request(headers, { endStream: shouldEndStream, signal - }), writeBodyH2()), ++session[kOpenStreams], stream.once("response", (headers2) => { + }), writeBodyH2()), ++session[kOpenStreams], stream3.once("response", (headers2) => { let { [HTTP2_HEADER_STATUS]: statusCode, ...realHeaders } = headers2; if (request.onResponseStarted(), request.aborted) { let err = new RequestAbortedError(); - util.errorRequest(client, request, err), util.destroy(stream, err); + util6.errorRequest(client, request, err), util6.destroy(stream3, err); return; } - request.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream.resume.bind(stream), "") === !1 && stream.pause(), stream.on("data", (chunk) => { - request.onData(chunk) === !1 && stream.pause(); + request.onHeaders(Number(statusCode), parseH2Headers(realHeaders), stream3.resume.bind(stream3), "") === !1 && stream3.pause(), stream3.on("data", (chunk) => { + request.onData(chunk) === !1 && stream3.pause(); }); - }), stream.once("end", () => { - (stream.state?.state == null || stream.state.state < 6) && request.onComplete([]), session[kOpenStreams] === 0 && session.unref(), abort(new InformationalError("HTTP/2: stream half-closed (remote)")), client[kQueue][client[kRunningIdx]++] = null, client[kPendingIdx] = client[kRunningIdx], client[kResume](); - }), stream.once("close", () => { + }), stream3.once("end", () => { + (stream3.state?.state == null || stream3.state.state < 6) && request.onComplete([]), session[kOpenStreams] === 0 && session.unref(), abort(new InformationalError("HTTP/2: stream half-closed (remote)")), client[kQueue][client[kRunningIdx]++] = null, client[kPendingIdx] = client[kRunningIdx], client[kResume](); + }), stream3.once("close", () => { session[kOpenStreams] -= 1, session[kOpenStreams] === 0 && session.unref(); - }), stream.once("error", function(err) { + }), stream3.once("error", function(err) { abort(err); - }), stream.once("frameError", (type, code) => { + }), stream3.once("frameError", (type, code) => { abort(new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`)); }), !0; function writeBodyH2() { - !body || contentLength === 0 ? writeBuffer( + !body2 || contentLength2 === 0 ? writeBuffer( abort, - stream, + stream3, null, client, request, client[kSocket], - contentLength, + contentLength2, expectsPayload - ) : util.isBuffer(body) ? writeBuffer( + ) : util6.isBuffer(body2) ? writeBuffer( abort, - stream, - body, + stream3, + body2, client, request, client[kSocket], - contentLength, + contentLength2, expectsPayload - ) : util.isBlobLike(body) ? typeof body.stream == "function" ? writeIterable( + ) : util6.isBlobLike(body2) ? typeof body2.stream == "function" ? writeIterable( abort, - stream, - body.stream(), + stream3, + body2.stream(), client, request, client[kSocket], - contentLength, + contentLength2, expectsPayload ) : writeBlob( abort, - stream, - body, + stream3, + body2, client, request, client[kSocket], - contentLength, + contentLength2, expectsPayload - ) : util.isStream(body) ? writeStream( + ) : util6.isStream(body2) ? writeStream( abort, client[kSocket], expectsPayload, - stream, - body, + stream3, + body2, client, request, - contentLength - ) : util.isIterable(body) ? writeIterable( + contentLength2 + ) : util6.isIterable(body2) ? writeIterable( abort, - stream, - body, + stream3, + body2, client, request, client[kSocket], - contentLength, + contentLength2, expectsPayload - ) : assert(!1); + ) : assert4(!1); } } - function writeBuffer(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { + function writeBuffer(abort, h2stream, body2, client, request, socket, contentLength2, expectsPayload) { try { - body != null && util.isBuffer(body) && (assert(contentLength === body.byteLength, "buffer body must have content length"), h2stream.cork(), h2stream.write(body), h2stream.uncork(), h2stream.end(), request.onBodySent(body)), expectsPayload || (socket[kReset] = !0), request.onRequestSent(), client[kResume](); - } catch (error2) { - abort(error2); + body2 != null && util6.isBuffer(body2) && (assert4(contentLength2 === body2.byteLength, "buffer body must have content length"), h2stream.cork(), h2stream.write(body2), h2stream.uncork(), h2stream.end(), request.onBodySent(body2)), expectsPayload || (socket[kReset] = !0), request.onRequestSent(), client[kResume](); + } catch (error3) { + abort(error3); } } - function writeStream(abort, socket, expectsPayload, h2stream, body, client, request, contentLength) { - assert(contentLength !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); - let pipe = pipeline3( - body, + function writeStream(abort, socket, expectsPayload, h2stream, body2, client, request, contentLength2) { + assert4(contentLength2 !== 0 || client[kRunning] === 0, "stream body cannot be pipelined"); + let pipe = pipeline5( + body2, h2stream, (err) => { - err ? (util.destroy(pipe, err), abort(err)) : (util.removeAllListeners(pipe), request.onRequestSent(), expectsPayload || (socket[kReset] = !0), client[kResume]()); + err ? (util6.destroy(pipe, err), abort(err)) : (util6.removeAllListeners(pipe), request.onRequestSent(), expectsPayload || (socket[kReset] = !0), client[kResume]()); } ); - util.addListener(pipe, "data", onPipeData); + util6.addListener(pipe, "data", onPipeData); function onPipeData(chunk) { request.onBodySent(chunk); } } - async function writeBlob(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { - assert(contentLength === body.size, "blob body must have content length"); + async function writeBlob(abort, h2stream, body2, client, request, socket, contentLength2, expectsPayload) { + assert4(contentLength2 === body2.size, "blob body must have content length"); try { - if (contentLength != null && contentLength !== body.size) + if (contentLength2 != null && contentLength2 !== body2.size) throw new RequestContentLengthMismatchError(); - let buffer = Buffer.from(await body.arrayBuffer()); - h2stream.cork(), h2stream.write(buffer), h2stream.uncork(), h2stream.end(), request.onBodySent(buffer), request.onRequestSent(), expectsPayload || (socket[kReset] = !0), client[kResume](); + let buffer3 = Buffer.from(await body2.arrayBuffer()); + h2stream.cork(), h2stream.write(buffer3), h2stream.uncork(), h2stream.end(), request.onBodySent(buffer3), request.onRequestSent(), expectsPayload || (socket[kReset] = !0), client[kResume](); } catch (err) { abort(err); } } - async function writeIterable(abort, h2stream, body, client, request, socket, contentLength, expectsPayload) { - assert(contentLength !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); + async function writeIterable(abort, h2stream, body2, client, request, socket, contentLength2, expectsPayload) { + assert4(contentLength2 !== 0 || client[kRunning] === 0, "iterator body cannot be pipelined"); let callback = null; function onDrain() { if (callback) { @@ -4971,11 +4971,11 @@ var require_client_h2 = __commonJS({ } } let waitForDrain = () => new Promise((resolve2, reject) => { - assert(callback === null), socket[kError] ? reject(socket[kError]) : callback = resolve2; + assert4(callback === null), socket[kError] ? reject(socket[kError]) : callback = resolve2; }); h2stream.on("close", onDrain).on("drain", onDrain); try { - for await (let chunk of body) { + for await (let chunk of body2) { if (socket[kError]) throw socket[kError]; let res = h2stream.write(chunk); @@ -4994,24 +4994,24 @@ var require_client_h2 = __commonJS({ // node_modules/undici/lib/handler/redirect-handler.js var require_redirect_handler = __commonJS({ - "node_modules/undici/lib/handler/redirect-handler.js"(exports, module) { + "node_modules/undici/lib/handler/redirect-handler.js"(exports2, module) { "use strict"; - var util = require_util(), { kBodyUsed } = require_symbols(), assert = __require("node:assert"), { InvalidArgumentError } = require_errors(), EE = __require("node:events"), redirectableStatusCodes = [300, 301, 302, 303, 307, 308], kBody = /* @__PURE__ */ Symbol("body"), BodyAsyncIterable = class { - constructor(body) { - this[kBody] = body, this[kBodyUsed] = !1; + var util6 = require_util(), { kBodyUsed } = require_symbols(), assert4 = __require("node:assert"), { InvalidArgumentError } = require_errors(), EE = __require("node:events"), redirectableStatusCodes = [300, 301, 302, 303, 307, 308], kBody = /* @__PURE__ */ Symbol("body"), BodyAsyncIterable = class { + constructor(body2) { + this[kBody] = body2, this[kBodyUsed] = !1; } async *[Symbol.asyncIterator]() { - assert(!this[kBodyUsed], "disturbed"), this[kBodyUsed] = !0, yield* this[kBody]; + assert4(!this[kBodyUsed], "disturbed"), this[kBodyUsed] = !0, yield* this[kBody]; } }, RedirectHandler = class { constructor(dispatch, maxRedirections, opts, handler) { if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) throw new InvalidArgumentError("maxRedirections must be a positive number"); - util.validateHandler(handler, opts.method, opts.upgrade), this.dispatch = dispatch, this.location = null, this.abort = null, this.opts = { ...opts, maxRedirections: 0 }, this.maxRedirections = maxRedirections, this.handler = handler, this.history = [], this.redirectionLimitReached = !1, util.isStream(this.opts.body) ? (util.bodyLength(this.opts.body) === 0 && this.opts.body.on("data", function() { - assert(!1); + util6.validateHandler(handler, opts.method, opts.upgrade), this.dispatch = dispatch, this.location = null, this.abort = null, this.opts = { ...opts, maxRedirections: 0 }, this.maxRedirections = maxRedirections, this.handler = handler, this.history = [], this.redirectionLimitReached = !1, util6.isStream(this.opts.body) ? (util6.bodyLength(this.opts.body) === 0 && this.opts.body.on("data", function() { + assert4(!1); }), typeof this.opts.body.readableDidRead != "boolean" && (this.opts.body[kBodyUsed] = !1, EE.prototype.on.call(this.opts.body, "data", function() { this[kBodyUsed] = !0; - }))) : this.opts.body && typeof this.opts.body.pipeTo == "function" ? this.opts.body = new BodyAsyncIterable(this.opts.body) : this.opts.body && typeof this.opts.body != "string" && !ArrayBuffer.isView(this.opts.body) && util.isIterable(this.opts.body) && (this.opts.body = new BodyAsyncIterable(this.opts.body)); + }))) : this.opts.body && typeof this.opts.body.pipeTo == "function" ? this.opts.body = new BodyAsyncIterable(this.opts.body) : this.opts.body && typeof this.opts.body != "string" && !ArrayBuffer.isView(this.opts.body) && util6.isIterable(this.opts.body) && (this.opts.body = new BodyAsyncIterable(this.opts.body)); } onConnect(abort) { this.abort = abort, this.handler.onConnect(abort, { history: this.history }); @@ -5019,18 +5019,18 @@ var require_redirect_handler = __commonJS({ onUpgrade(statusCode, headers, socket) { this.handler.onUpgrade(statusCode, headers, socket); } - onError(error2) { - this.handler.onError(error2); + onError(error3) { + this.handler.onError(error3); } onHeaders(statusCode, headers, resume, statusText) { - if (this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body) ? null : parseLocation(statusCode, headers), this.opts.throwOnMaxRedirect && this.history.length >= this.maxRedirections) { + if (this.location = this.history.length >= this.maxRedirections || util6.isDisturbed(this.opts.body) ? null : parseLocation(statusCode, headers), this.opts.throwOnMaxRedirect && this.history.length >= this.maxRedirections) { this.request && this.request.abort(new Error("max redirects")), this.redirectionLimitReached = !0, this.abort(new 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(statusCode, headers, resume, statusText); - let { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))), path4 = search ? `${pathname}${search}` : pathname; - this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin), this.opts.path = path4, this.opts.origin = origin, this.opts.maxRedirections = 0, this.opts.query = null, statusCode === 303 && this.opts.method !== "HEAD" && (this.opts.method = "GET", this.opts.body = null); + let { origin, pathname, search } = util6.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))), path12 = search ? `${pathname}${search}` : pathname; + this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin), this.opts.path = path12, this.opts.origin = origin, this.opts.maxRedirections = 0, this.opts.query = null, statusCode === 303 && this.opts.method !== "HEAD" && (this.opts.method = "GET", this.opts.body = null); } onData(chunk) { if (!this.location) @@ -5047,16 +5047,16 @@ var require_redirect_handler = __commonJS({ if (redirectableStatusCodes.indexOf(statusCode) === -1) return null; for (let i = 0; i < headers.length; i += 2) - if (headers[i].length === 8 && util.headerNameToString(headers[i]) === "location") + if (headers[i].length === 8 && util6.headerNameToString(headers[i]) === "location") return headers[i + 1]; } function shouldRemoveHeader(header, removeContent, unknownOrigin) { if (header.length === 4) - return util.headerNameToString(header) === "host"; - if (removeContent && util.headerNameToString(header).startsWith("content-")) + return util6.headerNameToString(header) === "host"; + if (removeContent && util6.headerNameToString(header).startsWith("content-")) return !0; if (unknownOrigin && (header.length === 13 || header.length === 6 || header.length === 19)) { - let name = util.headerNameToString(header); + let name = util6.headerNameToString(header); return name === "authorization" || name === "cookie" || name === "proxy-authorization"; } return !1; @@ -5070,7 +5070,7 @@ var require_redirect_handler = __commonJS({ for (let key of Object.keys(headers)) shouldRemoveHeader(key, removeContent, unknownOrigin) || ret.push(key, headers[key]); else - assert(headers == null, "headers must be an object or an array"); + assert4(headers == null, "headers must be an object or an array"); return ret; } module.exports = RedirectHandler; @@ -5079,7 +5079,7 @@ var require_redirect_handler = __commonJS({ // node_modules/undici/lib/interceptor/redirect-interceptor.js var require_redirect_interceptor = __commonJS({ - "node_modules/undici/lib/interceptor/redirect-interceptor.js"(exports, module) { + "node_modules/undici/lib/interceptor/redirect-interceptor.js"(exports2, module) { "use strict"; var RedirectHandler = require_redirect_handler(); function createRedirectInterceptor({ maxRedirections: defaultMaxRedirections }) { @@ -5097,9 +5097,9 @@ var require_redirect_interceptor = __commonJS({ // node_modules/undici/lib/dispatcher/client.js var require_client = __commonJS({ - "node_modules/undici/lib/dispatcher/client.js"(exports, module) { + "node_modules/undici/lib/dispatcher/client.js"(exports2, module) { "use strict"; - var assert = __require("node:assert"), net = __require("node:net"), http = __require("node:http"), util = require_util(), { channels } = require_diagnostics(), Request = require_request(), DispatcherBase = require_dispatcher_base(), { + var assert4 = __require("node:assert"), net = __require("node:net"), http3 = __require("node:http"), util6 = require_util(), { channels } = require_diagnostics(), Request = require_request(), DispatcherBase = require_dispatcher_base(), { InvalidArgumentError, InformationalError, ClientDestroyedError @@ -5155,7 +5155,7 @@ var require_client = __commonJS({ * @param {string|URL} url * @param {import('../../types/client.js').Client.Options} options */ - constructor(url, { + constructor(url2, { interceptors, maxHeaderSize, headersTimeout, @@ -5238,7 +5238,7 @@ var require_client = __commonJS({ ...connect2 })), interceptors?.Client && Array.isArray(interceptors.Client) ? (this[kInterceptors] = interceptors.Client, deprecatedInterceptorWarned || (deprecatedInterceptorWarned = !0, process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.", { code: "UNDICI-CLIENT-INTERCEPTOR-DEPRECATED" - }))) : this[kInterceptors] = [createRedirectInterceptor({ maxRedirections })], this[kUrl] = util.parseOrigin(url), this[kConnector] = connect2, this[kPipelining] = pipelining ?? 1, this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize, this[kKeepAliveDefaultTimeout] = keepAliveTimeout ?? 4e3, this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout ?? 6e5, this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold ?? 2e3, this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout], this[kServerName] = null, this[kLocalAddress] = localAddress ?? null, this[kResuming] = 0, this[kNeedDrain] = 0, this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ""}\r + }))) : this[kInterceptors] = [createRedirectInterceptor({ maxRedirections })], this[kUrl] = util6.parseOrigin(url2), this[kConnector] = connect2, this[kPipelining] = pipelining ?? 1, this[kMaxHeadersSize] = maxHeaderSize || http3.maxHeaderSize, this[kKeepAliveDefaultTimeout] = keepAliveTimeout ?? 4e3, this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout ?? 6e5, this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold ?? 2e3, this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout], this[kServerName] = null, this[kLocalAddress] = localAddress ?? null, this[kResuming] = 0, this[kNeedDrain] = 0, this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ""}\r `, this[kBodyTimeout] = bodyTimeout ?? 3e5, this[kHeadersTimeout] = headersTimeout ?? 3e5, this[kStrictContentLength] = strictContentLength ?? !0, this[kMaxRedirections] = maxRedirections, this[kMaxRequests] = maxRequestsPerClient, this[kClosedResolve] = null, this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1, this[kMaxConcurrentStreams] = maxConcurrentStreams ?? 100, this[kHTTPContext] = null, this[kQueue] = [], this[kRunningIdx] = 0, this[kPendingIdx] = 0, this[kResume] = (sync) => resume(this, sync), this[kOnError] = (err) => onError(this, err); } get pipelining() { @@ -5268,7 +5268,7 @@ var require_client = __commonJS({ } [kDispatch](opts, handler) { let origin = opts.origin || this[kUrl].origin, request = new Request(origin, opts, handler); - return this[kQueue].push(request), this[kResuming] || (util.bodyLength(request.body) == null && util.isIterable(request.body) ? (this[kResuming] = 1, queueMicrotask(() => resume(this))) : this[kResume](!0)), this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy] && (this[kNeedDrain] = 2), this[kNeedDrain] < 2; + return this[kQueue].push(request), this[kResuming] || (util6.bodyLength(request.body) == null && util6.isIterable(request.body) ? (this[kResuming] = 1, queueMicrotask(() => resume(this))) : this[kResume](!0)), this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy] && (this[kNeedDrain] = 2), this[kNeedDrain] < 2; } async [kClose]() { return new Promise((resolve2) => { @@ -5280,7 +5280,7 @@ var require_client = __commonJS({ let requests = this[kQueue].splice(this[kPendingIdx]); for (let i = 0; i < requests.length; i++) { let request = requests[i]; - util.errorRequest(this, request, err); + util6.errorRequest(this, request, err); } let callback = () => { this[kClosedResolve] && (this[kClosedResolve](), this[kClosedResolve] = null), resolve2(null); @@ -5291,23 +5291,23 @@ var require_client = __commonJS({ }, createRedirectInterceptor = require_redirect_interceptor(); function onError(client, err) { if (client[kRunning] === 0 && err.code !== "UND_ERR_INFO" && err.code !== "UND_ERR_SOCKET") { - assert(client[kPendingIdx] === client[kRunningIdx]); + assert4(client[kPendingIdx] === client[kRunningIdx]); let requests = client[kQueue].splice(client[kRunningIdx]); for (let i = 0; i < requests.length; i++) { let request = requests[i]; - util.errorRequest(client, request, err); + util6.errorRequest(client, request, err); } - assert(client[kSize] === 0); + assert4(client[kSize] === 0); } } async function connect(client) { - assert(!client[kConnecting]), assert(!client[kHTTPContext]); + assert4(!client[kConnecting]), assert4(!client[kHTTPContext]); let { host, hostname, protocol, port } = client[kUrl]; if (hostname[0] === "[") { let idx = hostname.indexOf("]"); - assert(idx !== -1); + assert4(idx !== -1); let ip = hostname.substring(1, idx); - assert(net.isIP(ip)), hostname = ip; + assert4(net.isIP(ip)), hostname = ip; } client[kConnecting] = !0, channels.beforeConnect.hasSubscribers && channels.beforeConnect.publish({ connectParams: { @@ -5335,10 +5335,10 @@ var require_client = __commonJS({ }); }); if (client.destroyed) { - util.destroy(socket.on("error", noop), new ClientDestroyedError()); + util6.destroy(socket.on("error", noop), new ClientDestroyedError()); return; } - assert(socket); + assert4(socket); try { client[kHTTPContext] = socket.alpnProtocol === "h2" ? await connectH2(client, socket) : await connectH1(client, socket); } catch (err) { @@ -5373,9 +5373,9 @@ var require_client = __commonJS({ connector: client[kConnector], error: err }), err.code === "ERR_TLS_CERT_ALTNAME_INVALID") - for (assert(client[kRunning] === 0); client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]; ) { + for (assert4(client[kRunning] === 0); client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]; ) { let request = client[kQueue][client[kPendingIdx]++]; - util.errorRequest(client, request, err); + util6.errorRequest(client, request, err); } else onError(client, err); @@ -5392,7 +5392,7 @@ var require_client = __commonJS({ function _resume(client, sync) { for (; ; ) { if (client.destroyed) { - assert(client[kPending] === 0); + assert4(client[kPending] === 0); return; } if (client[kClosedResolve] && !client[kSize]) { @@ -5432,7 +5432,7 @@ var require_client = __commonJS({ // node_modules/undici/lib/dispatcher/fixed-queue.js var require_fixed_queue = __commonJS({ - "node_modules/undici/lib/dispatcher/fixed-queue.js"(exports, module) { + "node_modules/undici/lib/dispatcher/fixed-queue.js"(exports2, module) { "use strict"; var FixedCircularBuffer = class { constructor() { @@ -5472,7 +5472,7 @@ var require_fixed_queue = __commonJS({ // node_modules/undici/lib/dispatcher/pool-stats.js var require_pool_stats = __commonJS({ - "node_modules/undici/lib/dispatcher/pool-stats.js"(exports, module) { + "node_modules/undici/lib/dispatcher/pool-stats.js"(exports2, module) { var { kFree, kConnected, kPending, kQueued, kRunning, kSize } = require_symbols(), kPool = /* @__PURE__ */ Symbol("pool"), PoolStats = class { constructor(pool) { this[kPool] = pool; @@ -5502,7 +5502,7 @@ var require_pool_stats = __commonJS({ // node_modules/undici/lib/dispatcher/pool-base.js var require_pool_base = __commonJS({ - "node_modules/undici/lib/dispatcher/pool-base.js"(exports, module) { + "node_modules/undici/lib/dispatcher/pool-base.js"(exports2, module) { "use strict"; var DispatcherBase = require_dispatcher_base(), FixedQueue = require_fixed_queue(), { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = require_symbols(), PoolStats = require_pool_stats(), kClients = /* @__PURE__ */ Symbol("clients"), kNeedDrain = /* @__PURE__ */ Symbol("needDrain"), kQueue = /* @__PURE__ */ Symbol("queue"), kClosedResolve = /* @__PURE__ */ Symbol("closed resolve"), kOnDrain = /* @__PURE__ */ Symbol("onDrain"), kOnConnect = /* @__PURE__ */ Symbol("onConnect"), kOnDisconnect = /* @__PURE__ */ Symbol("onDisconnect"), kOnConnectionError = /* @__PURE__ */ Symbol("onConnectionError"), kGetDispatcher = /* @__PURE__ */ Symbol("get dispatcher"), kAddClient = /* @__PURE__ */ Symbol("add client"), kRemoveClient = /* @__PURE__ */ Symbol("remove client"), kStats = /* @__PURE__ */ Symbol("stats"), PoolBase = class extends DispatcherBase { constructor(opts) { @@ -5598,7 +5598,7 @@ var require_pool_base = __commonJS({ // node_modules/undici/lib/dispatcher/pool.js var require_pool = __commonJS({ - "node_modules/undici/lib/dispatcher/pool.js"(exports, module) { + "node_modules/undici/lib/dispatcher/pool.js"(exports2, module) { "use strict"; var { PoolBase, @@ -5608,7 +5608,7 @@ var require_pool = __commonJS({ kGetDispatcher } = require_pool_base(), Client = require_client(), { InvalidArgumentError - } = require_errors(), util = require_util(), { kUrl, kInterceptors } = require_symbols(), buildConnector = require_connect(), kOptions = /* @__PURE__ */ Symbol("options"), kConnections = /* @__PURE__ */ Symbol("connections"), kFactory = /* @__PURE__ */ Symbol("factory"); + } = require_errors(), util6 = require_util(), { kUrl, kInterceptors } = require_symbols(), buildConnector = require_connect(), kOptions = /* @__PURE__ */ Symbol("options"), kConnections = /* @__PURE__ */ Symbol("connections"), kFactory = /* @__PURE__ */ Symbol("factory"); function defaultFactory(origin, opts) { return new Client(origin, opts); } @@ -5640,7 +5640,7 @@ var require_pool = __commonJS({ timeout: connectTimeout, ...autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : void 0, ...connect - })), super(options), this[kInterceptors] = options.interceptors?.Pool && Array.isArray(options.interceptors.Pool) ? options.interceptors.Pool : [], this[kConnections] = connections || null, this[kUrl] = util.parseOrigin(origin), this[kOptions] = { ...util.deepClone(options), connect, allowH2 }, this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0, this[kFactory] = factory, this.on("connectionError", (origin2, targets, error2) => { + })), super(options), this[kInterceptors] = options.interceptors?.Pool && Array.isArray(options.interceptors.Pool) ? options.interceptors.Pool : [], this[kConnections] = connections || null, this[kUrl] = util6.parseOrigin(origin), this[kOptions] = { ...util6.deepClone(options), connect, allowH2 }, this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0, this[kFactory] = factory, this.on("connectionError", (origin2, targets, error3) => { for (let target of targets) { let idx = this[kClients].indexOf(target); idx !== -1 && this[kClients].splice(idx, 1); @@ -5663,7 +5663,7 @@ var require_pool = __commonJS({ // node_modules/undici/lib/dispatcher/balanced-pool.js var require_balanced_pool = __commonJS({ - "node_modules/undici/lib/dispatcher/balanced-pool.js"(exports, module) { + "node_modules/undici/lib/dispatcher/balanced-pool.js"(exports2, module) { "use strict"; var { BalancedPoolMissingUpstreamError, @@ -5747,13 +5747,13 @@ var require_balanced_pool = __commonJS({ // node_modules/undici/lib/dispatcher/agent.js var require_agent = __commonJS({ - "node_modules/undici/lib/dispatcher/agent.js"(exports, module) { + "node_modules/undici/lib/dispatcher/agent.js"(exports2, module) { "use strict"; - var { InvalidArgumentError } = require_errors(), { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(), DispatcherBase = require_dispatcher_base(), Pool = require_pool(), Client = require_client(), util = require_util(), createRedirectInterceptor = require_redirect_interceptor(), kOnConnect = /* @__PURE__ */ Symbol("onConnect"), kOnDisconnect = /* @__PURE__ */ Symbol("onDisconnect"), kOnConnectionError = /* @__PURE__ */ Symbol("onConnectionError"), kMaxRedirections = /* @__PURE__ */ Symbol("maxRedirections"), kOnDrain = /* @__PURE__ */ Symbol("onDrain"), kFactory = /* @__PURE__ */ Symbol("factory"), kOptions = /* @__PURE__ */ Symbol("options"); + var { InvalidArgumentError } = require_errors(), { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(), DispatcherBase = require_dispatcher_base(), Pool = require_pool(), Client = require_client(), util6 = require_util(), createRedirectInterceptor = require_redirect_interceptor(), kOnConnect = /* @__PURE__ */ Symbol("onConnect"), kOnDisconnect = /* @__PURE__ */ Symbol("onDisconnect"), kOnConnectionError = /* @__PURE__ */ Symbol("onConnectionError"), kMaxRedirections = /* @__PURE__ */ Symbol("maxRedirections"), kOnDrain = /* @__PURE__ */ Symbol("onDrain"), kFactory = /* @__PURE__ */ Symbol("factory"), kOptions = /* @__PURE__ */ Symbol("options"); function defaultFactory(origin, opts) { return opts && opts.connections === 1 ? new Client(origin, opts) : new Pool(origin, opts); } - var Agent = class extends DispatcherBase { + var Agent3 = class extends DispatcherBase { constructor({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { if (typeof factory != "function") throw new InvalidArgumentError("factory must be a function."); @@ -5761,7 +5761,7 @@ var require_agent = __commonJS({ throw new InvalidArgumentError("connect must be a function or an object"); if (!Number.isInteger(maxRedirections) || maxRedirections < 0) throw new InvalidArgumentError("maxRedirections must be a positive number"); - super(options), connect && typeof connect != "function" && (connect = { ...connect }), this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [createRedirectInterceptor({ maxRedirections })], this[kOptions] = { ...util.deepClone(options), connect }, this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0, this[kMaxRedirections] = maxRedirections, this[kFactory] = factory, this[kClients] = /* @__PURE__ */ new Map(), this[kOnDrain] = (origin, targets) => { + super(options), connect && typeof connect != "function" && (connect = { ...connect }), this[kInterceptors] = options.interceptors?.Agent && Array.isArray(options.interceptors.Agent) ? options.interceptors.Agent : [createRedirectInterceptor({ maxRedirections })], this[kOptions] = { ...util6.deepClone(options), connect }, this[kOptions].interceptors = options.interceptors ? { ...options.interceptors } : void 0, this[kMaxRedirections] = maxRedirections, this[kFactory] = factory, this[kClients] = /* @__PURE__ */ new Map(), this[kOnDrain] = (origin, targets) => { this.emit("drain", origin, [this, ...targets]); }, this[kOnConnect] = (origin, targets) => { this.emit("connect", origin, [this, ...targets]); @@ -5799,15 +5799,15 @@ var require_agent = __commonJS({ this[kClients].clear(), await Promise.all(destroyPromises); } }; - module.exports = Agent; + module.exports = Agent3; } }); // node_modules/undici/lib/dispatcher/proxy-agent.js var require_proxy_agent = __commonJS({ - "node_modules/undici/lib/dispatcher/proxy-agent.js"(exports, module) { + "node_modules/undici/lib/dispatcher/proxy-agent.js"(exports2, module) { "use strict"; - var { kProxy, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(), { URL: URL2 } = __require("node:url"), Agent = require_agent(), Pool = require_pool(), DispatcherBase = require_dispatcher_base(), { InvalidArgumentError, RequestAbortedError, SecureProxyConnectionError } = require_errors(), buildConnector = require_connect(), Client = require_client(), kAgent = /* @__PURE__ */ Symbol("proxy agent"), kClient = /* @__PURE__ */ Symbol("proxy client"), kProxyHeaders = /* @__PURE__ */ Symbol("proxy headers"), kRequestTls = /* @__PURE__ */ Symbol("request tls settings"), kProxyTls = /* @__PURE__ */ Symbol("proxy tls settings"), kConnectEndpoint = /* @__PURE__ */ Symbol("connect endpoint function"), kTunnelProxy = /* @__PURE__ */ Symbol("tunnel proxy"); + var { kProxy, kClose, kDestroy, kDispatch, kInterceptors } = require_symbols(), { URL: URL3 } = __require("node:url"), Agent3 = require_agent(), Pool = require_pool(), DispatcherBase = require_dispatcher_base(), { InvalidArgumentError, RequestAbortedError, SecureProxyConnectionError } = require_errors(), buildConnector = require_connect(), Client = require_client(), kAgent = /* @__PURE__ */ Symbol("proxy agent"), kClient = /* @__PURE__ */ Symbol("proxy client"), kProxyHeaders = /* @__PURE__ */ Symbol("proxy headers"), kRequestTls = /* @__PURE__ */ Symbol("request tls settings"), kProxyTls = /* @__PURE__ */ Symbol("proxy tls settings"), kConnectEndpoint = /* @__PURE__ */ Symbol("connect endpoint function"), kTunnelProxy = /* @__PURE__ */ Symbol("tunnel proxy"); function defaultProtocolPort(protocol) { return protocol === "https:" ? 443 : 80; } @@ -5837,11 +5837,11 @@ var require_proxy_agent = __commonJS({ }; let { origin, - path: path4 = "/", + path: path12 = "/", headers = {} } = opts; - if (opts.path = origin + path4, !("host" in headers) && !("Host" in headers)) { - let { host } = new URL2(origin); + if (opts.path = origin + path12, !("host" in headers) && !("Host" in headers)) { + let { host } = new URL3(origin); headers.host = host; } return opts.headers = { ...this[kProxyHeaders], ...headers }, this.#client[kDispatch](opts, handler); @@ -5852,28 +5852,28 @@ var require_proxy_agent = __commonJS({ async [kDestroy](err) { return this.#client.destroy(err); } - }, ProxyAgent2 = class extends DispatcherBase { + }, ProxyAgent4 = class extends DispatcherBase { constructor(opts) { - if (super(), !opts || typeof opts == "object" && !(opts instanceof URL2) && !opts.uri) + if (super(), !opts || typeof opts == "object" && !(opts instanceof URL3) && !opts.uri) throw new InvalidArgumentError("Proxy uri is mandatory"); let { clientFactory = defaultFactory } = opts; if (typeof clientFactory != "function") throw new InvalidArgumentError("Proxy opts.clientFactory must be a function."); - let { proxyTunnel = !0 } = opts, url = this.#getUrl(opts), { href, origin, port, protocol, username, password, hostname: proxyHostname } = url; + let { proxyTunnel = !0 } = opts, url2 = this.#getUrl(opts), { href, origin, port, protocol, username, password, hostname: proxyHostname } = url2; if (this[kProxy] = { uri: href, protocol }, this[kInterceptors] = opts.interceptors?.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) ? opts.interceptors.ProxyAgent : [], this[kRequestTls] = opts.requestTls, this[kProxyTls] = opts.proxyTls, this[kProxyHeaders] = opts.headers || {}, this[kTunnelProxy] = proxyTunnel, opts.auth && opts.token) throw new InvalidArgumentError("opts.auth cannot be used in combination with opts.token"); opts.auth ? this[kProxyHeaders]["proxy-authorization"] = `Basic ${opts.auth}` : opts.token ? this[kProxyHeaders]["proxy-authorization"] = opts.token : username && password && (this[kProxyHeaders]["proxy-authorization"] = `Basic ${Buffer.from(`${decodeURIComponent(username)}:${decodeURIComponent(password)}`).toString("base64")}`); let connect = buildConnector({ ...opts.proxyTls }); this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }); let agentFactory = opts.factory || defaultAgentFactory, factory = (origin2, options) => { - let { protocol: protocol2 } = new URL2(origin2); + let { protocol: protocol2 } = new URL3(origin2); return !this[kTunnelProxy] && protocol2 === "http:" && this[kProxy].protocol === "http:" ? new Http1ProxyWrapper(this[kProxy].uri, { headers: this[kProxyHeaders], connect, factory: agentFactory }) : agentFactory(origin2, options); }; - this[kClient] = clientFactory(url, { connect }), this[kAgent] = new Agent({ + this[kClient] = clientFactory(url2, { connect }), this[kAgent] = new Agent3({ ...opts, factory, connect: async (opts2, callback) => { @@ -5906,7 +5906,7 @@ var require_proxy_agent = __commonJS({ dispatch(opts, handler) { let headers = buildHeaders(opts.headers); if (throwIfProxyAuthIsSent(headers), headers && !("host" in headers) && !("Host" in headers)) { - let { host } = new URL2(opts.origin); + let { host } = new URL3(opts.origin); headers.host = host; } return this[kAgent].dispatch( @@ -5922,7 +5922,7 @@ var require_proxy_agent = __commonJS({ * @returns {URL} */ #getUrl(opts) { - return typeof opts == "string" ? new URL2(opts) : opts instanceof URL2 ? opts : new URL2(opts.uri); + return typeof opts == "string" ? new URL3(opts) : opts instanceof URL3 ? opts : new URL3(opts.uri); } async [kClose]() { await this[kAgent].close(), await this[kClient].close(); @@ -5944,15 +5944,15 @@ var require_proxy_agent = __commonJS({ if (headers && Object.keys(headers).find((key) => key.toLowerCase() === "proxy-authorization")) throw new InvalidArgumentError("Proxy-Authorization should be sent in ProxyAgent constructor"); } - module.exports = ProxyAgent2; + module.exports = ProxyAgent4; } }); // node_modules/undici/lib/dispatcher/env-http-proxy-agent.js var require_env_http_proxy_agent = __commonJS({ - "node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports, module) { + "node_modules/undici/lib/dispatcher/env-http-proxy-agent.js"(exports2, module) { "use strict"; - var DispatcherBase = require_dispatcher_base(), { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols(), ProxyAgent2 = require_proxy_agent(), Agent = require_agent(), DEFAULT_PORTS = { + var DispatcherBase = require_dispatcher_base(), { kClose, kDestroy, kClosed, kDestroyed, kDispatch, kNoProxyAgent, kHttpProxyAgent, kHttpsProxyAgent } = require_symbols(), ProxyAgent4 = require_proxy_agent(), Agent3 = require_agent(), DEFAULT_PORTS = { "http:": 80, "https:": 443 }, experimentalWarned = !1, EnvHttpProxyAgent = class extends DispatcherBase { @@ -5964,15 +5964,15 @@ var require_env_http_proxy_agent = __commonJS({ code: "UNDICI-EHPA" })); let { httpProxy, httpsProxy, noProxy, ...agentOpts } = opts; - this[kNoProxyAgent] = new Agent(agentOpts); - let HTTP_PROXY = httpProxy ?? process.env.http_proxy ?? process.env.HTTP_PROXY; - HTTP_PROXY ? this[kHttpProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTP_PROXY }) : this[kHttpProxyAgent] = this[kNoProxyAgent]; - let HTTPS_PROXY = httpsProxy ?? process.env.https_proxy ?? process.env.HTTPS_PROXY; - HTTPS_PROXY ? this[kHttpsProxyAgent] = new ProxyAgent2({ ...agentOpts, uri: HTTPS_PROXY }) : this[kHttpsProxyAgent] = this[kHttpProxyAgent], this.#parseNoProxy(); + this[kNoProxyAgent] = new Agent3(agentOpts); + let HTTP_PROXY2 = httpProxy ?? process.env.http_proxy ?? process.env.HTTP_PROXY; + HTTP_PROXY2 ? this[kHttpProxyAgent] = new ProxyAgent4({ ...agentOpts, uri: HTTP_PROXY2 }) : this[kHttpProxyAgent] = this[kNoProxyAgent]; + let HTTPS_PROXY2 = httpsProxy ?? process.env.https_proxy ?? process.env.HTTPS_PROXY; + HTTPS_PROXY2 ? this[kHttpsProxyAgent] = new ProxyAgent4({ ...agentOpts, uri: HTTPS_PROXY2 }) : this[kHttpsProxyAgent] = this[kHttpProxyAgent], this.#parseNoProxy(); } [kDispatch](opts, handler) { - let url = new URL(opts.origin); - return this.#getProxyAgentForUrl(url).dispatch(opts, handler); + let url2 = new URL(opts.origin); + return this.#getProxyAgentForUrl(url2).dispatch(opts, handler); } async [kClose]() { await this[kNoProxyAgent].close(), this[kHttpProxyAgent][kClosed] || await this[kHttpProxyAgent].close(), this[kHttpsProxyAgent][kClosed] || await this[kHttpsProxyAgent].close(); @@ -5980,8 +5980,8 @@ var require_env_http_proxy_agent = __commonJS({ async [kDestroy](err) { await this[kNoProxyAgent].destroy(err), this[kHttpProxyAgent][kDestroyed] || await this[kHttpProxyAgent].destroy(err), this[kHttpsProxyAgent][kDestroyed] || await this[kHttpsProxyAgent].destroy(err); } - #getProxyAgentForUrl(url) { - let { protocol, host: hostname, port } = url; + #getProxyAgentForUrl(url2) { + let { protocol, host: hostname, port } = url2; return hostname = hostname.replace(/:\d*$/, "").toLowerCase(), port = Number.parseInt(port, 10) || DEFAULT_PORTS[protocol] || 0, this.#shouldProxy(hostname, port) ? protocol === "https:" ? this[kHttpsProxyAgent] : this[kHttpProxyAgent] : this[kNoProxyAgent]; } #shouldProxy(hostname, port) { @@ -6028,9 +6028,9 @@ var require_env_http_proxy_agent = __commonJS({ // node_modules/undici/lib/handler/retry-handler.js var require_retry_handler = __commonJS({ - "node_modules/undici/lib/handler/retry-handler.js"(exports, module) { + "node_modules/undici/lib/handler/retry-handler.js"(exports2, module) { "use strict"; - var assert = __require("node:assert"), { kRetryHandlerDefaultRetry } = require_symbols(), { RequestRetryError } = require_errors(), { + var assert4 = __require("node:assert"), { kRetryHandlerDefaultRetry } = require_symbols(), { RequestRetryError } = require_errors(), { isDisturbed, parseHeaders, parseRangeHeader, @@ -6096,7 +6096,7 @@ var require_retry_handler = __commonJS({ onBodySent(chunk) { if (this.handler.onBodySent) return this.handler.onBodySent(chunk); } - static [kRetryHandlerDefaultRetry](err, { state, opts }, cb) { + static [kRetryHandlerDefaultRetry](err, { state: state3, opts }, cb) { let { statusCode, code, headers } = err, { method, retryOptions } = opts, { maxRetries, minTimeout, @@ -6105,7 +6105,7 @@ var require_retry_handler = __commonJS({ statusCodes, errorCodes, methods - } = retryOptions, { counter } = state; + } = retryOptions, { counter } = state3; if (code && code !== "UND_ERR_REQ_RETRY" && !errorCodes.includes(code)) { cb(err); return; @@ -6167,29 +6167,29 @@ var require_retry_handler = __commonJS({ }) ), !1; let { start, size, end = size - 1 } = contentRange; - return assert(this.start === start, "content-range mismatch"), assert(this.end == null || this.end === end, "content-range mismatch"), this.resume = resume, !0; + return assert4(this.start === start, "content-range mismatch"), assert4(this.end == null || this.end === end, "content-range mismatch"), this.resume = resume, !0; } if (this.end == null) { if (statusCode === 206) { - let range = parseRangeHeader(headers["content-range"]); - if (range == null) + let range2 = parseRangeHeader(headers["content-range"]); + if (range2 == null) return this.handler.onHeaders( statusCode, rawHeaders, resume, statusMessage ); - let { start, size, end = size - 1 } = range; - assert( + let { start, size, end = size - 1 } = range2; + assert4( start != null && Number.isFinite(start), "content-range mismatch" - ), assert(end != null && Number.isFinite(end), "invalid content-length"), this.start = start, this.end = end; + ), assert4(end != null && Number.isFinite(end), "invalid content-length"), this.start = start, this.end = end; } if (this.end == null) { - let contentLength = headers["content-length"]; - this.end = contentLength != null ? Number(contentLength) - 1 : null; + let contentLength2 = headers["content-length"]; + this.end = contentLength2 != null ? Number(contentLength2) - 1 : null; } - return assert(Number.isFinite(this.start)), assert( + return assert4(Number.isFinite(this.start)), assert4( this.end == null || Number.isFinite(this.end), "invalid content-length" ), this.resume = resume, this.etag = headers.etag != null ? headers.etag : null, this.etag != null && this.etag.startsWith("W/") && (this.etag = null), this.handler.onHeaders( @@ -6249,7 +6249,7 @@ var require_retry_handler = __commonJS({ // node_modules/undici/lib/dispatcher/retry-agent.js var require_retry_agent = __commonJS({ - "node_modules/undici/lib/dispatcher/retry-agent.js"(exports, module) { + "node_modules/undici/lib/dispatcher/retry-agent.js"(exports2, module) { "use strict"; var Dispatcher = require_dispatcher(), RetryHandler = require_retry_handler(), RetryAgent = class extends Dispatcher { #agent = null; @@ -6258,14 +6258,14 @@ var require_retry_agent = __commonJS({ super(options), this.#agent = agent, this.#options = options; } dispatch(opts, handler) { - let retry = new RetryHandler({ + let retry2 = new RetryHandler({ ...opts, retryOptions: this.#options }, { dispatch: this.#agent.dispatch.bind(this.#agent), handler }); - return this.#agent.dispatch(opts, retry); + return this.#agent.dispatch(opts, retry2); } close() { return this.#agent.close(); @@ -6280,15 +6280,15 @@ var require_retry_agent = __commonJS({ // node_modules/undici/lib/api/readable.js var require_readable = __commonJS({ - "node_modules/undici/lib/api/readable.js"(exports, module) { + "node_modules/undici/lib/api/readable.js"(exports2, module) { "use strict"; - var assert = __require("node:assert"), { Readable } = __require("node:stream"), { RequestAbortedError, NotSupportedError, InvalidArgumentError, AbortError } = require_errors(), util = require_util(), { ReadableStreamFrom } = require_util(), kConsume = /* @__PURE__ */ Symbol("kConsume"), kReading = /* @__PURE__ */ Symbol("kReading"), kBody = /* @__PURE__ */ Symbol("kBody"), kAbort = /* @__PURE__ */ Symbol("kAbort"), kContentType = /* @__PURE__ */ Symbol("kContentType"), kContentLength = /* @__PURE__ */ Symbol("kContentLength"), noop = () => { - }, BodyReadable = class extends Readable { + var assert4 = __require("node:assert"), { Readable: Readable7 } = __require("node:stream"), { RequestAbortedError, NotSupportedError, InvalidArgumentError, AbortError: AbortError3 } = require_errors(), util6 = require_util(), { ReadableStreamFrom } = require_util(), kConsume = /* @__PURE__ */ Symbol("kConsume"), kReading = /* @__PURE__ */ Symbol("kReading"), kBody = /* @__PURE__ */ Symbol("kBody"), kAbort = /* @__PURE__ */ Symbol("kAbort"), kContentType = /* @__PURE__ */ Symbol("kContentType"), kContentLength = /* @__PURE__ */ Symbol("kContentLength"), noop = () => { + }, BodyReadable = class extends Readable7 { constructor({ resume, abort, - contentType = "", - contentLength, + contentType: contentType2 = "", + contentLength: contentLength2, highWaterMark = 64 * 1024 // Same as nodejs fs streams. }) { @@ -6296,7 +6296,7 @@ var require_readable = __commonJS({ autoDestroy: !0, read: resume, highWaterMark - }), this._readableState.dataEmitted = !1, this[kAbort] = abort, this[kConsume] = null, this[kBody] = null, this[kContentType] = contentType, this[kContentLength] = contentLength, this[kReading] = !1; + }), this._readableState.dataEmitted = !1, this[kAbort] = abort, this[kConsume] = null, this[kBody] = null, this[kContentType] = contentType2, this[kContentLength] = contentLength2, this[kReading] = !1; } destroy(err) { return !err && !this._readableState.endEmitted && (err = new RequestAbortedError()), err && this[kAbort](), super.destroy(err); @@ -6348,73 +6348,73 @@ var require_readable = __commonJS({ } // https://fetch.spec.whatwg.org/#dom-body-bodyused get bodyUsed() { - return util.isDisturbed(this); + return util6.isDisturbed(this); } // https://fetch.spec.whatwg.org/#dom-body-body get body() { - return this[kBody] || (this[kBody] = ReadableStreamFrom(this), this[kConsume] && (this[kBody].getReader(), assert(this[kBody].locked))), this[kBody]; + return this[kBody] || (this[kBody] = ReadableStreamFrom(this), this[kConsume] && (this[kBody].getReader(), assert4(this[kBody].locked))), this[kBody]; } async dump(opts) { let limit = Number.isFinite(opts?.limit) ? opts.limit : 131072, signal = opts?.signal; if (signal != null && (typeof signal != "object" || !("aborted" in signal))) throw new InvalidArgumentError("signal must be an AbortSignal"); return signal?.throwIfAborted(), this._readableState.closeEmitted ? null : await new Promise((resolve2, reject) => { - this[kContentLength] > limit && this.destroy(new AbortError()); + this[kContentLength] > limit && this.destroy(new AbortError3()); let onAbort = () => { - this.destroy(signal.reason ?? new AbortError()); + this.destroy(signal.reason ?? new AbortError3()); }; signal?.addEventListener("abort", onAbort), this.on("close", function() { - signal?.removeEventListener("abort", onAbort), signal?.aborted ? reject(signal.reason ?? new AbortError()) : resolve2(null); + signal?.removeEventListener("abort", onAbort), signal?.aborted ? reject(signal.reason ?? new AbortError3()) : resolve2(null); }).on("error", noop).on("data", function(chunk) { limit -= chunk.length, limit <= 0 && this.destroy(); }).resume(); }); } }; - function isLocked(self) { - return self[kBody] && self[kBody].locked === !0 || self[kConsume]; + function isLocked(self2) { + return self2[kBody] && self2[kBody].locked === !0 || self2[kConsume]; } - function isUnusable(self) { - return util.isDisturbed(self) || isLocked(self); + function isUnusable(self2) { + return util6.isDisturbed(self2) || isLocked(self2); } - async function consume(stream, type) { - return assert(!stream[kConsume]), new Promise((resolve2, reject) => { - if (isUnusable(stream)) { - let rState = stream._readableState; - rState.destroyed && rState.closeEmitted === !1 ? stream.on("error", (err) => { + async function consume(stream3, type) { + return assert4(!stream3[kConsume]), new Promise((resolve2, reject) => { + if (isUnusable(stream3)) { + let rState = stream3._readableState; + rState.destroyed && rState.closeEmitted === !1 ? stream3.on("error", (err) => { reject(err); }).on("close", () => { reject(new TypeError("unusable")); }) : reject(rState.errored ?? new TypeError("unusable")); } else queueMicrotask(() => { - stream[kConsume] = { + stream3[kConsume] = { type, - stream, + stream: stream3, resolve: resolve2, reject, length: 0, body: [] - }, stream.on("error", function(err) { + }, stream3.on("error", function(err) { consumeFinish(this[kConsume], err); }).on("close", function() { this[kConsume].body !== null && consumeFinish(this[kConsume], new RequestAbortedError()); - }), consumeStart(stream[kConsume]); + }), consumeStart(stream3[kConsume]); }); }); } function consumeStart(consume2) { if (consume2.body === null) return; - let { _readableState: state } = consume2.stream; - if (state.bufferIndex) { - let start = state.bufferIndex, end = state.buffer.length; + let { _readableState: state3 } = consume2.stream; + if (state3.bufferIndex) { + let start = state3.bufferIndex, end = state3.buffer.length; for (let n = start; n < end; n++) - consumePush(consume2, state.buffer[n]); + consumePush(consume2, state3.buffer[n]); } else - for (let chunk of state.buffer) + for (let chunk of state3.buffer) consumePush(consume2, chunk); - for (state.endEmitted ? consumeEnd(this[kConsume]) : consume2.stream.on("end", function() { + for (state3.endEmitted ? consumeEnd(this[kConsume]) : consume2.stream.on("end", function() { consumeEnd(this[kConsume]); }), consume2.stream.resume(); consume2.stream.read() != null; ) ; @@ -6422,27 +6422,27 @@ var require_readable = __commonJS({ function chunksDecode(chunks, length) { if (chunks.length === 0 || length === 0) return ""; - let buffer = chunks.length === 1 ? chunks[0] : Buffer.concat(chunks, length), bufferLength = buffer.length, start = bufferLength > 2 && buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191 ? 3 : 0; - return buffer.utf8Slice(start, bufferLength); + let buffer3 = chunks.length === 1 ? chunks[0] : Buffer.concat(chunks, length), bufferLength = buffer3.length, start = bufferLength > 2 && buffer3[0] === 239 && buffer3[1] === 187 && buffer3[2] === 191 ? 3 : 0; + return buffer3.utf8Slice(start, bufferLength); } function chunksConcat(chunks, length) { if (chunks.length === 0 || length === 0) return new Uint8Array(0); if (chunks.length === 1) return new Uint8Array(chunks[0]); - let buffer = new Uint8Array(Buffer.allocUnsafeSlow(length).buffer), offset = 0; + let buffer3 = new Uint8Array(Buffer.allocUnsafeSlow(length).buffer), offset = 0; for (let i = 0; i < chunks.length; ++i) { let chunk = chunks[i]; - buffer.set(chunk, offset), offset += chunk.length; + buffer3.set(chunk, offset), offset += chunk.length; } - return buffer; + return buffer3; } function consumeEnd(consume2) { - let { type, body, resolve: resolve2, stream, length } = consume2; + let { type, body: body2, resolve: resolve2, stream: stream3, length } = consume2; try { - type === "text" ? resolve2(chunksDecode(body, length)) : type === "json" ? resolve2(JSON.parse(chunksDecode(body, length))) : type === "arrayBuffer" ? resolve2(chunksConcat(body, length).buffer) : type === "blob" ? resolve2(new Blob(body, { type: stream[kContentType] })) : type === "bytes" && resolve2(chunksConcat(body, length)), consumeFinish(consume2); + type === "text" ? resolve2(chunksDecode(body2, length)) : type === "json" ? resolve2(JSON.parse(chunksDecode(body2, length))) : type === "arrayBuffer" ? resolve2(chunksConcat(body2, length).buffer) : type === "blob" ? resolve2(new Blob(body2, { type: stream3[kContentType] })) : type === "bytes" && resolve2(chunksConcat(body2, length)), consumeFinish(consume2); } catch (err) { - stream.destroy(err); + stream3.destroy(err); } } function consumePush(consume2, chunk) { @@ -6457,15 +6457,15 @@ var require_readable = __commonJS({ // node_modules/undici/lib/api/util.js var require_util3 = __commonJS({ - "node_modules/undici/lib/api/util.js"(exports, module) { - var assert = __require("node:assert"), { + "node_modules/undici/lib/api/util.js"(exports2, module) { + var assert4 = __require("node:assert"), { ResponseStatusCodeError } = require_errors(), { chunksDecode } = require_readable(), CHUNK_LIMIT = 128 * 1024; - async function getResolveErrorBodyCallback({ callback, body, contentType, statusCode, statusMessage, headers }) { - assert(body); + async function getResolveErrorBodyCallback({ callback, body: body2, contentType: contentType2, statusCode, statusMessage, headers }) { + assert4(body2); let chunks = [], length = 0; try { - for await (let chunk of body) + for await (let chunk of body2) if (chunks.push(chunk), length += chunk.length, length > CHUNK_LIMIT) { chunks = [], length = 0; break; @@ -6474,7 +6474,7 @@ var require_util3 = __commonJS({ chunks = [], length = 0; } let message = `Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ""}`; - if (statusCode === 204 || !contentType || !length) { + if (statusCode === 204 || !contentType2 || !length) { queueMicrotask(() => callback(new ResponseStatusCodeError(message, statusCode, headers))); return; } @@ -6482,14 +6482,14 @@ var require_util3 = __commonJS({ Error.stackTraceLimit = 0; let payload; try { - isContentTypeApplicationJson(contentType) ? payload = JSON.parse(chunksDecode(chunks, length)) : isContentTypeText(contentType) && (payload = chunksDecode(chunks, length)); + isContentTypeApplicationJson(contentType2) ? payload = JSON.parse(chunksDecode(chunks, length)) : isContentTypeText(contentType2) && (payload = chunksDecode(chunks, length)); } catch { } finally { Error.stackTraceLimit = stackTraceLimit; } queueMicrotask(() => callback(new ResponseStatusCodeError(message, statusCode, headers, payload))); } - var isContentTypeApplicationJson = (contentType) => contentType.length > 15 && contentType[11] === "/" && contentType[0] === "a" && contentType[1] === "p" && contentType[2] === "p" && contentType[3] === "l" && contentType[4] === "i" && contentType[5] === "c" && contentType[6] === "a" && contentType[7] === "t" && contentType[8] === "i" && contentType[9] === "o" && contentType[10] === "n" && contentType[12] === "j" && contentType[13] === "s" && contentType[14] === "o" && contentType[15] === "n", isContentTypeText = (contentType) => contentType.length > 4 && contentType[4] === "/" && contentType[0] === "t" && contentType[1] === "e" && contentType[2] === "x" && contentType[3] === "t"; + var isContentTypeApplicationJson = (contentType2) => contentType2.length > 15 && contentType2[11] === "/" && contentType2[0] === "a" && contentType2[1] === "p" && contentType2[2] === "p" && contentType2[3] === "l" && contentType2[4] === "i" && contentType2[5] === "c" && contentType2[6] === "a" && contentType2[7] === "t" && contentType2[8] === "i" && contentType2[9] === "o" && contentType2[10] === "n" && contentType2[12] === "j" && contentType2[13] === "s" && contentType2[14] === "o" && contentType2[15] === "n", isContentTypeText = (contentType2) => contentType2.length > 4 && contentType2[4] === "/" && contentType2[0] === "t" && contentType2[1] === "e" && contentType2[2] === "x" && contentType2[3] === "t"; module.exports = { getResolveErrorBodyCallback, isContentTypeApplicationJson, @@ -6500,13 +6500,13 @@ var require_util3 = __commonJS({ // node_modules/undici/lib/api/api-request.js var require_api_request = __commonJS({ - "node_modules/undici/lib/api/api-request.js"(exports, module) { + "node_modules/undici/lib/api/api-request.js"(exports2, module) { "use strict"; - var assert = __require("node:assert"), { Readable } = require_readable(), { InvalidArgumentError, RequestAbortedError } = require_errors(), util = require_util(), { getResolveErrorBodyCallback } = require_util3(), { AsyncResource } = __require("node:async_hooks"), RequestHandler = class extends AsyncResource { + var assert4 = __require("node:assert"), { Readable: Readable7 } = require_readable(), { InvalidArgumentError, RequestAbortedError } = require_errors(), util6 = require_util(), { getResolveErrorBodyCallback } = require_util3(), { AsyncResource } = __require("node:async_hooks"), RequestHandler = class extends AsyncResource { constructor(opts, callback) { if (!opts || typeof opts != "object") throw new InvalidArgumentError("invalid opts"); - let { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts; + let { signal, method, opaque, body: body2, onInfo, responseHeaders, throwOnError, highWaterMark } = opts; try { if (typeof callback != "function") throw new InvalidArgumentError("invalid callback"); @@ -6520,60 +6520,60 @@ var require_api_request = __commonJS({ throw new InvalidArgumentError("invalid onInfo callback"); super("UNDICI_REQUEST"); } catch (err) { - throw util.isStream(body) && util.destroy(body.on("error", util.nop), err), err; + throw util6.isStream(body2) && util6.destroy(body2.on("error", util6.nop), err), err; } - this.method = method, this.responseHeaders = responseHeaders || null, this.opaque = opaque || null, this.callback = callback, this.res = null, this.abort = null, this.body = body, this.trailers = {}, this.context = null, this.onInfo = onInfo || null, this.throwOnError = throwOnError, this.highWaterMark = highWaterMark, this.signal = signal, this.reason = null, this.removeAbortListener = null, util.isStream(body) && body.on("error", (err) => { + this.method = method, this.responseHeaders = responseHeaders || null, this.opaque = opaque || null, this.callback = callback, this.res = null, this.abort = null, this.body = body2, this.trailers = {}, this.context = null, this.onInfo = onInfo || null, this.throwOnError = throwOnError, this.highWaterMark = highWaterMark, this.signal = signal, this.reason = null, this.removeAbortListener = null, util6.isStream(body2) && body2.on("error", (err) => { this.onError(err); - }), this.signal && (this.signal.aborted ? this.reason = this.signal.reason ?? new RequestAbortedError() : this.removeAbortListener = util.addAbortListener(this.signal, () => { - this.reason = this.signal.reason ?? new RequestAbortedError(), this.res ? util.destroy(this.res.on("error", util.nop), this.reason) : this.abort && this.abort(this.reason), this.removeAbortListener && (this.res?.off("close", this.removeAbortListener), this.removeAbortListener(), this.removeAbortListener = null); + }), this.signal && (this.signal.aborted ? this.reason = this.signal.reason ?? new RequestAbortedError() : this.removeAbortListener = util6.addAbortListener(this.signal, () => { + this.reason = this.signal.reason ?? new RequestAbortedError(), this.res ? util6.destroy(this.res.on("error", util6.nop), this.reason) : this.abort && this.abort(this.reason), this.removeAbortListener && (this.res?.off("close", this.removeAbortListener), this.removeAbortListener(), this.removeAbortListener = null); })); } - onConnect(abort, context) { + onConnect(abort, context3) { if (this.reason) { abort(this.reason); return; } - assert(this.callback), this.abort = abort, this.context = context; + assert4(this.callback), this.abort = abort, this.context = context3; } onHeaders(statusCode, rawHeaders, resume, statusMessage) { - let { callback, opaque, abort, context, responseHeaders, highWaterMark } = this, headers = responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); + let { callback, opaque, abort, context: context3, responseHeaders, highWaterMark } = this, headers = responseHeaders === "raw" ? util6.parseRawHeaders(rawHeaders) : util6.parseHeaders(rawHeaders); if (statusCode < 200) { this.onInfo && this.onInfo({ statusCode, headers }); return; } - let parsedHeaders = responseHeaders === "raw" ? util.parseHeaders(rawHeaders) : headers, contentType = parsedHeaders["content-type"], contentLength = parsedHeaders["content-length"], res = new Readable({ + let parsedHeaders = responseHeaders === "raw" ? util6.parseHeaders(rawHeaders) : headers, contentType2 = parsedHeaders["content-type"], contentLength2 = parsedHeaders["content-length"], res = new Readable7({ resume, abort, - contentType, - contentLength: this.method !== "HEAD" && contentLength ? Number(contentLength) : null, + contentType: contentType2, + contentLength: this.method !== "HEAD" && contentLength2 ? Number(contentLength2) : null, highWaterMark }); this.removeAbortListener && res.on("close", this.removeAbortListener), this.callback = null, this.res = res, callback !== null && (this.throwOnError && statusCode >= 400 ? this.runInAsyncScope( getResolveErrorBodyCallback, null, - { callback, body: res, contentType, statusCode, statusMessage, headers } + { callback, body: res, contentType: contentType2, statusCode, statusMessage, headers } ) : this.runInAsyncScope(callback, null, null, { statusCode, headers, trailers: this.trailers, opaque, body: res, - context + context: context3 })); } onData(chunk) { return this.res.push(chunk); } onComplete(trailers) { - util.parseHeaders(trailers, this.trailers), this.res.push(null); + util6.parseHeaders(trailers, this.trailers), this.res.push(null); } onError(err) { - let { res, callback, body, opaque } = this; + let { res, callback, body: body2, opaque } = this; callback && (this.callback = null, queueMicrotask(() => { this.runInAsyncScope(callback, null, err, { opaque }); })), res && (this.res = null, queueMicrotask(() => { - util.destroy(res, err); - })), body && (this.body = null, util.destroy(body, err)), this.removeAbortListener && (res?.off("close", this.removeAbortListener), this.removeAbortListener(), this.removeAbortListener = null); + util6.destroy(res, err); + })), body2 && (this.body = null, util6.destroy(body2, err)), this.removeAbortListener && (res?.off("close", this.removeAbortListener), this.removeAbortListener(), this.removeAbortListener = null); } }; function request(opts, callback) { @@ -6597,24 +6597,24 @@ var require_api_request = __commonJS({ // node_modules/undici/lib/api/abort-signal.js var require_abort_signal = __commonJS({ - "node_modules/undici/lib/api/abort-signal.js"(exports, module) { + "node_modules/undici/lib/api/abort-signal.js"(exports2, module) { var { addAbortListener } = require_util(), { RequestAbortedError } = require_errors(), kListener = /* @__PURE__ */ Symbol("kListener"), kSignal = /* @__PURE__ */ Symbol("kSignal"); - function abort(self) { - self.abort ? self.abort(self[kSignal]?.reason) : self.reason = self[kSignal]?.reason ?? new RequestAbortedError(), removeSignal(self); + function abort(self2) { + self2.abort ? self2.abort(self2[kSignal]?.reason) : self2.reason = self2[kSignal]?.reason ?? new RequestAbortedError(), removeSignal(self2); } - function addSignal(self, signal) { - if (self.reason = null, self[kSignal] = null, self[kListener] = null, !!signal) { + function addSignal(self2, signal) { + if (self2.reason = null, self2[kSignal] = null, self2[kListener] = null, !!signal) { if (signal.aborted) { - abort(self); + abort(self2); return; } - self[kSignal] = signal, self[kListener] = () => { - abort(self); - }, addAbortListener(self[kSignal], self[kListener]); + self2[kSignal] = signal, self2[kListener] = () => { + abort(self2); + }, addAbortListener(self2[kSignal], self2[kListener]); } } - function removeSignal(self) { - self[kSignal] && ("removeEventListener" in self[kSignal] ? self[kSignal].removeEventListener("abort", self[kListener]) : self[kSignal].removeListener("abort", self[kListener]), self[kSignal] = null, self[kListener] = null); + function removeSignal(self2) { + self2[kSignal] && ("removeEventListener" in self2[kSignal] ? self2[kSignal].removeEventListener("abort", self2[kListener]) : self2[kSignal].removeListener("abort", self2[kListener]), self2[kSignal] = null, self2[kListener] = null); } module.exports = { addSignal, @@ -6625,13 +6625,13 @@ var require_abort_signal = __commonJS({ // node_modules/undici/lib/api/api-stream.js var require_api_stream = __commonJS({ - "node_modules/undici/lib/api/api-stream.js"(exports, module) { + "node_modules/undici/lib/api/api-stream.js"(exports2, module) { "use strict"; - var assert = __require("node:assert"), { finished, PassThrough } = __require("node:stream"), { InvalidArgumentError, InvalidReturnValueError } = require_errors(), util = require_util(), { getResolveErrorBodyCallback } = require_util3(), { AsyncResource } = __require("node:async_hooks"), { addSignal, removeSignal } = require_abort_signal(), StreamHandler = class extends AsyncResource { + var assert4 = __require("node:assert"), { finished, PassThrough } = __require("node:stream"), { InvalidArgumentError, InvalidReturnValueError } = require_errors(), util6 = require_util(), { getResolveErrorBodyCallback } = require_util3(), { AsyncResource } = __require("node:async_hooks"), { addSignal, removeSignal } = require_abort_signal(), StreamHandler = class extends AsyncResource { constructor(opts, factory, callback) { if (!opts || typeof opts != "object") throw new InvalidArgumentError("invalid opts"); - let { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts; + let { signal, method, opaque, body: body2, onInfo, responseHeaders, throwOnError } = opts; try { if (typeof callback != "function") throw new InvalidArgumentError("invalid callback"); @@ -6645,21 +6645,21 @@ var require_api_stream = __commonJS({ throw new InvalidArgumentError("invalid onInfo callback"); super("UNDICI_STREAM"); } catch (err) { - throw util.isStream(body) && util.destroy(body.on("error", util.nop), err), err; + throw util6.isStream(body2) && util6.destroy(body2.on("error", util6.nop), err), err; } - this.responseHeaders = responseHeaders || null, this.opaque = opaque || null, this.factory = factory, this.callback = callback, this.res = null, this.abort = null, this.context = null, this.trailers = null, this.body = body, this.onInfo = onInfo || null, this.throwOnError = throwOnError || !1, util.isStream(body) && body.on("error", (err) => { + this.responseHeaders = responseHeaders || null, this.opaque = opaque || null, this.factory = factory, this.callback = callback, this.res = null, this.abort = null, this.context = null, this.trailers = null, this.body = body2, this.onInfo = onInfo || null, this.throwOnError = throwOnError || !1, util6.isStream(body2) && body2.on("error", (err) => { this.onError(err); }), addSignal(this, signal); } - onConnect(abort, context) { + onConnect(abort, context3) { if (this.reason) { abort(this.reason); return; } - assert(this.callback), this.abort = abort, this.context = context; + assert4(this.callback), this.abort = abort, this.context = context3; } onHeaders(statusCode, rawHeaders, resume, statusMessage) { - let { factory, opaque, context, callback, responseHeaders } = this, headers = responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); + let { factory, opaque, context: context3, callback, responseHeaders } = this, headers = responseHeaders === "raw" ? util6.parseRawHeaders(rawHeaders) : util6.parseHeaders(rawHeaders); if (statusCode < 200) { this.onInfo && this.onInfo({ statusCode, headers }); return; @@ -6667,11 +6667,11 @@ var require_api_stream = __commonJS({ this.factory = null; let res; if (this.throwOnError && statusCode >= 400) { - let contentType = (responseHeaders === "raw" ? util.parseHeaders(rawHeaders) : headers)["content-type"]; + let contentType2 = (responseHeaders === "raw" ? util6.parseHeaders(rawHeaders) : headers)["content-type"]; res = new PassThrough(), this.callback = null, this.runInAsyncScope( getResolveErrorBodyCallback, null, - { callback, body: res, contentType, statusCode, statusMessage, headers } + { callback, body: res, contentType: contentType2, statusCode, statusMessage, headers } ); } else { if (factory === null) @@ -6680,12 +6680,12 @@ var require_api_stream = __commonJS({ statusCode, headers, opaque, - context + context: context3 }), !res || typeof res.write != "function" || typeof res.end != "function" || typeof res.on != "function") throw new InvalidReturnValueError("expected Writable"); finished(res, { readable: !1 }, (err) => { let { callback: callback2, res: res2, opaque: opaque2, trailers, abort } = this; - this.res = null, (err || !res2.readable) && util.destroy(res2, err), this.callback = null, this.runInAsyncScope(callback2, null, err || null, { opaque: opaque2, trailers }), err && abort(); + this.res = null, (err || !res2.readable) && util6.destroy(res2, err), this.callback = null, this.runInAsyncScope(callback2, null, err || null, { opaque: opaque2, trailers }), err && abort(); }); } return res.on("drain", resume), this.res = res, (res.writableNeedDrain !== void 0 ? res.writableNeedDrain : res._writableState?.needDrain) !== !0; @@ -6696,19 +6696,19 @@ var require_api_stream = __commonJS({ } onComplete(trailers) { let { res } = this; - removeSignal(this), res && (this.trailers = util.parseHeaders(trailers), res.end()); + removeSignal(this), res && (this.trailers = util6.parseHeaders(trailers), res.end()); } onError(err) { - let { res, callback, opaque, body } = this; - removeSignal(this), this.factory = null, res ? (this.res = null, util.destroy(res, err)) : callback && (this.callback = null, queueMicrotask(() => { + let { res, callback, opaque, body: body2 } = this; + removeSignal(this), this.factory = null, res ? (this.res = null, util6.destroy(res, err)) : callback && (this.callback = null, queueMicrotask(() => { this.runInAsyncScope(callback, null, err, { opaque }); - })), body && (this.body = null, util.destroy(body, err)); + })), body2 && (this.body = null, util6.destroy(body2, err)); } }; - function stream(opts, factory, callback) { + function stream3(opts, factory, callback) { if (callback === void 0) return new Promise((resolve2, reject) => { - stream.call(this, opts, factory, (err, data) => err ? reject(err) : resolve2(data)); + stream3.call(this, opts, factory, (err, data) => err ? reject(err) : resolve2(data)); }); try { this.dispatch(opts, new StreamHandler(opts, factory, callback)); @@ -6719,23 +6719,23 @@ var require_api_stream = __commonJS({ queueMicrotask(() => callback(err, { opaque })); } } - module.exports = stream; + module.exports = stream3; } }); // node_modules/undici/lib/api/api-pipeline.js var require_api_pipeline = __commonJS({ - "node_modules/undici/lib/api/api-pipeline.js"(exports, module) { + "node_modules/undici/lib/api/api-pipeline.js"(exports2, module) { "use strict"; var { - Readable, + Readable: Readable7, Duplex, PassThrough } = __require("node:stream"), { InvalidArgumentError, InvalidReturnValueError, RequestAbortedError - } = require_errors(), util = require_util(), { AsyncResource } = __require("node:async_hooks"), { addSignal, removeSignal } = require_abort_signal(), assert = __require("node:assert"), kResume = /* @__PURE__ */ Symbol("resume"), PipelineRequest = class extends Readable { + } = require_errors(), util6 = require_util(), { AsyncResource } = __require("node:async_hooks"), { addSignal, removeSignal } = require_abort_signal(), assert4 = __require("node:assert"), kResume = /* @__PURE__ */ Symbol("resume"), PipelineRequest = class extends Readable7 { constructor() { super({ autoDestroy: !0 }), this[kResume] = null; } @@ -6746,7 +6746,7 @@ var require_api_pipeline = __commonJS({ _destroy(err, callback) { this._read(), callback(err); } - }, PipelineResponse = class extends Readable { + }, PipelineResponse = class extends Readable7 { constructor(resume) { super({ autoDestroy: !0 }), this[kResume] = resume; } @@ -6769,73 +6769,73 @@ var require_api_pipeline = __commonJS({ throw new InvalidArgumentError("invalid method"); if (onInfo && typeof onInfo != "function") throw new InvalidArgumentError("invalid onInfo callback"); - super("UNDICI_PIPELINE"), this.opaque = opaque || null, this.responseHeaders = responseHeaders || null, this.handler = handler, this.abort = null, this.context = null, this.onInfo = onInfo || null, this.req = new PipelineRequest().on("error", util.nop), this.ret = new Duplex({ + super("UNDICI_PIPELINE"), this.opaque = opaque || null, this.responseHeaders = responseHeaders || null, this.handler = handler, this.abort = null, this.context = null, this.onInfo = onInfo || null, this.req = new PipelineRequest().on("error", util6.nop), this.ret = new Duplex({ readableObjectMode: opts.objectMode, autoDestroy: !0, read: () => { - let { body } = this; - body?.resume && body.resume(); + let { body: body2 } = this; + body2?.resume && body2.resume(); }, write: (chunk, encoding, callback) => { let { req } = this; req.push(chunk, encoding) || req._readableState.destroyed ? callback() : req[kResume] = callback; }, destroy: (err, callback) => { - let { body, req, res, ret, abort } = this; - !err && !ret._readableState.endEmitted && (err = new RequestAbortedError()), abort && err && abort(), util.destroy(body, err), util.destroy(req, err), util.destroy(res, err), removeSignal(this), callback(err); + let { body: body2, req, res, ret, abort } = this; + !err && !ret._readableState.endEmitted && (err = new RequestAbortedError()), abort && err && abort(), util6.destroy(body2, err), util6.destroy(req, err), util6.destroy(res, err), removeSignal(this), callback(err); } }).on("prefinish", () => { let { req } = this; req.push(null); }), this.res = null, addSignal(this, signal); } - onConnect(abort, context) { + onConnect(abort, context3) { let { ret, res } = this; if (this.reason) { abort(this.reason); return; } - assert(!res, "pipeline cannot be retried"), assert(!ret.destroyed), this.abort = abort, this.context = context; + assert4(!res, "pipeline cannot be retried"), assert4(!ret.destroyed), this.abort = abort, this.context = context3; } onHeaders(statusCode, rawHeaders, resume) { - let { opaque, handler, context } = this; + let { opaque, handler, context: context3 } = this; if (statusCode < 200) { if (this.onInfo) { - let headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); + let headers = this.responseHeaders === "raw" ? util6.parseRawHeaders(rawHeaders) : util6.parseHeaders(rawHeaders); this.onInfo({ statusCode, headers }); } return; } this.res = new PipelineResponse(resume); - let body; + let body2; try { this.handler = null; - let headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); - body = this.runInAsyncScope(handler, null, { + let headers = this.responseHeaders === "raw" ? util6.parseRawHeaders(rawHeaders) : util6.parseHeaders(rawHeaders); + body2 = this.runInAsyncScope(handler, null, { statusCode, headers, opaque, body: this.res, - context + context: context3 }); } catch (err) { - throw this.res.on("error", util.nop), err; + throw this.res.on("error", util6.nop), err; } - if (!body || typeof body.on != "function") + if (!body2 || typeof body2.on != "function") throw new InvalidReturnValueError("expected Readable"); - body.on("data", (chunk) => { - let { ret, body: body2 } = this; - !ret.push(chunk) && body2.pause && body2.pause(); + body2.on("data", (chunk) => { + let { ret, body: body3 } = this; + !ret.push(chunk) && body3.pause && body3.pause(); }).on("error", (err) => { let { ret } = this; - util.destroy(ret, err); + util6.destroy(ret, err); }).on("end", () => { let { ret } = this; ret.push(null); }).on("close", () => { let { ret } = this; - ret._readableState.ended || util.destroy(ret, new RequestAbortedError()); - }), this.body = body; + ret._readableState.ended || util6.destroy(ret, new RequestAbortedError()); + }), this.body = body2; } onData(chunk) { let { res } = this; @@ -6847,10 +6847,10 @@ var require_api_pipeline = __commonJS({ } onError(err) { let { ret } = this; - this.handler = null, util.destroy(ret, err); + this.handler = null, util6.destroy(ret, err); } }; - function pipeline3(opts, handler) { + function pipeline5(opts, handler) { try { let pipelineHandler = new PipelineHandler(opts, handler); return this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler), pipelineHandler.ret; @@ -6858,15 +6858,15 @@ var require_api_pipeline = __commonJS({ return new PassThrough().destroy(err); } } - module.exports = pipeline3; + module.exports = pipeline5; } }); // node_modules/undici/lib/api/api-upgrade.js var require_api_upgrade = __commonJS({ - "node_modules/undici/lib/api/api-upgrade.js"(exports, module) { + "node_modules/undici/lib/api/api-upgrade.js"(exports2, module) { "use strict"; - var { InvalidArgumentError, SocketError } = require_errors(), { AsyncResource } = __require("node:async_hooks"), util = require_util(), { addSignal, removeSignal } = require_abort_signal(), assert = __require("node:assert"), UpgradeHandler = class extends AsyncResource { + var { InvalidArgumentError, SocketError } = require_errors(), { AsyncResource } = __require("node:async_hooks"), util6 = require_util(), { addSignal, removeSignal } = require_abort_signal(), assert4 = __require("node:assert"), UpgradeHandler = class extends AsyncResource { constructor(opts, callback) { if (!opts || typeof opts != "object") throw new InvalidArgumentError("invalid opts"); @@ -6877,26 +6877,26 @@ var require_api_upgrade = __commonJS({ throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); super("UNDICI_UPGRADE"), this.responseHeaders = responseHeaders || null, this.opaque = opaque || null, this.callback = callback, this.abort = null, this.context = null, addSignal(this, signal); } - onConnect(abort, context) { + onConnect(abort, context3) { if (this.reason) { abort(this.reason); return; } - assert(this.callback), this.abort = abort, this.context = null; + assert4(this.callback), this.abort = abort, this.context = null; } onHeaders() { throw new SocketError("bad upgrade", null); } onUpgrade(statusCode, rawHeaders, socket) { - assert(statusCode === 101); - let { callback, opaque, context } = this; + assert4(statusCode === 101); + let { callback, opaque, context: context3 } = this; removeSignal(this), this.callback = null; - let headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders); + let headers = this.responseHeaders === "raw" ? util6.parseRawHeaders(rawHeaders) : util6.parseHeaders(rawHeaders); this.runInAsyncScope(callback, null, null, { headers, socket, opaque, - context + context: context3 }); } onError(err) { @@ -6931,9 +6931,9 @@ var require_api_upgrade = __commonJS({ // node_modules/undici/lib/api/api-connect.js var require_api_connect = __commonJS({ - "node_modules/undici/lib/api/api-connect.js"(exports, module) { + "node_modules/undici/lib/api/api-connect.js"(exports2, module) { "use strict"; - var assert = __require("node:assert"), { AsyncResource } = __require("node:async_hooks"), { InvalidArgumentError, SocketError } = require_errors(), util = require_util(), { addSignal, removeSignal } = require_abort_signal(), ConnectHandler = class extends AsyncResource { + var assert4 = __require("node:assert"), { AsyncResource } = __require("node:async_hooks"), { InvalidArgumentError, SocketError } = require_errors(), util6 = require_util(), { addSignal, removeSignal } = require_abort_signal(), ConnectHandler = class extends AsyncResource { constructor(opts, callback) { if (!opts || typeof opts != "object") throw new InvalidArgumentError("invalid opts"); @@ -6944,26 +6944,26 @@ var require_api_connect = __commonJS({ throw new InvalidArgumentError("signal must be an EventEmitter or EventTarget"); super("UNDICI_CONNECT"), this.opaque = opaque || null, this.responseHeaders = responseHeaders || null, this.callback = callback, this.abort = null, addSignal(this, signal); } - onConnect(abort, context) { + onConnect(abort, context3) { if (this.reason) { abort(this.reason); return; } - assert(this.callback), this.abort = abort, this.context = context; + assert4(this.callback), this.abort = abort, this.context = context3; } onHeaders() { throw new SocketError("bad connect", null); } onUpgrade(statusCode, rawHeaders, socket) { - let { callback, opaque, context } = this; + let { callback, opaque, context: context3 } = this; removeSignal(this), this.callback = null; let headers = rawHeaders; - headers != null && (headers = this.responseHeaders === "raw" ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders)), this.runInAsyncScope(callback, null, null, { + headers != null && (headers = this.responseHeaders === "raw" ? util6.parseRawHeaders(rawHeaders) : util6.parseHeaders(rawHeaders)), this.runInAsyncScope(callback, null, null, { statusCode, headers, socket, opaque, - context + context: context3 }); } onError(err) { @@ -6994,7 +6994,7 @@ var require_api_connect = __commonJS({ // node_modules/undici/lib/api/index.js var require_api = __commonJS({ - "node_modules/undici/lib/api/index.js"(exports, module) { + "node_modules/undici/lib/api/index.js"(exports2, module) { "use strict"; module.exports.request = require_api_request(); module.exports.stream = require_api_stream(); @@ -7006,7 +7006,7 @@ var require_api = __commonJS({ // node_modules/undici/lib/mock/mock-errors.js var require_mock_errors = __commonJS({ - "node_modules/undici/lib/mock/mock-errors.js"(exports, module) { + "node_modules/undici/lib/mock/mock-errors.js"(exports2, module) { "use strict"; var { UndiciError } = require_errors(), kMockNotMatchedError = /* @__PURE__ */ Symbol.for("undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED"), MockNotMatchedError = class _MockNotMatchedError extends UndiciError { constructor(message) { @@ -7025,7 +7025,7 @@ var require_mock_errors = __commonJS({ // node_modules/undici/lib/mock/mock-symbols.js var require_mock_symbols = __commonJS({ - "node_modules/undici/lib/mock/mock-symbols.js"(exports, module) { + "node_modules/undici/lib/mock/mock-symbols.js"(exports2, module) { "use strict"; module.exports = { kAgent: /* @__PURE__ */ Symbol("agent"), @@ -7053,7 +7053,7 @@ var require_mock_symbols = __commonJS({ // node_modules/undici/lib/mock/mock-utils.js var require_mock_utils = __commonJS({ - "node_modules/undici/lib/mock/mock-utils.js"(exports, module) { + "node_modules/undici/lib/mock/mock-utils.js"(exports2, module) { "use strict"; var { MockNotMatchedError } = require_mock_errors(), { kDispatches, @@ -7066,8 +7066,8 @@ var require_mock_utils = __commonJS({ isPromise } } = __require("node:util"); - function matchValue(match, value) { - return typeof match == "string" ? match === value : match instanceof RegExp ? match.test(value) : typeof match == "function" ? match(value) === !0 : !1; + function matchValue(match2, value) { + return typeof match2 == "string" ? match2 === value : match2 instanceof RegExp ? match2.test(value) : typeof match2 == "function" ? match2(value) === !0 : !1; } function lowerCaseEntries(headers) { return Object.fromEntries( @@ -7102,29 +7102,29 @@ var require_mock_utils = __commonJS({ } return !0; } - function safeUrl(path4) { - if (typeof path4 != "string") - return path4; - let pathSegments = path4.split("?"); + function safeUrl(path12) { + if (typeof path12 != "string") + return path12; + let pathSegments = path12.split("?"); if (pathSegments.length !== 2) - return path4; + return path12; let qp = new URLSearchParams(pathSegments.pop()); return qp.sort(), [...pathSegments, qp.toString()].join("?"); } - function matchKey(mockDispatch2, { path: path4, method, body, headers }) { - let pathMatch = matchValue(mockDispatch2.path, path4), methodMatch = matchValue(mockDispatch2.method, method), bodyMatch = typeof mockDispatch2.body < "u" ? matchValue(mockDispatch2.body, body) : !0, headersMatch = matchHeaders(mockDispatch2, headers); + function matchKey(mockDispatch2, { path: path12, method, body: body2, headers }) { + let pathMatch = matchValue(mockDispatch2.path, path12), methodMatch = matchValue(mockDispatch2.method, method), bodyMatch = typeof mockDispatch2.body < "u" ? matchValue(mockDispatch2.body, body2) : !0, headersMatch = matchHeaders(mockDispatch2, headers); return pathMatch && methodMatch && bodyMatch && headersMatch; } function getResponseData(data) { return Buffer.isBuffer(data) || data instanceof Uint8Array || data instanceof ArrayBuffer ? data : typeof data == "object" ? JSON.stringify(data) : data.toString(); } function getMockDispatch(mockDispatches, key) { - let basePath = key.query ? buildURL(key.path, key.query) : key.path, resolvedPath = typeof basePath == "string" ? safeUrl(basePath) : basePath, matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path: path4 }) => matchValue(safeUrl(path4), resolvedPath)); + let basePath = key.query ? buildURL(key.path, key.query) : key.path, resolvedPath = typeof basePath == "string" ? safeUrl(basePath) : basePath, matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path: path12 }) => matchValue(safeUrl(path12), resolvedPath)); if (matchedMockDispatches.length === 0) throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`); if (matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method)), matchedMockDispatches.length === 0) throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}' on path '${resolvedPath}'`); - if (matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body < "u" ? matchValue(body, key.body) : !0), matchedMockDispatches.length === 0) + if (matchedMockDispatches = matchedMockDispatches.filter(({ body: body2 }) => typeof body2 < "u" ? matchValue(body2, key.body) : !0), matchedMockDispatches.length === 0) throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}' on path '${resolvedPath}'`); if (matchedMockDispatches = matchedMockDispatches.filter((mockDispatch2) => matchHeaders(mockDispatch2, key.headers)), matchedMockDispatches.length === 0) { let headers = typeof key.headers == "object" ? JSON.stringify(key.headers) : key.headers; @@ -7141,11 +7141,11 @@ var require_mock_utils = __commonJS({ index !== -1 && mockDispatches.splice(index, 1); } function buildKey(opts) { - let { path: path4, method, body, headers, query } = opts; + let { path: path12, method, body: body2, headers, query } = opts; return { - path: path4, + path: path12, method, - body, + body: body2, headers, query }; @@ -7165,28 +7165,28 @@ var require_mock_utils = __commonJS({ function getStatusText(statusCode) { return STATUS_CODES[statusCode] || "unknown"; } - async function getResponse(body) { + async function getResponse(body2) { let buffers = []; - for await (let data of body) + for await (let data of body2) buffers.push(data); return Buffer.concat(buffers).toString("utf8"); } function mockDispatch(opts, handler) { let key = buildKey(opts), mockDispatch2 = getMockDispatch(this[kDispatches], key); mockDispatch2.timesInvoked++, mockDispatch2.data.callback && (mockDispatch2.data = { ...mockDispatch2.data, ...mockDispatch2.data.callback(opts) }); - let { data: { statusCode, data, headers, trailers, error: error2 }, delay, persist } = mockDispatch2, { timesInvoked, times } = mockDispatch2; - if (mockDispatch2.consumed = !persist && timesInvoked >= times, mockDispatch2.pending = timesInvoked < times, error2 !== null) - return deleteMockDispatch(this[kDispatches], key), handler.onError(error2), !0; - typeof delay == "number" && delay > 0 ? setTimeout(() => { + let { data: { statusCode, data, headers, trailers, error: error3 }, delay: delay4, persist } = mockDispatch2, { timesInvoked, times } = mockDispatch2; + if (mockDispatch2.consumed = !persist && timesInvoked >= times, mockDispatch2.pending = timesInvoked < times, error3 !== null) + return deleteMockDispatch(this[kDispatches], key), handler.onError(error3), !0; + typeof delay4 == "number" && delay4 > 0 ? setTimeout(() => { handleReply(this[kDispatches]); - }, delay) : handleReply(this[kDispatches]); + }, delay4) : handleReply(this[kDispatches]); function handleReply(mockDispatches, _data = data) { - let optsHeaders = Array.isArray(opts.headers) ? buildHeadersFromArray(opts.headers) : opts.headers, body = typeof _data == "function" ? _data({ ...opts, headers: optsHeaders }) : _data; - if (isPromise(body)) { - body.then((newData) => handleReply(mockDispatches, newData)); + let optsHeaders = Array.isArray(opts.headers) ? buildHeadersFromArray(opts.headers) : opts.headers, body2 = typeof _data == "function" ? _data({ ...opts, headers: optsHeaders }) : _data; + if (isPromise(body2)) { + body2.then((newData) => handleReply(mockDispatches, newData)); return; } - let responseData = getResponseData(body), responseHeaders = generateKeyValues(headers), responseTrailers = generateKeyValues(trailers); + let responseData = getResponseData(body2), responseHeaders = generateKeyValues(headers), responseTrailers = generateKeyValues(trailers); handler.onConnect?.((err) => handler.onError(err), null), handler.onHeaders?.(statusCode, responseHeaders, resume, getStatusText(statusCode)), handler.onData?.(Buffer.from(responseData)), handler.onComplete?.(responseTrailers), deleteMockDispatch(mockDispatches, key); } function resume() { @@ -7199,25 +7199,25 @@ var require_mock_utils = __commonJS({ if (agent.isMockActive) try { mockDispatch.call(this, opts, handler); - } catch (error2) { - if (error2 instanceof MockNotMatchedError) { + } catch (error3) { + if (error3 instanceof MockNotMatchedError) { let netConnect = agent[kGetNetConnect](); if (netConnect === !1) - throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`); + throw new MockNotMatchedError(`${error3.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`); if (checkNetConnect(netConnect, origin)) originalDispatch.call(this, opts, handler); else - throw new MockNotMatchedError(`${error2.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`); + throw new MockNotMatchedError(`${error3.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`); } else - throw error2; + throw error3; } else originalDispatch.call(this, opts, handler); }; } function checkNetConnect(netConnect, origin) { - let url = new URL(origin); - return netConnect === !0 ? !0 : !!(Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))); + let url2 = new URL(origin); + return netConnect === !0 ? !0 : !!(Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url2.host))); } function buildMockOptions(opts) { if (opts) { @@ -7247,7 +7247,7 @@ var require_mock_utils = __commonJS({ // node_modules/undici/lib/mock/mock-interceptor.js var require_mock_interceptor = __commonJS({ - "node_modules/undici/lib/mock/mock-interceptor.js"(exports, module) { + "node_modules/undici/lib/mock/mock-interceptor.js"(exports2, module) { "use strict"; var { getResponseData, buildKey, addMockDispatch } = require_mock_utils(), { kDispatches, @@ -7298,7 +7298,7 @@ var require_mock_interceptor = __commonJS({ typeof opts.method == "string" && (opts.method = opts.method.toUpperCase()), this[kDispatchKey] = buildKey(opts), this[kDispatches] = mockDispatches, this[kDefaultHeaders] = {}, this[kDefaultTrailers] = {}, this[kContentLength] = !1; } createMockScopeDispatchData({ statusCode, data, responseOptions }) { - let responseData = getResponseData(data), contentLength = this[kContentLength] ? { "content-length": responseData.length } : {}, headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }, trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }; + let responseData = getResponseData(data), contentLength2 = this[kContentLength] ? { "content-length": responseData.length } : {}, headers = { ...this[kDefaultHeaders], ...contentLength2, ...responseOptions.headers }, trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }; return { statusCode, data, headers, trailers }; } validateReplyParameters(replyParameters) { @@ -7335,10 +7335,10 @@ var require_mock_interceptor = __commonJS({ /** * Mock an undici request with a defined error. */ - replyWithError(error2) { - if (typeof error2 > "u") + replyWithError(error3) { + if (typeof error3 > "u") throw new InvalidArgumentError("error must be defined"); - let newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error: error2 }); + let newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error: error3 }); return new MockScope(newMockDispatch); } /** @@ -7371,9 +7371,9 @@ var require_mock_interceptor = __commonJS({ // node_modules/undici/lib/mock/mock-client.js var require_mock_client = __commonJS({ - "node_modules/undici/lib/mock/mock-client.js"(exports, module) { + "node_modules/undici/lib/mock/mock-client.js"(exports2, module) { "use strict"; - var { promisify } = __require("node:util"), Client = require_client(), { buildMockDispatch } = require_mock_utils(), { + var { promisify: promisify4 } = __require("node:util"), Client = require_client(), { buildMockDispatch } = require_mock_utils(), { kDispatches, kMockAgent, kClose, @@ -7397,7 +7397,7 @@ var require_mock_client = __commonJS({ return new MockInterceptor(opts, this[kDispatches]); } async [kClose]() { - await promisify(this[kOriginalClose])(), this[kConnected] = 0, this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); + await promisify4(this[kOriginalClose])(), this[kConnected] = 0, this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } }; module.exports = MockClient; @@ -7406,9 +7406,9 @@ var require_mock_client = __commonJS({ // node_modules/undici/lib/mock/mock-pool.js var require_mock_pool = __commonJS({ - "node_modules/undici/lib/mock/mock-pool.js"(exports, module) { + "node_modules/undici/lib/mock/mock-pool.js"(exports2, module) { "use strict"; - var { promisify } = __require("node:util"), Pool = require_pool(), { buildMockDispatch } = require_mock_utils(), { + var { promisify: promisify4 } = __require("node:util"), Pool = require_pool(), { buildMockDispatch } = require_mock_utils(), { kDispatches, kMockAgent, kClose, @@ -7432,7 +7432,7 @@ var require_mock_pool = __commonJS({ return new MockInterceptor(opts, this[kDispatches]); } async [kClose]() { - await promisify(this[kOriginalClose])(), this[kConnected] = 0, this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); + await promisify4(this[kOriginalClose])(), this[kConnected] = 0, this[kMockAgent][Symbols.kClients].delete(this[kOrigin]); } }; module.exports = MockPool; @@ -7441,7 +7441,7 @@ var require_mock_pool = __commonJS({ // node_modules/undici/lib/mock/pluralizer.js var require_pluralizer = __commonJS({ - "node_modules/undici/lib/mock/pluralizer.js"(exports, module) { + "node_modules/undici/lib/mock/pluralizer.js"(exports2, module) { "use strict"; var singulars = { pronoun: "it", @@ -7468,12 +7468,12 @@ var require_pluralizer = __commonJS({ // node_modules/undici/lib/mock/pending-interceptors-formatter.js var require_pending_interceptors_formatter = __commonJS({ - "node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports, module) { + "node_modules/undici/lib/mock/pending-interceptors-formatter.js"(exports2, module) { "use strict"; - var { Transform } = __require("node:stream"), { Console } = __require("node:console"), PERSISTENT = process.versions.icu ? "\u2705" : "Y ", NOT_PERSISTENT = process.versions.icu ? "\u274C" : "N "; + var { Transform: Transform2 } = __require("node:stream"), { Console } = __require("node:console"), PERSISTENT = process.versions.icu ? "\u2705" : "Y ", NOT_PERSISTENT = process.versions.icu ? "\u274C" : "N "; module.exports = class { constructor({ disableColors } = {}) { - this.transform = new Transform({ + this.transform = new Transform2({ transform(chunk, _enc, cb) { cb(null, chunk); } @@ -7486,10 +7486,10 @@ var require_pending_interceptors_formatter = __commonJS({ } format(pendingInterceptors) { let withPrettyHeaders = pendingInterceptors.map( - ({ method, path: path4, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ + ({ method, path: path12, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ Method: method, Origin: origin, - Path: path4, + Path: path12, "Status code": statusCode, Persistent: persist ? PERSISTENT : NOT_PERSISTENT, Invocations: timesInvoked, @@ -7504,9 +7504,9 @@ var require_pending_interceptors_formatter = __commonJS({ // node_modules/undici/lib/mock/mock-agent.js var require_mock_agent = __commonJS({ - "node_modules/undici/lib/mock/mock-agent.js"(exports, module) { + "node_modules/undici/lib/mock/mock-agent.js"(exports2, module) { "use strict"; - var { kClients } = require_symbols(), Agent = require_agent(), { + var { kClients } = require_symbols(), Agent3 = require_agent(), { kAgent, kMockAgentSet, kMockAgentGet, @@ -7520,7 +7520,7 @@ var require_mock_agent = __commonJS({ constructor(opts) { if (super(opts), this[kNetConnect] = !0, this[kIsMockActive] = !0, opts?.agent && typeof opts.agent.dispatch != "function") throw new InvalidArgumentError("Argument opts.agent must implement Agent"); - let agent = opts?.agent ? opts.agent : new Agent(opts); + let agent = opts?.agent ? opts.agent : new Agent3(opts); this[kAgent] = agent, this[kClients] = agent[kClients], this[kOptions] = buildMockOptions(opts); } get(origin) { @@ -7601,10 +7601,10 @@ ${pendingInterceptorsFormatter.format(pending)} // node_modules/undici/lib/global.js var require_global2 = __commonJS({ - "node_modules/undici/lib/global.js"(exports, module) { + "node_modules/undici/lib/global.js"(exports2, module) { "use strict"; - var globalDispatcher = /* @__PURE__ */ Symbol.for("undici.globalDispatcher.1"), { InvalidArgumentError } = require_errors(), Agent = require_agent(); - getGlobalDispatcher() === void 0 && setGlobalDispatcher(new Agent()); + var globalDispatcher = /* @__PURE__ */ Symbol.for("undici.globalDispatcher.1"), { InvalidArgumentError } = require_errors(), Agent3 = require_agent(); + getGlobalDispatcher() === void 0 && setGlobalDispatcher(new Agent3()); function setGlobalDispatcher(agent) { if (!agent || typeof agent.dispatch != "function") throw new InvalidArgumentError("Argument agent must implement Agent"); @@ -7627,7 +7627,7 @@ var require_global2 = __commonJS({ // node_modules/undici/lib/handler/decorator-handler.js var require_decorator_handler = __commonJS({ - "node_modules/undici/lib/handler/decorator-handler.js"(exports, module) { + "node_modules/undici/lib/handler/decorator-handler.js"(exports2, module) { "use strict"; module.exports = class { #handler; @@ -7666,7 +7666,7 @@ var require_decorator_handler = __commonJS({ // node_modules/undici/lib/interceptor/redirect.js var require_redirect = __commonJS({ - "node_modules/undici/lib/interceptor/redirect.js"(exports, module) { + "node_modules/undici/lib/interceptor/redirect.js"(exports2, module) { "use strict"; var RedirectHandler = require_redirect_handler(); module.exports = (opts) => { @@ -7689,7 +7689,7 @@ var require_redirect = __commonJS({ // node_modules/undici/lib/interceptor/retry.js var require_retry = __commonJS({ - "node_modules/undici/lib/interceptor/retry.js"(exports, module) { + "node_modules/undici/lib/interceptor/retry.js"(exports2, module) { "use strict"; var RetryHandler = require_retry_handler(); module.exports = (globalOpts) => (dispatch) => function(opts, handler) { @@ -7709,9 +7709,9 @@ var require_retry = __commonJS({ // node_modules/undici/lib/interceptor/dump.js var require_dump = __commonJS({ - "node_modules/undici/lib/interceptor/dump.js"(exports, module) { + "node_modules/undici/lib/interceptor/dump.js"(exports2, module) { "use strict"; - var util = require_util(), { InvalidArgumentError, RequestAbortedError } = require_errors(), DecoratorHandler = require_decorator_handler(), DumpHandler = class extends DecoratorHandler { + var util6 = require_util(), { InvalidArgumentError, RequestAbortedError } = require_errors(), DecoratorHandler = require_decorator_handler(), DumpHandler = class extends DecoratorHandler { #maxSize = 1024 * 1024; #abort = null; #dumped = !1; @@ -7719,10 +7719,10 @@ var require_dump = __commonJS({ #size = 0; #reason = null; #handler = null; - constructor({ maxSize }, handler) { - if (super(handler), maxSize != null && (!Number.isFinite(maxSize) || maxSize < 1)) + constructor({ maxSize: maxSize2 }, handler) { + if (super(handler), maxSize2 != null && (!Number.isFinite(maxSize2) || maxSize2 < 1)) throw new InvalidArgumentError("maxSize must be a number greater than 0"); - this.#maxSize = maxSize ?? this.#maxSize, this.#handler = handler; + this.#maxSize = maxSize2 ?? this.#maxSize, this.#handler = handler; } onConnect(abort) { this.#abort = abort, this.#handler.onConnect(this.#customAbort.bind(this)); @@ -7732,10 +7732,10 @@ var require_dump = __commonJS({ } // TODO: will require adjustment after new hooks are out onHeaders(statusCode, rawHeaders, resume, statusMessage) { - let contentLength = util.parseHeaders(rawHeaders)["content-length"]; - if (contentLength != null && contentLength > this.#maxSize) + let contentLength2 = util6.parseHeaders(rawHeaders)["content-length"]; + if (contentLength2 != null && contentLength2 > this.#maxSize) throw new RequestAbortedError( - `Response size (${contentLength}) larger than maxSize (${this.#maxSize})` + `Response size (${contentLength2}) larger than maxSize (${this.#maxSize})` ); return this.#aborted ? !0 : this.#handler.onHeaders( statusCode, @@ -7777,7 +7777,7 @@ var require_dump = __commonJS({ // node_modules/undici/lib/interceptor/dns.js var require_dns = __commonJS({ - "node_modules/undici/lib/interceptor/dns.js"(exports, module) { + "node_modules/undici/lib/interceptor/dns.js"(exports2, module) { "use strict"; var { isIP } = __require("node:net"), { lookup } = __require("node:dns"), DecoratorHandler = require_decorator_handler(), { InvalidArgumentError, InformationalError } = require_errors(), maxInt = Math.pow(2, 31) - 1, DNSInstance = class { #maxTTL = 0; @@ -7886,8 +7886,8 @@ var require_dns = __commonJS({ #dispatch = null; #handler = null; #origin = null; - constructor(state, { origin, handler, dispatch }, opts) { - super(handler), this.#origin = origin, this.#handler = handler, this.#opts = { ...opts }, this.#state = state, this.#dispatch = dispatch; + constructor(state3, { origin, handler, dispatch }, opts) { + super(handler), this.#origin = origin, this.#handler = handler, this.#opts = { ...opts }, this.#state = state3, this.#dispatch = dispatch; } onError(err) { switch (err.code) { @@ -7970,13 +7970,13 @@ var require_dns = __commonJS({ // node_modules/undici/lib/web/fetch/headers.js var require_headers = __commonJS({ - "node_modules/undici/lib/web/fetch/headers.js"(exports, module) { + "node_modules/undici/lib/web/fetch/headers.js"(exports2, module) { "use strict"; var { kConstruct } = require_symbols(), { kEnumerableProperty } = require_util(), { iteratorMixin, isValidHeaderName, isValidHeaderValue - } = require_util2(), { webidl } = require_webidl(), assert = __require("node:assert"), util = __require("node:util"), kHeadersMap = /* @__PURE__ */ Symbol("headers map"), kHeadersSortedMap = /* @__PURE__ */ Symbol("headers map sorted"); + } = require_util2(), { webidl } = require_webidl(), assert4 = __require("node:assert"), util6 = __require("node:util"), kHeadersMap = /* @__PURE__ */ Symbol("headers map"), kHeadersSortedMap = /* @__PURE__ */ Symbol("headers map sorted"); function isHTTPWhiteSpaceCharCode(code) { return code === 10 || code === 13 || code === 9 || code === 32; } @@ -8055,10 +8055,10 @@ var require_headers = __commonJS({ this[kHeadersSortedMap] = null; let lowercaseName = isLowerCase ? name : name.toLowerCase(), exists3 = this[kHeadersMap].get(lowercaseName); if (exists3) { - let delimiter2 = lowercaseName === "cookie" ? "; " : ", "; + let delimiter3 = lowercaseName === "cookie" ? "; " : ", "; this[kHeadersMap].set(lowercaseName, { name: exists3.name, - value: `${exists3.value}${delimiter2}${value}` + value: `${exists3.value}${delimiter3}${value}` }); } else this[kHeadersMap].set(lowercaseName, { name, value }); @@ -8124,9 +8124,9 @@ var require_headers = __commonJS({ if (size === 0) return array; let iterator = this[kHeadersMap][Symbol.iterator](), firstValue = iterator.next().value; - array[0] = [firstValue[0], firstValue[1].value], assert(firstValue[1].value !== null); + array[0] = [firstValue[0], firstValue[1].value], assert4(firstValue[1].value !== null); for (let i = 1, j = 0, right = 0, left = 0, pivot = 0, x, value; i < size; ++i) { - for (value = iterator.next().value, x = array[i] = [value[0], value[1].value], assert(x[1] !== null), left = 0, right = i; left < right; ) + for (value = iterator.next().value, x = array[i] = [value[0], value[1].value], assert4(x[1] !== null), left = 0, right = i; left < right; ) pivot = left + (right - left >> 1), array[pivot][0] <= x[0] ? left = pivot + 1 : right = pivot; if (i !== pivot) { for (j = i; j > left; ) @@ -8140,11 +8140,11 @@ var require_headers = __commonJS({ } else { let i = 0; for (let { 0: name, 1: { value } } of this[kHeadersMap]) - array[i++] = [name, value], assert(value !== null); + array[i++] = [name, value], assert4(value !== null); return array.sort(compareHeaderName); } } - }, Headers2 = class _Headers { + }, Headers4 = class _Headers { #guard; #headersList; constructor(init = void 0) { @@ -8153,8 +8153,8 @@ var require_headers = __commonJS({ // https://fetch.spec.whatwg.org/#dom-headers-append append(name, value) { webidl.brandCheck(this, _Headers), webidl.argumentLengthCheck(arguments, 2, "Headers.append"); - let prefix = "Headers.append"; - return name = webidl.converters.ByteString(name, prefix, "name"), value = webidl.converters.ByteString(value, prefix, "value"), appendHeader(this, name, value); + let prefix2 = "Headers.append"; + return name = webidl.converters.ByteString(name, prefix2, "name"), value = webidl.converters.ByteString(value, prefix2, "value"), appendHeader(this, name, value); } // https://fetch.spec.whatwg.org/#dom-headers-delete delete(name) { @@ -8171,10 +8171,10 @@ var require_headers = __commonJS({ // https://fetch.spec.whatwg.org/#dom-headers-get get(name) { webidl.brandCheck(this, _Headers), webidl.argumentLengthCheck(arguments, 1, "Headers.get"); - let prefix = "Headers.get"; - if (name = webidl.converters.ByteString(name, prefix, "name"), !isValidHeaderName(name)) + let prefix2 = "Headers.get"; + if (name = webidl.converters.ByteString(name, prefix2, "name"), !isValidHeaderName(name)) throw webidl.errors.invalidArgument({ - prefix, + prefix: prefix2, value: name, type: "header name" }); @@ -8183,10 +8183,10 @@ var require_headers = __commonJS({ // https://fetch.spec.whatwg.org/#dom-headers-has has(name) { webidl.brandCheck(this, _Headers), webidl.argumentLengthCheck(arguments, 1, "Headers.has"); - let prefix = "Headers.has"; - if (name = webidl.converters.ByteString(name, prefix, "name"), !isValidHeaderName(name)) + let prefix2 = "Headers.has"; + if (name = webidl.converters.ByteString(name, prefix2, "name"), !isValidHeaderName(name)) throw webidl.errors.invalidArgument({ - prefix, + prefix: prefix2, value: name, type: "header name" }); @@ -8195,16 +8195,16 @@ var require_headers = __commonJS({ // https://fetch.spec.whatwg.org/#dom-headers-set set(name, value) { webidl.brandCheck(this, _Headers), webidl.argumentLengthCheck(arguments, 2, "Headers.set"); - let prefix = "Headers.set"; - if (name = webidl.converters.ByteString(name, prefix, "name"), value = webidl.converters.ByteString(value, prefix, "value"), value = headerValueNormalize(value), isValidHeaderName(name)) { + let prefix2 = "Headers.set"; + if (name = webidl.converters.ByteString(name, prefix2, "name"), value = webidl.converters.ByteString(value, prefix2, "value"), value = headerValueNormalize(value), isValidHeaderName(name)) { if (!isValidHeaderValue(value)) throw webidl.errors.invalidArgument({ - prefix, + prefix: prefix2, value, type: "header value" }); } else throw webidl.errors.invalidArgument({ - prefix, + prefix: prefix2, value: name, type: "header name" }); @@ -8235,8 +8235,8 @@ var require_headers = __commonJS({ } return this.#headersList[kHeadersSortedMap] = headers; } - [util.inspect.custom](depth, options) { - return options.depth ??= depth, `Headers ${util.formatWithOptions(options, this.#headersList.entries)}`; + [util6.inspect.custom](depth, options) { + return options.depth ??= depth, `Headers ${util6.formatWithOptions(options, this.#headersList.entries)}`; } static getHeadersGuard(o) { return o.#guard; @@ -8250,13 +8250,13 @@ var require_headers = __commonJS({ static setHeadersList(o, list) { o.#headersList = list; } - }, { getHeadersGuard, setHeadersGuard, getHeadersList, setHeadersList } = Headers2; - Reflect.deleteProperty(Headers2, "getHeadersGuard"); - Reflect.deleteProperty(Headers2, "setHeadersGuard"); - Reflect.deleteProperty(Headers2, "getHeadersList"); - Reflect.deleteProperty(Headers2, "setHeadersList"); - iteratorMixin("Headers", Headers2, kHeadersSortedMap, 0, 1); - Object.defineProperties(Headers2.prototype, { + }, { getHeadersGuard, setHeadersGuard, getHeadersList, setHeadersList } = Headers4; + Reflect.deleteProperty(Headers4, "getHeadersGuard"); + Reflect.deleteProperty(Headers4, "setHeadersGuard"); + Reflect.deleteProperty(Headers4, "getHeadersList"); + Reflect.deleteProperty(Headers4, "setHeadersList"); + iteratorMixin("Headers", Headers4, kHeadersSortedMap, 0, 1); + Object.defineProperties(Headers4.prototype, { append: kEnumerableProperty, delete: kEnumerableProperty, get: kEnumerableProperty, @@ -8267,19 +8267,19 @@ var require_headers = __commonJS({ value: "Headers", configurable: !0 }, - [util.inspect.custom]: { + [util6.inspect.custom]: { enumerable: !1 } }); - webidl.converters.HeadersInit = function(V, prefix, argument) { + webidl.converters.HeadersInit = function(V, prefix2, argument) { if (webidl.util.Type(V) === "Object") { let iterator = Reflect.get(V, Symbol.iterator); - if (!util.types.isProxy(V) && iterator === Headers2.prototype.entries) + if (!util6.types.isProxy(V) && iterator === Headers4.prototype.entries) try { return getHeadersList(V).entriesList; } catch { } - return typeof iterator == "function" ? webidl.converters["sequence>"](V, prefix, argument, iterator.bind(V)) : webidl.converters["record"](V, prefix, argument); + return typeof iterator == "function" ? webidl.converters["sequence>"](V, prefix2, argument, iterator.bind(V)) : webidl.converters["record"](V, prefix2, argument); } throw webidl.errors.conversionFailed({ prefix: "Headers constructor", @@ -8291,7 +8291,7 @@ var require_headers = __commonJS({ fill, // for test. compareHeaderName, - Headers: Headers2, + Headers: Headers4, HeadersList, getHeadersGuard, setHeadersGuard, @@ -8303,9 +8303,9 @@ var require_headers = __commonJS({ // node_modules/undici/lib/web/fetch/response.js var require_response = __commonJS({ - "node_modules/undici/lib/web/fetch/response.js"(exports, module) { + "node_modules/undici/lib/web/fetch/response.js"(exports2, module) { "use strict"; - var { Headers: Headers2, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers(), { extractBody, cloneBody, mixinBody, hasFinalizationRegistry, streamRegistry, bodyUnusable } = require_body(), util = require_util(), nodeUtil = __require("node:util"), { kEnumerableProperty } = util, { + var { Headers: Headers4, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers(), { extractBody, cloneBody, mixinBody, hasFinalizationRegistry, streamRegistry, bodyUnusable } = require_body(), util6 = require_util(), nodeUtil = __require("node:util"), { kEnumerableProperty } = util6, { isValidReasonPhrase, isCancelled, isAborted, @@ -8317,7 +8317,7 @@ var require_response = __commonJS({ } = require_util2(), { redirectStatusSet, nullBodyStatus - } = require_constants3(), { kState, kHeaders } = require_symbols2(), { webidl } = require_webidl(), { FormData } = require_formdata(), { URLSerializer } = require_data_url(), { kConstruct } = require_symbols(), assert = __require("node:assert"), { types } = __require("node:util"), textEncoder = new TextEncoder("utf-8"), Response = class _Response { + } = require_constants3(), { kState, kHeaders } = require_symbols2(), { webidl } = require_webidl(), { FormData: FormData2 } = require_formdata(), { URLSerializer } = require_data_url(), { kConstruct } = require_symbols(), assert4 = __require("node:assert"), { types } = __require("node:util"), textEncoder = new TextEncoder("utf-8"), Response2 = class _Response { // Creates network error Response. static error() { return fromInnerResponse(makeNetworkError(), "immutable"); @@ -8327,17 +8327,17 @@ var require_response = __commonJS({ webidl.argumentLengthCheck(arguments, 1, "Response.json"), init !== null && (init = webidl.converters.ResponseInit(init)); let bytes = textEncoder.encode( serializeJavascriptValueToJSONString(data) - ), body = extractBody(bytes), responseObject = fromInnerResponse(makeResponse({}), "response"); - return initializeResponse(responseObject, init, { body: body[0], type: "application/json" }), responseObject; + ), body2 = extractBody(bytes), responseObject = fromInnerResponse(makeResponse({}), "response"); + return initializeResponse(responseObject, init, { body: body2[0], type: "application/json" }), responseObject; } // Creates a redirect Response that redirects to url with status status. - static redirect(url, status = 302) { - webidl.argumentLengthCheck(arguments, 1, "Response.redirect"), url = webidl.converters.USVString(url), status = webidl.converters["unsigned short"](status); + static redirect(url2, status = 302) { + webidl.argumentLengthCheck(arguments, 1, "Response.redirect"), url2 = webidl.converters.USVString(url2), status = webidl.converters["unsigned short"](status); let parsedURL; try { - parsedURL = new URL(url, relevantRealm.settingsObject.baseUrl); + parsedURL = new URL(url2, relevantRealm.settingsObject.baseUrl); } catch (err) { - throw new TypeError(`Failed to parse URL from ${url}`, { cause: err }); + throw new TypeError(`Failed to parse URL from ${url2}`, { cause: err }); } if (!redirectStatusSet.has(status)) throw new RangeError(`Invalid status code ${status}`); @@ -8347,13 +8347,13 @@ var require_response = __commonJS({ return responseObject[kState].headersList.append("location", value, !0), responseObject; } // https://fetch.spec.whatwg.org/#dom-response - constructor(body = null, init = {}) { - if (webidl.util.markAsUncloneable(this), body === kConstruct) + constructor(body2 = null, init = {}) { + if (webidl.util.markAsUncloneable(this), body2 === kConstruct) return; - body !== null && (body = webidl.converters.BodyInit(body)), init = webidl.converters.ResponseInit(init), this[kState] = makeResponse({}), this[kHeaders] = new Headers2(kConstruct), setHeadersGuard(this[kHeaders], "response"), setHeadersList(this[kHeaders], this[kState].headersList); + body2 !== null && (body2 = webidl.converters.BodyInit(body2)), init = webidl.converters.ResponseInit(init), this[kState] = makeResponse({}), this[kHeaders] = new Headers4(kConstruct), setHeadersGuard(this[kHeaders], "response"), setHeadersList(this[kHeaders], this[kState].headersList); let bodyWithType = null; - if (body != null) { - let [extractedBody, type] = extractBody(body); + if (body2 != null) { + let [extractedBody, type] = extractBody(body2); bodyWithType = { body: extractedBody, type }; } initializeResponse(this, init, bodyWithType); @@ -8365,8 +8365,8 @@ var require_response = __commonJS({ // Returns response’s URL, if it has one; otherwise the empty string. get url() { webidl.brandCheck(this, _Response); - let urlList = this[kState].urlList, url = urlList[urlList.length - 1] ?? null; - return url === null ? "" : URLSerializer(url, !0); + let urlList = this[kState].urlList, url2 = urlList[urlList.length - 1] ?? null; + return url2 === null ? "" : URLSerializer(url2, !0); } // Returns whether response was obtained through a redirect. get redirected() { @@ -8392,7 +8392,7 @@ var require_response = __commonJS({ return webidl.brandCheck(this, _Response), this[kState].body ? this[kState].body.stream : null; } get bodyUsed() { - return webidl.brandCheck(this, _Response), !!this[kState].body && util.isDisturbed(this[kState].body.stream); + return webidl.brandCheck(this, _Response), !!this[kState].body && util6.isDisturbed(this[kState].body.stream); } // Returns a clone of response. clone() { @@ -8420,8 +8420,8 @@ var require_response = __commonJS({ return `Response ${nodeUtil.formatWithOptions(options, properties)}`; } }; - mixinBody(Response); - Object.defineProperties(Response.prototype, { + mixinBody(Response2); + Object.defineProperties(Response2.prototype, { type: kEnumerableProperty, url: kEnumerableProperty, status: kEnumerableProperty, @@ -8437,7 +8437,7 @@ var require_response = __commonJS({ configurable: !0 } }); - Object.defineProperties(Response, { + Object.defineProperties(Response2, { json: kEnumerableProperty, redirect: kEnumerableProperty, error: kEnumerableProperty @@ -8468,11 +8468,11 @@ var require_response = __commonJS({ }; } function makeNetworkError(reason) { - let isError = isErrorLike(reason); + let isError3 = isErrorLike(reason); return makeResponse({ type: "error", status: 0, - error: isError ? reason : new Error(reason && String(reason)), + error: isError3 ? reason : new Error(reason && String(reason)), aborted: reason && reason.name === "AbortError" }); } @@ -8483,16 +8483,16 @@ var require_response = __commonJS({ response.status === 0 ); } - function makeFilteredResponse(response, state) { - return state = { + function makeFilteredResponse(response, state3) { + return state3 = { internalResponse: response, - ...state + ...state3 }, new Proxy(response, { get(target, p) { - return p in state ? state[p] : target[p]; + return p in state3 ? state3[p] : target[p]; }, set(target, p, value) { - return assert(!(p in state)), target[p] = value, !0; + return assert4(!(p in state3)), target[p] = value, !0; } }); } @@ -8523,43 +8523,43 @@ var require_response = __commonJS({ headersList: [], body: null }); - assert(!1); + assert4(!1); } function makeAppropriateNetworkError(fetchParams, err = null) { - return assert(isCancelled(fetchParams)), isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException("The operation was aborted.", "AbortError"), { cause: err })) : makeNetworkError(Object.assign(new DOMException("Request was cancelled."), { cause: err })); + return assert4(isCancelled(fetchParams)), isAborted(fetchParams) ? makeNetworkError(Object.assign(new DOMException("The operation was aborted.", "AbortError"), { cause: err })) : makeNetworkError(Object.assign(new DOMException("Request was cancelled."), { cause: err })); } - function initializeResponse(response, init, body) { + function initializeResponse(response, init, body2) { if (init.status !== null && (init.status < 200 || init.status > 599)) throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.'); if ("statusText" in init && init.statusText != null && !isValidReasonPhrase(String(init.statusText))) throw new TypeError("Invalid statusText"); - if ("status" in init && init.status != null && (response[kState].status = init.status), "statusText" in init && init.statusText != null && (response[kState].statusText = init.statusText), "headers" in init && init.headers != null && fill(response[kHeaders], init.headers), body) { + if ("status" in init && init.status != null && (response[kState].status = init.status), "statusText" in init && init.statusText != null && (response[kState].statusText = init.statusText), "headers" in init && init.headers != null && fill(response[kHeaders], init.headers), body2) { if (nullBodyStatus.includes(response.status)) throw webidl.errors.exception({ header: "Response constructor", message: `Invalid response status code ${response.status}` }); - response[kState].body = body.body, body.type != null && !response[kState].headersList.contains("content-type", !0) && response[kState].headersList.append("content-type", body.type, !0); + response[kState].body = body2.body, body2.type != null && !response[kState].headersList.contains("content-type", !0) && response[kState].headersList.append("content-type", body2.type, !0); } } function fromInnerResponse(innerResponse, guard) { - let response = new Response(kConstruct); - return response[kState] = innerResponse, response[kHeaders] = new Headers2(kConstruct), setHeadersList(response[kHeaders], innerResponse.headersList), setHeadersGuard(response[kHeaders], guard), hasFinalizationRegistry && innerResponse.body?.stream && streamRegistry.register(response, new WeakRef(innerResponse.body.stream)), response; + let response = new Response2(kConstruct); + return response[kState] = innerResponse, response[kHeaders] = new Headers4(kConstruct), setHeadersList(response[kHeaders], innerResponse.headersList), setHeadersGuard(response[kHeaders], guard), hasFinalizationRegistry && innerResponse.body?.stream && streamRegistry.register(response, new WeakRef(innerResponse.body.stream)), response; } webidl.converters.ReadableStream = webidl.interfaceConverter( ReadableStream ); webidl.converters.FormData = webidl.interfaceConverter( - FormData + FormData2 ); webidl.converters.URLSearchParams = webidl.interfaceConverter( URLSearchParams ); - webidl.converters.XMLHttpRequestBodyInit = function(V, prefix, name) { - return typeof V == "string" ? webidl.converters.USVString(V, prefix, name) : isBlobLike(V) ? webidl.converters.Blob(V, prefix, name, { strict: !1 }) : ArrayBuffer.isView(V) || types.isArrayBuffer(V) ? webidl.converters.BufferSource(V, prefix, name) : util.isFormDataLike(V) ? webidl.converters.FormData(V, prefix, name, { strict: !1 }) : V instanceof URLSearchParams ? webidl.converters.URLSearchParams(V, prefix, name) : webidl.converters.DOMString(V, prefix, name); + webidl.converters.XMLHttpRequestBodyInit = function(V, prefix2, name) { + return typeof V == "string" ? webidl.converters.USVString(V, prefix2, name) : isBlobLike(V) ? webidl.converters.Blob(V, prefix2, name, { strict: !1 }) : ArrayBuffer.isView(V) || types.isArrayBuffer(V) ? webidl.converters.BufferSource(V, prefix2, name) : util6.isFormDataLike(V) ? webidl.converters.FormData(V, prefix2, name, { strict: !1 }) : V instanceof URLSearchParams ? webidl.converters.URLSearchParams(V, prefix2, name) : webidl.converters.DOMString(V, prefix2, name); }; - webidl.converters.BodyInit = function(V, prefix, argument) { - return V instanceof ReadableStream ? webidl.converters.ReadableStream(V, prefix, argument) : V?.[Symbol.asyncIterator] ? V : webidl.converters.XMLHttpRequestBodyInit(V, prefix, argument); + webidl.converters.BodyInit = function(V, prefix2, argument) { + return V instanceof ReadableStream ? webidl.converters.ReadableStream(V, prefix2, argument) : V?.[Symbol.asyncIterator] ? V : webidl.converters.XMLHttpRequestBodyInit(V, prefix2, argument); }; webidl.converters.ResponseInit = webidl.dictionaryConverter([ { @@ -8583,7 +8583,7 @@ var require_response = __commonJS({ makeResponse, makeAppropriateNetworkError, filterResponse, - Response, + Response: Response2, cloneResponse, fromInnerResponse }; @@ -8592,7 +8592,7 @@ var require_response = __commonJS({ // node_modules/undici/lib/web/fetch/dispatcher-weakref.js var require_dispatcher_weakref = __commonJS({ - "node_modules/undici/lib/web/fetch/dispatcher-weakref.js"(exports, module) { + "node_modules/undici/lib/web/fetch/dispatcher-weakref.js"(exports2, module) { "use strict"; var { kConnected, kSize } = require_symbols(), CompatWeakRef = class { constructor(value) { @@ -8624,9 +8624,9 @@ var require_dispatcher_weakref = __commonJS({ // node_modules/undici/lib/web/fetch/request.js var require_request2 = __commonJS({ - "node_modules/undici/lib/web/fetch/request.js"(exports, module) { + "node_modules/undici/lib/web/fetch/request.js"(exports2, module) { "use strict"; - var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body(), { Headers: Headers2, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers(), { FinalizationRegistry: FinalizationRegistry2 } = require_dispatcher_weakref()(), util = require_util(), nodeUtil = __require("node:util"), { + var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body(), { Headers: Headers4, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers(), { FinalizationRegistry: FinalizationRegistry2 } = require_dispatcher_weakref()(), util6 = require_util(), nodeUtil = __require("node:util"), { isValidHTTPToken, sameOrigin, environmentSettingsObject @@ -8639,7 +8639,7 @@ var require_request2 = __commonJS({ requestCredentials, requestCache, requestDuplex - } = require_constants3(), { kEnumerableProperty, normalizedMethodRecordsBase, normalizedMethodRecords } = util, { kHeaders, kSignal, kState, kDispatcher } = require_symbols2(), { webidl } = require_webidl(), { URLSerializer } = require_data_url(), { kConstruct } = require_symbols(), assert = __require("node:assert"), { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = __require("node:events"), kAbortController = /* @__PURE__ */ Symbol("abortController"), requestFinalizer = new FinalizationRegistry2(({ signal, abort }) => { + } = require_constants3(), { kEnumerableProperty, normalizedMethodRecordsBase, normalizedMethodRecords } = util6, { kHeaders, kSignal, kState, kDispatcher } = require_symbols2(), { webidl } = require_webidl(), { URLSerializer } = require_data_url(), { kConstruct } = require_symbols(), assert4 = __require("node:assert"), { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = __require("node:events"), kAbortController = /* @__PURE__ */ Symbol("abortController"), requestFinalizer = new FinalizationRegistry2(({ signal, abort }) => { signal.removeEventListener("abort", abort); }), dependentControllerMap = /* @__PURE__ */ new WeakMap(); function buildAbort(acRef) { @@ -8667,8 +8667,8 @@ var require_request2 = __commonJS({ constructor(input, init = {}) { if (webidl.util.markAsUncloneable(this), input === kConstruct) return; - let prefix = "Request constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix), input = webidl.converters.RequestInfo(input, prefix, "input"), init = webidl.converters.RequestInit(init, prefix, "init"); + let prefix2 = "Request constructor"; + webidl.argumentLengthCheck(arguments, 1, prefix2), input = webidl.converters.RequestInfo(input, prefix2, "input"), init = webidl.converters.RequestInit(init, prefix2, "init"); let request = null, fallbackMode = null, baseUrl = environmentSettingsObject.settingsObject.baseUrl, signal = null; if (typeof input == "string") { this[kDispatcher] = init.dispatcher; @@ -8684,11 +8684,11 @@ var require_request2 = __commonJS({ ); request = makeRequest({ urlList: [parsedURL] }), fallbackMode = "cors"; } else - this[kDispatcher] = init.dispatcher || input[kDispatcher], assert(input instanceof _Request), request = input[kState], signal = input[kSignal]; - let origin = environmentSettingsObject.settingsObject.origin, window = "client"; - if (request.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request.window, origin) && (window = request.window), init.window != null) - throw new TypeError(`'window' option '${window}' must be null`); - "window" in init && (window = "no-window"), request = makeRequest({ + this[kDispatcher] = init.dispatcher || input[kDispatcher], assert4(input instanceof _Request), request = input[kState], signal = input[kSignal]; + let origin = environmentSettingsObject.settingsObject.origin, window2 = "client"; + if (request.window?.constructor?.name === "EnvironmentSettingsObject" && sameOrigin(request.window, origin) && (window2 = request.window), init.window != null) + throw new TypeError(`'window' option '${window2}' must be null`); + "window" in init && (window2 = "no-window"), request = makeRequest({ // URL request’s URL. // undici implementation note: this is set as the first item in request's urlList in makeRequest // method request’s method. @@ -8701,7 +8701,7 @@ var require_request2 = __commonJS({ // client This’s relevant settings object. client: environmentSettingsObject.settingsObject, // window window. - window, + window: window2, // priority request’s priority. priority: request.priority, // origin request’s origin. The propagation of the origin is only significant for navigation requests @@ -8789,10 +8789,10 @@ var require_request2 = __commonJS({ (typeof getMaxListeners == "function" && getMaxListeners(signal) === defaultMaxListeners || getEventListeners(signal, "abort").length >= defaultMaxListeners) && setMaxListeners(1500, signal); } catch { } - util.addAbortListener(signal, abort), requestFinalizer.register(ac, { signal, abort }, abort); + util6.addAbortListener(signal, abort), requestFinalizer.register(ac, { signal, abort }, abort); } } - if (this[kHeaders] = new Headers2(kConstruct), setHeadersList(this[kHeaders], request.headersList), setHeadersGuard(this[kHeaders], "request"), mode === "no-cors") { + if (this[kHeaders] = new Headers4(kConstruct), setHeadersList(this[kHeaders], request.headersList), setHeadersGuard(this[kHeaders], "request"), mode === "no-cors") { if (!corsSafeListedMethodsSet.has(request.method)) throw new TypeError( `'${request.method} is unsupported in no-cors mode.` @@ -8813,11 +8813,11 @@ var require_request2 = __commonJS({ throw new TypeError("Request with GET/HEAD method cannot have body."); let initBody = null; if (init.body != null) { - let [extractedBody, contentType] = extractBody( + let [extractedBody, contentType2] = extractBody( init.body, request.keepalive ); - initBody = extractedBody, contentType && !getHeadersList(this[kHeaders]).contains("content-type", !0) && this[kHeaders].append("content-type", contentType); + initBody = extractedBody, contentType2 && !getHeadersList(this[kHeaders]).contains("content-type", !0) && this[kHeaders].append("content-type", contentType2); } let inputOrInitBody = initBody ?? inputBody; if (inputOrInitBody != null && inputOrInitBody.source == null) { @@ -8933,7 +8933,7 @@ var require_request2 = __commonJS({ return webidl.brandCheck(this, _Request), this[kState].body ? this[kState].body.stream : null; } get bodyUsed() { - return webidl.brandCheck(this, _Request), !!this[kState].body && util.isDisturbed(this[kState].body.stream); + return webidl.brandCheck(this, _Request), !!this[kState].body && util6.isDisturbed(this[kState].body.stream); } get duplex() { return webidl.brandCheck(this, _Request), "half"; @@ -8949,7 +8949,7 @@ var require_request2 = __commonJS({ let list = dependentControllerMap.get(this.signal); list === void 0 && (list = /* @__PURE__ */ new Set(), dependentControllerMap.set(this.signal, list)); let acRef = new WeakRef(ac); - list.add(acRef), util.addAbortListener( + list.add(acRef), util6.addAbortListener( ac.signal, buildAbort(acRef) ); @@ -9027,7 +9027,7 @@ var require_request2 = __commonJS({ } function fromInnerRequest(innerRequest, signal, guard) { let request = new Request(kConstruct); - return request[kState] = innerRequest, request[kSignal] = signal, request[kHeaders] = new Headers2(kConstruct), setHeadersList(request[kHeaders], innerRequest.headersList), setHeadersGuard(request[kHeaders], guard), request; + return request[kState] = innerRequest, request[kSignal] = signal, request[kHeaders] = new Headers4(kConstruct), setHeadersList(request[kHeaders], innerRequest.headersList), setHeadersGuard(request[kHeaders], guard), request; } Object.defineProperties(Request.prototype, { method: kEnumerableProperty, @@ -9058,8 +9058,8 @@ var require_request2 = __commonJS({ webidl.converters.Request = webidl.interfaceConverter( Request ); - webidl.converters.RequestInfo = function(V, prefix, argument) { - return typeof V == "string" ? webidl.converters.USVString(V, prefix, argument) : V instanceof Request ? webidl.converters.Request(V, prefix, argument) : webidl.converters.USVString(V, prefix, argument); + webidl.converters.RequestInfo = function(V, prefix2, argument) { + return typeof V == "string" ? webidl.converters.USVString(V, prefix2, argument) : V instanceof Request ? webidl.converters.Request(V, prefix2, argument) : webidl.converters.USVString(V, prefix2, argument); }; webidl.converters.AbortSignal = webidl.interfaceConverter( AbortSignal @@ -9153,7 +9153,7 @@ var require_request2 = __commonJS({ // node_modules/undici/lib/web/fetch/index.js var require_fetch = __commonJS({ - "node_modules/undici/lib/web/fetch/index.js"(exports, module) { + "node_modules/undici/lib/web/fetch/index.js"(exports2, module) { "use strict"; var { makeNetworkError, @@ -9161,7 +9161,7 @@ var require_fetch = __commonJS({ filterResponse, makeResponse, fromInnerResponse - } = require_response(), { HeadersList } = require_headers(), { Request, cloneRequest } = require_request2(), zlib = __require("node:zlib"), { + } = require_response(), { HeadersList } = require_headers(), { Request, cloneRequest } = require_request2(), zlib2 = __require("node:zlib"), { bytesMatch, makePolicyContainer, clonePolicyContainer, @@ -9195,13 +9195,13 @@ var require_fetch = __commonJS({ buildContentRange, createInflate, extractMimeType - } = require_util2(), { kState, kDispatcher } = require_symbols2(), assert = __require("node:assert"), { safelyExtractBody, extractBody } = require_body(), { + } = require_util2(), { kState, kDispatcher } = require_symbols2(), assert4 = __require("node:assert"), { safelyExtractBody, extractBody } = require_body(), { redirectStatusSet, nullBodyStatus, safeMethodsSet, requestBodyHeader, subresourceSet - } = require_constants3(), EE = __require("node:events"), { Readable, pipeline: pipeline3, finished } = __require("node:stream"), { addAbortListener, isErrored, isReadable, bufferToLowerCasedHeaderName } = require_util(), { dataURLProcessor, serializeAMimeType, minimizeSupportedMimeType } = require_data_url(), { getGlobalDispatcher } = require_global2(), { webidl } = require_webidl(), { STATUS_CODES } = __require("node:http"), GET_OR_HEAD = ["GET", "HEAD"], defaultUserAgent = typeof __UNDICI_IS_NODE__ < "u" || typeof esbuildDetection < "u" ? "node" : "undici", resolveObjectURL, Fetch = class extends EE { + } = require_constants3(), EE = __require("node:events"), { Readable: Readable7, pipeline: pipeline5, finished } = __require("node:stream"), { addAbortListener, isErrored, isReadable, bufferToLowerCasedHeaderName } = require_util(), { dataURLProcessor, serializeAMimeType, minimizeSupportedMimeType } = require_data_url(), { getGlobalDispatcher } = require_global2(), { webidl } = require_webidl(), { STATUS_CODES } = __require("node:http"), GET_OR_HEAD = ["GET", "HEAD"], defaultUserAgent = typeof __UNDICI_IS_NODE__ < "u" || typeof esbuildDetection < "u" ? "node" : "undici", resolveObjectURL, Fetch = class extends EE { constructor(dispatcher) { super(), this.dispatcher = dispatcher, this.connection = null, this.dump = !1, this.state = "ongoing"; } @@ -9209,8 +9209,8 @@ var require_fetch = __commonJS({ this.state === "ongoing" && (this.state = "terminated", this.connection?.destroy(reason), this.emit("terminated", reason)); } // https://fetch.spec.whatwg.org/#fetch-controller-abort - abort(error2) { - this.state === "ongoing" && (this.state = "aborted", error2 || (error2 = new DOMException("The operation was aborted.", "AbortError")), this.serializedAbortReason = error2, this.connection?.destroy(error2), this.emit("terminated", error2)); + abort(error3) { + this.state === "ongoing" && (this.state = "aborted", error3 || (error3 = new DOMException("The operation was aborted.", "AbortError")), this.serializedAbortReason = error3, this.connection?.destroy(error3), this.emit("terminated", error3)); } }; function handleFetchDone(response) { @@ -9232,7 +9232,7 @@ var require_fetch = __commonJS({ return addAbortListener( requestObject.signal, () => { - locallyAborted = !0, assert(controller != null), controller.abort(requestObject.signal.reason); + locallyAborted = !0, assert4(controller != null), controller.abort(requestObject.signal.reason); let realResponse = responseObject?.deref(); abortFetch(p, request, realResponse, requestObject.signal.reason); } @@ -9271,14 +9271,14 @@ var require_fetch = __commonJS({ )); } var markResourceTiming = performance.markResourceTiming; - function abortFetch(p, request, responseObject, error2) { - if (p && p.reject(error2), request.body != null && isReadable(request.body?.stream) && request.body.stream.cancel(error2).catch((err) => { + function abortFetch(p, request, responseObject, error3) { + if (p && p.reject(error3), request.body != null && isReadable(request.body?.stream) && request.body.stream.cancel(error3).catch((err) => { if (err.code !== "ERR_INVALID_STATE") throw err; }), responseObject == null) return; let response = responseObject[kState]; - response.body != null && isReadable(response.body?.stream) && response.body.stream.cancel(error2).catch((err) => { + response.body != null && isReadable(response.body?.stream) && response.body.stream.cancel(error3).catch((err) => { if (err.code !== "ERR_INVALID_STATE") throw err; }); @@ -9294,7 +9294,7 @@ var require_fetch = __commonJS({ dispatcher = getGlobalDispatcher() // undici }) { - assert(dispatcher); + assert4(dispatcher); let taskDestination = null, crossOriginIsolatedCapability = !1; request.client != null && (taskDestination = request.client.globalObject, crossOriginIsolatedCapability = request.client.crossOriginIsolatedCapability); let currentTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability), timingInfo = createOpaqueTimingInfo({ @@ -9311,7 +9311,7 @@ var require_fetch = __commonJS({ taskDestination, crossOriginIsolatedCapability }; - return assert(!request.body || request.body.stream), request.window === "client" && (request.window = request.client?.globalObject?.constructor?.name === "Window" ? request.client : "no-window"), request.origin === "client" && (request.origin = request.client.origin), request.policyContainer === "client" && (request.client != null ? request.policyContainer = clonePolicyContainer( + return assert4(!request.body || request.body.stream), request.window === "client" && (request.window = request.client?.globalObject?.constructor?.name === "Window" ? request.client : "no-window"), request.origin === "client" && (request.origin = request.client.origin), request.policyContainer === "client" && (request.client != null ? request.policyContainer = clonePolicyContainer( request.client.policyContainer ) : request.policyContainer = makePolicyContainer()), request.headersList.contains("accept", !0) || request.headersList.append("accept", "*/*", !0), request.headersList.contains("accept-language", !0) || request.headersList.append("accept-language", "*", !0), request.priority, subresourceSet.has(request.destination), mainFetch(fetchParams).catch((err) => { fetchParams.controller.terminate(err); @@ -9332,7 +9332,7 @@ var require_fetch = __commonJS({ ); })()), recursive) return response; - response.status !== 0 && !response.internalResponse && (request.responseTainting, request.responseTainting === "basic" ? response = filterResponse(response, "basic") : request.responseTainting === "cors" ? response = filterResponse(response, "cors") : request.responseTainting === "opaque" ? response = filterResponse(response, "opaque") : assert(!1)); + response.status !== 0 && !response.internalResponse && (request.responseTainting, request.responseTainting === "basic" ? response = filterResponse(response, "basic") : request.responseTainting === "cors" ? response = filterResponse(response, "cors") : request.responseTainting === "opaque" ? response = filterResponse(response, "opaque") : assert4(!1)); let internalResponse = response.status === 0 ? response : response.internalResponse; if (internalResponse.urlList.length === 0 && internalResponse.urlList.push(...request.urlList), request.timingAllowFailed || (response.timingAllowPassed = !0), response.type === "opaque" && internalResponse.status === 206 && internalResponse.rangeRequested && !request.headers.contains("range", !0) && (response = internalResponse = makeNetworkError()), response.status !== 0 && (request.method === "HEAD" || request.method === "CONNECT" || nullBodyStatus.includes(internalResponse.status)) && (internalResponse.body = null, fetchParams.controller.dump = !0), request.integrity) { let processBodyError = (reason) => fetchFinale(fetchParams, makeNetworkError(reason)); @@ -9457,7 +9457,7 @@ var require_fetch = __commonJS({ request.client, request.destination, actualResponse - ) === "blocked" ? makeNetworkError("blocked") : (redirectStatusSet.has(actualResponse.status) && (request.redirect !== "manual" && fetchParams.controller.connection.destroy(void 0, !1), request.redirect === "error" ? response = makeNetworkError("unexpected redirect") : request.redirect === "manual" ? response = actualResponse : request.redirect === "follow" ? response = await httpRedirectFetch(fetchParams, response) : assert(!1)), response.timingInfo = timingInfo, response); + ) === "blocked" ? makeNetworkError("blocked") : (redirectStatusSet.has(actualResponse.status) && (request.redirect !== "manual" && fetchParams.controller.connection.destroy(void 0, !1), request.redirect === "error" ? response = makeNetworkError("unexpected redirect") : request.redirect === "manual" ? response = actualResponse : request.redirect === "follow" ? response = await httpRedirectFetch(fetchParams, response) : assert4(!1)), response.timingInfo = timingInfo, response); } function httpRedirectFetch(fetchParams, response) { let request = fetchParams.request, actualResponse = response.internalResponse ? response.internalResponse : response, locationURL; @@ -9487,15 +9487,15 @@ var require_fetch = __commonJS({ for (let headerName of requestBodyHeader) request.headersList.delete(headerName); } - sameOrigin(requestCurrentURL(request), locationURL) || (request.headersList.delete("authorization", !0), request.headersList.delete("proxy-authorization", !0), request.headersList.delete("cookie", !0), request.headersList.delete("host", !0)), request.body != null && (assert(request.body.source != null), request.body = safelyExtractBody(request.body.source)[0]); + sameOrigin(requestCurrentURL(request), locationURL) || (request.headersList.delete("authorization", !0), request.headersList.delete("proxy-authorization", !0), request.headersList.delete("cookie", !0), request.headersList.delete("host", !0)), request.body != null && (assert4(request.body.source != null), request.body = safelyExtractBody(request.body.source)[0]); let timingInfo = fetchParams.timingInfo; return timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability), timingInfo.redirectStartTime === 0 && (timingInfo.redirectStartTime = timingInfo.startTime), request.urlList.push(locationURL), setRequestReferrerPolicyOnRedirect(request, actualResponse), mainFetch(fetchParams, !0); } async function httpNetworkOrCacheFetch(fetchParams, isAuthenticationFetch = !1, isNewConnectionFetch = !1) { let request = fetchParams.request, httpFetchParams = null, httpRequest = null, response = null, httpCache = null, revalidatingFlag = !1; request.window === "no-window" && request.redirect === "error" ? (httpFetchParams = fetchParams, httpRequest = request) : (httpRequest = cloneRequest(request), httpFetchParams = { ...fetchParams }, httpFetchParams.request = httpRequest); - let includeCredentials = request.credentials === "include" || request.credentials === "same-origin" && request.responseTainting === "basic", contentLength = httpRequest.body ? httpRequest.body.length : null, contentLengthHeaderValue = null; - if (httpRequest.body == null && ["POST", "PUT"].includes(httpRequest.method) && (contentLengthHeaderValue = "0"), contentLength != null && (contentLengthHeaderValue = isomorphicEncode(`${contentLength}`)), contentLengthHeaderValue != null && httpRequest.headersList.append("content-length", contentLengthHeaderValue, !0), contentLength != null && httpRequest.keepalive, httpRequest.referrer instanceof URL && httpRequest.headersList.append("referer", isomorphicEncode(httpRequest.referrer.href), !0), appendRequestOriginHeader(httpRequest), appendFetchMetadata(httpRequest), httpRequest.headersList.contains("user-agent", !0) || httpRequest.headersList.append("user-agent", defaultUserAgent), httpRequest.cache === "default" && (httpRequest.headersList.contains("if-modified-since", !0) || httpRequest.headersList.contains("if-none-match", !0) || httpRequest.headersList.contains("if-unmodified-since", !0) || httpRequest.headersList.contains("if-match", !0) || httpRequest.headersList.contains("if-range", !0)) && (httpRequest.cache = "no-store"), httpRequest.cache === "no-cache" && !httpRequest.preventNoCacheCacheControlHeaderModification && !httpRequest.headersList.contains("cache-control", !0) && httpRequest.headersList.append("cache-control", "max-age=0", !0), (httpRequest.cache === "no-store" || httpRequest.cache === "reload") && (httpRequest.headersList.contains("pragma", !0) || httpRequest.headersList.append("pragma", "no-cache", !0), httpRequest.headersList.contains("cache-control", !0) || httpRequest.headersList.append("cache-control", "no-cache", !0)), httpRequest.headersList.contains("range", !0) && httpRequest.headersList.append("accept-encoding", "identity", !0), httpRequest.headersList.contains("accept-encoding", !0) || (urlHasHttpsScheme(requestCurrentURL(httpRequest)) ? httpRequest.headersList.append("accept-encoding", "br, gzip, deflate", !0) : httpRequest.headersList.append("accept-encoding", "gzip, deflate", !0)), httpRequest.headersList.delete("host", !0), httpCache == null && (httpRequest.cache = "no-store"), httpRequest.cache !== "no-store" && httpRequest.cache, response == null) { + let includeCredentials = request.credentials === "include" || request.credentials === "same-origin" && request.responseTainting === "basic", contentLength2 = httpRequest.body ? httpRequest.body.length : null, contentLengthHeaderValue = null; + if (httpRequest.body == null && ["POST", "PUT"].includes(httpRequest.method) && (contentLengthHeaderValue = "0"), contentLength2 != null && (contentLengthHeaderValue = isomorphicEncode(`${contentLength2}`)), contentLengthHeaderValue != null && httpRequest.headersList.append("content-length", contentLengthHeaderValue, !0), contentLength2 != null && httpRequest.keepalive, httpRequest.referrer instanceof URL && httpRequest.headersList.append("referer", isomorphicEncode(httpRequest.referrer.href), !0), appendRequestOriginHeader(httpRequest), appendFetchMetadata(httpRequest), httpRequest.headersList.contains("user-agent", !0) || httpRequest.headersList.append("user-agent", defaultUserAgent), httpRequest.cache === "default" && (httpRequest.headersList.contains("if-modified-since", !0) || httpRequest.headersList.contains("if-none-match", !0) || httpRequest.headersList.contains("if-unmodified-since", !0) || httpRequest.headersList.contains("if-match", !0) || httpRequest.headersList.contains("if-range", !0)) && (httpRequest.cache = "no-store"), httpRequest.cache === "no-cache" && !httpRequest.preventNoCacheCacheControlHeaderModification && !httpRequest.headersList.contains("cache-control", !0) && httpRequest.headersList.append("cache-control", "max-age=0", !0), (httpRequest.cache === "no-store" || httpRequest.cache === "reload") && (httpRequest.headersList.contains("pragma", !0) || httpRequest.headersList.append("pragma", "no-cache", !0), httpRequest.headersList.contains("cache-control", !0) || httpRequest.headersList.append("cache-control", "no-cache", !0)), httpRequest.headersList.contains("range", !0) && httpRequest.headersList.append("accept-encoding", "identity", !0), httpRequest.headersList.contains("accept-encoding", !0) || (urlHasHttpsScheme(requestCurrentURL(httpRequest)) ? httpRequest.headersList.append("accept-encoding", "br, gzip, deflate", !0) : httpRequest.headersList.append("accept-encoding", "gzip, deflate", !0)), httpRequest.headersList.delete("host", !0), httpCache == null && (httpRequest.cache = "no-store"), httpRequest.cache !== "no-store" && httpRequest.cache, response == null) { if (httpRequest.cache === "only-if-cached") return makeNetworkError("only if cached"); let forwardResponse = await httpNetworkFetch( @@ -9524,7 +9524,7 @@ var require_fetch = __commonJS({ return response; } async function httpNetworkFetch(fetchParams, includeCredentials = !1, forceNewConnection = !1) { - assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed), fetchParams.controller.connection = { + assert4(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed), fetchParams.controller.connection = { abort: null, destroyed: !1, destroy(err, abort = !0) { @@ -9557,11 +9557,11 @@ var require_fetch = __commonJS({ })(); } try { - let { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody }); + let { body: body2, status, statusText, headersList, socket } = await dispatch({ body: requestBody }); if (socket) response = makeResponse({ status, statusText, headersList, socket }); else { - let iterator = body[Symbol.asyncIterator](); + let iterator = body2[Symbol.asyncIterator](); fetchParams.controller.next = () => iterator.next(), response = makeResponse({ status, statusText, headersList }); } } catch (err) { @@ -9571,7 +9571,7 @@ var require_fetch = __commonJS({ await fetchParams.controller.resume(); }, cancelAlgorithm = (reason) => { isCancelled(fetchParams) || fetchParams.controller.abort(reason); - }, stream = new ReadableStream( + }, stream3 = new ReadableStream( { async start(controller) { fetchParams.controller.controller = controller; @@ -9585,7 +9585,7 @@ var require_fetch = __commonJS({ type: "bytes" } ); - response.body = { stream, source: null, length: null }, fetchParams.controller.onAborted = onAborted, fetchParams.controller.on("terminated", onAborted), fetchParams.controller.resume = async () => { + response.body = { stream: stream3, source: null, length: null }, fetchParams.controller.onAborted = onAborted, fetchParams.controller.on("terminated", onAborted), fetchParams.controller.resume = async () => { for (; ; ) { let bytes, isFailure; try { @@ -9604,8 +9604,8 @@ var require_fetch = __commonJS({ fetchParams.controller.terminate(bytes); return; } - let buffer = new Uint8Array(bytes); - if (buffer.byteLength && fetchParams.controller.controller.enqueue(buffer), isErrored(stream)) { + let buffer3 = new Uint8Array(bytes); + if (buffer3.byteLength && fetchParams.controller.controller.enqueue(buffer3), isErrored(stream3)) { fetchParams.controller.terminate(); return; } @@ -9614,21 +9614,21 @@ var require_fetch = __commonJS({ } }; function onAborted(reason) { - isAborted(fetchParams) ? (response.aborted = !0, isReadable(stream) && fetchParams.controller.controller.error( + isAborted(fetchParams) ? (response.aborted = !0, isReadable(stream3) && fetchParams.controller.controller.error( fetchParams.controller.serializedAbortReason - )) : isReadable(stream) && fetchParams.controller.controller.error(new TypeError("terminated", { + )) : isReadable(stream3) && fetchParams.controller.controller.error(new TypeError("terminated", { cause: isErrorLike(reason) ? reason : void 0 })), fetchParams.controller.connection.destroy(); } return response; - function dispatch({ body }) { - let url = requestCurrentURL(request), agent = fetchParams.controller.dispatcher; + function dispatch({ body: body2 }) { + let url2 = requestCurrentURL(request), agent = fetchParams.controller.dispatcher; return new Promise((resolve2, reject) => agent.dispatch( { - path: url.pathname + url.search, - origin: url.origin, + path: url2.pathname + url2.search, + origin: url2.origin, method: request.method, - body: agent.isMockActive ? request.body && (request.body.source || request.body.stream) : body, + body: agent.isMockActive ? request.body && (request.body.source || request.body.stream) : body2, headers: request.headersList.entries, maxRedirections: 0, upgrade: request.mode === "websocket" ? "websocket" : void 0 @@ -9649,7 +9649,7 @@ var require_fetch = __commonJS({ let location = "", headersList = new HeadersList(); for (let i = 0; i < rawHeaders.length; i += 2) headersList.append(bufferToLowerCasedHeaderName(rawHeaders[i]), rawHeaders[i + 1].toString("latin1"), !0); - location = headersList.get("location", !0), this.body = new Readable({ read: resume }); + location = headersList.get("location", !0), this.body = new Readable7({ read: resume }); let decoders = [], willFollow = location && request.redirect === "follow" && redirectStatusSet.has(status); if (request.method !== "HEAD" && request.method !== "CONNECT" && !nullBodyStatus.includes(status) && !willFollow) { let contentEncoding = headersList.get("content-encoding", !0), codings = contentEncoding ? contentEncoding.toLowerCase().split(",") : [], maxContentEncodings = 5; @@ -9658,23 +9658,23 @@ var require_fetch = __commonJS({ for (let i = codings.length - 1; i >= 0; --i) { let coding = codings[i].trim(); if (coding === "x-gzip" || coding === "gzip") - decoders.push(zlib.createGunzip({ + decoders.push(zlib2.createGunzip({ // Be less strict when decoding compressed responses, since sometimes // servers send slightly invalid responses that are still accepted // by common browsers. // Always using Z_SYNC_FLUSH is what cURL does. - flush: zlib.constants.Z_SYNC_FLUSH, - finishFlush: zlib.constants.Z_SYNC_FLUSH + flush: zlib2.constants.Z_SYNC_FLUSH, + finishFlush: zlib2.constants.Z_SYNC_FLUSH })); else if (coding === "deflate") decoders.push(createInflate({ - flush: zlib.constants.Z_SYNC_FLUSH, - finishFlush: zlib.constants.Z_SYNC_FLUSH + flush: zlib2.constants.Z_SYNC_FLUSH, + finishFlush: zlib2.constants.Z_SYNC_FLUSH })); else if (coding === "br") - decoders.push(zlib.createBrotliDecompress({ - flush: zlib.constants.BROTLI_OPERATION_FLUSH, - finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH + decoders.push(zlib2.createBrotliDecompress({ + flush: zlib2.constants.BROTLI_OPERATION_FLUSH, + finishFlush: zlib2.constants.BROTLI_OPERATION_FLUSH })); else { decoders.length = 0; @@ -9687,7 +9687,7 @@ var require_fetch = __commonJS({ status, statusText, headersList, - body: decoders.length ? pipeline3(this.body, ...decoders, (err) => { + body: decoders.length ? pipeline5(this.body, ...decoders, (err) => { err && this.onError(err); }).on("error", onError) : this.body.on("error", onError) }), !0; @@ -9701,8 +9701,8 @@ var require_fetch = __commonJS({ onComplete() { this.abort && fetchParams.controller.off("terminated", this.abort), fetchParams.controller.onAborted && fetchParams.controller.off("terminated", fetchParams.controller.onAborted), fetchParams.controller.ended = !0, this.body.push(null); }, - onError(error2) { - this.abort && fetchParams.controller.off("terminated", this.abort), this.body?.destroy(error2), fetchParams.controller.terminate(error2), reject(error2); + onError(error3) { + this.abort && fetchParams.controller.off("terminated", this.abort), this.body?.destroy(error3), fetchParams.controller.terminate(error3), reject(error3); }, onUpgrade(status, rawHeaders, socket) { if (status !== 101) @@ -9732,7 +9732,7 @@ var require_fetch = __commonJS({ // node_modules/undici/lib/web/fileapi/symbols.js var require_symbols3 = __commonJS({ - "node_modules/undici/lib/web/fileapi/symbols.js"(exports, module) { + "node_modules/undici/lib/web/fileapi/symbols.js"(exports2, module) { "use strict"; module.exports = { kState: /* @__PURE__ */ Symbol("FileReader state"), @@ -9747,7 +9747,7 @@ var require_symbols3 = __commonJS({ // node_modules/undici/lib/web/fileapi/progressevent.js var require_progressevent = __commonJS({ - "node_modules/undici/lib/web/fileapi/progressevent.js"(exports, module) { + "node_modules/undici/lib/web/fileapi/progressevent.js"(exports2, module) { "use strict"; var { webidl } = require_webidl(), kState = /* @__PURE__ */ Symbol("ProgressEvent state"), ProgressEvent = class _ProgressEvent extends Event { constructor(type, eventInitDict = {}) { @@ -9807,7 +9807,7 @@ var require_progressevent = __commonJS({ // node_modules/undici/lib/web/fileapi/encoding.js var require_encoding = __commonJS({ - "node_modules/undici/lib/web/fileapi/encoding.js"(exports, module) { + "node_modules/undici/lib/web/fileapi/encoding.js"(exports2, module) { "use strict"; function getEncoding(label) { if (!label) @@ -10092,7 +10092,7 @@ var require_encoding = __commonJS({ // node_modules/undici/lib/web/fileapi/util.js var require_util4 = __commonJS({ - "node_modules/undici/lib/web/fileapi/util.js"(exports, module) { + "node_modules/undici/lib/web/fileapi/util.js"(exports2, module) { "use strict"; var { kState, @@ -10100,7 +10100,7 @@ var require_util4 = __commonJS({ kResult, kAborted, kLastProgressEventFired - } = require_symbols3(), { ProgressEvent } = require_progressevent(), { getEncoding } = require_encoding(), { serializeAMimeType, parseMIMEType } = require_data_url(), { types } = __require("node:util"), { StringDecoder: StringDecoder2 } = __require("string_decoder"), { btoa } = __require("node:buffer"), staticPropertyDescriptors = { + } = require_symbols3(), { ProgressEvent } = require_progressevent(), { getEncoding } = require_encoding(), { serializeAMimeType, parseMIMEType } = require_data_url(), { types } = __require("node:util"), { StringDecoder: StringDecoder2 } = __require("string_decoder"), { btoa: btoa2 } = __require("node:buffer"), staticPropertyDescriptors = { enumerable: !0, writable: !1, configurable: !1 @@ -10128,18 +10128,18 @@ var require_util4 = __commonJS({ if (fr[kAborted]) return; fr[kResult] = result, fireAProgressEvent("load", fr); - } catch (error2) { - fr[kError] = error2, fireAProgressEvent("error", fr); + } catch (error3) { + fr[kError] = error3, fireAProgressEvent("error", fr); } fr[kState] !== "loading" && fireAProgressEvent("loadend", fr); }); break; } - } catch (error2) { + } catch (error3) { if (fr[kAborted]) return; queueMicrotask(() => { - fr[kState] = "done", fr[kError] = error2, fireAProgressEvent("error", fr), fr[kState] !== "loading" && fireAProgressEvent("loadend", fr); + fr[kState] = "done", fr[kError] = error3, fireAProgressEvent("error", fr), fr[kState] !== "loading" && fireAProgressEvent("loadend", fr); }); break; } @@ -10159,8 +10159,8 @@ var require_util4 = __commonJS({ parsed !== "failure" && (dataURL += serializeAMimeType(parsed)), dataURL += ";base64,"; let decoder = new StringDecoder2("latin1"); for (let chunk of bytes) - dataURL += btoa(decoder.write(chunk)); - return dataURL += btoa(decoder.end()), dataURL; + dataURL += btoa2(decoder.write(chunk)); + return dataURL += btoa2(decoder.end()), dataURL; } case "Text": { let encoding = "failure"; @@ -10204,7 +10204,7 @@ var require_util4 = __commonJS({ // node_modules/undici/lib/web/fileapi/filereader.js var require_filereader = __commonJS({ - "node_modules/undici/lib/web/fileapi/filereader.js"(exports, module) { + "node_modules/undici/lib/web/fileapi/filereader.js"(exports2, module) { "use strict"; var { staticPropertyDescriptors, @@ -10369,7 +10369,7 @@ var require_filereader = __commonJS({ // node_modules/undici/lib/web/cache/symbols.js var require_symbols4 = __commonJS({ - "node_modules/undici/lib/web/cache/symbols.js"(exports, module) { + "node_modules/undici/lib/web/cache/symbols.js"(exports2, module) { "use strict"; module.exports = { kConstruct: require_symbols().kConstruct @@ -10379,15 +10379,15 @@ var require_symbols4 = __commonJS({ // node_modules/undici/lib/web/cache/util.js var require_util5 = __commonJS({ - "node_modules/undici/lib/web/cache/util.js"(exports, module) { + "node_modules/undici/lib/web/cache/util.js"(exports2, module) { "use strict"; - var assert = __require("node:assert"), { URLSerializer } = require_data_url(), { isValidHeaderName } = require_util2(); + var assert4 = __require("node:assert"), { URLSerializer } = require_data_url(), { isValidHeaderName } = require_util2(); function urlEquals(A, B, excludeFragment = !1) { let serializedA = URLSerializer(A, excludeFragment), serializedB = URLSerializer(B, excludeFragment); return serializedA === serializedB; } function getFieldValues(header) { - assert(header !== null); + assert4(header !== null); let values = []; for (let value of header.split(",")) value = value.trim(), isValidHeaderName(value) && values.push(value); @@ -10402,9 +10402,9 @@ var require_util5 = __commonJS({ // node_modules/undici/lib/web/cache/cache.js var require_cache = __commonJS({ - "node_modules/undici/lib/web/cache/cache.js"(exports, module) { + "node_modules/undici/lib/web/cache/cache.js"(exports2, module) { "use strict"; - var { kConstruct } = require_symbols4(), { urlEquals, getFieldValues } = require_util5(), { kEnumerableProperty, isDisturbed } = require_util(), { webidl } = require_webidl(), { Response, cloneResponse, fromInnerResponse } = require_response(), { Request, fromInnerRequest } = require_request2(), { kState } = require_symbols2(), { fetching } = require_fetch(), { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require_util2(), assert = __require("node:assert"), Cache = class _Cache { + var { kConstruct } = require_symbols4(), { urlEquals, getFieldValues } = require_util5(), { kEnumerableProperty, isDisturbed } = require_util(), { webidl } = require_webidl(), { Response: Response2, cloneResponse, fromInnerResponse } = require_response(), { Request, fromInnerRequest } = require_request2(), { kState } = require_symbols2(), { fetching } = require_fetch(), { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = require_util2(), assert4 = __require("node:assert"), Cache = class _Cache { /** * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list * @type {requestResponseList} @@ -10415,33 +10415,33 @@ var require_cache = __commonJS({ } async match(request, options = {}) { webidl.brandCheck(this, _Cache); - let prefix = "Cache.match"; - webidl.argumentLengthCheck(arguments, 1, prefix), request = webidl.converters.RequestInfo(request, prefix, "request"), options = webidl.converters.CacheQueryOptions(options, prefix, "options"); + let prefix2 = "Cache.match"; + webidl.argumentLengthCheck(arguments, 1, prefix2), request = webidl.converters.RequestInfo(request, prefix2, "request"), options = webidl.converters.CacheQueryOptions(options, prefix2, "options"); let p = this.#internalMatchAll(request, options, 1); if (p.length !== 0) return p[0]; } async matchAll(request = void 0, options = {}) { webidl.brandCheck(this, _Cache); - let prefix = "Cache.matchAll"; - return request !== void 0 && (request = webidl.converters.RequestInfo(request, prefix, "request")), options = webidl.converters.CacheQueryOptions(options, prefix, "options"), this.#internalMatchAll(request, options); + let prefix2 = "Cache.matchAll"; + return request !== void 0 && (request = webidl.converters.RequestInfo(request, prefix2, "request")), options = webidl.converters.CacheQueryOptions(options, prefix2, "options"), this.#internalMatchAll(request, options); } async add(request) { webidl.brandCheck(this, _Cache); - let prefix = "Cache.add"; - webidl.argumentLengthCheck(arguments, 1, prefix), request = webidl.converters.RequestInfo(request, prefix, "request"); + let prefix2 = "Cache.add"; + webidl.argumentLengthCheck(arguments, 1, prefix2), request = webidl.converters.RequestInfo(request, prefix2, "request"); let requests = [request]; return await this.addAll(requests); } async addAll(requests) { webidl.brandCheck(this, _Cache); - let prefix = "Cache.addAll"; - webidl.argumentLengthCheck(arguments, 1, prefix); + let prefix2 = "Cache.addAll"; + webidl.argumentLengthCheck(arguments, 1, prefix2); let responsePromises = [], requestList = []; for (let request of requests) { if (request === void 0) throw webidl.errors.conversionFailed({ - prefix, + prefix: prefix2, argument: "Argument 1", types: ["undefined is not allowed"] }); @@ -10450,7 +10450,7 @@ var require_cache = __commonJS({ let r = request[kState]; if (!urlIsHttpHttpsScheme(r.url) || r.method !== "GET") throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: "Expected http/s scheme when method is not GET." }); } @@ -10459,7 +10459,7 @@ var require_cache = __commonJS({ let r = new Request(request)[kState]; if (!urlIsHttpHttpsScheme(r.url)) throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: "Expected http/s scheme." }); r.initiator = "fetch", r.destination = "subresource", requestList.push(r); @@ -10519,18 +10519,18 @@ var require_cache = __commonJS({ } async put(request, response) { webidl.brandCheck(this, _Cache); - let prefix = "Cache.put"; - webidl.argumentLengthCheck(arguments, 2, prefix), request = webidl.converters.RequestInfo(request, prefix, "request"), response = webidl.converters.Response(response, prefix, "response"); + let prefix2 = "Cache.put"; + webidl.argumentLengthCheck(arguments, 2, prefix2), request = webidl.converters.RequestInfo(request, prefix2, "request"), response = webidl.converters.Response(response, prefix2, "response"); let innerRequest = null; if (request instanceof Request ? innerRequest = request[kState] : innerRequest = new Request(request)[kState], !urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== "GET") throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: "Expected an http/s scheme when method is not GET" }); let innerResponse = response[kState]; if (innerResponse.status === 206) throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: "Got 206 status" }); if (innerResponse.headersList.contains("vary")) { @@ -10538,13 +10538,13 @@ var require_cache = __commonJS({ for (let fieldValue of fieldValues) if (fieldValue === "*") throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: "Got * vary field value" }); } if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) throw webidl.errors.exception({ - header: prefix, + header: prefix2, message: "Response body is locked or disturbed" }); let clonedResponse = cloneResponse(innerResponse), bodyReadPromise = createDeferredPromise(); @@ -10576,14 +10576,14 @@ var require_cache = __commonJS({ } async delete(request, options = {}) { webidl.brandCheck(this, _Cache); - let prefix = "Cache.delete"; - webidl.argumentLengthCheck(arguments, 1, prefix), request = webidl.converters.RequestInfo(request, prefix, "request"), options = webidl.converters.CacheQueryOptions(options, prefix, "options"); + let prefix2 = "Cache.delete"; + webidl.argumentLengthCheck(arguments, 1, prefix2), request = webidl.converters.RequestInfo(request, prefix2, "request"), options = webidl.converters.CacheQueryOptions(options, prefix2, "options"); let r = null; if (request instanceof Request) { if (r = request[kState], r.method !== "GET" && !options.ignoreMethod) return !1; } else - assert(typeof request == "string"), r = new Request(request)[kState]; + assert4(typeof request == "string"), r = new Request(request)[kState]; let operations = [], operation = { type: "delete", request: r, @@ -10608,8 +10608,8 @@ var require_cache = __commonJS({ */ async keys(request = void 0, options = {}) { webidl.brandCheck(this, _Cache); - let prefix = "Cache.keys"; - request !== void 0 && (request = webidl.converters.RequestInfo(request, prefix, "request")), options = webidl.converters.CacheQueryOptions(options, prefix, "options"); + let prefix2 = "Cache.keys"; + request !== void 0 && (request = webidl.converters.RequestInfo(request, prefix2, "request")), options = webidl.converters.CacheQueryOptions(options, prefix2, "options"); let r = null; if (request !== void 0) if (request instanceof Request) { @@ -10665,7 +10665,7 @@ var require_cache = __commonJS({ return []; for (let requestResponse of requestResponses) { let idx = cache.indexOf(requestResponse); - assert(idx !== -1), cache.splice(idx, 1); + assert4(idx !== -1), cache.splice(idx, 1); } } else if (operation.type === "put") { if (operation.response == null) @@ -10692,7 +10692,7 @@ var require_cache = __commonJS({ requestResponses = this.#queryCache(operation.request); for (let requestResponse of requestResponses) { let idx = cache.indexOf(requestResponse); - assert(idx !== -1), cache.splice(idx, 1); + assert4(idx !== -1), cache.splice(idx, 1); } cache.push([operation.request, operation.response]), addedItems.push([operation.request, operation.response]); } @@ -10805,7 +10805,7 @@ var require_cache = __commonJS({ converter: webidl.converters.DOMString } ]); - webidl.converters.Response = webidl.interfaceConverter(Response); + webidl.converters.Response = webidl.interfaceConverter(Response2); webidl.converters["sequence"] = webidl.sequenceConverter( webidl.converters.RequestInfo ); @@ -10817,7 +10817,7 @@ var require_cache = __commonJS({ // node_modules/undici/lib/web/cache/cachestorage.js var require_cachestorage = __commonJS({ - "node_modules/undici/lib/web/cache/cachestorage.js"(exports, module) { + "node_modules/undici/lib/web/cache/cachestorage.js"(exports2, module) { "use strict"; var { kConstruct } = require_symbols4(), { Cache } = require_cache(), { webidl } = require_webidl(), { kEnumerableProperty } = require_util(), CacheStorage = class _CacheStorage { /** @@ -10848,8 +10848,8 @@ var require_cachestorage = __commonJS({ */ async has(cacheName) { webidl.brandCheck(this, _CacheStorage); - let prefix = "CacheStorage.has"; - return webidl.argumentLengthCheck(arguments, 1, prefix), cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"), this.#caches.has(cacheName); + let prefix2 = "CacheStorage.has"; + return webidl.argumentLengthCheck(arguments, 1, prefix2), cacheName = webidl.converters.DOMString(cacheName, prefix2, "cacheName"), this.#caches.has(cacheName); } /** * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open @@ -10858,8 +10858,8 @@ var require_cachestorage = __commonJS({ */ async open(cacheName) { webidl.brandCheck(this, _CacheStorage); - let prefix = "CacheStorage.open"; - if (webidl.argumentLengthCheck(arguments, 1, prefix), cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"), this.#caches.has(cacheName)) { + let prefix2 = "CacheStorage.open"; + if (webidl.argumentLengthCheck(arguments, 1, prefix2), cacheName = webidl.converters.DOMString(cacheName, prefix2, "cacheName"), this.#caches.has(cacheName)) { let cache2 = this.#caches.get(cacheName); return new Cache(kConstruct, cache2); } @@ -10873,8 +10873,8 @@ var require_cachestorage = __commonJS({ */ async delete(cacheName) { webidl.brandCheck(this, _CacheStorage); - let prefix = "CacheStorage.delete"; - return webidl.argumentLengthCheck(arguments, 1, prefix), cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"), this.#caches.delete(cacheName); + let prefix2 = "CacheStorage.delete"; + return webidl.argumentLengthCheck(arguments, 1, prefix2), cacheName = webidl.converters.DOMString(cacheName, prefix2, "cacheName"), this.#caches.delete(cacheName); } /** * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys @@ -10903,7 +10903,7 @@ var require_cachestorage = __commonJS({ // node_modules/undici/lib/web/cookies/constants.js var require_constants4 = __commonJS({ - "node_modules/undici/lib/web/cookies/constants.js"(exports, module) { + "node_modules/undici/lib/web/cookies/constants.js"(exports2, module) { "use strict"; module.exports = { maxAttributeValueSize: 1024, @@ -10914,7 +10914,7 @@ var require_constants4 = __commonJS({ // node_modules/undici/lib/web/cookies/util.js var require_util6 = __commonJS({ - "node_modules/undici/lib/web/cookies/util.js"(exports, module) { + "node_modules/undici/lib/web/cookies/util.js"(exports2, module) { "use strict"; function isCTLExcludingHtab(value) { for (let i = 0; i < value.length; ++i) { @@ -10967,9 +10967,9 @@ var require_util6 = __commonJS({ throw new Error("Invalid cookie value"); } } - function validateCookiePath(path4) { - for (let i = 0; i < path4.length; ++i) { - let code = path4.charCodeAt(i); + function validateCookiePath(path12) { + for (let i = 0; i < path12.length; ++i) { + let code = path12.charCodeAt(i); if (code < 32 || // exclude CTLs (0-31) code === 127 || // DEL code === 59) @@ -11036,9 +11036,9 @@ var require_util6 = __commonJS({ // node_modules/undici/lib/web/cookies/parse.js var require_parse = __commonJS({ - "node_modules/undici/lib/web/cookies/parse.js"(exports, module) { + "node_modules/undici/lib/web/cookies/parse.js"(exports2, module) { "use strict"; - var { maxNameValuePairSize, maxAttributeValueSize } = require_constants4(), { isCTLExcludingHtab } = require_util6(), { collectASequenceOfCodePointsFast } = require_data_url(), assert = __require("node:assert"); + var { maxNameValuePairSize, maxAttributeValueSize } = require_constants4(), { isCTLExcludingHtab } = require_util6(), { collectASequenceOfCodePointsFast } = require_data_url(), assert4 = __require("node:assert"); function parseSetCookie(header) { if (isCTLExcludingHtab(header)) return null; @@ -11067,7 +11067,7 @@ var require_parse = __commonJS({ function parseUnparsedAttributes(unparsedAttributes, cookieAttributeList = {}) { if (unparsedAttributes.length === 0) return cookieAttributeList; - assert(unparsedAttributes[0] === ";"), unparsedAttributes = unparsedAttributes.slice(1); + assert4(unparsedAttributes[0] === ";"), unparsedAttributes = unparsedAttributes.slice(1); let cookieAv = ""; unparsedAttributes.includes(";") ? (cookieAv = collectASequenceOfCodePointsFast( ";", @@ -11122,11 +11122,11 @@ var require_parse = __commonJS({ // node_modules/undici/lib/web/cookies/index.js var require_cookies = __commonJS({ - "node_modules/undici/lib/web/cookies/index.js"(exports, module) { + "node_modules/undici/lib/web/cookies/index.js"(exports2, module) { "use strict"; - var { parseSetCookie } = require_parse(), { stringify } = require_util6(), { webidl } = require_webidl(), { Headers: Headers2 } = require_headers(); + var { parseSetCookie } = require_parse(), { stringify } = require_util6(), { webidl } = require_webidl(), { Headers: Headers4 } = require_headers(); function getCookies(headers) { - webidl.argumentLengthCheck(arguments, 1, "getCookies"), webidl.brandCheck(headers, Headers2, { strict: !1 }); + webidl.argumentLengthCheck(arguments, 1, "getCookies"), webidl.brandCheck(headers, Headers4, { strict: !1 }); let cookie = headers.get("cookie"), out = {}; if (!cookie) return out; @@ -11137,9 +11137,9 @@ var require_cookies = __commonJS({ return out; } function deleteCookie(headers, name, attributes) { - webidl.brandCheck(headers, Headers2, { strict: !1 }); - let prefix = "deleteCookie"; - webidl.argumentLengthCheck(arguments, 2, prefix), name = webidl.converters.DOMString(name, prefix, "name"), attributes = webidl.converters.DeleteCookieAttributes(attributes), setCookie(headers, { + webidl.brandCheck(headers, Headers4, { strict: !1 }); + let prefix2 = "deleteCookie"; + webidl.argumentLengthCheck(arguments, 2, prefix2), name = webidl.converters.DOMString(name, prefix2, "name"), attributes = webidl.converters.DeleteCookieAttributes(attributes), setCookie(headers, { name, value: "", expires: /* @__PURE__ */ new Date(0), @@ -11147,12 +11147,12 @@ var require_cookies = __commonJS({ }); } function getSetCookies(headers) { - webidl.argumentLengthCheck(arguments, 1, "getSetCookies"), webidl.brandCheck(headers, Headers2, { strict: !1 }); + webidl.argumentLengthCheck(arguments, 1, "getSetCookies"), webidl.brandCheck(headers, Headers4, { strict: !1 }); let cookies = headers.getSetCookie(); return cookies ? cookies.map((pair) => parseSetCookie(pair)) : []; } function setCookie(headers, cookie) { - webidl.argumentLengthCheck(arguments, 2, "setCookie"), webidl.brandCheck(headers, Headers2, { strict: !1 }), cookie = webidl.converters.Cookie(cookie); + webidl.argumentLengthCheck(arguments, 2, "setCookie"), webidl.brandCheck(headers, Headers4, { strict: !1 }), cookie = webidl.converters.Cookie(cookie); let str = stringify(cookie); str && headers.append("Set-Cookie", str); } @@ -11229,7 +11229,7 @@ var require_cookies = __commonJS({ // node_modules/undici/lib/web/websocket/events.js var require_events = __commonJS({ - "node_modules/undici/lib/web/websocket/events.js"(exports, module) { + "node_modules/undici/lib/web/websocket/events.js"(exports2, module) { "use strict"; var { webidl } = require_webidl(), { kEnumerableProperty } = require_util(), { kConstruct } = require_symbols(), { MessagePort } = __require("node:worker_threads"), MessageEvent = class _MessageEvent extends Event { #eventInit; @@ -11238,8 +11238,8 @@ var require_events = __commonJS({ super(arguments[1], arguments[2]), webidl.util.markAsUncloneable(this); return; } - let prefix = "MessageEvent constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix), type = webidl.converters.DOMString(type, prefix, "type"), eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix, "eventInitDict"), super(type, eventInitDict), this.#eventInit = eventInitDict, webidl.util.markAsUncloneable(this); + let prefix2 = "MessageEvent constructor"; + webidl.argumentLengthCheck(arguments, 1, prefix2), type = webidl.converters.DOMString(type, prefix2, "type"), eventInitDict = webidl.converters.MessageEventInit(eventInitDict, prefix2, "eventInitDict"), super(type, eventInitDict), this.#eventInit = eventInitDict, webidl.util.markAsUncloneable(this); } get data() { return webidl.brandCheck(this, _MessageEvent), this.#eventInit.data; @@ -11276,8 +11276,8 @@ var require_events = __commonJS({ var CloseEvent = class _CloseEvent extends Event { #eventInit; constructor(type, eventInitDict = {}) { - let prefix = "CloseEvent constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix), type = webidl.converters.DOMString(type, prefix, "type"), eventInitDict = webidl.converters.CloseEventInit(eventInitDict), super(type, eventInitDict), this.#eventInit = eventInitDict, webidl.util.markAsUncloneable(this); + let prefix2 = "CloseEvent constructor"; + webidl.argumentLengthCheck(arguments, 1, prefix2), type = webidl.converters.DOMString(type, prefix2, "type"), eventInitDict = webidl.converters.CloseEventInit(eventInitDict), super(type, eventInitDict), this.#eventInit = eventInitDict, webidl.util.markAsUncloneable(this); } get wasClean() { return webidl.brandCheck(this, _CloseEvent), this.#eventInit.wasClean; @@ -11291,8 +11291,8 @@ var require_events = __commonJS({ }, ErrorEvent = class _ErrorEvent extends Event { #eventInit; constructor(type, eventInitDict) { - let prefix = "ErrorEvent constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix), super(type, eventInitDict), webidl.util.markAsUncloneable(this), type = webidl.converters.DOMString(type, prefix, "type"), eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}), this.#eventInit = eventInitDict; + let prefix2 = "ErrorEvent constructor"; + webidl.argumentLengthCheck(arguments, 1, prefix2), super(type, eventInitDict), webidl.util.markAsUncloneable(this), type = webidl.converters.DOMString(type, prefix2, "type"), eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}), this.#eventInit = eventInitDict; } get message() { return webidl.brandCheck(this, _ErrorEvent), this.#eventInit.message; @@ -11449,7 +11449,7 @@ var require_events = __commonJS({ // node_modules/undici/lib/web/websocket/constants.js var require_constants5 = __commonJS({ - "node_modules/undici/lib/web/websocket/constants.js"(exports, module) { + "node_modules/undici/lib/web/websocket/constants.js"(exports2, module) { "use strict"; var uid = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11", staticPropertyDescriptors = { enumerable: !0, @@ -11498,7 +11498,7 @@ var require_constants5 = __commonJS({ // node_modules/undici/lib/web/websocket/symbols.js var require_symbols5 = __commonJS({ - "node_modules/undici/lib/web/websocket/symbols.js"(exports, module) { + "node_modules/undici/lib/web/websocket/symbols.js"(exports2, module) { "use strict"; module.exports = { kWebSocketURL: /* @__PURE__ */ Symbol("url"), @@ -11515,7 +11515,7 @@ var require_symbols5 = __commonJS({ // node_modules/undici/lib/web/websocket/util.js var require_util7 = __commonJS({ - "node_modules/undici/lib/web/websocket/util.js"(exports, module) { + "node_modules/undici/lib/web/websocket/util.js"(exports2, module) { "use strict"; var { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = require_symbols5(), { states, opcodes } = require_constants5(), { ErrorEvent, createFastMessageEvent } = require_events(), { isUtf8 } = __require("node:buffer"), { collectASequenceOfCodePointsFast, removeHTTPWhitespace } = require_data_url(); function isConnecting(ws) { @@ -11551,8 +11551,8 @@ var require_util7 = __commonJS({ data: dataForEvent }); } - function toArrayBuffer2(buffer) { - return buffer.byteLength === buffer.buffer.byteLength ? buffer.buffer : buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength); + function toArrayBuffer2(buffer3) { + return buffer3.byteLength === buffer3.buffer.byteLength ? buffer3.buffer : buffer3.buffer.slice(buffer3.byteOffset, buffer3.byteOffset + buffer3.byteLength); } function isValidSubprotocol(protocol) { if (protocol.length === 0) @@ -11627,9 +11627,9 @@ var require_util7 = __commonJS({ let num = Number.parseInt(value, 10); return num >= 8 && num <= 15; } - var hasIntl = typeof process.versions.icu == "string", fatalDecoder = hasIntl ? new TextDecoder("utf-8", { fatal: !0 }) : void 0, utf8Decode = hasIntl ? fatalDecoder.decode.bind(fatalDecoder) : function(buffer) { - if (isUtf8(buffer)) - return buffer.toString("utf-8"); + var hasIntl = typeof process.versions.icu == "string", fatalDecoder = hasIntl ? new TextDecoder("utf-8", { fatal: !0 }) : void 0, utf8Decode = hasIntl ? fatalDecoder.decode.bind(fatalDecoder) : function(buffer3) { + if (isUtf8(buffer3)) + return buffer3.toString("utf-8"); throw new TypeError("Invalid utf-8 received."); }; module.exports = { @@ -11655,23 +11655,23 @@ var require_util7 = __commonJS({ // node_modules/undici/lib/web/websocket/frame.js var require_frame = __commonJS({ - "node_modules/undici/lib/web/websocket/frame.js"(exports, module) { + "node_modules/undici/lib/web/websocket/frame.js"(exports2, module) { "use strict"; - var { maxUnsigned16Bit } = require_constants5(), BUFFER_SIZE = 16386, crypto2, buffer = null, bufIdx = BUFFER_SIZE; + var { maxUnsigned16Bit } = require_constants5(), BUFFER_SIZE = 16386, crypto4, buffer3 = null, bufIdx = BUFFER_SIZE; try { - crypto2 = __require("node:crypto"); + crypto4 = __require("node:crypto"); } catch { - crypto2 = { + crypto4 = { // not full compatibility, but minimum. - randomFillSync: function(buffer2, _offset, _size) { - for (let i = 0; i < buffer2.length; ++i) - buffer2[i] = Math.random() * 255 | 0; - return buffer2; + randomFillSync: function(buffer4, _offset, _size) { + for (let i = 0; i < buffer4.length; ++i) + buffer4[i] = Math.random() * 255 | 0; + return buffer4; } }; } function generateMask() { - return bufIdx === BUFFER_SIZE && (bufIdx = 0, crypto2.randomFillSync(buffer ??= Buffer.allocUnsafe(BUFFER_SIZE), 0, BUFFER_SIZE)), [buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++], buffer[bufIdx++]]; + return bufIdx === BUFFER_SIZE && (bufIdx = 0, crypto4.randomFillSync(buffer3 ??= Buffer.allocUnsafe(BUFFER_SIZE), 0, BUFFER_SIZE)), [buffer3[bufIdx++], buffer3[bufIdx++], buffer3[bufIdx++], buffer3[bufIdx++]]; } var WebsocketFrameSend = class { /** @@ -11683,13 +11683,13 @@ var require_frame = __commonJS({ createFrame(opcode) { let frameData = this.frameData, maskKey = generateMask(), bodyLength = frameData?.byteLength ?? 0, payloadLength = bodyLength, offset = 6; bodyLength > maxUnsigned16Bit ? (offset += 8, payloadLength = 127) : bodyLength > 125 && (offset += 2, payloadLength = 126); - let buffer2 = Buffer.allocUnsafe(bodyLength + offset); - buffer2[0] = buffer2[1] = 0, buffer2[0] |= 128, buffer2[0] = (buffer2[0] & 240) + opcode; + let buffer4 = Buffer.allocUnsafe(bodyLength + offset); + buffer4[0] = buffer4[1] = 0, buffer4[0] |= 128, buffer4[0] = (buffer4[0] & 240) + opcode; /*! ws. MIT License. Einar Otto Stangvik */ - buffer2[offset - 4] = maskKey[0], buffer2[offset - 3] = maskKey[1], buffer2[offset - 2] = maskKey[2], buffer2[offset - 1] = maskKey[3], buffer2[1] = payloadLength, payloadLength === 126 ? buffer2.writeUInt16BE(bodyLength, 2) : payloadLength === 127 && (buffer2[2] = buffer2[3] = 0, buffer2.writeUIntBE(bodyLength, 4, 6)), buffer2[1] |= 128; + buffer4[offset - 4] = maskKey[0], buffer4[offset - 3] = maskKey[1], buffer4[offset - 2] = maskKey[2], buffer4[offset - 1] = maskKey[3], buffer4[1] = payloadLength, payloadLength === 126 ? buffer4.writeUInt16BE(bodyLength, 2) : payloadLength === 127 && (buffer4[2] = buffer4[3] = 0, buffer4.writeUIntBE(bodyLength, 4, 6)), buffer4[1] |= 128; for (let i = 0; i < bodyLength; ++i) - buffer2[offset + i] = frameData[i] ^ maskKey[i & 3]; - return buffer2; + buffer4[offset + i] = frameData[i] ^ maskKey[i & 3]; + return buffer4; } }; module.exports = { @@ -11700,7 +11700,7 @@ var require_frame = __commonJS({ // node_modules/undici/lib/web/websocket/connection.js var require_connection = __commonJS({ - "node_modules/undici/lib/web/websocket/connection.js"(exports, module) { + "node_modules/undici/lib/web/websocket/connection.js"(exports2, module) { "use strict"; var { uid, states, sentCloseFrameState, emptyBuffer, opcodes } = require_constants5(), { kReadyState, @@ -11708,14 +11708,14 @@ var require_connection = __commonJS({ kByteParser, kReceivedClose, kResponse - } = require_symbols5(), { fireEvent, failWebsocketConnection, isClosing, isClosed, isEstablished, parseExtensions } = require_util7(), { channels } = require_diagnostics(), { CloseEvent } = require_events(), { makeRequest } = require_request2(), { fetching } = require_fetch(), { Headers: Headers2, getHeadersList } = require_headers(), { getDecodeSplit } = require_util2(), { WebsocketFrameSend } = require_frame(), crypto2; + } = require_symbols5(), { fireEvent, failWebsocketConnection, isClosing, isClosed, isEstablished, parseExtensions } = require_util7(), { channels } = require_diagnostics(), { CloseEvent } = require_events(), { makeRequest } = require_request2(), { fetching } = require_fetch(), { Headers: Headers4, getHeadersList } = require_headers(), { getDecodeSplit } = require_util2(), { WebsocketFrameSend } = require_frame(), crypto4; try { - crypto2 = __require("node:crypto"); + crypto4 = __require("node:crypto"); } catch { } - function establishWebSocketConnection(url, protocols, client, ws, onEstablish, options) { - let requestURL = url; - requestURL.protocol = url.protocol === "ws:" ? "http:" : "https:"; + function establishWebSocketConnection(url2, protocols, client, ws, onEstablish, options) { + let requestURL = url2; + requestURL.protocol = url2.protocol === "ws:" ? "http:" : "https:"; let request = makeRequest({ urlList: [requestURL], client, @@ -11727,10 +11727,10 @@ var require_connection = __commonJS({ redirect: "error" }); if (options.headers) { - let headersList = getHeadersList(new Headers2(options.headers)); + let headersList = getHeadersList(new Headers4(options.headers)); request.headersList = headersList; } - let keyValue = crypto2.randomBytes(16).toString("base64"); + let keyValue = crypto4.randomBytes(16).toString("base64"); request.headersList.append("sec-websocket-key", keyValue), request.headersList.append("sec-websocket-version", "13"); for (let protocol of protocols) request.headersList.append("sec-websocket-protocol", protocol); @@ -11755,7 +11755,7 @@ var require_connection = __commonJS({ failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".'); return; } - let secWSAccept = response.headersList.get("Sec-WebSocket-Accept"), digest = crypto2.createHash("sha1").update(keyValue + uid).digest("base64"); + let secWSAccept = response.headersList.get("Sec-WebSocket-Accept"), digest = crypto4.createHash("sha1").update(keyValue + uid).digest("base64"); if (secWSAccept !== digest) { failWebsocketConnection(ws, "Incorrect hash received in Sec-WebSocket-Accept header."); return; @@ -11806,9 +11806,9 @@ var require_connection = __commonJS({ reason }); } - function onSocketError(error2) { + function onSocketError(error3) { let { ws } = this; - ws[kReadyState] = states.CLOSING, channels.socketError.hasSubscribers && channels.socketError.publish(error2), this.destroy(); + ws[kReadyState] = states.CLOSING, channels.socketError.hasSubscribers && channels.socketError.publish(error3), this.destroy(); } module.exports = { establishWebSocketConnection, @@ -11819,7 +11819,7 @@ var require_connection = __commonJS({ // node_modules/undici/lib/web/websocket/permessage-deflate.js var require_permessage_deflate = __commonJS({ - "node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports, module) { + "node_modules/undici/lib/web/websocket/permessage-deflate.js"(exports2, module) { "use strict"; var { createInflateRaw, Z_DEFAULT_WINDOWBITS } = __require("node:zlib"), { isValidClientWindowBits } = require_util7(), { MessageSizeExceededError } = require_errors(), tail = Buffer.from([0, 0, 255, 255]), kBuffer = /* @__PURE__ */ Symbol("kBuffer"), kLength = /* @__PURE__ */ Symbol("kLength"), PerMessageDeflate = class { /** @type {import('node:zlib').InflateRaw} */ @@ -11878,9 +11878,9 @@ var require_permessage_deflate = __commonJS({ // node_modules/undici/lib/web/websocket/receiver.js var require_receiver = __commonJS({ - "node_modules/undici/lib/web/websocket/receiver.js"(exports, module) { + "node_modules/undici/lib/web/websocket/receiver.js"(exports2, module) { "use strict"; - var { Writable } = __require("node:stream"), assert = __require("node:assert"), { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require_constants5(), { kReadyState, kSentClose, kResponse, kReceivedClose } = require_symbols5(), { channels } = require_diagnostics(), { + var { Writable } = __require("node:stream"), assert4 = __require("node:assert"), { parserStates, opcodes, states, emptyBuffer, sentCloseFrameState } = require_constants5(), { kReadyState, kSentClose, kResponse, kReceivedClose } = require_symbols5(), { channels } = require_diagnostics(), { isValidStatusCode, isValidOpcode, failWebsocketConnection, @@ -11929,7 +11929,7 @@ var require_receiver = __commonJS({ if (this.#state === parserStates.INFO) { if (this.#byteOffset < 2) return callback(); - let buffer = this.consume(2), fin = (buffer[0] & 128) !== 0, opcode = buffer[0] & 15, masked = (buffer[1] & 128) === 128, fragmented = !fin && opcode !== opcodes.CONTINUATION, payloadLength = buffer[1] & 127, rsv1 = buffer[0] & 64, rsv2 = buffer[0] & 32, rsv3 = buffer[0] & 16; + let buffer3 = this.consume(2), fin = (buffer3[0] & 128) !== 0, opcode = buffer3[0] & 15, masked = (buffer3[1] & 128) === 128, fragmented = !fin && opcode !== opcodes.CONTINUATION, payloadLength = buffer3[1] & 127, rsv1 = buffer3[0] & 64, rsv2 = buffer3[0] & 32, rsv3 = buffer3[0] & 16; if (!isValidOpcode(opcode)) return failWebsocketConnection(this.ws, "Invalid opcode received"), callback(); if (masked) @@ -11970,13 +11970,13 @@ var require_receiver = __commonJS({ } else if (this.#state === parserStates.PAYLOADLENGTH_16) { if (this.#byteOffset < 2) return callback(); - let buffer = this.consume(2); - if (this.#info.payloadLength = buffer.readUInt16BE(0), this.#state = parserStates.READ_DATA, !this.#validatePayloadLength()) + let buffer3 = this.consume(2); + if (this.#info.payloadLength = buffer3.readUInt16BE(0), this.#state = parserStates.READ_DATA, !this.#validatePayloadLength()) return; } else if (this.#state === parserStates.PAYLOADLENGTH_64) { if (this.#byteOffset < 8) return callback(); - let buffer = this.consume(8), upper = buffer.readUInt32BE(0), lower = buffer.readUInt32BE(4); + let buffer3 = this.consume(8), upper = buffer3.readUInt32BE(0), lower = buffer3.readUInt32BE(4); if (upper !== 0 || lower > 2 ** 31 - 1) { failWebsocketConnection(this.ws, "Received payload length > 2^31 bytes."); return; @@ -11986,16 +11986,16 @@ var require_receiver = __commonJS({ } else if (this.#state === parserStates.READ_DATA) { if (this.#byteOffset < this.#info.payloadLength) return callback(); - let body = this.consume(this.#info.payloadLength); + let body2 = this.consume(this.#info.payloadLength); if (isControlFrame(this.#info.opcode)) - this.#loop = this.parseControlFrame(body), this.#state = parserStates.INFO; + this.#loop = this.parseControlFrame(body2), this.#state = parserStates.INFO; else if (this.#info.compressed) { this.#extensions.get("permessage-deflate").decompress( - body, + body2, this.#info.fin, - (error2, data) => { - if (error2) { - failWebsocketConnection(this.ws, error2.message); + (error3, data) => { + if (error3) { + failWebsocketConnection(this.ws, error3.message); return; } if (this.writeFragments(data), this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) { @@ -12011,7 +12011,7 @@ var require_receiver = __commonJS({ ), this.#loop = !1; break; } else { - if (this.writeFragments(body), this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) { + if (this.writeFragments(body2), this.#maxPayloadSize > 0 && this.#fragmentsBytes > this.#maxPayloadSize) { failWebsocketConnection(this.ws, new MessageSizeExceededError().message); return; } @@ -12031,19 +12031,19 @@ var require_receiver = __commonJS({ return emptyBuffer; if (this.#buffers[0].length === n) return this.#byteOffset -= this.#buffers[0].length, this.#buffers.shift(); - let buffer = Buffer.allocUnsafe(n), offset = 0; + let buffer3 = Buffer.allocUnsafe(n), offset = 0; for (; offset !== n; ) { let next = this.#buffers[0], { length } = next; if (length + offset === n) { - buffer.set(this.#buffers.shift(), offset); + buffer3.set(this.#buffers.shift(), offset); break; } else if (length + offset > n) { - buffer.set(next.subarray(0, n - offset), offset), this.#buffers[0] = next.subarray(n - offset); + buffer3.set(next.subarray(0, n - offset), offset), this.#buffers[0] = next.subarray(n - offset); break; } else - buffer.set(this.#buffers.shift(), offset), offset += next.length; + buffer3.set(this.#buffers.shift(), offset), offset += next.length; } - return this.#byteOffset -= n, buffer; + return this.#byteOffset -= n, buffer3; } writeFragments(fragment) { this.#fragmentsBytes += fragment.length, this.#fragments.push(fragment); @@ -12056,7 +12056,7 @@ var require_receiver = __commonJS({ return this.#fragments = [], this.#fragmentsBytes = 0, output; } parseCloseBody(data) { - assert(data.length !== 1); + assert4(data.length !== 1); let code; if (data.length >= 2 && (code = data.readUInt16BE(0)), code !== void 0 && !isValidStatusCode(code)) return { code: 1002, reason: "Invalid status code", error: !0 }; @@ -12073,19 +12073,19 @@ var require_receiver = __commonJS({ * Parses control frames. * @param {Buffer} body */ - parseControlFrame(body) { + parseControlFrame(body2) { let { opcode, payloadLength } = this.#info; if (opcode === opcodes.CLOSE) { if (payloadLength === 1) return failWebsocketConnection(this.ws, "Received close frame with a 1-byte body."), !1; - if (this.#info.closeInfo = this.parseCloseBody(body), this.#info.closeInfo.error) { + if (this.#info.closeInfo = this.parseCloseBody(body2), this.#info.closeInfo.error) { let { code, reason } = this.#info.closeInfo; return closeWebSocketConnection(this.ws, code, reason, reason.length), failWebsocketConnection(this.ws, reason), !1; } if (this.ws[kSentClose] !== sentCloseFrameState.SENT) { - let body2 = emptyBuffer; - this.#info.closeInfo.code && (body2 = Buffer.allocUnsafe(2), body2.writeUInt16BE(this.#info.closeInfo.code, 0)); - let closeFrame = new WebsocketFrameSend(body2); + let body3 = emptyBuffer; + this.#info.closeInfo.code && (body3 = Buffer.allocUnsafe(2), body3.writeUInt16BE(this.#info.closeInfo.code, 0)); + let closeFrame = new WebsocketFrameSend(body3); this.ws[kResponse].socket.write( closeFrame.createFrame(opcodes.CLOSE), (err) => { @@ -12096,13 +12096,13 @@ var require_receiver = __commonJS({ return this.ws[kReadyState] = states.CLOSING, this.ws[kReceivedClose] = !0, !1; } else if (opcode === opcodes.PING) { if (!this.ws[kReceivedClose]) { - let frame = new WebsocketFrameSend(body); + let frame = new WebsocketFrameSend(body2); this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)), channels.ping.hasSubscribers && channels.ping.publish({ - payload: body + payload: body2 }); } } else opcode === opcodes.PONG && channels.pong.hasSubscribers && channels.pong.publish({ - payload: body + payload: body2 }); return !0; } @@ -12118,7 +12118,7 @@ var require_receiver = __commonJS({ // node_modules/undici/lib/web/websocket/sender.js var require_sender = __commonJS({ - "node_modules/undici/lib/web/websocket/sender.js"(exports, module) { + "node_modules/undici/lib/web/websocket/sender.js"(exports2, module) { "use strict"; var { WebsocketFrameSend } = require_frame(), { opcodes, sendHints } = require_constants5(), FixedQueue = require_fixed_queue(), FastBuffer = Buffer[Symbol.species], SendQueue = class { /** @@ -12188,7 +12188,7 @@ var require_sender = __commonJS({ // node_modules/undici/lib/web/websocket/websocket.js var require_websocket = __commonJS({ - "node_modules/undici/lib/web/websocket/websocket.js"(exports, module) { + "node_modules/undici/lib/web/websocket/websocket.js"(exports2, module) { "use strict"; var { webidl } = require_webidl(), { URLSerializer } = require_data_url(), { environmentSettingsObject } = require_util2(), { staticPropertyDescriptors, states, sentCloseFrameState, sendHints } = require_constants5(), { kWebSocketURL, @@ -12220,15 +12220,15 @@ var require_websocket = __commonJS({ * @param {string} url * @param {string|string[]} protocols */ - constructor(url, protocols = []) { + constructor(url2, protocols = []) { super(), webidl.util.markAsUncloneable(this); - let prefix = "WebSocket constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix); - let options = webidl.converters["DOMString or sequence or WebSocketInit"](protocols, prefix, "options"); - url = webidl.converters.USVString(url, prefix, "url"), protocols = options.protocols; + let prefix2 = "WebSocket constructor"; + webidl.argumentLengthCheck(arguments, 1, prefix2); + let options = webidl.converters["DOMString or sequence or WebSocketInit"](protocols, prefix2, "options"); + url2 = webidl.converters.USVString(url2, prefix2, "url"), protocols = options.protocols; let baseURL = environmentSettingsObject.settingsObject.baseUrl, urlRecord; try { - urlRecord = new URL(url, baseURL); + urlRecord = new URL(url2, baseURL); } catch (e) { throw new DOMException(e, "SyntaxError"); } @@ -12261,8 +12261,8 @@ var require_websocket = __commonJS({ */ close(code = void 0, reason = void 0) { webidl.brandCheck(this, _WebSocket); - let prefix = "WebSocket.close"; - if (code !== void 0 && (code = webidl.converters["unsigned short"](code, prefix, "code", { clamp: !0 })), reason !== void 0 && (reason = webidl.converters.USVString(reason, prefix, "reason")), code !== void 0 && code !== 1e3 && (code < 3e3 || code > 4999)) + let prefix2 = "WebSocket.close"; + if (code !== void 0 && (code = webidl.converters["unsigned short"](code, prefix2, "code", { clamp: !0 })), reason !== void 0 && (reason = webidl.converters.USVString(reason, prefix2, "reason")), code !== void 0 && code !== 1e3 && (code < 3e3 || code > 4999)) throw new DOMException("invalid code", "InvalidAccessError"); let reasonByteLength = 0; if (reason !== void 0 && (reasonByteLength = Buffer.byteLength(reason), reasonByteLength > 123)) @@ -12278,8 +12278,8 @@ var require_websocket = __commonJS({ */ send(data) { webidl.brandCheck(this, _WebSocket); - let prefix = "WebSocket.send"; - if (webidl.argumentLengthCheck(arguments, 1, prefix), data = webidl.converters.WebSocketSendData(data, prefix, "data"), isConnecting(this)) + let prefix2 = "WebSocket.send"; + if (webidl.argumentLengthCheck(arguments, 1, prefix2), data = webidl.converters.WebSocketSendData(data, prefix2, "data"), isConnecting(this)) throw new DOMException("Sent before connected.", "InvalidStateError"); if (!(!isEstablished(this) || isClosing(this))) if (typeof data == "string") { @@ -12392,8 +12392,8 @@ var require_websocket = __commonJS({ webidl.converters["sequence"] = webidl.sequenceConverter( webidl.converters.DOMString ); - webidl.converters["DOMString or sequence"] = function(V, prefix, argument) { - return webidl.util.Type(V) === "Object" && Symbol.iterator in V ? webidl.converters["sequence"](V) : webidl.converters.DOMString(V, prefix, argument); + webidl.converters["DOMString or sequence"] = function(V, prefix2, argument) { + return webidl.util.Type(V) === "Object" && Symbol.iterator in V ? webidl.converters["sequence"](V) : webidl.converters.DOMString(V, prefix2, argument); }; webidl.converters.WebSocketInit = webidl.dictionaryConverter([ { @@ -12438,7 +12438,7 @@ var require_websocket = __commonJS({ // node_modules/undici/lib/web/eventsource/util.js var require_util8 = __commonJS({ - "node_modules/undici/lib/web/eventsource/util.js"(exports, module) { + "node_modules/undici/lib/web/eventsource/util.js"(exports2, module) { "use strict"; function isValidLastEventId(value) { return value.indexOf("\0") === -1; @@ -12449,7 +12449,7 @@ var require_util8 = __commonJS({ if (value.charCodeAt(i) < 48 || value.charCodeAt(i) > 57) return !1; return !0; } - function delay(ms) { + function delay4(ms) { return new Promise((resolve2) => { setTimeout(resolve2, ms).unref(); }); @@ -12457,16 +12457,16 @@ var require_util8 = __commonJS({ module.exports = { isValidLastEventId, isASCIINumber, - delay + delay: delay4 }; } }); // node_modules/undici/lib/web/eventsource/eventsource-stream.js var require_eventsource_stream = __commonJS({ - "node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports, module) { + "node_modules/undici/lib/web/eventsource/eventsource-stream.js"(exports2, module) { "use strict"; - var { Transform } = __require("node:stream"), { isASCIINumber, isValidLastEventId } = require_util8(), BOM = [239, 187, 191], LF = 10, CR = 13, COLON = 58, SPACE = 32, EventSourceStream = class extends Transform { + var { Transform: Transform2 } = __require("node:stream"), { isASCIINumber, isValidLastEventId } = require_util8(), BOM = [239, 187, 191], LF = 10, CR = 13, COLON = 58, SPACE = 32, EventSourceStream = class extends Transform2 { /** * @type {eventSourceSettings} */ @@ -12628,9 +12628,9 @@ ${value}`; // node_modules/undici/lib/web/eventsource/eventsource.js var require_eventsource = __commonJS({ - "node_modules/undici/lib/web/eventsource/eventsource.js"(exports, module) { + "node_modules/undici/lib/web/eventsource/eventsource.js"(exports2, module) { "use strict"; - var { pipeline: pipeline3 } = __require("node:stream"), { fetching } = require_fetch(), { makeRequest } = require_request2(), { webidl } = require_webidl(), { EventSourceStream } = require_eventsource_stream(), { parseMIMEType } = require_data_url(), { createFastMessageEvent } = require_events(), { isNetworkError } = require_response(), { delay } = require_util8(), { kEnumerableProperty } = require_util(), { environmentSettingsObject } = require_util2(), experimentalWarned = !1, defaultReconnectionTime = 3e3, CONNECTING = 0, OPEN = 1, CLOSED = 2, ANONYMOUS = "anonymous", USE_CREDENTIALS = "use-credentials", EventSource = class _EventSource extends EventTarget { + var { pipeline: pipeline5 } = __require("node:stream"), { fetching } = require_fetch(), { makeRequest } = require_request2(), { webidl } = require_webidl(), { EventSourceStream } = require_eventsource_stream(), { parseMIMEType } = require_data_url(), { createFastMessageEvent } = require_events(), { isNetworkError } = require_response(), { delay: delay4 } = require_util8(), { kEnumerableProperty } = require_util(), { environmentSettingsObject } = require_util2(), experimentalWarned = !1, defaultReconnectionTime = 3e3, CONNECTING = 0, OPEN = 1, CLOSED = 2, ANONYMOUS = "anonymous", USE_CREDENTIALS = "use-credentials", EventSource = class _EventSource extends EventTarget { #events = { open: null, error: null, @@ -12652,18 +12652,18 @@ var require_eventsource = __commonJS({ * @param {EventSourceInit} [eventSourceInitDict] * @see https://html.spec.whatwg.org/multipage/server-sent-events.html#the-eventsource-interface */ - constructor(url, eventSourceInitDict = {}) { + constructor(url2, eventSourceInitDict = {}) { super(), webidl.util.markAsUncloneable(this); - let prefix = "EventSource constructor"; - webidl.argumentLengthCheck(arguments, 1, prefix), experimentalWarned || (experimentalWarned = !0, process.emitWarning("EventSource is experimental, expect them to change at any time.", { + let prefix2 = "EventSource constructor"; + webidl.argumentLengthCheck(arguments, 1, prefix2), experimentalWarned || (experimentalWarned = !0, process.emitWarning("EventSource is experimental, expect them to change at any time.", { code: "UNDICI-ES" - })), url = webidl.converters.USVString(url, prefix, "url"), eventSourceInitDict = webidl.converters.EventSourceInitDict(eventSourceInitDict, prefix, "eventSourceInitDict"), this.#dispatcher = eventSourceInitDict.dispatcher, this.#state = { + })), url2 = webidl.converters.USVString(url2, prefix2, "url"), eventSourceInitDict = webidl.converters.EventSourceInitDict(eventSourceInitDict, prefix2, "eventSourceInitDict"), this.#dispatcher = eventSourceInitDict.dispatcher, this.#state = { lastEventId: "", reconnectionTime: defaultReconnectionTime }; let settings = environmentSettingsObject, urlRecord; try { - urlRecord = new URL(url, settings.settingsObject.baseUrl), this.#state.origin = urlRecord.origin; + urlRecord = new URL(url2, settings.settingsObject.baseUrl), this.#state.origin = urlRecord.origin; } catch (e) { throw new DOMException(e, "SyntaxError"); } @@ -12722,7 +12722,7 @@ var require_eventsource = __commonJS({ this.#reconnect(); return; } - let contentType = response.headersList.get("content-type", !0), mimeType = contentType !== null ? parseMIMEType(contentType) : "failure", contentTypeValid = mimeType !== "failure" && mimeType.essence === "text/event-stream"; + let contentType2 = response.headersList.get("content-type", !0), mimeType = contentType2 !== null ? parseMIMEType(contentType2) : "failure", contentTypeValid = mimeType !== "failure" && mimeType.essence === "text/event-stream"; if (response.status !== 200 || contentTypeValid === !1) { this.close(), this.dispatchEvent(new Event("error")); return; @@ -12737,11 +12737,11 @@ var require_eventsource = __commonJS({ )); } }); - pipeline3( + pipeline5( response.body.stream, eventSourceStream, - (error2) => { - error2?.aborted === !1 && (this.close(), this.dispatchEvent(new Event("error"))); + (error3) => { + error3?.aborted === !1 && (this.close(), this.dispatchEvent(new Event("error"))); } ); }, this.#controller = fetching(fetchParams); @@ -12751,7 +12751,7 @@ var require_eventsource = __commonJS({ * @returns {Promise} */ async #reconnect() { - this.#readyState !== CLOSED && (this.#readyState = CONNECTING, this.dispatchEvent(new Event("error")), await delay(this.#state.reconnectionTime), this.#readyState === CONNECTING && (this.#state.lastEventId.length && this.#request.headersList.set("last-event-id", this.#state.lastEventId, !0), this.#connect())); + this.#readyState !== CLOSED && (this.#readyState = CONNECTING, this.dispatchEvent(new Event("error")), await delay4(this.#state.reconnectionTime), this.#readyState === CONNECTING && (this.#state.lastEventId.length && this.#request.headersList.set("last-event-id", this.#state.lastEventId, !0), this.#connect())); } /** * Closes the connection, if any, and sets the readyState attribute to @@ -12833,16 +12833,16 @@ var require_eventsource = __commonJS({ // node_modules/undici/index.js var require_undici = __commonJS({ - "node_modules/undici/index.js"(exports, module) { + "node_modules/undici/index.js"(exports2, module) { "use strict"; - var Client = require_client(), Dispatcher = require_dispatcher(), Pool = require_pool(), BalancedPool = require_balanced_pool(), Agent = require_agent(), ProxyAgent2 = require_proxy_agent(), EnvHttpProxyAgent = require_env_http_proxy_agent(), RetryAgent = require_retry_agent(), errors = require_errors(), util = require_util(), { InvalidArgumentError } = errors, api = require_api(), buildConnector = require_connect(), MockClient = require_mock_client(), MockAgent = require_mock_agent(), MockPool = require_mock_pool(), mockErrors = require_mock_errors(), RetryHandler = require_retry_handler(), { getGlobalDispatcher, setGlobalDispatcher } = require_global2(), DecoratorHandler = require_decorator_handler(), RedirectHandler = require_redirect_handler(), createRedirectInterceptor = require_redirect_interceptor(); + var Client = require_client(), Dispatcher = require_dispatcher(), Pool = require_pool(), BalancedPool = require_balanced_pool(), Agent3 = require_agent(), ProxyAgent4 = require_proxy_agent(), EnvHttpProxyAgent = require_env_http_proxy_agent(), RetryAgent = require_retry_agent(), errors = require_errors(), util6 = require_util(), { InvalidArgumentError } = errors, api = require_api(), buildConnector = require_connect(), MockClient = require_mock_client(), MockAgent = require_mock_agent(), MockPool = require_mock_pool(), mockErrors = require_mock_errors(), RetryHandler = require_retry_handler(), { getGlobalDispatcher, setGlobalDispatcher } = require_global2(), DecoratorHandler = require_decorator_handler(), RedirectHandler = require_redirect_handler(), createRedirectInterceptor = require_redirect_interceptor(); Object.assign(Dispatcher.prototype, api); module.exports.Dispatcher = Dispatcher; module.exports.Client = Client; module.exports.Pool = Pool; module.exports.BalancedPool = BalancedPool; - module.exports.Agent = Agent; - module.exports.ProxyAgent = ProxyAgent2; + module.exports.Agent = Agent3; + module.exports.ProxyAgent = ProxyAgent4; module.exports.EnvHttpProxyAgent = EnvHttpProxyAgent; module.exports.RetryAgent = RetryAgent; module.exports.RetryHandler = RetryHandler; @@ -12858,29 +12858,29 @@ var require_undici = __commonJS({ module.exports.buildConnector = buildConnector; module.exports.errors = errors; module.exports.util = { - parseHeaders: util.parseHeaders, - headerNameToString: util.headerNameToString + parseHeaders: util6.parseHeaders, + headerNameToString: util6.headerNameToString }; function makeDispatcher(fn) { - return (url, opts, handler) => { - if (typeof opts == "function" && (handler = opts, opts = null), !url || typeof url != "string" && typeof url != "object" && !(url instanceof URL)) + return (url2, opts, handler) => { + if (typeof opts == "function" && (handler = opts, opts = null), !url2 || typeof url2 != "string" && typeof url2 != "object" && !(url2 instanceof URL)) throw new InvalidArgumentError("invalid url"); if (opts != null && typeof opts != "object") throw new InvalidArgumentError("invalid opts"); if (opts && opts.path != null) { if (typeof opts.path != "string") throw new InvalidArgumentError("invalid opts.path"); - let path4 = opts.path; - opts.path.startsWith("/") || (path4 = `/${path4}`), url = new URL(util.parseOrigin(url).origin + path4); + let path12 = opts.path; + opts.path.startsWith("/") || (path12 = `/${path12}`), url2 = new URL(util6.parseOrigin(url2).origin + path12); } else - opts || (opts = typeof url == "object" ? url : {}), url = util.parseURL(url); + opts || (opts = typeof url2 == "object" ? url2 : {}), url2 = util6.parseURL(url2); let { agent, dispatcher = getGlobalDispatcher() } = opts; if (agent) throw new InvalidArgumentError("unsupported opts.agent. Did you mean opts.client?"); return fn.call(dispatcher, { ...opts, - origin: url.origin, - path: url.search ? `${url.pathname}${url.search}` : url.pathname, + origin: url2.origin, + path: url2.search ? `${url2.pathname}${url2.search}` : url2.pathname, method: opts.method || (opts.body ? "PUT" : "GET") }, handler); }; @@ -12935,7 +12935,7 @@ var require_undici = __commonJS({ // node_modules/buffer-crc32/dist/index.cjs var require_dist = __commonJS({ - "node_modules/buffer-crc32/dist/index.cjs"(exports, module) { + "node_modules/buffer-crc32/dist/index.cjs"(exports2, module) { "use strict"; function getDefaultExportFromCjs(x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x.default : x; @@ -13234,29 +13234,29 @@ var require_dist = __commonJS({ // node_modules/yazl/index.js var require_yazl = __commonJS({ - "node_modules/yazl/index.js"(exports) { - var fs3 = __require("fs"), Transform = __require("stream").Transform, PassThrough = __require("stream").PassThrough, zlib = __require("zlib"), util = __require("util"), EventEmitter2 = __require("events").EventEmitter, errorMonitor = __require("events").errorMonitor, crc32 = require_dist(); - exports.ZipFile = ZipFile; - exports.dateToDosDateTime = dateToDosDateTime; - util.inherits(ZipFile, EventEmitter2); + "node_modules/yazl/index.js"(exports2) { + var fs8 = __require("fs"), Transform2 = __require("stream").Transform, PassThrough = __require("stream").PassThrough, zlib2 = __require("zlib"), util6 = __require("util"), EventEmitter4 = __require("events").EventEmitter, errorMonitor = __require("events").errorMonitor, crc32 = require_dist(); + exports2.ZipFile = ZipFile; + exports2.dateToDosDateTime = dateToDosDateTime; + util6.inherits(ZipFile, EventEmitter4); function ZipFile() { this.outputStream = new PassThrough(), this.entries = [], this.outputStreamCursor = 0, this.ended = !1, this.allDone = !1, this.forceZip64Eocd = !1, this.errored = !1, this.on(errorMonitor, function() { this.errored = !0; }); } ZipFile.prototype.addFile = function(realPath, metadataPath, options) { - var self = this; - if (metadataPath = validateMetadataPath(metadataPath, !1), options == null && (options = {}), !shouldIgnoreAdding(self)) { + var self2 = this; + if (metadataPath = validateMetadataPath(metadataPath, !1), options == null && (options = {}), !shouldIgnoreAdding(self2)) { var entry = new Entry(metadataPath, !1, options); - self.entries.push(entry), fs3.stat(realPath, function(err, stats) { - if (err) return self.emit("error", err); - if (!stats.isFile()) return self.emit("error", new Error("not a file: " + realPath)); + self2.entries.push(entry), fs8.stat(realPath, function(err, stats) { + if (err) return self2.emit("error", err); + if (!stats.isFile()) return self2.emit("error", new Error("not a file: " + realPath)); entry.uncompressedSize = stats.size, options.mtime == null && entry.setLastModDate(stats.mtime), options.mode == null && entry.setFileAttributesMode(stats.mode), entry.setFileDataPumpFunction(function() { - var readStream = fs3.createReadStream(realPath); + var readStream = fs8.createReadStream(realPath); entry.state = Entry.FILE_DATA_IN_PROGRESS, readStream.on("error", function(err2) { - self.emit("error", err2); - }), pumpFileDataReadStream(self, entry, readStream); - }), pumpEntries(self); + self2.emit("error", err2); + }), pumpFileDataReadStream(self2, entry, readStream); + }), pumpEntries(self2); }); } }; @@ -13266,44 +13266,44 @@ var require_yazl = __commonJS({ }); }; ZipFile.prototype.addReadStreamLazy = function(metadataPath, options, getReadStreamFunction) { - var self = this; - if (typeof options == "function" && (getReadStreamFunction = options, options = null), options == null && (options = {}), metadataPath = validateMetadataPath(metadataPath, !1), !shouldIgnoreAdding(self)) { + var self2 = this; + if (typeof options == "function" && (getReadStreamFunction = options, options = null), options == null && (options = {}), metadataPath = validateMetadataPath(metadataPath, !1), !shouldIgnoreAdding(self2)) { var entry = new Entry(metadataPath, !1, options); - self.entries.push(entry), entry.setFileDataPumpFunction(function() { + self2.entries.push(entry), entry.setFileDataPumpFunction(function() { entry.state = Entry.FILE_DATA_IN_PROGRESS, getReadStreamFunction(function(err, readStream) { - if (err) return self.emit("error", err); - pumpFileDataReadStream(self, entry, readStream); + if (err) return self2.emit("error", err); + pumpFileDataReadStream(self2, entry, readStream); }); - }), pumpEntries(self); + }), pumpEntries(self2); } }; - ZipFile.prototype.addBuffer = function(buffer, metadataPath, options) { - var self = this; - if (metadataPath = validateMetadataPath(metadataPath, !1), buffer.length > 1073741823) throw new Error("buffer too large: " + buffer.length + " > 1073741823"); + ZipFile.prototype.addBuffer = function(buffer3, metadataPath, options) { + var self2 = this; + if (metadataPath = validateMetadataPath(metadataPath, !1), buffer3.length > 1073741823) throw new Error("buffer too large: " + buffer3.length + " > 1073741823"); if (options == null && (options = {}), options.size != null) throw new Error("options.size not allowed"); - if (shouldIgnoreAdding(self)) return; + if (shouldIgnoreAdding(self2)) return; var entry = new Entry(metadataPath, !1, options); - entry.uncompressedSize = buffer.length, entry.crc32 = crc32.unsigned(buffer), entry.crcAndFileSizeKnown = !0, self.entries.push(entry), entry.compressionLevel === 0 ? setCompressedBuffer(buffer) : zlib.deflateRaw(buffer, { level: entry.compressionLevel }, function(err, compressedBuffer) { + entry.uncompressedSize = buffer3.length, entry.crc32 = crc32.unsigned(buffer3), entry.crcAndFileSizeKnown = !0, self2.entries.push(entry), entry.compressionLevel === 0 ? setCompressedBuffer(buffer3) : zlib2.deflateRaw(buffer3, { level: entry.compressionLevel }, function(err, compressedBuffer) { setCompressedBuffer(compressedBuffer); }); function setCompressedBuffer(compressedBuffer) { entry.compressedSize = compressedBuffer.length, entry.setFileDataPumpFunction(function() { - writeToOutputStream(self, compressedBuffer), writeToOutputStream(self, entry.getDataDescriptor()), entry.state = Entry.FILE_DATA_DONE, setImmediate(function() { - pumpEntries(self); + writeToOutputStream(self2, compressedBuffer), writeToOutputStream(self2, entry.getDataDescriptor()), entry.state = Entry.FILE_DATA_DONE, setImmediate(function() { + pumpEntries(self2); }); - }), pumpEntries(self); + }), pumpEntries(self2); } }; ZipFile.prototype.addEmptyDirectory = function(metadataPath, options) { - var self = this; + var self2 = this; if (metadataPath = validateMetadataPath(metadataPath, !0), options == null && (options = {}), options.size != null) throw new Error("options.size not allowed"); if (options.compress != null) throw new Error("options.compress not allowed"); if (options.compressionLevel != null) throw new Error("options.compressionLevel not allowed"); - if (!shouldIgnoreAdding(self)) { + if (!shouldIgnoreAdding(self2)) { var entry = new Entry(metadataPath, !0, options); - self.entries.push(entry), entry.setFileDataPumpFunction(function() { - writeToOutputStream(self, entry.getDataDescriptor()), entry.state = Entry.FILE_DATA_DONE, pumpEntries(self); - }), pumpEntries(self); + self2.entries.push(entry), entry.setFileDataPumpFunction(function() { + writeToOutputStream(self2, entry.getDataDescriptor()), entry.state = Entry.FILE_DATA_DONE, pumpEntries(self2); + }), pumpEntries(self2); } }; var eocdrSignatureBuffer = bufferFrom([80, 75, 5, 6]); @@ -13317,16 +13317,16 @@ var require_yazl = __commonJS({ pumpEntries(this); } }; - function writeToOutputStream(self, buffer) { - self.outputStream.write(buffer), self.outputStreamCursor += buffer.length; + function writeToOutputStream(self2, buffer3) { + self2.outputStream.write(buffer3), self2.outputStreamCursor += buffer3.length; } - function pumpFileDataReadStream(self, entry, readStream) { - var crc32Watcher = new Crc32Watcher(), uncompressedSizeCounter = new ByteCounter(), compressor = entry.compressionLevel !== 0 ? new zlib.DeflateRaw({ level: entry.compressionLevel }) : new PassThrough(), compressedSizeCounter = new ByteCounter(); - readStream.pipe(crc32Watcher).pipe(uncompressedSizeCounter).pipe(compressor).pipe(compressedSizeCounter).pipe(self.outputStream, { end: !1 }), compressedSizeCounter.on("end", function() { + function pumpFileDataReadStream(self2, entry, readStream) { + var crc32Watcher = new Crc32Watcher(), uncompressedSizeCounter = new ByteCounter(), compressor = entry.compressionLevel !== 0 ? new zlib2.DeflateRaw({ level: entry.compressionLevel }) : new PassThrough(), compressedSizeCounter = new ByteCounter(); + readStream.pipe(crc32Watcher).pipe(uncompressedSizeCounter).pipe(compressor).pipe(compressedSizeCounter).pipe(self2.outputStream, { end: !1 }), compressedSizeCounter.on("end", function() { if (entry.crc32 = crc32Watcher.crc32, entry.uncompressedSize == null) entry.uncompressedSize = uncompressedSizeCounter.byteCount; - else if (entry.uncompressedSize !== uncompressedSizeCounter.byteCount) return self.emit("error", new Error("file data stream has unexpected number of bytes")); - entry.compressedSize = compressedSizeCounter.byteCount, self.outputStreamCursor += entry.compressedSize, writeToOutputStream(self, entry.getDataDescriptor()), entry.state = Entry.FILE_DATA_DONE, pumpEntries(self); + else if (entry.uncompressedSize !== uncompressedSizeCounter.byteCount) return self2.emit("error", new Error("file data stream has unexpected number of bytes")); + entry.compressedSize = compressedSizeCounter.byteCount, self2.outputStreamCursor += entry.compressedSize, writeToOutputStream(self2, entry.getDataDescriptor()), entry.state = Entry.FILE_DATA_DONE, pumpEntries(self2); }); } function determineCompressionLevel(options) { @@ -13334,34 +13334,34 @@ var require_yazl = __commonJS({ throw new Error("conflicting settings for compress and compressionLevel"); return options.compressionLevel != null ? options.compressionLevel : options.compress === !1 ? 0 : 6; } - function pumpEntries(self) { - if (self.allDone || self.errored) return; - if (self.ended && self.calculatedTotalSizeCallback != null) { - var calculatedTotalSize = calculateTotalSize(self); - calculatedTotalSize != null && (self.calculatedTotalSizeCallback(calculatedTotalSize), self.calculatedTotalSizeCallback = null); + function pumpEntries(self2) { + if (self2.allDone || self2.errored) return; + if (self2.ended && self2.calculatedTotalSizeCallback != null) { + var calculatedTotalSize = calculateTotalSize(self2); + calculatedTotalSize != null && (self2.calculatedTotalSizeCallback(calculatedTotalSize), self2.calculatedTotalSizeCallback = null); } var entry = getFirstNotDoneEntry(); function getFirstNotDoneEntry() { - for (var i = 0; i < self.entries.length; i++) { - var entry2 = self.entries[i]; + for (var i = 0; i < self2.entries.length; i++) { + var entry2 = self2.entries[i]; if (entry2.state < Entry.FILE_DATA_DONE) return entry2; } return null; } if (entry != null) { if (entry.state < Entry.READY_TO_PUMP_FILE_DATA || entry.state === Entry.FILE_DATA_IN_PROGRESS) return; - entry.relativeOffsetOfLocalHeader = self.outputStreamCursor; + entry.relativeOffsetOfLocalHeader = self2.outputStreamCursor; var localFileHeader = entry.getLocalFileHeader(); - writeToOutputStream(self, localFileHeader), entry.doFileDataPump(); + writeToOutputStream(self2, localFileHeader), entry.doFileDataPump(); } else - self.ended && (self.offsetOfStartOfCentralDirectory = self.outputStreamCursor, self.entries.forEach(function(entry2) { + self2.ended && (self2.offsetOfStartOfCentralDirectory = self2.outputStreamCursor, self2.entries.forEach(function(entry2) { var centralDirectoryRecord = entry2.getCentralDirectoryRecord(); - writeToOutputStream(self, centralDirectoryRecord); - }), writeToOutputStream(self, getEndOfCentralDirectoryRecord(self)), self.outputStream.end(), self.allDone = !0); + writeToOutputStream(self2, centralDirectoryRecord); + }), writeToOutputStream(self2, getEndOfCentralDirectoryRecord(self2)), self2.outputStream.end(), self2.allDone = !0); } - function calculateTotalSize(self) { - for (var pretendOutputCursor = 0, centralDirectorySize = 0, i = 0; i < self.entries.length; i++) { - var entry = self.entries[i]; + function calculateTotalSize(self2) { + for (var pretendOutputCursor = 0, centralDirectorySize = 0, i = 0; i < self2.entries.length; i++) { + var entry = self2.entries[i]; if (entry.compressionLevel !== 0) return -1; if (entry.state >= Entry.READY_TO_PUMP_FILE_DATA) { if (entry.uncompressedSize == null) return -1; @@ -13371,27 +13371,27 @@ var require_yazl = __commonJS({ pretendOutputCursor += LOCAL_FILE_HEADER_FIXED_SIZE + entry.utf8FileName.length, pretendOutputCursor += entry.uncompressedSize, entry.crcAndFileSizeKnown || (useZip64Format ? pretendOutputCursor += ZIP64_DATA_DESCRIPTOR_SIZE : pretendOutputCursor += DATA_DESCRIPTOR_SIZE), centralDirectorySize += CENTRAL_DIRECTORY_RECORD_FIXED_SIZE + entry.utf8FileName.length + entry.fileComment.length, entry.forceDosTimestamp || (centralDirectorySize += INFO_ZIP_UNIVERSAL_TIMESTAMP_EXTRA_FIELD_SIZE), useZip64Format && (centralDirectorySize += ZIP64_EXTENDED_INFORMATION_EXTRA_FIELD_SIZE); } var endOfCentralDirectorySize = 0; - return (self.forceZip64Eocd || self.entries.length >= 65535 || centralDirectorySize >= 65535 || pretendOutputCursor >= 4294967295) && (endOfCentralDirectorySize += ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE + ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIZE), endOfCentralDirectorySize += END_OF_CENTRAL_DIRECTORY_RECORD_SIZE + self.comment.length, pretendOutputCursor + centralDirectorySize + endOfCentralDirectorySize; + return (self2.forceZip64Eocd || self2.entries.length >= 65535 || centralDirectorySize >= 65535 || pretendOutputCursor >= 4294967295) && (endOfCentralDirectorySize += ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE + ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIZE), endOfCentralDirectorySize += END_OF_CENTRAL_DIRECTORY_RECORD_SIZE + self2.comment.length, pretendOutputCursor + centralDirectorySize + endOfCentralDirectorySize; } - function shouldIgnoreAdding(self) { - if (self.ended) throw new Error("cannot add entries after calling end()"); - return !!self.errored; + function shouldIgnoreAdding(self2) { + if (self2.ended) throw new Error("cannot add entries after calling end()"); + return !!self2.errored; } var ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE = 56, ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIZE = 20, END_OF_CENTRAL_DIRECTORY_RECORD_SIZE = 22; - function getEndOfCentralDirectoryRecord(self, actuallyJustTellMeHowLongItWouldBe) { - var needZip64Format = !1, normalEntriesLength = self.entries.length; - (self.forceZip64Eocd || self.entries.length >= 65535) && (normalEntriesLength = 65535, needZip64Format = !0); - var sizeOfCentralDirectory = self.outputStreamCursor - self.offsetOfStartOfCentralDirectory, normalSizeOfCentralDirectory = sizeOfCentralDirectory; - (self.forceZip64Eocd || sizeOfCentralDirectory >= 4294967295) && (normalSizeOfCentralDirectory = 4294967295, needZip64Format = !0); - var normalOffsetOfStartOfCentralDirectory = self.offsetOfStartOfCentralDirectory; - if ((self.forceZip64Eocd || self.offsetOfStartOfCentralDirectory >= 4294967295) && (normalOffsetOfStartOfCentralDirectory = 4294967295, needZip64Format = !0), actuallyJustTellMeHowLongItWouldBe) + function getEndOfCentralDirectoryRecord(self2, actuallyJustTellMeHowLongItWouldBe) { + var needZip64Format = !1, normalEntriesLength = self2.entries.length; + (self2.forceZip64Eocd || self2.entries.length >= 65535) && (normalEntriesLength = 65535, needZip64Format = !0); + var sizeOfCentralDirectory = self2.outputStreamCursor - self2.offsetOfStartOfCentralDirectory, normalSizeOfCentralDirectory = sizeOfCentralDirectory; + (self2.forceZip64Eocd || sizeOfCentralDirectory >= 4294967295) && (normalSizeOfCentralDirectory = 4294967295, needZip64Format = !0); + var normalOffsetOfStartOfCentralDirectory = self2.offsetOfStartOfCentralDirectory; + if ((self2.forceZip64Eocd || self2.offsetOfStartOfCentralDirectory >= 4294967295) && (normalOffsetOfStartOfCentralDirectory = 4294967295, needZip64Format = !0), actuallyJustTellMeHowLongItWouldBe) return needZip64Format ? ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE + ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIZE + END_OF_CENTRAL_DIRECTORY_RECORD_SIZE : END_OF_CENTRAL_DIRECTORY_RECORD_SIZE; - var eocdrBuffer = bufferAlloc(END_OF_CENTRAL_DIRECTORY_RECORD_SIZE + self.comment.length); - if (eocdrBuffer.writeUInt32LE(101010256, 0), eocdrBuffer.writeUInt16LE(0, 4), eocdrBuffer.writeUInt16LE(0, 6), eocdrBuffer.writeUInt16LE(normalEntriesLength, 8), eocdrBuffer.writeUInt16LE(normalEntriesLength, 10), eocdrBuffer.writeUInt32LE(normalSizeOfCentralDirectory, 12), eocdrBuffer.writeUInt32LE(normalOffsetOfStartOfCentralDirectory, 16), eocdrBuffer.writeUInt16LE(self.comment.length, 20), self.comment.copy(eocdrBuffer, 22), !needZip64Format) return eocdrBuffer; + var eocdrBuffer = bufferAlloc(END_OF_CENTRAL_DIRECTORY_RECORD_SIZE + self2.comment.length); + if (eocdrBuffer.writeUInt32LE(101010256, 0), eocdrBuffer.writeUInt16LE(0, 4), eocdrBuffer.writeUInt16LE(0, 6), eocdrBuffer.writeUInt16LE(normalEntriesLength, 8), eocdrBuffer.writeUInt16LE(normalEntriesLength, 10), eocdrBuffer.writeUInt32LE(normalSizeOfCentralDirectory, 12), eocdrBuffer.writeUInt32LE(normalOffsetOfStartOfCentralDirectory, 16), eocdrBuffer.writeUInt16LE(self2.comment.length, 20), self2.comment.copy(eocdrBuffer, 22), !needZip64Format) return eocdrBuffer; var zip64EocdrBuffer = bufferAlloc(ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE); - zip64EocdrBuffer.writeUInt32LE(101075792, 0), writeUInt64LE(zip64EocdrBuffer, ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE - 12, 4), zip64EocdrBuffer.writeUInt16LE(VERSION_MADE_BY, 12), zip64EocdrBuffer.writeUInt16LE(VERSION_NEEDED_TO_EXTRACT_ZIP64, 14), zip64EocdrBuffer.writeUInt32LE(0, 16), zip64EocdrBuffer.writeUInt32LE(0, 20), writeUInt64LE(zip64EocdrBuffer, self.entries.length, 24), writeUInt64LE(zip64EocdrBuffer, self.entries.length, 32), writeUInt64LE(zip64EocdrBuffer, sizeOfCentralDirectory, 40), writeUInt64LE(zip64EocdrBuffer, self.offsetOfStartOfCentralDirectory, 48); + zip64EocdrBuffer.writeUInt32LE(101075792, 0), writeUInt64LE(zip64EocdrBuffer, ZIP64_END_OF_CENTRAL_DIRECTORY_RECORD_SIZE - 12, 4), zip64EocdrBuffer.writeUInt16LE(VERSION_MADE_BY, 12), zip64EocdrBuffer.writeUInt16LE(VERSION_NEEDED_TO_EXTRACT_ZIP64, 14), zip64EocdrBuffer.writeUInt32LE(0, 16), zip64EocdrBuffer.writeUInt32LE(0, 20), writeUInt64LE(zip64EocdrBuffer, self2.entries.length, 24), writeUInt64LE(zip64EocdrBuffer, self2.entries.length, 32), writeUInt64LE(zip64EocdrBuffer, sizeOfCentralDirectory, 40), writeUInt64LE(zip64EocdrBuffer, self2.offsetOfStartOfCentralDirectory, 48); var zip64EocdlBuffer = bufferAlloc(ZIP64_END_OF_CENTRAL_DIRECTORY_LOCATOR_SIZE); - return zip64EocdlBuffer.writeUInt32LE(117853008, 0), zip64EocdlBuffer.writeUInt32LE(0, 4), writeUInt64LE(zip64EocdlBuffer, self.outputStreamCursor, 8), zip64EocdlBuffer.writeUInt32LE(1, 16), Buffer.concat([ + return zip64EocdlBuffer.writeUInt32LE(117853008, 0), zip64EocdlBuffer.writeUInt32LE(0, 4), writeUInt64LE(zip64EocdlBuffer, self2.outputStreamCursor, 8), zip64EocdlBuffer.writeUInt32LE(1, 16), Buffer.concat([ zip64EocdrBuffer, zip64EocdlBuffer, eocdrBuffer @@ -13452,11 +13452,11 @@ var require_yazl = __commonJS({ if (this.crcAndFileSizeKnown) return EMPTY_BUFFER; if (this.useZip64Format()) { - var buffer = bufferAlloc(ZIP64_DATA_DESCRIPTOR_SIZE); - return buffer.writeUInt32LE(134695760, 0), buffer.writeUInt32LE(this.crc32, 4), writeUInt64LE(buffer, this.compressedSize, 8), writeUInt64LE(buffer, this.uncompressedSize, 16), buffer; + var buffer3 = bufferAlloc(ZIP64_DATA_DESCRIPTOR_SIZE); + return buffer3.writeUInt32LE(134695760, 0), buffer3.writeUInt32LE(this.crc32, 4), writeUInt64LE(buffer3, this.compressedSize, 8), writeUInt64LE(buffer3, this.uncompressedSize, 16), buffer3; } else { - var buffer = bufferAlloc(DATA_DESCRIPTOR_SIZE); - return buffer.writeUInt32LE(134695760, 0), buffer.writeUInt32LE(this.crc32, 4), buffer.writeUInt32LE(this.compressedSize, 8), buffer.writeUInt32LE(this.uncompressedSize, 12), buffer; + var buffer3 = bufferAlloc(DATA_DESCRIPTOR_SIZE); + return buffer3.writeUInt32LE(134695760, 0), buffer3.writeUInt32LE(this.crc32, 4), buffer3.writeUInt32LE(this.compressedSize, 8), buffer3.writeUInt32LE(this.uncompressedSize, 12), buffer3; } }; var CENTRAL_DIRECTORY_RECORD_FIXED_SIZE = 46, INFO_ZIP_UNIVERSAL_TIMESTAMP_EXTRA_FIELD_SIZE = 9, ZIP64_EXTENDED_INFORMATION_EXTRA_FIELD_SIZE = 28; @@ -13495,20 +13495,20 @@ var require_yazl = __commonJS({ var time = 0; return time |= Math.floor(jsDate.getSeconds() / 2), time |= (jsDate.getMinutes() & 63) << 5, time |= (jsDate.getHours() & 31) << 11, { date, time }; } - function writeUInt64LE(buffer, n, offset) { + function writeUInt64LE(buffer3, n, offset) { var high = Math.floor(n / 4294967296), low = n % 4294967296; - buffer.writeUInt32LE(low, offset), buffer.writeUInt32LE(high, offset + 4); + buffer3.writeUInt32LE(low, offset), buffer3.writeUInt32LE(high, offset + 4); } - util.inherits(ByteCounter, Transform); + util6.inherits(ByteCounter, Transform2); function ByteCounter(options) { - Transform.call(this, options), this.byteCount = 0; + Transform2.call(this, options), this.byteCount = 0; } ByteCounter.prototype._transform = function(chunk, encoding, cb) { this.byteCount += chunk.length, cb(null, chunk); }; - util.inherits(Crc32Watcher, Transform); + util6.inherits(Crc32Watcher, Transform2); function Crc32Watcher(options) { - Transform.call(this, options), this.crc32 = 0; + Transform2.call(this, options), this.crc32 = 0; } Crc32Watcher.prototype._transform = function(chunk, encoding, cb) { this.crc32 = crc32.unsigned(chunk, this.crc32), cb(null, chunk); @@ -13559,21 +13559,21 @@ var require_yazl = __commonJS({ return new Buffer(something2, encoding2); } } - function bufferIncludes(buffer, content) { + function bufferIncludes(buffer3, content) { bufferIncludes = modern; try { - return bufferIncludes(buffer, content); + return bufferIncludes(buffer3, content); } catch { - return bufferIncludes = legacy, bufferIncludes(buffer, content); + return bufferIncludes = legacy, bufferIncludes(buffer3, content); } - function modern(buffer2, content2) { - return buffer2.includes(content2); + function modern(buffer4, content2) { + return buffer4.includes(content2); } - function legacy(buffer2, content2) { - for (var i = 0; i <= buffer2.length - content2.length; i++) + function legacy(buffer4, content2) { + for (var i = 0; i <= buffer4.length - content2.length; i++) for (var j = 0; ; j++) { if (j === content2.length) return !0; - if (buffer2[i + j] !== content2[j]) break; + if (buffer4[i + j] !== content2[j]) break; } return !1; } @@ -13581,5672 +13581,45052 @@ var require_yazl = __commonJS({ } }); -// node_modules/@actions/core/lib/command.js -import * as os from "os"; - -// node_modules/@actions/core/lib/utils.js -function toCommandValue(input) { - return input == null ? "" : typeof input == "string" || input instanceof String ? input : JSON.stringify(input); -} -function toCommandProperties(annotationProperties) { - return Object.keys(annotationProperties).length ? { - title: annotationProperties.title, - file: annotationProperties.file, - line: annotationProperties.startLine, - endLine: annotationProperties.endLine, - col: annotationProperties.startColumn, - endColumn: annotationProperties.endColumn - } : {}; -} +// node_modules/concat-map/index.js +var require_concat_map = __commonJS({ + "node_modules/concat-map/index.js"(exports2, module) { + module.exports = function(xs, fn) { + for (var res = [], i = 0; i < xs.length; i++) { + var x = fn(xs[i], i); + isArray(x) ? res.push.apply(res, x) : res.push(x); + } + return res; + }; + var isArray = Array.isArray || function(xs) { + return Object.prototype.toString.call(xs) === "[object Array]"; + }; + } +}); -// node_modules/@actions/core/lib/command.js -function issueCommand(command, properties, message) { - let cmd = new Command(command, properties, message); - process.stdout.write(cmd.toString() + os.EOL); -} -function issue(name, message = "") { - issueCommand(name, {}, message); -} -var CMD_STRING = "::", Command = class { - constructor(command, properties, message) { - command || (command = "missing.command"), this.command = command, this.properties = properties, this.message = message; +// node_modules/balanced-match/index.js +var require_balanced_match = __commonJS({ + "node_modules/balanced-match/index.js"(exports2, module) { + "use strict"; + module.exports = balanced; + function balanced(a, b, str) { + a instanceof RegExp && (a = maybeMatch(a, str)), b instanceof RegExp && (b = maybeMatch(b, str)); + var r = range2(a, b, str); + return r && { + start: r[0], + end: r[1], + pre: str.slice(0, r[0]), + body: str.slice(r[0] + a.length, r[1]), + post: str.slice(r[1] + b.length) + }; + } + function maybeMatch(reg, str) { + var m = str.match(reg); + return m ? m[0] : null; + } + balanced.range = range2; + function range2(a, b, str) { + var begs, beg, left, right, result, ai = str.indexOf(a), bi = str.indexOf(b, ai + 1), i = ai; + if (ai >= 0 && bi > 0) { + if (a === b) + return [ai, bi]; + for (begs = [], left = str.length; i >= 0 && !result; ) + i == ai ? (begs.push(i), ai = str.indexOf(a, i + 1)) : begs.length == 1 ? result = [begs.pop(), bi] : (beg = begs.pop(), beg < left && (left = beg, right = bi), bi = str.indexOf(b, i + 1)), i = ai < bi && ai >= 0 ? ai : bi; + begs.length && (result = [left, right]); + } + return result; + } } - toString() { - let cmdStr = CMD_STRING + this.command; - if (this.properties && Object.keys(this.properties).length > 0) { - cmdStr += " "; - let first = !0; - for (let key in this.properties) - if (this.properties.hasOwnProperty(key)) { - let val = this.properties[key]; - val && (first ? first = !1 : cmdStr += ",", cmdStr += `${key}=${escapeProperty(val)}`); +}); + +// node_modules/brace-expansion/index.js +var require_brace_expansion = __commonJS({ + "node_modules/brace-expansion/index.js"(exports2, module) { + var concatMap = require_concat_map(), balanced = require_balanced_match(); + module.exports = expandTop; + var escSlash = "\0SLASH" + Math.random() + "\0", escOpen = "\0OPEN" + Math.random() + "\0", escClose = "\0CLOSE" + Math.random() + "\0", escComma = "\0COMMA" + Math.random() + "\0", escPeriod = "\0PERIOD" + Math.random() + "\0"; + function numeric(str) { + return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0); + } + function escapeBraces(str) { + return str.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod); + } + function unescapeBraces(str) { + return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join("."); + } + function parseCommaParts(str) { + if (!str) + return [""]; + var parts = [], m = balanced("{", "}", str); + if (!m) + return str.split(","); + var pre = m.pre, body2 = m.body, post = m.post, p = pre.split(","); + p[p.length - 1] += "{" + body2 + "}"; + var postParts = parseCommaParts(post); + return post.length && (p[p.length - 1] += postParts.shift(), p.push.apply(p, postParts)), parts.push.apply(parts, p), parts; + } + function expandTop(str, options) { + if (!str) + return []; + options = options || {}; + var max = options.max == null ? 1 / 0 : options.max; + return str.substr(0, 2) === "{}" && (str = "\\{\\}" + str.substr(2)), expand(escapeBraces(str), max, !0).map(unescapeBraces); + } + function embrace(str) { + return "{" + str + "}"; + } + function isPadded(el) { + return /^-?0\d/.test(el); + } + function lte(i, y) { + return i <= y; + } + function gte(i, y) { + return i >= y; + } + function expand(str, max, isTop) { + var expansions = [], m = balanced("{", "}", str); + if (!m || /\$$/.test(m.pre)) return [str]; + var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body), isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body), isSequence = isNumericSequence || isAlphaSequence, isOptions = m.body.indexOf(",") >= 0; + if (!isSequence && !isOptions) + return m.post.match(/,(?!,).*\}/) ? (str = m.pre + "{" + m.body + escClose + m.post, expand(str, max, !0)) : [str]; + var n; + if (isSequence) + n = m.body.split(/\.\./); + else if (n = parseCommaParts(m.body), n.length === 1 && (n = expand(n[0], max, !1).map(embrace), n.length === 1)) { + var post = m.post.length ? expand(m.post, max, !1) : [""]; + return post.map(function(p) { + return m.pre + n[0] + p; + }); + } + var pre = m.pre, post = m.post.length ? expand(m.post, max, !1) : [""], N; + if (isSequence) { + var x = numeric(n[0]), y = numeric(n[1]), width = Math.max(n[0].length, n[1].length), incr = n.length == 3 ? Math.max(Math.abs(numeric(n[2])), 1) : 1, test = lte, reverse = y < x; + reverse && (incr *= -1, test = gte); + var pad = n.some(isPadded); + N = []; + for (var i = x; test(i, y); i += incr) { + var c; + if (isAlphaSequence) + c = String.fromCharCode(i), c === "\\" && (c = ""); + else if (c = String(i), pad) { + var need = width - c.length; + if (need > 0) { + var z = new Array(need + 1).join("0"); + i < 0 ? c = "-" + z + c.slice(1) : c = z + c; + } + } + N.push(c); + } + } else + N = concatMap(n, function(el) { + return expand(el, max, !1); + }); + for (var j = 0; j < N.length; j++) + for (var k = 0; k < post.length && expansions.length < max; k++) { + var expansion = pre + N[j] + post[k]; + (!isTop || isSequence || expansion) && expansions.push(expansion); } + return expansions; } - return cmdStr += `${CMD_STRING}${escapeData(this.message)}`, cmdStr; } -}; -function escapeData(s) { - return toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A"); -} -function escapeProperty(s) { - return toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C"); -} - -// node_modules/@actions/core/lib/file-command.js -import * as crypto from "crypto"; -import * as fs from "fs"; -import * as os2 from "os"; -function issueFileCommand(command, message) { - let filePath = process.env[`GITHUB_${command}`]; - if (!filePath) - throw new Error(`Unable to find environment variable for file command ${command}`); - if (!fs.existsSync(filePath)) - throw new Error(`Missing file at path: ${filePath}`); - fs.appendFileSync(filePath, `${toCommandValue(message)}${os2.EOL}`, { - encoding: "utf8" - }); -} -function prepareKeyValueMessage(key, value) { - let delimiter2 = `ghadelimiter_${crypto.randomUUID()}`, convertedValue = toCommandValue(value); - if (key.includes(delimiter2)) - throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter2}"`); - if (convertedValue.includes(delimiter2)) - throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter2}"`); - return `${key}<<${delimiter2}${os2.EOL}${convertedValue}${os2.EOL}${delimiter2}`; -} - -// node_modules/@actions/core/lib/core.js -import * as os5 from "os"; - -// node_modules/@actions/http-client/lib/index.js -var tunnel = __toESM(require_tunnel2(), 1), import_undici = __toESM(require_undici(), 1); -var HttpCodes; -(function(HttpCodes2) { - HttpCodes2[HttpCodes2.OK = 200] = "OK", HttpCodes2[HttpCodes2.MultipleChoices = 300] = "MultipleChoices", HttpCodes2[HttpCodes2.MovedPermanently = 301] = "MovedPermanently", HttpCodes2[HttpCodes2.ResourceMoved = 302] = "ResourceMoved", HttpCodes2[HttpCodes2.SeeOther = 303] = "SeeOther", HttpCodes2[HttpCodes2.NotModified = 304] = "NotModified", HttpCodes2[HttpCodes2.UseProxy = 305] = "UseProxy", HttpCodes2[HttpCodes2.SwitchProxy = 306] = "SwitchProxy", HttpCodes2[HttpCodes2.TemporaryRedirect = 307] = "TemporaryRedirect", HttpCodes2[HttpCodes2.PermanentRedirect = 308] = "PermanentRedirect", HttpCodes2[HttpCodes2.BadRequest = 400] = "BadRequest", HttpCodes2[HttpCodes2.Unauthorized = 401] = "Unauthorized", HttpCodes2[HttpCodes2.PaymentRequired = 402] = "PaymentRequired", HttpCodes2[HttpCodes2.Forbidden = 403] = "Forbidden", HttpCodes2[HttpCodes2.NotFound = 404] = "NotFound", HttpCodes2[HttpCodes2.MethodNotAllowed = 405] = "MethodNotAllowed", HttpCodes2[HttpCodes2.NotAcceptable = 406] = "NotAcceptable", HttpCodes2[HttpCodes2.ProxyAuthenticationRequired = 407] = "ProxyAuthenticationRequired", HttpCodes2[HttpCodes2.RequestTimeout = 408] = "RequestTimeout", HttpCodes2[HttpCodes2.Conflict = 409] = "Conflict", HttpCodes2[HttpCodes2.Gone = 410] = "Gone", HttpCodes2[HttpCodes2.TooManyRequests = 429] = "TooManyRequests", HttpCodes2[HttpCodes2.InternalServerError = 500] = "InternalServerError", HttpCodes2[HttpCodes2.NotImplemented = 501] = "NotImplemented", HttpCodes2[HttpCodes2.BadGateway = 502] = "BadGateway", HttpCodes2[HttpCodes2.ServiceUnavailable = 503] = "ServiceUnavailable", HttpCodes2[HttpCodes2.GatewayTimeout = 504] = "GatewayTimeout"; -})(HttpCodes || (HttpCodes = {})); -var Headers; -(function(Headers2) { - Headers2.Accept = "accept", Headers2.ContentType = "content-type"; -})(Headers || (Headers = {})); -var MediaTypes; -(function(MediaTypes2) { - MediaTypes2.ApplicationJson = "application/json"; -})(MediaTypes || (MediaTypes = {})); -var HttpRedirectCodes = [ - HttpCodes.MovedPermanently, - HttpCodes.ResourceMoved, - HttpCodes.SeeOther, - HttpCodes.TemporaryRedirect, - HttpCodes.PermanentRedirect -], HttpResponseRetryCodes = [ - HttpCodes.BadGateway, - HttpCodes.ServiceUnavailable, - HttpCodes.GatewayTimeout -]; +}); -// node_modules/@actions/core/lib/summary.js -import { EOL as EOL3 } from "os"; -import { constants, promises } from "fs"; -var __awaiter = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve2) { - resolve2(value); - }); - } - return new (P || (P = Promise))(function(resolve2, reject) { - function fulfilled(value) { +// node_modules/minimatch/minimatch.js +var require_minimatch = __commonJS({ + "node_modules/minimatch/minimatch.js"(exports2, module) { + module.exports = minimatch2; + minimatch2.Minimatch = Minimatch2; + var path12 = (function() { try { - step(generator.next(value)); - } catch (e) { - reject(e); + return __require("path"); + } catch { } + })() || { + sep: "/" + }; + minimatch2.sep = path12.sep; + var GLOBSTAR = minimatch2.GLOBSTAR = Minimatch2.GLOBSTAR = {}, expand = require_brace_expansion(), plTypes = { + "!": { open: "(?:(?!(?:", close: "))[^/]*?)" }, + "?": { open: "(?:", close: ")?" }, + "+": { open: "(?:", close: ")+" }, + "*": { open: "(?:", close: ")*" }, + "@": { open: "(?:", close: ")" } + }, qmark = "[^/]", star = qmark + "*?", twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?", twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?", reSpecials = charSet("().*{}+?[]^$\\!"); + function charSet(s) { + return s.split("").reduce(function(set, c) { + return set[c] = !0, set; + }, {}); + } + var slashSplit = /\/+/; + minimatch2.filter = filter; + function filter(pattern, options) { + return options = options || {}, function(p, i, list) { + return minimatch2(p, pattern, options); + }; } - function rejected(value) { + function ext(a, b) { + b = b || {}; + var t = {}; + return Object.keys(a).forEach(function(k) { + t[k] = a[k]; + }), Object.keys(b).forEach(function(k) { + t[k] = b[k]; + }), t; + } + minimatch2.defaults = function(def) { + if (!def || typeof def != "object" || !Object.keys(def).length) + return minimatch2; + var orig = minimatch2, m = function(p, pattern, options) { + return orig(p, pattern, ext(def, options)); + }; + return m.Minimatch = function(pattern, options) { + return new orig.Minimatch(pattern, ext(def, options)); + }, m.Minimatch.defaults = function(options) { + return orig.defaults(ext(def, options)).Minimatch; + }, m.filter = function(pattern, options) { + return orig.filter(pattern, ext(def, options)); + }, m.defaults = function(options) { + return orig.defaults(ext(def, options)); + }, m.makeRe = function(pattern, options) { + return orig.makeRe(pattern, ext(def, options)); + }, m.braceExpand = function(pattern, options) { + return orig.braceExpand(pattern, ext(def, options)); + }, m.match = function(list, pattern, options) { + return orig.match(list, pattern, ext(def, options)); + }, m; + }; + Minimatch2.defaults = function(def) { + return minimatch2.defaults(def).Minimatch; + }; + function minimatch2(p, pattern, options) { + return assertValidPattern(pattern), options || (options = {}), !options.nocomment && pattern.charAt(0) === "#" ? !1 : new Minimatch2(pattern, options).match(p); + } + function Minimatch2(pattern, options) { + if (!(this instanceof Minimatch2)) + return new Minimatch2(pattern, options); + assertValidPattern(pattern), options || (options = {}), pattern = pattern.trim(), !options.allowWindowsEscape && path12.sep !== "/" && (pattern = pattern.split(path12.sep).join("/")), this.options = options, this.maxGlobstarRecursion = options.maxGlobstarRecursion !== void 0 ? options.maxGlobstarRecursion : 200, this.set = [], this.pattern = pattern, this.regexp = null, this.negate = !1, this.comment = !1, this.empty = !1, this.partial = !!options.partial, this.make(); + } + Minimatch2.prototype.debug = function() { + }; + Minimatch2.prototype.make = make; + function make() { + var pattern = this.pattern, options = this.options; + if (!options.nocomment && pattern.charAt(0) === "#") { + this.comment = !0; + return; + } + if (!pattern) { + this.empty = !0; + return; + } + this.parseNegate(); + var set = this.globSet = this.braceExpand(); + options.debug && (this.debug = function() { + console.error.apply(console, arguments); + }), this.debug(this.pattern, set), set = this.globParts = set.map(function(s) { + return s.split(slashSplit); + }), this.debug(this.pattern, set), set = set.map(function(s, si, set2) { + return s.map(this.parse, this); + }, this), this.debug(this.pattern, set), set = set.filter(function(s) { + return s.indexOf(!1) === -1; + }), this.debug(this.pattern, set), this.set = set; + } + Minimatch2.prototype.parseNegate = parseNegate; + function parseNegate() { + var pattern = this.pattern, negate = !1, options = this.options, negateOffset = 0; + if (!options.nonegate) { + for (var i = 0, l = pattern.length; i < l && pattern.charAt(i) === "!"; i++) + negate = !negate, negateOffset++; + negateOffset && (this.pattern = pattern.substr(negateOffset)), this.negate = negate; + } + } + minimatch2.braceExpand = function(pattern, options) { + return braceExpand(pattern, options); + }; + Minimatch2.prototype.braceExpand = braceExpand; + function braceExpand(pattern, options) { + return options || (this instanceof Minimatch2 ? options = this.options : options = {}), pattern = typeof pattern > "u" ? this.pattern : pattern, assertValidPattern(pattern), options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern) ? [pattern] : expand(pattern); + } + var MAX_PATTERN_LENGTH = 1024 * 64, assertValidPattern = function(pattern) { + if (typeof pattern != "string") + throw new TypeError("invalid pattern"); + if (pattern.length > MAX_PATTERN_LENGTH) + throw new TypeError("pattern is too long"); + }; + Minimatch2.prototype.parse = parse2; + var SUBPARSE = {}; + function parse2(pattern, isSub) { + assertValidPattern(pattern); + var options = this.options; + if (pattern === "**") + if (options.noglobstar) + pattern = "*"; + else + return GLOBSTAR; + if (pattern === "") return ""; + var re = "", hasMagic = !!options.nocase, escaping = !1, patternListStack = [], negativeLists = [], stateChar, inClass = !1, reClassStart = -1, classStart = -1, patternStart = pattern.charAt(0) === "." ? "" : options.dot ? "(?!(?:^|\\/)\\.{1,2}(?:$|\\/))" : "(?!\\.)", self2 = this; + function clearStateChar() { + if (stateChar) { + switch (stateChar) { + case "*": + re += star, hasMagic = !0; + break; + case "?": + re += qmark, hasMagic = !0; + break; + default: + re += "\\" + stateChar; + break; + } + self2.debug("clearStateChar %j %j", stateChar, re), stateChar = !1; + } + } + for (var i = 0, len = pattern.length, c; i < len && (c = pattern.charAt(i)); i++) { + if (this.debug("%s %s %s %j", pattern, i, re, c), escaping && reSpecials[c]) { + re += "\\" + c, escaping = !1; + continue; + } + switch (c) { + /* istanbul ignore next */ + case "/": + return !1; + case "\\": + clearStateChar(), escaping = !0; + continue; + // the various stateChar values + // for the "extglob" stuff. + case "?": + case "*": + case "+": + case "@": + case "!": + if (this.debug("%s %s %s %j <-- stateChar", pattern, i, re, c), inClass) { + this.debug(" in class"), c === "!" && i === classStart + 1 && (c = "^"), re += c; + continue; + } + if (c === "*" && stateChar === "*") continue; + self2.debug("call clearStateChar %j", stateChar), clearStateChar(), stateChar = c, options.noext && clearStateChar(); + continue; + case "(": + if (inClass) { + re += "("; + continue; + } + if (!stateChar) { + re += "\\("; + continue; + } + patternListStack.push({ + type: stateChar, + start: i - 1, + reStart: re.length, + open: plTypes[stateChar].open, + close: plTypes[stateChar].close + }), re += stateChar === "!" ? "(?:(?!(?:" : "(?:", this.debug("plType %j %j", stateChar, re), stateChar = !1; + continue; + case ")": + if (inClass || !patternListStack.length) { + re += "\\)"; + continue; + } + clearStateChar(), hasMagic = !0; + var pl = patternListStack.pop(); + re += pl.close, pl.type === "!" && negativeLists.push(pl), pl.reEnd = re.length; + continue; + case "|": + if (inClass || !patternListStack.length || escaping) { + re += "\\|", escaping = !1; + continue; + } + clearStateChar(), re += "|"; + continue; + // these are mostly the same in regexp and glob + case "[": + if (clearStateChar(), inClass) { + re += "\\" + c; + continue; + } + inClass = !0, classStart = i, reClassStart = re.length, re += c; + continue; + case "]": + if (i === classStart + 1 || !inClass) { + re += "\\" + c, escaping = !1; + continue; + } + var cs = pattern.substring(classStart + 1, i); + try { + RegExp("[" + cs + "]"); + } catch { + var sp = this.parse(cs, SUBPARSE); + re = re.substr(0, reClassStart) + "\\[" + sp[0] + "\\]", hasMagic = hasMagic || sp[1], inClass = !1; + continue; + } + hasMagic = !0, inClass = !1, re += c; + continue; + default: + clearStateChar(), escaping ? escaping = !1 : reSpecials[c] && !(c === "^" && inClass) && (re += "\\"), re += c; + } + } + for (inClass && (cs = pattern.substr(classStart + 1), sp = this.parse(cs, SUBPARSE), re = re.substr(0, reClassStart) + "\\[" + sp[0], hasMagic = hasMagic || sp[1]), pl = patternListStack.pop(); pl; pl = patternListStack.pop()) { + var tail = re.slice(pl.reStart + pl.open.length); + this.debug("setting tail", re, pl), tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function(_, $1, $2) { + return $2 || ($2 = "\\"), $1 + $1 + $2 + "|"; + }), this.debug(`tail=%j + %s`, tail, tail, pl, re); + var t = pl.type === "*" ? star : pl.type === "?" ? qmark : "\\" + pl.type; + hasMagic = !0, re = re.slice(0, pl.reStart) + t + "\\(" + tail; + } + clearStateChar(), escaping && (re += "\\\\"); + var addPatternStart = !1; + switch (re.charAt(0)) { + case "[": + case ".": + case "(": + addPatternStart = !0; + } + for (var n = negativeLists.length - 1; n > -1; n--) { + var nl = negativeLists[n], nlBefore = re.slice(0, nl.reStart), nlFirst = re.slice(nl.reStart, nl.reEnd - 8), nlLast = re.slice(nl.reEnd - 8, nl.reEnd), nlAfter = re.slice(nl.reEnd); + nlLast += nlAfter; + var openParensBefore = nlBefore.split("(").length - 1, cleanAfter = nlAfter; + for (i = 0; i < openParensBefore; i++) + cleanAfter = cleanAfter.replace(/\)[+*?]?/, ""); + nlAfter = cleanAfter; + var dollar = ""; + nlAfter === "" && isSub !== SUBPARSE && (dollar = "$"); + var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast; + re = newRe; + } + if (re !== "" && hasMagic && (re = "(?=.)" + re), addPatternStart && (re = patternStart + re), isSub === SUBPARSE) + return [re, hasMagic]; + if (!hasMagic) + return globUnescape(pattern); + var flags = options.nocase ? "i" : ""; try { - step(generator.throw(value)); - } catch (e) { - reject(e); + var regExp = new RegExp("^" + re + "$", flags); + } catch { + return new RegExp("$."); } + return regExp._glob = pattern, regExp._src = re, regExp; } - function step(result) { - result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}, { access, appendFile, writeFile } = promises, SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY"; -var Summary = class { - constructor() { - this._buffer = ""; - } - /** - * Finds the summary file path from the environment, rejects if env var is not found or file does not exist - * Also checks r/w permissions. - * - * @returns step summary file path - */ - filePath() { - return __awaiter(this, void 0, void 0, function* () { - if (this._filePath) - return this._filePath; - let pathFromEnv = process.env[SUMMARY_ENV_VAR]; - if (!pathFromEnv) - throw new Error(`Unable to find environment variable for $${SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + minimatch2.makeRe = function(pattern, options) { + return new Minimatch2(pattern, options || {}).makeRe(); + }; + Minimatch2.prototype.makeRe = makeRe; + function makeRe() { + if (this.regexp || this.regexp === !1) return this.regexp; + var set = this.set; + if (!set.length) + return this.regexp = !1, this.regexp; + var options = this.options, twoStar = options.noglobstar ? star : options.dot ? twoStarDot : twoStarNoDot, flags = options.nocase ? "i" : "", re = set.map(function(pattern) { + return pattern.map(function(p) { + return p === GLOBSTAR ? twoStar : typeof p == "string" ? regExpEscape(p) : p._src; + }).join("\\/"); + }).join("|"); + re = "^(?:" + re + ")$", this.negate && (re = "^(?!" + re + ").*$"); try { - yield access(pathFromEnv, constants.R_OK | constants.W_OK); + this.regexp = new RegExp(re, flags); } catch { - throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + this.regexp = !1; } - return this._filePath = pathFromEnv, this._filePath; - }); + return this.regexp; + } + minimatch2.match = function(list, pattern, options) { + options = options || {}; + var mm = new Minimatch2(pattern, options); + return list = list.filter(function(f) { + return mm.match(f); + }), mm.options.nonull && !list.length && list.push(pattern), list; + }; + Minimatch2.prototype.match = function(f, partial) { + if (typeof partial > "u" && (partial = this.partial), this.debug("match", f, this.pattern), this.comment) return !1; + if (this.empty) return f === ""; + if (f === "/" && partial) return !0; + var options = this.options; + path12.sep !== "/" && (f = f.split(path12.sep).join("/")), f = f.split(slashSplit), this.debug(this.pattern, "split", f); + var set = this.set; + this.debug(this.pattern, "set", set); + var filename, i; + for (i = f.length - 1; i >= 0 && (filename = f[i], !filename); i--) + ; + for (i = 0; i < set.length; i++) { + var pattern = set[i], file = f; + options.matchBase && pattern.length === 1 && (file = [filename]); + var hit = this.matchOne(file, pattern, partial); + if (hit) + return options.flipNegate ? !0 : !this.negate; + } + return options.flipNegate ? !1 : this.negate; + }; + Minimatch2.prototype.matchOne = function(file, pattern, partial) { + return pattern.indexOf(GLOBSTAR) !== -1 ? this._matchGlobstar(file, pattern, partial, 0, 0) : this._matchOne(file, pattern, partial, 0, 0); + }; + Minimatch2.prototype._matchGlobstar = function(file, pattern, partial, fileIndex, patternIndex) { + var i, firstgs = -1; + for (i = patternIndex; i < pattern.length; i++) + if (pattern[i] === GLOBSTAR) { + firstgs = i; + break; + } + var lastgs = -1; + for (i = pattern.length - 1; i >= 0; i--) + if (pattern[i] === GLOBSTAR) { + lastgs = i; + break; + } + var head = pattern.slice(patternIndex, firstgs), body2 = partial ? pattern.slice(firstgs + 1) : pattern.slice(firstgs + 1, lastgs), tail = partial ? [] : pattern.slice(lastgs + 1); + if (head.length) { + var fileHead = file.slice(fileIndex, fileIndex + head.length); + if (!this._matchOne(fileHead, head, partial, 0, 0)) + return !1; + fileIndex += head.length; + } + var fileTailMatch = 0; + if (tail.length) { + if (tail.length + fileIndex > file.length) return !1; + var tailStart = file.length - tail.length; + if (this._matchOne(file, tail, partial, tailStart, 0)) + fileTailMatch = tail.length; + else { + if (file[file.length - 1] !== "" || fileIndex + tail.length === file.length || (tailStart--, !this._matchOne(file, tail, partial, tailStart, 0))) + return !1; + fileTailMatch = tail.length + 1; + } + } + if (!body2.length) { + var sawSome = !!fileTailMatch; + for (i = fileIndex; i < file.length - fileTailMatch; i++) { + var f = String(file[i]); + if (sawSome = !0, f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") + return !1; + } + return partial || sawSome; + } + for (var bodySegments = [[[], 0]], currentBody = bodySegments[0], nonGsParts = 0, nonGsPartsSums = [0], bi = 0; bi < body2.length; bi++) { + var b = body2[bi]; + b === GLOBSTAR ? (nonGsPartsSums.push(nonGsParts), currentBody = [[], 0], bodySegments.push(currentBody)) : (currentBody[0].push(b), nonGsParts++); + } + for (var idx = bodySegments.length - 1, fileLength = file.length - fileTailMatch, si = 0; si < bodySegments.length; si++) + bodySegments[si][1] = fileLength - (nonGsPartsSums[idx--] + bodySegments[si][0].length); + return !!this._matchGlobStarBodySections( + file, + bodySegments, + fileIndex, + 0, + partial, + 0, + !!fileTailMatch + ); + }; + Minimatch2.prototype._matchGlobStarBodySections = function(file, bodySegments, fileIndex, bodyIndex, partial, globStarDepth, sawTail) { + var bs = bodySegments[bodyIndex]; + if (!bs) { + for (var i = fileIndex; i < file.length; i++) { + sawTail = !0; + var f = file[i]; + if (f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") + return !1; + } + return sawTail; + } + for (var body2 = bs[0], after = bs[1]; fileIndex <= after; ) { + var m = this._matchOne( + file.slice(0, fileIndex + body2.length), + body2, + partial, + fileIndex, + 0 + ); + if (m && globStarDepth < this.maxGlobstarRecursion) { + var sub = this._matchGlobStarBodySections( + file, + bodySegments, + fileIndex + body2.length, + bodyIndex + 1, + partial, + globStarDepth + 1, + sawTail + ); + if (sub !== !1) + return sub; + } + var f = file[fileIndex]; + if (f === "." || f === ".." || !this.options.dot && f.charAt(0) === ".") + return !1; + fileIndex++; + } + return partial || null; + }; + Minimatch2.prototype._matchOne = function(file, pattern, partial, fileIndex, patternIndex) { + var fi, pi, fl, pl; + for (fi = fileIndex, pi = patternIndex, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) { + this.debug("matchOne loop"); + var p = pattern[pi], f = file[fi]; + if (this.debug(pattern, p, f), p === !1 || p === GLOBSTAR) return !1; + var hit; + if (typeof p == "string" ? (hit = f === p, this.debug("string match", p, f, hit)) : (hit = f.match(p), this.debug("pattern match", p, f, hit)), !hit) return !1; + } + if (fi === fl && pi === pl) + return !0; + if (fi === fl) + return partial; + if (pi === pl) + return fi === fl - 1 && file[fi] === ""; + throw new Error("wtf?"); + }; + function globUnescape(s) { + return s.replace(/\\(.)/g, "$1"); + } + function regExpEscape(s) { + return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + } } - /** - * Wraps content in an HTML tag, adding any HTML attributes - * - * @param {string} tag HTML tag to wrap - * @param {string | null} content content within the tag - * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add - * - * @returns {string} content wrapped in HTML element - */ - wrap(tag, content, attrs = {}) { - let htmlAttrs = Object.entries(attrs).map(([key, value]) => ` ${key}="${value}"`).join(""); - return content ? `<${tag}${htmlAttrs}>${content}` : `<${tag}${htmlAttrs}>`; +}); + +// node_modules/semver/internal/constants.js +var require_constants6 = __commonJS({ + "node_modules/semver/internal/constants.js"(exports2, module) { + "use strict"; + var SEMVER_SPEC_VERSION = "2.0.0", MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */ + 9007199254740991, MAX_SAFE_COMPONENT_LENGTH = 16, MAX_SAFE_BUILD_LENGTH = 250, RELEASE_TYPES = [ + "major", + "premajor", + "minor", + "preminor", + "patch", + "prepatch", + "prerelease" + ]; + module.exports = { + MAX_LENGTH: 256, + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_SAFE_INTEGER, + RELEASE_TYPES, + SEMVER_SPEC_VERSION, + FLAG_INCLUDE_PRERELEASE: 1, + FLAG_LOOSE: 2 + }; } - /** - * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. - * - * @param {SummaryWriteOptions} [options] (optional) options for write operation - * - * @returns {Promise} summary instance - */ - write(options) { - return __awaiter(this, void 0, void 0, function* () { - let overwrite = !!options?.overwrite, filePath = yield this.filePath(); - return yield (overwrite ? writeFile : appendFile)(filePath, this._buffer, { encoding: "utf8" }), this.emptyBuffer(); - }); +}); + +// node_modules/semver/internal/debug.js +var require_debug = __commonJS({ + "node_modules/semver/internal/debug.js"(exports2, module) { + "use strict"; + var debug3 = typeof process == "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => { + }; + module.exports = debug3; } - /** - * Clears the summary buffer and wipes the summary file - * - * @returns {Summary} summary instance - */ - clear() { - return __awaiter(this, void 0, void 0, function* () { - return this.emptyBuffer().write({ overwrite: !0 }); - }); +}); + +// node_modules/semver/internal/re.js +var require_re = __commonJS({ + "node_modules/semver/internal/re.js"(exports2, module) { + "use strict"; + var { + MAX_SAFE_COMPONENT_LENGTH, + MAX_SAFE_BUILD_LENGTH, + MAX_LENGTH + } = require_constants6(), debug3 = require_debug(); + exports2 = module.exports = {}; + var re = exports2.re = [], safeRe = exports2.safeRe = [], src = exports2.src = [], safeSrc = exports2.safeSrc = [], t = exports2.t = {}, R = 0, LETTERDASHNUMBER = "[a-zA-Z0-9-]", safeRegexReplacements = [ + ["\\s", 1], + ["\\d", MAX_LENGTH], + [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH] + ], makeSafeRegex = (value) => { + for (let [token, max] of safeRegexReplacements) + value = value.split(`${token}*`).join(`${token}{0,${max}}`).split(`${token}+`).join(`${token}{1,${max}}`); + return value; + }, createToken = (name, value, isGlobal) => { + let safe = makeSafeRegex(value), index = R++; + debug3(name, index, value), t[name] = index, src[index] = value, safeSrc[index] = safe, re[index] = new RegExp(value, isGlobal ? "g" : void 0), safeRe[index] = new RegExp(safe, isGlobal ? "g" : void 0); + }; + createToken("NUMERICIDENTIFIER", "0|[1-9]\\d*"); + createToken("NUMERICIDENTIFIERLOOSE", "\\d+"); + createToken("NONNUMERICIDENTIFIER", `\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`); + createToken("MAINVERSION", `(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})\\.(${src[t.NUMERICIDENTIFIER]})`); + createToken("MAINVERSIONLOOSE", `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})\\.(${src[t.NUMERICIDENTIFIERLOOSE]})`); + createToken("PRERELEASEIDENTIFIER", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIER]})`); + createToken("PRERELEASEIDENTIFIERLOOSE", `(?:${src[t.NONNUMERICIDENTIFIER]}|${src[t.NUMERICIDENTIFIERLOOSE]})`); + createToken("PRERELEASE", `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); + createToken("PRERELEASELOOSE", `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); + createToken("BUILDIDENTIFIER", `${LETTERDASHNUMBER}+`); + createToken("BUILD", `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); + createToken("FULLPLAIN", `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); + createToken("FULL", `^${src[t.FULLPLAIN]}$`); + createToken("LOOSEPLAIN", `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); + createToken("LOOSE", `^${src[t.LOOSEPLAIN]}$`); + createToken("GTLT", "((?:<|>)?=?)"); + createToken("XRANGEIDENTIFIERLOOSE", `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); + createToken("XRANGEIDENTIFIER", `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); + createToken("XRANGEPLAIN", `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:\\.(${src[t.XRANGEIDENTIFIER]})(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?)?)?`); + createToken("XRANGEPLAINLOOSE", `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?)?)?`); + createToken("XRANGE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); + createToken("XRANGELOOSE", `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); + createToken("COERCEPLAIN", `(^|[^\\d])(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}})(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`); + createToken("COERCE", `${src[t.COERCEPLAIN]}(?:$|[^\\d])`); + createToken("COERCEFULL", src[t.COERCEPLAIN] + `(?:${src[t.PRERELEASE]})?(?:${src[t.BUILD]})?(?:$|[^\\d])`); + createToken("COERCERTL", src[t.COERCE], !0); + createToken("COERCERTLFULL", src[t.COERCEFULL], !0); + createToken("LONETILDE", "(?:~>?)"); + createToken("TILDETRIM", `(\\s*)${src[t.LONETILDE]}\\s+`, !0); + exports2.tildeTrimReplace = "$1~"; + createToken("TILDE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); + createToken("TILDELOOSE", `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken("LONECARET", "(?:\\^)"); + createToken("CARETTRIM", `(\\s*)${src[t.LONECARET]}\\s+`, !0); + exports2.caretTrimReplace = "$1^"; + createToken("CARET", `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); + createToken("CARETLOOSE", `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); + createToken("COMPARATORLOOSE", `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); + createToken("COMPARATOR", `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); + createToken("COMPARATORTRIM", `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, !0); + exports2.comparatorTrimReplace = "$1$2$3"; + createToken("HYPHENRANGE", `^\\s*(${src[t.XRANGEPLAIN]})\\s+-\\s+(${src[t.XRANGEPLAIN]})\\s*$`); + createToken("HYPHENRANGELOOSE", `^\\s*(${src[t.XRANGEPLAINLOOSE]})\\s+-\\s+(${src[t.XRANGEPLAINLOOSE]})\\s*$`); + createToken("STAR", "(<|>)?=?\\s*\\*"); + createToken("GTE0", "^\\s*>=\\s*0\\.0\\.0\\s*$"); + createToken("GTE0PRE", "^\\s*>=\\s*0\\.0\\.0-0\\s*$"); } - /** - * Returns the current summary buffer as a string - * - * @returns {string} string of summary buffer - */ - stringify() { - return this._buffer; +}); + +// node_modules/semver/internal/parse-options.js +var require_parse_options = __commonJS({ + "node_modules/semver/internal/parse-options.js"(exports2, module) { + "use strict"; + var looseOption = Object.freeze({ loose: !0 }), emptyOpts = Object.freeze({}), parseOptions = (options) => options ? typeof options != "object" ? looseOption : options : emptyOpts; + module.exports = parseOptions; } - /** - * If the summary buffer is empty - * - * @returns {boolen} true if the buffer is empty - */ - isEmptyBuffer() { - return this._buffer.length === 0; +}); + +// node_modules/semver/internal/identifiers.js +var require_identifiers = __commonJS({ + "node_modules/semver/internal/identifiers.js"(exports2, module) { + "use strict"; + var numeric = /^[0-9]+$/, compareIdentifiers = (a, b) => { + if (typeof a == "number" && typeof b == "number") + return a === b ? 0 : a < b ? -1 : 1; + let anum = numeric.test(a), bnum = numeric.test(b); + return anum && bnum && (a = +a, b = +b), a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; + }, rcompareIdentifiers = (a, b) => compareIdentifiers(b, a); + module.exports = { + compareIdentifiers, + rcompareIdentifiers + }; } - /** - * Resets the summary buffer without writing to summary file - * - * @returns {Summary} summary instance - */ - emptyBuffer() { - return this._buffer = "", this; +}); + +// node_modules/semver/classes/semver.js +var require_semver = __commonJS({ + "node_modules/semver/classes/semver.js"(exports2, module) { + "use strict"; + var debug3 = require_debug(), { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants6(), { safeRe: re, t } = require_re(), parseOptions = require_parse_options(), { compareIdentifiers } = require_identifiers(), isPrereleaseIdentifier = (prerelease, identifier) => { + let identifiers = identifier.split("."); + if (identifiers.length > prerelease.length) + return !1; + for (let i = 0; i < identifiers.length; i++) + if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) + return !1; + return !0; + }, SemVer = class _SemVer { + constructor(version3, options) { + if (options = parseOptions(options), version3 instanceof _SemVer) { + if (version3.loose === !!options.loose && version3.includePrerelease === !!options.includePrerelease) + return version3; + version3 = version3.version; + } else if (typeof version3 != "string") + throw new TypeError(`Invalid version. Must be a string. Got type "${typeof version3}".`); + if (version3.length > MAX_LENGTH) + throw new TypeError( + `version is longer than ${MAX_LENGTH} characters` + ); + debug3("SemVer", version3, options), this.options = options, this.loose = !!options.loose, this.includePrerelease = !!options.includePrerelease; + let m = version3.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL]); + if (!m) + throw new TypeError(`Invalid Version: ${version3}`); + if (this.raw = version3, this.major = +m[1], this.minor = +m[2], this.patch = +m[3], this.major > MAX_SAFE_INTEGER || this.major < 0) + throw new TypeError("Invalid major version"); + if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) + throw new TypeError("Invalid minor version"); + if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) + throw new TypeError("Invalid patch version"); + m[4] ? this.prerelease = m[4].split(".").map((id) => { + if (/^[0-9]+$/.test(id)) { + let num = +id; + if (num >= 0 && num < MAX_SAFE_INTEGER) + return num; + } + return id; + }) : this.prerelease = [], this.build = m[5] ? m[5].split(".") : [], this.format(); + } + format() { + return this.version = `${this.major}.${this.minor}.${this.patch}`, this.prerelease.length && (this.version += `-${this.prerelease.join(".")}`), this.version; + } + toString() { + return this.version; + } + compare(other) { + if (debug3("SemVer.compare", this.version, this.options, other), !(other instanceof _SemVer)) { + if (typeof other == "string" && other === this.version) + return 0; + other = new _SemVer(other, this.options); + } + return other.version === this.version ? 0 : this.compareMain(other) || this.comparePre(other); + } + compareMain(other) { + return other instanceof _SemVer || (other = new _SemVer(other, this.options)), this.major < other.major ? -1 : this.major > other.major ? 1 : this.minor < other.minor ? -1 : this.minor > other.minor ? 1 : this.patch < other.patch ? -1 : this.patch > other.patch ? 1 : 0; + } + comparePre(other) { + if (other instanceof _SemVer || (other = new _SemVer(other, this.options)), this.prerelease.length && !other.prerelease.length) + return -1; + if (!this.prerelease.length && other.prerelease.length) + return 1; + if (!this.prerelease.length && !other.prerelease.length) + return 0; + let i = 0; + do { + let a = this.prerelease[i], b = other.prerelease[i]; + if (debug3("prerelease compare", i, a, b), a === void 0 && b === void 0) + return 0; + if (b === void 0) + return 1; + if (a === void 0) + return -1; + if (a === b) + continue; + return compareIdentifiers(a, b); + } while (++i); + } + compareBuild(other) { + other instanceof _SemVer || (other = new _SemVer(other, this.options)); + let i = 0; + do { + let a = this.build[i], b = other.build[i]; + if (debug3("build compare", i, a, b), a === void 0 && b === void 0) + return 0; + if (b === void 0) + return 1; + if (a === void 0) + return -1; + if (a === b) + continue; + return compareIdentifiers(a, b); + } while (++i); + } + // preminor will bump the version up to the next minor release, and immediately + // down to pre-release. premajor and prepatch work the same way. + inc(release, identifier, identifierBase) { + if (release.startsWith("pre")) { + if (!identifier && identifierBase === !1) + throw new Error("invalid increment argument: identifier is empty"); + if (identifier) { + let match2 = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE]); + if (!match2 || match2[1] !== identifier) + throw new Error(`invalid identifier: ${identifier}`); + } + } + switch (release) { + case "premajor": + this.prerelease.length = 0, this.patch = 0, this.minor = 0, this.major++, this.inc("pre", identifier, identifierBase); + break; + case "preminor": + this.prerelease.length = 0, this.patch = 0, this.minor++, this.inc("pre", identifier, identifierBase); + break; + case "prepatch": + this.prerelease.length = 0, this.inc("patch", identifier, identifierBase), this.inc("pre", identifier, identifierBase); + break; + // If the input is a non-prerelease version, this acts the same as + // prepatch. + case "prerelease": + this.prerelease.length === 0 && this.inc("patch", identifier, identifierBase), this.inc("pre", identifier, identifierBase); + break; + case "release": + if (this.prerelease.length === 0) + throw new Error(`version ${this.raw} is not a prerelease`); + this.prerelease.length = 0; + break; + case "major": + (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) && this.major++, this.minor = 0, this.patch = 0, this.prerelease = []; + break; + case "minor": + (this.patch !== 0 || this.prerelease.length === 0) && this.minor++, this.patch = 0, this.prerelease = []; + break; + case "patch": + this.prerelease.length === 0 && this.patch++, this.prerelease = []; + break; + // This probably shouldn't be used publicly. + // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. + case "pre": { + let base = Number(identifierBase) ? 1 : 0; + if (this.prerelease.length === 0) + this.prerelease = [base]; + else { + let i = this.prerelease.length; + for (; --i >= 0; ) + typeof this.prerelease[i] == "number" && (this.prerelease[i]++, i = -2); + if (i === -1) { + if (identifier === this.prerelease.join(".") && identifierBase === !1) + throw new Error("invalid increment argument: identifier already exists"); + this.prerelease.push(base); + } + } + if (identifier) { + let prerelease = [identifier, base]; + if (identifierBase === !1 && (prerelease = [identifier]), isPrereleaseIdentifier(this.prerelease, identifier)) { + let prereleaseBase = this.prerelease[identifier.split(".").length]; + isNaN(prereleaseBase) && (this.prerelease = prerelease); + } else + this.prerelease = prerelease; + } + break; + } + default: + throw new Error(`invalid increment argument: ${release}`); + } + return this.raw = this.format(), this.build.length && (this.raw += `+${this.build.join(".")}`), this; + } + }; + module.exports = SemVer; } - /** - * Adds raw text to the summary buffer - * - * @param {string} text content to add - * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) - * - * @returns {Summary} summary instance - */ - addRaw(text, addEOL = !1) { - return this._buffer += text, addEOL ? this.addEOL() : this; +}); + +// node_modules/semver/functions/parse.js +var require_parse2 = __commonJS({ + "node_modules/semver/functions/parse.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), parse2 = (version3, options, throwErrors = !1) => { + if (version3 instanceof SemVer) + return version3; + try { + return new SemVer(version3, options); + } catch (er) { + if (!throwErrors) + return null; + throw er; + } + }; + module.exports = parse2; } - /** - * Adds the operating system-specific end-of-line marker to the buffer - * - * @returns {Summary} summary instance - */ - addEOL() { - return this.addRaw(EOL3); +}); + +// node_modules/semver/functions/valid.js +var require_valid = __commonJS({ + "node_modules/semver/functions/valid.js"(exports2, module) { + "use strict"; + var parse2 = require_parse2(), valid = (version3, options) => { + let v = parse2(version3, options); + return v ? v.version : null; + }; + module.exports = valid; } - /** - * Adds an HTML codeblock to the summary buffer - * - * @param {string} code content to render within fenced code block - * @param {string} lang (optional) language to syntax highlight code - * - * @returns {Summary} summary instance - */ - addCodeBlock(code, lang) { - let attrs = Object.assign({}, lang && { lang }), element = this.wrap("pre", this.wrap("code", code), attrs); - return this.addRaw(element).addEOL(); +}); + +// node_modules/semver/functions/clean.js +var require_clean = __commonJS({ + "node_modules/semver/functions/clean.js"(exports2, module) { + "use strict"; + var parse2 = require_parse2(), clean2 = (version3, options) => { + let s = parse2(version3.trim().replace(/^[=v]+/, ""), options); + return s ? s.version : null; + }; + module.exports = clean2; } - /** - * Adds an HTML list to the summary buffer - * - * @param {string[]} items list of items to render - * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) - * - * @returns {Summary} summary instance - */ - addList(items, ordered = !1) { - let tag = ordered ? "ol" : "ul", listItems = items.map((item) => this.wrap("li", item)).join(""), element = this.wrap(tag, listItems); - return this.addRaw(element).addEOL(); +}); + +// node_modules/semver/functions/inc.js +var require_inc = __commonJS({ + "node_modules/semver/functions/inc.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), inc = (version3, release, options, identifier, identifierBase) => { + typeof options == "string" && (identifierBase = identifier, identifier = options, options = void 0); + try { + return new SemVer( + version3 instanceof SemVer ? version3.version : version3, + options + ).inc(release, identifier, identifierBase).version; + } catch { + return null; + } + }; + module.exports = inc; } - /** - * Adds an HTML table to the summary buffer - * - * @param {SummaryTableCell[]} rows table rows - * - * @returns {Summary} summary instance - */ - addTable(rows) { - let tableBody = rows.map((row) => { - let cells = row.map((cell) => { - if (typeof cell == "string") - return this.wrap("td", cell); - let { header, data, colspan, rowspan } = cell, tag = header ? "th" : "td", attrs = Object.assign(Object.assign({}, colspan && { colspan }), rowspan && { rowspan }); - return this.wrap(tag, data, attrs); - }).join(""); - return this.wrap("tr", cells); - }).join(""), element = this.wrap("table", tableBody); - return this.addRaw(element).addEOL(); +}); + +// node_modules/semver/functions/diff.js +var require_diff = __commonJS({ + "node_modules/semver/functions/diff.js"(exports2, module) { + "use strict"; + var parse2 = require_parse2(), diff = (version1, version22) => { + let v1 = parse2(version1, null, !0), v2 = parse2(version22, null, !0), comparison = v1.compare(v2); + if (comparison === 0) + return null; + let v1Higher = comparison > 0, highVersion = v1Higher ? v1 : v2, lowVersion = v1Higher ? v2 : v1, highHasPre = !!highVersion.prerelease.length; + if (!!lowVersion.prerelease.length && !highHasPre) { + if (!lowVersion.patch && !lowVersion.minor) + return "major"; + if (lowVersion.compareMain(highVersion) === 0) + return lowVersion.minor && !lowVersion.patch ? "minor" : "patch"; + } + let prefix2 = highHasPre ? "pre" : ""; + return v1.major !== v2.major ? prefix2 + "major" : v1.minor !== v2.minor ? prefix2 + "minor" : v1.patch !== v2.patch ? prefix2 + "patch" : "prerelease"; + }; + module.exports = diff; } - /** - * Adds a collapsable HTML details element to the summary buffer - * - * @param {string} label text for the closed state - * @param {string} content collapsable content - * - * @returns {Summary} summary instance - */ - addDetails(label, content) { - let element = this.wrap("details", this.wrap("summary", label) + content); - return this.addRaw(element).addEOL(); +}); + +// node_modules/semver/functions/major.js +var require_major = __commonJS({ + "node_modules/semver/functions/major.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), major = (a, loose) => new SemVer(a, loose).major; + module.exports = major; } - /** - * Adds an HTML image tag to the summary buffer - * - * @param {string} src path to the image you to embed - * @param {string} alt text description of the image - * @param {SummaryImageOptions} options (optional) addition image attributes - * - * @returns {Summary} summary instance - */ - addImage(src, alt, options) { - let { width, height } = options || {}, attrs = Object.assign(Object.assign({}, width && { width }), height && { height }), element = this.wrap("img", null, Object.assign({ src, alt }, attrs)); - return this.addRaw(element).addEOL(); +}); + +// node_modules/semver/functions/minor.js +var require_minor = __commonJS({ + "node_modules/semver/functions/minor.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), minor = (a, loose) => new SemVer(a, loose).minor; + module.exports = minor; } - /** - * Adds an HTML section heading element - * - * @param {string} text heading text - * @param {number | string} [level=1] (optional) the heading level, default: 1 - * - * @returns {Summary} summary instance - */ - addHeading(text, level) { - let tag = `h${level}`, allowedTag = ["h1", "h2", "h3", "h4", "h5", "h6"].includes(tag) ? tag : "h1", element = this.wrap(allowedTag, text); - return this.addRaw(element).addEOL(); +}); + +// node_modules/semver/functions/patch.js +var require_patch = __commonJS({ + "node_modules/semver/functions/patch.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), patch = (a, loose) => new SemVer(a, loose).patch; + module.exports = patch; } - /** - * Adds an HTML thematic break (
) to the summary buffer - * - * @returns {Summary} summary instance - */ - addSeparator() { - let element = this.wrap("hr", null); - return this.addRaw(element).addEOL(); +}); + +// node_modules/semver/functions/prerelease.js +var require_prerelease = __commonJS({ + "node_modules/semver/functions/prerelease.js"(exports2, module) { + "use strict"; + var parse2 = require_parse2(), prerelease = (version3, options) => { + let parsed = parse2(version3, options); + return parsed && parsed.prerelease.length ? parsed.prerelease : null; + }; + module.exports = prerelease; } - /** - * Adds an HTML line break (
) to the summary buffer - * - * @returns {Summary} summary instance - */ - addBreak() { - let element = this.wrap("br", null); - return this.addRaw(element).addEOL(); +}); + +// node_modules/semver/functions/compare.js +var require_compare = __commonJS({ + "node_modules/semver/functions/compare.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose)); + module.exports = compare; } - /** - * Adds an HTML blockquote to the summary buffer - * - * @param {string} text quote text - * @param {string} cite (optional) citation url - * - * @returns {Summary} summary instance - */ - addQuote(text, cite) { - let attrs = Object.assign({}, cite && { cite }), element = this.wrap("blockquote", text, attrs); - return this.addRaw(element).addEOL(); +}); + +// node_modules/semver/functions/rcompare.js +var require_rcompare = __commonJS({ + "node_modules/semver/functions/rcompare.js"(exports2, module) { + "use strict"; + var compare = require_compare(), rcompare = (a, b, loose) => compare(b, a, loose); + module.exports = rcompare; } - /** - * Adds an HTML anchor tag to the summary buffer - * - * @param {string} text link text/content - * @param {string} href hyperlink - * - * @returns {Summary} summary instance - */ - addLink(text, href) { - let element = this.wrap("a", text, { href }); - return this.addRaw(element).addEOL(); +}); + +// node_modules/semver/functions/compare-loose.js +var require_compare_loose = __commonJS({ + "node_modules/semver/functions/compare-loose.js"(exports2, module) { + "use strict"; + var compare = require_compare(), compareLoose = (a, b) => compare(a, b, !0); + module.exports = compareLoose; } -}, _summary = new Summary(); +}); -// node_modules/@actions/core/lib/platform.js -import os4 from "os"; +// node_modules/semver/functions/compare-build.js +var require_compare_build = __commonJS({ + "node_modules/semver/functions/compare-build.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), compareBuild = (a, b, loose) => { + let versionA = new SemVer(a, loose), versionB = new SemVer(b, loose); + return versionA.compare(versionB) || versionA.compareBuild(versionB); + }; + module.exports = compareBuild; + } +}); -// node_modules/@actions/exec/lib/exec.js -import { StringDecoder } from "string_decoder"; +// node_modules/semver/functions/sort.js +var require_sort = __commonJS({ + "node_modules/semver/functions/sort.js"(exports2, module) { + "use strict"; + var compareBuild = require_compare_build(), sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose)); + module.exports = sort; + } +}); -// node_modules/@actions/exec/lib/toolrunner.js -import * as os3 from "os"; -import * as events from "events"; -import * as child from "child_process"; -import * as path3 from "path"; +// node_modules/semver/functions/rsort.js +var require_rsort = __commonJS({ + "node_modules/semver/functions/rsort.js"(exports2, module) { + "use strict"; + var compareBuild = require_compare_build(), rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose)); + module.exports = rsort; + } +}); -// node_modules/@actions/io/lib/io.js -import * as path2 from "path"; +// node_modules/semver/functions/gt.js +var require_gt = __commonJS({ + "node_modules/semver/functions/gt.js"(exports2, module) { + "use strict"; + var compare = require_compare(), gt = (a, b, loose) => compare(a, b, loose) > 0; + module.exports = gt; + } +}); -// node_modules/@actions/io/lib/io-util.js -import * as fs2 from "fs"; -import * as path from "path"; -var __awaiter2 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve2) { - resolve2(value); - }); +// node_modules/semver/functions/lt.js +var require_lt = __commonJS({ + "node_modules/semver/functions/lt.js"(exports2, module) { + "use strict"; + var compare = require_compare(), lt = (a, b, loose) => compare(a, b, loose) < 0; + module.exports = lt; } - return new (P || (P = Promise))(function(resolve2, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); +}); + +// node_modules/semver/functions/eq.js +var require_eq = __commonJS({ + "node_modules/semver/functions/eq.js"(exports2, module) { + "use strict"; + var compare = require_compare(), eq = (a, b, loose) => compare(a, b, loose) === 0; + module.exports = eq; + } +}); + +// node_modules/semver/functions/neq.js +var require_neq = __commonJS({ + "node_modules/semver/functions/neq.js"(exports2, module) { + "use strict"; + var compare = require_compare(), neq = (a, b, loose) => compare(a, b, loose) !== 0; + module.exports = neq; + } +}); + +// node_modules/semver/functions/gte.js +var require_gte = __commonJS({ + "node_modules/semver/functions/gte.js"(exports2, module) { + "use strict"; + var compare = require_compare(), gte = (a, b, loose) => compare(a, b, loose) >= 0; + module.exports = gte; + } +}); + +// node_modules/semver/functions/lte.js +var require_lte = __commonJS({ + "node_modules/semver/functions/lte.js"(exports2, module) { + "use strict"; + var compare = require_compare(), lte = (a, b, loose) => compare(a, b, loose) <= 0; + module.exports = lte; + } +}); + +// node_modules/semver/functions/cmp.js +var require_cmp = __commonJS({ + "node_modules/semver/functions/cmp.js"(exports2, module) { + "use strict"; + var eq = require_eq(), neq = require_neq(), gt = require_gt(), gte = require_gte(), lt = require_lt(), lte = require_lte(), cmp = (a, op, b, loose) => { + switch (op) { + case "===": + return typeof a == "object" && (a = a.version), typeof b == "object" && (b = b.version), a === b; + case "!==": + return typeof a == "object" && (a = a.version), typeof b == "object" && (b = b.version), a !== b; + case "": + case "=": + case "==": + return eq(a, b, loose); + case "!=": + return neq(a, b, loose); + case ">": + return gt(a, b, loose); + case ">=": + return gte(a, b, loose); + case "<": + return lt(a, b, loose); + case "<=": + return lte(a, b, loose); + default: + throw new TypeError(`Invalid operator: ${op}`); } - } - function rejected(value) { - try { - step(generator.throw(value)); - } catch (e) { - reject(e); + }; + module.exports = cmp; + } +}); + +// node_modules/semver/functions/coerce.js +var require_coerce = __commonJS({ + "node_modules/semver/functions/coerce.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), parse2 = require_parse2(), { safeRe: re, t } = require_re(), coerce = (version3, options) => { + if (version3 instanceof SemVer) + return version3; + if (typeof version3 == "number" && (version3 = String(version3)), typeof version3 != "string") + return null; + options = options || {}; + let match2 = null; + if (!options.rtl) + match2 = version3.match(options.includePrerelease ? re[t.COERCEFULL] : re[t.COERCE]); + else { + let coerceRtlRegex = options.includePrerelease ? re[t.COERCERTLFULL] : re[t.COERCERTL], next; + for (; (next = coerceRtlRegex.exec(version3)) && (!match2 || match2.index + match2[0].length !== version3.length); ) + (!match2 || next.index + next[0].length !== match2.index + match2[0].length) && (match2 = next), coerceRtlRegex.lastIndex = next.index + next[1].length + next[2].length; + coerceRtlRegex.lastIndex = -1; } - } - function step(result) { - result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}, { chmod, copyFile, lstat, mkdir, open, readdir, rename, rm, rmdir, stat, symlink, unlink } = fs2.promises, IS_WINDOWS = process.platform === "win32"; -var READONLY = fs2.constants.O_RDONLY; -function exists(fsPath) { - return __awaiter2(this, void 0, void 0, function* () { - try { - yield stat(fsPath); - } catch (err) { - if (err.code === "ENOENT") - return !1; - throw err; - } - return !0; - }); -} -function isRooted(p) { - if (p = normalizeSeparators(p), !p) - throw new Error('isRooted() parameter "p" cannot be empty'); - return IS_WINDOWS ? p.startsWith("\\") || /^[A-Z]:/i.test(p) : p.startsWith("/"); -} -function tryGetExecutablePath(filePath, extensions) { - return __awaiter2(this, void 0, void 0, function* () { - let stats; - try { - stats = yield stat(filePath); - } catch (err) { - err.code !== "ENOENT" && console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); - } - if (stats && stats.isFile()) { - if (IS_WINDOWS) { - let upperExt = path.extname(filePath).toUpperCase(); - if (extensions.some((validExt) => validExt.toUpperCase() === upperExt)) - return filePath; - } else if (isUnixExecutable(stats)) - return filePath; - } - let originalFilePath = filePath; - for (let extension of extensions) { - filePath = originalFilePath + extension, stats = void 0; - try { - stats = yield stat(filePath); - } catch (err) { - err.code !== "ENOENT" && console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + if (match2 === null) + return null; + let major = match2[2], minor = match2[3] || "0", patch = match2[4] || "0", prerelease = options.includePrerelease && match2[5] ? `-${match2[5]}` : "", build = options.includePrerelease && match2[6] ? `+${match2[6]}` : ""; + return parse2(`${major}.${minor}.${patch}${prerelease}${build}`, options); + }; + module.exports = coerce; + } +}); + +// node_modules/semver/functions/truncate.js +var require_truncate = __commonJS({ + "node_modules/semver/functions/truncate.js"(exports2, module) { + "use strict"; + var parse2 = require_parse2(), constants5 = require_constants6(), SemVer = require_semver(), truncate = (version3, truncation, options) => { + if (!constants5.RELEASE_TYPES.includes(truncation)) + return null; + let clonedVersion = cloneInputVersion(version3, options); + return clonedVersion && doTruncation(clonedVersion, truncation); + }, cloneInputVersion = (version3, options) => { + let versionStringToParse = version3 instanceof SemVer ? version3.version : version3; + return parse2(versionStringToParse, options); + }, doTruncation = (version3, truncation) => { + if (isPrerelease(truncation)) + return version3.version; + switch (version3.prerelease = [], truncation) { + case "major": + version3.minor = 0, version3.patch = 0; + break; + case "minor": + version3.patch = 0; + break; } - if (stats && stats.isFile()) { - if (IS_WINDOWS) { - try { - let directory = path.dirname(filePath), upperName = path.basename(filePath).toUpperCase(); - for (let actualName of yield readdir(directory)) - if (upperName === actualName.toUpperCase()) { - filePath = path.join(directory, actualName); + return version3.format(); + }, isPrerelease = (type) => type.startsWith("pre"); + module.exports = truncate; + } +}); + +// node_modules/semver/internal/lrucache.js +var require_lrucache = __commonJS({ + "node_modules/semver/internal/lrucache.js"(exports2, module) { + "use strict"; + var LRUCache = class { + constructor() { + this.max = 1e3, this.map = /* @__PURE__ */ new Map(); + } + get(key) { + let value = this.map.get(key); + if (value !== void 0) + return this.map.delete(key), this.map.set(key, value), value; + } + delete(key) { + return this.map.delete(key); + } + set(key, value) { + if (!this.delete(key) && value !== void 0) { + if (this.map.size >= this.max) { + let firstKey = this.map.keys().next().value; + this.delete(firstKey); + } + this.map.set(key, value); + } + return this; + } + }; + module.exports = LRUCache; + } +}); + +// node_modules/semver/classes/range.js +var require_range = __commonJS({ + "node_modules/semver/classes/range.js"(exports2, module) { + "use strict"; + var SPACE_CHARACTERS = /\s+/g, Range = class _Range { + constructor(range2, options) { + if (options = parseOptions(options), range2 instanceof _Range) + return range2.loose === !!options.loose && range2.includePrerelease === !!options.includePrerelease ? range2 : new _Range(range2.raw, options); + if (range2 instanceof Comparator) + return this.raw = range2.value, this.set = [[range2]], this.formatted = void 0, this; + if (this.options = options, this.loose = !!options.loose, this.includePrerelease = !!options.includePrerelease, this.raw = range2.trim().replace(SPACE_CHARACTERS, " "), this.set = this.raw.split("||").map((r) => this.parseRange(r.trim())).filter((c) => c.length), !this.set.length) + throw new TypeError(`Invalid SemVer Range: ${this.raw}`); + if (this.set.length > 1) { + let first = this.set[0]; + if (this.set = this.set.filter((c) => !isNullSet(c[0])), this.set.length === 0) + this.set = [first]; + else if (this.set.length > 1) { + for (let c of this.set) + if (c.length === 1 && isAny(c[0])) { + this.set = [c]; break; } - } catch (err) { - console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); } - return filePath; - } else if (isUnixExecutable(stats)) - return filePath; + } + this.formatted = void 0; + } + get range() { + if (this.formatted === void 0) { + this.formatted = ""; + for (let i = 0; i < this.set.length; i++) { + i > 0 && (this.formatted += "||"); + let comps = this.set[i]; + for (let k = 0; k < comps.length; k++) + k > 0 && (this.formatted += " "), this.formatted += comps[k].toString().trim(); + } + } + return this.formatted; + } + format() { + return this.range; + } + toString() { + return this.range; + } + parseRange(range2) { + range2 = range2.replace(BUILDSTRIPRE, ""); + let memoKey = ((this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE)) + ":" + range2, cached = cache.get(memoKey); + if (cached) + return cached; + let loose = this.options.loose, hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]; + range2 = range2.replace(hr, hyphenReplace(this.options.includePrerelease)), debug3("hyphen replace", range2), range2 = range2.replace(re[t.COMPARATORTRIM], comparatorTrimReplace), debug3("comparator trim", range2), range2 = range2.replace(re[t.TILDETRIM], tildeTrimReplace), debug3("tilde trim", range2), range2 = range2.replace(re[t.CARETTRIM], caretTrimReplace), debug3("caret trim", range2); + let rangeList = range2.split(" ").map((comp26) => parseComparator(comp26, this.options)).join(" ").split(/\s+/).map((comp26) => replaceGTE0(comp26, this.options)); + loose && (rangeList = rangeList.filter((comp26) => (debug3("loose invalid filter", comp26, this.options), !!comp26.match(re[t.COMPARATORLOOSE])))), debug3("range list", rangeList); + let rangeMap = /* @__PURE__ */ new Map(), comparators = rangeList.map((comp26) => new Comparator(comp26, this.options)); + for (let comp26 of comparators) { + if (isNullSet(comp26)) + return [comp26]; + rangeMap.set(comp26.value, comp26); + } + rangeMap.size > 1 && rangeMap.has("") && rangeMap.delete(""); + let result = [...rangeMap.values()]; + return cache.set(memoKey, result), result; + } + intersects(range2, options) { + if (!(range2 instanceof _Range)) + throw new TypeError("a Range is required"); + return this.set.some((thisComparators) => isSatisfiable(thisComparators, options) && range2.set.some((rangeComparators) => isSatisfiable(rangeComparators, options) && thisComparators.every((thisComparator) => rangeComparators.every((rangeComparator) => thisComparator.intersects(rangeComparator, options))))); + } + // if ANY of the sets match ALL of its comparators, then pass + test(version3) { + if (!version3) + return !1; + if (typeof version3 == "string") + try { + version3 = new SemVer(version3, this.options); + } catch { + return !1; + } + for (let i = 0; i < this.set.length; i++) + if (testSet(this.set[i], version3, this.options)) + return !0; + return !1; } - } - return ""; - }); -} -function normalizeSeparators(p) { - return p = p || "", IS_WINDOWS ? (p = p.replace(/\//g, "\\"), p.replace(/\\\\+/g, "\\")) : p.replace(/\/\/+/g, "/"); -} -function isUnixExecutable(stats) { - return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && process.getgid !== void 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && process.getuid !== void 0 && stats.uid === process.getuid(); -} + }; + module.exports = Range; + var LRU = require_lrucache(), cache = new LRU(), parseOptions = require_parse_options(), Comparator = require_comparator(), debug3 = require_debug(), SemVer = require_semver(), { + safeRe: re, + src, + t, + comparatorTrimReplace, + tildeTrimReplace, + caretTrimReplace + } = require_re(), { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants6(), BUILDSTRIPRE = new RegExp(src[t.BUILD], "g"), isNullSet = (c) => c.value === "<0.0.0-0", isAny = (c) => c.value === "", isSatisfiable = (comparators, options) => { + let result = !0, remainingComparators = comparators.slice(), testComparator = remainingComparators.pop(); + for (; result && remainingComparators.length; ) + result = remainingComparators.every((otherComparator) => testComparator.intersects(otherComparator, options)), testComparator = remainingComparators.pop(); + return result; + }, parseComparator = (comp26, options) => (comp26 = comp26.replace(re[t.BUILD], ""), debug3("comp", comp26, options), comp26 = replaceCarets(comp26, options), debug3("caret", comp26), comp26 = replaceTildes(comp26, options), debug3("tildes", comp26), comp26 = replaceXRanges(comp26, options), debug3("xrange", comp26), comp26 = replaceStars(comp26, options), debug3("stars", comp26), comp26), isX = (id) => !id || id.toLowerCase() === "x" || id === "*", invalidXRangeOrder = (M, m, p) => isX(M) && !isX(m) || isX(m) && p && !isX(p), replaceTildes = (comp26, options) => comp26.trim().split(/\s+/).map((c) => replaceTilde(c, options)).join(" "), replaceTilde = (comp26, options) => { + let r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE], z = options.includePrerelease ? "-0" : ""; + return comp26.replace(r, (_, M, m, p, pr) => { + debug3("tilde", comp26, _, M, m, p, pr); + let ret; + return isX(M) ? ret = "" : isX(m) ? ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0` : isX(p) ? ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0` : pr ? (debug3("replaceTilde pr", pr), ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`) : ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`, debug3("tilde return", ret), ret; + }); + }, replaceCarets = (comp26, options) => comp26.trim().split(/\s+/).map((c) => replaceCaret(c, options)).join(" "), replaceCaret = (comp26, options) => { + debug3("caret", comp26, options); + let r = options.loose ? re[t.CARETLOOSE] : re[t.CARET], z = options.includePrerelease ? "-0" : ""; + return comp26.replace(r, (_, M, m, p, pr) => { + debug3("caret", comp26, _, M, m, p, pr); + let ret; + return isX(M) ? ret = "" : isX(m) ? ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0` : isX(p) ? M === "0" ? ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0` : ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0` : pr ? (debug3("replaceCaret pr", pr), M === "0" ? m === "0" ? ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0` : ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0` : ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`) : (debug3("no pr"), M === "0" ? m === "0" ? ret = `>=${M}.${m}.${p} <${M}.${m}.${+p + 1}-0` : ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0` : ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`), debug3("caret return", ret), ret; + }); + }, replaceXRanges = (comp26, options) => (debug3("replaceXRanges", comp26, options), comp26.split(/\s+/).map((c) => replaceXRange(c, options)).join(" ")), replaceXRange = (comp26, options) => { + comp26 = comp26.trim(); + let r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]; + return comp26.replace(r, (ret, gtlt, M, m, p, pr) => { + if (debug3("xRange", comp26, ret, gtlt, M, m, p, pr), invalidXRangeOrder(M, m, p)) + return comp26; + let xM = isX(M), xm = xM || isX(m), xp = xm || isX(p), anyX = xp; + return gtlt === "=" && anyX && (gtlt = ""), pr = options.includePrerelease ? "-0" : "", xM ? gtlt === ">" || gtlt === "<" ? ret = "<0.0.0-0" : ret = "*" : gtlt && anyX ? (xm && (m = 0), p = 0, gtlt === ">" ? (gtlt = ">=", xm ? (M = +M + 1, m = 0, p = 0) : (m = +m + 1, p = 0)) : gtlt === "<=" && (gtlt = "<", xm ? M = +M + 1 : m = +m + 1), gtlt === "<" && (pr = "-0"), ret = `${gtlt + M}.${m}.${p}${pr}`) : xm ? ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0` : xp && (ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`), debug3("xRange return", ret), ret; + }); + }, replaceStars = (comp26, options) => (debug3("replaceStars", comp26, options), comp26.trim().replace(re[t.STAR], "")), replaceGTE0 = (comp26, options) => (debug3("replaceGTE0", comp26, options), comp26.trim().replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], "")), hyphenReplace = (incPr) => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr) => (isX(fM) ? from = "" : isX(fm) ? from = `>=${fM}.0.0${incPr ? "-0" : ""}` : isX(fp) ? from = `>=${fM}.${fm}.0${incPr ? "-0" : ""}` : fpr ? from = `>=${from}` : from = `>=${from}${incPr ? "-0" : ""}`, isX(tM) ? to = "" : isX(tm) ? to = `<${+tM + 1}.0.0-0` : isX(tp) ? to = `<${tM}.${+tm + 1}.0-0` : tpr ? to = `<=${tM}.${tm}.${tp}-${tpr}` : incPr ? to = `<${tM}.${tm}.${+tp + 1}-0` : to = `<=${to}`, `${from} ${to}`.trim()), testSet = (set, version3, options) => { + for (let i = 0; i < set.length; i++) + if (!set[i].test(version3)) + return !1; + if (version3.prerelease.length && !options.includePrerelease) { + for (let i = 0; i < set.length; i++) + if (debug3(set[i].semver), set[i].semver !== Comparator.ANY && set[i].semver.prerelease.length > 0) { + let allowed = set[i].semver; + if (allowed.major === version3.major && allowed.minor === version3.minor && allowed.patch === version3.patch) + return !0; + } + return !1; + } + return !0; + }; + } +}); -// node_modules/@actions/io/lib/io.js -var __awaiter3 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve2) { - resolve2(value); - }); +// node_modules/semver/classes/comparator.js +var require_comparator = __commonJS({ + "node_modules/semver/classes/comparator.js"(exports2, module) { + "use strict"; + var ANY = /* @__PURE__ */ Symbol("SemVer ANY"), Comparator = class _Comparator { + static get ANY() { + return ANY; + } + constructor(comp26, options) { + if (options = parseOptions(options), comp26 instanceof _Comparator) { + if (comp26.loose === !!options.loose) + return comp26; + comp26 = comp26.value; + } + comp26 = comp26.trim().split(/\s+/).join(" "), debug3("comparator", comp26, options), this.options = options, this.loose = !!options.loose, this.parse(comp26), this.semver === ANY ? this.value = "" : this.value = this.operator + this.semver.version, debug3("comp", this); + } + parse(comp26) { + let r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR], m = comp26.match(r); + if (!m) + throw new TypeError(`Invalid comparator: ${comp26}`); + this.operator = m[1] !== void 0 ? m[1] : "", this.operator === "=" && (this.operator = ""), m[2] ? this.semver = new SemVer(m[2], this.options.loose) : this.semver = ANY; + } + toString() { + return this.value; + } + test(version3) { + if (debug3("Comparator.test", version3, this.options.loose), this.semver === ANY || version3 === ANY) + return !0; + if (typeof version3 == "string") + try { + version3 = new SemVer(version3, this.options); + } catch { + return !1; + } + return cmp(version3, this.operator, this.semver, this.options); + } + intersects(comp26, options) { + if (!(comp26 instanceof _Comparator)) + throw new TypeError("a Comparator is required"); + return this.operator === "" ? this.value === "" ? !0 : new Range(comp26.value, options).test(this.value) : comp26.operator === "" ? comp26.value === "" ? !0 : new Range(this.value, options).test(comp26.semver) : (options = parseOptions(options), options.includePrerelease && (this.value === "<0.0.0-0" || comp26.value === "<0.0.0-0") || !options.includePrerelease && (this.value.startsWith("<0.0.0") || comp26.value.startsWith("<0.0.0")) ? !1 : !!(this.operator.startsWith(">") && comp26.operator.startsWith(">") || this.operator.startsWith("<") && comp26.operator.startsWith("<") || this.semver.version === comp26.semver.version && this.operator.includes("=") && comp26.operator.includes("=") || cmp(this.semver, "<", comp26.semver, options) && this.operator.startsWith(">") && comp26.operator.startsWith("<") || cmp(this.semver, ">", comp26.semver, options) && this.operator.startsWith("<") && comp26.operator.startsWith(">"))); + } + }; + module.exports = Comparator; + var parseOptions = require_parse_options(), { safeRe: re, t } = require_re(), cmp = require_cmp(), debug3 = require_debug(), SemVer = require_semver(), Range = require_range(); } - return new (P || (P = Promise))(function(resolve2, reject) { - function fulfilled(value) { +}); + +// node_modules/semver/functions/satisfies.js +var require_satisfies = __commonJS({ + "node_modules/semver/functions/satisfies.js"(exports2, module) { + "use strict"; + var Range = require_range(), satisfies = (version3, range2, options) => { try { - step(generator.next(value)); - } catch (e) { - reject(e); + range2 = new Range(range2, options); + } catch { + return !1; } - } - function rejected(value) { + return range2.test(version3); + }; + module.exports = satisfies; + } +}); + +// node_modules/semver/ranges/to-comparators.js +var require_to_comparators = __commonJS({ + "node_modules/semver/ranges/to-comparators.js"(exports2, module) { + "use strict"; + var Range = require_range(), toComparators = (range2, options) => new Range(range2, options).set.map((comp26) => comp26.map((c) => c.value).join(" ").trim().split(" ")); + module.exports = toComparators; + } +}); + +// node_modules/semver/ranges/max-satisfying.js +var require_max_satisfying = __commonJS({ + "node_modules/semver/ranges/max-satisfying.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), Range = require_range(), maxSatisfying = (versions, range2, options) => { + let max = null, maxSV = null, rangeObj = null; try { - step(generator.throw(value)); - } catch (e) { - reject(e); - } + rangeObj = new Range(range2, options); + } catch { + return null; + } + return versions.forEach((v) => { + rangeObj.test(v) && (!max || maxSV.compare(v) === -1) && (max = v, maxSV = new SemVer(max, options)); + }), max; + }; + module.exports = maxSatisfying; + } +}); + +// node_modules/semver/ranges/min-satisfying.js +var require_min_satisfying = __commonJS({ + "node_modules/semver/ranges/min-satisfying.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), Range = require_range(), minSatisfying = (versions, range2, options) => { + let min = null, minSV = null, rangeObj = null; + try { + rangeObj = new Range(range2, options); + } catch { + return null; + } + return versions.forEach((v) => { + rangeObj.test(v) && (!min || minSV.compare(v) === 1) && (min = v, minSV = new SemVer(min, options)); + }), min; + }; + module.exports = minSatisfying; + } +}); + +// node_modules/semver/ranges/min-version.js +var require_min_version = __commonJS({ + "node_modules/semver/ranges/min-version.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), Range = require_range(), gt = require_gt(), minVersion = (range2, loose) => { + range2 = new Range(range2, loose); + let minver = new SemVer("0.0.0"); + if (range2.test(minver) || (minver = new SemVer("0.0.0-0"), range2.test(minver))) + return minver; + minver = null; + for (let i = 0; i < range2.set.length; ++i) { + let comparators = range2.set[i], setMin = null; + comparators.forEach((comparator) => { + let compver = new SemVer(comparator.semver.version); + switch (comparator.operator) { + case ">": + compver.prerelease.length === 0 ? compver.patch++ : compver.prerelease.push(0), compver.raw = compver.format(); + /* fallthrough */ + case "": + case ">=": + (!setMin || gt(compver, setMin)) && (setMin = compver); + break; + case "<": + case "<=": + break; + /* istanbul ignore next */ + default: + throw new Error(`Unexpected operation: ${comparator.operator}`); + } + }), setMin && (!minver || gt(minver, setMin)) && (minver = setMin); + } + return minver && range2.test(minver) ? minver : null; + }; + module.exports = minVersion; + } +}); + +// node_modules/semver/ranges/valid.js +var require_valid2 = __commonJS({ + "node_modules/semver/ranges/valid.js"(exports2, module) { + "use strict"; + var Range = require_range(), validRange = (range2, options) => { + try { + return new Range(range2, options).range || "*"; + } catch { + return null; + } + }; + module.exports = validRange; + } +}); + +// node_modules/semver/ranges/outside.js +var require_outside = __commonJS({ + "node_modules/semver/ranges/outside.js"(exports2, module) { + "use strict"; + var SemVer = require_semver(), Comparator = require_comparator(), { ANY } = Comparator, Range = require_range(), satisfies = require_satisfies(), gt = require_gt(), lt = require_lt(), lte = require_lte(), gte = require_gte(), outside = (version3, range2, hilo, options) => { + version3 = new SemVer(version3, options), range2 = new Range(range2, options); + let gtfn, ltefn, ltfn, comp26, ecomp; + switch (hilo) { + case ">": + gtfn = gt, ltefn = lte, ltfn = lt, comp26 = ">", ecomp = ">="; + break; + case "<": + gtfn = lt, ltefn = gte, ltfn = gt, comp26 = "<", ecomp = "<="; + break; + default: + throw new TypeError('Must provide a hilo val of "<" or ">"'); + } + if (satisfies(version3, range2, options)) + return !1; + for (let i = 0; i < range2.set.length; ++i) { + let comparators = range2.set[i], high = null, low = null; + if (comparators.forEach((comparator) => { + comparator.semver === ANY && (comparator = new Comparator(">=0.0.0")), high = high || comparator, low = low || comparator, gtfn(comparator.semver, high.semver, options) ? high = comparator : ltfn(comparator.semver, low.semver, options) && (low = comparator); + }), high.operator === comp26 || high.operator === ecomp || (!low.operator || low.operator === comp26) && ltefn(version3, low.semver)) + return !1; + if (low.operator === ecomp && ltfn(version3, low.semver)) + return !1; + } + return !0; + }; + module.exports = outside; + } +}); + +// node_modules/semver/ranges/gtr.js +var require_gtr = __commonJS({ + "node_modules/semver/ranges/gtr.js"(exports2, module) { + "use strict"; + var outside = require_outside(), gtr = (version3, range2, options) => outside(version3, range2, ">", options); + module.exports = gtr; + } +}); + +// node_modules/semver/ranges/ltr.js +var require_ltr = __commonJS({ + "node_modules/semver/ranges/ltr.js"(exports2, module) { + "use strict"; + var outside = require_outside(), ltr = (version3, range2, options) => outside(version3, range2, "<", options); + module.exports = ltr; + } +}); + +// node_modules/semver/ranges/intersects.js +var require_intersects = __commonJS({ + "node_modules/semver/ranges/intersects.js"(exports2, module) { + "use strict"; + var Range = require_range(), intersects = (r1, r2, options) => (r1 = new Range(r1, options), r2 = new Range(r2, options), r1.intersects(r2, options)); + module.exports = intersects; + } +}); + +// node_modules/semver/ranges/simplify.js +var require_simplify = __commonJS({ + "node_modules/semver/ranges/simplify.js"(exports2, module) { + "use strict"; + var satisfies = require_satisfies(), compare = require_compare(); + module.exports = (versions, range2, options) => { + let set = [], first = null, prev = null, v = versions.sort((a, b) => compare(a, b, options)); + for (let version3 of v) + satisfies(version3, range2, options) ? (prev = version3, first || (first = version3)) : (prev && set.push([first, prev]), prev = null, first = null); + first && set.push([first, null]); + let ranges = []; + for (let [min, max] of set) + min === max ? ranges.push(min) : !max && min === v[0] ? ranges.push("*") : max ? min === v[0] ? ranges.push(`<=${max}`) : ranges.push(`${min} - ${max}`) : ranges.push(`>=${min}`); + let simplified = ranges.join(" || "), original = typeof range2.raw == "string" ? range2.raw : String(range2); + return simplified.length < original.length ? simplified : range2; + }; + } +}); + +// node_modules/semver/ranges/subset.js +var require_subset = __commonJS({ + "node_modules/semver/ranges/subset.js"(exports2, module) { + "use strict"; + var Range = require_range(), Comparator = require_comparator(), { ANY } = Comparator, satisfies = require_satisfies(), compare = require_compare(), subset = (sub, dom, options = {}) => { + if (sub === dom) + return !0; + sub = new Range(sub, options), dom = new Range(dom, options); + let sawNonNull = !1; + OUTER: for (let simpleSub of sub.set) { + for (let simpleDom of dom.set) { + let isSub = simpleSubset(simpleSub, simpleDom, options); + if (sawNonNull = sawNonNull || isSub !== null, isSub) + continue OUTER; + } + if (sawNonNull) + return !1; + } + return !0; + }, minimumVersionWithPreRelease = [new Comparator(">=0.0.0-0")], minimumVersion = [new Comparator(">=0.0.0")], simpleSubset = (sub, dom, options) => { + if (sub === dom) + return !0; + if (sub.length === 1 && sub[0].semver === ANY) { + if (dom.length === 1 && dom[0].semver === ANY) + return !0; + options.includePrerelease ? sub = minimumVersionWithPreRelease : sub = minimumVersion; + } + if (dom.length === 1 && dom[0].semver === ANY) { + if (options.includePrerelease) + return !0; + dom = minimumVersion; + } + let eqSet = /* @__PURE__ */ new Set(), gt, lt; + for (let c of sub) + c.operator === ">" || c.operator === ">=" ? gt = higherGT(gt, c, options) : c.operator === "<" || c.operator === "<=" ? lt = lowerLT(lt, c, options) : eqSet.add(c.semver); + if (eqSet.size > 1) + return null; + let gtltComp; + if (gt && lt) { + if (gtltComp = compare(gt.semver, lt.semver, options), gtltComp > 0) + return null; + if (gtltComp === 0 && (gt.operator !== ">=" || lt.operator !== "<=")) + return null; + } + for (let eq of eqSet) { + if (gt && !satisfies(eq, String(gt), options) || lt && !satisfies(eq, String(lt), options)) + return null; + for (let c of dom) + if (!satisfies(eq, String(c), options)) + return !1; + return !0; + } + let higher, lower, hasDomLT, hasDomGT, needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : !1, needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : !1; + needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === "<" && needDomLTPre.prerelease[0] === 0 && (needDomLTPre = !1); + for (let c of dom) { + if (hasDomGT = hasDomGT || c.operator === ">" || c.operator === ">=", hasDomLT = hasDomLT || c.operator === "<" || c.operator === "<=", gt) { + if (needDomGTPre && c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch && (needDomGTPre = !1), c.operator === ">" || c.operator === ">=") { + if (higher = higherGT(gt, c, options), higher === c && higher !== gt) + return !1; + } else if (gt.operator === ">=" && !c.test(gt.semver)) + return !1; + } + if (lt) { + if (needDomLTPre && c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch && (needDomLTPre = !1), c.operator === "<" || c.operator === "<=") { + if (lower = lowerLT(lt, c, options), lower === c && lower !== lt) + return !1; + } else if (lt.operator === "<=" && !c.test(lt.semver)) + return !1; + } + if (!c.operator && (lt || gt) && gtltComp !== 0) + return !1; + } + return !(gt && hasDomLT && !lt && gtltComp !== 0 || lt && hasDomGT && !gt && gtltComp !== 0 || needDomGTPre || needDomLTPre); + }, higherGT = (a, b, options) => { + if (!a) + return b; + let comp26 = compare(a.semver, b.semver, options); + return comp26 > 0 ? a : comp26 < 0 || b.operator === ">" && a.operator === ">=" ? b : a; + }, lowerLT = (a, b, options) => { + if (!a) + return b; + let comp26 = compare(a.semver, b.semver, options); + return comp26 < 0 ? a : comp26 > 0 || b.operator === "<" && a.operator === "<=" ? b : a; + }; + module.exports = subset; + } +}); + +// node_modules/semver/index.js +var require_semver2 = __commonJS({ + "node_modules/semver/index.js"(exports2, module) { + "use strict"; + var internalRe = require_re(), constants5 = require_constants6(), SemVer = require_semver(), identifiers = require_identifiers(), parse2 = require_parse2(), valid = require_valid(), clean2 = require_clean(), inc = require_inc(), diff = require_diff(), major = require_major(), minor = require_minor(), patch = require_patch(), prerelease = require_prerelease(), compare = require_compare(), rcompare = require_rcompare(), compareLoose = require_compare_loose(), compareBuild = require_compare_build(), sort = require_sort(), rsort = require_rsort(), gt = require_gt(), lt = require_lt(), eq = require_eq(), neq = require_neq(), gte = require_gte(), lte = require_lte(), cmp = require_cmp(), coerce = require_coerce(), truncate = require_truncate(), Comparator = require_comparator(), Range = require_range(), satisfies = require_satisfies(), toComparators = require_to_comparators(), maxSatisfying = require_max_satisfying(), minSatisfying = require_min_satisfying(), minVersion = require_min_version(), validRange = require_valid2(), outside = require_outside(), gtr = require_gtr(), ltr = require_ltr(), intersects = require_intersects(), simplifyRange = require_simplify(), subset = require_subset(); + module.exports = { + parse: parse2, + valid, + clean: clean2, + inc, + diff, + major, + minor, + patch, + prerelease, + compare, + rcompare, + compareLoose, + compareBuild, + sort, + rsort, + gt, + lt, + eq, + neq, + gte, + lte, + cmp, + coerce, + truncate, + Comparator, + Range, + satisfies, + toComparators, + maxSatisfying, + minSatisfying, + minVersion, + validRange, + outside, + gtr, + ltr, + intersects, + simplifyRange, + subset, + SemVer, + re: internalRe.re, + src: internalRe.src, + tokens: internalRe.t, + SEMVER_SPEC_VERSION: constants5.SEMVER_SPEC_VERSION, + RELEASE_TYPES: constants5.RELEASE_TYPES, + compareIdentifiers: identifiers.compareIdentifiers, + rcompareIdentifiers: identifiers.rcompareIdentifiers + }; + } +}); + +// node_modules/ms/index.js +var require_ms = __commonJS({ + "node_modules/ms/index.js"(exports2, module) { + var s = 1e3, m = s * 60, h = m * 60, d = h * 24, w = d * 7, y = d * 365.25; + module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) + return parse2(val); + if (type === "number" && isFinite(val)) + return options.long ? fmtLong(val) : fmtShort(val); + throw new Error( + "val is not a non-empty string or a valid number. val=" + JSON.stringify(val) + ); + }; + function parse2(str) { + if (str = String(str), !(str.length > 100)) { + var match2 = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (match2) { + var n = parseFloat(match2[1]), type = (match2[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return; + } + } + } } - function step(result) { - result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + function fmtShort(ms) { + var msAbs = Math.abs(ms); + return msAbs >= d ? Math.round(ms / d) + "d" : msAbs >= h ? Math.round(ms / h) + "h" : msAbs >= m ? Math.round(ms / m) + "m" : msAbs >= s ? Math.round(ms / s) + "s" : ms + "ms"; } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -function which(tool, check) { - return __awaiter3(this, void 0, void 0, function* () { - if (!tool) - throw new Error("parameter 'tool' is required"); - if (check) { - let result = yield which(tool, !1); - if (!result) - throw IS_WINDOWS ? new Error(`Unable to locate executable file: ${tool}. 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.`) : new Error(`Unable to locate executable file: ${tool}. 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 result; + function fmtLong(ms) { + var msAbs = Math.abs(ms); + return msAbs >= d ? plural(ms, msAbs, d, "day") : msAbs >= h ? plural(ms, msAbs, h, "hour") : msAbs >= m ? plural(ms, msAbs, m, "minute") : msAbs >= s ? plural(ms, msAbs, s, "second") : ms + " ms"; } - let matches = yield findInPath(tool); - return matches && matches.length > 0 ? matches[0] : ""; - }); -} -function findInPath(tool) { - return __awaiter3(this, void 0, void 0, function* () { - if (!tool) - throw new Error("parameter 'tool' is required"); - let extensions = []; - if (IS_WINDOWS && process.env.PATHEXT) - for (let extension of process.env.PATHEXT.split(path2.delimiter)) - extension && extensions.push(extension); - if (isRooted(tool)) { - let filePath = yield tryGetExecutablePath(tool, extensions); - return filePath ? [filePath] : []; + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); } - if (tool.includes(path2.sep)) - return []; - let directories = []; - if (process.env.PATH) - for (let p of process.env.PATH.split(path2.delimiter)) - p && directories.push(p); - let matches = []; - for (let directory of directories) { - let filePath = yield tryGetExecutablePath(path2.join(directory, tool), extensions); - filePath && matches.push(filePath); + } +}); + +// node_modules/debug/src/common.js +var require_common = __commonJS({ + "node_modules/debug/src/common.js"(exports2, module) { + function setup(env) { + createDebug.debug = createDebug, createDebug.default = createDebug, createDebug.coerce = coerce, createDebug.disable = disable2, createDebug.enable = enable2, createDebug.enabled = enabled2, createDebug.humanize = require_ms(), createDebug.destroy = destroy2, Object.keys(env).forEach((key) => { + createDebug[key] = env[key]; + }), createDebug.names = [], createDebug.skips = [], createDebug.formatters = {}; + function selectColor(namespace) { + let hash = 0; + for (let i = 0; i < namespace.length; i++) + hash = (hash << 5) - hash + namespace.charCodeAt(i), hash |= 0; + return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime, enableOverride = null, namespacesCache, enabledCache; + function debug3(...args) { + if (!debug3.enabled) + return; + let self2 = debug3, curr = Number(/* @__PURE__ */ new Date()), ms = curr - (prevTime || curr); + self2.diff = ms, self2.prev = prevTime, self2.curr = curr, prevTime = curr, args[0] = createDebug.coerce(args[0]), typeof args[0] != "string" && args.unshift("%O"); + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match2, format) => { + if (match2 === "%%") + return "%"; + index++; + let formatter = createDebug.formatters[format]; + if (typeof formatter == "function") { + let val = args[index]; + match2 = formatter.call(self2, val), args.splice(index, 1), index--; + } + return match2; + }), createDebug.formatArgs.call(self2, args), (self2.log || createDebug.log).apply(self2, args); + } + return debug3.namespace = namespace, debug3.useColors = createDebug.useColors(), debug3.color = createDebug.selectColor(namespace), debug3.extend = extend2, debug3.destroy = createDebug.destroy, Object.defineProperty(debug3, "enabled", { + enumerable: !0, + configurable: !1, + get: () => enableOverride !== null ? enableOverride : (namespacesCache !== createDebug.namespaces && (namespacesCache = createDebug.namespaces, enabledCache = createDebug.enabled(namespace)), enabledCache), + set: (v) => { + enableOverride = v; + } + }), typeof createDebug.init == "function" && createDebug.init(debug3), debug3; + } + function extend2(namespace, delimiter3) { + let newDebug = createDebug(this.namespace + (typeof delimiter3 > "u" ? ":" : delimiter3) + namespace); + return newDebug.log = this.log, newDebug; + } + function enable2(namespaces) { + createDebug.save(namespaces), createDebug.namespaces = namespaces, createDebug.names = [], createDebug.skips = []; + let split = (typeof namespaces == "string" ? namespaces : "").trim().replace(/\s+/g, ",").split(",").filter(Boolean); + for (let ns of split) + ns[0] === "-" ? createDebug.skips.push(ns.slice(1)) : createDebug.names.push(ns); + } + function matchesTemplate(search, template) { + let searchIndex = 0, templateIndex = 0, starIndex = -1, matchIndex = 0; + for (; searchIndex < search.length; ) + if (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === "*")) + template[templateIndex] === "*" ? (starIndex = templateIndex, matchIndex = searchIndex, templateIndex++) : (searchIndex++, templateIndex++); + else if (starIndex !== -1) + templateIndex = starIndex + 1, matchIndex++, searchIndex = matchIndex; + else + return !1; + for (; templateIndex < template.length && template[templateIndex] === "*"; ) + templateIndex++; + return templateIndex === template.length; + } + function disable2() { + let namespaces = [ + ...createDebug.names, + ...createDebug.skips.map((namespace) => "-" + namespace) + ].join(","); + return createDebug.enable(""), namespaces; + } + function enabled2(name) { + for (let skip of createDebug.skips) + if (matchesTemplate(name, skip)) + return !1; + for (let ns of createDebug.names) + if (matchesTemplate(name, ns)) + return !0; + return !1; + } + function coerce(val) { + return val instanceof Error ? val.stack || val.message : val; + } + function destroy2() { + 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 createDebug.enable(createDebug.load()), createDebug; } - return matches; - }); -} + module.exports = setup; + } +}); -// node_modules/@actions/exec/lib/toolrunner.js -import { setTimeout as setTimeout2 } from "timers"; -var __awaiter4 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve2) { - resolve2(value); +// node_modules/debug/src/browser.js +var require_browser = __commonJS({ + "node_modules/debug/src/browser.js"(exports2, module) { + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.storage = localstorage(); + exports2.destroy = /* @__PURE__ */ (() => { + let warned = !1; + return () => { + warned || (warned = !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`.")); + }; + })(); + exports2.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" + ]; + function useColors() { + 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 m; + return typeof document < "u" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 + typeof window < "u" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + typeof navigator < "u" && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)) && parseInt(m[1], 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker + typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + function formatArgs(args) { + if (args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff), !this.useColors) + return; + let c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index = 0, lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match2) => { + match2 !== "%%" && (index++, match2 === "%c" && (lastC = index)); + }), args.splice(lastC, 0, c); + } + exports2.log = console.debug || console.log || (() => { }); - } - return new (P || (P = Promise))(function(resolve2, reject) { - function fulfilled(value) { + function save(namespaces) { try { - step(generator.next(value)); - } catch (e) { - reject(e); + namespaces ? exports2.storage.setItem("debug", namespaces) : exports2.storage.removeItem("debug"); + } catch { } } - function rejected(value) { + function load() { + let r; try { - step(generator.throw(value)); - } catch (e) { - reject(e); + r = exports2.storage.getItem("debug") || exports2.storage.getItem("DEBUG"); + } catch { } + return !r && typeof process < "u" && "env" in process && (r = process.env.DEBUG), r; } - function step(result) { - result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + function localstorage() { + try { + return localStorage; + } catch { + } } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}, IS_WINDOWS2 = process.platform === "win32", ToolRunner = class extends events.EventEmitter { - constructor(toolPath, args, options) { - if (super(), !toolPath) - throw new Error("Parameter 'toolPath' cannot be null or empty."); - this.toolPath = toolPath, this.args = args || [], this.options = options || {}; + module.exports = require_common()(exports2); + var { formatters } = module.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error3) { + return "[UnexpectedJSONParseError]: " + error3.message; + } + }; } - _debug(message) { - this.options.listeners && this.options.listeners.debug && this.options.listeners.debug(message); +}); + +// node_modules/has-flag/index.js +var require_has_flag = __commonJS({ + "node_modules/has-flag/index.js"(exports2, module) { + "use strict"; + module.exports = (flag, argv = process.argv) => { + let prefix2 = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--", position = argv.indexOf(prefix2 + flag), terminatorPosition = argv.indexOf("--"); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); + }; } - _getCommandString(options, noPrefix) { - let toolPath = this._getSpawnFileName(), args = this._getSpawnArgs(options), cmd = noPrefix ? "" : "[command]"; - if (IS_WINDOWS2) - if (this._isCmdFile()) { - cmd += toolPath; - for (let a of args) - cmd += ` ${a}`; - } else if (options.windowsVerbatimArguments) { - cmd += `"${toolPath}"`; - for (let a of args) - cmd += ` ${a}`; - } else { - cmd += this._windowsQuoteCmdArg(toolPath); - for (let a of args) - cmd += ` ${this._windowsQuoteCmdArg(a)}`; - } - else { - cmd += toolPath; - for (let a of args) - cmd += ` ${a}`; +}); + +// node_modules/supports-color/index.js +var require_supports_color = __commonJS({ + "node_modules/supports-color/index.js"(exports2, module) { + "use strict"; + var os11 = __require("os"), tty = __require("tty"), hasFlag = require_has_flag(), { env } = process, forceColor; + hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never") ? forceColor = 0 : (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) && (forceColor = 1); + "FORCE_COLOR" in env && (env.FORCE_COLOR === "true" ? forceColor = 1 : env.FORCE_COLOR === "false" ? forceColor = 0 : forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3)); + function translateLevel(level) { + return level === 0 ? !1 : { + level, + hasBasic: !0, + has256: level >= 2, + has16m: level >= 3 + }; } - return cmd; - } - _processLineBuffer(data, strBuffer, onLine) { - try { - let s = strBuffer + data.toString(), n = s.indexOf(os3.EOL); - for (; n > -1; ) { - let line = s.substring(0, n); - onLine(line), s = s.substring(n + os3.EOL.length), n = s.indexOf(os3.EOL); + function supportsColor(haveStream, streamIsTTY) { + if (forceColor === 0) + return 0; + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) + return 3; + if (hasFlag("color=256")) + return 2; + if (haveStream && !streamIsTTY && forceColor === void 0) + return 0; + let min = forceColor || 0; + if (env.TERM === "dumb") + return min; + if (process.platform === "win32") { + let osRelease = os11.release().split("."); + return Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586 ? Number(osRelease[2]) >= 14931 ? 3 : 2 : 1; + } + if ("CI" in env) + return ["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env) || env.CI_NAME === "codeship" ? 1 : min; + if ("TEAMCITY_VERSION" in env) + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + if (env.COLORTERM === "truecolor") + return 3; + if ("TERM_PROGRAM" in env) { + let version3 = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": + return version3 >= 3 ? 3 : 2; + case "Apple_Terminal": + return 2; + } } - return s; - } catch (err) { - return this._debug(`error processing line. Failed with error ${err}`), ""; + return /-256(color)?$/i.test(env.TERM) ? 2 : /^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM) || "COLORTERM" in env ? 1 : min; + } + function getSupportLevel(stream3) { + let level = supportsColor(stream3, stream3 && stream3.isTTY); + return translateLevel(level); } + module.exports = { + supportsColor: getSupportLevel, + stdout: translateLevel(supportsColor(!0, tty.isatty(1))), + stderr: translateLevel(supportsColor(!0, tty.isatty(2))) + }; } - _getSpawnFileName() { - return IS_WINDOWS2 && this._isCmdFile() ? process.env.COMSPEC || "cmd.exe" : this.toolPath; - } - _getSpawnArgs(options) { - if (IS_WINDOWS2 && this._isCmdFile()) { - let argline = `/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`; - for (let a of this.args) - argline += " ", argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a); - return argline += '"', [argline]; +}); + +// node_modules/debug/src/node.js +var require_node = __commonJS({ + "node_modules/debug/src/node.js"(exports2, module) { + var tty = __require("tty"), util6 = __require("util"); + exports2.init = init; + exports2.log = log2; + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.destroy = util6.deprecate( + () => { + }, + "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`." + ); + exports2.colors = [6, 2, 3, 4, 5, 1]; + try { + let supportsColor = require_supports_color(); + supportsColor && (supportsColor.stderr || supportsColor).level >= 2 && (exports2.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 { } - return this.args; - } - _endsWith(str, end) { - return str.endsWith(end); + exports2.inspectOpts = Object.keys(process.env).filter((key) => /^debug_/i.test(key)).reduce((obj, key) => { + let prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => k.toUpperCase()), val = process.env[key]; + return /^(yes|on|true|enabled)$/i.test(val) ? val = !0 : /^(no|off|false|disabled)$/i.test(val) ? val = !1 : val === "null" ? val = null : val = Number(val), obj[prop] = val, obj; + }, {}); + function useColors() { + return "colors" in exports2.inspectOpts ? !!exports2.inspectOpts.colors : tty.isatty(process.stderr.fd); + } + function formatArgs(args) { + let { namespace: name, useColors: useColors2 } = this; + if (useColors2) { + let c = this.color, colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c), prefix2 = ` ${colorCode};1m${name} \x1B[0m`; + args[0] = prefix2 + args[0].split(` +`).join(` +` + prefix2), args.push(colorCode + "m+" + module.exports.humanize(this.diff) + "\x1B[0m"); + } else + args[0] = getDate() + name + " " + args[0]; + } + function getDate() { + return exports2.inspectOpts.hideDate ? "" : (/* @__PURE__ */ new Date()).toISOString() + " "; + } + function log2(...args) { + return process.stderr.write(util6.formatWithOptions(exports2.inspectOpts, ...args) + ` +`); + } + function save(namespaces) { + namespaces ? process.env.DEBUG = namespaces : delete process.env.DEBUG; + } + function load() { + return process.env.DEBUG; + } + function init(debug3) { + debug3.inspectOpts = {}; + let keys = Object.keys(exports2.inspectOpts); + for (let i = 0; i < keys.length; i++) + debug3.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]]; + } + module.exports = require_common()(exports2); + var { formatters } = module.exports; + formatters.o = function(v) { + return this.inspectOpts.colors = this.useColors, util6.inspect(v, this.inspectOpts).split(` +`).map((str) => str.trim()).join(" "); + }; + formatters.O = function(v) { + return this.inspectOpts.colors = this.useColors, util6.inspect(v, this.inspectOpts); + }; } - _isCmdFile() { - let upperToolPath = this.toolPath.toUpperCase(); - return this._endsWith(upperToolPath, ".CMD") || this._endsWith(upperToolPath, ".BAT"); +}); + +// node_modules/debug/src/index.js +var require_src = __commonJS({ + "node_modules/debug/src/index.js"(exports2, module) { + typeof process > "u" || process.type === "renderer" || process.browser === !0 || process.__nwjs ? module.exports = require_browser() : module.exports = require_node(); } - _windowsQuoteCmdArg(arg) { - if (!this._isCmdFile()) - return this._uvQuoteCmdArg(arg); - if (!arg) - return '""'; - let cmdSpecialChars = [ - " ", - " ", - "&", - "(", - ")", - "[", - "]", - "{", - "}", - "^", - "=", - ";", - "!", - "'", - "+", - ",", - "`", - "~", - "|", - "<", - ">", - '"' - ], needsQuotes = !1; - for (let char of arg) - if (cmdSpecialChars.some((x) => x === char)) { - needsQuotes = !0; - break; +}); + +// node_modules/@typespec/ts-http-runtime/node_modules/agent-base/dist/helpers.js +var require_helpers = __commonJS({ + "node_modules/@typespec/ts-http-runtime/node_modules/agent-base/dist/helpers.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + k2 === void 0 && (k2 = k); + var desc = Object.getOwnPropertyDescriptor(m, k); + (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) && (desc = { enumerable: !0, get: function() { + return m[k]; + } }), Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + k2 === void 0 && (k2 = k), o[k2] = m[k]; + })), __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: !0, value: v }); + }) : function(o, v) { + o.default = v; + }), __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) k !== "default" && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k); + return __setModuleDefault(result, mod), result; + }; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.req = exports2.json = exports2.toBuffer = void 0; + var http3 = __importStar(__require("http")), https3 = __importStar(__require("https")); + async function toBuffer(stream3) { + let length = 0, chunks = []; + for await (let chunk of stream3) + length += chunk.length, chunks.push(chunk); + return Buffer.concat(chunks, length); + } + exports2.toBuffer = toBuffer; + async function json(stream3) { + let str = (await toBuffer(stream3)).toString("utf8"); + try { + return JSON.parse(str); + } catch (_err) { + let err = _err; + throw err.message += ` (input: ${str})`, err; } - if (!needsQuotes) - return arg; - let reverse = '"', quoteHit = !0; - for (let i = arg.length; i > 0; i--) - reverse += arg[i - 1], quoteHit && arg[i - 1] === "\\" ? reverse += "\\" : arg[i - 1] === '"' ? (quoteHit = !0, reverse += '"') : quoteHit = !1; - return reverse += '"', reverse.split("").reverse().join(""); - } - _uvQuoteCmdArg(arg) { - if (!arg) - return '""'; - if (!arg.includes(" ") && !arg.includes(" ") && !arg.includes('"')) - return arg; - if (!arg.includes('"') && !arg.includes("\\")) - return `"${arg}"`; - let reverse = '"', quoteHit = !0; - for (let i = arg.length; i > 0; i--) - reverse += arg[i - 1], quoteHit && arg[i - 1] === "\\" ? reverse += "\\" : arg[i - 1] === '"' ? (quoteHit = !0, reverse += "\\") : quoteHit = !1; - return reverse += '"', reverse.split("").reverse().join(""); + } + exports2.json = json; + function req(url2, opts = {}) { + let req2 = ((typeof url2 == "string" ? url2 : url2.href).startsWith("https:") ? https3 : http3).request(url2, opts), promise = new Promise((resolve2, reject) => { + req2.once("response", resolve2).once("error", reject).end(); + }); + return req2.then = promise.then.bind(promise), req2; + } + exports2.req = req; } - _cloneExecOptions(options) { - options = options || {}; - let result = { - cwd: options.cwd || process.cwd(), - env: options.env || process.env, - silent: options.silent || !1, - windowsVerbatimArguments: options.windowsVerbatimArguments || !1, - failOnStdErr: options.failOnStdErr || !1, - ignoreReturnCode: options.ignoreReturnCode || !1, - delay: options.delay || 1e4 +}); + +// node_modules/@typespec/ts-http-runtime/node_modules/agent-base/dist/index.js +var require_dist2 = __commonJS({ + "node_modules/@typespec/ts-http-runtime/node_modules/agent-base/dist/index.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + k2 === void 0 && (k2 = k); + var desc = Object.getOwnPropertyDescriptor(m, k); + (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) && (desc = { enumerable: !0, get: function() { + return m[k]; + } }), Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + k2 === void 0 && (k2 = k), o[k2] = m[k]; + })), __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: !0, value: v }); + }) : function(o, v) { + o.default = v; + }), __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) k !== "default" && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k); + return __setModuleDefault(result, mod), result; + }, __exportStar = exports2 && exports2.__exportStar || function(m, exports3) { + for (var p in m) p !== "default" && !Object.prototype.hasOwnProperty.call(exports3, p) && __createBinding(exports3, m, p); }; - return result.outStream = options.outStream || process.stdout, result.errStream = options.errStream || process.stderr, result; - } - _getSpawnOptions(options, toolPath) { - options = options || {}; - let result = {}; - return result.cwd = options.cwd, result.env = options.env, result.windowsVerbatimArguments = options.windowsVerbatimArguments || this._isCmdFile(), options.windowsVerbatimArguments && (result.argv0 = `"${toolPath}"`), result; - } - /** - * Exec a tool. - * Output will be streamed to the live console. - * Returns promise with return code - * - * @param tool path to tool to exec - * @param options optional exec options. See ExecOptions - * @returns number - */ - exec() { - return __awaiter4(this, void 0, void 0, function* () { - return !isRooted(this.toolPath) && (this.toolPath.includes("/") || IS_WINDOWS2 && this.toolPath.includes("\\")) && (this.toolPath = path3.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath)), this.toolPath = yield which(this.toolPath, !0), new Promise((resolve2, reject) => __awaiter4(this, void 0, void 0, function* () { - this._debug(`exec tool: ${this.toolPath}`), this._debug("arguments:"); - for (let arg of this.args) - this._debug(` ${arg}`); - let optionsNonNull = this._cloneExecOptions(this.options); - !optionsNonNull.silent && optionsNonNull.outStream && optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os3.EOL); - let state = new ExecState(optionsNonNull, this.toolPath); - if (state.on("debug", (message) => { - this._debug(message); - }), this.options.cwd && !(yield exists(this.options.cwd))) - return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`)); - let fileName = this._getSpawnFileName(), cp = child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName)), stdbuffer = ""; - cp.stdout && cp.stdout.on("data", (data) => { - this.options.listeners && this.options.listeners.stdout && this.options.listeners.stdout(data), !optionsNonNull.silent && optionsNonNull.outStream && optionsNonNull.outStream.write(data), stdbuffer = this._processLineBuffer(data, stdbuffer, (line) => { - this.options.listeners && this.options.listeners.stdline && this.options.listeners.stdline(line); - }); + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.Agent = void 0; + var net = __importStar(__require("net")), http3 = __importStar(__require("http")), https_1 = __require("https"); + __exportStar(require_helpers(), exports2); + var INTERNAL = /* @__PURE__ */ Symbol("AgentBaseInternalState"), Agent3 = class extends http3.Agent { + constructor(opts) { + super(opts), this[INTERNAL] = {}; + } + /** + * Determine whether this is an `http` or `https` request. + */ + isSecureEndpoint(options) { + if (options) { + if (typeof options.secureEndpoint == "boolean") + return options.secureEndpoint; + if (typeof options.protocol == "string") + return options.protocol === "https:"; + } + let { stack } = new Error(); + return typeof stack != "string" ? !1 : stack.split(` +`).some((l) => l.indexOf("(https.js:") !== -1 || l.indexOf("node:https:") !== -1); + } + // In order to support async signatures in `connect()` and Node's native + // connection pooling in `http.Agent`, the array of sockets for each origin + // has to be updated synchronously. This is so the length of the array is + // accurate when `addRequest()` is next called. We achieve this by creating a + // fake socket and adding it to `sockets[origin]` and incrementing + // `totalSocketCount`. + incrementSockets(name) { + if (this.maxSockets === 1 / 0 && this.maxTotalSockets === 1 / 0) + return null; + this.sockets[name] || (this.sockets[name] = []); + let fakeSocket = new net.Socket({ writable: !1 }); + return this.sockets[name].push(fakeSocket), this.totalSocketCount++, fakeSocket; + } + decrementSockets(name, socket) { + if (!this.sockets[name] || socket === null) + return; + let sockets = this.sockets[name], index = sockets.indexOf(socket); + index !== -1 && (sockets.splice(index, 1), this.totalSocketCount--, sockets.length === 0 && delete this.sockets[name]); + } + // In order to properly update the socket pool, we need to call `getName()` on + // the core `https.Agent` if it is a secureEndpoint. + getName(options) { + return this.isSecureEndpoint(options) ? https_1.Agent.prototype.getName.call(this, options) : super.getName(options); + } + createSocket(req, options, cb) { + let connectOpts = { + ...options, + secureEndpoint: this.isSecureEndpoint(options) + }, name = this.getName(connectOpts), fakeSocket = this.incrementSockets(name); + Promise.resolve().then(() => this.connect(req, connectOpts)).then((socket) => { + if (this.decrementSockets(name, fakeSocket), socket instanceof http3.Agent) + try { + return socket.addRequest(req, connectOpts); + } catch (err) { + return cb(err); + } + this[INTERNAL].currentSocket = socket, super.createSocket(req, options, cb); + }, (err) => { + this.decrementSockets(name, fakeSocket), cb(err); }); - let errbuffer = ""; - if (cp.stderr && cp.stderr.on("data", (data) => { - state.processStderr = !0, this.options.listeners && this.options.listeners.stderr && this.options.listeners.stderr(data), !optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream && (optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream).write(data), errbuffer = this._processLineBuffer(data, errbuffer, (line) => { - this.options.listeners && this.options.listeners.errline && this.options.listeners.errline(line); + } + createConnection() { + let socket = this[INTERNAL].currentSocket; + if (this[INTERNAL].currentSocket = void 0, !socket) + throw new Error("No socket was returned in the `connect()` function"); + return socket; + } + get defaultPort() { + return this[INTERNAL].defaultPort ?? (this.protocol === "https:" ? 443 : 80); + } + set defaultPort(v) { + this[INTERNAL] && (this[INTERNAL].defaultPort = v); + } + get protocol() { + return this[INTERNAL].protocol ?? (this.isSecureEndpoint() ? "https:" : "http:"); + } + set protocol(v) { + this[INTERNAL] && (this[INTERNAL].protocol = v); + } + }; + exports2.Agent = Agent3; + } +}); + +// node_modules/@typespec/ts-http-runtime/node_modules/https-proxy-agent/dist/parse-proxy-response.js +var require_parse_proxy_response = __commonJS({ + "node_modules/@typespec/ts-http-runtime/node_modules/https-proxy-agent/dist/parse-proxy-response.js"(exports2) { + "use strict"; + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.parseProxyResponse = void 0; + var debug_1 = __importDefault(require_src()), debug3 = (0, debug_1.default)("https-proxy-agent:parse-proxy-response"); + function parseProxyResponse(socket) { + return new Promise((resolve2, reject) => { + let buffersLength = 0, buffers = []; + function read2() { + let b = socket.read(); + b ? ondata(b) : socket.once("readable", read2); + } + function cleanup() { + socket.removeListener("end", onend), socket.removeListener("error", onerror), socket.removeListener("readable", read2); + } + function onend() { + cleanup(), debug3("onend"), reject(new Error("Proxy connection ended before receiving CONNECT response")); + } + function onerror(err) { + cleanup(), debug3("onerror %o", err), reject(err); + } + function ondata(b) { + buffers.push(b), buffersLength += b.length; + let buffered = Buffer.concat(buffers, buffersLength), endOfHeaders = buffered.indexOf(`\r +\r +`); + if (endOfHeaders === -1) { + debug3("have not received end of HTTP headers yet..."), read2(); + return; + } + let headerParts = buffered.slice(0, endOfHeaders).toString("ascii").split(`\r +`), firstLine = headerParts.shift(); + if (!firstLine) + return socket.destroy(), reject(new Error("No header received from proxy CONNECT response")); + let firstLineParts = firstLine.split(" "), statusCode = +firstLineParts[1], statusText = firstLineParts.slice(2).join(" "), headers = {}; + for (let header of headerParts) { + if (!header) + continue; + let firstColon = header.indexOf(":"); + if (firstColon === -1) + return socket.destroy(), reject(new Error(`Invalid header from proxy CONNECT response: "${header}"`)); + let key = header.slice(0, firstColon).toLowerCase(), value = header.slice(firstColon + 1).trimStart(), current = headers[key]; + typeof current == "string" ? headers[key] = [current, value] : Array.isArray(current) ? current.push(value) : headers[key] = value; + } + debug3("got proxy server response: %o %o", firstLine, headers), cleanup(), resolve2({ + connect: { + statusCode, + statusText, + headers + }, + buffered }); - }), cp.on("error", (err) => { - state.processError = err.message, state.processExited = !0, state.processClosed = !0, state.CheckComplete(); - }), cp.on("exit", (code) => { - state.processExitCode = code, state.processExited = !0, this._debug(`Exit code ${code} received from tool '${this.toolPath}'`), state.CheckComplete(); - }), cp.on("close", (code) => { - state.processExitCode = code, state.processExited = !0, state.processClosed = !0, this._debug(`STDIO streams have closed for tool '${this.toolPath}'`), state.CheckComplete(); - }), state.on("done", (error2, exitCode) => { - stdbuffer.length > 0 && this.emit("stdline", stdbuffer), errbuffer.length > 0 && this.emit("errline", errbuffer), cp.removeAllListeners(), error2 ? reject(error2) : resolve2(exitCode); - }), this.options.input) { - if (!cp.stdin) - throw new Error("child process missing stdin"); - cp.stdin.end(this.options.input); } - })); - }); - } -}; -function argStringToArray(argString) { - let args = [], inQuotes = !1, escaped = !1, arg = ""; - function append(c) { - escaped && c !== '"' && (arg += "\\"), arg += c, escaped = !1; - } - for (let i = 0; i < argString.length; i++) { - let c = argString.charAt(i); - if (c === '"') { - escaped ? append(c) : inQuotes = !inQuotes; - continue; - } - if (c === "\\" && escaped) { - append(c); - continue; - } - if (c === "\\" && inQuotes) { - escaped = !0; - continue; - } - if (c === " " && !inQuotes) { - arg.length > 0 && (args.push(arg), arg = ""); - continue; + socket.on("error", onerror), socket.on("end", onend), read2(); + }); } - append(c); - } - return arg.length > 0 && args.push(arg.trim()), args; -} -var ExecState = class _ExecState extends events.EventEmitter { - constructor(options, toolPath) { - 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, !toolPath) - throw new Error("toolPath must not be empty"); - this.options = options, this.toolPath = toolPath, options.delay && (this.delay = options.delay); - } - CheckComplete() { - this.done || (this.processClosed ? this._setResult() : this.processExited && (this.timeout = setTimeout2(_ExecState.HandleTimeout, this.delay, this))); + exports2.parseProxyResponse = parseProxyResponse; } - _debug(message) { - this.emit("debug", message); - } - _setResult() { - let error2; - this.processExited && (this.processError ? error2 = new 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 ? error2 = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`) : this.processStderr && this.options.failOnStdErr && (error2 = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`))), this.timeout && (clearTimeout(this.timeout), this.timeout = null), this.done = !0, this.emit("done", error2, this.processExitCode); - } - static HandleTimeout(state) { - if (!state.done) { - if (!state.processClosed && state.processExited) { - let message = `The STDIO streams did not close within ${state.delay / 1e3} seconds of the exit event from process '${state.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`; - state._debug(message); +}); + +// node_modules/@typespec/ts-http-runtime/node_modules/https-proxy-agent/dist/index.js +var require_dist3 = __commonJS({ + "node_modules/@typespec/ts-http-runtime/node_modules/https-proxy-agent/dist/index.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + k2 === void 0 && (k2 = k); + var desc = Object.getOwnPropertyDescriptor(m, k); + (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) && (desc = { enumerable: !0, get: function() { + return m[k]; + } }), Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + k2 === void 0 && (k2 = k), o[k2] = m[k]; + })), __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: !0, value: v }); + }) : function(o, v) { + o.default = v; + }), __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) k !== "default" && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k); + return __setModuleDefault(result, mod), result; + }, __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.HttpsProxyAgent = void 0; + var net = __importStar(__require("net")), tls = __importStar(__require("tls")), assert_1 = __importDefault(__require("assert")), debug_1 = __importDefault(require_src()), agent_base_1 = require_dist2(), url_1 = __require("url"), parse_proxy_response_1 = require_parse_proxy_response(), debug3 = (0, debug_1.default)("https-proxy-agent"), setServernameFromNonIpHost = (options) => options.servername === void 0 && options.host && !net.isIP(options.host) ? { + ...options, + servername: options.host + } : options, HttpsProxyAgent2 = class extends agent_base_1.Agent { + constructor(proxy, opts) { + super(opts), this.options = { path: void 0 }, this.proxy = typeof proxy == "string" ? new url_1.URL(proxy) : proxy, this.proxyHeaders = opts?.headers ?? {}, debug3("Creating new HttpsProxyAgent instance: %o", this.proxy.href); + let host = (this.proxy.hostname || this.proxy.host).replace(/^\[|\]$/g, ""), port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === "https:" ? 443 : 80; + this.connectOpts = { + // Attempt to negotiate http/1.1 for proxy servers that support http/2 + ALPNProtocols: ["http/1.1"], + ...opts ? omit(opts, "headers") : null, + host, + port + }; + } + /** + * Called when the node-core HTTP client library is creating a + * new HTTP request. + */ + async connect(req, opts) { + let { proxy } = this; + if (!opts.host) + throw new TypeError('No "host" provided'); + let socket; + proxy.protocol === "https:" ? (debug3("Creating `tls.Socket`: %o", this.connectOpts), socket = tls.connect(setServernameFromNonIpHost(this.connectOpts))) : (debug3("Creating `net.Socket`: %o", this.connectOpts), socket = net.connect(this.connectOpts)); + let headers = typeof this.proxyHeaders == "function" ? this.proxyHeaders() : { ...this.proxyHeaders }, host = net.isIPv6(opts.host) ? `[${opts.host}]` : opts.host, payload = `CONNECT ${host}:${opts.port} HTTP/1.1\r +`; + if (proxy.username || proxy.password) { + let auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`; + headers["Proxy-Authorization"] = `Basic ${Buffer.from(auth).toString("base64")}`; + } + headers.Host = `${host}:${opts.port}`, headers["Proxy-Connection"] || (headers["Proxy-Connection"] = this.keepAlive ? "Keep-Alive" : "close"); + for (let name of Object.keys(headers)) + payload += `${name}: ${headers[name]}\r +`; + let proxyResponsePromise = (0, parse_proxy_response_1.parseProxyResponse)(socket); + socket.write(`${payload}\r +`); + let { connect, buffered } = await proxyResponsePromise; + if (req.emit("proxyConnect", connect), this.emit("proxyConnect", connect, req), connect.statusCode === 200) + return req.once("socket", resume), opts.secureEndpoint ? (debug3("Upgrading socket connection to TLS"), tls.connect({ + ...omit(setServernameFromNonIpHost(opts), "host", "path", "port"), + socket + })) : socket; + socket.destroy(); + let fakeSocket = new net.Socket({ writable: !1 }); + return fakeSocket.readable = !0, req.once("socket", (s) => { + debug3("Replaying proxy buffer for failed request"), (0, assert_1.default)(s.listenerCount("data") > 0), s.push(buffered), s.push(null); + }), fakeSocket; } - state._setResult(); + }; + HttpsProxyAgent2.protocols = ["http", "https"]; + exports2.HttpsProxyAgent = HttpsProxyAgent2; + function resume(socket) { + socket.resume(); + } + function omit(obj, ...keys) { + let ret = {}, key; + for (key in obj) + keys.includes(key) || (ret[key] = obj[key]); + return ret; } } -}; +}); -// node_modules/@actions/exec/lib/exec.js -var __awaiter5 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve2) { - resolve2(value); - }); - } - return new (P || (P = Promise))(function(resolve2, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); +// node_modules/@typespec/ts-http-runtime/node_modules/http-proxy-agent/dist/index.js +var require_dist4 = __commonJS({ + "node_modules/@typespec/ts-http-runtime/node_modules/http-proxy-agent/dist/index.js"(exports2) { + "use strict"; + var __createBinding = exports2 && exports2.__createBinding || (Object.create ? (function(o, m, k, k2) { + k2 === void 0 && (k2 = k); + var desc = Object.getOwnPropertyDescriptor(m, k); + (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) && (desc = { enumerable: !0, get: function() { + return m[k]; + } }), Object.defineProperty(o, k2, desc); + }) : (function(o, m, k, k2) { + k2 === void 0 && (k2 = k), o[k2] = m[k]; + })), __setModuleDefault = exports2 && exports2.__setModuleDefault || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: !0, value: v }); + }) : function(o, v) { + o.default = v; + }), __importStar = exports2 && exports2.__importStar || function(mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) k !== "default" && Object.prototype.hasOwnProperty.call(mod, k) && __createBinding(result, mod, k); + return __setModuleDefault(result, mod), result; + }, __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { default: mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.HttpProxyAgent = void 0; + var net = __importStar(__require("net")), tls = __importStar(__require("tls")), debug_1 = __importDefault(require_src()), events_1 = __require("events"), agent_base_1 = require_dist2(), url_1 = __require("url"), debug3 = (0, debug_1.default)("http-proxy-agent"), HttpProxyAgent2 = class extends agent_base_1.Agent { + constructor(proxy, opts) { + super(opts), this.proxy = typeof proxy == "string" ? new url_1.URL(proxy) : proxy, this.proxyHeaders = opts?.headers ?? {}, debug3("Creating new HttpProxyAgent instance: %o", this.proxy.href); + let host = (this.proxy.hostname || this.proxy.host).replace(/^\[|\]$/g, ""), port = this.proxy.port ? parseInt(this.proxy.port, 10) : this.proxy.protocol === "https:" ? 443 : 80; + this.connectOpts = { + ...opts ? omit(opts, "headers") : null, + host, + port + }; } - } - function rejected(value) { - try { - step(generator.throw(value)); - } catch (e) { - reject(e); + addRequest(req, opts) { + req._header = null, this.setRequestProps(req, opts), super.addRequest(req, opts); + } + setRequestProps(req, opts) { + let { proxy } = this, protocol = opts.secureEndpoint ? "https:" : "http:", hostname = req.getHeader("host") || "localhost", base = `${protocol}//${hostname}`, url2 = new url_1.URL(req.path, base); + opts.port !== 80 && (url2.port = String(opts.port)), req.path = String(url2); + let headers = typeof this.proxyHeaders == "function" ? this.proxyHeaders() : { ...this.proxyHeaders }; + if (proxy.username || proxy.password) { + let auth = `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`; + headers["Proxy-Authorization"] = `Basic ${Buffer.from(auth).toString("base64")}`; + } + headers["Proxy-Connection"] || (headers["Proxy-Connection"] = this.keepAlive ? "Keep-Alive" : "close"); + for (let name of Object.keys(headers)) { + let value = headers[name]; + value && req.setHeader(name, value); + } + } + async connect(req, opts) { + req._header = null, req.path.includes("://") || this.setRequestProps(req, opts); + let first, endOfHeaders; + debug3("Regenerating stored HTTP header string for request"), req._implicitHeader(), req.outputData && req.outputData.length > 0 && (debug3("Patching connection write() output buffer with updated header"), first = req.outputData[0].data, endOfHeaders = first.indexOf(`\r +\r +`) + 4, req.outputData[0].data = req._header + first.substring(endOfHeaders), debug3("Output buffer: %o", req.outputData[0].data)); + let socket; + return this.proxy.protocol === "https:" ? (debug3("Creating `tls.Socket`: %o", this.connectOpts), socket = tls.connect(this.connectOpts)) : (debug3("Creating `net.Socket`: %o", this.connectOpts), socket = net.connect(this.connectOpts)), await (0, events_1.once)(socket, "connect"), socket; } - } - function step(result) { - result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -function exec(commandLine, args, options) { - return __awaiter5(this, void 0, void 0, function* () { - let commandArgs = argStringToArray(commandLine); - if (commandArgs.length === 0) - throw new Error("Parameter 'commandLine' cannot be null or empty."); - let toolPath = commandArgs[0]; - return args = commandArgs.slice(1).concat(args || []), new ToolRunner(toolPath, args, options).exec(); - }); -} -function getExecOutput(commandLine, args, options) { - return __awaiter5(this, void 0, void 0, function* () { - var _a, _b; - let stdout = "", stderr = "", stdoutDecoder = new StringDecoder("utf8"), stderrDecoder = new StringDecoder("utf8"), originalStdoutListener = (_a = options?.listeners) === null || _a === void 0 ? void 0 : _a.stdout, originalStdErrListener = (_b = options?.listeners) === null || _b === void 0 ? void 0 : _b.stderr, stdErrListener = (data) => { - stderr += stderrDecoder.write(data), originalStdErrListener && originalStdErrListener(data); - }, stdOutListener = (data) => { - stdout += stdoutDecoder.write(data), originalStdoutListener && originalStdoutListener(data); - }, listeners = Object.assign(Object.assign({}, options?.listeners), { stdout: stdOutListener, stderr: stdErrListener }), exitCode = yield exec(commandLine, args, Object.assign(Object.assign({}, options), { listeners })); - return stdout += stdoutDecoder.end(), stderr += stderrDecoder.end(), { - exitCode, - stdout, - stderr }; - }); -} + HttpProxyAgent2.protocols = ["http", "https"]; + exports2.HttpProxyAgent = HttpProxyAgent2; + function omit(obj, ...keys) { + let ret = {}, key; + for (key in obj) + keys.includes(key) || (ret[key] = obj[key]); + return ret; + } + } +}); -// node_modules/@actions/core/lib/platform.js -var platform = os4.platform(), arch = os4.arch(); +// node_modules/@azure/core-tracing/dist/commonjs/state-cjs.js +var require_state_cjs = __commonJS({ + "node_modules/@azure/core-tracing/dist/commonjs/state-cjs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.state = void 0; + exports2.state = { + instrumenterImplementation: void 0 + }; + } +}); -// node_modules/@actions/core/lib/core.js -var ExitCode; -(function(ExitCode2) { - ExitCode2[ExitCode2.Success = 0] = "Success", ExitCode2[ExitCode2.Failure = 1] = "Failure"; -})(ExitCode || (ExitCode = {})); -function setSecret(secret) { - issueCommand("add-mask", {}, secret); -} -function setOutput(name, value) { - if (process.env.GITHUB_OUTPUT || "") - return issueFileCommand("OUTPUT", prepareKeyValueMessage(name, value)); - process.stdout.write(os5.EOL), issueCommand("set-output", { name }, toCommandValue(value)); -} -function setFailed(message) { - process.exitCode = ExitCode.Failure, error(message); -} -function isDebug() { - return process.env.RUNNER_DEBUG === "1"; -} -function debug(message) { - issueCommand("debug", {}, message); -} -function error(message, properties = {}) { - issueCommand("error", toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -function warning(message, properties = {}) { - issueCommand("warning", toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -function notice(message, properties = {}) { - issueCommand("notice", toCommandProperties(properties), message instanceof Error ? message.toString() : message); -} -function info(message) { - process.stdout.write(message + os5.EOL); -} -function startGroup(name) { - issue("group", name); -} -function endGroup() { - issue("endgroup"); -} -function saveState(name, value) { - if (process.env.GITHUB_STATE || "") - return issueFileCommand("STATE", prepareKeyValueMessage(name, value)); - issueCommand("save-state", { name }, toCommandValue(value)); -} -function getState(name) { - return process.env[`STATE_${name}`] || ""; -} +// node_modules/@azure/core-client/dist/commonjs/state-cjs.js +var require_state_cjs2 = __commonJS({ + "node_modules/@azure/core-client/dist/commonjs/state-cjs.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.state = void 0; + exports2.state = { + operationRequestMap: /* @__PURE__ */ new WeakMap() + }; + } +}); -// packages/build/src/main.ts -import { mkdir as mkdir3, rename as rename3, stat as stat4 } from "node:fs/promises"; -import { tmpdir as tmpdir2 } from "node:os"; -import { basename as pathBasename, dirname as dirname5, join as join7, resolve as pathResolve } from "node:path"; +// node_modules/@actions/cache/package.json +var require_package = __commonJS({ + "node_modules/@actions/cache/package.json"(exports2, module) { + module.exports = { + name: "@actions/cache", + version: "6.2.0", + description: "Actions cache lib", + keywords: [ + "github", + "actions", + "cache" + ], + homepage: "https://github.com/actions/toolkit/tree/main/packages/cache", + license: "MIT", + type: "module", + main: "lib/cache.js", + types: "lib/cache.d.ts", + exports: { + ".": { + types: "./lib/cache.d.ts", + import: "./lib/cache.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/cache" + }, + scripts: { + "audit-moderate": "npm install && npm audit --json --audit-level=moderate > audit.json", + test: 'echo "Error: run tests from root" && exit 1', + tsc: "tsc && cp src/internal/shared/package-version.cjs lib/internal/shared/" + }, + bugs: { + url: "https://github.com/actions/toolkit/issues" + }, + dependencies: { + "@actions/core": "^3.0.1", + "@actions/exec": "^3.0.0", + "@actions/glob": "^0.6.1", + "@actions/http-client": "^4.0.1", + "@actions/io": "^3.0.2", + "@azure/core-rest-pipeline": "^1.23.0", + "@azure/storage-blob": "^12.31.0", + "@protobuf-ts/runtime-rpc": "^2.11.1", + semver: "^7.7.4" + }, + devDependencies: { + "@protobuf-ts/plugin": "^2.11.1", + "@types/node": "^25.6.0", + "@types/semver": "^7.7.1", + typescript: "^5.9.3" + }, + overrides: { + "uri-js": "npm:uri-js-replace@^1.0.1", + "node-fetch": "^3.3.2" + } + }; + } +}); -// packages/core/src/errors.ts -var PkgActionError = class extends Error { - file; - line; - col; - constructor(message, opts = {}) { - super(message, opts.cause !== void 0 ? { cause: opts.cause } : void 0), this.name = new.target.name, opts.file !== void 0 && (this.file = opts.file), opts.line !== void 0 && (this.line = opts.line), opts.col !== void 0 && (this.col = opts.col); +// node_modules/@actions/cache/lib/internal/shared/package-version.cjs +var require_package_version = __commonJS({ + "node_modules/@actions/cache/lib/internal/shared/package-version.cjs"(exports2, module) { + var packageJson = require_package(); + module.exports = { version: packageJson.version }; } -}, ValidationError = class extends PkgActionError { -}, PkgRunError = class extends PkgActionError { -}; -var ArchiveError = class extends PkgActionError { -}, ChecksumError = class extends PkgActionError { -}, ResEditError = class extends PkgActionError { -}, SignError = class extends PkgActionError { -}; -function formatErrorChain(err, maxDepth = 5) { - let parts = [], current = err, depth = 0; - for (; current != null && depth < maxDepth; ) { - if (current instanceof Error) - parts.push(`${current.name}: ${current.message}`), current = current.cause; - else { - parts.push(String(current)); - break; +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/json-typings.js +var require_json_typings = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/json-typings.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.isJsonObject = exports2.typeofJsonValue = void 0; + function typeofJsonValue(value) { + let t = typeof value; + if (t == "object") { + if (Array.isArray(value)) + return "array"; + if (value === null) + return "null"; + } + return t; } - depth += 1; + exports2.typeofJsonValue = typeofJsonValue; + function isJsonObject(value) { + return value !== null && typeof value == "object" && !Array.isArray(value); + } + exports2.isJsonObject = isJsonObject; } - return parts.join(" \u2192 caused by \u2192 "); -} +}); -// packages/core/src/logger.ts -var actionsLogger = { - debug: (m) => debug(m), - info: (m) => info(m), - warning: (m, p) => warning(m, p), - error: (m, p) => error(m, p), - notice: (m, p) => notice(m, p), - startGroup: (n) => startGroup(n), - endGroup: () => endGroup(), - setSecret: (v) => setSecret(v), - isDebug: () => isDebug() -}; +// node_modules/@protobuf-ts/runtime/build/commonjs/base64.js +var require_base64 = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/base64.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.base64encode = exports2.base64decode = void 0; + var encTable = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), decTable = []; + for (let i = 0; i < encTable.length; i++) + decTable[encTable[i].charCodeAt(0)] = i; + decTable[45] = encTable.indexOf("+"); + decTable[95] = encTable.indexOf("/"); + function base64decode(base64Str) { + let es = base64Str.length * 3 / 4; + base64Str[base64Str.length - 2] == "=" ? es -= 2 : base64Str[base64Str.length - 1] == "=" && (es -= 1); + let bytes = new Uint8Array(es), bytePos = 0, groupPos = 0, b, p = 0; + for (let i = 0; i < base64Str.length; i++) { + if (b = decTable[base64Str.charCodeAt(i)], b === void 0) + switch (base64Str[i]) { + case "=": + groupPos = 0; + // reset state when padding found + case ` +`: + case "\r": + case " ": + case " ": + continue; + // skip white-space, and padding + default: + throw Error("invalid base64 string."); + } + switch (groupPos) { + case 0: + p = b, groupPos = 1; + break; + case 1: + bytes[bytePos++] = p << 2 | (b & 48) >> 4, p = b, groupPos = 2; + break; + case 2: + bytes[bytePos++] = (p & 15) << 4 | (b & 60) >> 2, p = b, groupPos = 3; + break; + case 3: + bytes[bytePos++] = (p & 3) << 6 | b, groupPos = 0; + break; + } + } + if (groupPos == 1) + throw Error("invalid base64 string."); + return bytes.subarray(0, bytePos); + } + exports2.base64decode = base64decode; + function base64encode2(bytes) { + let base64 = "", groupPos = 0, b, p = 0; + for (let i = 0; i < bytes.length; i++) + switch (b = bytes[i], groupPos) { + case 0: + base64 += encTable[b >> 2], p = (b & 3) << 4, groupPos = 1; + break; + case 1: + base64 += encTable[p | b >> 4], p = (b & 15) << 2, groupPos = 2; + break; + case 2: + base64 += encTable[p | b >> 6], base64 += encTable[b & 63], groupPos = 0; + break; + } + return groupPos && (base64 += encTable[p], base64 += "=", groupPos == 1 && (base64 += "=")), base64; + } + exports2.base64encode = base64encode2; + } +}); -// packages/core/src/fs-utils.ts -import { randomUUID as randomUUID2 } from "node:crypto"; -import { chmod as chmod2, mkdir as mkdir2, open as open2, rename as rename2, rm as rm2, stat as stat2, writeFile as writeFile2 } from "node:fs/promises"; -import { dirname as dirname3, join as join3 } from "node:path"; -async function createInvocationTemp(parent) { - let id = randomUUID2(), dir = join3(parent, `pkg-action-${id}`); - return await mkdir2(dir, { recursive: !0, mode: 448 }), await chmod2(dir, 448), dir; -} -var PKG_CONFIG_INLINE_FILENAME = "pkg-config.inline.json"; -async function materializePkgConfigInline(opts) { - if (opts.configInline === void 0) return opts.config; - let path4 = join3(opts.invocationDir, PKG_CONFIG_INLINE_FILENAME); - return await writeFile2(path4, opts.configInline, "utf8"), path4; -} -async function atomicWriteFile(path4, data) { - await mkdir2(dirname3(path4), { recursive: !0 }); - let tmp = `${path4}.tmp-${randomUUID2()}`; - await writeFile2(tmp, data), await rename2(tmp, path4); -} +// node_modules/@protobuf-ts/runtime/build/commonjs/protobufjs-utf8.js +var require_protobufjs_utf8 = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/protobufjs-utf8.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.utf8read = void 0; + var fromCharCodes = (chunk) => String.fromCharCode.apply(String, chunk); + function utf8read(bytes) { + if (bytes.length < 1) + return ""; + let pos = 0, parts = [], chunk = [], i = 0, t, len = bytes.length; + for (; pos < len; ) + t = bytes[pos++], t < 128 ? chunk[i++] = t : t > 191 && t < 224 ? chunk[i++] = (t & 31) << 6 | bytes[pos++] & 63 : t > 239 && t < 365 ? (t = ((t & 7) << 18 | (bytes[pos++] & 63) << 12 | (bytes[pos++] & 63) << 6 | bytes[pos++] & 63) - 65536, chunk[i++] = 55296 + (t >> 10), chunk[i++] = 56320 + (t & 1023)) : chunk[i++] = (t & 15) << 12 | (bytes[pos++] & 63) << 6 | bytes[pos++] & 63, i > 8191 && (parts.push(fromCharCodes(chunk)), i = 0); + return parts.length ? (i && parts.push(fromCharCodes(chunk.slice(0, i))), parts.join("")) : fromCharCodes(chunk.slice(0, i)); + } + exports2.utf8read = utf8read; + } +}); -// packages/core/src/targets.ts -var VALID_OS = ["linux", "macos", "win", "alpine", "linuxstatic"], VALID_ARCH = ["x64", "arm64", "armv7", "armv6", "ppc64", "s390x"], TRIPLE_RE = /^(?:node(\d+)|(latest))-([a-z]+)-([a-z0-9]+)$/; -function parseTarget(triple) { - let trimmed = triple.trim(), m = TRIPLE_RE.exec(trimmed); - if (!m) - throw new ValidationError( - `Invalid target triple "${triple}". Expected node-- or latest--.` - ); - let [, majorStr, latestLit, osRaw, archRaw] = m, node = latestLit !== void 0 ? "latest" : Number(majorStr); - if (typeof node == "number" && (Number.isNaN(node) || node < 18)) - throw new ValidationError( - `Target "${triple}" specifies Node ${String(node)} \u2014 only Node 18 and newer are supported by pkg.` - ); - if (!osRaw || !archRaw) - throw new ValidationError(`Invalid target triple "${triple}".`); - if (!VALID_OS.includes(osRaw)) - throw new ValidationError( - `Invalid target OS "${osRaw}" in "${triple}". Expected one of: ${VALID_OS.join(", ")}.` - ); - if (!VALID_ARCH.includes(archRaw)) - throw new ValidationError( - `Invalid target arch "${archRaw}" in "${triple}". Expected one of: ${VALID_ARCH.join(", ")}.` - ); - return { - node, - os: osRaw, - arch: archRaw - }; -} -function formatTarget(t) { - return `${t.node === "latest" ? "latest" : `node${t.node}`}-${t.os}-${t.arch}`; -} -function parseTargetList(raw) { - let pieces = raw.split(/[\n,]/).map((s) => s.trim()).filter((s) => s.length > 0), seen = /* @__PURE__ */ new Set(), result = []; - for (let p of pieces) { - let t = parseTarget(p), key = formatTarget(t); - seen.has(key) || (seen.add(key), result.push(t)); +// node_modules/@protobuf-ts/runtime/build/commonjs/binary-format-contract.js +var require_binary_format_contract = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/binary-format-contract.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.WireType = exports2.mergeBinaryOptions = exports2.UnknownFieldHandler = void 0; + var UnknownFieldHandler4; + (function(UnknownFieldHandler5) { + UnknownFieldHandler5.symbol = /* @__PURE__ */ Symbol.for("protobuf-ts/unknown"), UnknownFieldHandler5.onRead = (typeName, message, fieldNo, wireType, data) => { + (is(message) ? message[UnknownFieldHandler5.symbol] : message[UnknownFieldHandler5.symbol] = []).push({ no: fieldNo, wireType, data }); + }, UnknownFieldHandler5.onWrite = (typeName, message, writer) => { + for (let { no, wireType, data } of UnknownFieldHandler5.list(message)) + writer.tag(no, wireType).raw(data); + }, UnknownFieldHandler5.list = (message, fieldNo) => { + if (is(message)) { + let all = message[UnknownFieldHandler5.symbol]; + return fieldNo ? all.filter((uf) => uf.no == fieldNo) : all; + } + return []; + }, UnknownFieldHandler5.last = (message, fieldNo) => UnknownFieldHandler5.list(message, fieldNo).slice(-1)[0]; + let is = (message) => message && Array.isArray(message[UnknownFieldHandler5.symbol]); + })(UnknownFieldHandler4 = exports2.UnknownFieldHandler || (exports2.UnknownFieldHandler = {})); + function mergeBinaryOptions(a, b) { + return Object.assign(Object.assign({}, a), b); + } + exports2.mergeBinaryOptions = mergeBinaryOptions; + var WireType4; + (function(WireType5) { + WireType5[WireType5.Varint = 0] = "Varint", WireType5[WireType5.Bit64 = 1] = "Bit64", WireType5[WireType5.LengthDelimited = 2] = "LengthDelimited", WireType5[WireType5.StartGroup = 3] = "StartGroup", WireType5[WireType5.EndGroup = 4] = "EndGroup", WireType5[WireType5.Bit32 = 5] = "Bit32"; + })(WireType4 = exports2.WireType || (exports2.WireType = {})); } - return result; -} -var DEFAULT_RUNNER_LABELS = Object.freeze({ - "linux-x64": "ubuntu-latest", - "linux-arm64": "ubuntu-24.04-arm", - "linuxstatic-x64": "ubuntu-latest", - "linuxstatic-arm64": "ubuntu-24.04-arm", - "alpine-x64": "ubuntu-latest", - "alpine-arm64": "ubuntu-24.04-arm", - "macos-x64": "macos-13", - "macos-arm64": "macos-latest", - "win-x64": "windows-latest", - "win-arm64": "windows-11-arm" }); -function hostTarget(platform2 = process.platform, arch2 = process.arch, nodeVersion = process.versions.node) { - let os6; - switch (platform2) { - case "linux": - os6 = "linux"; - break; - case "darwin": - os6 = "macos"; - break; - case "win32": - os6 = "win"; - break; - default: - throw new ValidationError( - `Cannot auto-detect host target \u2014 unsupported platform "${platform2}".` + +// node_modules/@protobuf-ts/runtime/build/commonjs/goog-varint.js +var require_goog_varint = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/goog-varint.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.varint32read = exports2.varint32write = exports2.int64toString = exports2.int64fromString = exports2.varint64write = exports2.varint64read = void 0; + function varint64read() { + let lowBits = 0, highBits = 0; + for (let shift = 0; shift < 28; shift += 7) { + let b = this.buf[this.pos++]; + if (lowBits |= (b & 127) << shift, (b & 128) == 0) + return this.assertBounds(), [lowBits, highBits]; + } + let middleByte = this.buf[this.pos++]; + if (lowBits |= (middleByte & 15) << 28, highBits = (middleByte & 112) >> 4, (middleByte & 128) == 0) + return this.assertBounds(), [lowBits, highBits]; + for (let shift = 3; shift <= 31; shift += 7) { + let b = this.buf[this.pos++]; + if (highBits |= (b & 127) << shift, (b & 128) == 0) + return this.assertBounds(), [lowBits, highBits]; + } + throw new Error("invalid varint"); + } + exports2.varint64read = varint64read; + function varint64write(lo, hi, bytes) { + for (let i = 0; i < 28; i = i + 7) { + let shift = lo >>> i, hasNext = !(!(shift >>> 7) && hi == 0), byte = (hasNext ? shift | 128 : shift) & 255; + if (bytes.push(byte), !hasNext) + return; + } + let splitBits = lo >>> 28 & 15 | (hi & 7) << 4, hasMoreBits = hi >> 3 != 0; + if (bytes.push((hasMoreBits ? splitBits | 128 : splitBits) & 255), !!hasMoreBits) { + for (let i = 3; i < 31; i = i + 7) { + let shift = hi >>> i, hasNext = !!(shift >>> 7), byte = (hasNext ? shift | 128 : shift) & 255; + if (bytes.push(byte), !hasNext) + return; + } + bytes.push(hi >>> 31 & 1); + } + } + exports2.varint64write = varint64write; + var TWO_PWR_32_DBL = 65536 * 65536; + function int64fromString(dec) { + let minus = dec[0] == "-"; + minus && (dec = dec.slice(1)); + let base = 1e6, lowBits = 0, highBits = 0; + function add1e6digit(begin, end) { + let digit1e6 = Number(dec.slice(begin, end)); + highBits *= base, lowBits = lowBits * base + digit1e6, lowBits >= TWO_PWR_32_DBL && (highBits = highBits + (lowBits / TWO_PWR_32_DBL | 0), lowBits = lowBits % TWO_PWR_32_DBL); + } + return add1e6digit(-24, -18), add1e6digit(-18, -12), add1e6digit(-12, -6), add1e6digit(-6), [minus, lowBits, highBits]; + } + exports2.int64fromString = int64fromString; + function int64toString(bitsLow, bitsHigh) { + if (bitsHigh >>> 0 <= 2097151) + return "" + (TWO_PWR_32_DBL * bitsHigh + (bitsLow >>> 0)); + let low = bitsLow & 16777215, mid = (bitsLow >>> 24 | bitsHigh << 8) >>> 0 & 16777215, high = bitsHigh >> 16 & 65535, digitA = low + mid * 6777216 + high * 6710656, digitB = mid + high * 8147497, digitC = high * 2, base = 1e7; + digitA >= base && (digitB += Math.floor(digitA / base), digitA %= base), digitB >= base && (digitC += Math.floor(digitB / base), digitB %= base); + function decimalFrom1e7(digit1e7, needLeadingZeros) { + let partial = digit1e7 ? String(digit1e7) : ""; + return needLeadingZeros ? "0000000".slice(partial.length) + partial : partial; + } + return decimalFrom1e7( + digitC, + /*needLeadingZeros=*/ + 0 + ) + decimalFrom1e7( + digitB, + /*needLeadingZeros=*/ + digitC + ) + // If the final 1e7 digit didn't need leading zeros, we would have + // returned via the trivial code path at the top. + decimalFrom1e7( + digitA, + /*needLeadingZeros=*/ + 1 ); + } + exports2.int64toString = int64toString; + function varint32write(value, bytes) { + if (value >= 0) { + for (; value > 127; ) + bytes.push(value & 127 | 128), value = value >>> 7; + bytes.push(value); + } else { + for (let i = 0; i < 9; i++) + bytes.push(value & 127 | 128), value = value >> 7; + bytes.push(1); + } + } + exports2.varint32write = varint32write; + function varint32read() { + let b = this.buf[this.pos++], result = b & 127; + if ((b & 128) == 0) + return this.assertBounds(), result; + if (b = this.buf[this.pos++], result |= (b & 127) << 7, (b & 128) == 0) + return this.assertBounds(), result; + if (b = this.buf[this.pos++], result |= (b & 127) << 14, (b & 128) == 0) + return this.assertBounds(), result; + if (b = this.buf[this.pos++], result |= (b & 127) << 21, (b & 128) == 0) + return this.assertBounds(), result; + b = this.buf[this.pos++], result |= (b & 15) << 28; + for (let readBytes = 5; (b & 128) !== 0 && readBytes < 10; readBytes++) + b = this.buf[this.pos++]; + if ((b & 128) != 0) + throw new Error("invalid varint"); + return this.assertBounds(), result >>> 0; + } + exports2.varint32read = varint32read; } - let mappedArch; - switch (arch2) { - case "x64": - mappedArch = "x64"; - break; - case "arm64": - mappedArch = "arm64"; - break; - case "arm": - mappedArch = "armv7"; - break; - case "ppc64": - mappedArch = "ppc64"; - break; - case "s390x": - mappedArch = "s390x"; - break; - default: - throw new ValidationError(`Cannot auto-detect host target \u2014 unsupported arch "${arch2}".`); - } - let nodeMajor = Number(nodeVersion.split(".")[0]); - if (!Number.isFinite(nodeMajor)) - throw new ValidationError(`Cannot parse Node version "${nodeVersion}".`); - return { node: nodeMajor, os: os6, arch: mappedArch }; -} +}); -// packages/core/src/templates.ts -var TEMPLATE_TOKEN_NAMES = [ - "name", - "version", - "target", - "node", - "os", - "arch", - "sha", - "ref", - "date", - "tag" -], TOKEN_RE = /\{([a-zA-Z]+)\}/g; -function render(template, tokens) { - return template.replace(TOKEN_RE, (full, name) => { - if (!TEMPLATE_TOKEN_NAMES.includes(name)) { - let suggestion = closestToken(name), hint = suggestion !== null ? ` Did you mean "{${suggestion}}"?` : ""; - throw new ValidationError(`Unknown template token "${full}".${hint}`); - } - let value = tokens[name]; - if (value === void 0) - throw new ValidationError(`Template token "${full}" is undefined.`); - return value; - }); -} -function closestToken(input) { - let best = null, bestDist = 1 / 0; - for (let candidate of TEMPLATE_TOKEN_NAMES) { - let d = levenshtein(input.toLowerCase(), candidate); - d < bestDist && (bestDist = d, best = candidate); +// node_modules/@protobuf-ts/runtime/build/commonjs/pb-long.js +var require_pb_long = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/pb-long.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.PbLong = exports2.PbULong = exports2.detectBi = void 0; + var goog_varint_1 = require_goog_varint(), BI; + function detectBi() { + let dv = new DataView(new ArrayBuffer(8)); + BI = globalThis.BigInt !== void 0 && typeof dv.getBigInt64 == "function" && typeof dv.getBigUint64 == "function" && typeof dv.setBigInt64 == "function" && typeof dv.setBigUint64 == "function" ? { + MIN: BigInt("-9223372036854775808"), + MAX: BigInt("9223372036854775807"), + UMIN: BigInt("0"), + UMAX: BigInt("18446744073709551615"), + C: BigInt, + V: dv + } : void 0; + } + exports2.detectBi = detectBi; + detectBi(); + function assertBi(bi) { + if (!bi) + throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support"); + } + var RE_DECIMAL_STR = /^-?[0-9]+$/, TWO_PWR_32_DBL = 4294967296, HALF_2_PWR_32 = 2147483648, SharedPbLong = class { + /** + * Create a new instance with the given bits. + */ + constructor(lo, hi) { + this.lo = lo | 0, this.hi = hi | 0; + } + /** + * Is this instance equal to 0? + */ + isZero() { + return this.lo == 0 && this.hi == 0; + } + /** + * Convert to a native number. + */ + toNumber() { + let result = this.hi * TWO_PWR_32_DBL + (this.lo >>> 0); + if (!Number.isSafeInteger(result)) + throw new Error("cannot convert to safe number"); + return result; + } + }, PbULong = class _PbULong extends SharedPbLong { + /** + * Create instance from a `string`, `number` or `bigint`. + */ + static from(value) { + if (BI) + switch (typeof value) { + case "string": + if (value == "0") + return this.ZERO; + if (value == "") + throw new Error("string is no integer"); + value = BI.C(value); + case "number": + if (value === 0) + return this.ZERO; + value = BI.C(value); + case "bigint": + if (!value) + return this.ZERO; + if (value < BI.UMIN) + throw new Error("signed value for ulong"); + if (value > BI.UMAX) + throw new Error("ulong too large"); + return BI.V.setBigUint64(0, value, !0), new _PbULong(BI.V.getInt32(0, !0), BI.V.getInt32(4, !0)); + } + else + switch (typeof value) { + case "string": + if (value == "0") + return this.ZERO; + if (value = value.trim(), !RE_DECIMAL_STR.test(value)) + throw new Error("string is no integer"); + let [minus, lo, hi] = goog_varint_1.int64fromString(value); + if (minus) + throw new Error("signed value for ulong"); + return new _PbULong(lo, hi); + case "number": + if (value == 0) + return this.ZERO; + if (!Number.isSafeInteger(value)) + throw new Error("number is no integer"); + if (value < 0) + throw new Error("signed value for ulong"); + return new _PbULong(value, value / TWO_PWR_32_DBL); + } + throw new Error("unknown value " + typeof value); + } + /** + * Convert to decimal string. + */ + toString() { + return BI ? this.toBigInt().toString() : goog_varint_1.int64toString(this.lo, this.hi); + } + /** + * Convert to native bigint. + */ + toBigInt() { + return assertBi(BI), BI.V.setInt32(0, this.lo, !0), BI.V.setInt32(4, this.hi, !0), BI.V.getBigUint64(0, !0); + } + }; + exports2.PbULong = PbULong; + PbULong.ZERO = new PbULong(0, 0); + var PbLong = class _PbLong extends SharedPbLong { + /** + * Create instance from a `string`, `number` or `bigint`. + */ + static from(value) { + if (BI) + switch (typeof value) { + case "string": + if (value == "0") + return this.ZERO; + if (value == "") + throw new Error("string is no integer"); + value = BI.C(value); + case "number": + if (value === 0) + return this.ZERO; + value = BI.C(value); + case "bigint": + if (!value) + return this.ZERO; + if (value < BI.MIN) + throw new Error("signed long too small"); + if (value > BI.MAX) + throw new Error("signed long too large"); + return BI.V.setBigInt64(0, value, !0), new _PbLong(BI.V.getInt32(0, !0), BI.V.getInt32(4, !0)); + } + else + switch (typeof value) { + case "string": + if (value == "0") + return this.ZERO; + if (value = value.trim(), !RE_DECIMAL_STR.test(value)) + throw new Error("string is no integer"); + let [minus, lo, hi] = goog_varint_1.int64fromString(value); + if (minus) { + if (hi > HALF_2_PWR_32 || hi == HALF_2_PWR_32 && lo != 0) + throw new Error("signed long too small"); + } else if (hi >= HALF_2_PWR_32) + throw new Error("signed long too large"); + let pbl = new _PbLong(lo, hi); + return minus ? pbl.negate() : pbl; + case "number": + if (value == 0) + return this.ZERO; + if (!Number.isSafeInteger(value)) + throw new Error("number is no integer"); + return value > 0 ? new _PbLong(value, value / TWO_PWR_32_DBL) : new _PbLong(-value, -value / TWO_PWR_32_DBL).negate(); + } + throw new Error("unknown value " + typeof value); + } + /** + * Do we have a minus sign? + */ + isNegative() { + return (this.hi & HALF_2_PWR_32) !== 0; + } + /** + * Negate two's complement. + * Invert all the bits and add one to the result. + */ + negate() { + let hi = ~this.hi, lo = this.lo; + return lo ? lo = ~lo + 1 : hi += 1, new _PbLong(lo, hi); + } + /** + * Convert to decimal string. + */ + toString() { + if (BI) + return this.toBigInt().toString(); + if (this.isNegative()) { + let n = this.negate(); + return "-" + goog_varint_1.int64toString(n.lo, n.hi); + } + return goog_varint_1.int64toString(this.lo, this.hi); + } + /** + * Convert to native bigint. + */ + toBigInt() { + return assertBi(BI), BI.V.setInt32(0, this.lo, !0), BI.V.setInt32(4, this.hi, !0), BI.V.getBigInt64(0, !0); + } + }; + exports2.PbLong = PbLong; + PbLong.ZERO = new PbLong(0, 0); } - return bestDist <= 3 ? best : null; -} -function levenshtein(a, b) { - if (a === b) return 0; - if (a.length === 0) return b.length; - if (b.length === 0) return a.length; - let prev = new Array(b.length + 1), curr = new Array(b.length + 1); - for (let j = 0; j <= b.length; j += 1) prev[j] = j; - for (let i = 1; i <= a.length; i += 1) { - curr[0] = i; - for (let j = 1; j <= b.length; j += 1) { - let cost = a[i - 1] === b[j - 1] ? 0 : 1; - curr[j] = Math.min((curr[j - 1] ?? 0) + 1, (prev[j] ?? 0) + 1, (prev[j - 1] ?? 0) + cost); - } - [prev, curr] = [curr, prev]; +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/binary-reader.js +var require_binary_reader = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/binary-reader.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.BinaryReader = exports2.binaryReadOptions = void 0; + var binary_format_contract_1 = require_binary_format_contract(), pb_long_1 = require_pb_long(), goog_varint_1 = require_goog_varint(), defaultsRead = { + readUnknownField: !0, + readerFactory: (bytes) => new BinaryReader(bytes) + }; + function binaryReadOptions(options) { + return options ? Object.assign(Object.assign({}, defaultsRead), options) : defaultsRead; + } + exports2.binaryReadOptions = binaryReadOptions; + var BinaryReader = class { + constructor(buf, textDecoder) { + this.varint64 = goog_varint_1.varint64read, this.uint32 = goog_varint_1.varint32read, this.buf = buf, this.len = buf.length, this.pos = 0, this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength), this.textDecoder = textDecoder ?? new TextDecoder("utf-8", { + fatal: !0, + ignoreBOM: !0 + }); + } + /** + * Reads a tag - field number and wire type. + */ + tag() { + let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7; + if (fieldNo <= 0 || wireType < 0 || wireType > 5) + throw new Error("illegal tag: field no " + fieldNo + " wire type " + wireType); + return [fieldNo, wireType]; + } + /** + * Skip one element on the wire and return the skipped data. + * Supports WireType.StartGroup since v2.0.0-alpha.23. + */ + skip(wireType) { + let start = this.pos; + switch (wireType) { + case binary_format_contract_1.WireType.Varint: + for (; this.buf[this.pos++] & 128; ) + ; + break; + case binary_format_contract_1.WireType.Bit64: + this.pos += 4; + case binary_format_contract_1.WireType.Bit32: + this.pos += 4; + break; + case binary_format_contract_1.WireType.LengthDelimited: + let len = this.uint32(); + this.pos += len; + break; + case binary_format_contract_1.WireType.StartGroup: + let t; + for (; (t = this.tag()[1]) !== binary_format_contract_1.WireType.EndGroup; ) + this.skip(t); + break; + default: + throw new Error("cant skip wire type " + wireType); + } + return this.assertBounds(), this.buf.subarray(start, this.pos); + } + /** + * Throws error if position in byte array is out of range. + */ + assertBounds() { + if (this.pos > this.len) + throw new RangeError("premature EOF"); + } + /** + * Read a `int32` field, a signed 32 bit varint. + */ + int32() { + return this.uint32() | 0; + } + /** + * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint. + */ + sint32() { + let zze = this.uint32(); + return zze >>> 1 ^ -(zze & 1); + } + /** + * Read a `int64` field, a signed 64-bit varint. + */ + int64() { + return new pb_long_1.PbLong(...this.varint64()); + } + /** + * Read a `uint64` field, an unsigned 64-bit varint. + */ + uint64() { + return new pb_long_1.PbULong(...this.varint64()); + } + /** + * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint. + */ + sint64() { + let [lo, hi] = this.varint64(), s = -(lo & 1); + return lo = (lo >>> 1 | (hi & 1) << 31) ^ s, hi = hi >>> 1 ^ s, new pb_long_1.PbLong(lo, hi); + } + /** + * Read a `bool` field, a variant. + */ + bool() { + let [lo, hi] = this.varint64(); + return lo !== 0 || hi !== 0; + } + /** + * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer. + */ + fixed32() { + return this.view.getUint32((this.pos += 4) - 4, !0); + } + /** + * Read a `sfixed32` field, a signed, fixed-length 32-bit integer. + */ + sfixed32() { + return this.view.getInt32((this.pos += 4) - 4, !0); + } + /** + * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer. + */ + fixed64() { + return new pb_long_1.PbULong(this.sfixed32(), this.sfixed32()); + } + /** + * Read a `fixed64` field, a signed, fixed-length 64-bit integer. + */ + sfixed64() { + return new pb_long_1.PbLong(this.sfixed32(), this.sfixed32()); + } + /** + * Read a `float` field, 32-bit floating point number. + */ + float() { + return this.view.getFloat32((this.pos += 4) - 4, !0); + } + /** + * Read a `double` field, a 64-bit floating point number. + */ + double() { + return this.view.getFloat64((this.pos += 8) - 8, !0); + } + /** + * Read a `bytes` field, length-delimited arbitrary data. + */ + bytes() { + let len = this.uint32(), start = this.pos; + return this.pos += len, this.assertBounds(), this.buf.subarray(start, start + len); + } + /** + * Read a `string` field, length-delimited data converted to UTF-8 text. + */ + string() { + return this.textDecoder.decode(this.bytes()); + } + }; + exports2.BinaryReader = BinaryReader; } - return prev[b.length] ?? 0; -} -function buildTokens(args) { - let d = args.date ?? /* @__PURE__ */ new Date(), yyyymmdd = [ - d.getUTCFullYear().toString().padStart(4, "0"), - (d.getUTCMonth() + 1).toString().padStart(2, "0"), - d.getUTCDate().toString().padStart(2, "0") - ].join(""); - return { - name: args.name, - version: args.version, - target: args.target, - node: args.node, - os: args.os, - arch: args.arch, - sha: args.sha ?? "", - ref: args.ref ?? "", - date: yyyymmdd, - tag: args.tag ?? "" - }; -} +}); -// packages/core/src/checksum.ts -import { createHash } from "node:crypto"; -import { createReadStream } from "node:fs"; -import { basename as basename3 } from "node:path"; -import { pipeline } from "node:stream/promises"; -var CHECKSUM_ALGORITHMS = ["sha256", "sha512", "md5"]; -async function computeChecksum(filePath, algo) { - let hash = createHash(algo); - try { - await pipeline(createReadStream(filePath, { highWaterMark: 64 * 1024 }), hash); - } catch (err) { - throw new ChecksumError(`Failed to hash ${filePath} with ${algo}`, { cause: err }); +// node_modules/@protobuf-ts/runtime/build/commonjs/assert.js +var require_assert = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/assert.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.assertFloat32 = exports2.assertUInt32 = exports2.assertInt32 = exports2.assertNever = exports2.assert = void 0; + function assert4(condition, msg) { + if (!condition) + throw new Error(msg); + } + exports2.assert = assert4; + function assertNever(value, msg) { + throw new Error(msg ?? "Unexpected object: " + value); + } + exports2.assertNever = assertNever; + var FLOAT32_MAX = 34028234663852886e22, FLOAT32_MIN = -34028234663852886e22, UINT32_MAX = 4294967295, INT32_MAX = 2147483647, INT32_MIN = -2147483648; + function assertInt32(arg) { + if (typeof arg != "number") + throw new Error("invalid int 32: " + typeof arg); + if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN) + throw new Error("invalid int 32: " + arg); + } + exports2.assertInt32 = assertInt32; + function assertUInt32(arg) { + if (typeof arg != "number") + throw new Error("invalid uint 32: " + typeof arg); + if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0) + throw new Error("invalid uint 32: " + arg); + } + exports2.assertUInt32 = assertUInt32; + function assertFloat32(arg) { + if (typeof arg != "number") + throw new Error("invalid float 32: " + typeof arg); + if (Number.isFinite(arg) && (arg > FLOAT32_MAX || arg < FLOAT32_MIN)) + throw new Error("invalid float 32: " + arg); + } + exports2.assertFloat32 = assertFloat32; } - return hash.digest("hex"); -} -async function writeShasumsFile(outPath, entries) { - if (entries.length === 0) - throw new ChecksumError(`Cannot write empty SHASUMS file to ${outPath}`); - let body = [...entries].sort((a, b) => a.path.localeCompare(b.path)).map((e) => `${e.digest} ${basename3(e.path)}`).join(` -`) + ` -`; - await atomicWriteFile(outPath, body); -} -async function writeSidecar(binaryPath, digest, algo) { - let sidecar = `${binaryPath}.${algo}`, body = `${digest} ${basename3(binaryPath)} -`; - return await atomicWriteFile(sidecar, body), sidecar; -} -async function computeAllChecksums(filePath, algos) { - let entries = await Promise.all( - algos.map(async (a) => [a, await computeChecksum(filePath, a)]) - ), result = {}; - for (let [a, d] of entries) result[a] = d; - return result; -} +}); -// packages/core/src/inputs.ts -var INPUT_SPECS = [ - // Build configuration (§5.1) - { - name: "config", +// node_modules/@protobuf-ts/runtime/build/commonjs/binary-writer.js +var require_binary_writer = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/binary-writer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.BinaryWriter = exports2.binaryWriteOptions = void 0; + var pb_long_1 = require_pb_long(), goog_varint_1 = require_goog_varint(), assert_1 = require_assert(), defaultsWrite = { + writeUnknownFields: !0, + writerFactory: () => new BinaryWriter() + }; + function binaryWriteOptions(options) { + return options ? Object.assign(Object.assign({}, defaultsWrite), options) : defaultsWrite; + } + exports2.binaryWriteOptions = binaryWriteOptions; + var BinaryWriter = class { + constructor(textEncoder) { + this.stack = [], this.textEncoder = textEncoder ?? new TextEncoder(), this.chunks = [], this.buf = []; + } + /** + * Return all bytes written and reset this writer. + */ + finish() { + this.chunks.push(new Uint8Array(this.buf)); + let len = 0; + for (let i = 0; i < this.chunks.length; i++) + len += this.chunks[i].length; + let bytes = new Uint8Array(len), offset = 0; + for (let i = 0; i < this.chunks.length; i++) + bytes.set(this.chunks[i], offset), offset += this.chunks[i].length; + return this.chunks = [], bytes; + } + /** + * Start a new fork for length-delimited data like a message + * or a packed repeated field. + * + * Must be joined later with `join()`. + */ + fork() { + return this.stack.push({ chunks: this.chunks, buf: this.buf }), this.chunks = [], this.buf = [], this; + } + /** + * Join the last fork. Write its length and bytes, then + * return to the previous state. + */ + join() { + let chunk = this.finish(), prev = this.stack.pop(); + if (!prev) + throw new Error("invalid state, fork stack empty"); + return this.chunks = prev.chunks, this.buf = prev.buf, this.uint32(chunk.byteLength), this.raw(chunk); + } + /** + * Writes a tag (field number and wire type). + * + * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`. + * + * Generated code should compute the tag ahead of time and call `uint32()`. + */ + tag(fieldNo, type) { + return this.uint32((fieldNo << 3 | type) >>> 0); + } + /** + * Write a chunk of raw bytes. + */ + raw(chunk) { + return this.buf.length && (this.chunks.push(new Uint8Array(this.buf)), this.buf = []), this.chunks.push(chunk), this; + } + /** + * Write a `uint32` value, an unsigned 32 bit varint. + */ + uint32(value) { + for (assert_1.assertUInt32(value); value > 127; ) + this.buf.push(value & 127 | 128), value = value >>> 7; + return this.buf.push(value), this; + } + /** + * Write a `int32` value, a signed 32 bit varint. + */ + int32(value) { + return assert_1.assertInt32(value), goog_varint_1.varint32write(value, this.buf), this; + } + /** + * Write a `bool` value, a variant. + */ + bool(value) { + return this.buf.push(value ? 1 : 0), this; + } + /** + * Write a `bytes` value, length-delimited arbitrary data. + */ + bytes(value) { + return this.uint32(value.byteLength), this.raw(value); + } + /** + * Write a `string` value, length-delimited data converted to UTF-8 text. + */ + string(value) { + let chunk = this.textEncoder.encode(value); + return this.uint32(chunk.byteLength), this.raw(chunk); + } + /** + * Write a `float` value, 32-bit floating point number. + */ + float(value) { + assert_1.assertFloat32(value); + let chunk = new Uint8Array(4); + return new DataView(chunk.buffer).setFloat32(0, value, !0), this.raw(chunk); + } + /** + * Write a `double` value, a 64-bit floating point number. + */ + double(value) { + let chunk = new Uint8Array(8); + return new DataView(chunk.buffer).setFloat64(0, value, !0), this.raw(chunk); + } + /** + * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer. + */ + fixed32(value) { + assert_1.assertUInt32(value); + let chunk = new Uint8Array(4); + return new DataView(chunk.buffer).setUint32(0, value, !0), this.raw(chunk); + } + /** + * Write a `sfixed32` value, a signed, fixed-length 32-bit integer. + */ + sfixed32(value) { + assert_1.assertInt32(value); + let chunk = new Uint8Array(4); + return new DataView(chunk.buffer).setInt32(0, value, !0), this.raw(chunk); + } + /** + * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint. + */ + sint32(value) { + return assert_1.assertInt32(value), value = (value << 1 ^ value >> 31) >>> 0, goog_varint_1.varint32write(value, this.buf), this; + } + /** + * Write a `fixed64` value, a signed, fixed-length 64-bit integer. + */ + sfixed64(value) { + let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), long = pb_long_1.PbLong.from(value); + return view.setInt32(0, long.lo, !0), view.setInt32(4, long.hi, !0), this.raw(chunk); + } + /** + * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer. + */ + fixed64(value) { + let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), long = pb_long_1.PbULong.from(value); + return view.setInt32(0, long.lo, !0), view.setInt32(4, long.hi, !0), this.raw(chunk); + } + /** + * Write a `int64` value, a signed 64-bit varint. + */ + int64(value) { + let long = pb_long_1.PbLong.from(value); + return goog_varint_1.varint64write(long.lo, long.hi, this.buf), this; + } + /** + * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint. + */ + sint64(value) { + let long = pb_long_1.PbLong.from(value), sign = long.hi >> 31, lo = long.lo << 1 ^ sign, hi = (long.hi << 1 | long.lo >>> 31) ^ sign; + return goog_varint_1.varint64write(lo, hi, this.buf), this; + } + /** + * Write a `uint64` value, an unsigned 64-bit varint. + */ + uint64(value) { + let long = pb_long_1.PbULong.from(value); + return goog_varint_1.varint64write(long.lo, long.hi, this.buf), this; + } + }; + exports2.BinaryWriter = BinaryWriter; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/json-format-contract.js +var require_json_format_contract = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/json-format-contract.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.mergeJsonOptions = exports2.jsonWriteOptions = exports2.jsonReadOptions = void 0; + var defaultsWrite = { + emitDefaultValues: !1, + enumAsInteger: !1, + useProtoFieldName: !1, + prettySpaces: 0 + }, defaultsRead = { + ignoreUnknownFields: !1 + }; + function jsonReadOptions(options) { + return options ? Object.assign(Object.assign({}, defaultsRead), options) : defaultsRead; + } + exports2.jsonReadOptions = jsonReadOptions; + function jsonWriteOptions(options) { + return options ? Object.assign(Object.assign({}, defaultsWrite), options) : defaultsWrite; + } + exports2.jsonWriteOptions = jsonWriteOptions; + function mergeJsonOptions(a, b) { + var _a, _b; + let c = Object.assign(Object.assign({}, a), b); + return c.typeRegistry = [...(_a = a?.typeRegistry) !== null && _a !== void 0 ? _a : [], ...(_b = b?.typeRegistry) !== null && _b !== void 0 ? _b : []], c; + } + exports2.mergeJsonOptions = mergeJsonOptions; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/message-type-contract.js +var require_message_type_contract = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/message-type-contract.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.MESSAGE_TYPE = void 0; + exports2.MESSAGE_TYPE = /* @__PURE__ */ Symbol.for("protobuf-ts/message-type"); + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/lower-camel-case.js +var require_lower_camel_case = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/lower-camel-case.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.lowerCamelCase = void 0; + function lowerCamelCase(snakeCase) { + let capNext = !1, sb = []; + for (let i = 0; i < snakeCase.length; i++) { + let next = snakeCase.charAt(i); + next == "_" ? capNext = !0 : /\d/.test(next) ? (sb.push(next), capNext = !0) : capNext ? (sb.push(next.toUpperCase()), capNext = !1) : i == 0 ? sb.push(next.toLowerCase()) : sb.push(next); + } + return sb.join(""); + } + exports2.lowerCamelCase = lowerCamelCase; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-info.js +var require_reflection_info = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-info.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.readMessageOption = exports2.readFieldOption = exports2.readFieldOptions = exports2.normalizeFieldInfo = exports2.RepeatType = exports2.LongType = exports2.ScalarType = void 0; + var lower_camel_case_1 = require_lower_camel_case(), ScalarType; + (function(ScalarType2) { + ScalarType2[ScalarType2.DOUBLE = 1] = "DOUBLE", ScalarType2[ScalarType2.FLOAT = 2] = "FLOAT", ScalarType2[ScalarType2.INT64 = 3] = "INT64", ScalarType2[ScalarType2.UINT64 = 4] = "UINT64", ScalarType2[ScalarType2.INT32 = 5] = "INT32", ScalarType2[ScalarType2.FIXED64 = 6] = "FIXED64", ScalarType2[ScalarType2.FIXED32 = 7] = "FIXED32", ScalarType2[ScalarType2.BOOL = 8] = "BOOL", ScalarType2[ScalarType2.STRING = 9] = "STRING", ScalarType2[ScalarType2.BYTES = 12] = "BYTES", ScalarType2[ScalarType2.UINT32 = 13] = "UINT32", ScalarType2[ScalarType2.SFIXED32 = 15] = "SFIXED32", ScalarType2[ScalarType2.SFIXED64 = 16] = "SFIXED64", ScalarType2[ScalarType2.SINT32 = 17] = "SINT32", ScalarType2[ScalarType2.SINT64 = 18] = "SINT64"; + })(ScalarType = exports2.ScalarType || (exports2.ScalarType = {})); + var LongType; + (function(LongType2) { + LongType2[LongType2.BIGINT = 0] = "BIGINT", LongType2[LongType2.STRING = 1] = "STRING", LongType2[LongType2.NUMBER = 2] = "NUMBER"; + })(LongType = exports2.LongType || (exports2.LongType = {})); + var RepeatType; + (function(RepeatType2) { + RepeatType2[RepeatType2.NO = 0] = "NO", RepeatType2[RepeatType2.PACKED = 1] = "PACKED", RepeatType2[RepeatType2.UNPACKED = 2] = "UNPACKED"; + })(RepeatType = exports2.RepeatType || (exports2.RepeatType = {})); + function normalizeFieldInfo(field) { + var _a, _b, _c, _d; + return field.localName = (_a = field.localName) !== null && _a !== void 0 ? _a : lower_camel_case_1.lowerCamelCase(field.name), field.jsonName = (_b = field.jsonName) !== null && _b !== void 0 ? _b : lower_camel_case_1.lowerCamelCase(field.name), field.repeat = (_c = field.repeat) !== null && _c !== void 0 ? _c : RepeatType.NO, field.opt = (_d = field.opt) !== null && _d !== void 0 ? _d : field.repeat || field.oneof ? !1 : field.kind == "message", field; + } + exports2.normalizeFieldInfo = normalizeFieldInfo; + function readFieldOptions(messageType, fieldName, extensionName, extensionType) { + var _a; + let options = (_a = messageType.fields.find((m, i) => m.localName == fieldName || i == fieldName)) === null || _a === void 0 ? void 0 : _a.options; + return options && options[extensionName] ? extensionType.fromJson(options[extensionName]) : void 0; + } + exports2.readFieldOptions = readFieldOptions; + function readFieldOption(messageType, fieldName, extensionName, extensionType) { + var _a; + let options = (_a = messageType.fields.find((m, i) => m.localName == fieldName || i == fieldName)) === null || _a === void 0 ? void 0 : _a.options; + if (!options) + return; + let optionVal = options[extensionName]; + return optionVal === void 0 ? optionVal : extensionType ? extensionType.fromJson(optionVal) : optionVal; + } + exports2.readFieldOption = readFieldOption; + function readMessageOption(messageType, extensionName, extensionType) { + let optionVal = messageType.options[extensionName]; + return optionVal === void 0 ? optionVal : extensionType ? extensionType.fromJson(optionVal) : optionVal; + } + exports2.readMessageOption = readMessageOption; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/oneof.js +var require_oneof = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/oneof.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.getSelectedOneofValue = exports2.clearOneofValue = exports2.setUnknownOneofValue = exports2.setOneofValue = exports2.getOneofValue = exports2.isOneofGroup = void 0; + function isOneofGroup(any) { + if (typeof any != "object" || any === null || !any.hasOwnProperty("oneofKind")) + return !1; + switch (typeof any.oneofKind) { + case "string": + return any[any.oneofKind] === void 0 ? !1 : Object.keys(any).length == 2; + case "undefined": + return Object.keys(any).length == 1; + default: + return !1; + } + } + exports2.isOneofGroup = isOneofGroup; + function getOneofValue(oneof, kind) { + return oneof[kind]; + } + exports2.getOneofValue = getOneofValue; + function setOneofValue(oneof, kind, value) { + oneof.oneofKind !== void 0 && delete oneof[oneof.oneofKind], oneof.oneofKind = kind, value !== void 0 && (oneof[kind] = value); + } + exports2.setOneofValue = setOneofValue; + function setUnknownOneofValue(oneof, kind, value) { + oneof.oneofKind !== void 0 && delete oneof[oneof.oneofKind], oneof.oneofKind = kind, value !== void 0 && kind !== void 0 && (oneof[kind] = value); + } + exports2.setUnknownOneofValue = setUnknownOneofValue; + function clearOneofValue(oneof) { + oneof.oneofKind !== void 0 && delete oneof[oneof.oneofKind], oneof.oneofKind = void 0; + } + exports2.clearOneofValue = clearOneofValue; + function getSelectedOneofValue(oneof) { + if (oneof.oneofKind !== void 0) + return oneof[oneof.oneofKind]; + } + exports2.getSelectedOneofValue = getSelectedOneofValue; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-type-check.js +var require_reflection_type_check = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-type-check.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.ReflectionTypeCheck = void 0; + var reflection_info_1 = require_reflection_info(), oneof_1 = require_oneof(), ReflectionTypeCheck = class { + constructor(info3) { + var _a; + this.fields = (_a = info3.fields) !== null && _a !== void 0 ? _a : []; + } + prepare() { + if (this.data) + return; + let req = [], known = [], oneofs = []; + for (let field of this.fields) + if (field.oneof) + oneofs.includes(field.oneof) || (oneofs.push(field.oneof), req.push(field.oneof), known.push(field.oneof)); + else + switch (known.push(field.localName), field.kind) { + case "scalar": + case "enum": + (!field.opt || field.repeat) && req.push(field.localName); + break; + case "message": + field.repeat && req.push(field.localName); + break; + case "map": + req.push(field.localName); + break; + } + this.data = { req, known, oneofs: Object.values(oneofs) }; + } + /** + * Is the argument a valid message as specified by the + * reflection information? + * + * Checks all field types recursively. The `depth` + * specifies how deep into the structure the check will be. + * + * With a depth of 0, only the presence of fields + * is checked. + * + * With a depth of 1 or more, the field types are checked. + * + * With a depth of 2 or more, the members of map, repeated + * and message fields are checked. + * + * Message fields will be checked recursively with depth - 1. + * + * The number of map entries / repeated values being checked + * is < depth. + */ + is(message, depth, allowExcessProperties = !1) { + if (depth < 0) + return !0; + if (message == null || typeof message != "object") + return !1; + this.prepare(); + let keys = Object.keys(message), data = this.data; + if (keys.length < data.req.length || data.req.some((n) => !keys.includes(n)) || !allowExcessProperties && keys.some((k) => !data.known.includes(k))) + return !1; + if (depth < 1) + return !0; + for (let name of data.oneofs) { + let group = message[name]; + if (!oneof_1.isOneofGroup(group)) + return !1; + if (group.oneofKind === void 0) + continue; + let field = this.fields.find((f) => f.localName === group.oneofKind); + if (!field || !this.field(group[group.oneofKind], field, allowExcessProperties, depth)) + return !1; + } + for (let field of this.fields) + if (field.oneof === void 0 && !this.field(message[field.localName], field, allowExcessProperties, depth)) + return !1; + return !0; + } + field(arg, field, allowExcessProperties, depth) { + let repeated = field.repeat; + switch (field.kind) { + case "scalar": + return arg === void 0 ? field.opt : repeated ? this.scalars(arg, field.T, depth, field.L) : this.scalar(arg, field.T, field.L); + case "enum": + return arg === void 0 ? field.opt : repeated ? this.scalars(arg, reflection_info_1.ScalarType.INT32, depth) : this.scalar(arg, reflection_info_1.ScalarType.INT32); + case "message": + return arg === void 0 ? !0 : repeated ? this.messages(arg, field.T(), allowExcessProperties, depth) : this.message(arg, field.T(), allowExcessProperties, depth); + case "map": + if (typeof arg != "object" || arg === null) + return !1; + if (depth < 2) + return !0; + if (!this.mapKeys(arg, field.K, depth)) + return !1; + switch (field.V.kind) { + case "scalar": + return this.scalars(Object.values(arg), field.V.T, depth, field.V.L); + case "enum": + return this.scalars(Object.values(arg), reflection_info_1.ScalarType.INT32, depth); + case "message": + return this.messages(Object.values(arg), field.V.T(), allowExcessProperties, depth); + } + break; + } + return !0; + } + message(arg, type, allowExcessProperties, depth) { + return allowExcessProperties ? type.isAssignable(arg, depth) : type.is(arg, depth); + } + messages(arg, type, allowExcessProperties, depth) { + if (!Array.isArray(arg)) + return !1; + if (depth < 2) + return !0; + if (allowExcessProperties) { + for (let i = 0; i < arg.length && i < depth; i++) + if (!type.isAssignable(arg[i], depth - 1)) + return !1; + } else + for (let i = 0; i < arg.length && i < depth; i++) + if (!type.is(arg[i], depth - 1)) + return !1; + return !0; + } + scalar(arg, type, longType) { + let argType = typeof arg; + switch (type) { + case reflection_info_1.ScalarType.UINT64: + case reflection_info_1.ScalarType.FIXED64: + case reflection_info_1.ScalarType.INT64: + case reflection_info_1.ScalarType.SFIXED64: + case reflection_info_1.ScalarType.SINT64: + switch (longType) { + case reflection_info_1.LongType.BIGINT: + return argType == "bigint"; + case reflection_info_1.LongType.NUMBER: + return argType == "number" && !isNaN(arg); + default: + return argType == "string"; + } + case reflection_info_1.ScalarType.BOOL: + return argType == "boolean"; + case reflection_info_1.ScalarType.STRING: + return argType == "string"; + case reflection_info_1.ScalarType.BYTES: + return arg instanceof Uint8Array; + case reflection_info_1.ScalarType.DOUBLE: + case reflection_info_1.ScalarType.FLOAT: + return argType == "number" && !isNaN(arg); + default: + return argType == "number" && Number.isInteger(arg); + } + } + scalars(arg, type, depth, longType) { + if (!Array.isArray(arg)) + return !1; + if (depth < 2) + return !0; + if (Array.isArray(arg)) { + for (let i = 0; i < arg.length && i < depth; i++) + if (!this.scalar(arg[i], type, longType)) + return !1; + } + return !0; + } + mapKeys(map, type, depth) { + let keys = Object.keys(map); + switch (type) { + case reflection_info_1.ScalarType.INT32: + case reflection_info_1.ScalarType.FIXED32: + case reflection_info_1.ScalarType.SFIXED32: + case reflection_info_1.ScalarType.SINT32: + case reflection_info_1.ScalarType.UINT32: + return this.scalars(keys.slice(0, depth).map((k) => parseInt(k)), type, depth); + case reflection_info_1.ScalarType.BOOL: + return this.scalars(keys.slice(0, depth).map((k) => k == "true" ? !0 : k == "false" ? !1 : k), type, depth); + default: + return this.scalars(keys, type, depth, reflection_info_1.LongType.STRING); + } + } + }; + exports2.ReflectionTypeCheck = ReflectionTypeCheck; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-long-convert.js +var require_reflection_long_convert = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-long-convert.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.reflectionLongConvert = void 0; + var reflection_info_1 = require_reflection_info(); + function reflectionLongConvert(long, type) { + switch (type) { + case reflection_info_1.LongType.BIGINT: + return long.toBigInt(); + case reflection_info_1.LongType.NUMBER: + return long.toNumber(); + default: + return long.toString(); + } + } + exports2.reflectionLongConvert = reflectionLongConvert; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-json-reader.js +var require_reflection_json_reader = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-json-reader.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.ReflectionJsonReader = void 0; + var json_typings_1 = require_json_typings(), base64_1 = require_base64(), reflection_info_1 = require_reflection_info(), pb_long_1 = require_pb_long(), assert_1 = require_assert(), reflection_long_convert_1 = require_reflection_long_convert(), ReflectionJsonReader = class { + constructor(info3) { + this.info = info3; + } + prepare() { + var _a; + if (this.fMap === void 0) { + this.fMap = {}; + let fieldsInput = (_a = this.info.fields) !== null && _a !== void 0 ? _a : []; + for (let field of fieldsInput) + this.fMap[field.name] = field, this.fMap[field.jsonName] = field, this.fMap[field.localName] = field; + } + } + // Cannot parse JSON for #. + assert(condition, fieldName, jsonValue) { + if (!condition) { + let what = json_typings_1.typeofJsonValue(jsonValue); + throw (what == "number" || what == "boolean") && (what = jsonValue.toString()), new Error(`Cannot parse JSON ${what} for ${this.info.typeName}#${fieldName}`); + } + } + /** + * Reads a message from canonical JSON format into the target message. + * + * Repeated fields are appended. Map entries are added, overwriting + * existing keys. + * + * If a message field is already present, it will be merged with the + * new data. + */ + read(input, message, options) { + this.prepare(); + let oneofsHandled = []; + for (let [jsonKey, jsonValue] of Object.entries(input)) { + let field = this.fMap[jsonKey]; + if (!field) { + if (!options.ignoreUnknownFields) + throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${jsonKey}`); + continue; + } + let localName = field.localName, target; + if (field.oneof) { + if (jsonValue === null && (field.kind !== "enum" || field.T()[0] !== "google.protobuf.NullValue")) + continue; + if (oneofsHandled.includes(field.oneof)) + throw new Error(`Multiple members of the oneof group "${field.oneof}" of ${this.info.typeName} are present in JSON.`); + oneofsHandled.push(field.oneof), target = message[field.oneof] = { + oneofKind: localName + }; + } else + target = message; + if (field.kind == "map") { + if (jsonValue === null) + continue; + this.assert(json_typings_1.isJsonObject(jsonValue), field.name, jsonValue); + let fieldObj = target[localName]; + for (let [jsonObjKey, jsonObjValue] of Object.entries(jsonValue)) { + this.assert(jsonObjValue !== null, field.name + " map value", null); + let val; + switch (field.V.kind) { + case "message": + val = field.V.T().internalJsonRead(jsonObjValue, options); + break; + case "enum": + if (val = this.enum(field.V.T(), jsonObjValue, field.name, options.ignoreUnknownFields), val === !1) + continue; + break; + case "scalar": + val = this.scalar(jsonObjValue, field.V.T, field.V.L, field.name); + break; + } + this.assert(val !== void 0, field.name + " map value", jsonObjValue); + let key = jsonObjKey; + field.K == reflection_info_1.ScalarType.BOOL && (key = key == "true" ? !0 : key == "false" ? !1 : key), key = this.scalar(key, field.K, reflection_info_1.LongType.STRING, field.name).toString(), fieldObj[key] = val; + } + } else if (field.repeat) { + if (jsonValue === null) + continue; + this.assert(Array.isArray(jsonValue), field.name, jsonValue); + let fieldArr = target[localName]; + for (let jsonItem of jsonValue) { + this.assert(jsonItem !== null, field.name, null); + let val; + switch (field.kind) { + case "message": + val = field.T().internalJsonRead(jsonItem, options); + break; + case "enum": + if (val = this.enum(field.T(), jsonItem, field.name, options.ignoreUnknownFields), val === !1) + continue; + break; + case "scalar": + val = this.scalar(jsonItem, field.T, field.L, field.name); + break; + } + this.assert(val !== void 0, field.name, jsonValue), fieldArr.push(val); + } + } else + switch (field.kind) { + case "message": + if (jsonValue === null && field.T().typeName != "google.protobuf.Value") { + this.assert(field.oneof === void 0, field.name + " (oneof member)", null); + continue; + } + target[localName] = field.T().internalJsonRead(jsonValue, options, target[localName]); + break; + case "enum": + if (jsonValue === null) + continue; + let val = this.enum(field.T(), jsonValue, field.name, options.ignoreUnknownFields); + if (val === !1) + continue; + target[localName] = val; + break; + case "scalar": + if (jsonValue === null) + continue; + target[localName] = this.scalar(jsonValue, field.T, field.L, field.name); + break; + } + } + } + /** + * Returns `false` for unrecognized string representations. + * + * google.protobuf.NullValue accepts only JSON `null` (or the old `"NULL_VALUE"`). + */ + enum(type, json, fieldName, ignoreUnknownFields) { + if (type[0] == "google.protobuf.NullValue" && assert_1.assert(json === null || json === "NULL_VALUE", `Unable to parse field ${this.info.typeName}#${fieldName}, enum ${type[0]} only accepts null.`), json === null) + return 0; + switch (typeof json) { + case "number": + return assert_1.assert(Number.isInteger(json), `Unable to parse field ${this.info.typeName}#${fieldName}, enum can only be integral number, got ${json}.`), json; + case "string": + let localEnumName = json; + type[2] && json.substring(0, type[2].length) === type[2] && (localEnumName = json.substring(type[2].length)); + let enumNumber = type[1][localEnumName]; + return typeof enumNumber > "u" && ignoreUnknownFields ? !1 : (assert_1.assert(typeof enumNumber == "number", `Unable to parse field ${this.info.typeName}#${fieldName}, enum ${type[0]} has no value for "${json}".`), enumNumber); + } + assert_1.assert(!1, `Unable to parse field ${this.info.typeName}#${fieldName}, cannot parse enum value from ${typeof json}".`); + } + scalar(json, type, longType, fieldName) { + let e; + try { + switch (type) { + // float, double: JSON value will be a number or one of the special string values "NaN", "Infinity", and "-Infinity". + // Either numbers or strings are accepted. Exponent notation is also accepted. + case reflection_info_1.ScalarType.DOUBLE: + case reflection_info_1.ScalarType.FLOAT: + if (json === null) + return 0; + if (json === "NaN") + return Number.NaN; + if (json === "Infinity") + return Number.POSITIVE_INFINITY; + if (json === "-Infinity") + return Number.NEGATIVE_INFINITY; + if (json === "") { + e = "empty string"; + break; + } + if (typeof json == "string" && json.trim().length !== json.length) { + e = "extra whitespace"; + break; + } + if (typeof json != "string" && typeof json != "number") + break; + let float = Number(json); + if (Number.isNaN(float)) { + e = "not a number"; + break; + } + if (!Number.isFinite(float)) { + e = "too large or small"; + break; + } + return type == reflection_info_1.ScalarType.FLOAT && assert_1.assertFloat32(float), float; + // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted. + case reflection_info_1.ScalarType.INT32: + case reflection_info_1.ScalarType.FIXED32: + case reflection_info_1.ScalarType.SFIXED32: + case reflection_info_1.ScalarType.SINT32: + case reflection_info_1.ScalarType.UINT32: + if (json === null) + return 0; + let int32; + if (typeof json == "number" ? int32 = json : json === "" ? e = "empty string" : typeof json == "string" && (json.trim().length !== json.length ? e = "extra whitespace" : int32 = Number(json)), int32 === void 0) + break; + return type == reflection_info_1.ScalarType.UINT32 ? assert_1.assertUInt32(int32) : assert_1.assertInt32(int32), int32; + // int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted. + case reflection_info_1.ScalarType.INT64: + case reflection_info_1.ScalarType.SFIXED64: + case reflection_info_1.ScalarType.SINT64: + if (json === null) + return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbLong.ZERO, longType); + if (typeof json != "number" && typeof json != "string") + break; + return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbLong.from(json), longType); + case reflection_info_1.ScalarType.FIXED64: + case reflection_info_1.ScalarType.UINT64: + if (json === null) + return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbULong.ZERO, longType); + if (typeof json != "number" && typeof json != "string") + break; + return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbULong.from(json), longType); + // bool: + case reflection_info_1.ScalarType.BOOL: + if (json === null) + return !1; + if (typeof json != "boolean") + break; + return json; + // string: + case reflection_info_1.ScalarType.STRING: + if (json === null) + return ""; + if (typeof json != "string") { + e = "extra whitespace"; + break; + } + try { + encodeURIComponent(json); + } catch (e2) { + e2 = "invalid UTF8"; + break; + } + return json; + // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings. + // Either standard or URL-safe base64 encoding with/without paddings are accepted. + case reflection_info_1.ScalarType.BYTES: + if (json === null || json === "") + return new Uint8Array(0); + if (typeof json != "string") + break; + return base64_1.base64decode(json); + } + } catch (error3) { + e = error3.message; + } + this.assert(!1, fieldName + (e ? " - " + e : ""), json); + } + }; + exports2.ReflectionJsonReader = ReflectionJsonReader; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-json-writer.js +var require_reflection_json_writer = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-json-writer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.ReflectionJsonWriter = void 0; + var base64_1 = require_base64(), pb_long_1 = require_pb_long(), reflection_info_1 = require_reflection_info(), assert_1 = require_assert(), ReflectionJsonWriter = class { + constructor(info3) { + var _a; + this.fields = (_a = info3.fields) !== null && _a !== void 0 ? _a : []; + } + /** + * Converts the message to a JSON object, based on the field descriptors. + */ + write(message, options) { + let json = {}, source = message; + for (let field of this.fields) { + if (!field.oneof) { + let jsonValue2 = this.field(field, source[field.localName], options); + jsonValue2 !== void 0 && (json[options.useProtoFieldName ? field.name : field.jsonName] = jsonValue2); + continue; + } + let group = source[field.oneof]; + if (group.oneofKind !== field.localName) + continue; + let opt = field.kind == "scalar" || field.kind == "enum" ? Object.assign(Object.assign({}, options), { emitDefaultValues: !0 }) : options, jsonValue = this.field(field, group[field.localName], opt); + assert_1.assert(jsonValue !== void 0), json[options.useProtoFieldName ? field.name : field.jsonName] = jsonValue; + } + return json; + } + field(field, value, options) { + let jsonValue; + if (field.kind == "map") { + assert_1.assert(typeof value == "object" && value !== null); + let jsonObj = {}; + switch (field.V.kind) { + case "scalar": + for (let [entryKey, entryValue] of Object.entries(value)) { + let val = this.scalar(field.V.T, entryValue, field.name, !1, !0); + assert_1.assert(val !== void 0), jsonObj[entryKey.toString()] = val; + } + break; + case "message": + let messageType = field.V.T(); + for (let [entryKey, entryValue] of Object.entries(value)) { + let val = this.message(messageType, entryValue, field.name, options); + assert_1.assert(val !== void 0), jsonObj[entryKey.toString()] = val; + } + break; + case "enum": + let enumInfo = field.V.T(); + for (let [entryKey, entryValue] of Object.entries(value)) { + assert_1.assert(entryValue === void 0 || typeof entryValue == "number"); + let val = this.enum(enumInfo, entryValue, field.name, !1, !0, options.enumAsInteger); + assert_1.assert(val !== void 0), jsonObj[entryKey.toString()] = val; + } + break; + } + (options.emitDefaultValues || Object.keys(jsonObj).length > 0) && (jsonValue = jsonObj); + } else if (field.repeat) { + assert_1.assert(Array.isArray(value)); + let jsonArr = []; + switch (field.kind) { + case "scalar": + for (let i = 0; i < value.length; i++) { + let val = this.scalar(field.T, value[i], field.name, field.opt, !0); + assert_1.assert(val !== void 0), jsonArr.push(val); + } + break; + case "enum": + let enumInfo = field.T(); + for (let i = 0; i < value.length; i++) { + assert_1.assert(value[i] === void 0 || typeof value[i] == "number"); + let val = this.enum(enumInfo, value[i], field.name, field.opt, !0, options.enumAsInteger); + assert_1.assert(val !== void 0), jsonArr.push(val); + } + break; + case "message": + let messageType = field.T(); + for (let i = 0; i < value.length; i++) { + let val = this.message(messageType, value[i], field.name, options); + assert_1.assert(val !== void 0), jsonArr.push(val); + } + break; + } + (options.emitDefaultValues || jsonArr.length > 0 || options.emitDefaultValues) && (jsonValue = jsonArr); + } else + switch (field.kind) { + case "scalar": + jsonValue = this.scalar(field.T, value, field.name, field.opt, options.emitDefaultValues); + break; + case "enum": + jsonValue = this.enum(field.T(), value, field.name, field.opt, options.emitDefaultValues, options.enumAsInteger); + break; + case "message": + jsonValue = this.message(field.T(), value, field.name, options); + break; + } + return jsonValue; + } + /** + * Returns `null` as the default for google.protobuf.NullValue. + */ + enum(type, value, fieldName, optional, emitDefaultValues, enumAsInteger) { + if (type[0] == "google.protobuf.NullValue") + return !emitDefaultValues && !optional ? void 0 : null; + if (value === void 0) { + assert_1.assert(optional); + return; + } + if (!(value === 0 && !emitDefaultValues && !optional)) + return assert_1.assert(typeof value == "number"), assert_1.assert(Number.isInteger(value)), enumAsInteger || !type[1].hasOwnProperty(value) ? value : type[2] ? type[2] + type[1][value] : type[1][value]; + } + message(type, value, fieldName, options) { + return value === void 0 ? options.emitDefaultValues ? null : void 0 : type.internalJsonWrite(value, options); + } + scalar(type, value, fieldName, optional, emitDefaultValues) { + if (value === void 0) { + assert_1.assert(optional); + return; + } + let ed = emitDefaultValues || optional; + switch (type) { + // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted. + case reflection_info_1.ScalarType.INT32: + case reflection_info_1.ScalarType.SFIXED32: + case reflection_info_1.ScalarType.SINT32: + return value === 0 ? ed ? 0 : void 0 : (assert_1.assertInt32(value), value); + case reflection_info_1.ScalarType.FIXED32: + case reflection_info_1.ScalarType.UINT32: + return value === 0 ? ed ? 0 : void 0 : (assert_1.assertUInt32(value), value); + // float, double: JSON value will be a number or one of the special string values "NaN", "Infinity", and "-Infinity". + // Either numbers or strings are accepted. Exponent notation is also accepted. + case reflection_info_1.ScalarType.FLOAT: + assert_1.assertFloat32(value); + case reflection_info_1.ScalarType.DOUBLE: + return value === 0 ? ed ? 0 : void 0 : (assert_1.assert(typeof value == "number"), Number.isNaN(value) ? "NaN" : value === Number.POSITIVE_INFINITY ? "Infinity" : value === Number.NEGATIVE_INFINITY ? "-Infinity" : value); + // string: + case reflection_info_1.ScalarType.STRING: + return value === "" ? ed ? "" : void 0 : (assert_1.assert(typeof value == "string"), value); + // bool: + case reflection_info_1.ScalarType.BOOL: + return value === !1 ? ed ? !1 : void 0 : (assert_1.assert(typeof value == "boolean"), value); + // JSON value will be a decimal string. Either numbers or strings are accepted. + case reflection_info_1.ScalarType.UINT64: + case reflection_info_1.ScalarType.FIXED64: + assert_1.assert(typeof value == "number" || typeof value == "string" || typeof value == "bigint"); + let ulong = pb_long_1.PbULong.from(value); + return ulong.isZero() && !ed ? void 0 : ulong.toString(); + // JSON value will be a decimal string. Either numbers or strings are accepted. + case reflection_info_1.ScalarType.INT64: + case reflection_info_1.ScalarType.SFIXED64: + case reflection_info_1.ScalarType.SINT64: + assert_1.assert(typeof value == "number" || typeof value == "string" || typeof value == "bigint"); + let long = pb_long_1.PbLong.from(value); + return long.isZero() && !ed ? void 0 : long.toString(); + // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings. + // Either standard or URL-safe base64 encoding with/without paddings are accepted. + case reflection_info_1.ScalarType.BYTES: + return assert_1.assert(value instanceof Uint8Array), value.byteLength ? base64_1.base64encode(value) : ed ? "" : void 0; + } + } + }; + exports2.ReflectionJsonWriter = ReflectionJsonWriter; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-scalar-default.js +var require_reflection_scalar_default = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-scalar-default.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.reflectionScalarDefault = void 0; + var reflection_info_1 = require_reflection_info(), reflection_long_convert_1 = require_reflection_long_convert(), pb_long_1 = require_pb_long(); + function reflectionScalarDefault(type, longType = reflection_info_1.LongType.STRING) { + switch (type) { + case reflection_info_1.ScalarType.BOOL: + return !1; + case reflection_info_1.ScalarType.UINT64: + case reflection_info_1.ScalarType.FIXED64: + return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbULong.ZERO, longType); + case reflection_info_1.ScalarType.INT64: + case reflection_info_1.ScalarType.SFIXED64: + case reflection_info_1.ScalarType.SINT64: + return reflection_long_convert_1.reflectionLongConvert(pb_long_1.PbLong.ZERO, longType); + case reflection_info_1.ScalarType.DOUBLE: + case reflection_info_1.ScalarType.FLOAT: + return 0; + case reflection_info_1.ScalarType.BYTES: + return new Uint8Array(0); + case reflection_info_1.ScalarType.STRING: + return ""; + default: + return 0; + } + } + exports2.reflectionScalarDefault = reflectionScalarDefault; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-binary-reader.js +var require_reflection_binary_reader = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-binary-reader.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.ReflectionBinaryReader = void 0; + var binary_format_contract_1 = require_binary_format_contract(), reflection_info_1 = require_reflection_info(), reflection_long_convert_1 = require_reflection_long_convert(), reflection_scalar_default_1 = require_reflection_scalar_default(), ReflectionBinaryReader = class { + constructor(info3) { + this.info = info3; + } + prepare() { + var _a; + if (!this.fieldNoToField) { + let fieldsInput = (_a = this.info.fields) !== null && _a !== void 0 ? _a : []; + this.fieldNoToField = new Map(fieldsInput.map((field) => [field.no, field])); + } + } + /** + * Reads a message from binary format into the target message. + * + * Repeated fields are appended. Map entries are added, overwriting + * existing keys. + * + * If a message field is already present, it will be merged with the + * new data. + */ + read(reader, message, options, length) { + this.prepare(); + let end = length === void 0 ? reader.len : reader.pos + length; + for (; reader.pos < end; ) { + let [fieldNo, wireType] = reader.tag(), field = this.fieldNoToField.get(fieldNo); + if (!field) { + let u = options.readUnknownField; + if (u == "throw") + throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.info.typeName}`); + let d = reader.skip(wireType); + u !== !1 && (u === !0 ? binary_format_contract_1.UnknownFieldHandler.onRead : u)(this.info.typeName, message, fieldNo, wireType, d); + continue; + } + let target = message, repeated = field.repeat, localName = field.localName; + switch (field.oneof && (target = target[field.oneof], target.oneofKind !== localName && (target = message[field.oneof] = { + oneofKind: localName + })), field.kind) { + case "scalar": + case "enum": + let T = field.kind == "enum" ? reflection_info_1.ScalarType.INT32 : field.T, L = field.kind == "scalar" ? field.L : void 0; + if (repeated) { + let arr = target[localName]; + if (wireType == binary_format_contract_1.WireType.LengthDelimited && T != reflection_info_1.ScalarType.STRING && T != reflection_info_1.ScalarType.BYTES) { + let e = reader.uint32() + reader.pos; + for (; reader.pos < e; ) + arr.push(this.scalar(reader, T, L)); + } else + arr.push(this.scalar(reader, T, L)); + } else + target[localName] = this.scalar(reader, T, L); + break; + case "message": + if (repeated) { + let arr = target[localName], msg = field.T().internalBinaryRead(reader, reader.uint32(), options); + arr.push(msg); + } else + target[localName] = field.T().internalBinaryRead(reader, reader.uint32(), options, target[localName]); + break; + case "map": + let [mapKey, mapVal] = this.mapEntry(field, reader, options); + target[localName][mapKey] = mapVal; + break; + } + } + } + /** + * Read a map field, expecting key field = 1, value field = 2 + */ + mapEntry(field, reader, options) { + let length = reader.uint32(), end = reader.pos + length, key, val; + for (; reader.pos < end; ) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case 1: + field.K == reflection_info_1.ScalarType.BOOL ? key = reader.bool().toString() : key = this.scalar(reader, field.K, reflection_info_1.LongType.STRING); + break; + case 2: + switch (field.V.kind) { + case "scalar": + val = this.scalar(reader, field.V.T, field.V.L); + break; + case "enum": + val = reader.int32(); + break; + case "message": + val = field.V.T().internalBinaryRead(reader, reader.uint32(), options); + break; + } + break; + default: + throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) in map entry for ${this.info.typeName}#${field.name}`); + } + } + if (key === void 0) { + let keyRaw = reflection_scalar_default_1.reflectionScalarDefault(field.K); + key = field.K == reflection_info_1.ScalarType.BOOL ? keyRaw.toString() : keyRaw; + } + if (val === void 0) + switch (field.V.kind) { + case "scalar": + val = reflection_scalar_default_1.reflectionScalarDefault(field.V.T, field.V.L); + break; + case "enum": + val = 0; + break; + case "message": + val = field.V.T().create(); + break; + } + return [key, val]; + } + scalar(reader, type, longType) { + switch (type) { + case reflection_info_1.ScalarType.INT32: + return reader.int32(); + case reflection_info_1.ScalarType.STRING: + return reader.string(); + case reflection_info_1.ScalarType.BOOL: + return reader.bool(); + case reflection_info_1.ScalarType.DOUBLE: + return reader.double(); + case reflection_info_1.ScalarType.FLOAT: + return reader.float(); + case reflection_info_1.ScalarType.INT64: + return reflection_long_convert_1.reflectionLongConvert(reader.int64(), longType); + case reflection_info_1.ScalarType.UINT64: + return reflection_long_convert_1.reflectionLongConvert(reader.uint64(), longType); + case reflection_info_1.ScalarType.FIXED64: + return reflection_long_convert_1.reflectionLongConvert(reader.fixed64(), longType); + case reflection_info_1.ScalarType.FIXED32: + return reader.fixed32(); + case reflection_info_1.ScalarType.BYTES: + return reader.bytes(); + case reflection_info_1.ScalarType.UINT32: + return reader.uint32(); + case reflection_info_1.ScalarType.SFIXED32: + return reader.sfixed32(); + case reflection_info_1.ScalarType.SFIXED64: + return reflection_long_convert_1.reflectionLongConvert(reader.sfixed64(), longType); + case reflection_info_1.ScalarType.SINT32: + return reader.sint32(); + case reflection_info_1.ScalarType.SINT64: + return reflection_long_convert_1.reflectionLongConvert(reader.sint64(), longType); + } + } + }; + exports2.ReflectionBinaryReader = ReflectionBinaryReader; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-binary-writer.js +var require_reflection_binary_writer = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-binary-writer.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.ReflectionBinaryWriter = void 0; + var binary_format_contract_1 = require_binary_format_contract(), reflection_info_1 = require_reflection_info(), assert_1 = require_assert(), pb_long_1 = require_pb_long(), ReflectionBinaryWriter = class { + constructor(info3) { + this.info = info3; + } + prepare() { + if (!this.fields) { + let fieldsInput = this.info.fields ? this.info.fields.concat() : []; + this.fields = fieldsInput.sort((a, b) => a.no - b.no); + } + } + /** + * Writes the message to binary format. + */ + write(message, writer, options) { + this.prepare(); + for (let field of this.fields) { + let value, emitDefault, repeated = field.repeat, localName = field.localName; + if (field.oneof) { + let group = message[field.oneof]; + if (group.oneofKind !== localName) + continue; + value = group[localName], emitDefault = !0; + } else + value = message[localName], emitDefault = !1; + switch (field.kind) { + case "scalar": + case "enum": + let T = field.kind == "enum" ? reflection_info_1.ScalarType.INT32 : field.T; + if (repeated) + if (assert_1.assert(Array.isArray(value)), repeated == reflection_info_1.RepeatType.PACKED) + this.packed(writer, T, field.no, value); + else + for (let item of value) + this.scalar(writer, T, field.no, item, !0); + else value === void 0 ? assert_1.assert(field.opt) : this.scalar(writer, T, field.no, value, emitDefault || field.opt); + break; + case "message": + if (repeated) { + assert_1.assert(Array.isArray(value)); + for (let item of value) + this.message(writer, options, field.T(), field.no, item); + } else + this.message(writer, options, field.T(), field.no, value); + break; + case "map": + assert_1.assert(typeof value == "object" && value !== null); + for (let [key, val] of Object.entries(value)) + this.mapEntry(writer, options, field, key, val); + break; + } + } + let u = options.writeUnknownFields; + u !== !1 && (u === !0 ? binary_format_contract_1.UnknownFieldHandler.onWrite : u)(this.info.typeName, message, writer); + } + mapEntry(writer, options, field, key, value) { + writer.tag(field.no, binary_format_contract_1.WireType.LengthDelimited), writer.fork(); + let keyValue = key; + switch (field.K) { + case reflection_info_1.ScalarType.INT32: + case reflection_info_1.ScalarType.FIXED32: + case reflection_info_1.ScalarType.UINT32: + case reflection_info_1.ScalarType.SFIXED32: + case reflection_info_1.ScalarType.SINT32: + keyValue = Number.parseInt(key); + break; + case reflection_info_1.ScalarType.BOOL: + assert_1.assert(key == "true" || key == "false"), keyValue = key == "true"; + break; + } + switch (this.scalar(writer, field.K, 1, keyValue, !0), field.V.kind) { + case "scalar": + this.scalar(writer, field.V.T, 2, value, !0); + break; + case "enum": + this.scalar(writer, reflection_info_1.ScalarType.INT32, 2, value, !0); + break; + case "message": + this.message(writer, options, field.V.T(), 2, value); + break; + } + writer.join(); + } + message(writer, options, handler, fieldNo, value) { + value !== void 0 && (handler.internalBinaryWrite(value, writer.tag(fieldNo, binary_format_contract_1.WireType.LengthDelimited).fork(), options), writer.join()); + } + /** + * Write a single scalar value. + */ + scalar(writer, type, fieldNo, value, emitDefault) { + let [wireType, method, isDefault] = this.scalarInfo(type, value); + (!isDefault || emitDefault) && (writer.tag(fieldNo, wireType), writer[method](value)); + } + /** + * Write an array of scalar values in packed format. + */ + packed(writer, type, fieldNo, value) { + if (!value.length) + return; + assert_1.assert(type !== reflection_info_1.ScalarType.BYTES && type !== reflection_info_1.ScalarType.STRING), writer.tag(fieldNo, binary_format_contract_1.WireType.LengthDelimited), writer.fork(); + let [, method] = this.scalarInfo(type); + for (let i = 0; i < value.length; i++) + writer[method](value[i]); + writer.join(); + } + /** + * Get information for writing a scalar value. + * + * Returns tuple: + * [0]: appropriate WireType + * [1]: name of the appropriate method of IBinaryWriter + * [2]: whether the given value is a default value + * + * If argument `value` is omitted, [2] is always false. + */ + scalarInfo(type, value) { + let t = binary_format_contract_1.WireType.Varint, m, i = value === void 0, d = value === 0; + switch (type) { + case reflection_info_1.ScalarType.INT32: + m = "int32"; + break; + case reflection_info_1.ScalarType.STRING: + d = i || !value.length, t = binary_format_contract_1.WireType.LengthDelimited, m = "string"; + break; + case reflection_info_1.ScalarType.BOOL: + d = value === !1, m = "bool"; + break; + case reflection_info_1.ScalarType.UINT32: + m = "uint32"; + break; + case reflection_info_1.ScalarType.DOUBLE: + t = binary_format_contract_1.WireType.Bit64, m = "double"; + break; + case reflection_info_1.ScalarType.FLOAT: + t = binary_format_contract_1.WireType.Bit32, m = "float"; + break; + case reflection_info_1.ScalarType.INT64: + d = i || pb_long_1.PbLong.from(value).isZero(), m = "int64"; + break; + case reflection_info_1.ScalarType.UINT64: + d = i || pb_long_1.PbULong.from(value).isZero(), m = "uint64"; + break; + case reflection_info_1.ScalarType.FIXED64: + d = i || pb_long_1.PbULong.from(value).isZero(), t = binary_format_contract_1.WireType.Bit64, m = "fixed64"; + break; + case reflection_info_1.ScalarType.BYTES: + d = i || !value.byteLength, t = binary_format_contract_1.WireType.LengthDelimited, m = "bytes"; + break; + case reflection_info_1.ScalarType.FIXED32: + t = binary_format_contract_1.WireType.Bit32, m = "fixed32"; + break; + case reflection_info_1.ScalarType.SFIXED32: + t = binary_format_contract_1.WireType.Bit32, m = "sfixed32"; + break; + case reflection_info_1.ScalarType.SFIXED64: + d = i || pb_long_1.PbLong.from(value).isZero(), t = binary_format_contract_1.WireType.Bit64, m = "sfixed64"; + break; + case reflection_info_1.ScalarType.SINT32: + m = "sint32"; + break; + case reflection_info_1.ScalarType.SINT64: + d = i || pb_long_1.PbLong.from(value).isZero(), m = "sint64"; + break; + } + return [t, m, i || d]; + } + }; + exports2.ReflectionBinaryWriter = ReflectionBinaryWriter; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-create.js +var require_reflection_create = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-create.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.reflectionCreate = void 0; + var reflection_scalar_default_1 = require_reflection_scalar_default(), message_type_contract_1 = require_message_type_contract(); + function reflectionCreate(type) { + let msg = type.messagePrototype ? Object.create(type.messagePrototype) : Object.defineProperty({}, message_type_contract_1.MESSAGE_TYPE, { value: type }); + for (let field of type.fields) { + let name = field.localName; + if (!field.opt) + if (field.oneof) + msg[field.oneof] = { oneofKind: void 0 }; + else if (field.repeat) + msg[name] = []; + else + switch (field.kind) { + case "scalar": + msg[name] = reflection_scalar_default_1.reflectionScalarDefault(field.T, field.L); + break; + case "enum": + msg[name] = 0; + break; + case "map": + msg[name] = {}; + break; + } + } + return msg; + } + exports2.reflectionCreate = reflectionCreate; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-merge-partial.js +var require_reflection_merge_partial = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-merge-partial.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.reflectionMergePartial = void 0; + function reflectionMergePartial4(info3, target, source) { + let fieldValue, input = source, output; + for (let field of info3.fields) { + let name = field.localName; + if (field.oneof) { + let group = input[field.oneof]; + if (group?.oneofKind == null) + continue; + if (fieldValue = group[name], output = target[field.oneof], output.oneofKind = group.oneofKind, fieldValue == null) { + delete output[name]; + continue; + } + } else if (fieldValue = input[name], output = target, fieldValue == null) + continue; + switch (field.repeat && (output[name].length = fieldValue.length), field.kind) { + case "scalar": + case "enum": + if (field.repeat) + for (let i = 0; i < fieldValue.length; i++) + output[name][i] = fieldValue[i]; + else + output[name] = fieldValue; + break; + case "message": + let T = field.T(); + if (field.repeat) + for (let i = 0; i < fieldValue.length; i++) + output[name][i] = T.create(fieldValue[i]); + else output[name] === void 0 ? output[name] = T.create(fieldValue) : T.mergePartial(output[name], fieldValue); + break; + case "map": + switch (field.V.kind) { + case "scalar": + case "enum": + Object.assign(output[name], fieldValue); + break; + case "message": + let T2 = field.V.T(); + for (let k of Object.keys(fieldValue)) + output[name][k] = T2.create(fieldValue[k]); + break; + } + break; + } + } + } + exports2.reflectionMergePartial = reflectionMergePartial4; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-equals.js +var require_reflection_equals = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-equals.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.reflectionEquals = void 0; + var reflection_info_1 = require_reflection_info(); + function reflectionEquals(info3, a, b) { + if (a === b) + return !0; + if (!a || !b) + return !1; + for (let field of info3.fields) { + let localName = field.localName, val_a = field.oneof ? a[field.oneof][localName] : a[localName], val_b = field.oneof ? b[field.oneof][localName] : b[localName]; + switch (field.kind) { + case "enum": + case "scalar": + let t = field.kind == "enum" ? reflection_info_1.ScalarType.INT32 : field.T; + if (!(field.repeat ? repeatedPrimitiveEq(t, val_a, val_b) : primitiveEq(t, val_a, val_b))) + return !1; + break; + case "map": + if (!(field.V.kind == "message" ? repeatedMsgEq(field.V.T(), objectValues(val_a), objectValues(val_b)) : repeatedPrimitiveEq(field.V.kind == "enum" ? reflection_info_1.ScalarType.INT32 : field.V.T, objectValues(val_a), objectValues(val_b)))) + return !1; + break; + case "message": + let T = field.T(); + if (!(field.repeat ? repeatedMsgEq(T, val_a, val_b) : T.equals(val_a, val_b))) + return !1; + break; + } + } + return !0; + } + exports2.reflectionEquals = reflectionEquals; + var objectValues = Object.values; + function primitiveEq(type, a, b) { + if (a === b) + return !0; + if (type !== reflection_info_1.ScalarType.BYTES) + return !1; + let ba = a, bb = b; + if (ba.length !== bb.length) + return !1; + for (let i = 0; i < ba.length; i++) + if (ba[i] != bb[i]) + return !1; + return !0; + } + function repeatedPrimitiveEq(type, a, b) { + if (a.length !== b.length) + return !1; + for (let i = 0; i < a.length; i++) + if (!primitiveEq(type, a[i], b[i])) + return !1; + return !0; + } + function repeatedMsgEq(type, a, b) { + if (a.length !== b.length) + return !1; + for (let i = 0; i < a.length; i++) + if (!type.equals(a[i], b[i])) + return !1; + return !0; + } + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/message-type.js +var require_message_type = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/message-type.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.MessageType = void 0; + var message_type_contract_1 = require_message_type_contract(), reflection_info_1 = require_reflection_info(), reflection_type_check_1 = require_reflection_type_check(), reflection_json_reader_1 = require_reflection_json_reader(), reflection_json_writer_1 = require_reflection_json_writer(), reflection_binary_reader_1 = require_reflection_binary_reader(), reflection_binary_writer_1 = require_reflection_binary_writer(), reflection_create_1 = require_reflection_create(), reflection_merge_partial_1 = require_reflection_merge_partial(), json_typings_1 = require_json_typings(), json_format_contract_1 = require_json_format_contract(), reflection_equals_1 = require_reflection_equals(), binary_writer_1 = require_binary_writer(), binary_reader_1 = require_binary_reader(), baseDescriptors = Object.getOwnPropertyDescriptors(Object.getPrototypeOf({})), messageTypeDescriptor = baseDescriptors[message_type_contract_1.MESSAGE_TYPE] = {}, MessageType4 = class { + constructor(name, fields, options) { + this.defaultCheckDepth = 16, this.typeName = name, this.fields = fields.map(reflection_info_1.normalizeFieldInfo), this.options = options ?? {}, messageTypeDescriptor.value = this, this.messagePrototype = Object.create(null, baseDescriptors), this.refTypeCheck = new reflection_type_check_1.ReflectionTypeCheck(this), this.refJsonReader = new reflection_json_reader_1.ReflectionJsonReader(this), this.refJsonWriter = new reflection_json_writer_1.ReflectionJsonWriter(this), this.refBinReader = new reflection_binary_reader_1.ReflectionBinaryReader(this), this.refBinWriter = new reflection_binary_writer_1.ReflectionBinaryWriter(this); + } + create(value) { + let message = reflection_create_1.reflectionCreate(this); + return value !== void 0 && reflection_merge_partial_1.reflectionMergePartial(this, message, value), message; + } + /** + * Clone the message. + * + * Unknown fields are discarded. + */ + clone(message) { + let copy = this.create(); + return reflection_merge_partial_1.reflectionMergePartial(this, copy, message), copy; + } + /** + * Determines whether two message of the same type have the same field values. + * Checks for deep equality, traversing repeated fields, oneof groups, maps + * and messages recursively. + * Will also return true if both messages are `undefined`. + */ + equals(a, b) { + return reflection_equals_1.reflectionEquals(this, a, b); + } + /** + * Is the given value assignable to our message type + * and contains no [excess properties](https://www.typescriptlang.org/docs/handbook/interfaces.html#excess-property-checks)? + */ + is(arg, depth = this.defaultCheckDepth) { + return this.refTypeCheck.is(arg, depth, !1); + } + /** + * Is the given value assignable to our message type, + * regardless of [excess properties](https://www.typescriptlang.org/docs/handbook/interfaces.html#excess-property-checks)? + */ + isAssignable(arg, depth = this.defaultCheckDepth) { + return this.refTypeCheck.is(arg, depth, !0); + } + /** + * Copy partial data into the target message. + */ + mergePartial(target, source) { + reflection_merge_partial_1.reflectionMergePartial(this, target, source); + } + /** + * Create a new message from binary format. + */ + fromBinary(data, options) { + let opt = binary_reader_1.binaryReadOptions(options); + return this.internalBinaryRead(opt.readerFactory(data), data.byteLength, opt); + } + /** + * Read a new message from a JSON value. + */ + fromJson(json, options) { + return this.internalJsonRead(json, json_format_contract_1.jsonReadOptions(options)); + } + /** + * Read a new message from a JSON string. + * This is equivalent to `T.fromJson(JSON.parse(json))`. + */ + fromJsonString(json, options) { + let value = JSON.parse(json); + return this.fromJson(value, options); + } + /** + * Write the message to canonical JSON value. + */ + toJson(message, options) { + return this.internalJsonWrite(message, json_format_contract_1.jsonWriteOptions(options)); + } + /** + * Convert the message to canonical JSON string. + * This is equivalent to `JSON.stringify(T.toJson(t))` + */ + toJsonString(message, options) { + var _a; + let value = this.toJson(message, options); + return JSON.stringify(value, null, (_a = options?.prettySpaces) !== null && _a !== void 0 ? _a : 0); + } + /** + * Write the message to binary format. + */ + toBinary(message, options) { + let opt = binary_writer_1.binaryWriteOptions(options); + return this.internalBinaryWrite(message, opt.writerFactory(), opt).finish(); + } + /** + * This is an internal method. If you just want to read a message from + * JSON, use `fromJson()` or `fromJsonString()`. + * + * Reads JSON value and merges the fields into the target + * according to protobuf rules. If the target is omitted, + * a new instance is created first. + */ + internalJsonRead(json, options, target) { + if (json !== null && typeof json == "object" && !Array.isArray(json)) { + let message = target ?? this.create(); + return this.refJsonReader.read(json, message, options), message; + } + throw new Error(`Unable to parse message ${this.typeName} from JSON ${json_typings_1.typeofJsonValue(json)}.`); + } + /** + * This is an internal method. If you just want to write a message + * to JSON, use `toJson()` or `toJsonString(). + * + * Writes JSON value and returns it. + */ + internalJsonWrite(message, options) { + return this.refJsonWriter.write(message, options); + } + /** + * This is an internal method. If you just want to write a message + * in binary format, use `toBinary()`. + * + * Serializes the message in binary format and appends it to the given + * writer. Returns passed writer. + */ + internalBinaryWrite(message, writer, options) { + return this.refBinWriter.write(message, writer, options), writer; + } + /** + * This is an internal method. If you just want to read a message from + * binary data, use `fromBinary()`. + * + * Reads data from binary format and merges the fields into + * the target according to protobuf rules. If the target is + * omitted, a new instance is created first. + */ + internalBinaryRead(reader, length, options, target) { + let message = target ?? this.create(); + return this.refBinReader.read(reader, message, options, length), message; + } + }; + exports2.MessageType = MessageType4; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/reflection-contains-message-type.js +var require_reflection_contains_message_type = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/reflection-contains-message-type.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.containsMessageType = void 0; + var message_type_contract_1 = require_message_type_contract(); + function containsMessageType(msg) { + return msg[message_type_contract_1.MESSAGE_TYPE] != null; + } + exports2.containsMessageType = containsMessageType; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/enum-object.js +var require_enum_object = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/enum-object.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.listEnumNumbers = exports2.listEnumNames = exports2.listEnumValues = exports2.isEnumObject = void 0; + function isEnumObject(arg) { + if (typeof arg != "object" || arg === null || !arg.hasOwnProperty(0)) + return !1; + for (let k of Object.keys(arg)) { + let num = parseInt(k); + if (Number.isNaN(num)) { + let num2 = arg[k]; + if (num2 === void 0 || typeof num2 != "number" || arg[num2] === void 0) + return !1; + } else { + let nam = arg[num]; + if (nam === void 0 || arg[nam] !== num) + return !1; + } + } + return !0; + } + exports2.isEnumObject = isEnumObject; + function listEnumValues(enumObject) { + if (!isEnumObject(enumObject)) + throw new Error("not a typescript enum object"); + let values = []; + for (let [name, number] of Object.entries(enumObject)) + typeof number == "number" && values.push({ name, number }); + return values; + } + exports2.listEnumValues = listEnumValues; + function listEnumNames(enumObject) { + return listEnumValues(enumObject).map((val) => val.name); + } + exports2.listEnumNames = listEnumNames; + function listEnumNumbers(enumObject) { + return listEnumValues(enumObject).map((val) => val.number).filter((num, index, arr) => arr.indexOf(num) == index); + } + exports2.listEnumNumbers = listEnumNumbers; + } +}); + +// node_modules/@protobuf-ts/runtime/build/commonjs/index.js +var require_commonjs = __commonJS({ + "node_modules/@protobuf-ts/runtime/build/commonjs/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + var json_typings_1 = require_json_typings(); + Object.defineProperty(exports2, "typeofJsonValue", { enumerable: !0, get: function() { + return json_typings_1.typeofJsonValue; + } }); + Object.defineProperty(exports2, "isJsonObject", { enumerable: !0, get: function() { + return json_typings_1.isJsonObject; + } }); + var base64_1 = require_base64(); + Object.defineProperty(exports2, "base64decode", { enumerable: !0, get: function() { + return base64_1.base64decode; + } }); + Object.defineProperty(exports2, "base64encode", { enumerable: !0, get: function() { + return base64_1.base64encode; + } }); + var protobufjs_utf8_1 = require_protobufjs_utf8(); + Object.defineProperty(exports2, "utf8read", { enumerable: !0, get: function() { + return protobufjs_utf8_1.utf8read; + } }); + var binary_format_contract_1 = require_binary_format_contract(); + Object.defineProperty(exports2, "WireType", { enumerable: !0, get: function() { + return binary_format_contract_1.WireType; + } }); + Object.defineProperty(exports2, "mergeBinaryOptions", { enumerable: !0, get: function() { + return binary_format_contract_1.mergeBinaryOptions; + } }); + Object.defineProperty(exports2, "UnknownFieldHandler", { enumerable: !0, get: function() { + return binary_format_contract_1.UnknownFieldHandler; + } }); + var binary_reader_1 = require_binary_reader(); + Object.defineProperty(exports2, "BinaryReader", { enumerable: !0, get: function() { + return binary_reader_1.BinaryReader; + } }); + Object.defineProperty(exports2, "binaryReadOptions", { enumerable: !0, get: function() { + return binary_reader_1.binaryReadOptions; + } }); + var binary_writer_1 = require_binary_writer(); + Object.defineProperty(exports2, "BinaryWriter", { enumerable: !0, get: function() { + return binary_writer_1.BinaryWriter; + } }); + Object.defineProperty(exports2, "binaryWriteOptions", { enumerable: !0, get: function() { + return binary_writer_1.binaryWriteOptions; + } }); + var pb_long_1 = require_pb_long(); + Object.defineProperty(exports2, "PbLong", { enumerable: !0, get: function() { + return pb_long_1.PbLong; + } }); + Object.defineProperty(exports2, "PbULong", { enumerable: !0, get: function() { + return pb_long_1.PbULong; + } }); + var json_format_contract_1 = require_json_format_contract(); + Object.defineProperty(exports2, "jsonReadOptions", { enumerable: !0, get: function() { + return json_format_contract_1.jsonReadOptions; + } }); + Object.defineProperty(exports2, "jsonWriteOptions", { enumerable: !0, get: function() { + return json_format_contract_1.jsonWriteOptions; + } }); + Object.defineProperty(exports2, "mergeJsonOptions", { enumerable: !0, get: function() { + return json_format_contract_1.mergeJsonOptions; + } }); + var message_type_contract_1 = require_message_type_contract(); + Object.defineProperty(exports2, "MESSAGE_TYPE", { enumerable: !0, get: function() { + return message_type_contract_1.MESSAGE_TYPE; + } }); + var message_type_1 = require_message_type(); + Object.defineProperty(exports2, "MessageType", { enumerable: !0, get: function() { + return message_type_1.MessageType; + } }); + var reflection_info_1 = require_reflection_info(); + Object.defineProperty(exports2, "ScalarType", { enumerable: !0, get: function() { + return reflection_info_1.ScalarType; + } }); + Object.defineProperty(exports2, "LongType", { enumerable: !0, get: function() { + return reflection_info_1.LongType; + } }); + Object.defineProperty(exports2, "RepeatType", { enumerable: !0, get: function() { + return reflection_info_1.RepeatType; + } }); + Object.defineProperty(exports2, "normalizeFieldInfo", { enumerable: !0, get: function() { + return reflection_info_1.normalizeFieldInfo; + } }); + Object.defineProperty(exports2, "readFieldOptions", { enumerable: !0, get: function() { + return reflection_info_1.readFieldOptions; + } }); + Object.defineProperty(exports2, "readFieldOption", { enumerable: !0, get: function() { + return reflection_info_1.readFieldOption; + } }); + Object.defineProperty(exports2, "readMessageOption", { enumerable: !0, get: function() { + return reflection_info_1.readMessageOption; + } }); + var reflection_type_check_1 = require_reflection_type_check(); + Object.defineProperty(exports2, "ReflectionTypeCheck", { enumerable: !0, get: function() { + return reflection_type_check_1.ReflectionTypeCheck; + } }); + var reflection_create_1 = require_reflection_create(); + Object.defineProperty(exports2, "reflectionCreate", { enumerable: !0, get: function() { + return reflection_create_1.reflectionCreate; + } }); + var reflection_scalar_default_1 = require_reflection_scalar_default(); + Object.defineProperty(exports2, "reflectionScalarDefault", { enumerable: !0, get: function() { + return reflection_scalar_default_1.reflectionScalarDefault; + } }); + var reflection_merge_partial_1 = require_reflection_merge_partial(); + Object.defineProperty(exports2, "reflectionMergePartial", { enumerable: !0, get: function() { + return reflection_merge_partial_1.reflectionMergePartial; + } }); + var reflection_equals_1 = require_reflection_equals(); + Object.defineProperty(exports2, "reflectionEquals", { enumerable: !0, get: function() { + return reflection_equals_1.reflectionEquals; + } }); + var reflection_binary_reader_1 = require_reflection_binary_reader(); + Object.defineProperty(exports2, "ReflectionBinaryReader", { enumerable: !0, get: function() { + return reflection_binary_reader_1.ReflectionBinaryReader; + } }); + var reflection_binary_writer_1 = require_reflection_binary_writer(); + Object.defineProperty(exports2, "ReflectionBinaryWriter", { enumerable: !0, get: function() { + return reflection_binary_writer_1.ReflectionBinaryWriter; + } }); + var reflection_json_reader_1 = require_reflection_json_reader(); + Object.defineProperty(exports2, "ReflectionJsonReader", { enumerable: !0, get: function() { + return reflection_json_reader_1.ReflectionJsonReader; + } }); + var reflection_json_writer_1 = require_reflection_json_writer(); + Object.defineProperty(exports2, "ReflectionJsonWriter", { enumerable: !0, get: function() { + return reflection_json_writer_1.ReflectionJsonWriter; + } }); + var reflection_contains_message_type_1 = require_reflection_contains_message_type(); + Object.defineProperty(exports2, "containsMessageType", { enumerable: !0, get: function() { + return reflection_contains_message_type_1.containsMessageType; + } }); + var oneof_1 = require_oneof(); + Object.defineProperty(exports2, "isOneofGroup", { enumerable: !0, get: function() { + return oneof_1.isOneofGroup; + } }); + Object.defineProperty(exports2, "setOneofValue", { enumerable: !0, get: function() { + return oneof_1.setOneofValue; + } }); + Object.defineProperty(exports2, "getOneofValue", { enumerable: !0, get: function() { + return oneof_1.getOneofValue; + } }); + Object.defineProperty(exports2, "clearOneofValue", { enumerable: !0, get: function() { + return oneof_1.clearOneofValue; + } }); + Object.defineProperty(exports2, "getSelectedOneofValue", { enumerable: !0, get: function() { + return oneof_1.getSelectedOneofValue; + } }); + var enum_object_1 = require_enum_object(); + Object.defineProperty(exports2, "listEnumValues", { enumerable: !0, get: function() { + return enum_object_1.listEnumValues; + } }); + Object.defineProperty(exports2, "listEnumNames", { enumerable: !0, get: function() { + return enum_object_1.listEnumNames; + } }); + Object.defineProperty(exports2, "listEnumNumbers", { enumerable: !0, get: function() { + return enum_object_1.listEnumNumbers; + } }); + Object.defineProperty(exports2, "isEnumObject", { enumerable: !0, get: function() { + return enum_object_1.isEnumObject; + } }); + var lower_camel_case_1 = require_lower_camel_case(); + Object.defineProperty(exports2, "lowerCamelCase", { enumerable: !0, get: function() { + return lower_camel_case_1.lowerCamelCase; + } }); + var assert_1 = require_assert(); + Object.defineProperty(exports2, "assert", { enumerable: !0, get: function() { + return assert_1.assert; + } }); + Object.defineProperty(exports2, "assertNever", { enumerable: !0, get: function() { + return assert_1.assertNever; + } }); + Object.defineProperty(exports2, "assertInt32", { enumerable: !0, get: function() { + return assert_1.assertInt32; + } }); + Object.defineProperty(exports2, "assertUInt32", { enumerable: !0, get: function() { + return assert_1.assertUInt32; + } }); + Object.defineProperty(exports2, "assertFloat32", { enumerable: !0, get: function() { + return assert_1.assertFloat32; + } }); + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/reflection-info.js +var require_reflection_info2 = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/reflection-info.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.readServiceOption = exports2.readMethodOption = exports2.readMethodOptions = exports2.normalizeMethodInfo = void 0; + var runtime_1 = require_commonjs(); + function normalizeMethodInfo(method, service) { + var _a, _b, _c; + let m = method; + return m.service = service, m.localName = (_a = m.localName) !== null && _a !== void 0 ? _a : runtime_1.lowerCamelCase(m.name), m.serverStreaming = !!m.serverStreaming, m.clientStreaming = !!m.clientStreaming, m.options = (_b = m.options) !== null && _b !== void 0 ? _b : {}, m.idempotency = (_c = m.idempotency) !== null && _c !== void 0 ? _c : void 0, m; + } + exports2.normalizeMethodInfo = normalizeMethodInfo; + function readMethodOptions(service, methodName, extensionName, extensionType) { + var _a; + let options = (_a = service.methods.find((m, i) => m.localName === methodName || i === methodName)) === null || _a === void 0 ? void 0 : _a.options; + return options && options[extensionName] ? extensionType.fromJson(options[extensionName]) : void 0; + } + exports2.readMethodOptions = readMethodOptions; + function readMethodOption(service, methodName, extensionName, extensionType) { + var _a; + let options = (_a = service.methods.find((m, i) => m.localName === methodName || i === methodName)) === null || _a === void 0 ? void 0 : _a.options; + if (!options) + return; + let optionVal = options[extensionName]; + return optionVal === void 0 ? optionVal : extensionType ? extensionType.fromJson(optionVal) : optionVal; + } + exports2.readMethodOption = readMethodOption; + function readServiceOption(service, extensionName, extensionType) { + let options = service.options; + if (!options) + return; + let optionVal = options[extensionName]; + return optionVal === void 0 ? optionVal : extensionType ? extensionType.fromJson(optionVal) : optionVal; + } + exports2.readServiceOption = readServiceOption; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/service-type.js +var require_service_type = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/service-type.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.ServiceType = void 0; + var reflection_info_1 = require_reflection_info2(), ServiceType2 = class { + constructor(typeName, methods, options) { + this.typeName = typeName, this.methods = methods.map((i) => reflection_info_1.normalizeMethodInfo(i, this)), this.options = options ?? {}; + } + }; + exports2.ServiceType = ServiceType2; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/rpc-error.js +var require_rpc_error = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/rpc-error.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.RpcError = void 0; + var RpcError = class extends Error { + constructor(message, code = "UNKNOWN", meta) { + super(message), this.name = "RpcError", Object.setPrototypeOf(this, new.target.prototype), this.code = code, this.meta = meta ?? {}; + } + toString() { + let l = [this.name + ": " + this.message]; + this.code && (l.push(""), l.push("Code: " + this.code)), this.serviceName && this.methodName && l.push("Method: " + this.serviceName + "/" + this.methodName); + let m = Object.entries(this.meta); + if (m.length) { + l.push(""), l.push("Meta:"); + for (let [k, v] of m) + l.push(` ${k}: ${v}`); + } + return l.join(` +`); + } + }; + exports2.RpcError = RpcError; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/rpc-options.js +var require_rpc_options = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/rpc-options.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.mergeRpcOptions = void 0; + var runtime_1 = require_commonjs(); + function mergeRpcOptions(defaults, options) { + if (!options) + return defaults; + let o = {}; + copy(defaults, o), copy(options, o); + for (let key of Object.keys(options)) { + let val = options[key]; + switch (key) { + case "jsonOptions": + o.jsonOptions = runtime_1.mergeJsonOptions(defaults.jsonOptions, o.jsonOptions); + break; + case "binaryOptions": + o.binaryOptions = runtime_1.mergeBinaryOptions(defaults.binaryOptions, o.binaryOptions); + break; + case "meta": + o.meta = {}, copy(defaults.meta, o.meta), copy(options.meta, o.meta); + break; + case "interceptors": + o.interceptors = defaults.interceptors ? defaults.interceptors.concat(val) : val.concat(); + break; + } + } + return o; + } + exports2.mergeRpcOptions = mergeRpcOptions; + function copy(a, into) { + if (!a) + return; + let c = into; + for (let [k, v] of Object.entries(a)) + v instanceof Date ? c[k] = new Date(v.getTime()) : Array.isArray(v) ? c[k] = v.concat() : c[k] = v; + } + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/deferred.js +var require_deferred = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/deferred.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.Deferred = exports2.DeferredState = void 0; + var DeferredState; + (function(DeferredState2) { + DeferredState2[DeferredState2.PENDING = 0] = "PENDING", DeferredState2[DeferredState2.REJECTED = 1] = "REJECTED", DeferredState2[DeferredState2.RESOLVED = 2] = "RESOLVED"; + })(DeferredState = exports2.DeferredState || (exports2.DeferredState = {})); + var Deferred = class { + /** + * @param preventUnhandledRejectionWarning - prevents the warning + * "Unhandled Promise rejection" by adding a noop rejection handler. + * Working with calls returned from the runtime-rpc package in an + * async function usually means awaiting one call property after + * the other. This means that the "status" is not being awaited when + * an earlier await for the "headers" is rejected. This causes the + * "unhandled promise reject" warning. A more correct behaviour for + * calls might be to become aware whether at least one of the + * promises is handled and swallow the rejection warning for the + * others. + */ + constructor(preventUnhandledRejectionWarning = !0) { + this._state = DeferredState.PENDING, this._promise = new Promise((resolve2, reject) => { + this._resolve = resolve2, this._reject = reject; + }), preventUnhandledRejectionWarning && this._promise.catch((_) => { + }); + } + /** + * Get the current state of the promise. + */ + get state() { + return this._state; + } + /** + * Get the deferred promise. + */ + get promise() { + return this._promise; + } + /** + * Resolve the promise. Throws if the promise is already resolved or rejected. + */ + resolve(value) { + if (this.state !== DeferredState.PENDING) + throw new Error(`cannot resolve ${DeferredState[this.state].toLowerCase()}`); + this._resolve(value), this._state = DeferredState.RESOLVED; + } + /** + * Reject the promise. Throws if the promise is already resolved or rejected. + */ + reject(reason) { + if (this.state !== DeferredState.PENDING) + throw new Error(`cannot reject ${DeferredState[this.state].toLowerCase()}`); + this._reject(reason), this._state = DeferredState.REJECTED; + } + /** + * Resolve the promise. Ignore if not pending. + */ + resolvePending(val) { + this._state === DeferredState.PENDING && this.resolve(val); + } + /** + * Reject the promise. Ignore if not pending. + */ + rejectPending(reason) { + this._state === DeferredState.PENDING && this.reject(reason); + } + }; + exports2.Deferred = Deferred; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/rpc-output-stream.js +var require_rpc_output_stream = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/rpc-output-stream.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.RpcOutputStreamController = void 0; + var deferred_1 = require_deferred(), runtime_1 = require_commonjs(), RpcOutputStreamController = class { + constructor() { + this._lis = { + nxt: [], + msg: [], + err: [], + cmp: [] + }, this._closed = !1, this._itState = { q: [] }; + } + // --- RpcOutputStream callback API + onNext(callback) { + return this.addLis(callback, this._lis.nxt); + } + onMessage(callback) { + return this.addLis(callback, this._lis.msg); + } + onError(callback) { + return this.addLis(callback, this._lis.err); + } + onComplete(callback) { + return this.addLis(callback, this._lis.cmp); + } + addLis(callback, list) { + return list.push(callback), () => { + let i = list.indexOf(callback); + i >= 0 && list.splice(i, 1); + }; + } + // remove all listeners + clearLis() { + for (let l of Object.values(this._lis)) + l.splice(0, l.length); + } + // --- Controller API + /** + * Is this stream already closed by a completion or error? + */ + get closed() { + return this._closed !== !1; + } + /** + * Emit message, close with error, or close successfully, but only one + * at a time. + * Can be used to wrap a stream by using the other stream's `onNext`. + */ + notifyNext(message, error3, complete) { + runtime_1.assert((message ? 1 : 0) + (error3 ? 1 : 0) + (complete ? 1 : 0) <= 1, "only one emission at a time"), message && this.notifyMessage(message), error3 && this.notifyError(error3), complete && this.notifyComplete(); + } + /** + * Emits a new message. Throws if stream is closed. + * + * Triggers onNext and onMessage callbacks. + */ + notifyMessage(message) { + runtime_1.assert(!this.closed, "stream is closed"), this.pushIt({ value: message, done: !1 }), this._lis.msg.forEach((l) => l(message)), this._lis.nxt.forEach((l) => l(message, void 0, !1)); + } + /** + * Closes the stream with an error. Throws if stream is closed. + * + * Triggers onNext and onError callbacks. + */ + notifyError(error3) { + runtime_1.assert(!this.closed, "stream is closed"), this._closed = error3, this.pushIt(error3), this._lis.err.forEach((l) => l(error3)), this._lis.nxt.forEach((l) => l(void 0, error3, !1)), this.clearLis(); + } + /** + * Closes the stream successfully. Throws if stream is closed. + * + * Triggers onNext and onComplete callbacks. + */ + notifyComplete() { + runtime_1.assert(!this.closed, "stream is closed"), this._closed = !0, this.pushIt({ value: null, done: !0 }), this._lis.cmp.forEach((l) => l()), this._lis.nxt.forEach((l) => l(void 0, void 0, !0)), this.clearLis(); + } + /** + * Creates an async iterator (that can be used with `for await {...}`) + * to consume the stream. + * + * Some things to note: + * - If an error occurs, the `for await` will throw it. + * - If an error occurred before the `for await` was started, `for await` + * will re-throw it. + * - If the stream is already complete, the `for await` will be empty. + * - If your `for await` consumes slower than the stream produces, + * for example because you are relaying messages in a slow operation, + * messages are queued. + */ + [Symbol.asyncIterator]() { + return this._closed === !0 ? this.pushIt({ value: null, done: !0 }) : this._closed !== !1 && this.pushIt(this._closed), { + next: () => { + let state3 = this._itState; + runtime_1.assert(state3, "bad state"), runtime_1.assert(!state3.p, "iterator contract broken"); + let first = state3.q.shift(); + return first ? "value" in first ? Promise.resolve(first) : Promise.reject(first) : (state3.p = new deferred_1.Deferred(), state3.p.promise); + } + }; + } + // "push" a new iterator result. + // this either resolves a pending promise, or enqueues the result. + pushIt(result) { + let state3 = this._itState; + if (state3.p) { + let p = state3.p; + runtime_1.assert(p.state == deferred_1.DeferredState.PENDING, "iterator contract broken"), "value" in result ? p.resolve(result) : p.reject(result), delete state3.p; + } else + state3.q.push(result); + } + }; + exports2.RpcOutputStreamController = RpcOutputStreamController; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/unary-call.js +var require_unary_call = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/unary-call.js"(exports2) { + "use strict"; + var __awaiter19 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.UnaryCall = void 0; + var UnaryCall = class { + constructor(method, requestHeaders, request, headers, response, status, trailers) { + this.method = method, this.requestHeaders = requestHeaders, this.request = request, this.headers = headers, this.response = response, this.status = status, this.trailers = trailers; + } + /** + * If you are only interested in the final outcome of this call, + * you can await it to receive a `FinishedUnaryCall`. + */ + then(onfulfilled, onrejected) { + return this.promiseFinished().then((value) => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, (reason) => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason)); + } + promiseFinished() { + return __awaiter19(this, void 0, void 0, function* () { + let [headers, response, status, trailers] = yield Promise.all([this.headers, this.response, this.status, this.trailers]); + return { + method: this.method, + requestHeaders: this.requestHeaders, + request: this.request, + headers, + response, + status, + trailers + }; + }); + } + }; + exports2.UnaryCall = UnaryCall; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/server-streaming-call.js +var require_server_streaming_call = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/server-streaming-call.js"(exports2) { + "use strict"; + var __awaiter19 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.ServerStreamingCall = void 0; + var ServerStreamingCall = class { + constructor(method, requestHeaders, request, headers, response, status, trailers) { + this.method = method, this.requestHeaders = requestHeaders, this.request = request, this.headers = headers, this.responses = response, this.status = status, this.trailers = trailers; + } + /** + * Instead of awaiting the response status and trailers, you can + * just as well await this call itself to receive the server outcome. + * You should first setup some listeners to the `request` to + * see the actual messages the server replied with. + */ + then(onfulfilled, onrejected) { + return this.promiseFinished().then((value) => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, (reason) => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason)); + } + promiseFinished() { + return __awaiter19(this, void 0, void 0, function* () { + let [headers, status, trailers] = yield Promise.all([this.headers, this.status, this.trailers]); + return { + method: this.method, + requestHeaders: this.requestHeaders, + request: this.request, + headers, + status, + trailers + }; + }); + } + }; + exports2.ServerStreamingCall = ServerStreamingCall; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/client-streaming-call.js +var require_client_streaming_call = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/client-streaming-call.js"(exports2) { + "use strict"; + var __awaiter19 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.ClientStreamingCall = void 0; + var ClientStreamingCall = class { + constructor(method, requestHeaders, request, headers, response, status, trailers) { + this.method = method, this.requestHeaders = requestHeaders, this.requests = request, this.headers = headers, this.response = response, this.status = status, this.trailers = trailers; + } + /** + * Instead of awaiting the response status and trailers, you can + * just as well await this call itself to receive the server outcome. + * Note that it may still be valid to send more request messages. + */ + then(onfulfilled, onrejected) { + return this.promiseFinished().then((value) => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, (reason) => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason)); + } + promiseFinished() { + return __awaiter19(this, void 0, void 0, function* () { + let [headers, response, status, trailers] = yield Promise.all([this.headers, this.response, this.status, this.trailers]); + return { + method: this.method, + requestHeaders: this.requestHeaders, + headers, + response, + status, + trailers + }; + }); + } + }; + exports2.ClientStreamingCall = ClientStreamingCall; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/duplex-streaming-call.js +var require_duplex_streaming_call = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/duplex-streaming-call.js"(exports2) { + "use strict"; + var __awaiter19 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.DuplexStreamingCall = void 0; + var DuplexStreamingCall = class { + constructor(method, requestHeaders, request, headers, response, status, trailers) { + this.method = method, this.requestHeaders = requestHeaders, this.requests = request, this.headers = headers, this.responses = response, this.status = status, this.trailers = trailers; + } + /** + * Instead of awaiting the response status and trailers, you can + * just as well await this call itself to receive the server outcome. + * Note that it may still be valid to send more request messages. + */ + then(onfulfilled, onrejected) { + return this.promiseFinished().then((value) => onfulfilled ? Promise.resolve(onfulfilled(value)) : value, (reason) => onrejected ? Promise.resolve(onrejected(reason)) : Promise.reject(reason)); + } + promiseFinished() { + return __awaiter19(this, void 0, void 0, function* () { + let [headers, status, trailers] = yield Promise.all([this.headers, this.status, this.trailers]); + return { + method: this.method, + requestHeaders: this.requestHeaders, + headers, + status, + trailers + }; + }); + } + }; + exports2.DuplexStreamingCall = DuplexStreamingCall; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/test-transport.js +var require_test_transport = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/test-transport.js"(exports2) { + "use strict"; + var __awaiter19 = exports2 && exports2.__awaiter || function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); + }; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.TestTransport = void 0; + var rpc_error_1 = require_rpc_error(), runtime_1 = require_commonjs(), rpc_output_stream_1 = require_rpc_output_stream(), rpc_options_1 = require_rpc_options(), unary_call_1 = require_unary_call(), server_streaming_call_1 = require_server_streaming_call(), client_streaming_call_1 = require_client_streaming_call(), duplex_streaming_call_1 = require_duplex_streaming_call(), TestTransport = class _TestTransport { + /** + * Initialize with mock data. Omitted fields have default value. + */ + constructor(data) { + this.suppressUncaughtRejections = !0, this.headerDelay = 10, this.responseDelay = 50, this.betweenResponseDelay = 10, this.afterResponseDelay = 10, this.data = data ?? {}; + } + /** + * Sent message(s) during the last operation. + */ + get sentMessages() { + return this.lastInput instanceof TestInputStream ? this.lastInput.sent : typeof this.lastInput == "object" ? [this.lastInput.single] : []; + } + /** + * Sending message(s) completed? + */ + get sendComplete() { + return this.lastInput instanceof TestInputStream ? this.lastInput.completed : typeof this.lastInput == "object"; + } + // Creates a promise for response headers from the mock data. + promiseHeaders() { + var _a; + let headers = (_a = this.data.headers) !== null && _a !== void 0 ? _a : _TestTransport.defaultHeaders; + return headers instanceof rpc_error_1.RpcError ? Promise.reject(headers) : Promise.resolve(headers); + } + // Creates a promise for a single, valid, message from the mock data. + promiseSingleResponse(method) { + if (this.data.response instanceof rpc_error_1.RpcError) + return Promise.reject(this.data.response); + let r; + return Array.isArray(this.data.response) ? (runtime_1.assert(this.data.response.length > 0), r = this.data.response[0]) : this.data.response !== void 0 ? r = this.data.response : r = method.O.create(), runtime_1.assert(method.O.is(r)), Promise.resolve(r); + } + /** + * Pushes response messages from the mock data to the output stream. + * If an error response, status or trailers are mocked, the stream is + * closed with the respective error. + * Otherwise, stream is completed successfully. + * + * The returned promise resolves when the stream is closed. It should + * not reject. If it does, code is broken. + */ + streamResponses(method, stream3, abort) { + return __awaiter19(this, void 0, void 0, function* () { + let messages = []; + if (this.data.response === void 0) + messages.push(method.O.create()); + else if (Array.isArray(this.data.response)) + for (let msg of this.data.response) + runtime_1.assert(method.O.is(msg)), messages.push(msg); + else this.data.response instanceof rpc_error_1.RpcError || (runtime_1.assert(method.O.is(this.data.response)), messages.push(this.data.response)); + try { + yield delay4(this.responseDelay, abort)(void 0); + } catch (error3) { + stream3.notifyError(error3); + return; + } + if (this.data.response instanceof rpc_error_1.RpcError) { + stream3.notifyError(this.data.response); + return; + } + for (let msg of messages) { + stream3.notifyMessage(msg); + try { + yield delay4(this.betweenResponseDelay, abort)(void 0); + } catch (error3) { + stream3.notifyError(error3); + return; + } + } + if (this.data.status instanceof rpc_error_1.RpcError) { + stream3.notifyError(this.data.status); + return; + } + if (this.data.trailers instanceof rpc_error_1.RpcError) { + stream3.notifyError(this.data.trailers); + return; + } + stream3.notifyComplete(); + }); + } + // Creates a promise for response status from the mock data. + promiseStatus() { + var _a; + let status = (_a = this.data.status) !== null && _a !== void 0 ? _a : _TestTransport.defaultStatus; + return status instanceof rpc_error_1.RpcError ? Promise.reject(status) : Promise.resolve(status); + } + // Creates a promise for response trailers from the mock data. + promiseTrailers() { + var _a; + let trailers = (_a = this.data.trailers) !== null && _a !== void 0 ? _a : _TestTransport.defaultTrailers; + return trailers instanceof rpc_error_1.RpcError ? Promise.reject(trailers) : Promise.resolve(trailers); + } + maybeSuppressUncaught(...promise) { + if (this.suppressUncaughtRejections) + for (let p of promise) + p.catch(() => { + }); + } + mergeOptions(options) { + return rpc_options_1.mergeRpcOptions({}, options); + } + unary(method, input, options) { + var _a; + let requestHeaders = (_a = options.meta) !== null && _a !== void 0 ? _a : {}, headersPromise = this.promiseHeaders().then(delay4(this.headerDelay, options.abort)), responsePromise = headersPromise.catch((_) => { + }).then(delay4(this.responseDelay, options.abort)).then((_) => this.promiseSingleResponse(method)), statusPromise = responsePromise.catch((_) => { + }).then(delay4(this.afterResponseDelay, options.abort)).then((_) => this.promiseStatus()), trailersPromise = responsePromise.catch((_) => { + }).then(delay4(this.afterResponseDelay, options.abort)).then((_) => this.promiseTrailers()); + return this.maybeSuppressUncaught(statusPromise, trailersPromise), this.lastInput = { single: input }, new unary_call_1.UnaryCall(method, requestHeaders, input, headersPromise, responsePromise, statusPromise, trailersPromise); + } + serverStreaming(method, input, options) { + var _a; + let requestHeaders = (_a = options.meta) !== null && _a !== void 0 ? _a : {}, headersPromise = this.promiseHeaders().then(delay4(this.headerDelay, options.abort)), outputStream = new rpc_output_stream_1.RpcOutputStreamController(), responseStreamClosedPromise = headersPromise.then(delay4(this.responseDelay, options.abort)).catch(() => { + }).then(() => this.streamResponses(method, outputStream, options.abort)).then(delay4(this.afterResponseDelay, options.abort)), statusPromise = responseStreamClosedPromise.then(() => this.promiseStatus()), trailersPromise = responseStreamClosedPromise.then(() => this.promiseTrailers()); + return this.maybeSuppressUncaught(statusPromise, trailersPromise), this.lastInput = { single: input }, new server_streaming_call_1.ServerStreamingCall(method, requestHeaders, input, headersPromise, outputStream, statusPromise, trailersPromise); + } + clientStreaming(method, options) { + var _a; + let requestHeaders = (_a = options.meta) !== null && _a !== void 0 ? _a : {}, headersPromise = this.promiseHeaders().then(delay4(this.headerDelay, options.abort)), responsePromise = headersPromise.catch((_) => { + }).then(delay4(this.responseDelay, options.abort)).then((_) => this.promiseSingleResponse(method)), statusPromise = responsePromise.catch((_) => { + }).then(delay4(this.afterResponseDelay, options.abort)).then((_) => this.promiseStatus()), trailersPromise = responsePromise.catch((_) => { + }).then(delay4(this.afterResponseDelay, options.abort)).then((_) => this.promiseTrailers()); + return this.maybeSuppressUncaught(statusPromise, trailersPromise), this.lastInput = new TestInputStream(this.data, options.abort), new client_streaming_call_1.ClientStreamingCall(method, requestHeaders, this.lastInput, headersPromise, responsePromise, statusPromise, trailersPromise); + } + duplex(method, options) { + var _a; + let requestHeaders = (_a = options.meta) !== null && _a !== void 0 ? _a : {}, headersPromise = this.promiseHeaders().then(delay4(this.headerDelay, options.abort)), outputStream = new rpc_output_stream_1.RpcOutputStreamController(), responseStreamClosedPromise = headersPromise.then(delay4(this.responseDelay, options.abort)).catch(() => { + }).then(() => this.streamResponses(method, outputStream, options.abort)).then(delay4(this.afterResponseDelay, options.abort)), statusPromise = responseStreamClosedPromise.then(() => this.promiseStatus()), trailersPromise = responseStreamClosedPromise.then(() => this.promiseTrailers()); + return this.maybeSuppressUncaught(statusPromise, trailersPromise), this.lastInput = new TestInputStream(this.data, options.abort), new duplex_streaming_call_1.DuplexStreamingCall(method, requestHeaders, this.lastInput, headersPromise, outputStream, statusPromise, trailersPromise); + } + }; + exports2.TestTransport = TestTransport; + TestTransport.defaultHeaders = { + responseHeader: "test" + }; + TestTransport.defaultStatus = { + code: "OK", + detail: "all good" + }; + TestTransport.defaultTrailers = { + responseTrailer: "test" + }; + function delay4(ms, abort) { + return (v) => new Promise((resolve2, reject) => { + if (abort?.aborted) + reject(new rpc_error_1.RpcError("user cancel", "CANCELLED")); + else { + let id = setTimeout(() => resolve2(v), ms); + abort && abort.addEventListener("abort", (ev) => { + clearTimeout(id), reject(new rpc_error_1.RpcError("user cancel", "CANCELLED")); + }); + } + }); + } + var TestInputStream = class { + constructor(data, abort) { + this._completed = !1, this._sent = [], this.data = data, this.abort = abort; + } + get sent() { + return this._sent; + } + get completed() { + return this._completed; + } + send(message) { + if (this.data.inputMessage instanceof rpc_error_1.RpcError) + return Promise.reject(this.data.inputMessage); + let delayMs = this.data.inputMessage === void 0 ? 10 : this.data.inputMessage; + return Promise.resolve(void 0).then(() => { + this._sent.push(message); + }).then(delay4(delayMs, this.abort)); + } + complete() { + if (this.data.inputComplete instanceof rpc_error_1.RpcError) + return Promise.reject(this.data.inputComplete); + let delayMs = this.data.inputComplete === void 0 ? 10 : this.data.inputComplete; + return Promise.resolve(void 0).then(() => { + this._completed = !0; + }).then(delay4(delayMs, this.abort)); + } + }; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/rpc-interceptor.js +var require_rpc_interceptor = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/rpc-interceptor.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.stackDuplexStreamingInterceptors = exports2.stackClientStreamingInterceptors = exports2.stackServerStreamingInterceptors = exports2.stackUnaryInterceptors = exports2.stackIntercept = void 0; + var runtime_1 = require_commonjs(); + function stackIntercept(kind, transport, method, options, input) { + var _a, _b, _c, _d; + if (kind == "unary") { + let tail = (mtd, inp, opt) => transport.unary(mtd, inp, opt); + for (let curr of ((_a = options.interceptors) !== null && _a !== void 0 ? _a : []).filter((i) => i.interceptUnary).reverse()) { + let next = tail; + tail = (mtd, inp, opt) => curr.interceptUnary(next, mtd, inp, opt); + } + return tail(method, input, options); + } + if (kind == "serverStreaming") { + let tail = (mtd, inp, opt) => transport.serverStreaming(mtd, inp, opt); + for (let curr of ((_b = options.interceptors) !== null && _b !== void 0 ? _b : []).filter((i) => i.interceptServerStreaming).reverse()) { + let next = tail; + tail = (mtd, inp, opt) => curr.interceptServerStreaming(next, mtd, inp, opt); + } + return tail(method, input, options); + } + if (kind == "clientStreaming") { + let tail = (mtd, opt) => transport.clientStreaming(mtd, opt); + for (let curr of ((_c = options.interceptors) !== null && _c !== void 0 ? _c : []).filter((i) => i.interceptClientStreaming).reverse()) { + let next = tail; + tail = (mtd, opt) => curr.interceptClientStreaming(next, mtd, opt); + } + return tail(method, options); + } + if (kind == "duplex") { + let tail = (mtd, opt) => transport.duplex(mtd, opt); + for (let curr of ((_d = options.interceptors) !== null && _d !== void 0 ? _d : []).filter((i) => i.interceptDuplex).reverse()) { + let next = tail; + tail = (mtd, opt) => curr.interceptDuplex(next, mtd, opt); + } + return tail(method, options); + } + runtime_1.assertNever(kind); + } + exports2.stackIntercept = stackIntercept; + function stackUnaryInterceptors(transport, method, input, options) { + return stackIntercept("unary", transport, method, options, input); + } + exports2.stackUnaryInterceptors = stackUnaryInterceptors; + function stackServerStreamingInterceptors(transport, method, input, options) { + return stackIntercept("serverStreaming", transport, method, options, input); + } + exports2.stackServerStreamingInterceptors = stackServerStreamingInterceptors; + function stackClientStreamingInterceptors(transport, method, options) { + return stackIntercept("clientStreaming", transport, method, options); + } + exports2.stackClientStreamingInterceptors = stackClientStreamingInterceptors; + function stackDuplexStreamingInterceptors(transport, method, options) { + return stackIntercept("duplex", transport, method, options); + } + exports2.stackDuplexStreamingInterceptors = stackDuplexStreamingInterceptors; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/server-call-context.js +var require_server_call_context = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/server-call-context.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + exports2.ServerCallContextController = void 0; + var ServerCallContextController = class { + constructor(method, headers, deadline, sendResponseHeadersFn, defaultStatus = { code: "OK", detail: "" }) { + this._cancelled = !1, this._listeners = [], this.method = method, this.headers = headers, this.deadline = deadline, this.trailers = {}, this._sendRH = sendResponseHeadersFn, this.status = defaultStatus; + } + /** + * Set the call cancelled. + * + * Invokes all callbacks registered with onCancel() and + * sets `cancelled = true`. + */ + notifyCancelled() { + if (!this._cancelled) { + this._cancelled = !0; + for (let l of this._listeners) + l(); + } + } + /** + * Send response headers. + */ + sendResponseHeaders(data) { + this._sendRH(data); + } + /** + * Is the call cancelled? + * + * When the client closes the connection before the server + * is done, the call is cancelled. + * + * If you want to cancel a request on the server, throw a + * RpcError with the CANCELLED status code. + */ + get cancelled() { + return this._cancelled; + } + /** + * Add a callback for cancellation. + */ + onCancel(callback) { + let l = this._listeners; + return l.push(callback), () => { + let i = l.indexOf(callback); + i >= 0 && l.splice(i, 1); + }; + } + }; + exports2.ServerCallContextController = ServerCallContextController; + } +}); + +// node_modules/@protobuf-ts/runtime-rpc/build/commonjs/index.js +var require_commonjs2 = __commonJS({ + "node_modules/@protobuf-ts/runtime-rpc/build/commonjs/index.js"(exports2) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { value: !0 }); + var service_type_1 = require_service_type(); + Object.defineProperty(exports2, "ServiceType", { enumerable: !0, get: function() { + return service_type_1.ServiceType; + } }); + var reflection_info_1 = require_reflection_info2(); + Object.defineProperty(exports2, "readMethodOptions", { enumerable: !0, get: function() { + return reflection_info_1.readMethodOptions; + } }); + Object.defineProperty(exports2, "readMethodOption", { enumerable: !0, get: function() { + return reflection_info_1.readMethodOption; + } }); + Object.defineProperty(exports2, "readServiceOption", { enumerable: !0, get: function() { + return reflection_info_1.readServiceOption; + } }); + var rpc_error_1 = require_rpc_error(); + Object.defineProperty(exports2, "RpcError", { enumerable: !0, get: function() { + return rpc_error_1.RpcError; + } }); + var rpc_options_1 = require_rpc_options(); + Object.defineProperty(exports2, "mergeRpcOptions", { enumerable: !0, get: function() { + return rpc_options_1.mergeRpcOptions; + } }); + var rpc_output_stream_1 = require_rpc_output_stream(); + Object.defineProperty(exports2, "RpcOutputStreamController", { enumerable: !0, get: function() { + return rpc_output_stream_1.RpcOutputStreamController; + } }); + var test_transport_1 = require_test_transport(); + Object.defineProperty(exports2, "TestTransport", { enumerable: !0, get: function() { + return test_transport_1.TestTransport; + } }); + var deferred_1 = require_deferred(); + Object.defineProperty(exports2, "Deferred", { enumerable: !0, get: function() { + return deferred_1.Deferred; + } }); + Object.defineProperty(exports2, "DeferredState", { enumerable: !0, get: function() { + return deferred_1.DeferredState; + } }); + var duplex_streaming_call_1 = require_duplex_streaming_call(); + Object.defineProperty(exports2, "DuplexStreamingCall", { enumerable: !0, get: function() { + return duplex_streaming_call_1.DuplexStreamingCall; + } }); + var client_streaming_call_1 = require_client_streaming_call(); + Object.defineProperty(exports2, "ClientStreamingCall", { enumerable: !0, get: function() { + return client_streaming_call_1.ClientStreamingCall; + } }); + var server_streaming_call_1 = require_server_streaming_call(); + Object.defineProperty(exports2, "ServerStreamingCall", { enumerable: !0, get: function() { + return server_streaming_call_1.ServerStreamingCall; + } }); + var unary_call_1 = require_unary_call(); + Object.defineProperty(exports2, "UnaryCall", { enumerable: !0, get: function() { + return unary_call_1.UnaryCall; + } }); + var rpc_interceptor_1 = require_rpc_interceptor(); + Object.defineProperty(exports2, "stackIntercept", { enumerable: !0, get: function() { + return rpc_interceptor_1.stackIntercept; + } }); + Object.defineProperty(exports2, "stackDuplexStreamingInterceptors", { enumerable: !0, get: function() { + return rpc_interceptor_1.stackDuplexStreamingInterceptors; + } }); + Object.defineProperty(exports2, "stackClientStreamingInterceptors", { enumerable: !0, get: function() { + return rpc_interceptor_1.stackClientStreamingInterceptors; + } }); + Object.defineProperty(exports2, "stackServerStreamingInterceptors", { enumerable: !0, get: function() { + return rpc_interceptor_1.stackServerStreamingInterceptors; + } }); + Object.defineProperty(exports2, "stackUnaryInterceptors", { enumerable: !0, get: function() { + return rpc_interceptor_1.stackUnaryInterceptors; + } }); + var server_call_context_1 = require_server_call_context(); + Object.defineProperty(exports2, "ServerCallContextController", { enumerable: !0, get: function() { + return server_call_context_1.ServerCallContextController; + } }); + } +}); + +// node_modules/@actions/core/lib/command.js +import * as os from "os"; + +// node_modules/@actions/core/lib/utils.js +function toCommandValue(input) { + return input == null ? "" : typeof input == "string" || input instanceof String ? input : JSON.stringify(input); +} +function toCommandProperties(annotationProperties) { + return Object.keys(annotationProperties).length ? { + title: annotationProperties.title, + file: annotationProperties.file, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + } : {}; +} + +// node_modules/@actions/core/lib/command.js +function issueCommand(command, properties, message) { + let cmd = new Command(command, properties, message); + process.stdout.write(cmd.toString() + os.EOL); +} +function issue(name, message = "") { + issueCommand(name, {}, message); +} +var CMD_STRING = "::", Command = class { + constructor(command, properties, message) { + command || (command = "missing.command"), this.command = command, this.properties = properties, this.message = message; + } + toString() { + let cmdStr = CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += " "; + let first = !0; + for (let key in this.properties) + if (this.properties.hasOwnProperty(key)) { + let val = this.properties[key]; + val && (first ? first = !1 : cmdStr += ",", cmdStr += `${key}=${escapeProperty(val)}`); + } + } + return cmdStr += `${CMD_STRING}${escapeData(this.message)}`, cmdStr; + } +}; +function escapeData(s) { + return toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A"); +} +function escapeProperty(s) { + return toCommandValue(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C"); +} + +// node_modules/@actions/core/lib/file-command.js +import * as crypto from "crypto"; +import * as fs from "fs"; +import * as os2 from "os"; +function issueFileCommand(command, message) { + let filePath = process.env[`GITHUB_${command}`]; + if (!filePath) + throw new Error(`Unable to find environment variable for file command ${command}`); + if (!fs.existsSync(filePath)) + throw new Error(`Missing file at path: ${filePath}`); + fs.appendFileSync(filePath, `${toCommandValue(message)}${os2.EOL}`, { + encoding: "utf8" + }); +} +function prepareKeyValueMessage(key, value) { + let delimiter3 = `ghadelimiter_${crypto.randomUUID()}`, convertedValue = toCommandValue(value); + if (key.includes(delimiter3)) + throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter3}"`); + if (convertedValue.includes(delimiter3)) + throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter3}"`); + return `${key}<<${delimiter3}${os2.EOL}${convertedValue}${os2.EOL}${delimiter3}`; +} + +// node_modules/@actions/core/lib/core.js +import * as os5 from "os"; + +// node_modules/@actions/http-client/lib/index.js +var tunnel = __toESM(require_tunnel2(), 1), import_undici = __toESM(require_undici(), 1); +var HttpCodes; +(function(HttpCodes4) { + HttpCodes4[HttpCodes4.OK = 200] = "OK", HttpCodes4[HttpCodes4.MultipleChoices = 300] = "MultipleChoices", HttpCodes4[HttpCodes4.MovedPermanently = 301] = "MovedPermanently", HttpCodes4[HttpCodes4.ResourceMoved = 302] = "ResourceMoved", HttpCodes4[HttpCodes4.SeeOther = 303] = "SeeOther", HttpCodes4[HttpCodes4.NotModified = 304] = "NotModified", HttpCodes4[HttpCodes4.UseProxy = 305] = "UseProxy", HttpCodes4[HttpCodes4.SwitchProxy = 306] = "SwitchProxy", HttpCodes4[HttpCodes4.TemporaryRedirect = 307] = "TemporaryRedirect", HttpCodes4[HttpCodes4.PermanentRedirect = 308] = "PermanentRedirect", HttpCodes4[HttpCodes4.BadRequest = 400] = "BadRequest", HttpCodes4[HttpCodes4.Unauthorized = 401] = "Unauthorized", HttpCodes4[HttpCodes4.PaymentRequired = 402] = "PaymentRequired", HttpCodes4[HttpCodes4.Forbidden = 403] = "Forbidden", HttpCodes4[HttpCodes4.NotFound = 404] = "NotFound", HttpCodes4[HttpCodes4.MethodNotAllowed = 405] = "MethodNotAllowed", HttpCodes4[HttpCodes4.NotAcceptable = 406] = "NotAcceptable", HttpCodes4[HttpCodes4.ProxyAuthenticationRequired = 407] = "ProxyAuthenticationRequired", HttpCodes4[HttpCodes4.RequestTimeout = 408] = "RequestTimeout", HttpCodes4[HttpCodes4.Conflict = 409] = "Conflict", HttpCodes4[HttpCodes4.Gone = 410] = "Gone", HttpCodes4[HttpCodes4.TooManyRequests = 429] = "TooManyRequests", HttpCodes4[HttpCodes4.InternalServerError = 500] = "InternalServerError", HttpCodes4[HttpCodes4.NotImplemented = 501] = "NotImplemented", HttpCodes4[HttpCodes4.BadGateway = 502] = "BadGateway", HttpCodes4[HttpCodes4.ServiceUnavailable = 503] = "ServiceUnavailable", HttpCodes4[HttpCodes4.GatewayTimeout = 504] = "GatewayTimeout"; +})(HttpCodes || (HttpCodes = {})); +var Headers; +(function(Headers4) { + Headers4.Accept = "accept", Headers4.ContentType = "content-type"; +})(Headers || (Headers = {})); +var MediaTypes; +(function(MediaTypes4) { + MediaTypes4.ApplicationJson = "application/json"; +})(MediaTypes || (MediaTypes = {})); +var HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +], HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; + +// node_modules/@actions/core/lib/summary.js +import { EOL as EOL3 } from "os"; +import { constants, promises } from "fs"; +var __awaiter = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}, { access, appendFile, writeFile } = promises, SUMMARY_ENV_VAR = "GITHUB_STEP_SUMMARY"; +var Summary = class { + constructor() { + this._buffer = ""; + } + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ + filePath() { + return __awaiter(this, void 0, void 0, function* () { + if (this._filePath) + return this._filePath; + let pathFromEnv = process.env[SUMMARY_ENV_VAR]; + if (!pathFromEnv) + throw new Error(`Unable to find environment variable for $${SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + try { + yield access(pathFromEnv, constants.R_OK | constants.W_OK); + } catch { + throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + } + return this._filePath = pathFromEnv, this._filePath; + }); + } + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ + wrap(tag, content, attrs = {}) { + let htmlAttrs = Object.entries(attrs).map(([key, value]) => ` ${key}="${value}"`).join(""); + return content ? `<${tag}${htmlAttrs}>${content}` : `<${tag}${htmlAttrs}>`; + } + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ + write(options) { + return __awaiter(this, void 0, void 0, function* () { + let overwrite = !!options?.overwrite, filePath = yield this.filePath(); + return yield (overwrite ? writeFile : appendFile)(filePath, this._buffer, { encoding: "utf8" }), this.emptyBuffer(); + }); + } + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ + clear() { + return __awaiter(this, void 0, void 0, function* () { + return this.emptyBuffer().write({ overwrite: !0 }); + }); + } + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ + stringify() { + return this._buffer; + } + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ + isEmptyBuffer() { + return this._buffer.length === 0; + } + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ + emptyBuffer() { + return this._buffer = "", this; + } + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ + addRaw(text, addEOL = !1) { + return this._buffer += text, addEOL ? this.addEOL() : this; + } + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ + addEOL() { + return this.addRaw(EOL3); + } + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ + addCodeBlock(code, lang) { + let attrs = Object.assign({}, lang && { lang }), element = this.wrap("pre", this.wrap("code", code), attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ + addList(items, ordered = !1) { + let tag = ordered ? "ol" : "ul", listItems = items.map((item) => this.wrap("li", item)).join(""), element = this.wrap(tag, listItems); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ + addTable(rows) { + let tableBody = rows.map((row) => { + let cells = row.map((cell) => { + if (typeof cell == "string") + return this.wrap("td", cell); + let { header, data, colspan, rowspan } = cell, tag = header ? "th" : "td", attrs = Object.assign(Object.assign({}, colspan && { colspan }), rowspan && { rowspan }); + return this.wrap(tag, data, attrs); + }).join(""); + return this.wrap("tr", cells); + }).join(""), element = this.wrap("table", tableBody); + return this.addRaw(element).addEOL(); + } + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ + addDetails(label, content) { + let element = this.wrap("details", this.wrap("summary", label) + content); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ + addImage(src, alt, options) { + let { width, height } = options || {}, attrs = Object.assign(Object.assign({}, width && { width }), height && { height }), element = this.wrap("img", null, Object.assign({ src, alt }, attrs)); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ + addHeading(text, level) { + let tag = `h${level}`, allowedTag = ["h1", "h2", "h3", "h4", "h5", "h6"].includes(tag) ? tag : "h1", element = this.wrap(allowedTag, text); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML thematic break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addSeparator() { + let element = this.wrap("hr", null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML line break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addBreak() { + let element = this.wrap("br", null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ + addQuote(text, cite) { + let attrs = Object.assign({}, cite && { cite }), element = this.wrap("blockquote", text, attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ + addLink(text, href) { + let element = this.wrap("a", text, { href }); + return this.addRaw(element).addEOL(); + } +}, _summary = new Summary(); + +// node_modules/@actions/core/lib/platform.js +import os4 from "os"; + +// node_modules/@actions/exec/lib/exec.js +import { StringDecoder } from "string_decoder"; + +// node_modules/@actions/exec/lib/toolrunner.js +import * as os3 from "os"; +import * as events from "events"; +import * as child from "child_process"; +import * as path3 from "path"; + +// node_modules/@actions/io/lib/io.js +import { ok } from "assert"; +import * as path2 from "path"; + +// node_modules/@actions/io/lib/io-util.js +import * as fs2 from "fs"; +import * as path from "path"; +var __awaiter2 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}, { chmod, copyFile, lstat, mkdir, open, readdir, rename, rm, rmdir, stat, symlink, unlink } = fs2.promises, IS_WINDOWS = process.platform === "win32"; +var READONLY = fs2.constants.O_RDONLY; +function exists(fsPath) { + return __awaiter2(this, void 0, void 0, function* () { + try { + yield stat(fsPath); + } catch (err) { + if (err.code === "ENOENT") + return !1; + throw err; + } + return !0; + }); +} +function isRooted(p) { + if (p = normalizeSeparators(p), !p) + throw new Error('isRooted() parameter "p" cannot be empty'); + return IS_WINDOWS ? p.startsWith("\\") || /^[A-Z]:/i.test(p) : p.startsWith("/"); +} +function tryGetExecutablePath(filePath, extensions) { + return __awaiter2(this, void 0, void 0, function* () { + let stats; + try { + stats = yield stat(filePath); + } catch (err) { + err.code !== "ENOENT" && console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + if (stats && stats.isFile()) { + if (IS_WINDOWS) { + let upperExt = path.extname(filePath).toUpperCase(); + if (extensions.some((validExt) => validExt.toUpperCase() === upperExt)) + return filePath; + } else if (isUnixExecutable(stats)) + return filePath; + } + let originalFilePath = filePath; + for (let extension of extensions) { + filePath = originalFilePath + extension, stats = void 0; + try { + stats = yield stat(filePath); + } catch (err) { + err.code !== "ENOENT" && console.log(`Unexpected error attempting to determine if executable file exists '${filePath}': ${err}`); + } + if (stats && stats.isFile()) { + if (IS_WINDOWS) { + try { + let directory = path.dirname(filePath), upperName = path.basename(filePath).toUpperCase(); + for (let actualName of yield readdir(directory)) + if (upperName === actualName.toUpperCase()) { + filePath = path.join(directory, actualName); + break; + } + } catch (err) { + console.log(`Unexpected error attempting to determine the actual case of the file '${filePath}': ${err}`); + } + return filePath; + } else if (isUnixExecutable(stats)) + return filePath; + } + } + return ""; + }); +} +function normalizeSeparators(p) { + return p = p || "", IS_WINDOWS ? (p = p.replace(/\//g, "\\"), p.replace(/\\\\+/g, "\\")) : p.replace(/\/\/+/g, "/"); +} +function isUnixExecutable(stats) { + return (stats.mode & 1) > 0 || (stats.mode & 8) > 0 && process.getgid !== void 0 && stats.gid === process.getgid() || (stats.mode & 64) > 0 && process.getuid !== void 0 && stats.uid === process.getuid(); +} + +// node_modules/@actions/io/lib/io.js +var __awaiter3 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +function mkdirP(fsPath) { + return __awaiter3(this, void 0, void 0, function* () { + ok(fsPath, "a path argument must be provided"), yield mkdir(fsPath, { recursive: !0 }); + }); +} +function which(tool, check) { + return __awaiter3(this, void 0, void 0, function* () { + if (!tool) + throw new Error("parameter 'tool' is required"); + if (check) { + let result = yield which(tool, !1); + if (!result) + throw IS_WINDOWS ? new Error(`Unable to locate executable file: ${tool}. 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.`) : new Error(`Unable to locate executable file: ${tool}. 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 result; + } + let matches = yield findInPath(tool); + return matches && matches.length > 0 ? matches[0] : ""; + }); +} +function findInPath(tool) { + return __awaiter3(this, void 0, void 0, function* () { + if (!tool) + throw new Error("parameter 'tool' is required"); + let extensions = []; + if (IS_WINDOWS && process.env.PATHEXT) + for (let extension of process.env.PATHEXT.split(path2.delimiter)) + extension && extensions.push(extension); + if (isRooted(tool)) { + let filePath = yield tryGetExecutablePath(tool, extensions); + return filePath ? [filePath] : []; + } + if (tool.includes(path2.sep)) + return []; + let directories = []; + if (process.env.PATH) + for (let p of process.env.PATH.split(path2.delimiter)) + p && directories.push(p); + let matches = []; + for (let directory of directories) { + let filePath = yield tryGetExecutablePath(path2.join(directory, tool), extensions); + filePath && matches.push(filePath); + } + return matches; + }); +} + +// node_modules/@actions/exec/lib/toolrunner.js +import { setTimeout as setTimeout2 } from "timers"; +var __awaiter4 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}, IS_WINDOWS2 = process.platform === "win32", ToolRunner = class extends events.EventEmitter { + constructor(toolPath, args, options) { + if (super(), !toolPath) + throw new Error("Parameter 'toolPath' cannot be null or empty."); + this.toolPath = toolPath, this.args = args || [], this.options = options || {}; + } + _debug(message) { + this.options.listeners && this.options.listeners.debug && this.options.listeners.debug(message); + } + _getCommandString(options, noPrefix) { + let toolPath = this._getSpawnFileName(), args = this._getSpawnArgs(options), cmd = noPrefix ? "" : "[command]"; + if (IS_WINDOWS2) + if (this._isCmdFile()) { + cmd += toolPath; + for (let a of args) + cmd += ` ${a}`; + } else if (options.windowsVerbatimArguments) { + cmd += `"${toolPath}"`; + for (let a of args) + cmd += ` ${a}`; + } else { + cmd += this._windowsQuoteCmdArg(toolPath); + for (let a of args) + cmd += ` ${this._windowsQuoteCmdArg(a)}`; + } + else { + cmd += toolPath; + for (let a of args) + cmd += ` ${a}`; + } + return cmd; + } + _processLineBuffer(data, strBuffer, onLine) { + try { + let s = strBuffer + data.toString(), n = s.indexOf(os3.EOL); + for (; n > -1; ) { + let line = s.substring(0, n); + onLine(line), s = s.substring(n + os3.EOL.length), n = s.indexOf(os3.EOL); + } + return s; + } catch (err) { + return this._debug(`error processing line. Failed with error ${err}`), ""; + } + } + _getSpawnFileName() { + return IS_WINDOWS2 && this._isCmdFile() ? process.env.COMSPEC || "cmd.exe" : this.toolPath; + } + _getSpawnArgs(options) { + if (IS_WINDOWS2 && this._isCmdFile()) { + let argline = `/D /S /C "${this._windowsQuoteCmdArg(this.toolPath)}`; + for (let a of this.args) + argline += " ", argline += options.windowsVerbatimArguments ? a : this._windowsQuoteCmdArg(a); + return argline += '"', [argline]; + } + return this.args; + } + _endsWith(str, end) { + return str.endsWith(end); + } + _isCmdFile() { + let upperToolPath = this.toolPath.toUpperCase(); + return this._endsWith(upperToolPath, ".CMD") || this._endsWith(upperToolPath, ".BAT"); + } + _windowsQuoteCmdArg(arg) { + if (!this._isCmdFile()) + return this._uvQuoteCmdArg(arg); + if (!arg) + return '""'; + let cmdSpecialChars = [ + " ", + " ", + "&", + "(", + ")", + "[", + "]", + "{", + "}", + "^", + "=", + ";", + "!", + "'", + "+", + ",", + "`", + "~", + "|", + "<", + ">", + '"' + ], needsQuotes = !1; + for (let char of arg) + if (cmdSpecialChars.some((x) => x === char)) { + needsQuotes = !0; + break; + } + if (!needsQuotes) + return arg; + let reverse = '"', quoteHit = !0; + for (let i = arg.length; i > 0; i--) + reverse += arg[i - 1], quoteHit && arg[i - 1] === "\\" ? reverse += "\\" : arg[i - 1] === '"' ? (quoteHit = !0, reverse += '"') : quoteHit = !1; + return reverse += '"', reverse.split("").reverse().join(""); + } + _uvQuoteCmdArg(arg) { + if (!arg) + return '""'; + if (!arg.includes(" ") && !arg.includes(" ") && !arg.includes('"')) + return arg; + if (!arg.includes('"') && !arg.includes("\\")) + return `"${arg}"`; + let reverse = '"', quoteHit = !0; + for (let i = arg.length; i > 0; i--) + reverse += arg[i - 1], quoteHit && arg[i - 1] === "\\" ? reverse += "\\" : arg[i - 1] === '"' ? (quoteHit = !0, reverse += "\\") : quoteHit = !1; + return reverse += '"', reverse.split("").reverse().join(""); + } + _cloneExecOptions(options) { + options = options || {}; + let result = { + cwd: options.cwd || process.cwd(), + env: options.env || process.env, + silent: options.silent || !1, + windowsVerbatimArguments: options.windowsVerbatimArguments || !1, + failOnStdErr: options.failOnStdErr || !1, + ignoreReturnCode: options.ignoreReturnCode || !1, + delay: options.delay || 1e4 + }; + return result.outStream = options.outStream || process.stdout, result.errStream = options.errStream || process.stderr, result; + } + _getSpawnOptions(options, toolPath) { + options = options || {}; + let result = {}; + return result.cwd = options.cwd, result.env = options.env, result.windowsVerbatimArguments = options.windowsVerbatimArguments || this._isCmdFile(), options.windowsVerbatimArguments && (result.argv0 = `"${toolPath}"`), result; + } + /** + * Exec a tool. + * Output will be streamed to the live console. + * Returns promise with return code + * + * @param tool path to tool to exec + * @param options optional exec options. See ExecOptions + * @returns number + */ + exec() { + return __awaiter4(this, void 0, void 0, function* () { + return !isRooted(this.toolPath) && (this.toolPath.includes("/") || IS_WINDOWS2 && this.toolPath.includes("\\")) && (this.toolPath = path3.resolve(process.cwd(), this.options.cwd || process.cwd(), this.toolPath)), this.toolPath = yield which(this.toolPath, !0), new Promise((resolve2, reject) => __awaiter4(this, void 0, void 0, function* () { + this._debug(`exec tool: ${this.toolPath}`), this._debug("arguments:"); + for (let arg of this.args) + this._debug(` ${arg}`); + let optionsNonNull = this._cloneExecOptions(this.options); + !optionsNonNull.silent && optionsNonNull.outStream && optionsNonNull.outStream.write(this._getCommandString(optionsNonNull) + os3.EOL); + let state3 = new ExecState(optionsNonNull, this.toolPath); + if (state3.on("debug", (message) => { + this._debug(message); + }), this.options.cwd && !(yield exists(this.options.cwd))) + return reject(new Error(`The cwd: ${this.options.cwd} does not exist!`)); + let fileName = this._getSpawnFileName(), cp = child.spawn(fileName, this._getSpawnArgs(optionsNonNull), this._getSpawnOptions(this.options, fileName)), stdbuffer = ""; + cp.stdout && cp.stdout.on("data", (data) => { + this.options.listeners && this.options.listeners.stdout && this.options.listeners.stdout(data), !optionsNonNull.silent && optionsNonNull.outStream && optionsNonNull.outStream.write(data), stdbuffer = this._processLineBuffer(data, stdbuffer, (line) => { + this.options.listeners && this.options.listeners.stdline && this.options.listeners.stdline(line); + }); + }); + let errbuffer = ""; + if (cp.stderr && cp.stderr.on("data", (data) => { + state3.processStderr = !0, this.options.listeners && this.options.listeners.stderr && this.options.listeners.stderr(data), !optionsNonNull.silent && optionsNonNull.errStream && optionsNonNull.outStream && (optionsNonNull.failOnStdErr ? optionsNonNull.errStream : optionsNonNull.outStream).write(data), errbuffer = this._processLineBuffer(data, errbuffer, (line) => { + this.options.listeners && this.options.listeners.errline && this.options.listeners.errline(line); + }); + }), cp.on("error", (err) => { + state3.processError = err.message, state3.processExited = !0, state3.processClosed = !0, state3.CheckComplete(); + }), cp.on("exit", (code) => { + state3.processExitCode = code, state3.processExited = !0, this._debug(`Exit code ${code} received from tool '${this.toolPath}'`), state3.CheckComplete(); + }), cp.on("close", (code) => { + state3.processExitCode = code, state3.processExited = !0, state3.processClosed = !0, this._debug(`STDIO streams have closed for tool '${this.toolPath}'`), state3.CheckComplete(); + }), state3.on("done", (error3, exitCode) => { + stdbuffer.length > 0 && this.emit("stdline", stdbuffer), errbuffer.length > 0 && this.emit("errline", errbuffer), cp.removeAllListeners(), error3 ? reject(error3) : resolve2(exitCode); + }), this.options.input) { + if (!cp.stdin) + throw new Error("child process missing stdin"); + cp.stdin.end(this.options.input); + } + })); + }); + } +}; +function argStringToArray(argString) { + let args = [], inQuotes = !1, escaped = !1, arg = ""; + function append(c) { + escaped && c !== '"' && (arg += "\\"), arg += c, escaped = !1; + } + for (let i = 0; i < argString.length; i++) { + let c = argString.charAt(i); + if (c === '"') { + escaped ? append(c) : inQuotes = !inQuotes; + continue; + } + if (c === "\\" && escaped) { + append(c); + continue; + } + if (c === "\\" && inQuotes) { + escaped = !0; + continue; + } + if (c === " " && !inQuotes) { + arg.length > 0 && (args.push(arg), arg = ""); + continue; + } + append(c); + } + return arg.length > 0 && args.push(arg.trim()), args; +} +var ExecState = class _ExecState extends events.EventEmitter { + constructor(options, toolPath) { + 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, !toolPath) + throw new Error("toolPath must not be empty"); + this.options = options, this.toolPath = toolPath, options.delay && (this.delay = options.delay); + } + CheckComplete() { + this.done || (this.processClosed ? this._setResult() : this.processExited && (this.timeout = setTimeout2(_ExecState.HandleTimeout, this.delay, this))); + } + _debug(message) { + this.emit("debug", message); + } + _setResult() { + let error3; + this.processExited && (this.processError ? error3 = new 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 ? error3 = new Error(`The process '${this.toolPath}' failed with exit code ${this.processExitCode}`) : this.processStderr && this.options.failOnStdErr && (error3 = new Error(`The process '${this.toolPath}' failed because one or more lines were written to the STDERR stream`))), this.timeout && (clearTimeout(this.timeout), this.timeout = null), this.done = !0, this.emit("done", error3, this.processExitCode); + } + static HandleTimeout(state3) { + if (!state3.done) { + if (!state3.processClosed && state3.processExited) { + let message = `The STDIO streams did not close within ${state3.delay / 1e3} seconds of the exit event from process '${state3.toolPath}'. This may indicate a child process inherited the STDIO streams and has not yet exited.`; + state3._debug(message); + } + state3._setResult(); + } + } +}; + +// node_modules/@actions/exec/lib/exec.js +var __awaiter5 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +function exec(commandLine, args, options) { + return __awaiter5(this, void 0, void 0, function* () { + let commandArgs = argStringToArray(commandLine); + if (commandArgs.length === 0) + throw new Error("Parameter 'commandLine' cannot be null or empty."); + let toolPath = commandArgs[0]; + return args = commandArgs.slice(1).concat(args || []), new ToolRunner(toolPath, args, options).exec(); + }); +} +function getExecOutput(commandLine, args, options) { + return __awaiter5(this, void 0, void 0, function* () { + var _a, _b; + let stdout = "", stderr = "", stdoutDecoder = new StringDecoder("utf8"), stderrDecoder = new StringDecoder("utf8"), originalStdoutListener = (_a = options?.listeners) === null || _a === void 0 ? void 0 : _a.stdout, originalStdErrListener = (_b = options?.listeners) === null || _b === void 0 ? void 0 : _b.stderr, stdErrListener = (data) => { + stderr += stderrDecoder.write(data), originalStdErrListener && originalStdErrListener(data); + }, stdOutListener = (data) => { + stdout += stdoutDecoder.write(data), originalStdoutListener && originalStdoutListener(data); + }, listeners = Object.assign(Object.assign({}, options?.listeners), { stdout: stdOutListener, stderr: stdErrListener }), exitCode = yield exec(commandLine, args, Object.assign(Object.assign({}, options), { listeners })); + return stdout += stdoutDecoder.end(), stderr += stderrDecoder.end(), { + exitCode, + stdout, + stderr + }; + }); +} + +// node_modules/@actions/core/lib/platform.js +var platform = os4.platform(), arch = os4.arch(); + +// node_modules/@actions/core/lib/core.js +var ExitCode; +(function(ExitCode3) { + ExitCode3[ExitCode3.Success = 0] = "Success", ExitCode3[ExitCode3.Failure = 1] = "Failure"; +})(ExitCode || (ExitCode = {})); +function exportVariable(name, val) { + let convertedVal = toCommandValue(val); + if (process.env[name] = convertedVal, process.env.GITHUB_ENV || "") + return issueFileCommand("ENV", prepareKeyValueMessage(name, val)); + issueCommand("set-env", { name }, convertedVal); +} +function setSecret(secret) { + issueCommand("add-mask", {}, secret); +} +function setOutput(name, value) { + if (process.env.GITHUB_OUTPUT || "") + return issueFileCommand("OUTPUT", prepareKeyValueMessage(name, value)); + process.stdout.write(os5.EOL), issueCommand("set-output", { name }, toCommandValue(value)); +} +function setFailed(message) { + process.exitCode = ExitCode.Failure, error(message); +} +function isDebug() { + return process.env.RUNNER_DEBUG === "1"; +} +function debug(message) { + issueCommand("debug", {}, message); +} +function error(message, properties = {}) { + issueCommand("error", toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +function warning(message, properties = {}) { + issueCommand("warning", toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +function notice(message, properties = {}) { + issueCommand("notice", toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +function info(message) { + process.stdout.write(message + os5.EOL); +} +function startGroup(name) { + issue("group", name); +} +function endGroup() { + issue("endgroup"); +} +function saveState(name, value) { + if (process.env.GITHUB_STATE || "") + return issueFileCommand("STATE", prepareKeyValueMessage(name, value)); + issueCommand("save-state", { name }, toCommandValue(value)); +} +function getState(name) { + return process.env[`STATE_${name}`] || ""; +} + +// packages/build/src/main.ts +import { mkdir as mkdir3, stat as stat5 } from "node:fs/promises"; +import { tmpdir as tmpdir2 } from "node:os"; +import { basename as pathBasename, dirname as dirname8, join as join12, resolve as pathResolve } from "node:path"; + +// packages/core/src/errors.ts +var PkgActionError = class extends Error { + file; + line; + col; + constructor(message, opts = {}) { + super(message, opts.cause !== void 0 ? { cause: opts.cause } : void 0), this.name = new.target.name, opts.file !== void 0 && (this.file = opts.file), opts.line !== void 0 && (this.line = opts.line), opts.col !== void 0 && (this.col = opts.col); + } +}, ValidationError = class extends PkgActionError { +}, PkgRunError = class extends PkgActionError { +}; +var ArchiveError = class extends PkgActionError { +}, ChecksumError = class extends PkgActionError { +}, ResEditError = class extends PkgActionError { +}, SignError = class extends PkgActionError { +}; +function formatErrorChain(err, maxDepth = 5) { + let parts = [], current = err, depth = 0; + for (; current != null && depth < maxDepth; ) { + if (current instanceof Error) + parts.push(`${current.name}: ${current.message}`), current = current.cause; + else { + parts.push(String(current)); + break; + } + depth += 1; + } + return parts.join(" \u2192 caused by \u2192 "); +} + +// packages/core/src/logger.ts +var actionsLogger = { + debug: (m) => debug(m), + info: (m) => info(m), + warning: (m, p) => warning(m, p), + error: (m, p) => error(m, p), + notice: (m, p) => notice(m, p), + startGroup: (n) => startGroup(n), + endGroup: () => endGroup(), + setSecret: (v) => setSecret(v), + isDebug: () => isDebug() +}; + +// packages/core/src/fs-utils.ts +import { randomUUID as randomUUID2 } from "node:crypto"; +import { chmod as chmod2, mkdir as mkdir2, open as open2, rename as rename2, rm as rm2, stat as stat2, writeFile as writeFile2 } from "node:fs/promises"; +import { dirname as dirname3, join as join3 } from "node:path"; +async function createInvocationTemp(parent) { + let id = randomUUID2(), dir = join3(parent, `pkg-action-${id}`); + return await mkdir2(dir, { recursive: !0, mode: 448 }), await chmod2(dir, 448), dir; +} +var PKG_CONFIG_INLINE_FILENAME = "pkg-config.inline.json"; +async function materializePkgConfigInline(opts) { + if (opts.configInline === void 0) return opts.config; + let path12 = join3(opts.invocationDir, PKG_CONFIG_INLINE_FILENAME); + return await writeFile2(path12, opts.configInline, "utf8"), path12; +} +async function atomicWriteFile(path12, data) { + await mkdir2(dirname3(path12), { recursive: !0 }); + let tmp = `${path12}.tmp-${randomUUID2()}`; + await writeFile2(tmp, data), await rename2(tmp, path12); +} + +// packages/core/src/targets.ts +var VALID_OS = ["linux", "macos", "win", "alpine", "linuxstatic"], VALID_ARCH = ["x64", "arm64", "armv7", "armv6", "ppc64", "s390x"], TRIPLE_RE = /^(?:node(\d+)|(latest))-([a-z]+)-([a-z0-9]+)$/; +function parseTarget(triple) { + let trimmed = triple.trim(), m = TRIPLE_RE.exec(trimmed); + if (!m) + throw new ValidationError( + `Invalid target triple "${triple}". Expected node-- or latest--.` + ); + let [, majorStr, latestLit, osRaw, archRaw] = m, node = latestLit !== void 0 ? "latest" : Number(majorStr); + if (typeof node == "number" && (Number.isNaN(node) || node < 18)) + throw new ValidationError( + `Target "${triple}" specifies Node ${String(node)} \u2014 only Node 18 and newer are supported by pkg.` + ); + if (!osRaw || !archRaw) + throw new ValidationError(`Invalid target triple "${triple}".`); + if (!VALID_OS.includes(osRaw)) + throw new ValidationError( + `Invalid target OS "${osRaw}" in "${triple}". Expected one of: ${VALID_OS.join(", ")}.` + ); + if (!VALID_ARCH.includes(archRaw)) + throw new ValidationError( + `Invalid target arch "${archRaw}" in "${triple}". Expected one of: ${VALID_ARCH.join(", ")}.` + ); + return { + node, + os: osRaw, + arch: archRaw + }; +} +function formatTarget(t) { + return `${t.node === "latest" ? "latest" : `node${t.node}`}-${t.os}-${t.arch}`; +} +function parseTargetList(raw) { + let pieces = raw.split(/[\n,]/).map((s) => s.trim()).filter((s) => s.length > 0), seen = /* @__PURE__ */ new Set(), result = []; + for (let p of pieces) { + let t = parseTarget(p), key = formatTarget(t); + seen.has(key) || (seen.add(key), result.push(t)); + } + return result; +} +var DEFAULT_RUNNER_LABELS = Object.freeze({ + "linux-x64": "ubuntu-latest", + "linux-arm64": "ubuntu-24.04-arm", + "linuxstatic-x64": "ubuntu-latest", + "linuxstatic-arm64": "ubuntu-24.04-arm", + "alpine-x64": "ubuntu-latest", + "alpine-arm64": "ubuntu-24.04-arm", + "macos-x64": "macos-13", + "macos-arm64": "macos-latest", + "win-x64": "windows-latest", + "win-arm64": "windows-11-arm" +}); +function hostTarget(platform3 = process.platform, arch3 = process.arch, nodeVersion = process.versions.node) { + let os11; + switch (platform3) { + case "linux": + os11 = "linux"; + break; + case "darwin": + os11 = "macos"; + break; + case "win32": + os11 = "win"; + break; + default: + throw new ValidationError( + `Cannot auto-detect host target \u2014 unsupported platform "${platform3}".` + ); + } + let mappedArch; + switch (arch3) { + case "x64": + mappedArch = "x64"; + break; + case "arm64": + mappedArch = "arm64"; + break; + case "arm": + mappedArch = "armv7"; + break; + case "ppc64": + mappedArch = "ppc64"; + break; + case "s390x": + mappedArch = "s390x"; + break; + default: + throw new ValidationError(`Cannot auto-detect host target \u2014 unsupported arch "${arch3}".`); + } + let nodeMajor = Number(nodeVersion.split(".")[0]); + if (!Number.isFinite(nodeMajor)) + throw new ValidationError(`Cannot parse Node version "${nodeVersion}".`); + return { node: nodeMajor, os: os11, arch: mappedArch }; +} + +// packages/core/src/templates.ts +var TEMPLATE_TOKEN_NAMES = [ + "name", + "version", + "target", + "node", + "os", + "arch", + "sha", + "ref", + "date", + "tag" +], TOKEN_RE = /\{([a-zA-Z]+)\}/g; +function render(template, tokens) { + return template.replace(TOKEN_RE, (full, name) => { + if (!TEMPLATE_TOKEN_NAMES.includes(name)) { + let suggestion = closestToken(name), hint = suggestion !== null ? ` Did you mean "{${suggestion}}"?` : ""; + throw new ValidationError(`Unknown template token "${full}".${hint}`); + } + let value = tokens[name]; + if (value === void 0) + throw new ValidationError(`Template token "${full}" is undefined.`); + return value; + }); +} +function closestToken(input) { + let best = null, bestDist = 1 / 0; + for (let candidate of TEMPLATE_TOKEN_NAMES) { + let d = levenshtein(input.toLowerCase(), candidate); + d < bestDist && (bestDist = d, best = candidate); + } + return bestDist <= 3 ? best : null; +} +function levenshtein(a, b) { + if (a === b) return 0; + if (a.length === 0) return b.length; + if (b.length === 0) return a.length; + let prev = new Array(b.length + 1), curr = new Array(b.length + 1); + for (let j = 0; j <= b.length; j += 1) prev[j] = j; + for (let i = 1; i <= a.length; i += 1) { + curr[0] = i; + for (let j = 1; j <= b.length; j += 1) { + let cost = a[i - 1] === b[j - 1] ? 0 : 1; + curr[j] = Math.min((curr[j - 1] ?? 0) + 1, (prev[j] ?? 0) + 1, (prev[j - 1] ?? 0) + cost); + } + [prev, curr] = [curr, prev]; + } + return prev[b.length] ?? 0; +} +function buildTokens(args) { + let d = args.date ?? /* @__PURE__ */ new Date(), yyyymmdd = [ + d.getUTCFullYear().toString().padStart(4, "0"), + (d.getUTCMonth() + 1).toString().padStart(2, "0"), + d.getUTCDate().toString().padStart(2, "0") + ].join(""); + return { + name: args.name, + version: args.version, + target: args.target, + node: args.node, + os: args.os, + arch: args.arch, + sha: args.sha ?? "", + ref: args.ref ?? "", + date: yyyymmdd, + tag: args.tag ?? "" + }; +} + +// packages/core/src/checksum.ts +import { createHash } from "node:crypto"; +import { createReadStream } from "node:fs"; +import { basename as basename3 } from "node:path"; +import { pipeline } from "node:stream/promises"; +var CHECKSUM_ALGORITHMS = ["sha256", "sha512", "md5"]; +async function computeChecksum(filePath, algo) { + let hash = createHash(algo); + try { + await pipeline(createReadStream(filePath, { highWaterMark: 64 * 1024 }), hash); + } catch (err) { + throw new ChecksumError(`Failed to hash ${filePath} with ${algo}`, { cause: err }); + } + return hash.digest("hex"); +} +async function writeShasumsFile(outPath, entries) { + if (entries.length === 0) + throw new ChecksumError(`Cannot write empty SHASUMS file to ${outPath}`); + let body2 = [...entries].sort((a, b) => a.path.localeCompare(b.path)).map((e) => `${e.digest} ${basename3(e.path)}`).join(` +`) + ` +`; + await atomicWriteFile(outPath, body2); +} +async function writeSidecar(binaryPath, digest, algo) { + let sidecar = `${binaryPath}.${algo}`, body2 = `${digest} ${basename3(binaryPath)} +`; + return await atomicWriteFile(sidecar, body2), sidecar; +} +async function computeAllChecksums(filePath, algos) { + let entries = await Promise.all( + algos.map(async (a) => [a, await computeChecksum(filePath, a)]) + ), result = {}; + for (let [a, d] of entries) result[a] = d; + return result; +} + +// packages/core/src/inputs.ts +var PKG_CONFIG_FILENAMES = [ + ".pkgrc", + ".pkgrc.json", + "pkg.config.js", + "pkg.config.cjs", + "pkg.config.mjs" +], INPUT_SPECS = [ + // Build configuration (§5.1) + { + name: "config", category: "build", description: "Path to a pkg config. When omitted, pkg auto-detects .pkgrc, .pkgrc.json, pkg.config.js, pkg.config.cjs or pkg.config.mjs next to the entry; the package.json pkg field is used when the entry itself resolves to a package.json. An explicit path may point at a package.json or a standalone config; for a standalone config pkg also needs an entry script, so the action supplies package.json bin when the entry input is unset. Mutually exclusive with config-inline." }, { - name: "config-inline", - category: "build", - description: "Pkg config as a JSON string. Written to a temp file and passed to pkg via --config. Mutually exclusive with config. Being JSON, it can only carry the shell-string form of the preBuild/postBuild hooks \u2014 function hooks and transform need a pkg.config.{js,cjs,mjs} file via config. Registered with core.setSecret so exact matches are redacted from logs, which does not extend to output a hook prints; still written to a temp file on the runner, so prefer config for anything beyond trivial knobs.", - secret: !0 + name: "config-inline", + category: "build", + description: "Pkg config as a JSON string. Written to a temp file and passed to pkg via --config. Mutually exclusive with config. Being JSON, it can only carry the shell-string form of the preBuild/postBuild hooks \u2014 function hooks and transform need a pkg.config.{js,cjs,mjs} file via config. Registered with core.setSecret so exact matches are redacted from logs, which does not extend to output a hook prints; still written to a temp file on the runner, so prefer config for anything beyond trivial knobs.", + secret: !0 + }, + { + name: "entry", + category: "build", + description: "Entry script when not specified in the config." + }, + { + name: "targets", + category: "build", + description: "Comma- or newline-separated pkg target triples, e.g. node22-linux-x64,node22-macos-arm64. Defaults to the host target." + }, + { + name: "pkg-version", + category: "build", + description: "npm version specifier for @yao-pkg/pkg (e.g. ~6.21.0). 6.19.0+ is required for the full build-flag surface in pkg config (compress, fallbackToSource, public, publicPackages, options, bytecode, nativeBuild, noDictionary, debug, signature); 6.21.0+ adds the preBuild, postBuild and transform build hooks. Bypassed when pkg-path is set.", + default: "~6.21.0" + }, + { + name: "pkg-path", + category: "build", + description: "Absolute path to a pre-installed pkg binary. Skips the implicit npm i -g." + }, + // Post-build (§5.2) + { + name: "strip", + category: "post-build", + description: "Strip debug symbols on Linux/macOS outputs.", + default: "false" + }, + { + name: "compress", + category: "post-build", + description: "Archive format: tar.gz | tar.xz | zip | 7z | none.", + default: "none" + }, + { + name: "filename", + category: "post-build", + description: "Output filename template. Tokens: {name} {version} {target} {node} {os} {arch} {sha} {ref} {date} {tag}.", + default: "{name}-{version}-{os}-{arch}" + }, + { + name: "checksum", + category: "post-build", + description: "Checksum algorithms: comma list of none | sha256 | sha512 | md5.", + default: "sha256" + }, + // Windows metadata (§5.3) — M3 + { + name: "windows-metadata-file", + category: "windows-metadata", + description: "Path to a JSON file with any subset of the Windows metadata fields." + }, + { + name: "windows-icon", + category: "windows-metadata", + description: "Newline- or comma-separated list of = icon entries, or just for id 1." + }, + { + name: "windows-product-name", + category: "windows-metadata", + description: "ProductName string." + }, + { + name: "windows-product-version", + category: "windows-metadata", + description: "ProductVersion (auto-padded to four parts)." + }, + { + name: "windows-file-version", + category: "windows-metadata", + description: "FileVersion (auto-padded to four parts)." + }, + { + name: "windows-file-description", + category: "windows-metadata", + description: "FileDescription string." + }, + { + name: "windows-company-name", + category: "windows-metadata", + description: "CompanyName string." + }, + { + name: "windows-legal-copyright", + category: "windows-metadata", + description: "LegalCopyright string (\xA9 auto-inserted if omitted)." + }, + { + name: "windows-original-filename", + category: "windows-metadata", + description: "OriginalFilename string. Defaults to the output basename." + }, + { + name: "windows-internal-name", + category: "windows-metadata", + description: "InternalName string." + }, + { name: "windows-comments", category: "windows-metadata", description: "Comments string." }, + { + name: "windows-manifest", + category: "windows-metadata", + description: "Path to a raw app.manifest file to embed as RT_MANIFEST." + }, + { + name: "windows-lang", + category: "windows-metadata", + description: "Language identifier for VersionInfo.", + default: "1033" + }, + { + name: "windows-codepage", + category: "windows-metadata", + description: "Codepage for VersionInfo strings.", + default: "1200" + }, + // Signing & notarization (§5.4) — M4 + { + name: "macos-sign-identity", + category: "signing", + description: "codesign identity (Common Name or SHA-1)." + }, + { + name: "macos-sign-certificate", + category: "signing", + description: "Base64-encoded .p12 certificate.", + secret: !0 + }, + { + name: "macos-keychain-password", + category: "signing", + description: "Password for the ephemeral keychain holding the signing identity.", + secret: !0 + }, + { + name: "macos-entitlements", + category: "signing", + description: "Path to an entitlements plist." + }, + { + name: "macos-notarize", + category: "signing", + description: "Run xcrun notarytool + staple after signing.", + default: "false" + }, + { + name: "macos-apple-id", + category: "signing", + description: "Apple ID for notarytool.", + secret: !0 + }, + { + name: "macos-team-id", + category: "signing", + description: "Apple Team ID for notarytool.", + secret: !0 + }, + { + name: "macos-app-password", + category: "signing", + description: "App-specific password for notarytool.", + secret: !0 + }, + { + name: "windows-sign-mode", + category: "signing", + description: "none | signtool | trusted-signing.", + default: "none" + }, + { + name: "windows-sign-cert", + category: "signing", + description: "Base64-encoded .pfx for signtool mode.", + secret: !0 + }, + { + name: "windows-sign-password", + category: "signing", + description: "Password for the .pfx.", + secret: !0 + }, + { + name: "windows-sign-rfc3161-url", + category: "signing", + description: "RFC3161 timestamp URL for signtool.", + default: "http://timestamp.digicert.com" + }, + { + name: "windows-sign-description", + category: "signing", + description: "Description passed to signtool /d." + }, + { + name: "azure-tenant-id", + category: "signing", + description: "Azure Trusted Signing: tenant ID.", + secret: !0 + }, + { + name: "azure-client-id", + category: "signing", + description: "Azure Trusted Signing: client ID.", + secret: !0 + }, + { + name: "azure-client-secret", + category: "signing", + description: "Azure Trusted Signing: client secret.", + secret: !0 + }, + { + name: "azure-endpoint", + category: "signing", + description: "Azure Trusted Signing: endpoint URL." + }, + { + name: "azure-cert-profile", + category: "signing", + description: "Azure Trusted Signing: certificate profile name." + }, + // Performance / observability (§5.6) + { + name: "cache", + category: "performance", + description: "Cache the pkg-fetch Node downloads between runs.", + default: "true" + }, + { + name: "cache-key", + category: "performance", + description: "Override the auto-derived cache key." + }, + { + name: "step-summary", + category: "performance", + description: "Write a markdown summary of build time / size / checksum to the job summary.", + default: "true" + } +], SPEC_BY_NAME = new Map( + INPUT_SPECS.map((s) => [s.name, s]) +); +function specFor(name) { + return SPEC_BY_NAME.get(name); +} +function readInputRaw(env, name) { + let key = `INPUT_${name.replace(/ /g, "_").toUpperCase()}`, raw = env[key]; + if (raw === void 0) return; + let trimmed = raw.trim(); + return trimmed === "" ? void 0 : trimmed; +} +function readInput(env, name) { + let raw = readInputRaw(env, name); + return raw !== void 0 ? raw : specFor(name)?.default; +} +function readRequiredInput(env, name) { + let value = readInput(env, name); + if (value === void 0) + throw new ValidationError(`Input "${name}" has no value and no default in INPUT_SPECS.`); + return value; +} +function parseBoolean(value, name) { + if (value === void 0) return !1; + let normalized = value.toLowerCase(); + if (normalized === "true" || normalized === "1" || normalized === "yes") return !0; + if (normalized === "false" || normalized === "0" || normalized === "no") return !1; + throw new ValidationError(`Input "${name}" expected a boolean (true/false) but got "${value}".`); +} +var NPM_SPECIFIER_RE = /^[A-Za-z0-9.*|=<>~^ -]+$/; +function parsePkgVersionSpecifier(value) { + if (!NPM_SPECIFIER_RE.test(value)) + throw new ValidationError( + `Input "pkg-version" is not a valid npm version specifier: "${value}".` + ); + return value; +} +function parseEnum(value, name, allowed) { + if (value === void 0) + throw new ValidationError(`Input "${name}" is required but not set.`); + if (!allowed.includes(value)) + throw new ValidationError( + `Input "${name}" must be one of ${allowed.join(" | ")}, got "${value}".` + ); + return value; +} +function parseList(value) { + return value === void 0 ? [] : value.split(/[\n,]/).map((s) => s.trim()).filter((s) => s.length > 0); +} +function parseChecksumList(value, name) { + let items = parseList(value); + if (items.length === 0 || items.length === 1 && items[0] === "none") return []; + let result = [], seen = /* @__PURE__ */ new Set(); + for (let item of items) { + if (item === "none") + throw new ValidationError(`Input "${name}" cannot mix "none" with other algorithms.`); + if (!CHECKSUM_ALGORITHMS.includes(item)) + throw new ValidationError( + `Input "${name}" contains unknown algorithm "${item}". Expected: ${CHECKSUM_ALGORITHMS.join(", ")}.` + ); + seen.has(item) || (seen.add(item), result.push(item)); + } + return result; +} +function parseInputs(opts = {}) { + let env = opts.env ?? process.env; + for (let spec of INPUT_SPECS) + if (spec.secret === !0) { + let raw = readInputRaw(env, spec.name); + raw !== void 0 && opts.registerSecret?.(raw); + } + let targetsRaw = readInput(env, "targets"), targets = targetsRaw === void 0 ? "host" : parseTargetList(targetsRaw); + if (Array.isArray(targets) && targets.length === 0) + throw new ValidationError('Input "targets" was set but resolved to an empty list.'); + let configPath = readInput(env, "config"), configInline = readInput(env, "config-inline"); + if (configPath !== void 0 && configInline !== void 0) + throw new ValidationError( + 'Inputs "config" and "config-inline" are mutually exclusive \u2014 pick one.' + ); + if (configInline !== void 0) + try { + let parsed = JSON.parse(configInline); + if (parsed === null || typeof parsed != "object" || Array.isArray(parsed)) + throw new ValidationError( + 'Input "config-inline" must parse to a JSON object (got ' + (parsed === null ? "null" : Array.isArray(parsed) ? "array" : typeof parsed) + ")." + ); + } catch (err) { + throw err instanceof ValidationError ? err : new ValidationError( + `Input "config-inline" is not valid JSON: ${err instanceof Error ? err.message : String(err)}` + ); + } + let build = { + config: configPath, + configInline, + entry: readInput(env, "entry"), + targets, + pkgVersion: parsePkgVersionSpecifier(readRequiredInput(env, "pkg-version")), + pkgPath: readInput(env, "pkg-path") + }, postBuild = { + strip: parseBoolean(readInput(env, "strip"), "strip"), + compress: parseEnum(readInput(env, "compress"), "compress", [ + "tar.gz", + "tar.xz", + "zip", + "7z", + "none" + ]), + filename: readRequiredInput(env, "filename"), + checksum: parseChecksumList(readInput(env, "checksum"), "checksum") + }, performance2 = { + cache: parseBoolean(readInput(env, "cache"), "cache"), + cacheKey: readInput(env, "cache-key"), + stepSummary: parseBoolean(readInput(env, "step-summary"), "step-summary") + }; + if (opts.onUnknownInput !== void 0) + for (let key of Object.keys(env)) { + if (!key.startsWith("INPUT_")) continue; + let kebab = key.slice(6).toLowerCase(); + SPEC_BY_NAME.has(kebab) || opts.onUnknownInput(kebab); + } + return { build, postBuild, performance: performance2 }; +} +function closestInputName(input) { + let best = null, bestDist = 1 / 0; + for (let spec of INPUT_SPECS) { + let d = levenshtein2(input.toLowerCase(), spec.name); + d < bestDist && (bestDist = d, best = spec.name); + } + return bestDist <= 3 ? best : null; +} +function levenshtein2(a, b) { + if (a === b) return 0; + if (a.length === 0) return b.length; + if (b.length === 0) return a.length; + let prev = new Array(b.length + 1), curr = new Array(b.length + 1); + for (let j = 0; j <= b.length; j += 1) prev[j] = j; + for (let i = 1; i <= a.length; i += 1) { + curr[0] = i; + for (let j = 1; j <= b.length; j += 1) { + let cost = a[i - 1] === b[j - 1] ? 0 : 1; + curr[j] = Math.min((curr[j - 1] ?? 0) + 1, (prev[j] ?? 0) + 1, (prev[j - 1] ?? 0) + cost); + } + [prev, curr] = [curr, prev]; + } + return prev[b.length] ?? 0; +} + +// packages/core/src/pkg-runner.ts +function buildPkgArgs(inv) { + let args = []; + inv.targets.length > 0 && args.push("--targets", inv.targets.map(formatTarget).join(",")), inv.build.config !== void 0 && args.push("--config", inv.build.config), args.push("--out-path", inv.outputDir); + let entry = inv.build.entry ?? "."; + return args.push(entry), args; +} +async function installPkg(specifier, deps) { + let spec = `@yao-pkg/pkg@${specifier}`; + deps.logger.info(`[pkg-action] Installing ${spec}`); + let result; + try { + result = await deps.exec("npm", ["i", "-g", spec], { ignoreReturnCode: !0 }); + } catch (err) { + throw new PkgRunError(`Failed to spawn npm: ${String(err)}`, { cause: err }); + } + if (result.exitCode !== 0) + throw new PkgRunError(`npm i -g ${spec} exited ${String(result.exitCode)}.`); +} +async function resolvePkgVersion(deps) { + try { + let result = await deps.exec(deps.pkgCommand, ["--version"], { ignoreReturnCode: !0 }); + if (result.exitCode !== 0) return; + let version3 = result.stdout.trim(); + return version3 === "" ? void 0 : version3; + } catch { + return; + } +} +async function runPkg(inv, deps) { + let args = buildPkgArgs(inv); + deps.logger.info(`[pkg-action] Invoking: ${deps.pkgCommand} ${args.join(" ")}`); + let result; + try { + result = await deps.exec(deps.pkgCommand, args, { + ignoreReturnCode: !0, + ...inv.cwd !== void 0 ? { cwd: inv.cwd } : {}, + ...inv.env !== void 0 ? { env: inv.env } : {} + }); + } catch (err) { + throw new PkgRunError(`Failed to spawn pkg: ${String(err)}`, { cause: err }); + } + if (result.exitCode !== 0) { + let configHint = inv.build.config !== void 0 ? ` If a preBuild/postBuild/transform hook is set in ${inv.build.config}, check its output above \u2014 hook failures surface as a pkg exit.` : ""; + throw new PkgRunError( + `pkg exited with code ${String(result.exitCode)}. See stderr above.${configHint}` + ); + } + return result; +} + +// packages/core/src/pkg-output-map.ts +import { access as access2, readdir as readdir2 } from "node:fs/promises"; +import { join as join4 } from "node:path"; +function predictOutputNames(targets, baseName) { + if (targets.length === 0) return []; + if (targets.length === 1) { + let only = targets[0]; + return only ? [withWindowsSuffix(baseName, only)] : []; + } + let nodes = new Set(targets.map((t) => String(t.node))), oses = new Set(targets.map((t) => t.os)), archs = new Set(targets.map((t) => t.arch)), diverges = { + node: nodes.size > 1, + os: oses.size > 1, + arch: archs.size > 1 + }; + return targets.map((t) => { + let parts = [baseName]; + return diverges.node && parts.push(String(t.node)), diverges.os && parts.push(t.os), diverges.arch && parts.push(t.arch), withWindowsSuffix(parts.join("-"), t); + }); +} +function withWindowsSuffix(name, target) { + return target.os === "win" && !name.toLowerCase().endsWith(".exe") ? `${name}.exe` : name; +} +async function mapPkgOutputs(targets, baseName, outputDir) { + let predicted = predictOutputNames(targets, baseName), entries = [], unresolved = []; + for (let i = 0; i < targets.length; i += 1) { + let target = targets[i], name = predicted[i]; + if (target === void 0 || name === void 0) continue; + let candidate = join4(outputDir, name); + await exists2(candidate) ? entries.push({ target, path: candidate }) : unresolved.push({ target, predicted: name }); + } + if (unresolved.length > 0) { + let listing = await readdir2(outputDir); + for (let { target, predicted: predictedName } of unresolved) { + let match2 = findFallbackMatch(listing, target, predictedName, { + soleTarget: targets.length === 1 + }); + if (match2 === void 0) + throw new PkgRunError( + `pkg did not produce an output for ${formatTarget(target)}. Expected "${predictedName}" in ${outputDir}; directory contains: ${listing.join(", ") || "(empty)"}. If a postBuild hook moves or renames the binary, drop that \u2014 the action locates outputs by name.` + ); + entries.push({ target, path: join4(outputDir, match2) }); + } + } + return entries; +} +function findFallbackMatch(listing, target, predicted, opts = { soleTarget: !1 }) { + if (listing.includes(predicted)) return predicted; + let lower = predicted.toLowerCase(), ci = listing.find((f) => f.toLowerCase() === lower); + if (ci !== void 0) return ci; + let needle = `${target.os}-${target.arch}`, byTriple = listing.find((f) => f.toLowerCase().includes(needle.toLowerCase())); + if (byTriple !== void 0) return byTriple; + if (opts.soleTarget && listing.length === 1) return listing[0]; +} +async function exists2(path12) { + try { + return await access2(path12), !0; + } catch { + return !1; + } +} + +// packages/core/src/pkg-cache.ts +var PKG_CACHE_KEY_GLOBS = [ + "**/package.json", + ...PKG_CONFIG_FILENAMES.map((f) => f.startsWith(".") ? f : `**/${f}`) +]; +function derivePkgCacheKey({ os: os11, arch: arch3, hash }) { + return `pkg-fetch-${os11}-${arch3}-${hash}`; +} + +// packages/core/src/archive.ts +var import_yazl = __toESM(require_yazl(), 1); +import { createWriteStream } from "node:fs"; +import { mkdtemp, rm as rm3, stat as stat3, symlink as symlink2, utimes } from "node:fs/promises"; +import { tmpdir } from "node:os"; +import { basename as basename4, dirname as dirname4 } from "node:path"; +import { pipeline as pipeline2 } from "node:stream/promises"; +async function archive(req, deps) { + let entry = req.entryName ?? basename4(req.inputPath), mode = req.mode ?? 493; + try { + await stat3(req.inputPath); + } catch (err) { + throw new ArchiveError(`Archive input does not exist: ${req.inputPath}`, { cause: err }); + } + switch (req.format) { + case "tar.gz": + return await shellTar(req.inputPath, req.outputPath, "gz", entry, deps), req.outputPath; + case "tar.xz": + return await shellTar(req.inputPath, req.outputPath, "xz", entry, deps), req.outputPath; + case "zip": + return await writeZip(req.inputPath, req.outputPath, entry, mode), req.outputPath; + case "7z": + return await shell7z(req.inputPath, req.outputPath, entry, deps), req.outputPath; + } +} +var REPRO_MTIME = new Date(Date.UTC(2020, 0, 1, 0, 0, 0)), REPRO_MTIME_TAR = "2020-01-01 00:00:00 UTC"; +async function shellTar(inputPath, outputPath, compression, entry, deps) { + let compressFlag = compression === "gz" ? "-z" : "-J", stageDir, workDir = dirname4(inputPath), fileName = basename4(inputPath); + if (entry !== basename4(inputPath)) { + stageDir = await mkdtemp(`${tmpdir()}/pkgaction-tar-`); + let linkPath = `${stageDir}/${entry}`; + await symlink2(inputPath, linkPath), workDir = stageDir, fileName = entry; + } + await utimes(inputPath, REPRO_MTIME, REPRO_MTIME); + let isLinux = process.platform === "linux", ownerFlags = isLinux ? ["--owner=0", "--group=0"] : ["--uid=0", "--gid=0"], mtimeFlags = isLinux ? ["--mtime", REPRO_MTIME_TAR] : []; + try { + let result = await deps.exec( + "tar", + [ + "-c", + compressFlag, + "-f", + outputPath, + ...mtimeFlags, + ...ownerFlags, + "--numeric-owner", + "-C", + workDir, + fileName + ], + { ignoreReturnCode: !0 } + ); + if (result.exitCode !== 0) + throw new ArchiveError( + `tar exited ${String(result.exitCode)} writing ${outputPath}. stderr: ${result.stderr.trim()}` + ); + } finally { + stageDir !== void 0 && await rm3(stageDir, { recursive: !0, force: !0 }); + } +} +async function writeZip(inputPath, outputPath, entry, mode) { + let zipfile = new import_yazl.default.ZipFile(); + zipfile.addFile(inputPath, entry, { mode, mtime: REPRO_MTIME, compress: !0 }), zipfile.end(); + try { + await pipeline2(zipfile.outputStream, createWriteStream(outputPath)); + } catch (err) { + throw new ArchiveError(`Failed to write zip ${outputPath}`, { cause: err }); + } +} +async function shell7z(inputPath, outputPath, entry, deps) { + let stageDir, workDir = dirname4(inputPath), fileName = basename4(inputPath); + if (entry !== basename4(inputPath)) { + stageDir = await mkdtemp(`${tmpdir()}/pkgaction-7z-`); + let linkPath = `${stageDir}/${entry}`; + await symlink2(inputPath, linkPath), workDir = stageDir, fileName = entry; + } + try { + let result = await deps.exec("7z", ["a", "-bb0", outputPath, fileName], { + cwd: workDir, + ignoreReturnCode: !0 + }); + if (result.exitCode !== 0) + throw new ArchiveError( + `7z exited ${String(result.exitCode)} writing ${outputPath}. stderr: ${result.stderr.trim()}` + ); + } finally { + stageDir !== void 0 && await rm3(stageDir, { recursive: !0, force: !0 }); + } +} + +// packages/core/src/summary.ts +import { appendFile as appendFile2 } from "node:fs/promises"; +import { basename as basename5 } from "node:path"; +function renderSummary(rows, opts = {}) { + let parts = []; + parts.push(`## ${opts.title ?? "pkg-action build summary"}`), parts.push(""); + let meta = []; + if (opts.actionVersion !== void 0 && meta.push(`**action:** \`${opts.actionVersion}\``), opts.pkgVersion !== void 0 && meta.push(`**pkg:** \`${opts.pkgVersion}\``), meta.length > 0 && (parts.push(meta.join(" \xB7 ")), parts.push("")), rows.length === 0) + return parts.push("_No binaries produced._"), parts.push(""), parts.join(` +`); + let hasDuration = rows.some((r) => r.durationMs !== void 0), hasDigest = rows.some((r) => r.primaryDigest !== void 0), hasSigned = rows.some((r) => r.signed === !0), header = ["Target", "Filename", "Size"]; + hasDigest && header.push("SHA"), hasSigned && header.push("Signed"), hasDuration && header.push("Time"); + let sep9 = header.map(() => "---"); + parts.push(`| ${header.join(" | ")} |`), parts.push(`| ${sep9.join(" | ")} |`); + for (let row of rows) { + let cells = [ + `\`${row.target}\``, + `\`${basename5(row.filename)}\``, + formatBytes(row.sizeBytes) + ]; + hasDigest && (row.primaryDigest !== void 0 ? cells.push(`\`${row.primaryDigest.algo}:${row.primaryDigest.value.slice(0, 12)}\u2026\``) : cells.push("\u2014")), hasSigned && cells.push(row.signed === !0 ? "\u2713" : "\u2014"), hasDuration && cells.push(row.durationMs !== void 0 ? formatDuration(row.durationMs) : "\u2014"), parts.push(`| ${cells.join(" | ")} |`); + } + return parts.push(""), parts.join(` +`); +} +async function writeSummary(rows, opts = {}, env = process.env) { + let path12 = env.GITHUB_STEP_SUMMARY; + if (path12 === void 0 || path12 === "") return !1; + let markdown = renderSummary(rows, opts); + return await appendFile2(path12, markdown), !0; +} +function formatBytes(bytes) { + if (bytes < 1024) return `${bytes} B`; + let units = ["KiB", "MiB", "GiB", "TiB"], v = bytes, i = -1; + for (; v >= 1024 && i < units.length - 1; ) + v /= 1024, i += 1; + return `${v.toFixed(v >= 100 ? 0 : v >= 10 ? 1 : 2)} ${units[i]}`; +} +function formatDuration(ms) { + if (ms < 1e3) return `${ms} ms`; + let s = ms / 1e3; + if (s < 60) return `${s.toFixed(1)} s`; + let m = Math.floor(s / 60), rem = s - m * 60; + return `${m}m ${rem.toFixed(0)}s`; +} + +// packages/core/src/project-info.ts +import { readFile } from "node:fs/promises"; +import { join as join5 } from "node:path"; +function resolveBinEntry(bin, name, projectDir) { + let rel = bin; + if (typeof rel == "object" && rel !== null) { + let map = rel, unscoped = name.split("/").pop(); + rel = (unscoped !== void 0 ? map[unscoped] : void 0) ?? Object.values(map)[0]; + } + return typeof rel == "string" && rel !== "" ? join5(projectDir, rel) : void 0; +} +async function readProjectInfo(projectDir) { + let path12 = join5(projectDir, "package.json"), raw; + try { + raw = await readFile(path12, "utf8"); + } catch (err) { + throw new ValidationError(`Cannot read package.json at ${path12}`, { cause: err }); + } + let parsed; + try { + parsed = JSON.parse(raw); + } catch (err) { + throw new ValidationError(`Invalid JSON in ${path12}`, { cause: err }); + } + if (typeof parsed != "object" || parsed === null) + throw new ValidationError(`package.json at ${path12} is not an object.`); + let obj = parsed, name = obj.name, version3 = obj.version; + if (typeof name != "string" || name === "") + throw new ValidationError(`package.json at ${path12} is missing "name".`); + if (typeof version3 != "string" || version3 === "") + throw new ValidationError(`package.json at ${path12} is missing "version".`); + return { name, version: version3, binEntry: resolveBinEntry(obj.bin, name, projectDir) }; +} +function tokensForTarget(target, project, env, nowDate = /* @__PURE__ */ new Date()) { + let sha = (env.GITHUB_SHA ?? "").slice(0, 7), ref = env.GITHUB_REF_NAME ?? env.GITHUB_REF ?? "", tag = extractTag(env.GITHUB_REF), nodePart = target.node === "latest" ? "latest" : `node${String(target.node)}`; + return buildTokens({ + name: project.name, + version: project.version, + target: formatTarget(target), + node: nodePart, + os: target.os, + arch: target.arch, + sha, + ref, + date: nowDate, + tag: tag ?? "" + }); +} +function extractTag(githubRef) { + if (githubRef === void 0) return; + let prefix2 = "refs/tags/"; + if (!githubRef.startsWith(prefix2)) return; + let tag = githubRef.slice(prefix2.length); + return tag === "" ? void 0 : tag; +} + +// packages/core/src/windows-metadata.ts +function parseIconSpec(raw) { + let pieces = raw.split(/[\n,]/).map((s) => s.trim()).filter((s) => s.length > 0), byId = /* @__PURE__ */ new Map(); + for (let piece of pieces) { + let eq = piece.indexOf("="), id, path12; + if (eq === -1) + id = 1, path12 = piece; + else { + let idRaw = piece.slice(0, eq); + if (path12 = piece.slice(eq + 1).trim(), !/^\d+$/.test(idRaw)) + throw new ValidationError( + `windows-icon entry "${piece}" has invalid id "${idRaw}" \u2014 expected a positive integer before "=".` + ); + id = Number(idRaw); + } + if (!Number.isInteger(id) || id < 1 || id > 65535) + throw new ValidationError( + `windows-icon entry "${piece}" id ${String(id)} is out of range (1..65535).` + ); + if (path12 === "") + throw new ValidationError(`windows-icon entry "${piece}" is missing a path.`); + byId.set(id, { id, path: path12 }); + } + return [...byId.values()].sort((a, b) => a.id - b.id); +} +function padVersionQuad(raw) { + let trimmed = raw.trim(); + if (!/^\d+(?:\.\d+){0,3}$/.test(trimmed)) + throw new ValidationError( + `Version "${raw}" must match x[.y[.z[.w]]] with each part being a non-negative integer.` + ); + let parts = trimmed.split(".").map((p) => Number(p)); + for (let n of parts) + if (!Number.isInteger(n) || n < 0 || n > 65535) + throw new ValidationError( + `Version "${raw}" has component ${String(n)} out of uint16 range (0..65535).` + ); + return [parts[0] ?? 0, parts[1] ?? 0, parts[2] ?? 0, parts[3] ?? 0]; +} +function mergeMetadataFile(env, file) { + let fileIcons = normalizeFileIcons(file), icons = env.icons.length > 0 ? env.icons : fileIcons, pick = (envValue, fileValue) => envValue ?? fileValue, lang = env.lang ?? file?.lang ?? 1033, codepage = env.codepage ?? file?.codepage ?? 1200; + if (!Number.isInteger(lang) || lang < 0 || lang > 65535) + throw new ValidationError(`windows-lang must be a uint16, got ${String(lang)}.`); + if (!Number.isInteger(codepage) || codepage < 0 || codepage > 65535) + throw new ValidationError(`windows-codepage must be a uint16, got ${String(codepage)}.`); + return { + icons, + productName: pick(env.productName, file?.productName), + productVersion: pick(env.productVersion, file?.productVersion), + fileVersion: pick(env.fileVersion, file?.fileVersion), + fileDescription: pick(env.fileDescription, file?.fileDescription), + companyName: pick(env.companyName, file?.companyName), + legalCopyright: pick(env.legalCopyright, file?.legalCopyright), + originalFilename: pick(env.originalFilename, file?.originalFilename), + internalName: pick(env.internalName, file?.internalName), + comments: pick(env.comments, file?.comments), + manifestPath: pick(env.manifestPath, file?.manifest), + lang, + codepage + }; +} +function normalizeFileIcons(file) { + if (file === void 0) return []; + let out = /* @__PURE__ */ new Map(); + if (typeof file.icon == "string" && file.icon.trim() !== "" && out.set(1, { id: 1, path: file.icon.trim() }), Array.isArray(file.icons)) + for (let entry of file.icons) { + if (typeof entry == "string") { + let trimmed = entry.trim(); + if (trimmed === "") continue; + out.set(1, { id: 1, path: trimmed }); + continue; + } + if (typeof entry == "object" && entry !== null && typeof entry.id == "number" && typeof entry.path == "string") { + if (!Number.isInteger(entry.id) || entry.id < 1 || entry.id > 65535) + throw new ValidationError( + `windows-metadata-file: icon id ${String(entry.id)} is out of range (1..65535).` + ); + let path12 = entry.path.trim(); + if (path12 === "") + throw new ValidationError("windows-metadata-file: icon entry missing path."); + out.set(entry.id, { id: entry.id, path: path12 }); + continue; + } + throw new ValidationError( + `windows-metadata-file: icons[] entry is neither a string nor {id, path}: ${JSON.stringify(entry)}.` + ); + } + return [...out.values()].sort((a, b) => a.id - b.id); +} +async function parseWindowsMetadataInputs(opts = {}) { + let env = opts.env ?? process.env, readFile3 = opts.readFile ?? ((path12) => import("node:fs/promises").then((m) => m.readFile(path12, "utf8"))), prefix2 = opts.prefix ?? "windows-", read2 = (name) => readInputRaw(env, `${prefix2}${name}`), fileRaw = read2("metadata-file"), iconRaw = read2("icon"), productName = read2("product-name"), productVersion = read2("product-version"), fileVersion = read2("file-version"), fileDescription = read2("file-description"), companyName = read2("company-name"), legalCopyright = read2("legal-copyright"), originalFilename = read2("original-filename"), internalName = read2("internal-name"), comments = read2("comments"), manifestPath = read2("manifest"), langRaw = read2("lang"), codepageRaw = read2("codepage"); + if (!(fileRaw !== void 0 || iconRaw !== void 0 || productName !== void 0 || productVersion !== void 0 || fileVersion !== void 0 || fileDescription !== void 0 || companyName !== void 0 || legalCopyright !== void 0 || originalFilename !== void 0 || internalName !== void 0 || comments !== void 0 || manifestPath !== void 0)) return null; + let fileData; + if (fileRaw !== void 0) { + let contents; + try { + contents = await readFile3(fileRaw); + } catch (err) { + throw new ValidationError(`Failed to read windows-metadata-file "${fileRaw}".`, { + cause: err + }); + } + try { + let parsed = JSON.parse(contents); + if (parsed === null || typeof parsed != "object" || Array.isArray(parsed)) + throw new ValidationError( + `windows-metadata-file "${fileRaw}" must contain a JSON object at the top level.` + ); + fileData = parsed; + } catch (err) { + throw err instanceof ValidationError ? err : new ValidationError( + `windows-metadata-file "${fileRaw}" is not valid JSON: ${err instanceof Error ? err.message : String(err)}` + ); + } + } + let envBag = { + icons: iconRaw === void 0 ? [] : parseIconSpec(iconRaw), + productName, + productVersion, + fileVersion, + fileDescription, + companyName, + legalCopyright, + originalFilename, + internalName, + comments, + manifestPath, + lang: langRaw === void 0 ? void 0 : parseUint16(langRaw, `${prefix2}lang`), + codepage: codepageRaw === void 0 ? void 0 : parseUint16(codepageRaw, `${prefix2}codepage`) + }; + return mergeMetadataFile(envBag, fileData); +} +function parseUint16(raw, inputName) { + let n = Number(raw); + if (!Number.isInteger(n) || n < 0 || n > 65535) + throw new ValidationError(`${inputName} must be a uint16 integer, got "${raw}".`); + return n; +} + +// packages/core/src/windows-metadata-apply.ts +import { readFile as readFile2, writeFile as writeFile3 } from "node:fs/promises"; + +// node_modules/pe-library/dist/format/FormatBase.js +var FormatBase = ( + /** @class */ + (function() { + function FormatBase2(view) { + this.view = view; + } + return FormatBase2.prototype.copyTo = function(bin, offset) { + new Uint8Array(bin, offset, this.view.byteLength).set(new Uint8Array(this.view.buffer, this.view.byteOffset, this.view.byteLength)); + }, Object.defineProperty(FormatBase2.prototype, "byteLength", { + get: function() { + return this.view.byteLength; + }, + enumerable: !1, + configurable: !0 + }), FormatBase2; + })() +), FormatBase_default = FormatBase; + +// node_modules/pe-library/dist/format/ArrayFormatBase.js +var __extends = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(), ArrayFormatBase = ( + /** @class */ + (function(_super) { + __extends(ArrayFormatBase2, _super); + function ArrayFormatBase2(view) { + return _super.call(this, view) || this; + } + return ArrayFormatBase2.prototype.forEach = function(callback) { + var len = this.length, a = []; + a.length = len; + for (var i = 0; i < len; ++i) + a[i] = this.get(i); + for (var i = 0; i < len; ++i) + callback(a[i], i, this); + }, ArrayFormatBase2.prototype._iterator = function() { + return new /** @class */ + ((function() { + function class_1(base) { + this.base = base, this.i = 0; + } + return class_1.prototype.next = function() { + return this.i === this.base.length ? { + value: void 0, + done: !0 + } : { + value: this.base.get(this.i++), + done: !1 + }; + }, class_1; + })())(this); + }, ArrayFormatBase2; + })(FormatBase_default) +); +typeof Symbol < "u" && (ArrayFormatBase.prototype[Symbol.iterator] = // eslint-disable-next-line @typescript-eslint/unbound-method +ArrayFormatBase.prototype._iterator); +var ArrayFormatBase_default = ArrayFormatBase; + +// node_modules/pe-library/dist/format/ImageDataDirectoryArray.js +var __extends2 = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(), ImageDataDirectoryArray = ( + /** @class */ + (function(_super) { + __extends2(ImageDataDirectoryArray2, _super); + function ImageDataDirectoryArray2(view) { + var _this = _super.call(this, view) || this; + return _this.length = 16, _this; + } + return ImageDataDirectoryArray2.from = function(bin, offset) { + return offset === void 0 && (offset = 0), new ImageDataDirectoryArray2(new DataView(bin, offset, 128)); + }, ImageDataDirectoryArray2.prototype.get = function(index) { + return { + virtualAddress: this.view.getUint32(index * 8, !0), + size: this.view.getUint32(4 + index * 8, !0) + }; + }, ImageDataDirectoryArray2.prototype.set = function(index, data) { + this.view.setUint32(index * 8, data.virtualAddress, !0), this.view.setUint32(4 + index * 8, data.size, !0); + }, ImageDataDirectoryArray2.prototype.findIndexByVirtualAddress = function(virtualAddress) { + for (var i = 0; i < 16; ++i) { + var va = this.view.getUint32(i * 8, !0), vs = this.view.getUint32(4 + i * 8, !0); + if (virtualAddress >= va && virtualAddress < va + vs) + return i; + } + return null; + }, ImageDataDirectoryArray2.size = 128, ImageDataDirectoryArray2.itemSize = 8, ImageDataDirectoryArray2; + })(ArrayFormatBase_default) +), ImageDataDirectoryArray_default = ImageDataDirectoryArray; + +// node_modules/pe-library/dist/format/ImageDirectoryEntry.js +var ImageDirectoryEntry = { + Export: 0, + Import: 1, + Resource: 2, + Exception: 3, + Certificate: 4, + Security: 4, + BaseRelocation: 5, + Debug: 6, + Architecture: 7, + GlobalPointer: 8, + Tls: 9, + TLS: 9, + LoadConfig: 10, + BoundImport: 11, + Iat: 12, + IAT: 12, + DelayImport: 13, + ComDescriptor: 14, + COMDescriptor: 14 + // alias +}, ImageDirectoryEntry_default = ImageDirectoryEntry; + +// node_modules/pe-library/dist/util/functions.js +function cloneObject(object) { + var r = {}; + return Object.keys(object).forEach(function(key) { + r[key] = object[key]; + }), r; +} +function createDataView(bin, byteOffset, byteLength) { + if ("buffer" in bin) { + var newOffset = bin.byteOffset, newLength = bin.byteLength; + return typeof byteOffset < "u" && (newOffset += byteOffset, newLength -= byteOffset), typeof byteLength < "u" && (newLength = byteLength), new DataView(bin.buffer, newOffset, newLength); + } else + return new DataView(bin, byteOffset, byteLength); +} +function calculateCheckSumForPE(bin, storeToBinary) { + for (var dosHeader = ImageDosHeader_default.from(bin), view = new DataView(bin), checkSumOffset = dosHeader.newHeaderAddress + 88, result = 0, limit = 4294967296, update3 = function(dword) { + result += dword, result >= limit && (result = result % limit + (result / limit | 0)); + }, len = view.byteLength, lenExtra = len % 4, lenAlign = len - lenExtra, i = 0; i < lenAlign; i += 4) + i !== checkSumOffset && update3(view.getUint32(i, !0)); + if (lenExtra !== 0) { + for (var extra = 0, i = 0; i < lenExtra; i++) + extra |= view.getUint8(lenAlign + i) << (3 - i) * 8; + update3(extra); + } + return result = (result & 65535) + (result >>> 16), result += result >>> 16, result = (result & 65535) + len, storeToBinary && view.setUint32(checkSumOffset, result, !0), result; +} +function roundUp(val, align) { + return Math.floor((val + align - 1) / align) * align; +} +function copyBuffer(dest, destOffset, src, srcOffset, length) { + var ua8Dest = "buffer" in dest ? new Uint8Array(dest.buffer, dest.byteOffset + (destOffset || 0), length) : new Uint8Array(dest, destOffset, length), ua8Src = "buffer" in src ? new Uint8Array(src.buffer, src.byteOffset + (srcOffset || 0), length) : new Uint8Array(src, srcOffset, length); + ua8Dest.set(ua8Src); +} +function allocatePartialBinary(binBase, offset, length) { + var b = new ArrayBuffer(length); + return copyBuffer(b, 0, binBase, offset, length), b; +} +function cloneToArrayBuffer(binBase) { + if ("buffer" in binBase) { + var b = new ArrayBuffer(binBase.byteLength); + return new Uint8Array(b).set(new Uint8Array(binBase.buffer, binBase.byteOffset, binBase.byteLength)), b; + } else { + var b = new ArrayBuffer(binBase.byteLength); + return new Uint8Array(b).set(new Uint8Array(binBase)), b; + } +} +function getFixedString(view, offset, length) { + for (var actualLen = 0, i = 0; i < length && view.getUint8(offset + i) !== 0; ++i) + ++actualLen; + if (typeof Buffer < "u") + return Buffer.from(view.buffer, view.byteOffset + offset, actualLen).toString("utf8"); + if (typeof decodeURIComponent < "u") { + for (var s = "", i = 0; i < actualLen; ++i) { + var c = view.getUint8(offset + i); + c < 16 ? s += "%0" + c.toString(16) : s += "%" + c.toString(16); + } + return decodeURIComponent(s); + } else { + for (var s = "", i = 0; i < actualLen; ++i) { + var c = view.getUint8(offset + i); + s += String.fromCharCode(c); + } + return s; + } +} +function setFixedString(view, offset, length, text) { + if (typeof Buffer < "u") { + var u = new Uint8Array(view.buffer, view.byteOffset + offset, length); + u.set(new Uint8Array(length)), u.set(Buffer.from(text, "utf8").subarray(0, length)); + } else if (typeof encodeURIComponent < "u") + for (var s = encodeURIComponent(text), i = 0, j = 0; i < length; ++i) + if (j >= s.length) + view.setUint8(i + offset, 0); + else { + var c = s.charCodeAt(j); + if (c === 37) { + var n = parseInt(s.substr(j + 1, 2), 16); + typeof n == "number" && !isNaN(n) ? view.setUint8(i + offset, n) : view.setUint8(i + offset, 0), j += 3; + } else + view.setUint8(i + offset, c); + } + else + for (var i = 0, j = 0; i < length; ++i) + if (j >= text.length) + view.setUint8(i + offset, 0); + else { + var c = text.charCodeAt(j); + view.setUint8(i + offset, c & 255); + } +} +function binaryToString(bin) { + if (typeof TextDecoder < "u") { + var dec = new TextDecoder(); + return dec.decode(bin); + } else if (typeof Buffer < "u") { + var b = void 0; + return "buffer" in bin ? b = Buffer.from(bin.buffer, bin.byteOffset, bin.byteLength) : b = Buffer.from(bin), b.toString("utf8"); + } else { + var view = void 0; + if ("buffer" in bin ? view = new Uint8Array(bin.buffer, bin.byteOffset, bin.byteLength) : view = new Uint8Array(bin), typeof decodeURIComponent < "u") { + for (var s = "", i = 0; i < view.length; ++i) { + var c = view[i]; + c < 16 ? s += "%0" + c.toString(16) : s += "%" + c.toString(16); + } + return decodeURIComponent(s); + } else { + for (var s = "", i = 0; i < view.length; ++i) { + var c = view[i]; + s += String.fromCharCode(c); + } + return s; + } + } +} +function stringToBinary(string) { + if (typeof TextEncoder < "u") { + var enc = new TextEncoder(); + return cloneToArrayBuffer(enc.encode(string)); + } else { + if (typeof Buffer < "u") + return cloneToArrayBuffer(Buffer.from(string, "utf8")); + if (typeof encodeURIComponent < "u") { + for (var data = encodeURIComponent(string), len = 0, i = 0; i < data.length; ++len) { + var c = data.charCodeAt(i); + c === 37 ? i += 3 : ++i; + } + for (var bin = new ArrayBuffer(len), view = new Uint8Array(bin), i = 0, j = 0; i < data.length; ++j) { + var c = data.charCodeAt(i); + if (c === 37) { + var n = parseInt(data.substring(i + 1, i + 3), 16); + view[j] = n, i += 3; + } else + view[j] = c, ++i; + } + return bin; + } else { + var bin = new ArrayBuffer(string.length); + return new Uint8Array(bin).set([].map.call(string, function(c2) { + return c2.charCodeAt(0); + })), bin; + } + } +} + +// node_modules/pe-library/dist/format/ImageDosHeader.js +var __extends3 = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(), ImageDosHeader = ( + /** @class */ + (function(_super) { + __extends3(ImageDosHeader2, _super); + function ImageDosHeader2(view) { + return _super.call(this, view) || this; + } + return ImageDosHeader2.from = function(bin, offset) { + return offset === void 0 && (offset = 0), new ImageDosHeader2(createDataView(bin, offset, 64)); + }, ImageDosHeader2.prototype.isValid = function() { + return this.magic === ImageDosHeader2.DEFAULT_MAGIC; + }, Object.defineProperty(ImageDosHeader2.prototype, "magic", { + get: function() { + return this.view.getUint16(0, !0); + }, + set: function(val) { + this.view.setUint16(0, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "lastPageSize", { + get: function() { + return this.view.getUint16(2, !0); + }, + set: function(val) { + this.view.setUint16(2, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "pages", { + get: function() { + return this.view.getUint16(4, !0); + }, + set: function(val) { + this.view.setUint16(4, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "relocations", { + get: function() { + return this.view.getUint16(6, !0); + }, + set: function(val) { + this.view.setUint16(6, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "headerSizeInParagraph", { + get: function() { + return this.view.getUint16(8, !0); + }, + set: function(val) { + this.view.setUint16(8, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "minAllocParagraphs", { + get: function() { + return this.view.getUint16(10, !0); + }, + set: function(val) { + this.view.setUint16(10, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "maxAllocParagraphs", { + get: function() { + return this.view.getUint16(12, !0); + }, + set: function(val) { + this.view.setUint16(12, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "initialSS", { + get: function() { + return this.view.getUint16(14, !0); + }, + set: function(val) { + this.view.setUint16(14, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "initialSP", { + get: function() { + return this.view.getUint16(16, !0); + }, + set: function(val) { + this.view.setUint16(16, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "checkSum", { + get: function() { + return this.view.getUint16(18, !0); + }, + set: function(val) { + this.view.setUint16(18, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "initialIP", { + get: function() { + return this.view.getUint16(20, !0); + }, + set: function(val) { + this.view.setUint16(20, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "initialCS", { + get: function() { + return this.view.getUint16(22, !0); + }, + set: function(val) { + this.view.setUint16(22, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "relocationTableAddress", { + get: function() { + return this.view.getUint16(24, !0); + }, + set: function(val) { + this.view.setUint16(24, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "overlayNum", { + get: function() { + return this.view.getUint16(26, !0); + }, + set: function(val) { + this.view.setUint16(26, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "oemId", { + // WORD e_res[4] (28,30,32,34) + get: function() { + return this.view.getUint16(36, !0); + }, + set: function(val) { + this.view.setUint16(36, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "oemInfo", { + get: function() { + return this.view.getUint16(38, !0); + }, + set: function(val) { + this.view.setUint16(38, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageDosHeader2.prototype, "newHeaderAddress", { + // WORD e_res2[10] (40,42,44,46,48,50,52,54,56,58) + get: function() { + return this.view.getUint32(60, !0); + }, + set: function(val) { + this.view.setUint32(60, val, !0); + }, + enumerable: !1, + configurable: !0 + }), ImageDosHeader2.size = 64, ImageDosHeader2.DEFAULT_MAGIC = 23117, ImageDosHeader2; + })(FormatBase_default) +), ImageDosHeader_default = ImageDosHeader; + +// node_modules/pe-library/dist/format/ImageFileHeader.js +var __extends4 = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(), ImageFileHeader = ( + /** @class */ + (function(_super) { + __extends4(ImageFileHeader2, _super); + function ImageFileHeader2(view) { + return _super.call(this, view) || this; + } + return ImageFileHeader2.from = function(bin, offset) { + return offset === void 0 && (offset = 0), new ImageFileHeader2(new DataView(bin, offset, 20)); + }, Object.defineProperty(ImageFileHeader2.prototype, "machine", { + get: function() { + return this.view.getUint16(0, !0); + }, + set: function(val) { + this.view.setUint16(0, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageFileHeader2.prototype, "numberOfSections", { + get: function() { + return this.view.getUint16(2, !0); + }, + set: function(val) { + this.view.setUint16(2, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageFileHeader2.prototype, "timeDateStamp", { + get: function() { + return this.view.getUint32(4, !0); + }, + set: function(val) { + this.view.setUint32(4, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageFileHeader2.prototype, "pointerToSymbolTable", { + get: function() { + return this.view.getUint32(8, !0); + }, + set: function(val) { + this.view.setUint32(8, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageFileHeader2.prototype, "numberOfSymbols", { + get: function() { + return this.view.getUint32(12, !0); + }, + set: function(val) { + this.view.setUint32(12, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageFileHeader2.prototype, "sizeOfOptionalHeader", { + get: function() { + return this.view.getUint16(16, !0); + }, + set: function(val) { + this.view.setUint16(16, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageFileHeader2.prototype, "characteristics", { + get: function() { + return this.view.getUint16(18, !0); + }, + set: function(val) { + this.view.setUint16(18, val, !0); + }, + enumerable: !1, + configurable: !0 + }), ImageFileHeader2.size = 20, ImageFileHeader2; + })(FormatBase_default) +), ImageFileHeader_default = ImageFileHeader; + +// node_modules/pe-library/dist/format/ImageOptionalHeader.js +var __extends5 = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(), ImageOptionalHeader = ( + /** @class */ + (function(_super) { + __extends5(ImageOptionalHeader2, _super); + function ImageOptionalHeader2(view) { + return _super.call(this, view) || this; + } + return ImageOptionalHeader2.from = function(bin, offset) { + return offset === void 0 && (offset = 0), new ImageOptionalHeader2(new DataView(bin, offset, 96)); + }, Object.defineProperty(ImageOptionalHeader2.prototype, "magic", { + get: function() { + return this.view.getUint16(0, !0); + }, + set: function(val) { + this.view.setUint16(0, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "majorLinkerVersion", { + get: function() { + return this.view.getUint8(2); + }, + set: function(val) { + this.view.setUint8(2, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "minorLinkerVersion", { + get: function() { + return this.view.getUint8(3); + }, + set: function(val) { + this.view.setUint8(3, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "sizeOfCode", { + get: function() { + return this.view.getUint32(4, !0); + }, + set: function(val) { + this.view.setUint32(4, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "sizeOfInitializedData", { + get: function() { + return this.view.getUint32(8, !0); + }, + set: function(val) { + this.view.setUint32(8, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "sizeOfUninitializedData", { + get: function() { + return this.view.getUint32(12, !0); + }, + set: function(val) { + this.view.setUint32(12, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "addressOfEntryPoint", { + get: function() { + return this.view.getUint32(16, !0); + }, + set: function(val) { + this.view.setUint32(16, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "baseOfCode", { + get: function() { + return this.view.getUint32(20, !0); + }, + set: function(val) { + this.view.setUint32(20, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "baseOfData", { + get: function() { + return this.view.getUint32(24, !0); + }, + set: function(val) { + this.view.setUint32(24, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "imageBase", { + get: function() { + return this.view.getUint32(28, !0); + }, + set: function(val) { + this.view.setUint32(28, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "sectionAlignment", { + get: function() { + return this.view.getUint32(32, !0); + }, + set: function(val) { + this.view.setUint32(32, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "fileAlignment", { + get: function() { + return this.view.getUint32(36, !0); + }, + set: function(val) { + this.view.setUint32(36, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "majorOperatingSystemVersion", { + get: function() { + return this.view.getUint16(40, !0); + }, + set: function(val) { + this.view.setUint16(40, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "minorOperatingSystemVersion", { + get: function() { + return this.view.getUint16(42, !0); + }, + set: function(val) { + this.view.setUint16(42, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "majorImageVersion", { + get: function() { + return this.view.getUint16(44, !0); + }, + set: function(val) { + this.view.setUint16(44, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "minorImageVersion", { + get: function() { + return this.view.getUint16(46, !0); + }, + set: function(val) { + this.view.setUint16(46, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "majorSubsystemVersion", { + get: function() { + return this.view.getUint16(48, !0); + }, + set: function(val) { + this.view.setUint16(48, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "minorSubsystemVersion", { + get: function() { + return this.view.getUint16(50, !0); + }, + set: function(val) { + this.view.setUint16(50, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "win32VersionValue", { + get: function() { + return this.view.getUint32(52, !0); + }, + set: function(val) { + this.view.setUint32(52, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "sizeOfImage", { + get: function() { + return this.view.getUint32(56, !0); + }, + set: function(val) { + this.view.setUint32(56, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "sizeOfHeaders", { + get: function() { + return this.view.getUint32(60, !0); + }, + set: function(val) { + this.view.setUint32(60, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "checkSum", { + get: function() { + return this.view.getUint32(64, !0); + }, + set: function(val) { + this.view.setUint32(64, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "subsystem", { + get: function() { + return this.view.getUint16(68, !0); + }, + set: function(val) { + this.view.setUint16(68, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "dllCharacteristics", { + get: function() { + return this.view.getUint16(70, !0); + }, + set: function(val) { + this.view.setUint16(70, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "sizeOfStackReserve", { + get: function() { + return this.view.getUint32(72, !0); + }, + set: function(val) { + this.view.setUint32(72, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "sizeOfStackCommit", { + get: function() { + return this.view.getUint32(76, !0); + }, + set: function(val) { + this.view.setUint32(76, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "sizeOfHeapReserve", { + get: function() { + return this.view.getUint32(80, !0); + }, + set: function(val) { + this.view.setUint32(80, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "sizeOfHeapCommit", { + get: function() { + return this.view.getUint32(84, !0); + }, + set: function(val) { + this.view.setUint32(84, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "loaderFlags", { + get: function() { + return this.view.getUint32(88, !0); + }, + set: function(val) { + this.view.setUint32(88, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader2.prototype, "numberOfRvaAndSizes", { + get: function() { + return this.view.getUint32(92, !0); + }, + set: function(val) { + this.view.setUint32(92, val, !0); + }, + enumerable: !1, + configurable: !0 + }), ImageOptionalHeader2.size = 96, ImageOptionalHeader2.DEFAULT_MAGIC = 267, ImageOptionalHeader2; + })(FormatBase_default) +), ImageOptionalHeader_default = ImageOptionalHeader; + +// node_modules/pe-library/dist/format/ImageOptionalHeader64.js +var __extends6 = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +function getUint64LE(view, offset) { + return view.getUint32(offset + 4, !0) * 4294967296 + view.getUint32(offset, !0); +} +function setUint64LE(view, offset, val) { + view.setUint32(offset, val & 4294967295, !0), view.setUint32(offset + 4, Math.floor(val / 4294967296), !0); +} +function getUint64LEBigInt(view, offset) { + if (typeof BigInt > "u") + throw new Error("BigInt not supported"); + return BigInt(4294967296) * BigInt(view.getUint32(offset + 4, !0)) + BigInt(view.getUint32(offset, !0)); +} +function setUint64LEBigInt(view, offset, val) { + if (typeof BigInt > "u") + throw new Error("BigInt not supported"); + view.setUint32(offset, Number(val & BigInt(4294967295)), !0), view.setUint32(offset + 4, Math.floor(Number(val / BigInt(4294967296) & BigInt(4294967295))), !0); +} +var ImageOptionalHeader64 = ( + /** @class */ + (function(_super) { + __extends6(ImageOptionalHeader642, _super); + function ImageOptionalHeader642(view) { + return _super.call(this, view) || this; + } + return ImageOptionalHeader642.from = function(bin, offset) { + return offset === void 0 && (offset = 0), new ImageOptionalHeader642(new DataView(bin, offset, 112)); + }, Object.defineProperty(ImageOptionalHeader642.prototype, "magic", { + get: function() { + return this.view.getUint16(0, !0); + }, + set: function(val) { + this.view.setUint16(0, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "majorLinkerVersion", { + get: function() { + return this.view.getUint8(2); + }, + set: function(val) { + this.view.setUint8(2, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "minorLinkerVersion", { + get: function() { + return this.view.getUint8(3); + }, + set: function(val) { + this.view.setUint8(3, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfCode", { + get: function() { + return this.view.getUint32(4, !0); + }, + set: function(val) { + this.view.setUint32(4, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfInitializedData", { + get: function() { + return this.view.getUint32(8, !0); + }, + set: function(val) { + this.view.setUint32(8, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfUninitializedData", { + get: function() { + return this.view.getUint32(12, !0); + }, + set: function(val) { + this.view.setUint32(12, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "addressOfEntryPoint", { + get: function() { + return this.view.getUint32(16, !0); + }, + set: function(val) { + this.view.setUint32(16, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "baseOfCode", { + get: function() { + return this.view.getUint32(20, !0); + }, + set: function(val) { + this.view.setUint32(20, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "imageBase", { + get: function() { + return getUint64LE(this.view, 24); + }, + set: function(val) { + setUint64LE(this.view, 24, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "imageBaseBigInt", { + get: function() { + return getUint64LEBigInt(this.view, 24); + }, + set: function(val) { + setUint64LEBigInt(this.view, 24, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sectionAlignment", { + get: function() { + return this.view.getUint32(32, !0); + }, + set: function(val) { + this.view.setUint32(32, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "fileAlignment", { + get: function() { + return this.view.getUint32(36, !0); + }, + set: function(val) { + this.view.setUint32(36, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "majorOperatingSystemVersion", { + get: function() { + return this.view.getUint16(40, !0); + }, + set: function(val) { + this.view.setUint16(40, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "minorOperatingSystemVersion", { + get: function() { + return this.view.getUint16(42, !0); + }, + set: function(val) { + this.view.setUint16(42, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "majorImageVersion", { + get: function() { + return this.view.getUint16(44, !0); + }, + set: function(val) { + this.view.setUint16(44, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "minorImageVersion", { + get: function() { + return this.view.getUint16(46, !0); + }, + set: function(val) { + this.view.setUint16(46, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "majorSubsystemVersion", { + get: function() { + return this.view.getUint16(48, !0); + }, + set: function(val) { + this.view.setUint16(48, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "minorSubsystemVersion", { + get: function() { + return this.view.getUint16(50, !0); + }, + set: function(val) { + this.view.setUint16(50, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "win32VersionValue", { + get: function() { + return this.view.getUint32(52, !0); + }, + set: function(val) { + this.view.setUint32(52, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfImage", { + get: function() { + return this.view.getUint32(56, !0); + }, + set: function(val) { + this.view.setUint32(56, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfHeaders", { + get: function() { + return this.view.getUint32(60, !0); + }, + set: function(val) { + this.view.setUint32(60, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "checkSum", { + get: function() { + return this.view.getUint32(64, !0); + }, + set: function(val) { + this.view.setUint32(64, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "subsystem", { + get: function() { + return this.view.getUint16(68, !0); + }, + set: function(val) { + this.view.setUint16(68, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "dllCharacteristics", { + get: function() { + return this.view.getUint16(70, !0); + }, + set: function(val) { + this.view.setUint16(70, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfStackReserve", { + get: function() { + return getUint64LE(this.view, 72); + }, + set: function(val) { + setUint64LE(this.view, 72, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfStackReserveBigInt", { + get: function() { + return getUint64LEBigInt(this.view, 72); + }, + set: function(val) { + setUint64LEBigInt(this.view, 72, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfStackCommit", { + get: function() { + return getUint64LE(this.view, 80); + }, + set: function(val) { + setUint64LE(this.view, 80, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfStackCommitBigInt", { + get: function() { + return getUint64LEBigInt(this.view, 80); + }, + set: function(val) { + setUint64LEBigInt(this.view, 80, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfHeapReserve", { + get: function() { + return getUint64LE(this.view, 88); + }, + set: function(val) { + setUint64LE(this.view, 88, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfHeapReserveBigInt", { + get: function() { + return getUint64LEBigInt(this.view, 88); + }, + set: function(val) { + setUint64LEBigInt(this.view, 88, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfHeapCommit", { + get: function() { + return getUint64LE(this.view, 96); + }, + set: function(val) { + setUint64LE(this.view, 96, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "sizeOfHeapCommitBigInt", { + get: function() { + return getUint64LEBigInt(this.view, 96); + }, + set: function(val) { + setUint64LEBigInt(this.view, 96, val); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "loaderFlags", { + get: function() { + return this.view.getUint32(104, !0); + }, + set: function(val) { + this.view.setUint32(104, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageOptionalHeader642.prototype, "numberOfRvaAndSizes", { + get: function() { + return this.view.getUint32(108, !0); + }, + set: function(val) { + this.view.setUint32(108, val, !0); + }, + enumerable: !1, + configurable: !0 + }), ImageOptionalHeader642.size = 112, ImageOptionalHeader642.DEFAULT_MAGIC = 523, ImageOptionalHeader642; + })(FormatBase_default) +), ImageOptionalHeader64_default = ImageOptionalHeader64; + +// node_modules/pe-library/dist/format/ImageNtHeaders.js +var __extends7 = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(), ImageNtHeaders = ( + /** @class */ + (function(_super) { + __extends7(ImageNtHeaders2, _super); + function ImageNtHeaders2(view) { + return _super.call(this, view) || this; + } + return ImageNtHeaders2.from = function(bin, offset) { + offset === void 0 && (offset = 0); + var magic = createDataView(bin, offset + ImageFileHeader_default.size, 6).getUint16(4, !0), len = 4 + ImageFileHeader_default.size + ImageDataDirectoryArray_default.size; + return magic === ImageOptionalHeader64_default.DEFAULT_MAGIC ? len += ImageOptionalHeader64_default.size : len += ImageOptionalHeader_default.size, new ImageNtHeaders2(createDataView(bin, offset, len)); + }, ImageNtHeaders2.prototype.isValid = function() { + return this.signature === ImageNtHeaders2.DEFAULT_SIGNATURE; + }, ImageNtHeaders2.prototype.is32bit = function() { + return this.view.getUint16(ImageFileHeader_default.size + 4, !0) === ImageOptionalHeader_default.DEFAULT_MAGIC; + }, Object.defineProperty(ImageNtHeaders2.prototype, "signature", { + get: function() { + return this.view.getUint32(0, !0); + }, + set: function(val) { + this.view.setUint32(0, val, !0); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageNtHeaders2.prototype, "fileHeader", { + get: function() { + return ImageFileHeader_default.from(this.view.buffer, this.view.byteOffset + 4); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageNtHeaders2.prototype, "optionalHeader", { + get: function() { + var off = ImageFileHeader_default.size + 4, magic = this.view.getUint16(off, !0); + return magic === ImageOptionalHeader64_default.DEFAULT_MAGIC ? ImageOptionalHeader64_default.from(this.view.buffer, this.view.byteOffset + off) : ImageOptionalHeader_default.from(this.view.buffer, this.view.byteOffset + off); + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(ImageNtHeaders2.prototype, "optionalHeaderDataDirectory", { + get: function() { + return ImageDataDirectoryArray_default.from(this.view.buffer, this.view.byteOffset + this.getDataDirectoryOffset()); + }, + enumerable: !1, + configurable: !0 + }), ImageNtHeaders2.prototype.getDataDirectoryOffset = function() { + var off = ImageFileHeader_default.size + 4, magic = this.view.getUint16(off, !0); + return magic === ImageOptionalHeader64_default.DEFAULT_MAGIC ? off += ImageOptionalHeader64_default.size : off += ImageOptionalHeader_default.size, off; + }, ImageNtHeaders2.prototype.getSectionHeaderOffset = function() { + return this.getDataDirectoryOffset() + ImageDataDirectoryArray_default.size; + }, ImageNtHeaders2.DEFAULT_SIGNATURE = 17744, ImageNtHeaders2; + })(FormatBase_default) +), ImageNtHeaders_default = ImageNtHeaders; + +// node_modules/pe-library/dist/format/ImageSectionHeaderArray.js +var __extends8 = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(), ImageSectionHeaderArray = ( + /** @class */ + (function(_super) { + __extends8(ImageSectionHeaderArray2, _super); + function ImageSectionHeaderArray2(view, length) { + var _this = _super.call(this, view) || this; + return _this.length = length, _this; + } + return ImageSectionHeaderArray2.from = function(bin, length, offset) { + offset === void 0 && (offset = 0); + var size = length * 40; + return new ImageSectionHeaderArray2(new DataView(bin, offset, size), length); + }, ImageSectionHeaderArray2.prototype.get = function(index) { + return { + name: getFixedString(this.view, index * 40, 8), + virtualSize: this.view.getUint32(8 + index * 40, !0), + virtualAddress: this.view.getUint32(12 + index * 40, !0), + sizeOfRawData: this.view.getUint32(16 + index * 40, !0), + pointerToRawData: this.view.getUint32(20 + index * 40, !0), + pointerToRelocations: this.view.getUint32(24 + index * 40, !0), + pointerToLineNumbers: this.view.getUint32(28 + index * 40, !0), + numberOfRelocations: this.view.getUint16(32 + index * 40, !0), + numberOfLineNumbers: this.view.getUint16(34 + index * 40, !0), + characteristics: this.view.getUint32(36 + index * 40, !0) + }; + }, ImageSectionHeaderArray2.prototype.set = function(index, data) { + setFixedString(this.view, index * 40, 8, data.name), this.view.setUint32(8 + index * 40, data.virtualSize, !0), this.view.setUint32(12 + index * 40, data.virtualAddress, !0), this.view.setUint32(16 + index * 40, data.sizeOfRawData, !0), this.view.setUint32(20 + index * 40, data.pointerToRawData, !0), this.view.setUint32(24 + index * 40, data.pointerToRelocations, !0), this.view.setUint32(28 + index * 40, data.pointerToLineNumbers, !0), this.view.setUint16(32 + index * 40, data.numberOfRelocations, !0), this.view.setUint16(34 + index * 40, data.numberOfLineNumbers, !0), this.view.setUint32(36 + index * 40, data.characteristics, !0); + }, ImageSectionHeaderArray2.itemSize = 40, ImageSectionHeaderArray2; + })(ArrayFormatBase_default) +), ImageSectionHeaderArray_default = ImageSectionHeaderArray; + +// node_modules/pe-library/dist/util/generate.js +var DOS_STUB_PROGRAM = new Uint8Array([ + 14, + 31, + 186, + 14, + 0, + 180, + 9, + 205, + 33, + 184, + 1, + 76, + 205, + 33, + 68, + 79, + 83, + 32, + 109, + 111, + 100, + 101, + 32, + 110, + 111, + 116, + 32, + 115, + 117, + 112, + 112, + 111, + 114, + 116, + 101, + 100, + 46, + 13, + 13, + 10, + 36, + 0, + 0, + 0, + 0, + 0, + 0, + 0 +]), DOS_STUB_SIZE = roundUp(ImageDosHeader_default.size + DOS_STUB_PROGRAM.length, 128), DEFAULT_FILE_ALIGNMENT = 512; +function fillDosStubData(bin) { + var dos = ImageDosHeader_default.from(bin); + dos.magic = ImageDosHeader_default.DEFAULT_MAGIC, dos.lastPageSize = DOS_STUB_SIZE % 512, dos.pages = Math.ceil(DOS_STUB_SIZE / 512), dos.relocations = 0, dos.headerSizeInParagraph = Math.ceil(ImageDosHeader_default.size / 16), dos.minAllocParagraphs = 0, dos.maxAllocParagraphs = 65535, dos.initialSS = 0, dos.initialSP = 128, dos.relocationTableAddress = ImageDosHeader_default.size, dos.newHeaderAddress = DOS_STUB_SIZE, copyBuffer(bin, ImageDosHeader_default.size, DOS_STUB_PROGRAM, 0, DOS_STUB_PROGRAM.length); +} +function estimateNewHeaderSize(is32Bit) { + return ( + // magic + 4 + ImageFileHeader_default.size + (is32Bit ? ImageOptionalHeader_default.size : ImageOptionalHeader64_default.size) + ImageDataDirectoryArray_default.size + ); +} +function fillPeHeaderEmptyData(bin, offset, totalBinSize, is32Bit, isDLL) { + var _bin, _offset; + "buffer" in bin ? (_bin = bin.buffer, _offset = bin.byteOffset + offset) : (_bin = bin, _offset = offset), new DataView(_bin, _offset).setUint32(0, ImageNtHeaders_default.DEFAULT_SIGNATURE, !0); + var fh = ImageFileHeader_default.from(_bin, _offset + 4); + fh.machine = is32Bit ? 332 : 34404, fh.numberOfSections = 0, fh.timeDateStamp = 0, fh.pointerToSymbolTable = 0, fh.numberOfSymbols = 0, fh.sizeOfOptionalHeader = (is32Bit ? ImageOptionalHeader_default.size : ImageOptionalHeader64_default.size) + ImageDataDirectoryArray_default.size, fh.characteristics = isDLL ? 8450 : 258; + var oh = (is32Bit ? ImageOptionalHeader_default : ImageOptionalHeader64_default).from(_bin, _offset + 4 + ImageFileHeader_default.size); + oh.magic = is32Bit ? ImageOptionalHeader_default.DEFAULT_MAGIC : ImageOptionalHeader64_default.DEFAULT_MAGIC, oh.sizeOfCode = 0, oh.sizeOfInitializedData = 0, oh.sizeOfUninitializedData = 0, oh.addressOfEntryPoint = 0, oh.baseOfCode = 4096, oh.imageBase = is32Bit ? 16777216 : 6442450944, oh.sectionAlignment = 4096, oh.fileAlignment = DEFAULT_FILE_ALIGNMENT, oh.majorOperatingSystemVersion = 6, oh.minorOperatingSystemVersion = 0, oh.majorSubsystemVersion = 6, oh.minorSubsystemVersion = 0, oh.sizeOfHeaders = roundUp(totalBinSize, oh.fileAlignment), oh.subsystem = 2, oh.dllCharacteristics = (is32Bit ? 0 : 32) + // IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA + 64 + // IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE + 256, oh.sizeOfStackReserve = 1048576, oh.sizeOfStackCommit = 4096, oh.sizeOfHeapReserve = 1048576, oh.sizeOfHeapCommit = 4096, oh.numberOfRvaAndSizes = ImageDataDirectoryArray_default.size / ImageDataDirectoryArray_default.itemSize; +} +function makeEmptyNtExecutableBinary(is32Bit, isDLL) { + var bufferSize = roundUp(DOS_STUB_SIZE + estimateNewHeaderSize(is32Bit), DEFAULT_FILE_ALIGNMENT), bin = new ArrayBuffer(bufferSize); + return fillDosStubData(bin), fillPeHeaderEmptyData(bin, DOS_STUB_SIZE, bufferSize, is32Bit, isDLL), bin; +} + +// node_modules/pe-library/dist/NtExecutable.js +var NtExecutable = ( + /** @class */ + (function() { + function NtExecutable2(_headers, _sections, _ex) { + this._headers = _headers, this._sections = _sections, this._ex = _ex; + var dh = ImageDosHeader_default.from(_headers), nh = ImageNtHeaders_default.from(_headers, dh.newHeaderAddress); + this._dh = dh, this._nh = nh, this._dda = nh.optionalHeaderDataDirectory, _sections.sort(function(a, b) { + var ra = a.info.pointerToRawData, rb = a.info.pointerToRawData; + if (ra !== rb) + return ra - rb; + var va = a.info.virtualAddress, vb = b.info.virtualAddress; + return va === vb ? a.info.virtualSize - b.info.virtualSize : va - vb; + }); + } + return NtExecutable2.createEmpty = function(is32Bit, isDLL) { + return is32Bit === void 0 && (is32Bit = !1), isDLL === void 0 && (isDLL = !0), this.from(makeEmptyNtExecutableBinary(is32Bit, isDLL)); + }, NtExecutable2.from = function(bin, options) { + var dh = ImageDosHeader_default.from(bin), nh = ImageNtHeaders_default.from(bin, dh.newHeaderAddress); + if (!dh.isValid() || !nh.isValid()) + throw new TypeError("Invalid binary format"); + if (nh.fileHeader.numberOfSymbols > 0) + throw new Error("Binary with symbols is not supported now"); + var fileAlignment = nh.optionalHeader.fileAlignment, securityEntry = nh.optionalHeaderDataDirectory.get(ImageDirectoryEntry_default.Certificate); + if (securityEntry.size > 0 && !options?.ignoreCert) + throw new Error("Parsing signed executable binary is not allowed by default."); + var secOff = dh.newHeaderAddress + nh.getSectionHeaderOffset(), secCount = nh.fileHeader.numberOfSections, sections = [], tempSectionHeaderBinary = allocatePartialBinary(bin, secOff, secCount * ImageSectionHeaderArray_default.itemSize), secArray = ImageSectionHeaderArray_default.from(tempSectionHeaderBinary, secCount, 0), lastOffset = roundUp(secOff + secCount * ImageSectionHeaderArray_default.itemSize, fileAlignment); + secArray.forEach(function(info3) { + if (!info3.pointerToRawData || !info3.sizeOfRawData) + info3.pointerToRawData = 0, info3.sizeOfRawData = 0, sections.push({ + info: info3, + data: null + }); + else { + var secBin = allocatePartialBinary(bin, info3.pointerToRawData, info3.sizeOfRawData); + sections.push({ + info: info3, + data: secBin + }); + var secEndOffset = roundUp(info3.pointerToRawData + info3.sizeOfRawData, fileAlignment); + secEndOffset > lastOffset && (lastOffset = secEndOffset); + } + }); + var headers = allocatePartialBinary(bin, 0, secOff), exData = null, lastExDataOffset = bin.byteLength; + return securityEntry.size > 0 && (lastExDataOffset = securityEntry.virtualAddress), lastOffset < lastExDataOffset && (exData = allocatePartialBinary(bin, lastOffset, lastExDataOffset - lastOffset)), new NtExecutable2(headers, sections, exData); + }, NtExecutable2.prototype.is32bit = function() { + return this._nh.is32bit(); + }, NtExecutable2.prototype.getTotalHeaderSize = function() { + return this._headers.byteLength; + }, Object.defineProperty(NtExecutable2.prototype, "dosHeader", { + get: function() { + return this._dh; + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(NtExecutable2.prototype, "newHeader", { + get: function() { + return this._nh; + }, + enumerable: !1, + configurable: !0 + }), NtExecutable2.prototype.getRawHeader = function() { + return this._headers; + }, NtExecutable2.prototype.getImageBase = function() { + return this._nh.optionalHeader.imageBase; + }, NtExecutable2.prototype.getFileAlignment = function() { + return this._nh.optionalHeader.fileAlignment; + }, NtExecutable2.prototype.getSectionAlignment = function() { + return this._nh.optionalHeader.sectionAlignment; + }, NtExecutable2.prototype.getAllSections = function() { + return this._sections; + }, NtExecutable2.prototype.getSectionByEntry = function(entry) { + var dd = this._dda.get(entry), r = this._sections.filter(function(sec) { + var vaEnd = sec.info.virtualAddress + sec.info.virtualSize; + return dd.virtualAddress >= sec.info.virtualAddress && dd.virtualAddress < vaEnd; + }).shift(); + return r !== void 0 ? r : null; + }, NtExecutable2.prototype.setSectionByEntry = function(entry, section) { + var sec = section ? { data: section.data, info: section.info } : null, dd = this._dda.get(entry), hasEntry = dd.size > 0; + if (sec) { + var rawSize = sec.data ? sec.data.byteLength : 0, fileAlign = this._nh.optionalHeader.fileAlignment, secAlign = this._nh.optionalHeader.sectionAlignment, alignedFileSize = sec.data ? roundUp(rawSize, fileAlign) : 0, alignedSecSize = sec.data ? roundUp(sec.info.virtualSize, secAlign) : 0; + if (sec.info.sizeOfRawData < alignedFileSize ? sec.info.sizeOfRawData = alignedFileSize : alignedFileSize = sec.info.sizeOfRawData, hasEntry) + this.replaceSectionImpl(dd.virtualAddress, sec.info, sec.data); + else { + var virtAddr_1 = 0, rawAddr_1 = roundUp(this._headers.byteLength, fileAlign); + this._sections.forEach(function(secExist) { + secExist.info.pointerToRawData && rawAddr_1 <= secExist.info.pointerToRawData && (rawAddr_1 = secExist.info.pointerToRawData + secExist.info.sizeOfRawData), virtAddr_1 <= secExist.info.virtualAddress && (virtAddr_1 = secExist.info.virtualAddress + secExist.info.virtualSize); + }), alignedFileSize || (rawAddr_1 = 0), virtAddr_1 || (virtAddr_1 = this.newHeader.optionalHeader.baseOfCode), virtAddr_1 = roundUp(virtAddr_1, secAlign), sec.info.pointerToRawData = rawAddr_1, sec.info.virtualAddress = virtAddr_1, this._dda.set(entry, { + size: rawSize, + virtualAddress: virtAddr_1 + }), this._sections.push(sec), this._nh.fileHeader.numberOfSections = this._sections.length, this._nh.optionalHeader.sizeOfImage = roundUp(virtAddr_1 + alignedSecSize, this._nh.optionalHeader.sectionAlignment); + } + } else if (hasEntry) { + this._dda.set(entry, { size: 0, virtualAddress: 0 }); + for (var len = this._sections.length, i = 0; i < len; ++i) { + var sec_1 = this._sections[i], vaStart = sec_1.info.virtualAddress, vaLast = vaStart + sec_1.info.virtualSize; + if (dd.virtualAddress >= vaStart && dd.virtualAddress < vaLast) { + this._sections.splice(i, 1), this._nh.fileHeader.numberOfSections = this._sections.length; + break; + } + } + } + }, NtExecutable2.prototype.getExtraData = function() { + return this._ex; + }, NtExecutable2.prototype.setExtraData = function(bin) { + bin === null ? this._ex = null : this._ex = cloneToArrayBuffer(bin); + }, NtExecutable2.prototype.generate = function(paddingSize) { + var dh = this._dh, nh = this._nh, secOff = dh.newHeaderAddress + nh.getSectionHeaderOffset(), size = secOff; + size += this._sections.length * ImageSectionHeaderArray_default.itemSize; + var align = nh.optionalHeader.fileAlignment; + size = roundUp(size, align), this._sections.forEach(function(sec) { + if (sec.info.pointerToRawData) { + var lastOff = sec.info.pointerToRawData + sec.info.sizeOfRawData; + size < lastOff && (size = lastOff, size = roundUp(size, align)); + } + }); + var lastPosition = size; + this._ex !== null && (size += this._ex.byteLength), typeof paddingSize == "number" && (size += paddingSize); + var bin = new ArrayBuffer(size), u8bin = new Uint8Array(bin); + u8bin.set(new Uint8Array(this._headers, 0, secOff)), ImageDataDirectoryArray_default.from(bin, dh.newHeaderAddress + nh.getDataDirectoryOffset()).set(ImageDirectoryEntry_default.Certificate, { + size: 0, + virtualAddress: 0 + }); + var secArray = ImageSectionHeaderArray_default.from(bin, this._sections.length, secOff); + return this._sections.forEach(function(sec, i) { + sec.data || (sec.info.pointerToRawData = 0, sec.info.sizeOfRawData = 0), secArray.set(i, sec.info), !(!sec.data || !sec.info.pointerToRawData) && u8bin.set(new Uint8Array(sec.data), sec.info.pointerToRawData); + }), this._ex !== null && u8bin.set(new Uint8Array(this._ex), lastPosition), nh.optionalHeader.checkSum !== 0 && calculateCheckSumForPE(bin, !0), bin; + }, NtExecutable2.prototype.rearrangeSections = function(rawAddressStart, rawDiff, virtualAddressStart, virtualDiff) { + if (!(!rawDiff && !virtualDiff)) { + for (var nh = this._nh, secAlign = nh.optionalHeader.sectionAlignment, dirs = this._dda, len = this._sections.length, lastVirtAddress = 0, i = 0; i < len; ++i) { + var sec = this._sections[i], virtAddr = sec.info.virtualAddress; + if (virtualDiff && virtAddr >= virtualAddressStart) { + var iDir = dirs.findIndexByVirtualAddress(virtAddr); + virtAddr += virtualDiff, iDir !== null && dirs.set(iDir, { + virtualAddress: virtAddr, + size: sec.info.virtualSize + }), sec.info.virtualAddress = virtAddr; + } + var fileAddr = sec.info.pointerToRawData; + rawDiff && fileAddr >= rawAddressStart && (sec.info.pointerToRawData = fileAddr + rawDiff), lastVirtAddress = roundUp(sec.info.virtualAddress + sec.info.virtualSize, secAlign); + } + nh.optionalHeader.sizeOfImage = lastVirtAddress; + } + }, NtExecutable2.prototype.replaceSectionImpl = function(virtualAddress, info3, data) { + for (var len = this._sections.length, i = 0; i < len; ++i) { + var s = this._sections[i]; + if (s.info.virtualAddress === virtualAddress) { + var secAlign = this._nh.optionalHeader.sectionAlignment, fileAddr = s.info.pointerToRawData, oldFileAddr = fileAddr + s.info.sizeOfRawData, oldVirtAddr = virtualAddress + roundUp(s.info.virtualSize, secAlign); + s.info = cloneObject(info3), s.info.virtualAddress = virtualAddress, s.info.pointerToRawData = fileAddr, s.data = data; + var newFileAddr = fileAddr + info3.sizeOfRawData, newVirtAddr = virtualAddress + roundUp(info3.virtualSize, secAlign); + this.rearrangeSections(oldFileAddr, newFileAddr - oldFileAddr, oldVirtAddr, newVirtAddr - oldVirtAddr); + { + var dirs = this._dda, iDir = dirs.findIndexByVirtualAddress(virtualAddress); + iDir !== null && dirs.set(iDir, { + virtualAddress, + size: info3.virtualSize + }); + } + break; + } + } + }, NtExecutable2; + })() +), NtExecutable_default = NtExecutable; + +// node_modules/pe-library/dist/NtExecutableResource.js +function removeDuplicates(a) { + return a.reduce(function(p, c) { + return p.indexOf(c) >= 0 ? p : p.concat(c); + }, []); +} +function readString(view, offset) { + var length = view.getUint16(offset, !0), r = ""; + offset += 2; + for (var i = 0; i < length; ++i) + r += String.fromCharCode(view.getUint16(offset, !0)), offset += 2; + return r; +} +function readLanguageTable(view, typeEntry, name, languageTable, cb) { + var off = languageTable, nameEntry = { + name, + languageTable, + characteristics: view.getUint32(off, !0), + dateTime: view.getUint32(off + 4, !0), + majorVersion: view.getUint16(off + 8, !0), + minorVersion: view.getUint16(off + 10, !0) + }, nameCount = view.getUint16(off + 12, !0), idCount = view.getUint16(off + 14, !0); + off += 16; + for (var i = 0; i < nameCount; ++i) { + var nameOffset = view.getUint32(off, !0) & 2147483647, dataOffset = view.getUint32(off + 4, !0); + if ((dataOffset & 2147483648) !== 0) { + off += 8; + continue; + } + var name_1 = readString(view, nameOffset); + cb(typeEntry, nameEntry, { lang: name_1, dataOffset }), off += 8; + } + for (var i = 0; i < idCount; ++i) { + var id = view.getUint32(off, !0) & 2147483647, dataOffset = view.getUint32(off + 4, !0); + if ((dataOffset & 2147483648) !== 0) { + off += 8; + continue; + } + cb(typeEntry, nameEntry, { lang: id, dataOffset }), off += 8; + } +} +function readNameTable(view, type, nameTable, cb) { + var off = nameTable, typeEntry = { + type, + nameTable, + characteristics: view.getUint32(off, !0), + dateTime: view.getUint32(off + 4, !0), + majorVersion: view.getUint16(off + 8, !0), + minorVersion: view.getUint16(off + 10, !0) + }, nameCount = view.getUint16(off + 12, !0), idCount = view.getUint16(off + 14, !0); + off += 16; + for (var i = 0; i < nameCount; ++i) { + var nameOffset = view.getUint32(off, !0) & 2147483647, nextTable = view.getUint32(off + 4, !0); + if (!(nextTable & 2147483648)) { + off += 8; + continue; + } + nextTable &= 2147483647; + var name_2 = readString(view, nameOffset); + readLanguageTable(view, typeEntry, name_2, nextTable, cb), off += 8; + } + for (var i = 0; i < idCount; ++i) { + var id = view.getUint32(off, !0) & 2147483647, nextTable = view.getUint32(off + 4, !0); + if (!(nextTable & 2147483648)) { + off += 8; + continue; + } + nextTable &= 2147483647, readLanguageTable(view, typeEntry, id, nextTable, cb), off += 8; + } +} +function divideEntriesImplByID(r, names, entries) { + var entriesByString = {}, entriesByNumber = {}; + entries.forEach(function(e) { + typeof e.lang == "string" ? (entriesByString[e.lang] = e, names.push(e.lang)) : entriesByNumber[e.lang] = e; + }); + var strKeys = Object.keys(entriesByString); + strKeys.sort().forEach(function(type) { + r.s.push(entriesByString[type]); + }); + var numKeys = Object.keys(entriesByNumber); + return numKeys.map(function(k) { + return Number(k); + }).sort(function(a, b) { + return a - b; + }).forEach(function(type) { + r.n.push(entriesByNumber[type]); + }), 16 + 8 * (strKeys.length + numKeys.length); +} +function divideEntriesImplByName(r, names, entries) { + var entriesByString = {}, entriesByNumber = {}; + entries.forEach(function(e) { + var _a, _b; + if (typeof e.id == "string") { + var a = (_a = entriesByString[e.id]) !== null && _a !== void 0 ? _a : entriesByString[e.id] = []; + names.push(e.id), a.push(e); + } else { + var a = (_b = entriesByNumber[e.id]) !== null && _b !== void 0 ? _b : entriesByNumber[e.id] = []; + a.push(e); + } + }); + var sSum = Object.keys(entriesByString).sort().map(function(id) { + var o = { + id, + s: [], + n: [] + }; + return r.s.push(o), divideEntriesImplByID(o, names, entriesByString[id]); + }).reduce(function(p, c) { + return p + 8 + c; + }, 0), nSum = Object.keys(entriesByNumber).map(function(k) { + return Number(k); + }).sort(function(a, b) { + return a - b; + }).map(function(id) { + var o = { + id, + s: [], + n: [] + }; + return r.n.push(o), divideEntriesImplByID(o, names, entriesByNumber[id]); + }).reduce(function(p, c) { + return p + 8 + c; + }, 0); + return 16 + sSum + nSum; +} +function divideEntriesImplByType(r, names, entries) { + var entriesByString = {}, entriesByNumber = {}; + entries.forEach(function(e) { + var _a, _b; + if (typeof e.type == "string") { + var a = (_a = entriesByString[e.type]) !== null && _a !== void 0 ? _a : entriesByString[e.type] = []; + names.push(e.type), a.push(e); + } else { + var a = (_b = entriesByNumber[e.type]) !== null && _b !== void 0 ? _b : entriesByNumber[e.type] = []; + a.push(e); + } + }); + var sSum = Object.keys(entriesByString).sort().map(function(type) { + var o = { type, s: [], n: [] }; + return r.s.push(o), divideEntriesImplByName(o, names, entriesByString[type]); + }).reduce(function(p, c) { + return p + 8 + c; + }, 0), nSum = Object.keys(entriesByNumber).map(function(k) { + return Number(k); + }).sort(function(a, b) { + return a - b; + }).map(function(type) { + var o = { type, s: [], n: [] }; + return r.n.push(o), divideEntriesImplByName(o, names, entriesByNumber[type]); + }).reduce(function(p, c) { + return p + 8 + c; + }, 0); + return 16 + sSum + nSum; +} +function calculateStringLengthForWrite(text) { + var length = text.length; + return length > 65535 ? 65535 : length; +} +function getStringOffset(target, strings) { + for (var l = strings.length, i = 0; i < l; ++i) { + var s = strings[i]; + if (s.text === target) + return s.offset; + } + throw new Error("Unexpected"); +} +function writeString(view, offset, text) { + var length = calculateStringLengthForWrite(text); + view.setUint16(offset, length, !0), offset += 2; + for (var i = 0; i < length; ++i) + view.setUint16(offset, text.charCodeAt(i), !0), offset += 2; + return offset; +} +function writeLanguageTable(view, offset, strings, data) { + return view.setUint32(offset, 0, !0), view.setUint32(offset + 4, 0, !0), view.setUint32(offset + 8, 0, !0), view.setUint16(offset + 12, data.s.length, !0), view.setUint16(offset + 14, data.n.length, !0), offset += 16, data.s.forEach(function(e) { + var strOff = getStringOffset(e.lang, strings); + view.setUint32(offset, strOff, !0), view.setUint32(offset + 4, e.offset, !0), offset += 8; + }), data.n.forEach(function(e) { + view.setUint32(offset, e.lang, !0), view.setUint32(offset + 4, e.offset, !0), offset += 8; + }), offset; +} +function writeNameTable(view, offset, leafOffset, strings, data) { + return view.setUint32(offset, 0, !0), view.setUint32(offset + 4, 0, !0), view.setUint32(offset + 8, 0, !0), view.setUint16(offset + 12, data.s.length, !0), view.setUint16(offset + 14, data.n.length, !0), offset += 16, data.s.forEach(function(e) { + e.offset = leafOffset, leafOffset = writeLanguageTable(view, leafOffset, strings, e); + }), data.n.forEach(function(e) { + e.offset = leafOffset, leafOffset = writeLanguageTable(view, leafOffset, strings, e); + }), data.s.forEach(function(e) { + var strOff = getStringOffset(e.id, strings); + view.setUint32(offset, strOff + 2147483648, !0), view.setUint32(offset + 4, e.offset + 2147483648, !0), offset += 8; + }), data.n.forEach(function(e) { + view.setUint32(offset, e.id, !0), view.setUint32(offset + 4, e.offset + 2147483648, !0), offset += 8; + }), leafOffset; +} +function writeTypeTable(view, offset, strings, data) { + view.setUint32(offset, 0, !0), view.setUint32(offset + 4, 0, !0), view.setUint32(offset + 8, 0, !0), view.setUint16(offset + 12, data.s.length, !0), view.setUint16(offset + 14, data.n.length, !0), offset += 16; + var nextTableOffset = offset + 8 * (data.s.length + data.n.length); + return data.s.forEach(function(e) { + e.offset = nextTableOffset, nextTableOffset += 16 + 8 * (e.s.length + e.n.length); + }), data.n.forEach(function(e) { + e.offset = nextTableOffset, nextTableOffset += 16 + 8 * (e.s.length + e.n.length); + }), data.s.forEach(function(e) { + var strOff = getStringOffset(e.type, strings); + view.setUint32(offset, strOff + 2147483648, !0), view.setUint32(offset + 4, e.offset + 2147483648, !0), offset += 8, nextTableOffset = writeNameTable(view, e.offset, nextTableOffset, strings, e); + }), data.n.forEach(function(e) { + view.setUint32(offset, e.type, !0), view.setUint32(offset + 4, e.offset + 2147483648, !0), offset += 8, nextTableOffset = writeNameTable(view, e.offset, nextTableOffset, strings, e); + }), nextTableOffset; +} +var NtExecutableResource = ( + /** @class */ + (function() { + function NtExecutableResource2() { + this.dateTime = 0, this.majorVersion = 0, this.minorVersion = 0, this.entries = [], this.sectionDataHeader = null, this.originalSize = 0; + } + return NtExecutableResource2.prototype.parse = function(section, ignoreUnparsableData) { + if (section.data) { + var view = new DataView(section.data); + this.dateTime = view.getUint32(4, !0), this.majorVersion = view.getUint16(8, !0), this.minorVersion = view.getUint16(10, !0); + for (var nameCount = view.getUint16(12, !0), idCount = view.getUint16(14, !0), off = 16, res = [], cb = function(t, n, l) { + var off2 = view.getUint32(l.dataOffset, !0) - section.info.virtualAddress, size = view.getUint32(l.dataOffset + 4, !0), cp = view.getUint32(l.dataOffset + 8, !0); + if (off2 >= 0) { + var bin = new Uint8Array(size); + bin.set(new Uint8Array(section.data, off2, size)), res.push({ + type: t.type, + id: n.name, + lang: l.lang, + codepage: cp, + bin: bin.buffer + }); + } else { + if (!ignoreUnparsableData) + throw new Error("Cannot parse resource directory entry; RVA seems to be invalid."); + res.push({ + type: t.type, + id: n.name, + lang: l.lang, + codepage: cp, + bin: new ArrayBuffer(0), + rva: l.dataOffset + }); + } + }, i = 0; i < nameCount; ++i) { + var nameOffset = view.getUint32(off, !0) & 2147483647, nextTable = view.getUint32(off + 4, !0); + if (!(nextTable & 2147483648)) { + off += 8; + continue; + } + nextTable &= 2147483647; + var name_3 = readString(view, nameOffset); + readNameTable(view, name_3, nextTable, cb), off += 8; + } + for (var i = 0; i < idCount; ++i) { + var typeId = view.getUint32(off, !0) & 2147483647, nextTable = view.getUint32(off + 4, !0); + if (!(nextTable & 2147483648)) { + off += 8; + continue; + } + nextTable &= 2147483647, readNameTable(view, typeId, nextTable, cb), off += 8; + } + this.entries = res, this.originalSize = section.data.byteLength; + } + }, NtExecutableResource2.from = function(exe, ignoreUnparsableData) { + ignoreUnparsableData === void 0 && (ignoreUnparsableData = !1); + var secs = [].concat(exe.getAllSections()).sort(function(a, b) { + return a.info.virtualAddress - b.info.virtualAddress; + }), entry = exe.getSectionByEntry(ImageDirectoryEntry_default.Resource); + if (entry) + for (var reloc = exe.getSectionByEntry(ImageDirectoryEntry_default.BaseRelocation), i = 0; i < secs.length; ++i) { + var s = secs[i]; + if (s === entry) { + for (var j = i + 1; j < secs.length; ++j) + if (!reloc || secs[j] !== reloc) + throw new Error("After Resource section, sections except for relocation are not supported"); + break; + } + } + var r = new NtExecutableResource2(); + return r.sectionDataHeader = entry ? cloneObject(entry.info) : null, entry && r.parse(entry, ignoreUnparsableData), r; + }, NtExecutableResource2.prototype.replaceResourceEntry = function(entry) { + for (var len = this.entries.length, i = 0; i < len; ++i) { + var e = this.entries[i]; + if (e.type === entry.type && e.id === entry.id && e.lang === entry.lang) { + this.entries[i] = entry; + return; + } + } + this.entries.push(entry); + }, NtExecutableResource2.prototype.getResourceEntriesAsString = function(type, id) { + return this.entries.filter(function(entry) { + return entry.type === type && entry.id === id; + }).map(function(entry) { + return [entry.lang, binaryToString(entry.bin)]; + }); + }, NtExecutableResource2.prototype.replaceResourceEntryFromString = function(type, id, lang, value) { + var entry = { + type, + id, + lang, + codepage: 1200, + bin: stringToBinary(value) + }; + this.replaceResourceEntry(entry); + }, NtExecutableResource2.prototype.removeResourceEntry = function(type, id, lang) { + this.entries = this.entries.filter(function(entry) { + return !(entry.type === type && entry.id === id && (typeof lang > "u" || entry.lang === lang)); + }); + }, NtExecutableResource2.prototype.generateResourceData = function(virtualAddress, alignment, noGrow, allowShrink) { + noGrow === void 0 && (noGrow = !1), allowShrink === void 0 && (allowShrink = !1); + var r = { + s: [], + n: [] + }, strings = [], size = divideEntriesImplByType(r, strings, this.entries); + strings = removeDuplicates(strings); + var stringsOffset = size; + size += strings.reduce(function(prev, cur) { + return prev + 2 + calculateStringLengthForWrite(cur) * 2; + }, 0), size = roundUp(size, 8); + var descOffset = size; + size = this.entries.reduce(function(p, e) { + return e.offset = p, p + 16; + }, descOffset); + var dataOffset = size; + size = this.entries.reduce(function(p, e) { + return roundUp(p, 8) + e.bin.byteLength; + }, dataOffset); + var alignedSize = roundUp(size, alignment), originalAlignedSize = roundUp(this.originalSize, alignment); + if (noGrow && alignedSize > originalAlignedSize) + throw new Error("New resource data is larger than original"); + allowShrink || alignedSize < originalAlignedSize && (alignedSize = originalAlignedSize); + var bin = new ArrayBuffer(alignedSize), view = new DataView(bin), o = descOffset, va = virtualAddress + dataOffset; + this.entries.forEach(function(e) { + var len = e.bin.byteLength; + typeof e.rva < "u" ? view.setUint32(o, e.rva, !0) : (va = roundUp(va, 8), view.setUint32(o, va, !0), va += len), view.setUint32(o + 4, len, !0), view.setUint32(o + 8, e.codepage, !0), view.setUint32(o + 12, 0, !0), o += 16; + }), o = dataOffset, this.entries.forEach(function(e) { + var len = e.bin.byteLength; + copyBuffer(bin, o, e.bin, 0, len), o += roundUp(len, 8); + }); + var stringsData = []; + if (o = stringsOffset, strings.forEach(function(s) { + stringsData.push({ + offset: o, + text: s + }), o = writeString(view, o, s); + }), writeTypeTable(view, 0, stringsData, r), alignedSize > size) + for (var pad = "PADDINGX", i = size, j = 0; i < alignedSize; ++i, ++j) + j === 8 && (j = 0), view.setUint8(i, pad.charCodeAt(j)); + return { + bin, + rawSize: size, + dataOffset, + descEntryOffset: descOffset, + descEntryCount: this.entries.length + }; + }, NtExecutableResource2.prototype.outputResource = function(exeDest, noGrow, allowShrink) { + noGrow === void 0 && (noGrow = !1), allowShrink === void 0 && (allowShrink = !1); + var fileAlign = exeDest.getFileAlignment(), sectionData; + this.sectionDataHeader ? sectionData = { + data: null, + info: cloneObject(this.sectionDataHeader) + } : sectionData = { + data: null, + info: { + name: ".rsrc", + virtualSize: 0, + virtualAddress: 0, + sizeOfRawData: 0, + pointerToRawData: 0, + pointerToRelocations: 0, + pointerToLineNumbers: 0, + numberOfRelocations: 0, + numberOfLineNumbers: 0, + characteristics: 1073741888 + // read access and initialized data + } + }; + var data = this.generateResourceData(0, fileAlign, noGrow, allowShrink); + sectionData.data = data.bin, sectionData.info.sizeOfRawData = data.bin.byteLength, sectionData.info.virtualSize = data.rawSize, exeDest.setSectionByEntry(ImageDirectoryEntry_default.Resource, sectionData); + for (var generatedSection = exeDest.getSectionByEntry(ImageDirectoryEntry_default.Resource), view = new DataView(generatedSection.data), o = data.descEntryOffset, va = generatedSection.info.virtualAddress + data.dataOffset, i = 0; i < data.descEntryCount; ++i) { + var len = view.getUint32(o + 4, !0); + va = roundUp(va, 8), view.setUint32(o, va, !0), va += len, o += 16; + } + }, NtExecutableResource2; + })() +), NtExecutableResource_default = NtExecutableResource; + +// node_modules/resedit/dist/data/index.js +var data_exports = {}; +__export(data_exports, { + IconFile: () => IconFile_default, + IconItem: () => IconItem_default, + RawIconItem: () => RawIconItem_default +}); + +// node_modules/resedit/dist/util/functions.js +function cloneObject2(object) { + var r = {}; + return Object.keys(object).forEach(function(key) { + r[key] = object[key]; + }), r; +} +function createDataView2(bin, byteOffset, byteLength) { + if ("buffer" in bin) { + var newOffset = bin.byteOffset, newLength = bin.byteLength; + return typeof byteOffset < "u" && (newOffset += byteOffset, newLength -= byteOffset), typeof byteLength < "u" && (newLength = byteLength), new DataView(bin.buffer, newOffset, newLength); + } else + return new DataView(bin, byteOffset, byteLength); +} +function roundUp2(val, align) { + return Math.floor((val + align - 1) / align) * align; +} +function copyBuffer2(dest, destOffset, src, srcOffset, length) { + var ua8Dest = "buffer" in dest ? new Uint8Array(dest.buffer, dest.byteOffset + (destOffset || 0), length) : new Uint8Array(dest, destOffset, length), ua8Src = "buffer" in src ? new Uint8Array(src.buffer, src.byteOffset + (srcOffset || 0), length) : new Uint8Array(src, srcOffset, length); + ua8Dest.set(ua8Src); +} +function allocatePartialBinary2(binBase, offset, length) { + var b = new ArrayBuffer(length); + return copyBuffer2(b, 0, binBase, offset, length), b; +} +function readInt32WithLastOffset(view, offset, last) { + return offset + 4 <= last ? view.getInt32(offset, !0) : 0; +} +function readUint8WithLastOffset(view, offset, last) { + return offset < last ? view.getUint8(offset) : 0; +} +function readUint16WithLastOffset(view, offset, last) { + return offset + 2 <= last ? view.getUint16(offset, !0) : 0; +} +function readUint32WithLastOffset(view, offset, last) { + return offset + 4 <= last ? view.getUint32(offset, !0) : 0; +} + +// node_modules/resedit/dist/data/IconItem.js +function calcMaskSize(width, height) { + var actualWidthBytes = roundUp2(Math.abs(width), 32) / 8; + return actualWidthBytes * Math.abs(height); +} +var IconItem = ( + /** @class */ + (function() { + function IconItem2(width, height, bin, byteOffset, byteLength) { + var view = createDataView2(bin, byteOffset, byteLength), totalSize = view.byteLength, headerSize = view.getUint32(0, !0); + headerSize > totalSize && (headerSize = totalSize); + var sizeImage = readUint32WithLastOffset(view, 20, headerSize), bi = { + width: readInt32WithLastOffset(view, 4, headerSize), + height: readInt32WithLastOffset(view, 8, headerSize), + planes: readUint16WithLastOffset(view, 12, headerSize), + bitCount: readUint16WithLastOffset(view, 14, headerSize), + compression: readUint32WithLastOffset(view, 16, headerSize), + sizeImage, + xPelsPerMeter: readInt32WithLastOffset(view, 24, headerSize), + yPelsPerMeter: readInt32WithLastOffset(view, 28, headerSize), + colorUsed: readUint32WithLastOffset(view, 32, headerSize), + colorImportant: readUint32WithLastOffset(view, 36, headerSize), + colors: [] + }, offset = 40, colors = bi.colorUsed; + if (!colors) + switch (bi.bitCount) { + case 1: + colors = 2; + break; + case 4: + colors = 16; + break; + case 8: + colors = 256; + break; + } + for (var i = 0; i < colors; ++i) + bi.colors.push({ + b: readUint8WithLastOffset(view, offset, totalSize), + g: readUint8WithLastOffset(view, offset + 1, totalSize), + r: readUint8WithLastOffset(view, offset + 2, totalSize) + }), offset += 4; + this.width = width, this.height = height, this.bitmapInfo = bi; + var widthBytes = roundUp2(bi.bitCount * Math.abs(bi.width), 32) / 8, absActualHeight = Math.abs(bi.height) / 2, size = bi.compression !== 0 && sizeImage !== 0 ? sizeImage : widthBytes * absActualHeight; + if (size + offset > totalSize) + throw new Error("Unexpected bitmap data in icon: bitmap size ".concat(size, " is larger than ").concat(totalSize, " - ").concat(offset)); + this._pixels = allocatePartialBinary2(view, offset, size), offset += size; + var maskSize = calcMaskSize(bi.width, absActualHeight); + maskSize + offset <= totalSize ? this.masks = allocatePartialBinary2(view, offset, maskSize) : this.masks = new ArrayBuffer(maskSize); + } + return Object.defineProperty(IconItem2.prototype, "pixels", { + /** + * Bitmap pixel data. + * @note + * On set, if `bitmapInfo.sizeImage` is non-zero, `bitmapInfo.sizeImage` will be updated. + */ + get: function() { + return this._pixels; + }, + /** + * Bitmap pixel data. + * @note + * On set, if `bitmapInfo.sizeImage` is non-zero, `bitmapInfo.sizeImage` will be updated. + */ + set: function(newValue) { + this._pixels = newValue, this.bitmapInfo.sizeImage !== 0 && (this.bitmapInfo.sizeImage = newValue.byteLength); + }, + enumerable: !1, + configurable: !0 + }), IconItem2.from = function(arg1, arg2, arg3, byteOffset, byteLength) { + var width, height, bin; + return typeof arg3 == "object" ? (width = arg1, height = arg2, bin = arg3) : (width = null, height = null, bin = arg1, byteOffset = arg2, byteLength = arg3), new IconItem2(width, height, bin, byteOffset, byteLength); + }, IconItem2.prototype.isIcon = function() { + return !0; + }, IconItem2.prototype.isRaw = function() { + return !1; + }, IconItem2.prototype.generate = function() { + var bi = this.bitmapInfo, absWidth = Math.abs(bi.width), absWidthBytes = roundUp2(bi.bitCount * absWidth, 32) / 8, absActualHeight = Math.abs(bi.height) / 2, actualSizeImage = absWidthBytes * absActualHeight, sizeMask = calcMaskSize(bi.width, absActualHeight), colorCount = bi.colors.length, totalSize = 40 + 4 * colorCount + actualSizeImage + sizeMask, bin = new ArrayBuffer(totalSize), view = new DataView(bin); + view.setUint32(0, 40, !0), view.setInt32(4, bi.width, !0), view.setInt32(8, bi.height, !0), view.setUint16(12, bi.planes, !0), view.setUint16(14, bi.bitCount, !0), view.setUint32(16, bi.compression, !0), view.setUint32(20, bi.sizeImage, !0), view.setInt32(24, bi.xPelsPerMeter, !0), view.setInt32(28, bi.yPelsPerMeter, !0), view.setUint32(32, bi.colorUsed, !0), view.setUint32(36, bi.colorImportant > colorCount ? colorCount : bi.colorImportant, !0); + var offset = 40; + return bi.colors.forEach(function(c) { + view.setUint8(offset, c.b), view.setUint8(offset + 1, c.g), view.setUint8(offset + 2, c.r), offset += 4; + }), copyBuffer2(bin, offset, this.pixels, 0, actualSizeImage), copyBuffer2(bin, offset + actualSizeImage, this.masks, 0, sizeMask), bin; + }, IconItem2; + })() +), IconItem_default = IconItem; + +// node_modules/resedit/dist/data/RawIconItem.js +var RawIconItem = ( + /** @class */ + (function() { + function RawIconItem2(bin, width, height, bitCount, byteOffset, byteLength) { + this.width = width, this.height = height, this.bitCount = bitCount, typeof byteOffset != "number" ? (byteOffset = 0, byteLength = bin.byteLength) : typeof byteLength != "number" && (byteLength = bin.byteLength - byteOffset), this.bin = allocatePartialBinary2(bin, byteOffset, byteLength); + } + return RawIconItem2.from = function(bin, width, height, bitCount, byteOffset, byteLength) { + return new RawIconItem2(bin, width, height, bitCount, byteOffset, byteLength); + }, RawIconItem2.prototype.isIcon = function() { + return !1; + }, RawIconItem2.prototype.isRaw = function() { + return !0; + }, RawIconItem2; + })() +), RawIconItem_default = RawIconItem; + +// node_modules/resedit/dist/data/IconFile.js +function generateEntryBinary(icons) { + var count = icons.length; + count > 65535 && (count = 65535); + var tmpIcons = icons.map(function(item) { + return item.data.isIcon() ? { + item, + bin: item.data.generate(), + offset: 0 + } : { + item, + bin: item.data.bin, + offset: 0 + }; + }), size = tmpIcons.reduce(function(p, icon) { + return icon.offset = p, p + icon.bin.byteLength; + }, 6 + 16 * count), bin = new ArrayBuffer(size), view = new DataView(bin); + view.setUint16(0, 0, !0), view.setUint16(2, 1, !0), view.setUint16(4, count, !0); + var offset = 6; + return tmpIcons.forEach(function(icon) { + var item = icon.item, width, height, colors, planes, bitCount; + if (item.data.isIcon()) { + var bi = item.data.bitmapInfo; + width = typeof item.width < "u" ? item.width : Math.abs(bi.width), height = typeof item.height < "u" ? item.height : Math.abs(bi.height / 2), colors = typeof item.colors < "u" ? item.colors : bi.colorUsed || bi.colors.length, planes = typeof item.planes < "u" ? item.planes : bi.planes, bitCount = typeof item.bitCount < "u" ? item.bitCount : bi.bitCount; + } else + width = typeof item.width < "u" ? item.width : Math.abs(item.data.width), height = typeof item.height < "u" ? item.height : Math.abs(item.data.height), colors = typeof item.colors < "u" ? item.colors : 0, planes = typeof item.planes < "u" ? item.planes : 1, bitCount = typeof item.bitCount < "u" ? item.bitCount : item.data.bitCount; + var dataSize = icon.bin.byteLength; + view.setUint8(offset, width >= 256 ? 0 : width), view.setUint8(offset + 1, height >= 256 ? 0 : height), view.setUint8(offset + 2, colors >= 256 ? 0 : colors), view.setUint8(offset + 3, 0), view.setUint16(offset + 4, planes, !0), view.setUint16(offset + 6, bitCount, !0), view.setUint32(offset + 8, dataSize, !0), view.setUint32(offset + 12, icon.offset, !0), offset += 16, copyBuffer2(bin, icon.offset, icon.bin, 0, dataSize); + }), bin; +} +var IconFile = ( + /** @class */ + (function() { + function IconFile2(bin) { + if (!bin) { + this.icons = []; + return; + } + var view = createDataView2(bin), totalSize = view.byteLength, icons = []; + if (view.getUint16(2, !0) === 1) + for (var count = view.getUint16(4, !0), offset = 6, i = 0; i < count; ++i) { + var dataSize = readUint32WithLastOffset(view, offset + 8, totalSize), dataOffset = readUint32WithLastOffset(view, offset + 12, totalSize), width = readUint8WithLastOffset(view, offset, totalSize), height = readUint8WithLastOffset(view, offset + 1, totalSize), bitCount = readUint8WithLastOffset(view, offset + 6, totalSize), data = void 0; + view.getUint32(dataOffset, !0) === 40 ? data = IconItem_default.from(width, height, bin, dataOffset, dataSize) : data = RawIconItem_default.from(bin, width || 256, height || 256, bitCount, dataOffset, dataSize), icons.push({ + width, + height, + colors: readUint8WithLastOffset(view, offset + 2, totalSize), + planes: readUint16WithLastOffset(view, offset + 4, totalSize), + bitCount, + data + }), offset += 16; + } + this.icons = icons; + } + return IconFile2.from = function(bin) { + return new IconFile2(bin); + }, IconFile2.prototype.generate = function() { + return generateEntryBinary(this.icons); + }, IconFile2; + })() +), IconFile_default = IconFile; + +// node_modules/resedit/dist/resource/index.js +var resource_exports = {}; +__export(resource_exports, { + IconGroupEntry: () => IconGroupEntry_default, + StringTable: () => StringTable_default, + VersionFileDriverSubtype: () => VersionFileDriverSubtype, + VersionFileFlags: () => VersionFileFlags_default, + VersionFileFontSubtype: () => VersionFileFontSubtype, + VersionFileOS: () => VersionFileOS_default, + VersionFileType: () => VersionFileType_default, + VersionInfo: () => VersionInfo_default +}); + +// node_modules/resedit/dist/resource/IconGroupEntry.js +function generateEntryBinary2(icons) { + var count = icons.length; + count > 65535 && (count = 65535); + var size = 6 + 14 * icons.length, bin = new ArrayBuffer(size), view = new DataView(bin); + view.setUint16(0, 0, !0), view.setUint16(2, 1, !0), view.setUint16(4, count, !0); + var offset = 6; + return icons.forEach(function(icon) { + view.setUint8(offset, icon.width >= 256 ? 0 : icon.width), view.setUint8(offset + 1, icon.height >= 256 ? 0 : icon.height), view.setUint8(offset + 2, icon.colors >= 256 ? 0 : icon.colors), view.setUint8(offset + 3, 0), view.setUint16(offset + 4, icon.planes, !0), view.setUint16(offset + 6, icon.bitCount, !0), view.setUint32(offset + 8, icon.dataSize, !0), view.setUint16(offset + 12, icon.iconID, !0), offset += 14; + }), bin; +} +function findUnusedIconID(entries, lang, isCursor) { + for (var type = isCursor ? 1 : 3, filteredIDs = entries.filter(function(e) { + return e.type === type && e.lang === lang && typeof e.id == "number"; + }).map(function(e) { + return e.id; + }).sort(function(a, b) { + return a - b; + }), idCurrent = 1, _i = 0, filteredIDs_1 = filteredIDs; _i < filteredIDs_1.length; _i++) { + var id = filteredIDs_1[_i]; + if (idCurrent < id) + return { + id: idCurrent, + last: !1 + }; + idCurrent === id && ++idCurrent; + } + return { + id: idCurrent, + last: !0 + }; +} +var IconGroupEntry = ( + /** @class */ + (function() { + function IconGroupEntry2(groupEntry) { + var view = new DataView(groupEntry.bin), totalSize = view.byteLength, icons = []; + if (view.getUint16(2, !0) === 1) + for (var count = view.getUint16(4, !0), offset = 6, i = 0; i < count; ++i) + icons.push({ + width: readUint8WithLastOffset(view, offset, totalSize), + height: readUint8WithLastOffset(view, offset + 1, totalSize), + colors: readUint8WithLastOffset(view, offset + 2, totalSize), + planes: readUint16WithLastOffset(view, offset + 4, totalSize), + bitCount: readUint16WithLastOffset(view, offset + 6, totalSize), + dataSize: readUint32WithLastOffset(view, offset + 8, totalSize), + iconID: readUint16WithLastOffset(view, offset + 12, totalSize) + }), offset += 14; + this.id = groupEntry.id, this.lang = groupEntry.lang, this.icons = icons; + } + return IconGroupEntry2.fromEntries = function(entries) { + return entries.filter(function(e) { + return e.type === 14; + }).map(function(e) { + return new IconGroupEntry2(e); + }); + }, IconGroupEntry2.prototype.generateEntry = function() { + var bin = generateEntryBinary2(this.icons); + return { + type: 14, + id: this.id, + lang: this.lang, + codepage: 0, + bin + }; + }, IconGroupEntry2.prototype.getIconItemsFromEntries = function(entries) { + var _this = this; + return entries.map(function(e) { + if (e.type !== 3 || e.lang !== _this.lang) + return null; + var c = _this.icons.filter(function(icon) { + return e.id === icon.iconID; + }).shift(); + return c ? { + entry: e, + icon: c + } : null; + }).filter(function(item) { + return !!item; + }).map(function(item) { + var bin = item.entry.bin, view = new DataView(bin); + if (view.getUint32(0, !0) === 40) + return IconItem_default.from(bin); + var c = item.icon; + return RawIconItem_default.from(bin, c.width, c.height, c.bitCount); + }); + }, IconGroupEntry2.replaceIconsForResource = function(destEntries, iconGroupID, lang, icons) { + var entry = destEntries.filter(function(e2) { + return e2.type === 14 && e2.id === iconGroupID && e2.lang === lang; + }).shift(), tmpIconArray = icons.map(function(icon) { + if (icon.isIcon()) { + var width = icon.width, height = icon.height; + return width === null && (width = icon.bitmapInfo.width), height === null && (height = icon.bitmapInfo.height, icon.masks !== null && (height = Math.floor(height / 2))), { + base: icon, + bm: { + width, + height, + planes: icon.bitmapInfo.planes, + bitCount: icon.bitmapInfo.bitCount + }, + bin: icon.generate(), + id: 0 + }; + } else + return { + base: icon, + bm: { + width: icon.width, + height: icon.height, + planes: 1, + bitCount: icon.bitCount + }, + bin: icon.bin, + id: 0 + }; + }); + if (entry) + for (var i = destEntries.length - 1; i >= 0; --i) { + var e = destEntries[i]; + e != null && e.type === 3 && (isIconUsed(e, destEntries, entry) || destEntries.splice(i, 1)); + } + else + entry = { + type: 14, + id: iconGroupID, + lang, + codepage: 0, + // set later + bin: null + }, destEntries.push(entry); + var idInfo; + tmpIconArray.forEach(function(icon) { + idInfo?.last ? ++idInfo.id : idInfo = findUnusedIconID(destEntries, lang, !1), destEntries.push({ + type: 3, + id: idInfo.id, + lang, + codepage: 0, + bin: icon.bin + }), icon.id = idInfo.id; + }); + var binEntry = generateEntryBinary2(tmpIconArray.map(function(icon) { + var width = Math.abs(icon.bm.width); + width >= 256 && (width = 0); + var height = Math.abs(icon.bm.height); + height >= 256 && (height = 0); + var colors = 0; + if (icon.base.isIcon()) { + var bmBase = icon.base.bitmapInfo; + if (colors = bmBase.colorUsed || bmBase.colors.length, !colors) + switch (bmBase.bitCount) { + case 1: + colors = 2; + break; + case 4: + colors = 16; + break; + } + colors >= 256 && (colors = 0); + } + return { + width, + height, + colors, + planes: icon.bm.planes, + bitCount: icon.bm.bitCount, + dataSize: icon.bin.byteLength, + iconID: icon.id + }; + })); + entry.bin = binEntry; + function isIconUsed(icon, allEntries, excludeGroup) { + return allEntries.some(function(e2) { + if (e2.type !== 14 || e2.id === excludeGroup.id && e2.lang === excludeGroup.lang) + return !1; + var g = new IconGroupEntry2(e2); + return g.icons.some(function(c) { + return c.iconID === icon.id; + }); + }); + } + }, IconGroupEntry2; + })() +), IconGroupEntry_default = IconGroupEntry; + +// node_modules/resedit/dist/resource/StringTableItem.js +var StringTableItem = ( + /** @class */ + (function() { + function StringTableItem2() { + this.length = 16, this._a = [], this._a.length = 16; + for (var i = 0; i < 16; ++i) + this._a[i] = ""; + } + return StringTableItem2.fromEntry = function(bin, offset, byteLength) { + for (var view = new DataView(bin, offset, byteLength), ret = new StringTableItem2(), o = 0, i = 0; i < 16; ++i) { + var len = view.getUint16(o, !0); + o += 2; + for (var s = "", j = 0; j < len; ++j) + s += String.fromCharCode(view.getUint16(o, !0)), o += 2; + ret._a[i] = s; + } + return ret; + }, StringTableItem2.prototype.get = function(index) { + var value = this._a[index]; + return value != null && value !== "" ? value : null; + }, StringTableItem2.prototype.getAll = function() { + return this._a.map(function(s) { + return s || null; + }); + }, StringTableItem2.prototype.set = function(index, val) { + this._a[index] = "".concat(val ?? "").substr(0, 4097); + }, StringTableItem2.prototype.calcByteLength = function() { + for (var len = 0, i = 0; i < 16; ++i) { + var item = this._a[i]; + len += 2, item != null && (len += 2 * item.length); + } + return Math.floor((len + 15) / 16) * 16; + }, StringTableItem2.prototype.generate = function(bin, offset) { + for (var out = new DataView(bin, offset), len = 0, i = 0; i < 16; ++i) { + var s = this._a[i], l = s == null ? 0 : s.length > 4097 ? 4097 : s.length; + if (out.setUint16(len, l, !0), len += 2, s != null) + for (var j = 0; j < l; ++j) + out.setUint16(len, s.charCodeAt(j), !0), len += 2; + } + return Math.floor((len + 15) / 16) * 16; + }, StringTableItem2; + })() +), StringTableItem_default = StringTableItem; + +// node_modules/resedit/dist/resource/StringTable.js +var StringTable = ( + /** @class */ + (function() { + function StringTable2() { + this.lang = 0, this.items = []; + } + return StringTable2.fromEntries = function(lang, entries) { + var r = new StringTable2(); + return entries.forEach(function(e) { + e.type !== 6 || e.lang !== lang || typeof e.id != "number" || e.id <= 0 || (r.items[e.id - 1] = StringTableItem_default.fromEntry(e.bin, 0, e.bin.byteLength)); + }), r.lang = lang, r; + }, StringTable2.prototype.getAllStrings = function() { + return this.items.map(function(e, i) { + return e.getAll().map(function(x, j) { + return x !== null && x !== "" ? { id: (i << 4) + j, text: x } : null; + }).filter(function(x) { + return !!x; + }); + }).reduce(function(p, c) { + return p.concat(c); + }, []); + }, StringTable2.prototype.getById = function(id) { + var _a; + if (id < 0) + return null; + var entryIndex = id >> 4, entryPos = id & 15, e = this.items[entryIndex]; + return (_a = e?.get(entryPos)) !== null && _a !== void 0 ? _a : null; + }, StringTable2.prototype.setById = function(id, text) { + if (!(id < 0)) { + var entryIndex = id >> 4, entryPos = id & 15, e = this.items[entryIndex]; + e || (this.items[entryIndex] = e = new StringTableItem_default()), e.set(entryPos, text); + } + }, StringTable2.prototype.generateEntries = function() { + var _this = this; + return this.items.map(function(e, i) { + var len = e.calcByteLength(), bin = new ArrayBuffer(len); + return e.generate(bin, 0), { + type: 6, + id: i + 1, + lang: _this.lang, + codepage: 1200, + bin + }; + }).filter(function(e) { + return !!e; + }); + }, StringTable2.prototype.replaceStringEntriesForExecutable = function(res) { + for (var entries = this.generateEntries(), dest = res.entries, i = 0; i < dest.length; ++i) { + var e = dest[i]; + if (e != null && e.type === 6 && e.lang === this.lang) { + for (var j = dest.length - 1; j >= i; --j) { + var e2 = dest[j]; + e2 != null && e2.type === 6 && e2.lang === this.lang && dest.splice(j, 1); + } + var f = dest.splice.bind(dest, i, 0); + f.apply(void 0, entries); + return; + } + } + for (var i = 0; i < dest.length; ++i) { + var e = dest[i]; + if (e != null && e.type === 6 && e.lang < this.lang) { + var f = dest.splice.bind(dest, i + 1, 0); + f.apply(void 0, entries); + return; + } + } + for (var i = dest.length - 1; i >= 0; --i) { + var e = dest[i]; + if (e != null && e.type === 6) { + var f = dest.splice.bind(dest, i + 1, 0); + f.apply(void 0, entries); + return; + } + } + dest.push.apply(dest, entries); + }, StringTable2; + })() +), StringTable_default = StringTable; + +// node_modules/resedit/dist/resource/VersionFileFlags.js +var VersionFileFlags = { + Debug: 1, + Prerelease: 2, + Patched: 4, + PrivateBuild: 8, + InfoInferred: 16, + SpecialBuild: 32 +}, VersionFileFlags_default = VersionFileFlags; + +// node_modules/resedit/dist/resource/VersionFileOS.js +var VersionFileOS = { + Unknown: 0, + _Windows16: 1, + _PM16: 2, + _PM32: 3, + _Windows32: 4, + DOS: 65536, + OS2_16: 131072, + OS2_32: 196608, + NT: 262144, + DOS_Windows16: 65537, + DOS_Windows32: 65540, + NT_Windows32: 262148, + OS2_16_PM16: 131074, + OS2_32_PM32: 196611 +}, VersionFileOS_default = VersionFileOS; + +// node_modules/resedit/dist/resource/VersionFileSubtypes.js +var VersionFileDriverSubtype = { + Unknown: 0, + Printer: 1, + Keyboard: 2, + Language: 3, + Display: 4, + Mouse: 5, + Network: 6, + System: 7, + Installable: 8, + Sound: 9, + Comm: 10, + VersionedPrinter: 12 +}; +var VersionFileFontSubtype = { + Unknown: 0, + Raster: 1, + Vector: 2, + TrueType: 3 +}; + +// node_modules/resedit/dist/resource/VersionFileType.js +var VersionFileType = { + Unknown: 0, + App: 1, + DLL: 2, + Driver: 3, + Font: 4, + VxD: 5, + StaticLibrary: 7 +}, VersionFileType_default = VersionFileType; + +// node_modules/resedit/dist/resource/VersionInfo.js +function readStringToNullChar(view, offset, last) { + for (var r = ""; offset + 2 <= last; ) { + var c = view.getUint16(offset, !0); + if (!c) + break; + r += String.fromCharCode(c), offset += 2; + } + return r; +} +function writeStringWithNullChar(view, offset, value) { + for (var i = 0; i < value.length; ++i) + view.setUint16(offset, value.charCodeAt(i), !0), offset += 2; + return view.setUint16(offset, 0, !0), offset + 2; +} +function createFixedInfo() { + return { + fileVersionMS: 0, + fileVersionLS: 0, + productVersionMS: 0, + productVersionLS: 0, + fileFlagsMask: 0, + fileFlags: 0, + fileOS: 0, + fileType: 0, + fileSubtype: 0, + fileDateMS: 0, + fileDateLS: 0 + }; +} +function parseStringTable(view, offset, last) { + var tableLen = view.getUint16(offset, !0), valueLen = view.getUint16(offset + 2, !0); + offset + tableLen < last && (last = offset + tableLen); + var tableName = readStringToNullChar(view, offset + 6, last); + offset += roundUp2(6 + 2 * (tableName.length + 1), 4); + var langAndCp = parseInt(tableName, 16); + if (isNaN(langAndCp)) + throw new Error("Invalid StringTable data format"); + offset += roundUp2(valueLen, 4); + for (var r = { + lang: Math.floor(langAndCp / 65536), + codepage: langAndCp & 65535, + values: {} + }; offset < last; ) { + var childDataLen = view.getUint16(offset, !0), childValueLen = view.getUint16(offset + 2, !0); + if (view.getUint16(offset + 4, !0) !== 1) { + offset += childDataLen; + continue; + } + var childDataLast = offset + childDataLen; + childDataLast > last && (childDataLast = last); + var name_1 = readStringToNullChar(view, offset + 6, childDataLast); + offset = roundUp2(offset + 6 + 2 * (name_1.length + 1), 4); + var childValueLast = offset + childValueLen * 2; + childValueLast > childDataLast && (childValueLast = childDataLast); + var value = readStringToNullChar(view, offset, childValueLast); + offset = roundUp2(childValueLast, 4), r.values[name_1] = value; + } + return [last, r]; +} +function parseStringFileInfo(view, offset, last) { + var valueLen = view.getUint16(offset + 2, !0); + offset += 36, offset += roundUp2(valueLen, 4); + for (var r = [], _loop_1 = function() { + var childData = parseStringTable(view, offset, last), table = childData[1], a = r.filter(function(e) { + return e.lang === table.lang && e.codepage === table.codepage; + }); + if (a.length === 0) + r.push(table); + else + for (var key in table.values) { + var value = table.values[key]; + value != null && (a[0].values[key] = value); + } + offset = roundUp2(childData[0], 4); + }; offset < last; ) + _loop_1(); + return r; +} +function parseVarFileInfo(view, offset, last) { + var valueLen = view.getUint16(offset + 2, !0); + offset += 32, offset += roundUp2(valueLen, 4); + for (var r = []; offset < last; ) { + var childDataLen = view.getUint16(offset, !0), childValueLen = view.getUint16(offset + 2, !0); + if (view.getUint16(offset + 4, !0) !== 0) { + offset += roundUp2(childDataLen, 4); + continue; + } + var childDataLast = offset + childDataLen; + childDataLast > last && (childDataLast = last); + var name_2 = readStringToNullChar(view, offset + 6, childDataLast); + if (offset = roundUp2(offset + 6 + 2 * (name_2.length + 1), 4), name_2 !== "Translation" || childValueLen % 4 !== 0) { + offset = roundUp2(childDataLast, 4); + continue; + } + for (var _loop_2 = function(child3) { + if (offset + 4 > childDataLast) + return "break"; + var lang = view.getUint16(offset, !0), codepage = view.getUint16(offset + 2, !0); + offset += 4, r.filter(function(e) { + return e.lang === lang && e.codepage === codepage; + }).length === 0 && r.push({ lang, codepage }); + }, child2 = 0; child2 < childValueLen; child2 += 4) { + var state_1 = _loop_2(child2); + if (state_1 === "break") + break; + } + offset = roundUp2(childDataLast, 4); + } + return r; +} +function parseVersionEntry(view, entry) { + var totalLen = view.getUint16(0, !0), dataLen = view.getUint16(2, !0); + if (view.getUint16(4, !0) !== 0) + throw new Error("Invalid version data format"); + if (totalLen < dataLen + 40) + throw new Error("Invalid version data format"); + if (readStringToNullChar(view, 6, totalLen) !== "VS_VERSION_INFO") + throw new Error("Invalid version data format"); + var d = { + lang: entry.lang, + fixedInfo: createFixedInfo(), + strings: [], + translations: [], + unknowns: [] + }, offset = 38; + if (dataLen) { + dataLen += 40; + var sig = readUint32WithLastOffset(view, 40, dataLen), sVer = readUint32WithLastOffset(view, 44, dataLen); + sig === 4277077181 && sVer <= 65536 && (d.fixedInfo = { + fileVersionMS: readUint32WithLastOffset(view, 48, dataLen), + fileVersionLS: readUint32WithLastOffset(view, 52, dataLen), + productVersionMS: readUint32WithLastOffset(view, 56, dataLen), + productVersionLS: readUint32WithLastOffset(view, 60, dataLen), + fileFlagsMask: readUint32WithLastOffset(view, 64, dataLen), + fileFlags: readUint32WithLastOffset(view, 68, dataLen), + fileOS: readUint32WithLastOffset(view, 72, dataLen), + fileType: readUint32WithLastOffset(view, 76, dataLen), + fileSubtype: readUint32WithLastOffset(view, 80, dataLen), + fileDateMS: readUint32WithLastOffset(view, 84, dataLen), + fileDateLS: readUint32WithLastOffset(view, 88, dataLen) + }), offset = dataLen; + } + for (offset = roundUp2(offset, 4); offset < totalLen; ) { + var childLen = view.getUint16(offset, !0), childLast = offset + childLen; + childLast > totalLen && (childLast = totalLen); + var name_3 = readStringToNullChar(view, offset + 6, childLast); + switch (name_3) { + case "StringFileInfo": + d.strings = d.strings.concat(parseStringFileInfo(view, offset, childLast)); + break; + case "VarFileInfo": + d.translations = d.translations.concat(parseVarFileInfo(view, offset, childLast)); + break; + default: + d.unknowns.push({ + name: name_3, + entireBin: allocatePartialBinary2(view, offset, childLen) + }); + break; + } + offset += roundUp2(childLen, 4); + } + return d; +} +function generateStringTable(table) { + var size = 24, keys = Object.keys(table.values); + size = keys.reduce(function(prev, key) { + var value = table.values[key]; + if (value == null) + return prev; + var childHeaderSize = roundUp2(6 + 2 * (key.length + 1), 4), newSize = roundUp2(prev + childHeaderSize + 2 * (value.length + 1), 4); + return newSize > 65532 ? prev : newSize; + }, size); + var bin = new ArrayBuffer(size), view = new DataView(bin); + view.setUint16(0, size, !0), view.setUint16(2, 0, !0), view.setUint16(4, 1, !0); + var langAndCp = ((table.lang & 65535) * 65536 + (table.codepage & 65535)).toString(16).toLowerCase(); + if (langAndCp.length < 8) { + var l = 8 - langAndCp.length; + langAndCp = "00000000".substr(0, l) + langAndCp; + } + var offset = roundUp2(writeStringWithNullChar(view, 6, langAndCp), 4); + return keys.forEach(function(key) { + var value = table.values[key]; + if (value != null) { + var childHeaderSize = roundUp2(6 + 2 * (key.length + 1), 4), newSize = roundUp2(childHeaderSize + 2 * (value.length + 1), 4); + offset + newSize <= 65532 && (view.setUint16(offset, newSize, !0), view.setUint16(offset + 2, value.length + 1, !0), view.setUint16(offset + 4, 1, !0), offset = roundUp2(writeStringWithNullChar(view, offset + 6, key), 4), offset = roundUp2(writeStringWithNullChar(view, offset, value), 4)); + } + }), bin; +} +function generateStringTableInfo(tables) { + var size = 36, tableBins = tables.map(function(table) { + return generateStringTable(table); + }); + size += tableBins.reduce(function(p, c) { + return p + c.byteLength; + }, 0); + var bin = new ArrayBuffer(size), view = new DataView(bin); + view.setUint16(0, size, !0), view.setUint16(2, 0, !0), view.setUint16(4, 1, !0); + var offset = roundUp2(writeStringWithNullChar(view, 6, "StringFileInfo"), 4); + return tableBins.forEach(function(table) { + var len = table.byteLength; + copyBuffer2(bin, offset, table, 0, len), offset += len; + }), bin; +} +function generateVarFileInfo(translations) { + var size = 32, translationsValueSize = translations.length * 4; + size += 32 + translationsValueSize; + var bin = new ArrayBuffer(size), view = new DataView(bin); + view.setUint16(0, size, !0), view.setUint16(2, 0, !0), view.setUint16(4, 1, !0); + var offset = roundUp2(writeStringWithNullChar(view, 6, "VarFileInfo"), 4); + return view.setUint16(offset, 32 + translationsValueSize, !0), view.setUint16(offset + 2, translationsValueSize, !0), view.setUint16(offset + 4, 0, !0), offset = roundUp2(writeStringWithNullChar(view, offset + 6, "Translation"), 4), translations.forEach(function(translation) { + view.setUint16(offset, translation.lang, !0), view.setUint16(offset + 2, translation.codepage, !0), offset += 4; + }), bin; +} +function generateVersionEntryBinary(entry) { + var size = 92, stringTableInfoBin = generateStringTableInfo(entry.strings), stringTableInfoLen = stringTableInfoBin.byteLength; + size += stringTableInfoLen; + var varFileInfoBin = generateVarFileInfo(entry.translations), varFileInfoLen = varFileInfoBin.byteLength; + size += varFileInfoLen, size = entry.unknowns.reduce(function(p, data) { + return p + roundUp2(data.entireBin.byteLength, 4); + }, size); + var bin = new ArrayBuffer(size), view = new DataView(bin); + view.setUint16(0, size, !0), view.setUint16(2, 52, !0), view.setUint16(4, 0, !0); + var offset = roundUp2(writeStringWithNullChar(view, 6, "VS_VERSION_INFO"), 4); + return view.setUint32(offset, 4277077181, !0), view.setUint32(offset + 4, 65536, !0), view.setUint32(offset + 8, entry.fixedInfo.fileVersionMS, !0), view.setUint32(offset + 12, entry.fixedInfo.fileVersionLS, !0), view.setUint32(offset + 16, entry.fixedInfo.productVersionMS, !0), view.setUint32(offset + 20, entry.fixedInfo.productVersionLS, !0), view.setUint32(offset + 24, entry.fixedInfo.fileFlagsMask, !0), view.setUint32(offset + 28, entry.fixedInfo.fileFlags, !0), view.setUint32(offset + 32, entry.fixedInfo.fileOS, !0), view.setUint32(offset + 36, entry.fixedInfo.fileType, !0), view.setUint32(offset + 40, entry.fixedInfo.fileSubtype, !0), view.setUint32(offset + 44, entry.fixedInfo.fileDateMS, !0), view.setUint32(offset + 48, entry.fixedInfo.fileDateLS, !0), offset += 52, copyBuffer2(bin, offset, stringTableInfoBin, 0, stringTableInfoLen), offset += stringTableInfoLen, copyBuffer2(bin, offset, varFileInfoBin, 0, varFileInfoLen), offset += varFileInfoLen, entry.unknowns.forEach(function(e) { + var len = e.entireBin.byteLength; + copyBuffer2(bin, offset, e.entireBin, 0, len), offset += roundUp2(len, 4); + }), bin; +} +function clampInt(val, min, max) { + return isNaN(val) || val < min ? min : val >= max ? max : Math.floor(val); +} +function parseVersionArguments(arg1, arg2, arg3, arg4, arg5) { + var _a, major, minor, micro, revision, lang; + return typeof arg1 == "string" && (typeof arg2 > "u" || typeof arg2 == "number") && typeof arg3 > "u" ? (_a = arg1.split(".").map(function(token) { + return clampInt(Number(token), 0, 65535); + }).concat(0, 0, 0), major = _a[0], minor = _a[1], micro = _a[2], revision = _a[3], lang = arg2) : (major = clampInt(Number(arg1), 0, 65535), minor = clampInt(Number(arg2), 0, 65535), micro = clampInt(typeof arg3 > "u" ? 0 : Number(arg3), 0, 65535), revision = clampInt(typeof arg4 > "u" ? 0 : Number(arg4), 0, 65535), lang = arg5), [major, minor, micro, revision, lang]; +} +var VersionInfo = ( + /** @class */ + (function() { + function VersionInfo2(entry) { + if (!entry) + this.data = { + lang: 0, + fixedInfo: createFixedInfo(), + strings: [], + translations: [], + unknowns: [] + }; + else { + var view = new DataView(entry.bin); + this.data = parseVersionEntry(view, entry); + } + } + return VersionInfo2.createEmpty = function() { + return new VersionInfo2(); + }, VersionInfo2.create = function(arg1, fixedInfo, strings) { + var lang; + typeof arg1 == "object" ? (lang = arg1.lang, fixedInfo = arg1.fixedInfo, strings = arg1.strings) : lang = arg1; + var vi = new VersionInfo2(); + vi.data.lang = lang; + for (var _fixedInfoKey in fixedInfo) { + var fixedInfoKey = _fixedInfoKey; + if (fixedInfoKey in fixedInfo) { + var value = fixedInfo[fixedInfoKey]; + value != null && (vi.data.fixedInfo[fixedInfoKey] = value); + } + } + return vi.data.strings = strings.map(function(_a) { + var lang2 = _a.lang, codepage = _a.codepage, values = _a.values; + return { + lang: lang2, + codepage, + values: cloneObject2(values) + }; + }), vi.data.translations = strings.map(function(_a) { + var lang2 = _a.lang, codepage = _a.codepage; + return { lang: lang2, codepage }; + }), vi; + }, VersionInfo2.fromEntries = function(entries) { + return entries.filter(function(e) { + return e.type === 16; + }).map(function(e) { + return new VersionInfo2(e); + }); + }, Object.defineProperty(VersionInfo2.prototype, "lang", { + /** A language value for this resource entry. */ + get: function() { + return this.data.lang; + }, + set: function(value) { + this.data.lang = value; + }, + enumerable: !1, + configurable: !0 + }), Object.defineProperty(VersionInfo2.prototype, "fixedInfo", { + /** + * The property of fixed version info, containing file version, product version, etc. + * (data: `VS_FIXEDFILEINFO`) + * + * Although this property is read-only, you can rewrite + * each child fields directly to apply data. + */ + get: function() { + return this.data.fixedInfo; + }, + enumerable: !1, + configurable: !0 + }), VersionInfo2.prototype.getAvailableLanguages = function() { + return this.data.translations.slice(0); + }, VersionInfo2.prototype.replaceAvailableLanguages = function(languages) { + this.data.translations = languages.slice(0); + }, VersionInfo2.prototype.getStringValues = function(language) { + var a = this.data.strings.filter(function(e) { + return e.lang === language.lang && e.codepage === language.codepage; + }).map(function(e) { + return e.values; + }); + return a.length > 0 ? a[0] : {}; + }, VersionInfo2.prototype.getAllLanguagesForStringValues = function() { + return this.data.strings.map(function(_a) { + var codepage = _a.codepage, lang = _a.lang; + return { codepage, lang }; + }); + }, VersionInfo2.prototype.setStringValues = function(language, values, addToAvailableLanguage) { + addToAvailableLanguage === void 0 && (addToAvailableLanguage = !0); + var a = this.data.strings.filter(function(e) { + return e.lang === language.lang && e.codepage === language.codepage; + }), table; + a.length === 0 ? (table = { + lang: language.lang, + codepage: language.codepage, + values: {} + }, this.data.strings.push(table)) : table = a[0]; + for (var key in values) { + var value = values[key]; + value != null && (table.values[key] = value); + } + if (addToAvailableLanguage) { + var t = this.data.translations.filter(function(e) { + return e.lang === language.lang && e.codepage === language.codepage; + }); + t.length === 0 && this.data.translations.push({ + lang: language.lang, + codepage: language.codepage + }); + } + }, VersionInfo2.prototype.setStringValue = function(language, key, value, addToAvailableLanguage) { + var _a; + addToAvailableLanguage === void 0 && (addToAvailableLanguage = !0), this.setStringValues(language, (_a = {}, _a[key] = value, _a), addToAvailableLanguage); + }, VersionInfo2.prototype.removeAllStringValues = function(language, removeFromAvailableLanguage) { + removeFromAvailableLanguage === void 0 && (removeFromAvailableLanguage = !0); + for (var strings = this.data.strings, len = strings.length, i = 0; i < len; ++i) { + var e = strings[i]; + if (e != null && e.lang === language.lang && e.codepage === language.codepage) { + if (strings.splice(i, 1), removeFromAvailableLanguage) + for (var translations = this.data.translations, j = 0; j < translations.length; j++) { + var t = translations[j]; + if (t != null && t.lang === language.lang && t.codepage === language.codepage) { + translations.splice(j, 1); + break; + } + } + break; + } + } + }, VersionInfo2.prototype.removeStringValue = function(language, key, removeFromAvailableLanguage) { + removeFromAvailableLanguage === void 0 && (removeFromAvailableLanguage = !0); + for (var strings = this.data.strings, len = strings.length, i = 0; i < len; ++i) { + var e = strings[i]; + if (e != null && e.lang === language.lang && e.codepage === language.codepage) { + try { + delete e.values[key]; + } catch { + } + if (removeFromAvailableLanguage && Object.keys(e.values).length === 0) { + strings.splice(i, 1); + for (var translations = this.data.translations, j = 0; j < translations.length; j++) { + var t = translations[j]; + if (t != null && t.lang === language.lang && t.codepage === language.codepage) { + translations.splice(j, 1); + break; + } + } + } + break; + } + } + }, VersionInfo2.prototype.generateResource = function() { + var bin = generateVersionEntryBinary(this.data); + return { + type: 16, + id: 1, + lang: this.lang, + codepage: 1200, + bin + }; + }, VersionInfo2.prototype.outputToResourceEntries = function(entries) { + for (var res = this.generateResource(), len = entries.length, i = 0; i < len; ++i) { + var e = entries[i]; + if (e != null && e.type === 16 && e.id === res.id && e.lang === res.lang) { + entries[i] = res; + return; + } + } + entries.push(res); + }, VersionInfo2.prototype.getDefaultVersionLang = function(propName3) { + var num = Number(this.lang); + if (this.lang !== "" && !isNaN(num)) + return num; + var a = this.data.strings.filter(function(e) { + return propName3 in e.values && e.values[propName3] != null; + }).map(function(e) { + return e.lang; + }); + return a.length === 1 ? a[0] : 1033; + }, VersionInfo2.prototype.setFileVersion = function(arg1, arg2, arg3, arg4, arg5) { + this.setFileVersionImpl.apply(this, parseVersionArguments(arg1, arg2, arg3, arg4, arg5)); + }, VersionInfo2.prototype.setFileVersionImpl = function(major, minor, micro, revision, lang) { + lang = typeof lang < "u" ? lang : this.getDefaultVersionLang("FileVersion"), this.fixedInfo.fileVersionMS = major << 16 | minor, this.fixedInfo.fileVersionLS = micro << 16 | revision, this.setStringValue({ lang, codepage: 1200 }, "FileVersion", "".concat(major, ".").concat(minor, ".").concat(micro, ".").concat(revision), !0); + }, VersionInfo2.prototype.setProductVersion = function(arg1, arg2, arg3, arg4, arg5) { + this.setProductVersionImpl.apply(this, parseVersionArguments(arg1, arg2, arg3, arg4, arg5)); + }, VersionInfo2.prototype.setProductVersionImpl = function(major, minor, micro, revision, lang) { + lang = typeof lang < "u" ? lang : this.getDefaultVersionLang("ProductVersion"), this.fixedInfo.productVersionMS = major << 16 | minor, this.fixedInfo.productVersionLS = micro << 16 | revision, this.setStringValue({ lang, codepage: 1200 }, "ProductVersion", "".concat(major, ".").concat(minor, ".").concat(micro, ".").concat(revision), !0); + }, VersionInfo2; + })() +), VersionInfo_default = VersionInfo; + +// node_modules/resedit/dist/sign/data/DERObject.js +var RawDERObject = ( + /** @class */ + (function() { + function RawDERObject2(data) { + this.data = data; + } + return RawDERObject2.prototype.toDER = function() { + return [].slice.call(this.data); + }, RawDERObject2; + })() +); + +// node_modules/resedit/dist/sign/data/derUtil.js +function makeDERLength(length) { + if (length < 128) + return [length]; + for (var r = []; r.push(length & 255), !(length < 256); ) + length >>= 8; + return r.push(128 + r.length), r.reverse(); +} +function makeDERIA5String(text) { + var r = [].map.call(text, function(c) { + return c.charCodeAt(0); + }).filter(function(n) { + return n < 128; + }); + return [22].concat(makeDERLength(r.length)).concat(r); +} +function makeDERBMPString(text) { + var r = [].map.call(text, function(c) { + return c.charCodeAt(0); + }), ua = new Uint8Array(r.length * 2), dv = new DataView(ua.buffer); + return r.forEach(function(v, i) { + dv.setUint16(i * 2, v, !1); + }), [30].concat(makeDERLength(ua.length)).concat( + // convert Uint8Array to number[] (not using spread operator) + [].slice.call(ua) + ); +} +function makeDEROctetString(bin) { + return bin instanceof Array || (bin = [].slice.call(bin)), [4].concat(makeDERLength(bin.length)).concat(bin); +} +function makeDERTaggedData(tag, body2) { + return [160 + tag].concat(makeDERLength(body2.length)).concat(body2); +} +function makeDERSequence(body2) { + return [48].concat(makeDERLength(body2.length)).concat(body2); +} +function arrayToDERSet(items) { + var r = items.reduce(function(prev, item) { + return prev.concat(item instanceof Array ? item : item.toDER()); + }, []); + return [49].concat(makeDERLength(r.length)).concat(r); +} + +// node_modules/resedit/dist/sign/data/ObjectIdentifier.js +var ObjectIdentifier = ( + /** @class */ + (function() { + function ObjectIdentifier2(value) { + typeof value == "string" ? this.value = value.split(/\./g).map(function(s) { + return Number(s); + }) : this.value = value; + } + return ObjectIdentifier2.prototype.toDER = function() { + var id = this.value, r = []; + if (id.length < 2) + throw new Error("Unexpected 'value' field"); + r.push(id[0] * 40 + id[1]); + for (var i = 2; i < id.length; ++i) + for (var val = id[i], isFirst = !0, insertPos = r.length; ; ) { + var v = val & 127; + if (isFirst || (v += 128), r.splice(insertPos, 0, v), val < 128) + break; + isFirst = !1, val = Math.floor(val / 128); + } + return [6].concat(makeDERLength(r.length)).concat(r); + }, ObjectIdentifier2; + })() +), ObjectIdentifier_default = ObjectIdentifier; + +// node_modules/resedit/dist/sign/data/KnownOids.js +var OID_SHA1_NO_SIGN = new ObjectIdentifier_default([1, 3, 14, 3, 2, 26]), OID_SHA256_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 1]), OID_SHA384_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 2]), OID_SHA512_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 3]), OID_SHA224_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 4]), OID_SHA512_224_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 5]), OID_SHA512_256_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 6]), OID_SHA3_224_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 7]), OID_SHA3_256_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 8]), OID_SHA3_384_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 9]), OID_SHA3_512_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 10]), OID_SHAKE128_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 11]), OID_SHAKE256_NO_SIGN = new ObjectIdentifier_default([2, 16, 840, 1, 101, 3, 4, 2, 12]), OID_RSA = new ObjectIdentifier_default([1, 2, 840, 113549, 1, 1, 1]), OID_DSA = new ObjectIdentifier_default([1, 2, 840, 10040, 4, 1]), OID_SIGNED_DATA = new ObjectIdentifier_default([1, 2, 840, 113549, 1, 7, 2]), OID_CONTENT_TYPE = new ObjectIdentifier_default([1, 2, 840, 113549, 1, 9, 3]), OID_MESSAGE_DIGEST = new ObjectIdentifier_default([1, 2, 840, 113549, 1, 9, 4]), OID_SPC_STATEMENT_TYPE_OBJID = new ObjectIdentifier_default([1, 3, 6, 1, 4, 1, 311, 2, 1, 11]), OID_SPC_SP_OPUS_INFO_OBJID = new ObjectIdentifier_default([1, 3, 6, 1, 4, 1, 311, 2, 1, 12]), OID_SPC_INDIVIDUAL_SP_KEY_PURPOSE_OBJID = new ObjectIdentifier_default([1, 3, 6, 1, 4, 1, 311, 2, 1, 21]), OID_RFC3161_COUNTER_SIGNATURE = new ObjectIdentifier_default([1, 3, 6, 1, 4, 1, 311, 3, 3, 1]); + +// node_modules/resedit/dist/sign/data/AlgorithmIdentifier.js +var AlgorithmIdentifier = ( + /** @class */ + (function() { + function AlgorithmIdentifier2(algorithm) { + this.algorithm = algorithm; + } + return AlgorithmIdentifier2.prototype.toDER = function() { + var r = this.algorithm.toDER(); + return makeDERSequence(r.concat( + // parameters is not used now + [5, 0] + )); + }, AlgorithmIdentifier2; + })() +); + +// node_modules/resedit/dist/sign/data/Attribute.js +var Attribute = ( + /** @class */ + (function() { + function Attribute2(attrType, attrValues) { + this.attrType = attrType, this.attrValues = attrValues; + } + return Attribute2.prototype.toDER = function() { + return makeDERSequence(this.attrType.toDER().concat(arrayToDERSet(this.attrValues))); + }, Attribute2; + })() +); + +// node_modules/resedit/dist/sign/data/ContentInfo.js +var ContentInfo = ( + /** @class */ + (function() { + function ContentInfo2(contentType2, content) { + this.contentType = contentType2, this.content = content; + } + return ContentInfo2.prototype.toDER = function() { + return makeDERSequence(this.contentType.toDER().concat(makeDERTaggedData(0, this.content.toDER()))); + }, ContentInfo2; + })() +), ContentInfo_default = ContentInfo; + +// node_modules/resedit/dist/sign/data/CertificateDataRoot.js +var __extends9 = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(), CertificateDataRoot = ( + /** @class */ + (function(_super) { + __extends9(CertificateDataRoot2, _super); + function CertificateDataRoot2() { + return _super !== null && _super.apply(this, arguments) || this; + } + return CertificateDataRoot2; + })(ContentInfo_default) +); + +// node_modules/resedit/dist/sign/data/DigestInfo.js +var DigestInfo = ( + /** @class */ + (function() { + function DigestInfo2(digestAlgorithm, digest) { + this.digestAlgorithm = digestAlgorithm, this.digest = digest; + } + return DigestInfo2.prototype.toDER = function() { + var digest = this.digest, digestArray; + "buffer" in digest ? digestArray = new Uint8Array(digest.buffer, digest.byteOffset, digest.byteLength) : digestArray = new Uint8Array(digest); + var derData = this.digestAlgorithm.toDER().concat(makeDEROctetString(digestArray)); + return makeDERSequence(derData); + }, DigestInfo2; + })() +); + +// node_modules/resedit/dist/sign/data/IssuerAndSerialNumber.js +var IssuerAndSerialNumber = ( + /** @class */ + (function() { + function IssuerAndSerialNumber2(issuer, serialNumber) { + this.issuer = issuer, this.serialNumber = serialNumber; + } + return IssuerAndSerialNumber2.prototype.toDER = function() { + return makeDERSequence(this.issuer.toDER().concat(this.serialNumber.toDER())); + }, IssuerAndSerialNumber2; + })() +); + +// node_modules/resedit/dist/sign/data/SignedData.js +var SignedData = ( + /** @class */ + (function() { + function SignedData2(version3, digestAlgorithms, contentInfo, signerInfos, certificates, crls) { + this.version = version3, this.digestAlgorithms = digestAlgorithms, this.contentInfo = contentInfo, this.signerInfos = signerInfos, this.certificates = certificates, this.crls = crls; + } + return SignedData2.prototype.toDER = function() { + var r = [2, 1, this.version & 255].concat(arrayToDERSet(this.digestAlgorithms)).concat(this.contentInfo.toDER()); + if (this.certificates && this.certificates.length > 0) { + var allCertsDER = arrayToDERSet(this.certificates); + allCertsDER[0] = 160, r = r.concat(allCertsDER); + } + return this.crls && (r = r.concat(makeDERTaggedData(1, arrayToDERSet(this.crls)))), r = r.concat(arrayToDERSet(this.signerInfos)), makeDERSequence(r); + }, SignedData2; + })() +); + +// node_modules/resedit/dist/sign/data/SignerInfo.js +var SignerInfo = ( + /** @class */ + (function() { + function SignerInfo2(version3, issuerAndSerialNumber, digestAlgorithm, digestEncryptionAlgorithm, encryptedDigest, authenticatedAttributes, unauthenticatedAttributes) { + this.version = version3, this.issuerAndSerialNumber = issuerAndSerialNumber, this.digestAlgorithm = digestAlgorithm, this.digestEncryptionAlgorithm = digestEncryptionAlgorithm, this.encryptedDigest = encryptedDigest, this.authenticatedAttributes = authenticatedAttributes, this.unauthenticatedAttributes = unauthenticatedAttributes; + } + return SignerInfo2.prototype.toDER = function() { + var r = [2, 1, this.version & 255].concat(this.issuerAndSerialNumber.toDER()).concat(this.digestAlgorithm.toDER()); + if (this.authenticatedAttributes && this.authenticatedAttributes.length > 0) { + var a = arrayToDERSet(this.authenticatedAttributes); + a[0] = 160, r = r.concat(a); + } + if (r = r.concat(this.digestEncryptionAlgorithm.toDER()).concat(makeDEROctetString(this.encryptedDigest)), this.unauthenticatedAttributes && this.unauthenticatedAttributes.length > 0) { + var u = arrayToDERSet(this.unauthenticatedAttributes); + u[0] = 161, r = r.concat(u); + } + return makeDERSequence(r); + }, SignerInfo2; + })() +); + +// node_modules/resedit/dist/sign/data/SpcIndirectDataContent.js +var __extends10 = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(), SPC_INDIRECT_DATA_OBJID = new ObjectIdentifier_default([1, 3, 6, 1, 4, 1, 311, 2, 1, 4]), SpcAttributeTypeAndOptionalValue = ( + /** @class */ + (function() { + function SpcAttributeTypeAndOptionalValue2(type, value) { + this.type = type, this.value = value; + } + return SpcAttributeTypeAndOptionalValue2.prototype.toDER = function() { + return makeDERSequence(this.type.toDER().concat(this.value.toDER())); + }, SpcAttributeTypeAndOptionalValue2; + })() +); +var SpcIndirectDataContent = ( + /** @class */ + (function() { + function SpcIndirectDataContent2(data, messageDigest) { + this.data = data, this.messageDigest = messageDigest; + } + return SpcIndirectDataContent2.prototype.toDER = function() { + return makeDERSequence(this.toDERWithoutHeader()); + }, SpcIndirectDataContent2.prototype.toDERWithoutHeader = function() { + return this.data.toDER().concat(this.messageDigest.toDER()); + }, SpcIndirectDataContent2; + })() +); +var SpcIndirectDataContentInfo = ( + /** @class */ + (function(_super) { + __extends10(SpcIndirectDataContentInfo2, _super); + function SpcIndirectDataContentInfo2(content) { + return _super.call(this, SPC_INDIRECT_DATA_OBJID, content) || this; + } + return SpcIndirectDataContentInfo2; + })(ContentInfo_default) +); + +// node_modules/resedit/dist/sign/data/SpcLink.js +var __extends11 = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(), SpcLink = ( + /** @class */ + (function() { + function SpcLink2(tag, value) { + this.tag = tag, this.value = value; + } + return SpcLink2.prototype.toDER = function() { + var v = this.value.toDER(); + return this.tag === 2 ? makeDERTaggedData(this.tag, v) : (v[0] = 128 + this.tag, v); + }, SpcLink2; + })() +); +var SpcLinkUrl = ( + /** @class */ + (function(_super) { + __extends11(SpcLinkUrl2, _super); + function SpcLinkUrl2(url2) { + return _super.call(this, 0, new RawDERObject(makeDERIA5String(url2))) || this; + } + return SpcLinkUrl2; + })(SpcLink) +); +var SpcLinkFile = ( + /** @class */ + (function(_super) { + __extends11(SpcLinkFile2, _super); + function SpcLinkFile2(file) { + var v = makeDERBMPString(file); + return v[0] = 128, _super.call(this, 2, new RawDERObject(v)) || this; + } + return SpcLinkFile2; + })(SpcLink) +); + +// node_modules/resedit/dist/sign/data/SpcPeImageData.js +var __extends12 = /* @__PURE__ */ (function() { + var extendStatics = function(d, b) { + return extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { + d2.__proto__ = b2; + } || function(d2, b2) { + for (var p in b2) Object.prototype.hasOwnProperty.call(b2, p) && (d2[p] = b2[p]); + }, extendStatics(d, b); + }; + return function(d, b) { + if (typeof b != "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(), SPC_PE_IMAGE_DATA_OBJID = new ObjectIdentifier_default([1, 3, 6, 1, 4, 1, 311, 2, 1, 15]); +var SpcPeImageData = ( + /** @class */ + (function() { + function SpcPeImageData2(flags, file) { + this.flags = flags, this.file = file; + } + return SpcPeImageData2.prototype.toDER = function() { + return makeDERSequence([3, 1, this.flags & 255].concat( + // undocumented -- SpcLink must be tagged + makeDERTaggedData(0, this.file.toDER()) + )); + }, SpcPeImageData2; + })() +); +var SpcPeImageAttributeTypeAndOptionalValue = ( + /** @class */ + (function(_super) { + __extends12(SpcPeImageAttributeTypeAndOptionalValue2, _super); + function SpcPeImageAttributeTypeAndOptionalValue2(value) { + return _super.call(this, SPC_PE_IMAGE_DATA_OBJID, value) || this; + } + return SpcPeImageAttributeTypeAndOptionalValue2; + })(SpcAttributeTypeAndOptionalValue) +); + +// packages/core/src/windows-metadata-apply.ts +var RT_MANIFEST = 24, defaultDeps = { + readFile: (p) => readFile2(p), + writeFile: async (p, d) => { + await writeFile3(p, d); + } +}; +function toArrayBuffer(u) { + return u.buffer.slice(u.byteOffset, u.byteOffset + u.byteLength); +} +async function applyWindowsMetadata(inputPath, outputPath, meta, deps = defaultDeps) { + meta.fileVersion !== void 0 && padVersionQuad(meta.fileVersion), meta.productVersion !== void 0 && padVersionQuad(meta.productVersion); + let exe; + try { + let raw = await deps.readFile(inputPath); + exe = NtExecutable_default.from(toArrayBuffer(raw), { ignoreCert: !0 }); + } catch (err) { + throw new ResEditError(`Failed to parse "${inputPath}" as a PE executable.`, { cause: err }); + } + let res = NtExecutableResource_default.from(exe); + writeVersionInfo(res, meta), await writeIcons(res, meta.icons, meta.lang, deps), await writeManifest(res, meta, deps), res.outputResource(exe); + let out = exe.generate(); + try { + await deps.writeFile(outputPath, new Uint8Array(out)); + } catch (err) { + throw new ResEditError(`Failed to write patched binary "${outputPath}".`, { cause: err }); + } +} +function writeVersionInfo(res, meta) { + let copyright = meta.legalCopyright ?? (meta.companyName !== void 0 ? `\xA9 ${String((/* @__PURE__ */ new Date()).getUTCFullYear())} ${meta.companyName}` : void 0), strings = {}; + if (meta.productName !== void 0 && (strings.ProductName = meta.productName), meta.fileDescription !== void 0 && (strings.FileDescription = meta.fileDescription), meta.companyName !== void 0 && (strings.CompanyName = meta.companyName), copyright !== void 0 && (strings.LegalCopyright = copyright), meta.originalFilename !== void 0 && (strings.OriginalFilename = meta.originalFilename), meta.internalName !== void 0 && (strings.InternalName = meta.internalName), meta.comments !== void 0 && (strings.Comments = meta.comments), !(Object.keys(strings).length > 0 || meta.productVersion !== void 0 || meta.fileVersion !== void 0)) return; + let vi = resource_exports.VersionInfo.createEmpty(); + vi.lang = meta.lang, Object.keys(strings).length > 0 && vi.setStringValues({ lang: meta.lang, codepage: meta.codepage }, strings), meta.fileVersion !== void 0 && vi.setFileVersion(meta.fileVersion, meta.lang), meta.productVersion !== void 0 && vi.setProductVersion(meta.productVersion, meta.lang), vi.outputToResourceEntries(res.entries); +} +async function writeIcons(res, icons, lang, deps) { + for (let spec of icons) { + let raw; + try { + raw = await deps.readFile(spec.path); + } catch (err) { + throw new ResEditError(`Failed to read icon "${spec.path}".`, { cause: err }); + } + let iconFile; + try { + iconFile = data_exports.IconFile.from(toArrayBuffer(raw)); + } catch (err) { + throw new ResEditError(`Icon "${spec.path}" is not a valid .ico file.`, { cause: err }); + } + resource_exports.IconGroupEntry.replaceIconsForResource( + res.entries, + spec.id, + lang, + iconFile.icons.map((item) => item.data) + ); + } +} +async function writeManifest(res, meta, deps) { + if (meta.manifestPath === void 0) return; + let raw; + try { + raw = await deps.readFile(meta.manifestPath); + } catch (err) { + throw new ResEditError(`Failed to read manifest "${meta.manifestPath}".`, { cause: err }); + } + res.replaceResourceEntry({ + type: RT_MANIFEST, + id: 1, + lang: meta.lang, + codepage: meta.codepage, + bin: toArrayBuffer(raw) + }); +} + +// packages/core/src/signing.ts +import { writeFile as writeFile4 } from "node:fs/promises"; +import { join as join6 } from "node:path"; +import { randomBytes } from "node:crypto"; +function parseSigningInputs(opts = {}) { + let env = opts.env ?? process.env, registerSecret = opts.registerSecret ?? (() => { + }), macosIdentity = readInputRaw(env, "macos-sign-identity"), macosCert = readInputRaw(env, "macos-sign-certificate"), macosKeychainPw = readInputRaw(env, "macos-keychain-password"), macosEntitlements = readInputRaw(env, "macos-entitlements"), macosNotarize = parseBool(readInputRaw(env, "macos-notarize"), "macos-notarize", !1), macosAppleId = readInputRaw(env, "macos-apple-id"), macosTeamId = readInputRaw(env, "macos-team-id"), macosAppPw = readInputRaw(env, "macos-app-password"); + macosCert !== void 0 && registerSecret(macosCert), macosKeychainPw !== void 0 && registerSecret(macosKeychainPw), macosAppleId !== void 0 && registerSecret(macosAppleId), macosTeamId !== void 0 && registerSecret(macosTeamId), macosAppPw !== void 0 && registerSecret(macosAppPw); + let macos; + if (macosIdentity !== void 0 || macosCert !== void 0 || macosKeychainPw !== void 0) { + if (macosIdentity === void 0 || macosCert === void 0 || macosKeychainPw === void 0) + throw new ValidationError( + "macOS signing requires all of macos-sign-identity, macos-sign-certificate, macos-keychain-password." + ); + if (macosNotarize && (macosAppleId === void 0 || macosTeamId === void 0 || macosAppPw === void 0)) + throw new ValidationError( + "macos-notarize=true requires macos-apple-id, macos-team-id, macos-app-password." + ); + macos = { + identity: macosIdentity, + certificate: macosCert, + keychainPassword: macosKeychainPw, + entitlements: macosEntitlements, + notarize: macosNotarize, + appleId: macosAppleId, + teamId: macosTeamId, + appPassword: macosAppPw + }; + } + let windowsMode = parseWindowsSignMode(readInputRaw(env, "windows-sign-mode") ?? "none"), signtoolCert = readInputRaw(env, "windows-sign-cert"), signtoolPw = readInputRaw(env, "windows-sign-password"), signtoolTimestamp = readInputRaw(env, "windows-sign-rfc3161-url") ?? "http://timestamp.digicert.com", signDescription = readInputRaw(env, "windows-sign-description"), azureTenant = readInputRaw(env, "azure-tenant-id"), azureClient = readInputRaw(env, "azure-client-id"), azureSecret = readInputRaw(env, "azure-client-secret"), azureEndpoint = readInputRaw(env, "azure-endpoint"), azureProfile = readInputRaw(env, "azure-cert-profile"); + signtoolCert !== void 0 && registerSecret(signtoolCert), signtoolPw !== void 0 && registerSecret(signtoolPw), azureTenant !== void 0 && registerSecret(azureTenant), azureClient !== void 0 && registerSecret(azureClient), azureSecret !== void 0 && registerSecret(azureSecret); + let windowsSigntool, windowsTrusted; + if (windowsMode === "signtool") { + if (signtoolCert === void 0 || signtoolPw === void 0) + throw new ValidationError( + "windows-sign-mode=signtool requires windows-sign-cert and windows-sign-password." + ); + if (azureTenant !== void 0 || azureClient !== void 0 || azureEndpoint !== void 0) + throw new ValidationError( + "windows-sign-mode=signtool cannot be combined with azure-* inputs. Set windows-sign-mode=trusted-signing instead." + ); + windowsSigntool = { + certificate: signtoolCert, + password: signtoolPw, + timestampUrl: signtoolTimestamp, + description: signDescription + }; + } else if (windowsMode === "trusted-signing") { + if (azureTenant === void 0 || azureClient === void 0 || azureSecret === void 0 || azureEndpoint === void 0 || azureProfile === void 0) + throw new ValidationError( + "windows-sign-mode=trusted-signing requires all of azure-tenant-id, azure-client-id, azure-client-secret, azure-endpoint, azure-cert-profile." + ); + if (signtoolCert !== void 0 || signtoolPw !== void 0) + throw new ValidationError( + "windows-sign-mode=trusted-signing cannot be combined with windows-sign-cert/password." + ); + windowsTrusted = { + tenantId: azureTenant, + clientId: azureClient, + clientSecret: azureSecret, + endpoint: azureEndpoint, + certProfile: azureProfile, + description: signDescription + }; + } + return macos === void 0 && windowsMode === "none" ? null : { macos, windowsMode, windowsSigntool, windowsTrusted }; +} +function parseBool(value, name, fallback) { + if (value === void 0) return fallback; + let v = value.toLowerCase(); + if (v === "true" || v === "1" || v === "yes") return !0; + if (v === "false" || v === "0" || v === "no") return !1; + throw new ValidationError(`Input "${name}" expected a boolean, got "${value}".`); +} +function parseWindowsSignMode(raw) { + if (raw === "none" || raw === "signtool" || raw === "trusted-signing") return raw; + throw new ValidationError( + `windows-sign-mode must be one of: none | signtool | trusted-signing. Got "${raw}".` + ); +} +async function runCheckedTool(command, args, label, deps, opts = {}) { + deps.logger.info(`[pkg-action] ${label}: ${command} ${args.join(" ")}`); + let result = await deps.exec(command, args, { + ignoreReturnCode: !0, + ...opts.env !== void 0 ? { env: opts.env } : {} + }); + if (result.exitCode !== 0) + throw new SignError(`${label} failed (exit ${String(result.exitCode)}). See stderr above.`); +} +async function writeSecretBase64(base64, extension, deps) { + let path12 = join6(deps.tempDir, `${randomBytes(8).toString("hex")}.${extension}`), bytes = Buffer.from(base64, "base64"); + return await (deps.writeFile ?? ((p, d) => writeFile4(p, d, { mode: 384 })))(path12, bytes), path12; +} +async function signMacos(binaryPath, cfg, deps) { + let keychainPath = join6( + deps.tempDir, + `pkg-action-${randomBytes(6).toString("hex")}.keychain-db` + ), p12Path = await writeSecretBase64(cfg.certificate, "p12", deps); + await runCheckedTool( + "security", + ["create-keychain", "-p", cfg.keychainPassword, keychainPath], + "security create-keychain", + deps + ), await runCheckedTool( + "security", + ["set-keychain-settings", "-lut", "21600", keychainPath], + "security set-keychain-settings", + deps + ), await runCheckedTool( + "security", + ["unlock-keychain", "-p", cfg.keychainPassword, keychainPath], + "security unlock-keychain", + deps + ), await runCheckedTool( + "security", + [ + "import", + p12Path, + "-k", + keychainPath, + "-P", + cfg.keychainPassword, + "-T", + "/usr/bin/codesign", + "-T", + "/usr/bin/security" + ], + "security import", + deps + ), await runCheckedTool( + "security", + [ + "set-key-partition-list", + "-S", + "apple-tool:,apple:,codesign:", + "-s", + "-k", + cfg.keychainPassword, + keychainPath + ], + "security set-key-partition-list", + deps + ); + let codesignArgs = [ + "--force", + "--timestamp", + "--options", + "runtime", + "--keychain", + keychainPath, + "--sign", + cfg.identity + ]; + return cfg.entitlements !== void 0 && codesignArgs.push("--entitlements", cfg.entitlements), codesignArgs.push(binaryPath), await runCheckedTool("codesign", codesignArgs, "codesign", deps), await runCheckedTool( + "codesign", + ["--verify", "--strict", "--verbose=2", binaryPath], + "codesign --verify", + deps + ), cfg.notarize && (await runCheckedTool( + "xcrun", + [ + "notarytool", + "submit", + binaryPath, + "--apple-id", + cfg.appleId, + "--team-id", + cfg.teamId, + "--password", + cfg.appPassword, + "--wait" + ], + "xcrun notarytool submit", + deps + ), deps.logger.info( + "[pkg-action] notarytool submit succeeded. Note: bare binaries cannot be stapled; Gatekeeper queries Apple at first launch." + )), { keychainPath }; +} +async function signWindowsSigntool(binaryPath, cfg, deps) { + let pfxPath = await writeSecretBase64(cfg.certificate, "pfx", deps), args = [ + "sign", + "/fd", + "sha256", + "/td", + "sha256", + "/tr", + cfg.timestampUrl, + "/f", + pfxPath, + "/p", + cfg.password + ]; + cfg.description !== void 0 && args.push("/d", cfg.description), args.push(binaryPath), await runCheckedTool("signtool", args, "signtool sign", deps), await runCheckedTool("signtool", ["verify", "/pa", "/v", binaryPath], "signtool verify", deps); +} +async function signWindowsTrustedSigning(binaryPath, cfg, deps) { + let env = { + AZURE_TENANT_ID: cfg.tenantId, + AZURE_CLIENT_ID: cfg.clientId, + AZURE_CLIENT_SECRET: cfg.clientSecret + }, args = [ + "sign", + "-kvu", + cfg.endpoint, + "-kvc", + cfg.certProfile, + "-tr", + "http://timestamp.acs.microsoft.com", + "-td", + "sha256", + "-fd", + "sha256" + ]; + cfg.description !== void 0 && args.push("-d", cfg.description), args.push(binaryPath), await runCheckedTool("azuresigntool", args, "azuresigntool sign", deps, { env }), await runCheckedTool("signtool", ["verify", "/pa", "/v", binaryPath], "signtool verify", deps); +} + +// packages/core/src/finalize-binary.ts +import { rename as rename3, stat as stat4 } from "node:fs/promises"; +import { basename as basename6, join as join7 } from "node:path"; +async function finalizeBinary(req, deps) { + let { output: out, postBuild } = req, { logger: logger7 } = deps, tokens = tokensForTarget(out.target, req.project, req.env ?? process.env), renamedBase = render(postBuild.filename, tokens), renamed = out.target.os === "win" && !renamedBase.toLowerCase().endsWith(".exe") ? `${renamedBase}.exe` : renamedBase, renamedPath = join7(req.finalDir, renamed); + await rename3(out.path, renamedPath), logger7.startGroup(`[pkg-action] finalize ${formatTarget(out.target)} \u2192 ${renamed}`); + try { + if (req.windowsMetadata !== null && out.target.os === "win") { + let perBinary = { + ...req.windowsMetadata, + originalFilename: req.windowsMetadata.originalFilename ?? basename6(renamedPath) + }; + await applyWindowsMetadata(renamedPath, renamedPath, perBinary), logger7.info(`[pkg-action] Patched Windows resources on ${renamedPath}.`); + } + let signedFlag = !1, macosKeychain; + if (req.signing !== null) { + let signed = await signOneTarget( + { targetOs: out.target.os, binaryPath: renamedPath }, + req.signing, + { exec: deps.exec, logger: logger7, tempDir: req.tempDir } + ); + signedFlag = signed.signed, macosKeychain = signed.macosKeychain; + } + let finalPath; + if (postBuild.compress === "none") + finalPath = renamedPath; + else { + logger7.info(`[pkg-action] archive \u2192 ${basename6(renamedPath)} (format=${postBuild.compress})`); + let archStart = Date.now(); + finalPath = await archiveBinary(out.target, renamedPath, postBuild, tokens, deps); + let archSize = (await stat4(finalPath)).size; + logger7.info( + `[pkg-action] archived ${basename6(finalPath)} (${formatBytes2(archSize)}, ${formatSeconds(Date.now() - archStart)})` + ); + } + let rowDigest = await finalizeChecksums(finalPath, postBuild.checksum); + for (let entry of rowDigest.entries) + logger7.info(`[pkg-action] ${entry.algo} ${entry.digest} ${basename6(finalPath)}`); + let digests = {}; + if (rowDigest.entries.length > 0) { + let key = basename6(finalPath), byAlgo = {}; + for (let entry of rowDigest.entries) byAlgo[entry.algo] = entry.digest; + digests[key] = byAlgo; + } + let { size } = await stat4(finalPath), row = { + target: formatTarget(out.target), + filename: finalPath, + sizeBytes: size, + ...signedFlag ? { signed: !0 } : {} + }; + return rowDigest.primary !== void 0 && (row.primaryDigest = rowDigest.primary), { + binaryPath: renamedPath, + artifactPath: finalPath, + checksums: rowDigest.entries, + digests, + row, + macosKeychain + }; + } finally { + logger7.endGroup(); + } +} +async function signOneTarget(spec, signing, deps) { + if (spec.targetOs === "macos" && signing.macos !== void 0) + return { signed: !0, macosKeychain: (await signMacos(spec.binaryPath, signing.macos, deps)).keychainPath }; + if (spec.targetOs === "win") { + if (signing.windowsMode === "signtool" && signing.windowsSigntool !== void 0) + return await signWindowsSigntool(spec.binaryPath, signing.windowsSigntool, deps), { signed: !0, macosKeychain: void 0 }; + if (signing.windowsMode === "trusted-signing" && signing.windowsTrusted !== void 0) + return await signWindowsTrustedSigning(spec.binaryPath, signing.windowsTrusted, deps), { signed: !0, macosKeychain: void 0 }; + } + return { signed: !1, macosKeychain: void 0 }; +} +async function archiveBinary(target, renamedPath, postBuild, tokens, deps) { + let baseName = renamedPath.substring(0, renamedPath.length - extSuffix(renamedPath).length), archiveExt = archiveExtFor(postBuild.compress); + if (archiveExt === void 0) return renamedPath; + let archivePath = `${baseName}.${archiveExt}`; + return await archive( + { + inputPath: renamedPath, + outputPath: archivePath, + // Use the same rendered basename inside the archive. + format: postBuild.compress, + entryName: render(postBuild.filename, tokens) + (target.os === "win" ? ".exe" : "") + }, + { exec: deps.exec } + ), archivePath; +} +function extSuffix(path12) { + let idx = path12.lastIndexOf("."); + if (idx === -1) return ""; + let ext = path12.slice(idx); + return ext.length <= 5 ? ext : ""; +} +function archiveExtFor(format) { + if (format === "tar.gz") return "tar.gz"; + if (format === "tar.xz") return "tar.xz"; + if (format === "zip") return "zip"; + if (format === "7z") return "7z"; +} +async function finalizeChecksums(filePath, algos) { + if (algos.length === 0) return { entries: [], primary: void 0 }; + let digests = await computeAllChecksums(filePath, algos), entries = []; + for (let algo of algos) { + let digest = digests[algo], sidecar = await writeSidecar(filePath, digest, algo); + entries.push({ algo, path: sidecar, digest }); + } + let firstAlgo = algos[0], primaryDigest = firstAlgo !== void 0 ? digests[firstAlgo] : void 0; + return { + entries, + primary: firstAlgo !== void 0 && primaryDigest !== void 0 ? { algo: firstAlgo, value: primaryDigest } : void 0 + }; +} +function formatSeconds(ms) { + return `${(ms / 1e3).toFixed(1)}s`; +} +function formatBytes2(bytes) { + return bytes < 1024 ? `${String(bytes)} B` : bytes < 1024 * 1024 ? `${(bytes / 1024).toFixed(1)} KB` : bytes < 1024 * 1024 * 1024 ? `${(bytes / (1024 * 1024)).toFixed(1)} MB` : `${(bytes / (1024 * 1024 * 1024)).toFixed(2)} GB`; +} + +// packages/core/src/version.ts +var VERSION = "0.0.0"; + +// node_modules/@actions/cache/node_modules/@actions/core/lib/command.js +import * as os6 from "os"; + +// node_modules/@actions/cache/node_modules/@actions/core/lib/utils.js +function toCommandValue2(input) { + return input == null ? "" : typeof input == "string" || input instanceof String ? input : JSON.stringify(input); +} +function toCommandProperties2(annotationProperties) { + return Object.keys(annotationProperties).length ? { + title: annotationProperties.title, + file: annotationProperties.file, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + } : {}; +} + +// node_modules/@actions/cache/node_modules/@actions/core/lib/command.js +function issueCommand2(command, properties, message) { + let cmd = new Command2(command, properties, message); + process.stdout.write(cmd.toString() + os6.EOL); +} +var CMD_STRING2 = "::", Command2 = class { + constructor(command, properties, message) { + command || (command = "missing.command"), this.command = command, this.properties = properties, this.message = message; + } + toString() { + let cmdStr = CMD_STRING2 + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += " "; + let first = !0; + for (let key in this.properties) + if (this.properties.hasOwnProperty(key)) { + let val = this.properties[key]; + val && (first ? first = !1 : cmdStr += ",", cmdStr += `${key}=${escapeProperty2(val)}`); + } + } + return cmdStr += `${CMD_STRING2}${escapeData2(this.message)}`, cmdStr; + } +}; +function escapeData2(s) { + return toCommandValue2(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A"); +} +function escapeProperty2(s) { + return toCommandValue2(s).replace(/%/g, "%25").replace(/\r/g, "%0D").replace(/\n/g, "%0A").replace(/:/g, "%3A").replace(/,/g, "%2C"); +} + +// node_modules/@actions/cache/node_modules/@actions/core/lib/core.js +import * as os8 from "os"; + +// node_modules/@actions/cache/node_modules/@actions/core/node_modules/@actions/http-client/lib/index.js +var tunnel2 = __toESM(require_tunnel2(), 1), import_undici2 = __toESM(require_undici(), 1); +var HttpCodes2; +(function(HttpCodes4) { + HttpCodes4[HttpCodes4.OK = 200] = "OK", HttpCodes4[HttpCodes4.MultipleChoices = 300] = "MultipleChoices", HttpCodes4[HttpCodes4.MovedPermanently = 301] = "MovedPermanently", HttpCodes4[HttpCodes4.ResourceMoved = 302] = "ResourceMoved", HttpCodes4[HttpCodes4.SeeOther = 303] = "SeeOther", HttpCodes4[HttpCodes4.NotModified = 304] = "NotModified", HttpCodes4[HttpCodes4.UseProxy = 305] = "UseProxy", HttpCodes4[HttpCodes4.SwitchProxy = 306] = "SwitchProxy", HttpCodes4[HttpCodes4.TemporaryRedirect = 307] = "TemporaryRedirect", HttpCodes4[HttpCodes4.PermanentRedirect = 308] = "PermanentRedirect", HttpCodes4[HttpCodes4.BadRequest = 400] = "BadRequest", HttpCodes4[HttpCodes4.Unauthorized = 401] = "Unauthorized", HttpCodes4[HttpCodes4.PaymentRequired = 402] = "PaymentRequired", HttpCodes4[HttpCodes4.Forbidden = 403] = "Forbidden", HttpCodes4[HttpCodes4.NotFound = 404] = "NotFound", HttpCodes4[HttpCodes4.MethodNotAllowed = 405] = "MethodNotAllowed", HttpCodes4[HttpCodes4.NotAcceptable = 406] = "NotAcceptable", HttpCodes4[HttpCodes4.ProxyAuthenticationRequired = 407] = "ProxyAuthenticationRequired", HttpCodes4[HttpCodes4.RequestTimeout = 408] = "RequestTimeout", HttpCodes4[HttpCodes4.Conflict = 409] = "Conflict", HttpCodes4[HttpCodes4.Gone = 410] = "Gone", HttpCodes4[HttpCodes4.TooManyRequests = 429] = "TooManyRequests", HttpCodes4[HttpCodes4.InternalServerError = 500] = "InternalServerError", HttpCodes4[HttpCodes4.NotImplemented = 501] = "NotImplemented", HttpCodes4[HttpCodes4.BadGateway = 502] = "BadGateway", HttpCodes4[HttpCodes4.ServiceUnavailable = 503] = "ServiceUnavailable", HttpCodes4[HttpCodes4.GatewayTimeout = 504] = "GatewayTimeout"; +})(HttpCodes2 || (HttpCodes2 = {})); +var Headers2; +(function(Headers4) { + Headers4.Accept = "accept", Headers4.ContentType = "content-type"; +})(Headers2 || (Headers2 = {})); +var MediaTypes2; +(function(MediaTypes4) { + MediaTypes4.ApplicationJson = "application/json"; +})(MediaTypes2 || (MediaTypes2 = {})); +var HttpRedirectCodes2 = [ + HttpCodes2.MovedPermanently, + HttpCodes2.ResourceMoved, + HttpCodes2.SeeOther, + HttpCodes2.TemporaryRedirect, + HttpCodes2.PermanentRedirect +], HttpResponseRetryCodes2 = [ + HttpCodes2.BadGateway, + HttpCodes2.ServiceUnavailable, + HttpCodes2.GatewayTimeout +]; + +// node_modules/@actions/cache/node_modules/@actions/core/lib/summary.js +import { EOL as EOL7 } from "os"; +import { constants as constants3, promises as promises3 } from "fs"; +var __awaiter6 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}, { access: access3, appendFile: appendFile3, writeFile: writeFile5 } = promises3, SUMMARY_ENV_VAR2 = "GITHUB_STEP_SUMMARY"; +var Summary2 = class { + constructor() { + this._buffer = ""; + } + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ + filePath() { + return __awaiter6(this, void 0, void 0, function* () { + if (this._filePath) + return this._filePath; + let pathFromEnv = process.env[SUMMARY_ENV_VAR2]; + if (!pathFromEnv) + throw new Error(`Unable to find environment variable for $${SUMMARY_ENV_VAR2}. Check if your runtime environment supports job summaries.`); + try { + yield access3(pathFromEnv, constants3.R_OK | constants3.W_OK); + } catch { + throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + } + return this._filePath = pathFromEnv, this._filePath; + }); + } + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ + wrap(tag, content, attrs = {}) { + let htmlAttrs = Object.entries(attrs).map(([key, value]) => ` ${key}="${value}"`).join(""); + return content ? `<${tag}${htmlAttrs}>${content}` : `<${tag}${htmlAttrs}>`; + } + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ + write(options) { + return __awaiter6(this, void 0, void 0, function* () { + let overwrite = !!options?.overwrite, filePath = yield this.filePath(); + return yield (overwrite ? writeFile5 : appendFile3)(filePath, this._buffer, { encoding: "utf8" }), this.emptyBuffer(); + }); + } + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ + clear() { + return __awaiter6(this, void 0, void 0, function* () { + return this.emptyBuffer().write({ overwrite: !0 }); + }); + } + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ + stringify() { + return this._buffer; + } + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ + isEmptyBuffer() { + return this._buffer.length === 0; + } + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ + emptyBuffer() { + return this._buffer = "", this; + } + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ + addRaw(text, addEOL = !1) { + return this._buffer += text, addEOL ? this.addEOL() : this; + } + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ + addEOL() { + return this.addRaw(EOL7); + } + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ + addCodeBlock(code, lang) { + let attrs = Object.assign({}, lang && { lang }), element = this.wrap("pre", this.wrap("code", code), attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ + addList(items, ordered = !1) { + let tag = ordered ? "ol" : "ul", listItems = items.map((item) => this.wrap("li", item)).join(""), element = this.wrap(tag, listItems); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ + addTable(rows) { + let tableBody = rows.map((row) => { + let cells = row.map((cell) => { + if (typeof cell == "string") + return this.wrap("td", cell); + let { header, data, colspan, rowspan } = cell, tag = header ? "th" : "td", attrs = Object.assign(Object.assign({}, colspan && { colspan }), rowspan && { rowspan }); + return this.wrap(tag, data, attrs); + }).join(""); + return this.wrap("tr", cells); + }).join(""), element = this.wrap("table", tableBody); + return this.addRaw(element).addEOL(); + } + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ + addDetails(label, content) { + let element = this.wrap("details", this.wrap("summary", label) + content); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ + addImage(src, alt, options) { + let { width, height } = options || {}, attrs = Object.assign(Object.assign({}, width && { width }), height && { height }), element = this.wrap("img", null, Object.assign({ src, alt }, attrs)); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ + addHeading(text, level) { + let tag = `h${level}`, allowedTag = ["h1", "h2", "h3", "h4", "h5", "h6"].includes(tag) ? tag : "h1", element = this.wrap(allowedTag, text); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML thematic break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addSeparator() { + let element = this.wrap("hr", null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML line break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addBreak() { + let element = this.wrap("br", null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ + addQuote(text, cite) { + let attrs = Object.assign({}, cite && { cite }), element = this.wrap("blockquote", text, attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ + addLink(text, href) { + let element = this.wrap("a", text, { href }); + return this.addRaw(element).addEOL(); + } +}, _summary2 = new Summary2(); + +// node_modules/@actions/cache/node_modules/@actions/core/lib/platform.js +import os7 from "os"; +var platform2 = os7.platform(), arch2 = os7.arch(); + +// node_modules/@actions/cache/node_modules/@actions/core/lib/core.js +var ExitCode2; +(function(ExitCode3) { + ExitCode3[ExitCode3.Success = 0] = "Success", ExitCode3[ExitCode3.Failure = 1] = "Failure"; +})(ExitCode2 || (ExitCode2 = {})); +function setSecret2(secret) { + issueCommand2("add-mask", {}, secret); +} +function isDebug2() { + return process.env.RUNNER_DEBUG === "1"; +} +function debug2(message) { + issueCommand2("debug", {}, message); +} +function error2(message, properties = {}) { + issueCommand2("error", toCommandProperties2(properties), message instanceof Error ? message.toString() : message); +} +function warning2(message, properties = {}) { + issueCommand2("warning", toCommandProperties2(properties), message instanceof Error ? message.toString() : message); +} +function info2(message) { + process.stdout.write(message + os8.EOL); +} + +// node_modules/@actions/cache/lib/cache.js +import * as path11 from "path"; + +// node_modules/@actions/glob/lib/internal-globber.js +import * as fs3 from "fs"; + +// node_modules/@actions/glob/lib/internal-glob-options-helper.js +function getOptions(copy) { + let result = { + followSymbolicLinks: !0, + implicitDescendants: !0, + matchDirectories: !0, + omitBrokenSymbolicLinks: !0, + excludeHiddenFiles: !1 + }; + return copy && (typeof copy.followSymbolicLinks == "boolean" && (result.followSymbolicLinks = copy.followSymbolicLinks, debug(`followSymbolicLinks '${result.followSymbolicLinks}'`)), typeof copy.implicitDescendants == "boolean" && (result.implicitDescendants = copy.implicitDescendants, debug(`implicitDescendants '${result.implicitDescendants}'`)), typeof copy.matchDirectories == "boolean" && (result.matchDirectories = copy.matchDirectories, debug(`matchDirectories '${result.matchDirectories}'`)), typeof copy.omitBrokenSymbolicLinks == "boolean" && (result.omitBrokenSymbolicLinks = copy.omitBrokenSymbolicLinks, debug(`omitBrokenSymbolicLinks '${result.omitBrokenSymbolicLinks}'`)), typeof copy.excludeHiddenFiles == "boolean" && (result.excludeHiddenFiles = copy.excludeHiddenFiles, debug(`excludeHiddenFiles '${result.excludeHiddenFiles}'`))), result; +} + +// node_modules/@actions/glob/lib/internal-globber.js +import * as path7 from "path"; + +// node_modules/@actions/glob/lib/internal-path-helper.js +import * as path4 from "path"; +import assert from "assert"; +var IS_WINDOWS3 = process.platform === "win32"; +function dirname6(p) { + if (p = safeTrimTrailingSeparator(p), IS_WINDOWS3 && /^\\\\[^\\]+(\\[^\\]+)?$/.test(p)) + return p; + let result = path4.dirname(p); + return IS_WINDOWS3 && /^\\\\[^\\]+\\[^\\]+\\$/.test(result) && (result = safeTrimTrailingSeparator(result)), result; +} +function ensureAbsoluteRoot(root, itemPath) { + if (assert(root, "ensureAbsoluteRoot parameter 'root' must not be empty"), assert(itemPath, "ensureAbsoluteRoot parameter 'itemPath' must not be empty"), hasAbsoluteRoot(itemPath)) + return itemPath; + if (IS_WINDOWS3) { + if (itemPath.match(/^[A-Z]:[^\\/]|^[A-Z]:$/i)) { + let cwd = process.cwd(); + return assert(cwd.match(/^[A-Z]:\\/i), `Expected current directory to start with an absolute drive root. Actual '${cwd}'`), itemPath[0].toUpperCase() === cwd[0].toUpperCase() ? itemPath.length === 2 ? `${itemPath[0]}:\\${cwd.substr(3)}` : (cwd.endsWith("\\") || (cwd += "\\"), `${itemPath[0]}:\\${cwd.substr(3)}${itemPath.substr(2)}`) : `${itemPath[0]}:\\${itemPath.substr(2)}`; + } else if (normalizeSeparators2(itemPath).match(/^\\$|^\\[^\\]/)) { + let cwd = process.cwd(); + return assert(cwd.match(/^[A-Z]:\\/i), `Expected current directory to start with an absolute drive root. Actual '${cwd}'`), `${cwd[0]}:\\${itemPath.substr(1)}`; + } + } + return assert(hasAbsoluteRoot(root), "ensureAbsoluteRoot parameter 'root' must have an absolute root"), root.endsWith("/") || IS_WINDOWS3 && root.endsWith("\\") || (root += path4.sep), root + itemPath; +} +function hasAbsoluteRoot(itemPath) { + return assert(itemPath, "hasAbsoluteRoot parameter 'itemPath' must not be empty"), itemPath = normalizeSeparators2(itemPath), IS_WINDOWS3 ? itemPath.startsWith("\\\\") || /^[A-Z]:\\/i.test(itemPath) : itemPath.startsWith("/"); +} +function hasRoot(itemPath) { + return assert(itemPath, "isRooted parameter 'itemPath' must not be empty"), itemPath = normalizeSeparators2(itemPath), IS_WINDOWS3 ? itemPath.startsWith("\\") || /^[A-Z]:/i.test(itemPath) : itemPath.startsWith("/"); +} +function normalizeSeparators2(p) { + return p = p || "", IS_WINDOWS3 ? (p = p.replace(/\//g, "\\"), (/^\\\\+[^\\]/.test(p) ? "\\" : "") + p.replace(/\\\\+/g, "\\")) : p.replace(/\/\/+/g, "/"); +} +function safeTrimTrailingSeparator(p) { + return p ? (p = normalizeSeparators2(p), !p.endsWith(path4.sep) || p === path4.sep || IS_WINDOWS3 && /^[A-Z]:\\$/i.test(p) ? p : p.substr(0, p.length - 1)) : ""; +} + +// node_modules/@actions/glob/lib/internal-match-kind.js +var MatchKind; +(function(MatchKind2) { + MatchKind2[MatchKind2.None = 0] = "None", MatchKind2[MatchKind2.Directory = 1] = "Directory", MatchKind2[MatchKind2.File = 2] = "File", MatchKind2[MatchKind2.All = 3] = "All"; +})(MatchKind || (MatchKind = {})); + +// node_modules/@actions/glob/lib/internal-pattern-helper.js +var IS_WINDOWS4 = process.platform === "win32"; +function getSearchPaths(patterns) { + patterns = patterns.filter((x) => !x.negate); + let searchPathMap = {}; + for (let pattern of patterns) { + let key = IS_WINDOWS4 ? pattern.searchPath.toUpperCase() : pattern.searchPath; + searchPathMap[key] = "candidate"; + } + let result = []; + for (let pattern of patterns) { + let key = IS_WINDOWS4 ? pattern.searchPath.toUpperCase() : pattern.searchPath; + if (searchPathMap[key] === "included") + continue; + let foundAncestor = !1, tempKey = key, parent = dirname6(tempKey); + for (; parent !== tempKey; ) { + if (searchPathMap[parent]) { + foundAncestor = !0; + break; + } + tempKey = parent, parent = dirname6(tempKey); + } + foundAncestor || (result.push(pattern.searchPath), searchPathMap[key] = "included"); + } + return result; +} +function match(patterns, itemPath) { + let result = MatchKind.None; + for (let pattern of patterns) + pattern.negate ? result &= ~pattern.match(itemPath) : result |= pattern.match(itemPath); + return result; +} +function partialMatch(patterns, itemPath) { + return patterns.some((x) => !x.negate && x.partialMatch(itemPath)); +} + +// node_modules/@actions/glob/lib/internal-pattern.js +import * as os9 from "os"; +import * as path6 from "path"; +var import_minimatch = __toESM(require_minimatch(), 1); +import assert3 from "assert"; + +// node_modules/@actions/glob/lib/internal-path.js +import * as path5 from "path"; +import assert2 from "assert"; +var IS_WINDOWS5 = process.platform === "win32", Path = class { + /** + * Constructs a Path + * @param itemPath Path or array of segments + */ + constructor(itemPath) { + if (this.segments = [], typeof itemPath == "string") + if (assert2(itemPath, "Parameter 'itemPath' must not be empty"), itemPath = safeTrimTrailingSeparator(itemPath), !hasRoot(itemPath)) + this.segments = itemPath.split(path5.sep); + else { + let remaining = itemPath, dir = dirname6(remaining); + for (; dir !== remaining; ) { + let basename9 = path5.basename(remaining); + this.segments.unshift(basename9), remaining = dir, dir = dirname6(remaining); + } + this.segments.unshift(remaining); + } + else { + assert2(itemPath.length > 0, "Parameter 'itemPath' must not be an empty array"); + for (let i = 0; i < itemPath.length; i++) { + let segment = itemPath[i]; + assert2(segment, "Parameter 'itemPath' must not contain any empty segments"), segment = normalizeSeparators2(itemPath[i]), i === 0 && hasRoot(segment) ? (segment = safeTrimTrailingSeparator(segment), assert2(segment === dirname6(segment), "Parameter 'itemPath' root segment contains information for multiple segments"), this.segments.push(segment)) : (assert2(!segment.includes(path5.sep), "Parameter 'itemPath' contains unexpected path separators"), this.segments.push(segment)); + } + } + } + /** + * Converts the path to it's string representation + */ + toString() { + let result = this.segments[0], skipSlash = result.endsWith(path5.sep) || IS_WINDOWS5 && /^[A-Z]:$/i.test(result); + for (let i = 1; i < this.segments.length; i++) + skipSlash ? skipSlash = !1 : result += path5.sep, result += this.segments[i]; + return result; + } +}; + +// node_modules/@actions/glob/lib/internal-pattern.js +var { Minimatch } = import_minimatch.default, IS_WINDOWS6 = process.platform === "win32", Pattern = class _Pattern { + constructor(patternOrNegate, isImplicitPattern = !1, segments, homedir2) { + this.negate = !1; + let pattern; + if (typeof patternOrNegate == "string") + pattern = patternOrNegate.trim(); + else { + segments = segments || [], assert3(segments.length, "Parameter 'segments' must not empty"); + let root = _Pattern.getLiteral(segments[0]); + assert3(root && hasAbsoluteRoot(root), "Parameter 'segments' first element must be a root path"), pattern = new Path(segments).toString().trim(), patternOrNegate && (pattern = `!${pattern}`); + } + for (; pattern.startsWith("!"); ) + this.negate = !this.negate, pattern = pattern.substr(1).trim(); + pattern = _Pattern.fixupPattern(pattern, homedir2), this.segments = new Path(pattern).segments, this.trailingSeparator = normalizeSeparators2(pattern).endsWith(path6.sep), pattern = safeTrimTrailingSeparator(pattern); + let foundGlob = !1, searchSegments = this.segments.map((x) => _Pattern.getLiteral(x)).filter((x) => !foundGlob && !(foundGlob = x === "")); + this.searchPath = new Path(searchSegments).toString(), this.rootRegExp = new RegExp(_Pattern.regExpEscape(searchSegments[0]), IS_WINDOWS6 ? "i" : ""), this.isImplicitPattern = isImplicitPattern; + let minimatchOptions = { + dot: !0, + nobrace: !0, + nocase: IS_WINDOWS6, + nocomment: !0, + noext: !0, + nonegate: !0 + }; + pattern = IS_WINDOWS6 ? pattern.replace(/\\/g, "/") : pattern, this.minimatch = new Minimatch(pattern, minimatchOptions); + } + /** + * Matches the pattern against the specified path + */ + match(itemPath) { + return this.segments[this.segments.length - 1] === "**" ? (itemPath = normalizeSeparators2(itemPath), !itemPath.endsWith(path6.sep) && this.isImplicitPattern === !1 && (itemPath = `${itemPath}${path6.sep}`)) : itemPath = safeTrimTrailingSeparator(itemPath), this.minimatch.match(itemPath) ? this.trailingSeparator ? MatchKind.Directory : MatchKind.All : MatchKind.None; + } + /** + * Indicates whether the pattern may match descendants of the specified path + */ + partialMatch(itemPath) { + return itemPath = safeTrimTrailingSeparator(itemPath), dirname6(itemPath) === itemPath ? this.rootRegExp.test(itemPath) : this.minimatch.matchOne(itemPath.split(IS_WINDOWS6 ? /\\+/ : /\/+/), this.minimatch.set[0], !0); + } + /** + * Escapes glob patterns within a path + */ + static globEscape(s) { + return (IS_WINDOWS6 ? s : s.replace(/\\/g, "\\\\")).replace(/(\[)(?=[^/]+\])/g, "[[]").replace(/\?/g, "[?]").replace(/\*/g, "[*]"); + } + /** + * Normalizes slashes and ensures absolute root + */ + static fixupPattern(pattern, homedir2) { + assert3(pattern, "pattern cannot be empty"); + let literalSegments = new Path(pattern).segments.map((x) => _Pattern.getLiteral(x)); + if (assert3(literalSegments.every((x, i) => (x !== "." || i === 0) && x !== ".."), `Invalid pattern '${pattern}'. Relative pathing '.' and '..' is not allowed.`), assert3(!hasRoot(pattern) || literalSegments[0], `Invalid pattern '${pattern}'. Root segment must not contain globs.`), pattern = normalizeSeparators2(pattern), pattern === "." || pattern.startsWith(`.${path6.sep}`)) + pattern = _Pattern.globEscape(process.cwd()) + pattern.substr(1); + else if (pattern === "~" || pattern.startsWith(`~${path6.sep}`)) + homedir2 = homedir2 || os9.homedir(), assert3(homedir2, "Unable to determine HOME directory"), assert3(hasAbsoluteRoot(homedir2), `Expected HOME directory to be a rooted path. Actual '${homedir2}'`), pattern = _Pattern.globEscape(homedir2) + pattern.substr(1); + else if (IS_WINDOWS6 && (pattern.match(/^[A-Z]:$/i) || pattern.match(/^[A-Z]:[^\\]/i))) { + let root = ensureAbsoluteRoot("C:\\dummy-root", pattern.substr(0, 2)); + pattern.length > 2 && !root.endsWith("\\") && (root += "\\"), pattern = _Pattern.globEscape(root) + pattern.substr(2); + } else if (IS_WINDOWS6 && (pattern === "\\" || pattern.match(/^\\[^\\]/))) { + let root = ensureAbsoluteRoot("C:\\dummy-root", "\\"); + root.endsWith("\\") || (root += "\\"), pattern = _Pattern.globEscape(root) + pattern.substr(1); + } else + pattern = ensureAbsoluteRoot(_Pattern.globEscape(process.cwd()), pattern); + return normalizeSeparators2(pattern); + } + /** + * Attempts to unescape a pattern segment to create a literal path segment. + * Otherwise returns empty string. + */ + static getLiteral(segment) { + let literal = ""; + for (let i = 0; i < segment.length; i++) { + let c = segment[i]; + if (c === "\\" && !IS_WINDOWS6 && i + 1 < segment.length) { + literal += segment[++i]; + continue; + } else { + if (c === "*" || c === "?") + return ""; + if (c === "[" && i + 1 < segment.length) { + let set = "", closed = -1; + for (let i2 = i + 1; i2 < segment.length; i2++) { + let c2 = segment[i2]; + if (c2 === "\\" && !IS_WINDOWS6 && i2 + 1 < segment.length) { + set += segment[++i2]; + continue; + } else if (c2 === "]") { + closed = i2; + break; + } else + set += c2; + } + if (closed >= 0) { + if (set.length > 1) + return ""; + if (set) { + literal += set, i = closed; + continue; + } + } + } + } + literal += c; + } + return literal; + } + /** + * Escapes regexp special characters + * https://javascript.info/regexp-escaping + */ + static regExpEscape(s) { + return s.replace(/[[\\^$.|?*+()]/g, "\\$&"); + } +}; + +// node_modules/@actions/glob/lib/internal-search-state.js +var SearchState = class { + constructor(path12, level) { + this.path = path12, this.level = level; + } +}; + +// node_modules/@actions/glob/lib/internal-globber.js +var __awaiter7 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}, __asyncValues = function(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values == "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i); + function verb(n) { + i[n] = o[n] && function(v) { + return new Promise(function(resolve2, reject) { + v = o[n](v), settle(resolve2, reject, v.done, v.value); + }); + }; + } + function settle(resolve2, reject, d, v) { + Promise.resolve(v).then(function(v2) { + resolve2({ value: v2, done: d }); + }, reject); + } +}, __await = function(v) { + return this instanceof __await ? (this.v = v, this) : new __await(v); +}, __asyncGenerator = function(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = Object.create((typeof AsyncIterator == "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function() { + return this; + }, i; + function awaitReturn(f) { + return function(v) { + return Promise.resolve(v).then(f, reject); + }; + } + function verb(n, f) { + g[n] && (i[n] = function(v) { + return new Promise(function(a, b) { + q.push([n, v, a, b]) > 1 || resume(n, v); + }); + }, f && (i[n] = f(i[n]))); + } + function resume(n, v) { + try { + step(g[n](v)); + } catch (e) { + settle(q[0][3], e); + } + } + function step(r) { + r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); + } + function fulfill(value) { + resume("next", value); + } + function reject(value) { + resume("throw", value); + } + function settle(f, v) { + f(v), q.shift(), q.length && resume(q[0][0], q[0][1]); + } +}, IS_WINDOWS7 = process.platform === "win32", DefaultGlobber = class _DefaultGlobber { + constructor(options) { + this.patterns = [], this.searchPaths = [], this.options = getOptions(options); + } + getSearchPaths() { + return this.searchPaths.slice(); + } + glob() { + return __awaiter7(this, void 0, void 0, function* () { + var _a, e_1, _b, _c; + let result = []; + try { + for (var _d = !0, _e = __asyncValues(this.globGenerator()), _f; _f = yield _e.next(), _a = _f.done, !_a; _d = !0) { + _c = _f.value, _d = !1; + let itemPath = _c; + result.push(itemPath); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + !_d && !_a && (_b = _e.return) && (yield _b.call(_e)); + } finally { + if (e_1) throw e_1.error; + } + } + return result; + }); + } + globGenerator() { + return __asyncGenerator(this, arguments, function* () { + let options = getOptions(this.options), patterns = []; + for (let pattern of this.patterns) + patterns.push(pattern), options.implicitDescendants && (pattern.trailingSeparator || pattern.segments[pattern.segments.length - 1] !== "**") && patterns.push(new Pattern(pattern.negate, !0, pattern.segments.concat("**"))); + let stack = []; + for (let searchPath of getSearchPaths(patterns)) { + debug(`Search path '${searchPath}'`); + try { + yield __await(fs3.promises.lstat(searchPath)); + } catch (err) { + if (err.code === "ENOENT") + continue; + throw err; + } + stack.unshift(new SearchState(searchPath, 1)); + } + let traversalChain = []; + for (; stack.length; ) { + let item = stack.pop(), match2 = match(patterns, item.path), partialMatch2 = !!match2 || partialMatch(patterns, item.path); + if (!match2 && !partialMatch2) + continue; + let stats = yield __await( + _DefaultGlobber.stat(item, options, traversalChain) + // Broken symlink, or symlink cycle detected, or no longer exists + ); + if (stats && !(options.excludeHiddenFiles && path7.basename(item.path).match(/^\./))) + if (stats.isDirectory()) { + if (match2 & MatchKind.Directory && options.matchDirectories) + yield yield __await(item.path); + else if (!partialMatch2) + continue; + let childLevel = item.level + 1, childItems = (yield __await(fs3.promises.readdir(item.path))).map((x) => new SearchState(path7.join(item.path, x), childLevel)); + stack.push(...childItems.reverse()); + } else match2 & MatchKind.File && (yield yield __await(item.path)); + } + }); + } + /** + * Constructs a DefaultGlobber + */ + static create(patterns, options) { + return __awaiter7(this, void 0, void 0, function* () { + let result = new _DefaultGlobber(options); + IS_WINDOWS7 && (patterns = patterns.replace(/\r\n/g, ` +`), patterns = patterns.replace(/\r/g, ` +`)); + let lines = patterns.split(` +`).map((x) => x.trim()); + for (let line of lines) + !line || line.startsWith("#") || result.patterns.push(new Pattern(line)); + return result.searchPaths.push(...getSearchPaths(result.patterns)), result; + }); + } + static stat(item, options, traversalChain) { + return __awaiter7(this, void 0, void 0, function* () { + let stats; + if (options.followSymbolicLinks) + try { + stats = yield fs3.promises.stat(item.path); + } catch (err) { + if (err.code === "ENOENT") { + if (options.omitBrokenSymbolicLinks) { + debug(`Broken symlink '${item.path}'`); + return; + } + throw new Error(`No information found for the path '${item.path}'. This may indicate a broken symbolic link.`); + } + throw err; + } + else + stats = yield fs3.promises.lstat(item.path); + if (stats.isDirectory() && options.followSymbolicLinks) { + let realPath = yield fs3.promises.realpath(item.path); + for (; traversalChain.length >= item.level; ) + traversalChain.pop(); + if (traversalChain.some((x) => x === realPath)) { + debug(`Symlink cycle detected for path '${item.path}' and realpath '${realPath}'`); + return; + } + traversalChain.push(realPath); + } + return stats; + }); + } +}; + +// node_modules/@actions/glob/lib/internal-hash-files.js +import * as crypto2 from "crypto"; +import * as fs4 from "fs"; +import * as stream from "stream"; +import * as util from "util"; +import * as path8 from "path"; +var __awaiter8 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}, __asyncValues2 = function(o) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values == "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i); + function verb(n) { + i[n] = o[n] && function(v) { + return new Promise(function(resolve2, reject) { + v = o[n](v), settle(resolve2, reject, v.done, v.value); + }); + }; + } + function settle(resolve2, reject, d, v) { + Promise.resolve(v).then(function(v2) { + resolve2({ value: v2, done: d }); + }, reject); + } +}; +function hashFiles(globber_1, currentWorkspace_1) { + return __awaiter8(this, arguments, void 0, function* (globber, currentWorkspace, verbose = !1) { + var _a, e_1, _b, _c, _d; + let writeDelegate = verbose ? info : debug, hasMatch = !1, githubWorkspace = currentWorkspace || ((_d = process.env.GITHUB_WORKSPACE) !== null && _d !== void 0 ? _d : process.cwd()), result = crypto2.createHash("sha256"), count = 0; + try { + for (var _e = !0, _f = __asyncValues2(globber.globGenerator()), _g; _g = yield _f.next(), _a = _g.done, !_a; _e = !0) { + _c = _g.value, _e = !1; + let file = _c; + if (writeDelegate(file), !file.startsWith(`${githubWorkspace}${path8.sep}`)) { + writeDelegate(`Ignore '${file}' since it is not under GITHUB_WORKSPACE.`); + continue; + } + if (fs4.statSync(file).isDirectory()) { + writeDelegate(`Skip directory '${file}'.`); + continue; + } + let hash = crypto2.createHash("sha256"); + yield util.promisify(stream.pipeline)(fs4.createReadStream(file), hash), result.write(hash.digest()), count++, hasMatch || (hasMatch = !0); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + !_e && !_a && (_b = _f.return) && (yield _b.call(_f)); + } finally { + if (e_1) throw e_1.error; + } + } + return result.end(), hasMatch ? (writeDelegate(`Found ${count} files to hash.`), result.digest("hex")) : (writeDelegate("No matches found for glob"), ""); + }); +} + +// node_modules/@actions/glob/lib/glob.js +var __awaiter9 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +function create(patterns, options) { + return __awaiter9(this, void 0, void 0, function* () { + return yield DefaultGlobber.create(patterns, options); + }); +} +function hashFiles2(patterns_1) { + return __awaiter9(this, arguments, void 0, function* (patterns, currentWorkspace = "", options, verbose = !1) { + let followSymbolicLinks = !0; + options && typeof options.followSymbolicLinks == "boolean" && (followSymbolicLinks = options.followSymbolicLinks); + let globber = yield create(patterns, { followSymbolicLinks }); + return hashFiles(globber, currentWorkspace, verbose); + }); +} + +// node_modules/@actions/cache/lib/internal/cacheUtils.js +var semver = __toESM(require_semver2(), 1); +import * as crypto3 from "crypto"; +import * as fs5 from "fs"; +import * as path9 from "path"; +import * as util2 from "util"; + +// node_modules/@actions/cache/lib/internal/constants.js +var CacheFilename; +(function(CacheFilename2) { + CacheFilename2.Gzip = "cache.tgz", CacheFilename2.Zstd = "cache.tzst"; +})(CacheFilename || (CacheFilename = {})); +var CompressionMethod; +(function(CompressionMethod2) { + CompressionMethod2.Gzip = "gzip", CompressionMethod2.ZstdWithoutLong = "zstd-without-long", CompressionMethod2.Zstd = "zstd"; +})(CompressionMethod || (CompressionMethod = {})); +var ArchiveToolType; +(function(ArchiveToolType2) { + ArchiveToolType2.GNU = "gnu", ArchiveToolType2.BSD = "bsd"; +})(ArchiveToolType || (ArchiveToolType = {})); +var DefaultRetryAttempts = 2, DefaultRetryDelay = 5e3, SocketTimeout = 5e3, GnuTarPathOnWindows = `${process.env.PROGRAMFILES}\\Git\\usr\\bin\\tar.exe`, SystemTarPathOnWindows = `${process.env.SYSTEMDRIVE}\\Windows\\System32\\tar.exe`, TarFilename = "cache.tar", ManifestFilename = "manifest.txt", CacheFileSizeLimit = 10 * Math.pow(1024, 3), CacheReadDeniedMessagePrefix = "cache read denied:"; + +// node_modules/@actions/cache/lib/internal/cacheUtils.js +var __awaiter10 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var versionSalt = "1.0"; +function createTempDirectory() { + return __awaiter10(this, void 0, void 0, function* () { + let IS_WINDOWS9 = process.platform === "win32", tempDirectory = process.env.RUNNER_TEMP || ""; + if (!tempDirectory) { + let baseLocation; + IS_WINDOWS9 ? baseLocation = process.env.USERPROFILE || "C:\\" : process.platform === "darwin" ? baseLocation = "/Users" : baseLocation = "/home", tempDirectory = path9.join(baseLocation, "actions", "temp"); + } + let dest = path9.join(tempDirectory, crypto3.randomUUID()); + return yield mkdirP(dest), dest; + }); +} +function getArchiveFileSizeInBytes(filePath) { + return fs5.statSync(filePath).size; +} +function unlinkFile(filePath) { + return __awaiter10(this, void 0, void 0, function* () { + return util2.promisify(fs5.unlink)(filePath); + }); +} +function getVersion(app_1) { + return __awaiter10(this, arguments, void 0, function* (app, additionalArgs = []) { + let versionOutput = ""; + additionalArgs.push("--version"), debug2(`Checking ${app} ${additionalArgs.join(" ")}`); + try { + yield exec(`${app}`, additionalArgs, { + ignoreReturnCode: !0, + silent: !0, + listeners: { + stdout: (data) => versionOutput += data.toString(), + stderr: (data) => versionOutput += data.toString() + } + }); + } catch (err) { + debug2(err.message); + } + return versionOutput = versionOutput.trim(), debug2(versionOutput), versionOutput; + }); +} +function getCompressionMethod() { + return __awaiter10(this, void 0, void 0, function* () { + let versionOutput = yield getVersion("zstd", ["--quiet"]), version3 = semver.clean(versionOutput); + return debug2(`zstd version: ${version3}`), versionOutput === "" ? CompressionMethod.Gzip : CompressionMethod.ZstdWithoutLong; + }); +} +function getCacheFileName(compressionMethod) { + return compressionMethod === CompressionMethod.Gzip ? CacheFilename.Gzip : CacheFilename.Zstd; +} +function getGnuTarPathOnWindows() { + return __awaiter10(this, void 0, void 0, function* () { + return fs5.existsSync(GnuTarPathOnWindows) ? GnuTarPathOnWindows : (yield getVersion("tar")).toLowerCase().includes("gnu tar") ? which("tar") : ""; + }); +} +function getCacheVersion(paths, compressionMethod, enableCrossOsArchive = !1) { + let components = paths.slice(); + return compressionMethod && components.push(compressionMethod), process.platform === "win32" && !enableCrossOsArchive && components.push("windows-only"), components.push(versionSalt), crypto3.createHash("sha256").update(components.join("|")).digest("hex"); +} +function getRuntimeToken() { + let token = process.env.ACTIONS_RUNTIME_TOKEN; + if (!token) + throw new Error("Unable to get the ACTIONS_RUNTIME_TOKEN env variable"); + return token; +} + +// node_modules/@actions/cache/node_modules/@actions/http-client/lib/index.js +import * as http from "http"; +import * as https from "https"; + +// node_modules/@actions/cache/node_modules/@actions/http-client/lib/proxy.js +function getProxyUrl3(reqUrl) { + let usingSsl = reqUrl.protocol === "https:"; + if (checkBypass(reqUrl)) + return; + let proxyVar = usingSsl ? process.env.https_proxy || process.env.HTTPS_PROXY : process.env.http_proxy || process.env.HTTP_PROXY; + if (proxyVar) + try { + return new DecodedURL(proxyVar); + } catch { + if (!proxyVar.startsWith("http://") && !proxyVar.startsWith("https://")) + return new DecodedURL(`http://${proxyVar}`); + } + else + return; +} +function checkBypass(reqUrl) { + if (!reqUrl.hostname) + return !1; + let reqHost = reqUrl.hostname; + if (isLoopbackAddress(reqHost)) + return !0; + let noProxy = process.env.no_proxy || process.env.NO_PROXY || ""; + if (!noProxy) + return !1; + let reqPort; + reqUrl.port ? reqPort = Number(reqUrl.port) : reqUrl.protocol === "http:" ? reqPort = 80 : reqUrl.protocol === "https:" && (reqPort = 443); + let upperReqHosts = [reqUrl.hostname.toUpperCase()]; + typeof reqPort == "number" && upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + for (let upperNoProxyItem of noProxy.split(",").map((x) => x.trim().toUpperCase()).filter((x) => x)) + if (upperNoProxyItem === "*" || upperReqHosts.some((x) => x === upperNoProxyItem || x.endsWith(`.${upperNoProxyItem}`) || upperNoProxyItem.startsWith(".") && x.endsWith(`${upperNoProxyItem}`))) + return !0; + return !1; +} +function isLoopbackAddress(host) { + let hostLower = host.toLowerCase(); + return hostLower === "localhost" || hostLower.startsWith("127.") || hostLower.startsWith("[::1]") || hostLower.startsWith("[0:0:0:0:0:0:0:1]"); +} +var DecodedURL = class extends URL { + constructor(url2, base) { + super(url2, base), this._decodedUsername = decodeURIComponent(super.username), this._decodedPassword = decodeURIComponent(super.password); + } + get username() { + return this._decodedUsername; + } + get password() { + return this._decodedPassword; + } +}; + +// node_modules/@actions/cache/node_modules/@actions/http-client/lib/index.js +var tunnel3 = __toESM(require_tunnel2(), 1), import_undici3 = __toESM(require_undici(), 1), __awaiter11 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}, HttpCodes3; +(function(HttpCodes4) { + HttpCodes4[HttpCodes4.OK = 200] = "OK", HttpCodes4[HttpCodes4.MultipleChoices = 300] = "MultipleChoices", HttpCodes4[HttpCodes4.MovedPermanently = 301] = "MovedPermanently", HttpCodes4[HttpCodes4.ResourceMoved = 302] = "ResourceMoved", HttpCodes4[HttpCodes4.SeeOther = 303] = "SeeOther", HttpCodes4[HttpCodes4.NotModified = 304] = "NotModified", HttpCodes4[HttpCodes4.UseProxy = 305] = "UseProxy", HttpCodes4[HttpCodes4.SwitchProxy = 306] = "SwitchProxy", HttpCodes4[HttpCodes4.TemporaryRedirect = 307] = "TemporaryRedirect", HttpCodes4[HttpCodes4.PermanentRedirect = 308] = "PermanentRedirect", HttpCodes4[HttpCodes4.BadRequest = 400] = "BadRequest", HttpCodes4[HttpCodes4.Unauthorized = 401] = "Unauthorized", HttpCodes4[HttpCodes4.PaymentRequired = 402] = "PaymentRequired", HttpCodes4[HttpCodes4.Forbidden = 403] = "Forbidden", HttpCodes4[HttpCodes4.NotFound = 404] = "NotFound", HttpCodes4[HttpCodes4.MethodNotAllowed = 405] = "MethodNotAllowed", HttpCodes4[HttpCodes4.NotAcceptable = 406] = "NotAcceptable", HttpCodes4[HttpCodes4.ProxyAuthenticationRequired = 407] = "ProxyAuthenticationRequired", HttpCodes4[HttpCodes4.RequestTimeout = 408] = "RequestTimeout", HttpCodes4[HttpCodes4.Conflict = 409] = "Conflict", HttpCodes4[HttpCodes4.Gone = 410] = "Gone", HttpCodes4[HttpCodes4.TooManyRequests = 429] = "TooManyRequests", HttpCodes4[HttpCodes4.InternalServerError = 500] = "InternalServerError", HttpCodes4[HttpCodes4.NotImplemented = 501] = "NotImplemented", HttpCodes4[HttpCodes4.BadGateway = 502] = "BadGateway", HttpCodes4[HttpCodes4.ServiceUnavailable = 503] = "ServiceUnavailable", HttpCodes4[HttpCodes4.GatewayTimeout = 504] = "GatewayTimeout"; +})(HttpCodes3 || (HttpCodes3 = {})); +var Headers3; +(function(Headers4) { + Headers4.Accept = "accept", Headers4.ContentType = "content-type"; +})(Headers3 || (Headers3 = {})); +var MediaTypes3; +(function(MediaTypes4) { + MediaTypes4.ApplicationJson = "application/json"; +})(MediaTypes3 || (MediaTypes3 = {})); +var HttpRedirectCodes3 = [ + HttpCodes3.MovedPermanently, + HttpCodes3.ResourceMoved, + HttpCodes3.SeeOther, + HttpCodes3.TemporaryRedirect, + HttpCodes3.PermanentRedirect +], HttpResponseRetryCodes3 = [ + HttpCodes3.BadGateway, + HttpCodes3.ServiceUnavailable, + HttpCodes3.GatewayTimeout +], RetryableHttpVerbs = ["OPTIONS", "GET", "DELETE", "HEAD"], ExponentialBackoffCeiling = 10, ExponentialBackoffTimeSlice = 5, HttpClientError = class _HttpClientError extends Error { + constructor(message, statusCode) { + super(message), this.name = "HttpClientError", this.statusCode = statusCode, Object.setPrototypeOf(this, _HttpClientError.prototype); + } +}, HttpClientResponse = class { + constructor(message) { + this.message = message; + } + readBody() { + return __awaiter11(this, void 0, void 0, function* () { + return new Promise((resolve2) => __awaiter11(this, void 0, void 0, function* () { + let output = Buffer.alloc(0); + this.message.on("data", (chunk) => { + output = Buffer.concat([output, chunk]); + }), this.message.on("end", () => { + resolve2(output.toString()); + }); + })); + }); + } + readBodyBuffer() { + return __awaiter11(this, void 0, void 0, function* () { + return new Promise((resolve2) => __awaiter11(this, void 0, void 0, function* () { + let chunks = []; + this.message.on("data", (chunk) => { + chunks.push(chunk); + }), this.message.on("end", () => { + resolve2(Buffer.concat(chunks)); + }); + })); + }); + } +}; +var HttpClient3 = class { + constructor(userAgent, handlers, requestOptions) { + 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(userAgent), this.handlers = handlers || [], this.requestOptions = requestOptions, requestOptions && (requestOptions.ignoreSslError != null && (this._ignoreSslError = requestOptions.ignoreSslError), this._socketTimeout = requestOptions.socketTimeout, requestOptions.allowRedirects != null && (this._allowRedirects = requestOptions.allowRedirects), requestOptions.allowRedirectDowngrade != null && (this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade), requestOptions.maxRedirects != null && (this._maxRedirects = Math.max(requestOptions.maxRedirects, 0)), requestOptions.keepAlive != null && (this._keepAlive = requestOptions.keepAlive), requestOptions.allowRetries != null && (this._allowRetries = requestOptions.allowRetries), requestOptions.maxRetries != null && (this._maxRetries = requestOptions.maxRetries)); + } + options(requestUrl, additionalHeaders) { + return __awaiter11(this, void 0, void 0, function* () { + return this.request("OPTIONS", requestUrl, null, additionalHeaders || {}); + }); + } + get(requestUrl, additionalHeaders) { + return __awaiter11(this, void 0, void 0, function* () { + return this.request("GET", requestUrl, null, additionalHeaders || {}); + }); + } + del(requestUrl, additionalHeaders) { + return __awaiter11(this, void 0, void 0, function* () { + return this.request("DELETE", requestUrl, null, additionalHeaders || {}); + }); + } + post(requestUrl, data, additionalHeaders) { + return __awaiter11(this, void 0, void 0, function* () { + return this.request("POST", requestUrl, data, additionalHeaders || {}); + }); + } + patch(requestUrl, data, additionalHeaders) { + return __awaiter11(this, void 0, void 0, function* () { + return this.request("PATCH", requestUrl, data, additionalHeaders || {}); + }); + } + put(requestUrl, data, additionalHeaders) { + return __awaiter11(this, void 0, void 0, function* () { + return this.request("PUT", requestUrl, data, additionalHeaders || {}); + }); + } + head(requestUrl, additionalHeaders) { + return __awaiter11(this, void 0, void 0, function* () { + return this.request("HEAD", requestUrl, null, additionalHeaders || {}); + }); + } + sendStream(verb, requestUrl, stream3, additionalHeaders) { + return __awaiter11(this, void 0, void 0, function* () { + return this.request(verb, requestUrl, stream3, additionalHeaders); + }); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl_1) { + return __awaiter11(this, arguments, void 0, function* (requestUrl, additionalHeaders = {}) { + additionalHeaders[Headers3.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers3.Accept, MediaTypes3.ApplicationJson); + let res = yield this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + postJson(requestUrl_1, obj_1) { + return __awaiter11(this, arguments, void 0, function* (requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers3.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers3.Accept, MediaTypes3.ApplicationJson), additionalHeaders[Headers3.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes3.ApplicationJson); + let res = yield this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + putJson(requestUrl_1, obj_1) { + return __awaiter11(this, arguments, void 0, function* (requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers3.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers3.Accept, MediaTypes3.ApplicationJson), additionalHeaders[Headers3.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes3.ApplicationJson); + let res = yield this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + patchJson(requestUrl_1, obj_1) { + return __awaiter11(this, arguments, void 0, function* (requestUrl, obj, additionalHeaders = {}) { + let data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers3.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers3.Accept, MediaTypes3.ApplicationJson), additionalHeaders[Headers3.ContentType] = this._getExistingOrDefaultContentTypeHeader(additionalHeaders, MediaTypes3.ApplicationJson); + let res = yield this.patch(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb, requestUrl, data, headers) { + return __awaiter11(this, void 0, void 0, function* () { + if (this._disposed) + throw new Error("Client has already been disposed."); + let parsedUrl = new URL(requestUrl), info3 = this._prepareRequest(verb, parsedUrl, headers), maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) ? this._maxRetries + 1 : 1, numTries = 0, response; + do { + if (response = yield this.requestRaw(info3, data), response && response.message && response.message.statusCode === HttpCodes3.Unauthorized) { + let authenticationHandler; + for (let handler of this.handlers) + if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler; + break; + } + return authenticationHandler ? authenticationHandler.handleAuthentication(this, info3, data) : response; + } + let redirectsRemaining = this._maxRedirects; + for (; response.message.statusCode && HttpRedirectCodes3.includes(response.message.statusCode) && this._allowRedirects && redirectsRemaining > 0; ) { + let redirectUrl = response.message.headers.location; + if (!redirectUrl) + break; + let parsedRedirectUrl = new URL(redirectUrl); + if (parsedUrl.protocol === "https:" && parsedUrl.protocol !== parsedRedirectUrl.protocol && !this._allowRedirectDowngrade) + throw new 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 response.readBody(), parsedRedirectUrl.hostname !== parsedUrl.hostname) + for (let header in headers) + header.toLowerCase() === "authorization" && delete headers[header]; + info3 = this._prepareRequest(verb, parsedRedirectUrl, headers), response = yield this.requestRaw(info3, data), redirectsRemaining--; + } + if (!response.message.statusCode || !HttpResponseRetryCodes3.includes(response.message.statusCode)) + return response; + numTries += 1, numTries < maxTries && (yield response.readBody(), yield this._performExponentialBackoff(numTries)); + } while (numTries < maxTries); + return response; + }); + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + this._agent && this._agent.destroy(), this._disposed = !0; + } + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info3, data) { + return __awaiter11(this, void 0, void 0, function* () { + return new Promise((resolve2, reject) => { + function callbackForResult(err, res) { + err ? reject(err) : res ? resolve2(res) : reject(new Error("Unknown error")); + } + this.requestRawWithCallback(info3, data, callbackForResult); + }); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info3, data, onResult) { + typeof data == "string" && (info3.options.headers || (info3.options.headers = {}), info3.options.headers["Content-Length"] = Buffer.byteLength(data, "utf8")); + let callbackCalled = !1; + function handleResult(err, res) { + callbackCalled || (callbackCalled = !0, onResult(err, res)); + } + let req = info3.httpModule.request(info3.options, (msg) => { + let res = new HttpClientResponse(msg); + handleResult(void 0, res); + }), socket; + req.on("socket", (sock) => { + socket = sock; + }), req.setTimeout(this._socketTimeout || 3 * 6e4, () => { + socket && socket.end(), handleResult(new Error(`Request timeout: ${info3.options.path}`)); + }), req.on("error", function(err) { + handleResult(err); + }), data && typeof data == "string" && req.write(data, "utf8"), data && typeof data != "string" ? (data.on("close", function() { + req.end(); + }), data.pipe(req)) : req.end(); + } + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + let parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + getAgentDispatcher(serverUrl) { + let parsedUrl = new URL(serverUrl), proxyUrl = getProxyUrl3(parsedUrl); + if (proxyUrl && proxyUrl.hostname) + return this._getProxyAgentDispatcher(parsedUrl, proxyUrl); + } + _prepareRequest(method, requestUrl, headers) { + let info3 = {}; + info3.parsedUrl = requestUrl; + let usingSsl = info3.parsedUrl.protocol === "https:"; + info3.httpModule = usingSsl ? https : http; + let defaultPort = usingSsl ? 443 : 80; + if (info3.options = {}, info3.options.host = info3.parsedUrl.hostname, info3.options.port = info3.parsedUrl.port ? parseInt(info3.parsedUrl.port) : defaultPort, info3.options.path = (info3.parsedUrl.pathname || "") + (info3.parsedUrl.search || ""), info3.options.method = method, info3.options.headers = this._mergeHeaders(headers), this.userAgent != null && (info3.options.headers["user-agent"] = this.userAgent), info3.options.agent = this._getAgent(info3.parsedUrl), this.handlers) + for (let handler of this.handlers) + handler.prepareRequest(info3.options); + return info3; + } + _mergeHeaders(headers) { + return this.requestOptions && this.requestOptions.headers ? Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})) : lowercaseKeys(headers || {}); + } + /** + * Gets an existing header value or returns a default. + * Handles converting number header values to strings since HTTP headers must be strings. + * Note: This returns string | string[] since some headers can have multiple values. + * For headers that must always be a single string (like Content-Type), use the + * specialized _getExistingOrDefaultContentTypeHeader method instead. + */ + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + let headerValue = lowercaseKeys(this.requestOptions.headers)[header]; + headerValue && (clientHeader = typeof headerValue == "number" ? headerValue.toString() : headerValue); + } + let additionalValue = additionalHeaders[header]; + return additionalValue !== void 0 ? typeof additionalValue == "number" ? additionalValue.toString() : additionalValue : clientHeader !== void 0 ? clientHeader : _default; + } + /** + * Specialized version of _getExistingOrDefaultHeader for Content-Type header. + * Always returns a single string (not an array) since Content-Type should be a single value. + * Converts arrays to comma-separated strings and numbers to strings to ensure type safety. + * This was split from _getExistingOrDefaultHeader to provide stricter typing for callers + * that assign the result to places expecting a string (e.g., additionalHeaders[Headers.ContentType]). + */ + _getExistingOrDefaultContentTypeHeader(additionalHeaders, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + let headerValue = lowercaseKeys(this.requestOptions.headers)[Headers3.ContentType]; + headerValue && (typeof headerValue == "number" ? clientHeader = String(headerValue) : Array.isArray(headerValue) ? clientHeader = headerValue.join(", ") : clientHeader = headerValue); + } + let additionalValue = additionalHeaders[Headers3.ContentType]; + return additionalValue !== void 0 ? typeof additionalValue == "number" ? String(additionalValue) : Array.isArray(additionalValue) ? additionalValue.join(", ") : additionalValue : clientHeader !== void 0 ? clientHeader : _default; + } + _getAgent(parsedUrl) { + let agent, proxyUrl = getProxyUrl3(parsedUrl), useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy && (agent = this._proxyAgent), useProxy || (agent = this._agent), agent) + return agent; + let usingSsl = parsedUrl.protocol === "https:", maxSockets = 100; + if (this.requestOptions && (maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets), proxyUrl && proxyUrl.hostname) { + let agentOptions = { + maxSockets, + keepAlive: this._keepAlive, + proxy: Object.assign(Object.assign({}, (proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + }), { host: proxyUrl.hostname, port: proxyUrl.port }) + }, tunnelAgent, overHttps = proxyUrl.protocol === "https:"; + usingSsl ? tunnelAgent = overHttps ? tunnel3.httpsOverHttps : tunnel3.httpsOverHttp : tunnelAgent = overHttps ? tunnel3.httpOverHttps : tunnel3.httpOverHttp, agent = tunnelAgent(agentOptions), this._proxyAgent = agent; + } + if (!agent) { + let options = { keepAlive: this._keepAlive, maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options), this._agent = agent; + } + return usingSsl && this._ignoreSslError && (agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: !1 + })), agent; + } + _getProxyAgentDispatcher(parsedUrl, proxyUrl) { + let proxyAgent; + if (this._keepAlive && (proxyAgent = this._proxyAgentDispatcher), proxyAgent) + return proxyAgent; + let usingSsl = parsedUrl.protocol === "https:"; + return proxyAgent = new import_undici3.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: this._keepAlive ? 1 : 0 }, (proxyUrl.username || proxyUrl.password) && { + token: `Basic ${Buffer.from(`${proxyUrl.username}:${proxyUrl.password}`).toString("base64")}` + })), this._proxyAgentDispatcher = proxyAgent, usingSsl && this._ignoreSslError && (proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, { + rejectUnauthorized: !1 + })), proxyAgent; + } + _getUserAgentWithOrchestrationId(userAgent) { + let baseUserAgent = userAgent || "actions/http-client", orchId = process.env.ACTIONS_ORCHESTRATION_ID; + if (orchId) { + let sanitizedId = orchId.replace(/[^a-z0-9_.-]/gi, "_"); + return `${baseUserAgent} actions_orchestration_id/${sanitizedId}`; + } + return baseUserAgent; + } + _performExponentialBackoff(retryNumber) { + return __awaiter11(this, void 0, void 0, function* () { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + let ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise((resolve2) => setTimeout(() => resolve2(), ms)); + }); + } + _processResponse(res, options) { + return __awaiter11(this, void 0, void 0, function* () { + return new Promise((resolve2, reject) => __awaiter11(this, void 0, void 0, function* () { + let statusCode = res.message.statusCode || 0, response = { + statusCode, + result: null, + headers: {} + }; + statusCode === HttpCodes3.NotFound && resolve2(response); + function dateTimeDeserializer(key, value) { + if (typeof value == "string") { + let a = new Date(value); + if (!isNaN(a.valueOf())) + return a; + } + return value; + } + let obj, contents; + try { + contents = yield res.readBody(), contents && contents.length > 0 && (options && options.deserializeDates ? obj = JSON.parse(contents, dateTimeDeserializer) : obj = JSON.parse(contents), response.result = obj), response.headers = res.message.headers; + } catch { + } + if (statusCode > 299) { + let msg; + obj && obj.message ? msg = obj.message : contents && contents.length > 0 ? msg = contents : msg = `Failed request: (${statusCode})`; + let err = new HttpClientError(msg, statusCode); + err.result = response.result, reject(err); + } else + resolve2(response); + })); + }); + } +}, lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => (c[k.toLowerCase()] = obj[k], c), {}); + +// node_modules/@actions/cache/node_modules/@actions/http-client/lib/auth.js +var __awaiter12 = function(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var BearerCredentialHandler3 = class { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) + throw Error("The request has no headers"); + options.headers.Authorization = `Bearer ${this.token}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return !1; + } + handleAuthentication() { + return __awaiter12(this, void 0, void 0, function* () { + throw new Error("not implemented"); + }); + } +}; + +// node_modules/@actions/cache/lib/internal/cacheHttpClient.js +import { URL as URL2 } from "url"; + +// node_modules/@typespec/ts-http-runtime/dist/esm/abort-controller/AbortError.js +var AbortError = class extends Error { + constructor(message) { + super(message), this.name = "AbortError"; + } +}; + +// node_modules/@typespec/ts-http-runtime/dist/esm/logger/log.js +import { EOL as EOL9 } from "node:os"; +import util3 from "node:util"; +import process2 from "node:process"; +function log(message, ...args) { + process2.stderr.write(`${util3.format(message, ...args)}${EOL9}`); +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/env.js +import process3 from "node:process"; +function getEnvironmentVariable(name) { + return process3.env[name]; +} +var isDeno = typeof process3.versions.deno == "string" && process3.versions.deno.length > 0, isBun = typeof process3.versions.bun == "string" && process3.versions.bun.length > 0, isNodeLike = !0; + +// node_modules/@typespec/ts-http-runtime/dist/esm/logger/debug.js +var debugEnvVariable = getEnvironmentVariable("DEBUG"), enabledString, enabledNamespaces = [], skippedNamespaces = [], debuggers = []; +debugEnvVariable && enable(debugEnvVariable); +var debugObj = Object.assign((namespace) => createDebugger(namespace), { + enable, + enabled, + disable, + log +}); +function enable(namespaces) { + enabledString = namespaces, enabledNamespaces = [], skippedNamespaces = []; + let namespaceList = namespaces.split(",").map((ns) => ns.trim()); + for (let ns of namespaceList) + ns.startsWith("-") ? skippedNamespaces.push(ns.substring(1)) : enabledNamespaces.push(ns); + for (let instance of debuggers) + instance.enabled = enabled(instance.namespace); +} +function enabled(namespace) { + if (namespace.endsWith("*")) + return !0; + for (let skipped of skippedNamespaces) + if (namespaceMatches(namespace, skipped)) + return !1; + for (let enabledNamespace of enabledNamespaces) + if (namespaceMatches(namespace, enabledNamespace)) + return !0; + return !1; +} +function namespaceMatches(namespace, patternToMatch) { + if (patternToMatch.indexOf("*") === -1) + return namespace === patternToMatch; + let pattern = patternToMatch; + if (patternToMatch.indexOf("**") !== -1) { + let patternParts = [], lastCharacter = ""; + for (let character of patternToMatch) + character === "*" && lastCharacter === "*" || (lastCharacter = character, patternParts.push(character)); + pattern = patternParts.join(""); + } + let namespaceIndex = 0, patternIndex = 0, patternLength = pattern.length, namespaceLength = namespace.length, lastWildcard = -1, lastWildcardNamespace = -1; + for (; namespaceIndex < namespaceLength && patternIndex < patternLength; ) + if (pattern[patternIndex] === "*") { + if (lastWildcard = patternIndex, patternIndex++, patternIndex === patternLength) + return !0; + for (; namespace[namespaceIndex] !== pattern[patternIndex]; ) + if (namespaceIndex++, namespaceIndex === namespaceLength) + return !1; + lastWildcardNamespace = namespaceIndex, namespaceIndex++, patternIndex++; + continue; + } else if (pattern[patternIndex] === namespace[namespaceIndex]) + patternIndex++, namespaceIndex++; + else if (lastWildcard >= 0) { + if (patternIndex = lastWildcard + 1, namespaceIndex = lastWildcardNamespace + 1, namespaceIndex === namespaceLength) + return !1; + for (; namespace[namespaceIndex] !== pattern[patternIndex]; ) + if (namespaceIndex++, namespaceIndex === namespaceLength) + return !1; + lastWildcardNamespace = namespaceIndex, namespaceIndex++, patternIndex++; + continue; + } else + return !1; + let namespaceDone = namespaceIndex === namespace.length, patternDone = patternIndex === pattern.length, trailingWildCard = patternIndex === pattern.length - 1 && pattern[patternIndex] === "*"; + return namespaceDone && (patternDone || trailingWildCard); +} +function disable() { + let result = enabledString || ""; + return enable(""), result; +} +function createDebugger(namespace) { + let newDebugger = Object.assign(debug3, { + enabled: enabled(namespace), + destroy, + log: debugObj.log, + namespace, + extend + }); + function debug3(...args) { + newDebugger.enabled && (args.length > 0 && (args[0] = `${namespace} ${args[0]}`), newDebugger.log(...args)); + } + return debuggers.push(newDebugger), newDebugger; +} +function destroy() { + let index = debuggers.indexOf(this); + return index >= 0 ? (debuggers.splice(index, 1), !0) : !1; +} +function extend(namespace) { + let newDebugger = createDebugger(`${this.namespace}:${namespace}`); + return newDebugger.log = this.log, newDebugger; +} +var debug_default = debugObj; + +// node_modules/@typespec/ts-http-runtime/dist/esm/logger/logger.js +var TYPESPEC_RUNTIME_LOG_LEVELS = ["verbose", "info", "warning", "error"], levelMap = { + verbose: 400, + info: 300, + warning: 200, + error: 100 +}; +function patchLogMethod(parent, child2) { + child2.log = (...args) => { + parent.log(...args); + }; +} +function isTypeSpecRuntimeLogLevel(level) { + return TYPESPEC_RUNTIME_LOG_LEVELS.includes(level); +} +function createLoggerContext(options) { + let registeredLoggers = /* @__PURE__ */ new Set(), logLevelFromEnv = getEnvironmentVariable(options.logLevelEnvVarName), logLevel, clientLogger = debug_default(options.namespace); + clientLogger.log = (...args) => { + debug_default.log(...args); + }; + function contextSetLogLevel(level) { + if (level && !isTypeSpecRuntimeLogLevel(level)) + throw new Error(`Unknown log level '${level}'. Acceptable values: ${TYPESPEC_RUNTIME_LOG_LEVELS.join(",")}`); + logLevel = level; + let enabledNamespaces2 = []; + for (let logger7 of registeredLoggers) + shouldEnable(logger7) && enabledNamespaces2.push(logger7.namespace); + debug_default.enable(enabledNamespaces2.join(",")); + } + logLevelFromEnv && (isTypeSpecRuntimeLogLevel(logLevelFromEnv) ? contextSetLogLevel(logLevelFromEnv) : console.error(`${options.logLevelEnvVarName} set to unknown log level '${logLevelFromEnv}'; logging is not enabled. Acceptable values: ${TYPESPEC_RUNTIME_LOG_LEVELS.join(", ")}.`)); + function shouldEnable(logger7) { + return !!(logLevel && levelMap[logger7.level] <= levelMap[logLevel]); + } + function createLogger(parent, level) { + let logger7 = Object.assign(parent.extend(level), { + level + }); + if (patchLogMethod(parent, logger7), shouldEnable(logger7)) { + let enabledNamespaces2 = debug_default.disable(); + debug_default.enable(enabledNamespaces2 + "," + logger7.namespace); + } + return registeredLoggers.add(logger7), logger7; + } + function contextGetLogLevel() { + return logLevel; + } + function contextCreateClientLogger(namespace) { + let clientRootLogger = clientLogger.extend(namespace); + return patchLogMethod(clientLogger, clientRootLogger), { + error: createLogger(clientRootLogger, "error"), + warning: createLogger(clientRootLogger, "warning"), + info: createLogger(clientRootLogger, "info"), + verbose: createLogger(clientRootLogger, "verbose") + }; + } + return { + setLogLevel: contextSetLogLevel, + getLogLevel: contextGetLogLevel, + createClientLogger: contextCreateClientLogger, + logger: clientLogger + }; +} +var context = createLoggerContext({ + logLevelEnvVarName: "TYPESPEC_RUNTIME_LOG_LEVEL", + namespace: "typeSpecRuntime" +}), TypeSpecRuntimeLogger = context.logger; +function createClientLogger(namespace) { + return context.createClientLogger(namespace); +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/httpHeaders.js +function normalizeName(name) { + return name.toLowerCase(); +} +function normalizeValue(value) { + return String(value).trim().replace(/[\r\n]/g, ""); +} +function* headerIterator(map) { + for (let entry of map.values()) + yield [entry.name, entry.value]; +} +var HttpHeadersImpl = class { + _headersMap; + constructor(rawHeaders) { + if (this._headersMap = /* @__PURE__ */ new Map(), rawHeaders) + for (let headerName of Object.keys(rawHeaders)) + this.set(headerName, rawHeaders[headerName]); + } + /** + * Set a header in this collection with the provided name and value. The name is + * case-insensitive. + * @param name - The name of the header to set. This value is case-insensitive. + * @param value - The value of the header to set. + */ + set(name, value) { + this._headersMap.set(normalizeName(name), { name, value: normalizeValue(value) }); + } + /** + * Get the header value for the provided header name, or undefined if no header exists in this + * collection with the provided name. + * @param name - The name of the header. This value is case-insensitive. + */ + get(name) { + return this._headersMap.get(normalizeName(name))?.value; + } + /** + * Get whether or not this header collection contains a header entry for the provided header name. + * @param name - The name of the header to set. This value is case-insensitive. + */ + has(name) { + return this._headersMap.has(normalizeName(name)); + } + /** + * Remove the header with the provided headerName. + * @param name - The name of the header to remove. + */ + delete(name) { + this._headersMap.delete(normalizeName(name)); + } + /** + * Get the JSON object representation of this HTTP header collection. + */ + toJSON(options = {}) { + let result = {}; + if (options.preserveCase) + for (let entry of this._headersMap.values()) + result[entry.name] = entry.value; + else + for (let [normalizedName, entry] of this._headersMap) + result[normalizedName] = entry.value; + return result; + } + /** + * Get the string representation of this HTTP header collection. + */ + toString() { + return JSON.stringify(this.toJSON({ preserveCase: !0 })); + } + /** + * Iterate over tuples of header [name, value] pairs. + */ + [Symbol.iterator]() { + return headerIterator(this._headersMap); + } +}; +function createHttpHeaders(rawHeaders) { + return new HttpHeadersImpl(rawHeaders); +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/uuidUtils.js +function randomUUID4() { + return globalThis.crypto.randomUUID(); +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/pipelineRequest.js +var PipelineRequestImpl = class { + url; + method; + headers; + timeout; + withCredentials; + body; + multipartBody; + formData; + streamResponseStatusCodes; + enableBrowserStreams; + proxySettings; + disableKeepAlive; + abortSignal; + requestId; + allowInsecureConnection; + onUploadProgress; + onDownloadProgress; + requestOverrides; + authSchemes; + constructor(options) { + this.url = options.url, this.body = options.body, this.headers = options.headers ?? createHttpHeaders(), this.method = options.method ?? "GET", this.timeout = options.timeout ?? 0, this.multipartBody = options.multipartBody, this.formData = options.formData, this.disableKeepAlive = options.disableKeepAlive ?? !1, this.proxySettings = options.proxySettings, this.streamResponseStatusCodes = options.streamResponseStatusCodes, this.withCredentials = options.withCredentials ?? !1, this.abortSignal = options.abortSignal, this.onUploadProgress = options.onUploadProgress, this.onDownloadProgress = options.onDownloadProgress, this.requestId = options.requestId || randomUUID4(), this.allowInsecureConnection = options.allowInsecureConnection ?? !1, this.enableBrowserStreams = options.enableBrowserStreams ?? !1, this.requestOverrides = options.requestOverrides, this.authSchemes = options.authSchemes; + } +}; +function createPipelineRequest(options) { + return new PipelineRequestImpl(options); +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/pipeline.js +var ValidPhaseNames = /* @__PURE__ */ new Set(["Deserialize", "Serialize", "Retry", "Sign"]), HttpPipeline = class _HttpPipeline { + _policies = []; + _orderedPolicies; + constructor(policies) { + this._policies = policies?.slice(0) ?? [], this._orderedPolicies = void 0; + } + addPolicy(policy, options = {}) { + if (options.phase && options.afterPhase) + throw new Error("Policies inside a phase cannot specify afterPhase."); + if (options.phase && !ValidPhaseNames.has(options.phase)) + throw new Error(`Invalid phase name: ${options.phase}`); + if (options.afterPhase && !ValidPhaseNames.has(options.afterPhase)) + throw new Error(`Invalid afterPhase name: ${options.afterPhase}`); + this._policies.push({ + policy, + options + }), this._orderedPolicies = void 0; + } + removePolicy(options) { + let removedPolicies = []; + return this._policies = this._policies.filter((policyDescriptor) => options.name && policyDescriptor.policy.name === options.name || options.phase && policyDescriptor.options.phase === options.phase ? (removedPolicies.push(policyDescriptor.policy), !1) : !0), this._orderedPolicies = void 0, removedPolicies; + } + sendRequest(httpClient, request) { + return this.getOrderedPolicies().reduceRight((next, policy) => (req) => policy.sendRequest(req, next), (req) => httpClient.sendRequest(req))(request); + } + getOrderedPolicies() { + return this._orderedPolicies || (this._orderedPolicies = this.orderPolicies()), this._orderedPolicies; + } + clone() { + return new _HttpPipeline(this._policies); + } + static create() { + return new _HttpPipeline(); + } + orderPolicies() { + let result = [], policyMap = /* @__PURE__ */ new Map(); + function createPhase(name) { + return { + name, + policies: /* @__PURE__ */ new Set(), + hasRun: !1, + hasAfterPolicies: !1 + }; + } + let serializePhase = createPhase("Serialize"), noPhase = createPhase("None"), deserializePhase = createPhase("Deserialize"), retryPhase = createPhase("Retry"), signPhase = createPhase("Sign"), orderedPhases = [serializePhase, noPhase, deserializePhase, retryPhase, signPhase]; + function getPhase(phase) { + return phase === "Retry" ? retryPhase : phase === "Serialize" ? serializePhase : phase === "Deserialize" ? deserializePhase : phase === "Sign" ? signPhase : noPhase; + } + for (let descriptor of this._policies) { + let policy = descriptor.policy, options = descriptor.options, policyName = policy.name; + if (policyMap.has(policyName)) + throw new Error("Duplicate policy names not allowed in pipeline"); + let node = { + policy, + dependsOn: /* @__PURE__ */ new Set(), + dependants: /* @__PURE__ */ new Set() + }; + options.afterPhase && (node.afterPhase = getPhase(options.afterPhase), node.afterPhase.hasAfterPolicies = !0), policyMap.set(policyName, node), getPhase(options.phase).policies.add(node); + } + for (let descriptor of this._policies) { + let { policy, options } = descriptor, policyName = policy.name, node = policyMap.get(policyName); + if (!node) + throw new Error(`Missing node for policy ${policyName}`); + if (options.afterPolicies) + for (let afterPolicyName of options.afterPolicies) { + let afterNode = policyMap.get(afterPolicyName); + afterNode && (node.dependsOn.add(afterNode), afterNode.dependants.add(node)); + } + if (options.beforePolicies) + for (let beforePolicyName of options.beforePolicies) { + let beforeNode = policyMap.get(beforePolicyName); + beforeNode && (beforeNode.dependsOn.add(node), node.dependants.add(beforeNode)); + } + } + function walkPhase(phase) { + phase.hasRun = !0; + for (let node of phase.policies) + if (!(node.afterPhase && (!node.afterPhase.hasRun || node.afterPhase.policies.size)) && node.dependsOn.size === 0) { + result.push(node.policy); + for (let dependant of node.dependants) + dependant.dependsOn.delete(node); + policyMap.delete(node.policy.name), phase.policies.delete(node); + } + } + function walkPhases() { + for (let phase of orderedPhases) { + if (walkPhase(phase), phase.policies.size > 0 && phase !== noPhase) { + noPhase.hasRun || walkPhase(noPhase); + return; + } + phase.hasAfterPolicies && walkPhase(noPhase); + } + } + let iteration = 0; + for (; policyMap.size > 0; ) { + iteration++; + let initialResultLength = result.length; + if (walkPhases(), result.length <= initialResultLength && iteration > 1) + throw new Error("Cannot satisfy policy dependencies due to requirements cycle."); + } + return result; + } +}; +function createEmptyPipeline() { + return HttpPipeline.create(); +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/object.js +function isObject(input) { + return typeof input == "object" && input !== null && !Array.isArray(input) && !(input instanceof RegExp) && !(input instanceof Date); +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/error.js +function isError(e) { + if (isObject(e)) { + let hasName = typeof e.name == "string", hasMessage = typeof e.message == "string"; + return hasName && hasMessage; + } + return !1; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/inspect.js +import { inspect } from "node:util"; +var custom = inspect.custom; + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/sanitizer.js +var RedactedString = "REDACTED", defaultAllowedHeaderNames = [ + "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" +], defaultAllowedQueryParameters = ["api-version"], Sanitizer = class { + allowedHeaderNames; + allowedQueryParameters; + constructor({ additionalAllowedHeaderNames: allowedHeaderNames = [], additionalAllowedQueryParameters: allowedQueryParameters = [] } = {}) { + allowedHeaderNames = defaultAllowedHeaderNames.concat(allowedHeaderNames), allowedQueryParameters = defaultAllowedQueryParameters.concat(allowedQueryParameters), this.allowedHeaderNames = new Set(allowedHeaderNames.map((n) => n.toLowerCase())), this.allowedQueryParameters = new Set(allowedQueryParameters.map((p) => p.toLowerCase())); + } + /** + * Sanitizes an object for logging. + * @param obj - The object to sanitize + * @returns - The sanitized object as a string + */ + sanitize(obj) { + let seen = /* @__PURE__ */ new Set(); + return JSON.stringify(obj, (key, value) => { + if (value instanceof Error) + return { + ...value, + name: value.name, + message: value.message + }; + if (key === "headers" && isObject(value)) + return this.sanitizeHeaders(value); + if (key === "url" && typeof value == "string") + return this.sanitizeUrl(value); + if (key === "query" && isObject(value)) + return this.sanitizeQuery(value); + if (key === "body") + return; + if (key === "response") + return; + if (key === "operationSpec") + return; + if (Array.isArray(value) || isObject(value)) { + if (seen.has(value)) + return "[Circular]"; + seen.add(value); + } + return value; + }, 2); + } + /** + * Sanitizes a URL for logging. + * @param value - The URL to sanitize + * @returns - The sanitized URL as a string + */ + sanitizeUrl(value) { + if (typeof value != "string" || value === null || value === "") + return value; + let url2 = new URL(value); + if (!url2.search) + return value; + for (let [key] of url2.searchParams) + this.allowedQueryParameters.has(key.toLowerCase()) || url2.searchParams.set(key, RedactedString); + return url2.toString(); + } + sanitizeHeaders(obj) { + let sanitized = {}; + for (let key of Object.keys(obj)) + this.allowedHeaderNames.has(key.toLowerCase()) ? sanitized[key] = obj[key] : sanitized[key] = RedactedString; + return sanitized; + } + sanitizeQuery(value) { + if (typeof value != "object" || value === null) + return value; + let sanitized = {}; + for (let k of Object.keys(value)) + this.allowedQueryParameters.has(k.toLowerCase()) ? sanitized[k] = value[k] : sanitized[k] = RedactedString; + return sanitized; + } +}; + +// node_modules/@typespec/ts-http-runtime/dist/esm/restError.js +var errorSanitizer = new Sanitizer(), RestError = class _RestError extends Error { + /** + * Something went wrong when making the request. + * This means the actual request failed for some reason, + * such as a DNS issue or the connection being lost. + */ + static REQUEST_SEND_ERROR = "REQUEST_SEND_ERROR"; + /** + * This means that parsing the response from the server failed. + * It may have been malformed. + */ + static PARSE_ERROR = "PARSE_ERROR"; + /** + * The code of the error itself (use statics on RestError if possible.) + */ + code; + /** + * The HTTP status code of the request (if applicable.) + */ + statusCode; + /** + * The request that was made. + * This property is non-enumerable. + */ + request; + /** + * The response received (if any.) + * This property is non-enumerable. + */ + response; + /** + * Bonus property set by the throw site. + */ + details; + constructor(message, options = {}) { + super(message), this.name = "RestError", this.code = options.code, this.statusCode = options.statusCode, Object.defineProperty(this, "request", { value: options.request, enumerable: !1 }), Object.defineProperty(this, "response", { value: options.response, enumerable: !1 }); + let agent = this.request?.agent ? { + maxFreeSockets: this.request.agent.maxFreeSockets, + maxSockets: this.request.agent.maxSockets + } : void 0; + Object.defineProperty(this, custom, { + value: () => `RestError: ${this.message} + ${errorSanitizer.sanitize({ + ...this, + request: { ...this.request, agent }, + response: this.response + })}`, + enumerable: !1 + }), Object.setPrototypeOf(this, _RestError.prototype); + } +}; +function isRestError(e) { + return e instanceof RestError ? !0 : isError(e) && e.name === "RestError"; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/bytesEncoding.js +function uint8ArrayToString(bytes, format) { + return Buffer.from(bytes).toString(format); +} +function stringToUint8Array(value, format) { + return Buffer.from(value, format); +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/nodeHttpClient.js +import http2 from "node:http"; +import https2 from "node:https"; +import zlib from "node:zlib"; +import { Transform } from "node:stream"; + +// node_modules/@typespec/ts-http-runtime/dist/esm/log.js +var logger = createClientLogger("ts-http-runtime"); + +// node_modules/@typespec/ts-http-runtime/dist/esm/nodeHttpClient.js +var DEFAULT_TLS_SETTINGS = {}; +function isReadableStream(body2) { + return body2 && typeof body2.pipe == "function"; +} +function isStreamComplete(stream3) { + return stream3.readable === !1 ? Promise.resolve() : new Promise((resolve2) => { + let handler = () => { + resolve2(), stream3.removeListener("close", handler), stream3.removeListener("end", handler), stream3.removeListener("error", handler); + }; + stream3.on("close", handler), stream3.on("end", handler), stream3.on("error", handler); + }); +} +function isArrayBuffer(body2) { + return body2 && typeof body2.byteLength == "number"; +} +var ReportTransform = class extends Transform { + loadedBytes = 0; + progressCallback; + // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type + _transform(chunk, _encoding, callback) { + this.push(chunk), this.loadedBytes += chunk.length; + try { + this.progressCallback({ loadedBytes: this.loadedBytes }), callback(); + } catch (e) { + callback(e); + } + } + constructor(progressCallback) { + super(), this.progressCallback = progressCallback; + } +}, NodeHttpClient = class { + cachedHttpAgent; + cachedHttpsAgents = /* @__PURE__ */ new WeakMap(); + /** + * Makes a request over an underlying transport layer and returns the response. + * @param request - The request to be made. + */ + async sendRequest(request) { + let abortController = new AbortController(), abortListener; + if (request.abortSignal) { + if (request.abortSignal.aborted) + throw new AbortError("The operation was aborted. Request has already been canceled."); + abortListener = (event) => { + event.type === "abort" && abortController.abort(); + }, request.abortSignal.addEventListener("abort", abortListener); + } + let timeoutId; + request.timeout > 0 && (timeoutId = setTimeout(() => { + let sanitizer = new Sanitizer(); + logger.info(`request to '${sanitizer.sanitizeUrl(request.url)}' timed out. canceling...`), abortController.abort(); + }, request.timeout)); + let acceptEncoding = request.headers.get("Accept-Encoding"), shouldDecompress = acceptEncoding?.includes("gzip") || acceptEncoding?.includes("deflate"), body2 = typeof request.body == "function" ? request.body() : request.body; + if (body2 && !request.headers.has("Content-Length")) { + let bodyLength = getBodyLength(body2); + bodyLength !== null && request.headers.set("Content-Length", bodyLength); + } + let responseStream; + try { + if (body2 && request.onUploadProgress) { + let onUploadProgress = request.onUploadProgress, uploadReportStream = new ReportTransform(onUploadProgress); + uploadReportStream.on("error", (e) => { + logger.error("Error in upload progress", e); + }), isReadableStream(body2) ? body2.pipe(uploadReportStream) : uploadReportStream.end(body2), body2 = uploadReportStream; + } + let res = await this.makeRequest(request, abortController, body2); + timeoutId !== void 0 && clearTimeout(timeoutId); + let headers = getResponseHeaders(res), response = { + status: res.statusCode ?? 0, + headers, + request + }; + if (request.method === "HEAD") + return res.resume(), response; + responseStream = shouldDecompress ? getDecodedResponseStream(res, headers) : res; + let onDownloadProgress = request.onDownloadProgress; + if (onDownloadProgress) { + let downloadReportStream = new ReportTransform(onDownloadProgress); + downloadReportStream.on("error", (e) => { + logger.error("Error in download progress", e); + }), responseStream.pipe(downloadReportStream), responseStream = downloadReportStream; + } + return /* Value of POSITIVE_INFINITY in streamResponseStatusCodes is considered as any status code */ request.streamResponseStatusCodes?.has(Number.POSITIVE_INFINITY) || request.streamResponseStatusCodes?.has(response.status) ? response.readableStreamBody = responseStream : response.bodyAsText = await streamToText(responseStream), response; + } finally { + if (request.abortSignal && abortListener) { + let uploadStreamDone = Promise.resolve(); + isReadableStream(body2) && (uploadStreamDone = isStreamComplete(body2)); + let downloadStreamDone = Promise.resolve(); + isReadableStream(responseStream) && (downloadStreamDone = isStreamComplete(responseStream)), Promise.all([uploadStreamDone, downloadStreamDone]).then(() => { + abortListener && request.abortSignal?.removeEventListener("abort", abortListener); + }).catch((e) => { + logger.warning("Error when cleaning up abortListener on httpRequest", e); + }); + } + } + } + makeRequest(request, abortController, body2) { + let url2 = new URL(request.url), isInsecure = url2.protocol !== "https:"; + if (isInsecure && !request.allowInsecureConnection) + throw new Error(`Cannot connect to ${request.url} while allowInsecureConnection is false.`); + let options = { + agent: request.agent ?? this.getOrCreateAgent(request, isInsecure), + hostname: url2.hostname, + path: `${url2.pathname}${url2.search}`, + port: url2.port, + method: request.method, + headers: request.headers.toJSON({ preserveCase: !0 }), + ...request.requestOverrides + }; + return new Promise((resolve2, reject) => { + let req = isInsecure ? http2.request(options, resolve2) : https2.request(options, resolve2); + req.once("error", (err) => { + reject(new RestError(err.message, { code: err.code ?? RestError.REQUEST_SEND_ERROR, request })); + }), abortController.signal.addEventListener("abort", () => { + let abortError = new AbortError("The operation was aborted. Rejecting from abort signal callback while making request."); + req.destroy(abortError), reject(abortError); + }), body2 && isReadableStream(body2) ? body2.pipe(req) : body2 ? typeof body2 == "string" || Buffer.isBuffer(body2) ? req.end(body2) : isArrayBuffer(body2) ? req.end(ArrayBuffer.isView(body2) ? Buffer.from(body2.buffer, body2.byteOffset, body2.byteLength) : Buffer.from(body2)) : (logger.error("Unrecognized body type", body2), reject(new RestError("Unrecognized body type"))) : req.end(); + }); + } + getOrCreateAgent(request, isInsecure) { + let disableKeepAlive = request.disableKeepAlive; + if (isInsecure) + return disableKeepAlive ? http2.globalAgent : (this.cachedHttpAgent || (this.cachedHttpAgent = new http2.Agent({ keepAlive: !0 })), this.cachedHttpAgent); + { + if (disableKeepAlive && !request.tlsSettings) + return https2.globalAgent; + let tlsSettings = request.tlsSettings ?? DEFAULT_TLS_SETTINGS, agent = this.cachedHttpsAgents.get(tlsSettings); + return agent && agent.options.keepAlive === !disableKeepAlive || (logger.info("No cached TLS Agent exist, creating a new Agent"), agent = new https2.Agent({ + // keepAlive is true if disableKeepAlive is false. + keepAlive: !disableKeepAlive, + // Since we are spreading, if no tslSettings were provided, nothing is added to the agent options. + ...tlsSettings + }), this.cachedHttpsAgents.set(tlsSettings, agent)), agent; + } + } +}; +function getResponseHeaders(res) { + let headers = createHttpHeaders(); + for (let header of Object.keys(res.headers)) { + let value = res.headers[header]; + Array.isArray(value) ? value.length > 0 && headers.set(header, value[0]) : value && headers.set(header, value); + } + return headers; +} +function getDecodedResponseStream(stream3, headers) { + let contentEncoding = headers.get("Content-Encoding"); + if (contentEncoding === "gzip") { + let unzip = zlib.createGunzip(); + return stream3.pipe(unzip), unzip; + } else if (contentEncoding === "deflate") { + let inflate = zlib.createInflate(); + return stream3.pipe(inflate), inflate; + } + return stream3; +} +function streamToText(stream3) { + return new Promise((resolve2, reject) => { + let buffer3 = []; + stream3.on("data", (chunk) => { + Buffer.isBuffer(chunk) ? buffer3.push(chunk) : buffer3.push(Buffer.from(chunk)); + }), stream3.on("end", () => { + resolve2(Buffer.concat(buffer3).toString("utf8")); + }), stream3.on("error", (e) => { + e && e?.name === "AbortError" ? reject(e) : reject(new RestError(`Error reading response as text: ${e.message}`, { + code: RestError.PARSE_ERROR + })); + }); + }); +} +function getBodyLength(body2) { + return body2 ? Buffer.isBuffer(body2) ? body2.length : isReadableStream(body2) ? null : isArrayBuffer(body2) ? body2.byteLength : typeof body2 == "string" ? Buffer.from(body2).length : null : 0; +} +function createNodeHttpClient() { + return new NodeHttpClient(); +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/defaultHttpClient.js +function createDefaultHttpClient() { + return createNodeHttpClient(); +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/policies/logPolicy.js +var logPolicyName = "logPolicy"; +function logPolicy(options = {}) { + let logger7 = options.logger ?? logger.info, sanitizer = new Sanitizer({ + additionalAllowedHeaderNames: options.additionalAllowedHeaderNames, + additionalAllowedQueryParameters: options.additionalAllowedQueryParameters + }); + return { + name: logPolicyName, + async sendRequest(request, next) { + if (!logger7.enabled) + return next(request); + logger7(`Request: ${sanitizer.sanitize(request)}`); + let response = await next(request); + return logger7(`Response status code: ${response.status}`), logger7(`Headers: ${sanitizer.sanitize({ headers: response.headers })}`), response; + } + }; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/userAgentPlatform.js +function getHeaderName() { + return "User-Agent"; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/userAgent.js +function getUserAgentHeaderName() { + return getHeaderName(); +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/policies/userAgentPolicy.js +var UserAgentHeaderName = getUserAgentHeaderName(); + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/random.js +function getRandomIntegerInclusive(min, max) { + return min = Math.ceil(min), max = Math.floor(max), Math.floor(Math.random() * (max - min + 1)) + min; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/delay.js +function calculateRetryDelay(retryAttempt, config) { + let exponentialDelay = config.retryDelayInMs * Math.pow(2, retryAttempt), clampedDelay = Math.min(config.maxRetryDelayInMs, exponentialDelay); + return { retryAfterInMs: clampedDelay / 2 + getRandomIntegerInclusive(0, clampedDelay / 2) }; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/helpers.js +var StandardAbortMessage = "The operation was aborted."; +function delay(delayInMs, value, options) { + return new Promise((resolve2, reject) => { + let timer, onAborted, rejectOnAbort = () => reject(new AbortError(options?.abortErrorMsg ? options?.abortErrorMsg : StandardAbortMessage)), removeListeners = () => { + options?.abortSignal && onAborted && options.abortSignal.removeEventListener("abort", onAborted); + }; + if (onAborted = () => (timer && clearTimeout(timer), removeListeners(), rejectOnAbort()), options?.abortSignal && options.abortSignal.aborted) + return rejectOnAbort(); + timer = setTimeout(() => { + removeListeners(), resolve2(value); + }, delayInMs), options?.abortSignal && options.abortSignal.addEventListener("abort", onAborted); + }); +} +function parseHeaderValueAsNumber(response, headerName) { + let value = response.headers.get(headerName); + if (!value) + return; + let valueAsNum = Number(value); + if (!Number.isNaN(valueAsNum)) + return valueAsNum; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/retryStrategies/throttlingRetryStrategy.js +var RetryAfterHeader = "Retry-After", AllRetryAfterHeaders = ["retry-after-ms", "x-ms-retry-after-ms", RetryAfterHeader]; +function getRetryAfterInMs(response) { + if (response && [429, 503].includes(response.status)) + try { + for (let header of AllRetryAfterHeaders) { + let retryAfterValue = parseHeaderValueAsNumber(response, header); + if (retryAfterValue === 0 || retryAfterValue) + return retryAfterValue * (header === RetryAfterHeader ? 1e3 : 1); + } + let retryAfterHeader = response.headers.get(RetryAfterHeader); + if (!retryAfterHeader) + return; + let diff = Date.parse(retryAfterHeader) - Date.now(); + return Number.isFinite(diff) ? Math.max(0, diff) : void 0; + } catch { + return; + } +} +function isThrottlingRetryResponse(response) { + return Number.isFinite(getRetryAfterInMs(response)); +} +function throttlingRetryStrategy() { + return { + name: "throttlingRetryStrategy", + retry({ response }) { + let retryAfterInMs = getRetryAfterInMs(response); + return Number.isFinite(retryAfterInMs) ? { + retryAfterInMs + } : { skipStrategy: !0 }; + } + }; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/retryStrategies/exponentialRetryStrategy.js +var DEFAULT_CLIENT_RETRY_INTERVAL = 1e3, DEFAULT_CLIENT_MAX_RETRY_INTERVAL = 1e3 * 64; +function exponentialRetryStrategy(options = {}) { + let retryInterval = options.retryDelayInMs ?? DEFAULT_CLIENT_RETRY_INTERVAL, maxRetryInterval = options.maxRetryDelayInMs ?? DEFAULT_CLIENT_MAX_RETRY_INTERVAL; + return { + name: "exponentialRetryStrategy", + retry({ retryCount, response, responseError }) { + let matchedSystemError = isSystemError(responseError), ignoreSystemErrors = matchedSystemError && options.ignoreSystemErrors, isExponential = isExponentialRetryResponse(response), ignoreExponentialResponse = isExponential && options.ignoreHttpStatusCodes; + return response && (isThrottlingRetryResponse(response) || !isExponential) || ignoreExponentialResponse || ignoreSystemErrors ? { skipStrategy: !0 } : responseError && !matchedSystemError && !isExponential ? { errorToThrow: responseError } : calculateRetryDelay(retryCount, { + retryDelayInMs: retryInterval, + maxRetryDelayInMs: maxRetryInterval + }); + } + }; +} +function isExponentialRetryResponse(response) { + return !!(response && response.status !== void 0 && (response.status >= 500 || response.status === 408) && response.status !== 501 && response.status !== 505); +} +function isSystemError(err) { + return err ? err.code === "ETIMEDOUT" || err.code === "ESOCKETTIMEDOUT" || err.code === "ECONNREFUSED" || err.code === "ECONNRESET" || err.code === "ENOENT" || err.code === "ENOTFOUND" : !1; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/policies/retryPolicy.js +var retryPolicyLogger = createClientLogger("ts-http-runtime retryPolicy"), retryPolicyName = "retryPolicy"; +function retryPolicy(strategies, options = { maxRetries: 3 }) { + let logger7 = options.logger || retryPolicyLogger; + return { + name: retryPolicyName, + async sendRequest(request, next) { + let response, responseError, retryCount = -1; + retryRequest: for (; ; ) { + retryCount += 1, response = void 0, responseError = void 0; + try { + logger7.info(`Retry ${retryCount}: Attempting to send request`, request.requestId), response = await next(request), logger7.info(`Retry ${retryCount}: Received a response from request`, request.requestId); + } catch (e) { + if (logger7.error(`Retry ${retryCount}: Received an error from request`, request.requestId), !isRestError(e)) + throw e; + responseError = e, response = e.response; + } + if (request.abortSignal?.aborted) + throw logger7.error(`Retry ${retryCount}: Request aborted.`), new AbortError(); + if (retryCount >= (options.maxRetries ?? 3)) { + if (logger7.info(`Retry ${retryCount}: Maximum retries reached. Returning the last received response, or throwing the last received error.`), responseError) + throw responseError; + if (response) + return response; + throw new Error("Maximum retries reached with no response or error to throw"); + } + logger7.info(`Retry ${retryCount}: Processing ${strategies.length} retry strategies.`); + strategiesLoop: for (let strategy of strategies) { + let strategyLogger = strategy.logger || logger7; + strategyLogger.info(`Retry ${retryCount}: Processing retry strategy ${strategy.name}.`); + let modifiers = strategy.retry({ + retryCount, + response, + responseError + }); + if (modifiers.skipStrategy) { + strategyLogger.info(`Retry ${retryCount}: Skipped.`); + continue strategiesLoop; + } + let { errorToThrow, retryAfterInMs, redirectTo } = modifiers; + if (errorToThrow) + throw strategyLogger.error(`Retry ${retryCount}: Retry strategy ${strategy.name} throws error:`, errorToThrow), errorToThrow; + if (retryAfterInMs || retryAfterInMs === 0) { + strategyLogger.info(`Retry ${retryCount}: Retry strategy ${strategy.name} retries after ${retryAfterInMs}`), await delay(retryAfterInMs, void 0, { abortSignal: request.abortSignal }); + continue retryRequest; + } + if (redirectTo) { + strategyLogger.info(`Retry ${retryCount}: Retry strategy ${strategy.name} redirects to ${redirectTo}`), request.url = redirectTo; + continue retryRequest; + } + } + if (responseError) + throw logger7.info("None of the retry strategies could work with the received error. Throwing it."), responseError; + if (response) + return logger7.info("None of the retry strategies could work with the received response. Returning it."), response; + } + } + }; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/policies/defaultRetryPolicy.js +var defaultRetryPolicyName = "defaultRetryPolicy"; +function defaultRetryPolicy(options = {}) { + return { + name: defaultRetryPolicyName, + sendRequest: retryPolicy([throttlingRetryStrategy(), exponentialRetryStrategy(options)], { + maxRetries: options.maxRetries ?? 3 + }).sendRequest + }; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/formData.js +function convertBodyToFormDataMap(body2) { + if (typeof FormData < "u" && body2 instanceof FormData) { + let formDataMap = {}; + for (let [key, value] of body2.entries()) { + let existing = formDataMap[key]; + Array.isArray(existing) ? existing.push(value) : formDataMap[key] = existing !== void 0 ? [existing, value] : [value]; + } + return formDataMap; + } +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/policies/formDataPolicy.js +var formDataPolicyName = "formDataPolicy"; +function formDataPolicy() { + return { + name: formDataPolicyName, + async sendRequest(request, next) { + let converted = convertBodyToFormDataMap(request.body); + if (converted && (request.formData = converted, request.body = void 0), request.formData) { + let contentType2 = request.headers.get("Content-Type"); + contentType2 && contentType2.indexOf("application/x-www-form-urlencoded") !== -1 ? request.body = wwwFormUrlEncode(request.formData) : await prepareFormData(request.formData, request), request.formData = void 0; + } + return next(request); + } + }; +} +function wwwFormUrlEncode(formData) { + let urlSearchParams = new URLSearchParams(); + for (let [key, value] of Object.entries(formData)) + if (Array.isArray(value)) + for (let subValue of value) + urlSearchParams.append(key, subValue.toString()); + else + urlSearchParams.append(key, value.toString()); + return urlSearchParams.toString(); +} +async function prepareFormData(formData, request) { + let contentType2 = request.headers.get("Content-Type"); + if (contentType2 && !contentType2.startsWith("multipart/form-data")) + return; + request.headers.set("Content-Type", contentType2 ?? "multipart/form-data"); + let parts = []; + for (let [fieldName, values] of Object.entries(formData)) + for (let value of Array.isArray(values) ? values : [values]) + if (typeof value == "string") + parts.push({ + headers: createHttpHeaders({ + "Content-Disposition": `form-data; name="${fieldName}"` + }), + body: stringToUint8Array(value, "utf-8") + }); + else { + if (value == null || typeof value != "object") + throw new Error(`Unexpected value for key ${fieldName}: ${value}. Value should be serialized to string first.`); + { + let fileName = value.name || "blob", headers = createHttpHeaders(); + headers.set("Content-Disposition", `form-data; name="${fieldName}"; filename="${fileName}"`), headers.set("Content-Type", value.type || "application/octet-stream"), parts.push({ + headers, + body: value + }); + } + } + request.multipartBody = { parts }; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/policies/agentPolicy.js +var agentPolicyName = "agentPolicy"; +function agentPolicy(agent) { + return { + name: agentPolicyName, + sendRequest: async (req, next) => (req.agent || (req.agent = agent), next(req)) + }; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/policies/tlsPolicy.js +var tlsPolicyName = "tlsPolicy"; +function tlsPolicy(tlsSettings) { + return { + name: tlsPolicyName, + sendRequest: async (req, next) => (req.tlsSettings || (req.tlsSettings = tlsSettings), next(req)) + }; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/policies/proxyPolicy.js +var import_https_proxy_agent = __toESM(require_dist3(), 1), import_http_proxy_agent = __toESM(require_dist4(), 1); +var HTTPS_PROXY = "HTTPS_PROXY", HTTP_PROXY = "HTTP_PROXY", ALL_PROXY = "ALL_PROXY", NO_PROXY = "NO_PROXY", proxyPolicyName = "proxyPolicy", globalNoProxyList = [], noProxyListLoaded = !1, globalBypassedMap = /* @__PURE__ */ new Map(); +function getEnvironmentValue(name) { + if (process.env[name]) + return process.env[name]; + if (process.env[name.toLowerCase()]) + return process.env[name.toLowerCase()]; +} +function loadEnvironmentProxyValue() { + if (!process) + return; + let httpsProxy = getEnvironmentValue(HTTPS_PROXY), allProxy = getEnvironmentValue(ALL_PROXY), httpProxy = getEnvironmentValue(HTTP_PROXY); + return httpsProxy || allProxy || httpProxy; +} +function isBypassed(uri, noProxyList, bypassedMap) { + if (noProxyList.length === 0) + return !1; + let host = new URL(uri).hostname; + if (bypassedMap?.has(host)) + return bypassedMap.get(host); + let isBypassedFlag = !1; + for (let pattern of noProxyList) + pattern[0] === "." ? (host.endsWith(pattern) || host.length === pattern.length - 1 && host === pattern.slice(1)) && (isBypassedFlag = !0) : host === pattern && (isBypassedFlag = !0); + return bypassedMap?.set(host, isBypassedFlag), isBypassedFlag; +} +function loadNoProxy() { + let noProxy = getEnvironmentValue(NO_PROXY); + return noProxyListLoaded = !0, noProxy ? noProxy.split(",").map((item) => item.trim()).filter((item) => item.length) : []; +} +function getDefaultProxySettings(proxyUrl) { + if (!proxyUrl && (proxyUrl = loadEnvironmentProxyValue(), !proxyUrl)) + return; + let parsedUrl = new URL(proxyUrl); + return { + host: (parsedUrl.protocol ? parsedUrl.protocol + "//" : "") + parsedUrl.hostname, + port: Number.parseInt(parsedUrl.port || "80"), + username: parsedUrl.username, + password: parsedUrl.password + }; +} +function getDefaultProxySettingsInternal() { + let envProxy = loadEnvironmentProxyValue(); + return envProxy ? new URL(envProxy) : void 0; +} +function getUrlFromProxySettings(settings) { + let parsedProxyUrl; + try { + parsedProxyUrl = new URL(settings.host); + } catch { + throw new Error(`Expecting a valid host string in proxy settings, but found "${settings.host}".`); + } + return parsedProxyUrl.port = String(settings.port), settings.username && (parsedProxyUrl.username = settings.username), settings.password && (parsedProxyUrl.password = settings.password), parsedProxyUrl; +} +function setProxyAgentOnRequest(request, cachedAgents, proxyUrl) { + if (request.agent) + return; + let isInsecure = new URL(request.url).protocol !== "https:"; + request.tlsSettings && logger.warning("TLS settings are not supported in combination with custom Proxy, certificates provided to the client will be ignored."), isInsecure ? (cachedAgents.httpProxyAgent || (cachedAgents.httpProxyAgent = new import_http_proxy_agent.HttpProxyAgent(proxyUrl)), request.agent = cachedAgents.httpProxyAgent) : (cachedAgents.httpsProxyAgent || (cachedAgents.httpsProxyAgent = new import_https_proxy_agent.HttpsProxyAgent(proxyUrl)), request.agent = cachedAgents.httpsProxyAgent); +} +function proxyPolicy(proxySettings, options) { + noProxyListLoaded || globalNoProxyList.push(...loadNoProxy()); + let defaultProxy = proxySettings ? getUrlFromProxySettings(proxySettings) : getDefaultProxySettingsInternal(), cachedAgents = {}; + return { + name: proxyPolicyName, + async sendRequest(request, next) { + return !request.proxySettings && defaultProxy && !isBypassed(request.url, options?.customNoProxyList ?? globalNoProxyList, options?.customNoProxyList ? void 0 : globalBypassedMap) ? setProxyAgentOnRequest(request, cachedAgents, defaultProxy) : request.proxySettings && setProxyAgentOnRequest(request, cachedAgents, getUrlFromProxySettings(request.proxySettings)), next(request); + } + }; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/policies/decompressResponsePolicy.js +var decompressResponsePolicyName = "decompressResponsePolicy"; +function decompressResponsePolicy() { + return { + name: decompressResponsePolicyName, + async sendRequest(request, next) { + return request.method !== "HEAD" && request.headers.set("Accept-Encoding", "gzip,deflate"), next(request); + } + }; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/policies/redirectPolicy.js +var redirectPolicyName = "redirectPolicy", allowedRedirect = ["GET", "HEAD"]; +function redirectPolicy(options = {}) { + let { maxRetries = 20, allowCrossOriginRedirects = !1 } = options; + return { + name: redirectPolicyName, + async sendRequest(request, next) { + let response = await next(request); + return handleRedirect(next, response, maxRetries, allowCrossOriginRedirects); + } + }; +} +async function handleRedirect(next, response, maxRetries, allowCrossOriginRedirects, currentRetries = 0) { + let { request, status, headers } = response, locationHeader = headers.get("location"); + if (locationHeader && (status === 300 || status === 301 && allowedRedirect.includes(request.method) || status === 302 && allowedRedirect.includes(request.method) || status === 303 && request.method === "POST" || status === 307) && currentRetries < maxRetries) { + let url2 = new URL(locationHeader, request.url); + if (!allowCrossOriginRedirects) { + let originalUrl = new URL(request.url); + if (url2.origin !== originalUrl.origin) + return logger.verbose(`Skipping cross-origin redirect from ${originalUrl.origin} to ${url2.origin}.`), response; + } + request.url = url2.toString(), status === 303 && (request.method = "GET", request.headers.delete("Content-Length"), delete request.body), request.headers.delete("Authorization"); + let res = await next(request); + return handleRedirect(next, res, maxRetries, allowCrossOriginRedirects, currentRetries + 1); + } + return response; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/typeGuards.js +function isBlob(x) { + return x instanceof Blob; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/util/concat.js +import { Readable } from "stream"; +async function* streamAsyncIterator() { + let reader = this.getReader(); + try { + for (; ; ) { + let { done, value } = await reader.read(); + if (done) + return; + yield value; + } + } finally { + reader.releaseLock(); + } +} +function makeAsyncIterable(webStream) { + webStream[Symbol.asyncIterator] || (webStream[Symbol.asyncIterator] = streamAsyncIterator.bind(webStream)), webStream.values || (webStream.values = streamAsyncIterator.bind(webStream)); +} +function ensureNodeStream(stream3) { + return stream3 instanceof ReadableStream ? (makeAsyncIterable(stream3), Readable.fromWeb(stream3)) : stream3; +} +function toStream(source) { + return source instanceof Uint8Array ? Readable.from(Buffer.from(source)) : isBlob(source) ? ensureNodeStream(source.stream()) : ensureNodeStream(source); +} +async function concat(sources) { + return function() { + let streams = sources.map((x) => typeof x == "function" ? x() : x).map(toStream); + return Readable.from((async function* () { + for (let stream3 of streams) + for await (let chunk of stream3) + yield chunk; + })()); + }; +} + +// node_modules/@typespec/ts-http-runtime/dist/esm/policies/multipartPolicy.js +function generateBoundary() { + return `----AzSDKFormBoundary${randomUUID4()}`; +} +function encodeHeaders(headers) { + let result = ""; + for (let [key, value] of headers) + result += `${key}: ${value}\r +`; + return result; +} +function getLength(source) { + return source instanceof Uint8Array ? source.byteLength : isBlob(source) ? source.size === -1 ? void 0 : source.size : void 0; +} +function getTotalLength(sources) { + let total = 0; + for (let source of sources) { + let partLength = getLength(source); + if (partLength === void 0) + return; + total += partLength; + } + return total; +} +async function buildRequestBody(request, parts, boundary) { + let sources = [ + stringToUint8Array(`--${boundary}`, "utf-8"), + ...parts.flatMap((part) => [ + stringToUint8Array(`\r +`, "utf-8"), + stringToUint8Array(encodeHeaders(part.headers), "utf-8"), + stringToUint8Array(`\r +`, "utf-8"), + part.body, + stringToUint8Array(`\r +--${boundary}`, "utf-8") + ]), + stringToUint8Array(`--\r +\r +`, "utf-8") + ], contentLength2 = getTotalLength(sources); + contentLength2 && request.headers.set("Content-Length", contentLength2), request.body = await concat(sources); +} +var multipartPolicyName = "multipartPolicy", maxBoundaryLength = 70, validBoundaryCharacters = new Set("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'()+,-./:=?"); +function assertValidBoundary(boundary) { + if (boundary.length > maxBoundaryLength) + throw new Error(`Multipart boundary "${boundary}" exceeds maximum length of 70 characters`); + if (Array.from(boundary).some((x) => !validBoundaryCharacters.has(x))) + throw new Error(`Multipart boundary "${boundary}" contains invalid characters`); +} +function multipartPolicy() { + return { + name: multipartPolicyName, + async sendRequest(request, next) { + if (!request.multipartBody) + return next(request); + if (request.body) + throw new Error("multipartBody and regular body cannot be set at the same time"); + let boundary = request.multipartBody.boundary, contentTypeHeader = request.headers.get("Content-Type") ?? "multipart/mixed", parsedHeader = contentTypeHeader.match(/^(multipart\/[^ ;]+)(?:; *boundary=(.+))?$/); + if (!parsedHeader) + throw new Error(`Got multipart request body, but content-type header was not multipart: ${contentTypeHeader}`); + let [, contentType2, parsedBoundary] = parsedHeader; + if (parsedBoundary && boundary && parsedBoundary !== boundary) + throw new Error(`Multipart boundary was specified as ${parsedBoundary} in the header, but got ${boundary} in the request body`); + return boundary ??= parsedBoundary, boundary ? assertValidBoundary(boundary) : boundary = generateBoundary(), request.headers.set("Content-Type", `${contentType2}; boundary=${boundary}`), await buildRequestBody(request, request.multipartBody.parts, boundary), request.multipartBody = void 0, next(request); + } + }; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/pipeline.js +function createEmptyPipeline2() { + return createEmptyPipeline(); +} + +// node_modules/@azure/logger/dist/esm/index.js +var context2 = createLoggerContext({ + logLevelEnvVarName: "AZURE_LOG_LEVEL", + namespace: "azure" +}), AzureLogger = context2.logger; +function createClientLogger2(namespace) { + return context2.createClientLogger(namespace); +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/log.js +var logger2 = createClientLogger2("core-rest-pipeline"); + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/logPolicy.js +function logPolicy2(options = {}) { + return logPolicy({ + logger: logger2.info, + ...options + }); +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/redirectPolicy.js +var redirectPolicyName2 = redirectPolicyName; +function redirectPolicy2(options = {}) { + return redirectPolicy(options); +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/util/userAgentPlatform.js +import os10 from "node:os"; +import process4 from "node:process"; +function getHeaderName2() { + return "User-Agent"; +} +async function setPlatformSpecificData2(map) { + if (process4 && process4.versions) { + let osInfo = `${os10.type()} ${os10.release()}; ${os10.arch()}`; + process4.versions.bun ? map.set("Bun", `${process4.versions.bun} (${osInfo})`) : process4.versions.deno ? map.set("Deno", `${process4.versions.deno} (${osInfo})`) : process4.versions.node && map.set("Node", `${process4.versions.node} (${osInfo})`); + } +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/constants.js +var SDK_VERSION2 = "1.25.0"; + +// node_modules/@azure/core-rest-pipeline/dist/esm/util/userAgent.js +function getUserAgentString(telemetryInfo) { + let parts = []; + for (let [key, value] of telemetryInfo) { + let token = value ? `${key}/${value}` : key; + parts.push(token); + } + return parts.join(" "); +} +function getUserAgentHeaderName2() { + return getHeaderName2(); +} +async function getUserAgentValue2(prefix2) { + let runtimeInfo = /* @__PURE__ */ new Map(); + runtimeInfo.set("core-rest-pipeline", SDK_VERSION2), await setPlatformSpecificData2(runtimeInfo); + let defaultAgent = getUserAgentString(runtimeInfo); + return prefix2 ? `${prefix2} ${defaultAgent}` : defaultAgent; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/userAgentPolicy.js +var UserAgentHeaderName2 = getUserAgentHeaderName2(), userAgentPolicyName2 = "userAgentPolicy"; +function userAgentPolicy2(options = {}) { + let userAgentValue = getUserAgentValue2(options.userAgentPrefix); + return { + name: userAgentPolicyName2, + async sendRequest(request, next) { + return request.headers.has(UserAgentHeaderName2) || request.headers.set(UserAgentHeaderName2, await userAgentValue), next(request); + } + }; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/util/file.js +var rawContent = /* @__PURE__ */ Symbol("rawContent"); +function hasRawContent(x) { + return typeof x[rawContent] == "function"; +} +function getRawContent(blob) { + return hasRawContent(blob) ? blob[rawContent]() : blob; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/multipartPolicy.js +var multipartPolicyName2 = multipartPolicyName; +function multipartPolicy2() { + let tspPolicy = multipartPolicy(); + return { + name: multipartPolicyName2, + sendRequest: async (request, next) => { + if (request.multipartBody) + for (let part of request.multipartBody.parts) + hasRawContent(part.body) && (part.body = getRawContent(part.body)); + return tspPolicy.sendRequest(request, next); + } + }; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/decompressResponsePolicy.js +var decompressResponsePolicyName2 = decompressResponsePolicyName; +function decompressResponsePolicy2() { + return decompressResponsePolicy(); +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/defaultRetryPolicy.js +function defaultRetryPolicy2(options = {}) { + return defaultRetryPolicy(options); +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/formDataPolicy.js +function formDataPolicy2() { + return formDataPolicy(); +} + +// node_modules/@azure/abort-controller/dist/esm/AbortError.js +var AbortError2 = class extends Error { + constructor(message) { + super(message), this.name = "AbortError"; + } +}; + +// node_modules/@azure/core-util/dist/esm/createAbortablePromise.js +function createAbortablePromise(buildPromise, options) { + let { cleanupBeforeAbort, abortSignal, abortErrorMsg } = options ?? {}; + return new Promise((resolve2, reject) => { + function rejectOnAbort() { + reject(new AbortError2(abortErrorMsg ?? "The operation was aborted.")); + } + function removeListeners() { + abortSignal?.removeEventListener("abort", onAbort); + } + function onAbort() { + cleanupBeforeAbort?.(), removeListeners(), rejectOnAbort(); + } + if (abortSignal?.aborted) + return rejectOnAbort(); + try { + buildPromise((x) => { + removeListeners(), resolve2(x); + }, (x) => { + removeListeners(), reject(x); + }); + } catch (err) { + reject(err); + } + abortSignal?.addEventListener("abort", onAbort); + }); +} + +// node_modules/@azure/core-util/dist/esm/delay.js +var StandardAbortMessage2 = "The delay was aborted."; +function delay2(timeInMs, options) { + let token, { abortSignal, abortErrorMsg } = options ?? {}; + return createAbortablePromise((resolve2) => { + token = setTimeout(resolve2, timeInMs); + }, { + cleanupBeforeAbort: () => clearTimeout(token), + abortSignal, + abortErrorMsg: abortErrorMsg ?? StandardAbortMessage2 + }); +} + +// node_modules/@azure/core-util/dist/esm/error.js +function getErrorMessage(e) { + if (isError(e)) + return e.message; + { + let stringified; + try { + typeof e == "object" && e ? stringified = JSON.stringify(e) : stringified = String(e); + } catch { + stringified = "[unable to stringify input]"; + } + return `Unknown error ${stringified}`; + } +} + +// node_modules/@azure/core-util/dist/esm/index.js +function isError2(e) { + return isError(e); +} +function randomUUID5() { + return randomUUID4(); +} +var isNodeLike2 = isNodeLike; +function uint8ArrayToString2(bytes, format) { + return uint8ArrayToString(bytes, format); +} +function stringToUint8Array2(value, format) { + return stringToUint8Array(value, format); +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/proxyPolicy.js +function getDefaultProxySettings2(proxyUrl) { + return getDefaultProxySettings(proxyUrl); +} +function proxyPolicy2(proxySettings, options) { + return proxyPolicy(proxySettings, options); +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/setClientRequestIdPolicy.js +var setClientRequestIdPolicyName = "setClientRequestIdPolicy"; +function setClientRequestIdPolicy(requestIdHeaderName = "x-ms-client-request-id") { + return { + name: setClientRequestIdPolicyName, + async sendRequest(request, next) { + return request.headers.has(requestIdHeaderName) || request.headers.set(requestIdHeaderName, request.requestId), next(request); + } + }; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/agentPolicy.js +function agentPolicy2(agent) { + return agentPolicy(agent); +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/tlsPolicy.js +function tlsPolicy2(tlsSettings) { + return tlsPolicy(tlsSettings); +} + +// node_modules/@azure/core-tracing/dist/esm/tracingContext.js +var knownContextKeys = { + span: /* @__PURE__ */ Symbol.for("@azure/core-tracing span"), + namespace: /* @__PURE__ */ Symbol.for("@azure/core-tracing namespace") +}; +function createTracingContext(options = {}) { + let context3 = new TracingContextImpl(options.parentContext); + return options.span && (context3 = context3.setValue(knownContextKeys.span, options.span)), options.namespace && (context3 = context3.setValue(knownContextKeys.namespace, options.namespace)), context3; +} +var TracingContextImpl = class _TracingContextImpl { + _contextMap; + constructor(initialContext) { + this._contextMap = initialContext instanceof _TracingContextImpl ? new Map(initialContext._contextMap) : /* @__PURE__ */ new Map(); + } + setValue(key, value) { + let newContext = new _TracingContextImpl(this); + return newContext._contextMap.set(key, value), newContext; + } + getValue(key) { + return this._contextMap.get(key); + } + deleteValue(key) { + let newContext = new _TracingContextImpl(this); + return newContext._contextMap.delete(key), newContext; + } +}; + +// node_modules/@azure/core-tracing/dist/esm/state.js +var import_state_cjs = __toESM(require_state_cjs(), 1), state = import_state_cjs.state; + +// node_modules/@azure/core-tracing/dist/esm/instrumenter.js +function createDefaultTracingSpan() { + return { + end: () => { + }, + isRecording: () => !1, + recordException: () => { + }, + setAttribute: () => { + }, + setStatus: () => { + }, + addEvent: () => { + } + }; +} +function createDefaultInstrumenter() { + return { + createRequestHeaders: () => ({}), + parseTraceparentHeader: () => { + }, + startSpan: (_name, spanOptions) => ({ + span: createDefaultTracingSpan(), + tracingContext: createTracingContext({ parentContext: spanOptions.tracingContext }) + }), + withContext(_context, callback, ...callbackArgs) { + return callback(...callbackArgs); + } + }; +} +function getInstrumenter() { + return state.instrumenterImplementation || (state.instrumenterImplementation = createDefaultInstrumenter()), state.instrumenterImplementation; +} + +// node_modules/@azure/core-tracing/dist/esm/tracingClient.js +function createTracingClient(options) { + let { namespace, packageName, packageVersion } = options; + function startSpan(name, operationOptions, spanOptions) { + let startSpanResult = getInstrumenter().startSpan(name, { + ...spanOptions, + packageName, + packageVersion, + tracingContext: operationOptions?.tracingOptions?.tracingContext + }), tracingContext = startSpanResult.tracingContext, span = startSpanResult.span; + tracingContext.getValue(knownContextKeys.namespace) || (tracingContext = tracingContext.setValue(knownContextKeys.namespace, namespace)), span.setAttribute("az.namespace", tracingContext.getValue(knownContextKeys.namespace)); + let updatedOptions = Object.assign({}, operationOptions, { + tracingOptions: { ...operationOptions?.tracingOptions, tracingContext } + }); + return { + span, + updatedOptions + }; + } + async function withSpan(name, operationOptions, callback, spanOptions) { + let { span, updatedOptions } = startSpan(name, operationOptions, spanOptions); + try { + let result = await withContext(updatedOptions.tracingOptions.tracingContext, () => callback(updatedOptions, span)); + return span.setStatus({ status: "success" }), result; + } catch (err) { + throw span.setStatus({ status: "error", error: err }), err; + } finally { + span.end(); + } + } + function withContext(context3, callback, ...callbackArgs) { + return getInstrumenter().withContext(context3, callback, ...callbackArgs); + } + function parseTraceparentHeader(traceparentHeader) { + return getInstrumenter().parseTraceparentHeader(traceparentHeader); + } + function createRequestHeaders(tracingContext) { + return getInstrumenter().createRequestHeaders(tracingContext); + } + return { + startSpan, + withSpan, + withContext, + parseTraceparentHeader, + createRequestHeaders + }; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/restError.js +var RestError2 = RestError; +function isRestError2(e) { + return isRestError(e); +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/tracingPolicy.js +var tracingPolicyName = "tracingPolicy"; +function tracingPolicy(options = {}) { + let userAgentPromise = getUserAgentValue2(options.userAgentPrefix), sanitizer = new Sanitizer({ + additionalAllowedQueryParameters: options.additionalAllowedQueryParameters + }), tracingClient2 = tryCreateTracingClient(); + return { + name: tracingPolicyName, + async sendRequest(request, next) { + if (!tracingClient2) + return next(request); + let userAgent = await userAgentPromise, spanAttributes = { + "http.url": sanitizer.sanitizeUrl(request.url), + "http.method": request.method, + "http.user_agent": userAgent, + requestId: request.requestId + }; + userAgent && (spanAttributes["http.user_agent"] = userAgent); + let { span, tracingContext } = tryCreateSpan(tracingClient2, request, spanAttributes) ?? {}; + if (!span || !tracingContext) + return next(request); + try { + let response = await tracingClient2.withContext(tracingContext, next, request); + return tryProcessResponse(span, response), response; + } catch (err) { + throw tryProcessError(span, err), err; + } + } + }; +} +function tryCreateTracingClient() { + try { + return createTracingClient({ + namespace: "", + packageName: "@azure/core-rest-pipeline", + packageVersion: SDK_VERSION2 + }); + } catch (e) { + logger2.warning(`Error when creating the TracingClient: ${getErrorMessage(e)}`); + return; + } +} +function tryCreateSpan(tracingClient2, request, spanAttributes) { + try { + let { span, updatedOptions } = tracingClient2.startSpan(`HTTP ${request.method}`, { tracingOptions: request.tracingOptions }, { + spanKind: "client", + spanAttributes + }); + if (!span.isRecording()) { + span.end(); + return; + } + let headers = tracingClient2.createRequestHeaders(updatedOptions.tracingOptions.tracingContext); + for (let [key, value] of Object.entries(headers)) + request.headers.set(key, value); + return { span, tracingContext: updatedOptions.tracingOptions.tracingContext }; + } catch (e) { + logger2.warning(`Skipping creating a tracing span due to an error: ${getErrorMessage(e)}`); + return; + } +} +function tryProcessError(span, error3) { + try { + span.setStatus({ + status: "error", + error: isError2(error3) ? error3 : void 0 + }), isRestError2(error3) && error3.statusCode && span.setAttribute("http.status_code", error3.statusCode), span.end(); + } catch (e) { + logger2.warning(`Skipping tracing span processing due to an error: ${getErrorMessage(e)}`); + } +} +function tryProcessResponse(span, response) { + try { + span.setAttribute("http.status_code", response.status); + let serviceRequestId = response.headers.get("x-ms-request-id"); + serviceRequestId && span.setAttribute("serviceRequestId", serviceRequestId), response.status >= 400 && span.setStatus({ + status: "error" + }), span.end(); + } catch (e) { + logger2.warning(`Skipping tracing span processing due to an error: ${getErrorMessage(e)}`); + } +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/util/wrapAbortSignal.js +function wrapAbortSignalLike(abortSignalLike) { + if (abortSignalLike instanceof AbortSignal) + return { abortSignal: abortSignalLike }; + if (abortSignalLike.aborted) + return { + abortSignal: AbortSignal.abort("reason" in abortSignalLike ? abortSignalLike.reason : void 0) + }; + let controller = new AbortController(), needsCleanup = !0; + function cleanup() { + needsCleanup && (abortSignalLike.removeEventListener("abort", listener), needsCleanup = !1); + } + function listener() { + controller.abort("reason" in abortSignalLike ? abortSignalLike.reason : void 0), cleanup(); + } + return abortSignalLike.addEventListener("abort", listener), { abortSignal: controller.signal, cleanup }; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/wrapAbortSignalLikePolicy.js +var wrapAbortSignalLikePolicyName = "wrapAbortSignalLikePolicy"; +function wrapAbortSignalLikePolicy() { + return { + name: wrapAbortSignalLikePolicyName, + sendRequest: async (request, next) => { + if (!request.abortSignal) + return next(request); + let { abortSignal, cleanup } = wrapAbortSignalLike(request.abortSignal); + request.abortSignal = abortSignal; + try { + return await next(request); + } finally { + cleanup?.(); + } + } + }; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/createPipelineFromOptions.js +function createPipelineFromOptions2(options) { + let pipeline5 = createEmptyPipeline2(); + return isNodeLike2 && (options.agent && pipeline5.addPolicy(agentPolicy2(options.agent)), options.tlsOptions && pipeline5.addPolicy(tlsPolicy2(options.tlsOptions)), pipeline5.addPolicy(proxyPolicy2(options.proxyOptions)), pipeline5.addPolicy(decompressResponsePolicy2())), pipeline5.addPolicy(wrapAbortSignalLikePolicy()), pipeline5.addPolicy(formDataPolicy2(), { beforePolicies: [multipartPolicyName2] }), pipeline5.addPolicy(userAgentPolicy2(options.userAgentOptions)), pipeline5.addPolicy(setClientRequestIdPolicy(options.telemetryOptions?.clientRequestIdHeaderName)), pipeline5.addPolicy(multipartPolicy2(), { afterPhase: "Deserialize" }), pipeline5.addPolicy(defaultRetryPolicy2(options.retryOptions), { phase: "Retry" }), pipeline5.addPolicy(tracingPolicy({ ...options.userAgentOptions, ...options.loggingOptions }), { + afterPhase: "Retry" + }), isNodeLike2 && pipeline5.addPolicy(redirectPolicy2(options.redirectOptions), { afterPhase: "Retry" }), pipeline5.addPolicy(logPolicy2(options.loggingOptions), { afterPhase: "Sign" }), pipeline5; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/defaultHttpClient.js +function createDefaultHttpClient2() { + let client = createDefaultHttpClient(); + return { + async sendRequest(request) { + let { abortSignal, cleanup } = request.abortSignal ? wrapAbortSignalLike(request.abortSignal) : {}; + try { + return request.abortSignal = abortSignal, await client.sendRequest(request); + } finally { + cleanup?.(); + } + } + }; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/httpHeaders.js +function createHttpHeaders2(rawHeaders) { + return createHttpHeaders(rawHeaders); +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/pipelineRequest.js +function createPipelineRequest2(options) { + return createPipelineRequest(options); +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/retryPolicy.js +var retryPolicyLogger2 = createClientLogger2("core-rest-pipeline retryPolicy"); + +// node_modules/@azure/core-rest-pipeline/dist/esm/util/tokenCycler.js +var DEFAULT_CYCLER_OPTIONS = { + forcedRefreshWindowInMs: 1e3, + // Force waiting for a refresh 1s before the token expires + retryIntervalInMs: 3e3, + // Allow refresh attempts every 3s + refreshWindowInMs: 1e3 * 60 * 2 + // Start refreshing 2m before expiry +}; +async function beginRefresh(getAccessToken, retryIntervalInMs, refreshTimeout) { + async function tryGetAccessToken() { + if (Date.now() < refreshTimeout) + try { + return await getAccessToken(); + } catch { + return null; + } + else { + let finalToken = await getAccessToken(); + if (finalToken === null) + throw new Error("Failed to refresh access token."); + return finalToken; + } + } + let token = await tryGetAccessToken(); + for (; token === null; ) + await delay2(retryIntervalInMs), token = await tryGetAccessToken(); + return token; +} +function createTokenCycler(credential, tokenCyclerOptions) { + let refreshWorker = null, token = null, tenantId, options = { + ...DEFAULT_CYCLER_OPTIONS, + ...tokenCyclerOptions + }, cycler = { + /** + * Produces true if a refresh job is currently in progress. + */ + get isRefreshing() { + return refreshWorker !== null; + }, + /** + * Produces true if the cycler SHOULD refresh (we are within the refresh + * window and not already refreshing) + */ + get shouldRefresh() { + return token === null ? !0 : cycler.isRefreshing ? !1 : token.refreshAfterTimestamp && token.refreshAfterTimestamp < Date.now() ? !0 : token.expiresOnTimestamp - options.refreshWindowInMs < Date.now(); + }, + /** + * Produces true if the cycler MUST refresh (null or nearly-expired + * token). + */ + get mustRefresh() { + return token === null || token.expiresOnTimestamp - options.forcedRefreshWindowInMs < Date.now(); + } + }; + function refresh(scopes, getTokenOptions) { + return cycler.isRefreshing || (refreshWorker = beginRefresh( + () => credential.getToken(scopes, getTokenOptions), + options.retryIntervalInMs, + // If we don't have a token, then we should timeout immediately + token?.expiresOnTimestamp ?? Date.now() + ).then((_token) => (refreshWorker = null, token = _token, tenantId = getTokenOptions.tenantId, token)).catch((reason) => { + throw refreshWorker = null, token = null, tenantId = void 0, reason; + })), refreshWorker; + } + return async (scopes, tokenOptions) => { + let hasClaimChallenge = !!tokenOptions.claims, tenantIdChanged = tenantId !== tokenOptions.tenantId; + return hasClaimChallenge && (token = null), tenantIdChanged || hasClaimChallenge || cycler.mustRefresh ? refresh(scopes, tokenOptions) : (cycler.shouldRefresh && refresh(scopes, tokenOptions), token); + }; +} + +// node_modules/@azure/core-rest-pipeline/dist/esm/policies/bearerTokenAuthenticationPolicy.js +var bearerTokenAuthenticationPolicyName = "bearerTokenAuthenticationPolicy"; +async function trySendRequest(request, next) { + try { + return [await next(request), void 0]; + } catch (e) { + if (isRestError2(e) && e.response) + return [e.response, e]; + throw e; + } +} +async function defaultAuthorizeRequest(options) { + let { scopes, getAccessToken, request } = options, getTokenOptions = { + abortSignal: request.abortSignal, + tracingOptions: request.tracingOptions, + enableCae: !0 + }, accessToken = await getAccessToken(scopes, getTokenOptions); + accessToken && options.request.headers.set("Authorization", `Bearer ${accessToken.token}`); +} +function isChallengeResponse(response) { + return response.status === 401 && response.headers.has("WWW-Authenticate"); +} +async function authorizeRequestOnCaeChallenge(onChallengeOptions, caeClaims) { + let { scopes } = onChallengeOptions, accessToken = await onChallengeOptions.getAccessToken(scopes, { + enableCae: !0, + claims: caeClaims + }); + return accessToken ? (onChallengeOptions.request.headers.set("Authorization", `${accessToken.tokenType ?? "Bearer"} ${accessToken.token}`), !0) : !1; +} +function bearerTokenAuthenticationPolicy(options) { + let { credential, scopes, challengeCallbacks } = options, logger7 = options.logger || logger2, callbacks = { + authorizeRequest: challengeCallbacks?.authorizeRequest?.bind(challengeCallbacks) ?? defaultAuthorizeRequest, + authorizeRequestOnChallenge: challengeCallbacks?.authorizeRequestOnChallenge?.bind(challengeCallbacks) + }, getAccessToken = credential ? createTokenCycler( + credential + /* , options */ + ) : () => Promise.resolve(null); + return { + name: bearerTokenAuthenticationPolicyName, + /** + * If there's no challenge parameter: + * - It will try to retrieve the token using the cache, or the credential's getToken. + * - Then it will try the next policy with or without the retrieved token. + * + * It uses the challenge parameters to: + * - Skip a first attempt to get the token from the credential if there's no cached token, + * since it expects the token to be retrievable only after the challenge. + * - Prepare the outgoing request if the `prepareRequest` method has been provided. + * - Send an initial request to receive the challenge if it fails. + * - Process a challenge if the response contains it. + * - Retrieve a token with the challenge information, then re-send the request. + */ + async sendRequest(request, next) { + if (!request.url.toLowerCase().startsWith("https://")) + throw new Error("Bearer token authentication is not permitted for non-TLS protected (non-https) URLs."); + await callbacks.authorizeRequest({ + scopes: Array.isArray(scopes) ? scopes : [scopes], + request, + getAccessToken, + logger: logger7 + }); + let response, error3, shouldSendRequest; + if ([response, error3] = await trySendRequest(request, next), isChallengeResponse(response)) { + let claims = getCaeChallengeClaims(response.headers.get("WWW-Authenticate")); + if (claims) { + let parsedClaim; + try { + parsedClaim = atob(claims); + } catch { + return logger7.warning(`The WWW-Authenticate header contains "claims" that cannot be parsed. Unable to perform the Continuous Access Evaluation authentication flow. Unparsable claims: ${claims}`), response; + } + shouldSendRequest = await authorizeRequestOnCaeChallenge({ + scopes: Array.isArray(scopes) ? scopes : [scopes], + response, + request, + getAccessToken, + logger: logger7 + }, parsedClaim), shouldSendRequest && ([response, error3] = await trySendRequest(request, next)); + } else if (callbacks.authorizeRequestOnChallenge && (shouldSendRequest = await callbacks.authorizeRequestOnChallenge({ + scopes: Array.isArray(scopes) ? scopes : [scopes], + request, + response, + getAccessToken, + logger: logger7 + }), shouldSendRequest && ([response, error3] = await trySendRequest(request, next)), isChallengeResponse(response) && (claims = getCaeChallengeClaims(response.headers.get("WWW-Authenticate") ?? ""), claims))) { + let parsedClaim; + try { + parsedClaim = atob(claims); + } catch { + return logger7.warning(`The WWW-Authenticate header contains "claims" that cannot be parsed. Unable to perform the Continuous Access Evaluation authentication flow. Unparsable claims: ${claims}`), response; + } + shouldSendRequest = await authorizeRequestOnCaeChallenge({ + scopes: Array.isArray(scopes) ? scopes : [scopes], + response, + request, + getAccessToken, + logger: logger7 + }, parsedClaim), shouldSendRequest && ([response, error3] = await trySendRequest(request, next)); + } + } + if (error3) + throw error3; + return response; + } + }; +} +function parseChallenges(challenges) { + let challengeRegex = /(\w+)\s+((?:\w+=(?:"[^"]*"|[^,]*),?\s*)+)/g, paramRegex = /(\w+)="([^"]*)"/g, parsedChallenges = [], match2; + for (; (match2 = challengeRegex.exec(challenges)) !== null; ) { + let scheme = match2[1], paramsString = match2[2], params = {}, paramMatch; + for (; (paramMatch = paramRegex.exec(paramsString)) !== null; ) + params[paramMatch[1]] = paramMatch[2]; + parsedChallenges.push({ scheme, params }); + } + return parsedChallenges; +} +function getCaeChallengeClaims(challenges) { + return challenges ? parseChallenges(challenges).find((x) => x.scheme === "Bearer" && x.params.claims && x.params.error === "insufficient_claims")?.params.claims : void 0; +} + +// node_modules/@azure/core-auth/dist/esm/tokenCredential.js +function isTokenCredential(credential) { + let castCredential = credential; + return castCredential && typeof castCredential.getToken == "function" && (castCredential.signRequest === void 0 || castCredential.getToken.length > 0); +} + +// node_modules/@azure/core-http-compat/dist/esm/policies/disableKeepAlivePolicy.js +var disableKeepAlivePolicyName = "DisableKeepAlivePolicy"; +function createDisableKeepAlivePolicy() { + return { + name: disableKeepAlivePolicyName, + sendRequest(request, next) { + return request.disableKeepAlive = !0, next(request); + } + }; +} +function pipelineContainsDisableKeepAlivePolicy(pipeline5) { + return pipeline5.getOrderedPolicies().some((policy) => policy.name === disableKeepAlivePolicyName); +} + +// node_modules/@azure/core-client/dist/esm/base64.js +function encodeByteArray(value) { + return uint8ArrayToString2(value, "base64"); +} +function decodeString(value) { + return stringToUint8Array2(value, "base64"); +} + +// node_modules/@azure/core-client/dist/esm/utils.js +function isPrimitiveBody(value, mapperTypeName) { + return mapperTypeName !== "Composite" && mapperTypeName !== "Dictionary" && (typeof value == "string" || typeof value == "number" || typeof value == "boolean" || mapperTypeName?.match(/^(Date|DateTime|DateTimeRfc1123|UnixTime|ByteArray|Base64Url)$/i) !== null || value === void 0 || value === null); +} +var validateISODuration = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; +function isDuration(value) { + return validateISODuration.test(value); +} +var validUuidRegex = /^[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 isValidUuid(uuid) { + return validUuidRegex.test(uuid); +} +function handleNullableResponseAndWrappableBody(responseObject) { + let combinedHeadersAndBody = { + ...responseObject.headers, + ...responseObject.body + }; + return responseObject.hasNullableType && Object.getOwnPropertyNames(combinedHeadersAndBody).length === 0 ? responseObject.shouldWrapBody ? { body: null } : null : responseObject.shouldWrapBody ? { + ...responseObject.headers, + body: responseObject.body + } : combinedHeadersAndBody; +} +function flattenResponse(fullResponse, responseSpec) { + let parsedHeaders = fullResponse.parsedHeaders; + if (fullResponse.request.method === "HEAD") + return { + ...parsedHeaders, + body: fullResponse.parsedBody + }; + let bodyMapper = responseSpec && responseSpec.bodyMapper, isNullable = !!bodyMapper?.nullable, expectedBodyTypeName = bodyMapper?.type.name; + if (expectedBodyTypeName === "Stream") + return { + ...parsedHeaders, + blobBody: fullResponse.blobBody, + readableStreamBody: fullResponse.readableStreamBody + }; + let modelProperties = expectedBodyTypeName === "Composite" && bodyMapper.type.modelProperties || {}, isPageableResponse = Object.keys(modelProperties).some((k) => modelProperties[k].serializedName === ""); + if (expectedBodyTypeName === "Sequence" || isPageableResponse) { + let arrayResponse = fullResponse.parsedBody ?? []; + for (let key of Object.keys(modelProperties)) + modelProperties[key].serializedName && (arrayResponse[key] = fullResponse.parsedBody?.[key]); + if (parsedHeaders) + for (let key of Object.keys(parsedHeaders)) + arrayResponse[key] = parsedHeaders[key]; + return isNullable && !fullResponse.parsedBody && !parsedHeaders && Object.getOwnPropertyNames(modelProperties).length === 0 ? null : arrayResponse; + } + return handleNullableResponseAndWrappableBody({ + body: fullResponse.parsedBody, + headers: parsedHeaders, + hasNullableType: isNullable, + shouldWrapBody: isPrimitiveBody(fullResponse.parsedBody, expectedBodyTypeName) + }); +} + +// node_modules/@azure/core-client/dist/esm/serializer.js +var SerializerImpl = class { + modelMappers; + isXML; + constructor(modelMappers = {}, isXML = !1) { + this.modelMappers = modelMappers, this.isXML = isXML; + } + /** + * @deprecated Removing the constraints validation on client side. + */ + validateConstraints(mapper, value, objectName) { + let failValidation = (constraintName, constraintValue) => { + throw new Error(`"${objectName}" with value "${value}" should satisfy the constraint "${constraintName}": ${constraintValue}.`); + }; + if (mapper.constraints && value !== void 0 && value !== null) { + let { ExclusiveMaximum, ExclusiveMinimum, InclusiveMaximum, InclusiveMinimum, MaxItems, MaxLength, MinItems, MinLength, MultipleOf, Pattern: Pattern2, UniqueItems } = mapper.constraints; + if (ExclusiveMaximum !== void 0 && value >= ExclusiveMaximum && failValidation("ExclusiveMaximum", ExclusiveMaximum), ExclusiveMinimum !== void 0 && value <= ExclusiveMinimum && failValidation("ExclusiveMinimum", ExclusiveMinimum), InclusiveMaximum !== void 0 && value > InclusiveMaximum && failValidation("InclusiveMaximum", InclusiveMaximum), InclusiveMinimum !== void 0 && value < InclusiveMinimum && failValidation("InclusiveMinimum", InclusiveMinimum), MaxItems !== void 0 && value.length > MaxItems && failValidation("MaxItems", MaxItems), MaxLength !== void 0 && value.length > MaxLength && failValidation("MaxLength", MaxLength), MinItems !== void 0 && value.length < MinItems && failValidation("MinItems", MinItems), MinLength !== void 0 && value.length < MinLength && failValidation("MinLength", MinLength), MultipleOf !== void 0 && value % MultipleOf !== 0 && failValidation("MultipleOf", MultipleOf), Pattern2) { + let pattern = typeof Pattern2 == "string" ? new RegExp(Pattern2) : Pattern2; + (typeof value != "string" || value.match(pattern) === null) && failValidation("Pattern", Pattern2); + } + UniqueItems && value.some((item, i, ar) => ar.indexOf(item) !== i) && failValidation("UniqueItems", UniqueItems); + } + } + /** + * Serialize the given object based on its metadata defined in the mapper + * + * @param mapper - The mapper which defines the metadata of the serializable object + * + * @param object - A valid Javascript object to be serialized + * + * @param objectName - Name of the serialized object + * + * @param options - additional options to serialization + * + * @returns A valid serialized Javascript object + */ + serialize(mapper, object, objectName, options = { xml: {} }) { + let updatedOptions = { + xml: { + rootName: options.xml.rootName ?? "", + includeRoot: options.xml.includeRoot ?? !1, + xmlCharKey: options.xml.xmlCharKey ?? "_" + } + }, payload = {}, mapperType = mapper.type.name; + objectName || (objectName = mapper.serializedName), mapperType.match(/^Sequence$/i) !== null && (payload = []), mapper.isConstant && (object = mapper.defaultValue); + let { required, nullable } = mapper; + if (required && nullable && object === void 0) + throw new Error(`${objectName} cannot be undefined.`); + if (required && !nullable && object == null) + throw new Error(`${objectName} cannot be null or undefined.`); + if (!required && nullable === !1 && object === null) + throw new Error(`${objectName} cannot be null.`); + return object == null || mapperType.match(/^any$/i) !== null ? payload = object : mapperType.match(/^(Number|String|Boolean|Object|Stream|Uuid)$/i) !== null ? payload = serializeBasicTypes(mapperType, objectName, object) : mapperType.match(/^Enum$/i) !== null ? payload = serializeEnumType(objectName, mapper.type.allowedValues, object) : mapperType.match(/^(Date|DateTime|TimeSpan|DateTimeRfc1123|UnixTime)$/i) !== null ? payload = serializeDateTypes(mapperType, object, objectName) : mapperType.match(/^ByteArray$/i) !== null ? payload = serializeByteArrayType(objectName, object) : mapperType.match(/^Base64Url$/i) !== null ? payload = serializeBase64UrlType(objectName, object) : mapperType.match(/^Sequence$/i) !== null ? payload = serializeSequenceType(this, mapper, object, objectName, !!this.isXML, updatedOptions) : mapperType.match(/^Dictionary$/i) !== null ? payload = serializeDictionaryType(this, mapper, object, objectName, !!this.isXML, updatedOptions) : mapperType.match(/^Composite$/i) !== null && (payload = serializeCompositeType(this, mapper, object, objectName, !!this.isXML, updatedOptions)), payload; + } + /** + * Deserialize the given object based on its metadata defined in the mapper + * + * @param mapper - The mapper which defines the metadata of the serializable object + * + * @param responseBody - A valid Javascript entity to be deserialized + * + * @param objectName - Name of the deserialized object + * + * @param options - Controls behavior of XML parser and builder. + * + * @returns A valid deserialized Javascript object + */ + deserialize(mapper, responseBody, objectName, options = { xml: {} }) { + let updatedOptions = { + xml: { + rootName: options.xml.rootName ?? "", + includeRoot: options.xml.includeRoot ?? !1, + xmlCharKey: options.xml.xmlCharKey ?? "_" + }, + ignoreUnknownProperties: options.ignoreUnknownProperties ?? !1 + }; + if (responseBody == null) + return this.isXML && mapper.type.name === "Sequence" && !mapper.xmlIsWrapped && (responseBody = []), mapper.defaultValue !== void 0 && (responseBody = mapper.defaultValue), responseBody; + let payload, mapperType = mapper.type.name; + if (objectName || (objectName = mapper.serializedName), mapperType.match(/^Composite$/i) !== null) + payload = deserializeCompositeType(this, mapper, responseBody, objectName, updatedOptions); + else { + if (this.isXML) { + let xmlCharKey = updatedOptions.xml.xmlCharKey; + responseBody["$"] !== void 0 && responseBody[xmlCharKey] !== void 0 && (responseBody = responseBody[xmlCharKey]); + } + mapperType.match(/^Number$/i) !== null ? (payload = parseFloat(responseBody), isNaN(payload) && (payload = responseBody)) : mapperType.match(/^Boolean$/i) !== null ? responseBody === "true" ? payload = !0 : responseBody === "false" ? payload = !1 : payload = responseBody : mapperType.match(/^(String|Enum|Object|Stream|Uuid|TimeSpan|any)$/i) !== null ? payload = responseBody : mapperType.match(/^(Date|DateTime|DateTimeRfc1123)$/i) !== null ? payload = new Date(responseBody) : mapperType.match(/^UnixTime$/i) !== null ? payload = unixTimeToDate(responseBody) : mapperType.match(/^ByteArray$/i) !== null ? payload = decodeString(responseBody) : mapperType.match(/^Base64Url$/i) !== null ? payload = base64UrlToByteArray(responseBody) : mapperType.match(/^Sequence$/i) !== null ? payload = deserializeSequenceType(this, mapper, responseBody, objectName, updatedOptions) : mapperType.match(/^Dictionary$/i) !== null && (payload = deserializeDictionaryType(this, mapper, responseBody, objectName, updatedOptions)); + } + return mapper.isConstant && (payload = mapper.defaultValue), payload; + } +}; +function createSerializer(modelMappers = {}, isXML = !1) { + return new SerializerImpl(modelMappers, isXML); +} +function trimEnd(str, ch) { + let len = str.length; + for (; len - 1 >= 0 && str[len - 1] === ch; ) + --len; + return str.substr(0, len); +} +function bufferToBase64Url(buffer3) { + if (!buffer3) + return; + if (!(buffer3 instanceof Uint8Array)) + throw new Error("Please provide an input of type Uint8Array for converting to Base64Url."); + let str = encodeByteArray(buffer3); + return trimEnd(str, "=").replace(/\+/g, "-").replace(/\//g, "_"); +} +function base64UrlToByteArray(str) { + if (str) { + if (str && typeof str.valueOf() != "string") + throw new Error("Please provide an input of type string for converting to Uint8Array"); + return str = str.replace(/-/g, "+").replace(/_/g, "/"), decodeString(str); + } +} +function splitSerializeName(prop) { + let classes = [], partialclass = ""; + if (prop) { + let subwords = prop.split("."); + for (let item of subwords) + item.charAt(item.length - 1) === "\\" ? partialclass += item.substr(0, item.length - 1) + "." : (partialclass += item, classes.push(partialclass), partialclass = ""); + } + return classes; +} +function dateToUnixTime(d) { + if (d) + return typeof d.valueOf() == "string" && (d = new Date(d)), Math.floor(d.getTime() / 1e3); +} +function unixTimeToDate(n) { + if (n) + return new Date(n * 1e3); +} +function serializeBasicTypes(typeName, objectName, value) { + if (value != null) { + if (typeName.match(/^Number$/i) !== null) { + if (typeof value != "number") + throw new Error(`${objectName} with value ${value} must be of type number.`); + } else if (typeName.match(/^String$/i) !== null) { + if (typeof value.valueOf() != "string") + throw new Error(`${objectName} with value "${value}" must be of type string.`); + } else if (typeName.match(/^Uuid$/i) !== null) { + if (!(typeof value.valueOf() == "string" && isValidUuid(value))) + throw new Error(`${objectName} with value "${value}" must be of type string and a valid uuid.`); + } else if (typeName.match(/^Boolean$/i) !== null) { + if (typeof value != "boolean") + throw new Error(`${objectName} with value ${value} must be of type boolean.`); + } else if (typeName.match(/^Stream$/i) !== null) { + let objectType = typeof value; + if (objectType !== "string" && typeof value.pipe != "function" && // NodeJS.ReadableStream + typeof value.tee != "function" && // browser ReadableStream + !(value instanceof ArrayBuffer) && !ArrayBuffer.isView(value) && // File objects count as a type of Blob, so we want to use instanceof explicitly + !((typeof Blob == "function" || typeof Blob == "object") && value instanceof Blob) && objectType !== "function") + throw new Error(`${objectName} must be a string, Blob, ArrayBuffer, ArrayBufferView, ReadableStream, or () => ReadableStream.`); + } + } + return value; +} +function serializeEnumType(objectName, allowedValues, value) { + if (!allowedValues) + throw new Error(`Please provide a set of allowedValues to validate ${objectName} as an Enum Type.`); + if (!allowedValues.some((item) => typeof item.valueOf() == "string" ? item.toLowerCase() === value.toLowerCase() : item === value)) + throw new Error(`${value} is not a valid value for ${objectName}. The valid values are: ${JSON.stringify(allowedValues)}.`); + return value; +} +function serializeByteArrayType(objectName, value) { + if (value != null) { + if (!(value instanceof Uint8Array)) + throw new Error(`${objectName} must be of type Uint8Array.`); + value = encodeByteArray(value); + } + return value; +} +function serializeBase64UrlType(objectName, value) { + if (value != null) { + if (!(value instanceof Uint8Array)) + throw new Error(`${objectName} must be of type Uint8Array.`); + value = bufferToBase64Url(value); + } + return value; +} +function serializeDateTypes(typeName, value, objectName) { + if (value != null) { + if (typeName.match(/^Date$/i) !== null) { + if (!(value instanceof Date || typeof value.valueOf() == "string" && !isNaN(Date.parse(value)))) + throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`); + value = value instanceof Date ? value.toISOString().substring(0, 10) : new Date(value).toISOString().substring(0, 10); + } else if (typeName.match(/^DateTime$/i) !== null) { + if (!(value instanceof Date || typeof value.valueOf() == "string" && !isNaN(Date.parse(value)))) + throw new Error(`${objectName} must be an instanceof Date or a string in ISO8601 format.`); + value = value instanceof Date ? value.toISOString() : new Date(value).toISOString(); + } else if (typeName.match(/^DateTimeRfc1123$/i) !== null) { + if (!(value instanceof Date || typeof value.valueOf() == "string" && !isNaN(Date.parse(value)))) + throw new Error(`${objectName} must be an instanceof Date or a string in RFC-1123 format.`); + value = value instanceof Date ? value.toUTCString() : new Date(value).toUTCString(); + } else if (typeName.match(/^UnixTime$/i) !== null) { + if (!(value instanceof Date || typeof value.valueOf() == "string" && !isNaN(Date.parse(value)))) + throw new Error(`${objectName} must be an instanceof Date or a string in RFC-1123/ISO8601 format for it to be serialized in UnixTime/Epoch format.`); + value = dateToUnixTime(value); + } else if (typeName.match(/^TimeSpan$/i) !== null && !isDuration(value)) + throw new Error(`${objectName} must be a string in ISO 8601 format. Instead was "${value}".`); + } + return value; +} +function serializeSequenceType(serializer, mapper, object, objectName, isXml, options) { + if (!Array.isArray(object)) + throw new Error(`${objectName} must be of type Array.`); + let elementType = mapper.type.element; + if (!elementType || typeof elementType != "object") + throw new Error(`"element" metadata for an Array must be defined in the mapper and it must be of type "object" in ${objectName}.`); + elementType.type.name === "Composite" && elementType.type.className && (elementType = serializer.modelMappers[elementType.type.className] ?? elementType); + let tempArray = []; + for (let i = 0; i < object.length; i++) { + let serializedValue = serializer.serialize(elementType, object[i], objectName, options); + if (isXml && elementType.xmlNamespace) { + let xmlnsKey = elementType.xmlNamespacePrefix ? `xmlns:${elementType.xmlNamespacePrefix}` : "xmlns"; + elementType.type.name === "Composite" ? (tempArray[i] = { ...serializedValue }, tempArray[i]["$"] = { [xmlnsKey]: elementType.xmlNamespace }) : (tempArray[i] = {}, tempArray[i][options.xml.xmlCharKey] = serializedValue, tempArray[i]["$"] = { [xmlnsKey]: elementType.xmlNamespace }); + } else + tempArray[i] = serializedValue; + } + return tempArray; +} +function serializeDictionaryType(serializer, mapper, object, objectName, isXml, options) { + if (typeof object != "object") + throw new Error(`${objectName} must be of type object.`); + let valueType = mapper.type.value; + if (!valueType || typeof valueType != "object") + throw new Error(`"value" metadata for a Dictionary must be defined in the mapper and it must of type "object" in ${objectName}.`); + let tempDictionary = {}; + for (let key of Object.keys(object)) { + let serializedValue = serializer.serialize(valueType, object[key], objectName, options); + tempDictionary[key] = getXmlObjectValue(valueType, serializedValue, isXml, options); + } + if (isXml && mapper.xmlNamespace) { + let xmlnsKey = mapper.xmlNamespacePrefix ? `xmlns:${mapper.xmlNamespacePrefix}` : "xmlns", result = tempDictionary; + return result["$"] = { [xmlnsKey]: mapper.xmlNamespace }, result; + } + return tempDictionary; +} +function resolveAdditionalProperties(serializer, mapper, objectName) { + let additionalProperties = mapper.type.additionalProperties; + return !additionalProperties && mapper.type.className ? resolveReferencedMapper(serializer, mapper, objectName)?.type.additionalProperties : additionalProperties; +} +function resolveReferencedMapper(serializer, mapper, objectName) { + let className = mapper.type.className; + if (!className) + throw new Error(`Class name for model "${objectName}" is not provided in the mapper "${JSON.stringify(mapper, void 0, 2)}".`); + return serializer.modelMappers[className]; +} +function resolveModelProperties(serializer, mapper, objectName) { + let modelProps = mapper.type.modelProperties; + if (!modelProps) { + let modelMapper = resolveReferencedMapper(serializer, mapper, objectName); + if (!modelMapper) + throw new Error(`mapper() cannot be null or undefined for model "${mapper.type.className}".`); + if (modelProps = modelMapper?.type.modelProperties, !modelProps) + throw new Error(`modelProperties cannot be null or undefined in the mapper "${JSON.stringify(modelMapper)}" of type "${mapper.type.className}" for object "${objectName}".`); + } + return modelProps; +} +function serializeCompositeType(serializer, mapper, object, objectName, isXml, options) { + if (getPolymorphicDiscriminatorRecursively(serializer, mapper) && (mapper = getPolymorphicMapper(serializer, mapper, object, "clientName")), object != null) { + let payload = {}, modelProps = resolveModelProperties(serializer, mapper, objectName); + for (let key of Object.keys(modelProps)) { + let propertyMapper = modelProps[key]; + if (propertyMapper.readOnly) + continue; + let propName3, parentObject = payload; + if (serializer.isXML) + propertyMapper.xmlIsWrapped ? propName3 = propertyMapper.xmlName : propName3 = propertyMapper.xmlElementName || propertyMapper.xmlName; + else { + let paths = splitSerializeName(propertyMapper.serializedName); + propName3 = paths.pop(); + for (let pathName of paths) { + let childObject = parentObject[pathName]; + childObject == null && (object[key] !== void 0 && object[key] !== null || propertyMapper.defaultValue !== void 0) && (parentObject[pathName] = {}), parentObject = parentObject[pathName]; + } + } + if (parentObject != null) { + if (isXml && mapper.xmlNamespace) { + let xmlnsKey = mapper.xmlNamespacePrefix ? `xmlns:${mapper.xmlNamespacePrefix}` : "xmlns"; + parentObject["$"] = { + ...parentObject["$"], + [xmlnsKey]: mapper.xmlNamespace + }; + } + let propertyObjectName = propertyMapper.serializedName !== "" ? objectName + "." + propertyMapper.serializedName : objectName, toSerialize = object[key], polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper); + polymorphicDiscriminator && polymorphicDiscriminator.clientName === key && toSerialize == null && (toSerialize = mapper.serializedName); + let serializedValue = serializer.serialize(propertyMapper, toSerialize, propertyObjectName, options); + if (serializedValue !== void 0 && propName3 !== void 0 && propName3 !== null) { + let value = getXmlObjectValue(propertyMapper, serializedValue, isXml, options); + isXml && propertyMapper.xmlIsAttribute ? (parentObject["$"] = parentObject["$"] || {}, parentObject["$"][propName3] = serializedValue) : isXml && propertyMapper.xmlIsWrapped ? parentObject[propName3] = { [propertyMapper.xmlElementName]: value } : parentObject[propName3] = value; + } + } + } + let additionalPropertiesMapper = resolveAdditionalProperties(serializer, mapper, objectName); + if (additionalPropertiesMapper) { + let propNames = Object.keys(modelProps); + for (let clientPropName of Object.keys(object)) + propNames.every((pn) => pn !== clientPropName) && Object.defineProperty(payload, clientPropName, { + value: serializer.serialize(additionalPropertiesMapper, object[clientPropName], objectName + '["' + clientPropName + '"]', options), + enumerable: !0, + configurable: !0, + writable: !0 + }); + } + return payload; + } + return object; +} +function getXmlObjectValue(propertyMapper, serializedValue, isXml, options) { + if (!isXml || !propertyMapper.xmlNamespace) + return serializedValue; + let xmlNamespace = { [propertyMapper.xmlNamespacePrefix ? `xmlns:${propertyMapper.xmlNamespacePrefix}` : "xmlns"]: propertyMapper.xmlNamespace }; + if (["Composite"].includes(propertyMapper.type.name)) { + if (serializedValue["$"]) + return serializedValue; + { + let result2 = { ...serializedValue }; + return result2["$"] = xmlNamespace, result2; + } + } + let result = {}; + return result[options.xml.xmlCharKey] = serializedValue, result["$"] = xmlNamespace, result; +} +function isSpecialXmlProperty(propertyName, options) { + return ["$", options.xml.xmlCharKey].includes(propertyName); +} +function deserializeCompositeType(serializer, mapper, responseBody, objectName, options) { + let xmlCharKey = options.xml.xmlCharKey ?? "_"; + getPolymorphicDiscriminatorRecursively(serializer, mapper) && (mapper = getPolymorphicMapper(serializer, mapper, responseBody, "serializedName")); + let modelProps = resolveModelProperties(serializer, mapper, objectName), instance = {}, handledPropertyNames = []; + for (let key of Object.keys(modelProps)) { + let propertyMapper = modelProps[key], paths = splitSerializeName(modelProps[key].serializedName); + handledPropertyNames.push(paths[0]); + let { serializedName, xmlName, xmlElementName } = propertyMapper, propertyObjectName = objectName; + serializedName !== "" && serializedName !== void 0 && (propertyObjectName = objectName + "." + serializedName); + let headerCollectionPrefix = propertyMapper.headerCollectionPrefix; + if (headerCollectionPrefix) { + let dictionary = {}; + for (let headerKey of Object.keys(responseBody)) + headerKey.startsWith(headerCollectionPrefix) && (dictionary[headerKey.substring(headerCollectionPrefix.length)] = serializer.deserialize(propertyMapper.type.value, responseBody[headerKey], propertyObjectName, options)), handledPropertyNames.push(headerKey); + instance[key] = dictionary; + } else if (serializer.isXML) + if (propertyMapper.xmlIsAttribute && responseBody["$"]) + instance[key] = serializer.deserialize(propertyMapper, responseBody["$"][xmlName], propertyObjectName, options); + else if (propertyMapper.xmlIsMsText) + responseBody[xmlCharKey] !== void 0 ? instance[key] = responseBody[xmlCharKey] : typeof responseBody == "string" && (instance[key] = responseBody); + else { + let propertyName = xmlElementName || xmlName || serializedName; + if (propertyMapper.xmlIsWrapped) { + let elementList = responseBody[xmlName]?.[xmlElementName] ?? []; + Object.defineProperty(instance, key, { + value: serializer.deserialize(propertyMapper, elementList, propertyObjectName, options), + enumerable: !0, + configurable: !0, + writable: !0 + }), handledPropertyNames.push(xmlName); + } else { + let property = responseBody[propertyName]; + instance[key] = serializer.deserialize(propertyMapper, property, propertyObjectName, options), handledPropertyNames.push(propertyName); + } + } + else { + let propertyInstance, res = responseBody, steps = 0; + for (let item of paths) { + if (!res) + break; + steps++, res = res[item]; + } + res === null && steps < paths.length && (res = void 0), propertyInstance = res; + let polymorphicDiscriminator = mapper.type.polymorphicDiscriminator; + polymorphicDiscriminator && key === polymorphicDiscriminator.clientName && propertyInstance == null && (propertyInstance = mapper.serializedName); + let serializedValue; + if (Array.isArray(responseBody[key]) && modelProps[key].serializedName === "") { + propertyInstance = responseBody[key]; + let arrayInstance = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options); + for (let [k, v] of Object.entries(instance)) + Object.prototype.hasOwnProperty.call(arrayInstance, k) || (arrayInstance[k] = v); + instance = arrayInstance; + } else (propertyInstance !== void 0 || propertyMapper.defaultValue !== void 0) && (serializedValue = serializer.deserialize(propertyMapper, propertyInstance, propertyObjectName, options), instance[key] = serializedValue); + } + } + let additionalPropertiesMapper = mapper.type.additionalProperties; + if (additionalPropertiesMapper) { + let isAdditionalProperty = (responsePropName) => { + for (let clientPropName of Object.keys(modelProps)) + if (splitSerializeName(modelProps[clientPropName].serializedName)[0] === responsePropName) + return !1; + return !0; + }; + for (let responsePropName of Object.keys(responseBody)) + if (isAdditionalProperty(responsePropName)) { + let deserializedValue = serializer.deserialize(additionalPropertiesMapper, responseBody[responsePropName], objectName + '["' + responsePropName + '"]', options); + Object.defineProperty(instance, responsePropName, { + value: deserializedValue, + enumerable: !0, + configurable: !0, + writable: !0 + }); + } + } else if (responseBody && !options.ignoreUnknownProperties) + for (let key of Object.keys(responseBody)) + instance[key] === void 0 && !handledPropertyNames.includes(key) && !isSpecialXmlProperty(key, options) && Object.defineProperty(instance, key, { + value: responseBody[key], + enumerable: !0, + configurable: !0, + writable: !0 + }); + return instance; +} +function deserializeDictionaryType(serializer, mapper, responseBody, objectName, options) { + let value = mapper.type.value; + if (!value || typeof value != "object") + throw new Error(`"value" metadata for a Dictionary must be defined in the mapper and it must of type "object" in ${objectName}`); + if (responseBody) { + let tempDictionary = {}; + for (let key of Object.keys(responseBody)) + tempDictionary[key] = serializer.deserialize(value, responseBody[key], objectName, options); + return tempDictionary; + } + return responseBody; +} +function deserializeSequenceType(serializer, mapper, responseBody, objectName, options) { + let element = mapper.type.element; + if (!element || typeof element != "object") + throw new Error(`"element" metadata for an Array must be defined in the mapper and it must be of type "object" in ${objectName}`); + if (responseBody) { + Array.isArray(responseBody) || (responseBody = [responseBody]), element.type.name === "Composite" && element.type.className && (element = serializer.modelMappers[element.type.className] ?? element); + let tempArray = []; + for (let i = 0; i < responseBody.length; i++) + tempArray[i] = serializer.deserialize(element, responseBody[i], `${objectName}[${i}]`, options); + return tempArray; + } + return responseBody; +} +function getIndexDiscriminator(discriminators, discriminatorValue, typeName) { + let typeNamesToCheck = [typeName]; + for (; typeNamesToCheck.length; ) { + let currentName = typeNamesToCheck.shift(), indexDiscriminator = discriminatorValue === currentName ? discriminatorValue : currentName + "." + discriminatorValue; + if (Object.prototype.hasOwnProperty.call(discriminators, indexDiscriminator)) + return discriminators[indexDiscriminator]; + for (let [name, mapper] of Object.entries(discriminators)) + name.startsWith(currentName + ".") && mapper.type.uberParent === currentName && mapper.type.className && typeNamesToCheck.push(mapper.type.className); + } +} +function getPolymorphicMapper(serializer, mapper, object, polymorphicPropertyName) { + let polymorphicDiscriminator = getPolymorphicDiscriminatorRecursively(serializer, mapper); + if (polymorphicDiscriminator) { + let discriminatorName = polymorphicDiscriminator[polymorphicPropertyName]; + if (discriminatorName) { + polymorphicPropertyName === "serializedName" && (discriminatorName = discriminatorName.replace(/\\/gi, "")); + let discriminatorValue = object[discriminatorName], typeName = mapper.type.uberParent ?? mapper.type.className; + if (typeof discriminatorValue == "string" && typeName) { + let polymorphicMapper = getIndexDiscriminator(serializer.modelMappers.discriminators, discriminatorValue, typeName); + polymorphicMapper && (mapper = polymorphicMapper); + } + } + } + return mapper; +} +function getPolymorphicDiscriminatorRecursively(serializer, mapper) { + return mapper.type.polymorphicDiscriminator || getPolymorphicDiscriminatorSafely(serializer, mapper.type.uberParent) || getPolymorphicDiscriminatorSafely(serializer, mapper.type.className); +} +function getPolymorphicDiscriminatorSafely(serializer, typeName) { + return typeName && serializer.modelMappers[typeName] && serializer.modelMappers[typeName].type.polymorphicDiscriminator; +} +var MapperTypeNames = { + Base64Url: "Base64Url", + Boolean: "Boolean", + ByteArray: "ByteArray", + Composite: "Composite", + Date: "Date", + DateTime: "DateTime", + DateTimeRfc1123: "DateTimeRfc1123", + Dictionary: "Dictionary", + Enum: "Enum", + Number: "Number", + Object: "Object", + Sequence: "Sequence", + String: "String", + Stream: "Stream", + TimeSpan: "TimeSpan", + UnixTime: "UnixTime" +}; + +// node_modules/@azure/core-client/dist/esm/state.js +var import_state_cjs2 = __toESM(require_state_cjs2(), 1), state2 = import_state_cjs2.state; + +// node_modules/@azure/core-client/dist/esm/operationHelpers.js +function getOperationArgumentValueFromParameter(operationArguments, parameter, fallbackObject) { + let parameterPath = parameter.parameterPath, parameterMapper = parameter.mapper, value; + if (typeof parameterPath == "string" && (parameterPath = [parameterPath]), Array.isArray(parameterPath)) { + if (parameterPath.length > 0) + if (parameterMapper.isConstant) + value = parameterMapper.defaultValue; + else { + let propertySearchResult = getPropertyFromParameterPath(operationArguments, parameterPath); + !propertySearchResult.propertyFound && fallbackObject && (propertySearchResult = getPropertyFromParameterPath(fallbackObject, parameterPath)); + let useDefaultValue = !1; + propertySearchResult.propertyFound || (useDefaultValue = parameterMapper.required || parameterPath[0] === "options" && parameterPath.length === 2), value = useDefaultValue ? parameterMapper.defaultValue : propertySearchResult.propertyValue; + } + } else { + parameterMapper.required && (value = {}); + for (let [propertyName, propertyPath] of Object.entries(parameterPath)) { + let propertyMapper = parameterMapper.type.modelProperties[propertyName], propertyValue = getOperationArgumentValueFromParameter(operationArguments, { + parameterPath: propertyPath, + mapper: propertyMapper + }, fallbackObject); + propertyValue !== void 0 && (value || (value = {}), Object.defineProperty(value, propertyName, { + value: propertyValue, + enumerable: !0, + configurable: !0, + writable: !0 + })); + } + } + return value; +} +function getPropertyFromParameterPath(parent, parameterPath) { + let result = { propertyFound: !1 }, i = 0; + for (; i < parameterPath.length; ++i) { + let parameterPathPart = parameterPath[i]; + if (parent && parameterPathPart in parent) + parent = parent[parameterPathPart]; + else + break; + } + return i === parameterPath.length && (result.propertyValue = parent, result.propertyFound = !0), result; +} +var originalRequestSymbol = /* @__PURE__ */ Symbol.for("@azure/core-client original request"); +function hasOriginalRequest(request) { + return originalRequestSymbol in request; +} +function getOperationRequestInfo(request) { + if (hasOriginalRequest(request)) + return getOperationRequestInfo(request[originalRequestSymbol]); + let info3 = state2.operationRequestMap.get(request); + return info3 || (info3 = {}, state2.operationRequestMap.set(request, info3)), info3; +} + +// node_modules/@azure/core-client/dist/esm/deserializationPolicy.js +var defaultJsonContentTypes = ["application/json", "text/json"], defaultXmlContentTypes = ["application/xml", "application/atom+xml"], deserializationPolicyName = "deserializationPolicy"; +function deserializationPolicy(options = {}) { + let jsonContentTypes = options.expectedContentTypes?.json ?? defaultJsonContentTypes, xmlContentTypes = options.expectedContentTypes?.xml ?? defaultXmlContentTypes, parseXML2 = options.parseXML, serializerOptions = options.serializerOptions, updatedOptions = { + xml: { + rootName: serializerOptions?.xml.rootName ?? "", + includeRoot: serializerOptions?.xml.includeRoot ?? !1, + xmlCharKey: serializerOptions?.xml.xmlCharKey ?? "_" + } + }; + return { + name: deserializationPolicyName, + async sendRequest(request, next) { + let response = await next(request); + return deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, updatedOptions, parseXML2); + } + }; +} +function getOperationResponseMap(parsedResponse) { + let result, request = parsedResponse.request, operationInfo = getOperationRequestInfo(request), operationSpec = operationInfo?.operationSpec; + return operationSpec && (operationInfo?.operationResponseGetter ? result = operationInfo?.operationResponseGetter(operationSpec, parsedResponse) : result = operationSpec.responses[parsedResponse.status]), result; +} +function shouldDeserializeResponse(parsedResponse) { + let request = parsedResponse.request, shouldDeserialize = getOperationRequestInfo(request)?.shouldDeserialize, result; + return shouldDeserialize === void 0 ? result = !0 : typeof shouldDeserialize == "boolean" ? result = shouldDeserialize : result = shouldDeserialize(parsedResponse), result; +} +async function deserializeResponseBody(jsonContentTypes, xmlContentTypes, response, options, parseXML2) { + let parsedResponse = await parse(jsonContentTypes, xmlContentTypes, response, options, parseXML2); + if (!shouldDeserializeResponse(parsedResponse)) + return parsedResponse; + let operationSpec = getOperationRequestInfo(parsedResponse.request)?.operationSpec; + if (!operationSpec || !operationSpec.responses) + return parsedResponse; + let responseSpec = getOperationResponseMap(parsedResponse), { error: error3, shouldReturnResponse } = handleErrorResponse(parsedResponse, operationSpec, responseSpec, options); + if (error3) + throw error3; + if (shouldReturnResponse) + return parsedResponse; + if (responseSpec) { + if (responseSpec.bodyMapper) { + let valueToDeserialize = parsedResponse.parsedBody; + operationSpec.isXML && responseSpec.bodyMapper.type.name === MapperTypeNames.Sequence && (valueToDeserialize = typeof valueToDeserialize == "object" ? valueToDeserialize[responseSpec.bodyMapper.xmlElementName] : []); + try { + parsedResponse.parsedBody = operationSpec.serializer.deserialize(responseSpec.bodyMapper, valueToDeserialize, "operationRes.parsedBody", options); + } catch (deserializeError) { + throw new RestError2(`Error ${deserializeError} occurred in deserializing the responseBody - ${parsedResponse.bodyAsText}`, { + statusCode: parsedResponse.status, + request: parsedResponse.request, + response: parsedResponse + }); + } + } else operationSpec.httpMethod === "HEAD" && (parsedResponse.parsedBody = response.status >= 200 && response.status < 300); + responseSpec.headersMapper && (parsedResponse.parsedHeaders = operationSpec.serializer.deserialize(responseSpec.headersMapper, parsedResponse.headers.toJSON(), "operationRes.parsedHeaders", { xml: {}, ignoreUnknownProperties: !0 })); + } + return parsedResponse; +} +function isOperationSpecEmpty(operationSpec) { + let expectedStatusCodes = Object.keys(operationSpec.responses); + return expectedStatusCodes.length === 0 || expectedStatusCodes.length === 1 && expectedStatusCodes[0] === "default"; +} +function handleErrorResponse(parsedResponse, operationSpec, responseSpec, options) { + let isSuccessByStatus = 200 <= parsedResponse.status && parsedResponse.status < 300; + if (isOperationSpecEmpty(operationSpec) ? isSuccessByStatus : !!responseSpec) + if (responseSpec) { + if (!responseSpec.isError) + return { error: null, shouldReturnResponse: !1 }; + } else + return { error: null, shouldReturnResponse: !1 }; + let errorResponseSpec = responseSpec ?? operationSpec.responses.default, initialErrorMessage = parsedResponse.request.streamResponseStatusCodes?.has(parsedResponse.status) ? `Unexpected status code: ${parsedResponse.status}` : parsedResponse.bodyAsText, error3 = new RestError2(initialErrorMessage, { + statusCode: parsedResponse.status, + request: parsedResponse.request, + response: parsedResponse + }); + if (!errorResponseSpec && !(parsedResponse.parsedBody?.error?.code && parsedResponse.parsedBody?.error?.message)) + throw error3; + let defaultBodyMapper = errorResponseSpec?.bodyMapper, defaultHeadersMapper = errorResponseSpec?.headersMapper; + try { + if (parsedResponse.parsedBody) { + let parsedBody = parsedResponse.parsedBody, deserializedError; + if (defaultBodyMapper) { + let valueToDeserialize = parsedBody; + if (operationSpec.isXML && defaultBodyMapper.type.name === MapperTypeNames.Sequence) { + valueToDeserialize = []; + let elementName = defaultBodyMapper.xmlElementName; + typeof parsedBody == "object" && elementName && (valueToDeserialize = parsedBody[elementName]); + } + deserializedError = operationSpec.serializer.deserialize(defaultBodyMapper, valueToDeserialize, "error.response.parsedBody", options); + } + let internalError = parsedBody.error || deserializedError || parsedBody; + error3.code = internalError.code, internalError.message && (error3.message = internalError.message), defaultBodyMapper && (error3.response.parsedBody = deserializedError); + } + parsedResponse.headers && defaultHeadersMapper && (error3.response.parsedHeaders = operationSpec.serializer.deserialize(defaultHeadersMapper, parsedResponse.headers.toJSON(), "operationRes.parsedHeaders")); + } catch (defaultError) { + error3.message = `Error "${defaultError.message}" occurred in deserializing the responseBody - "${parsedResponse.bodyAsText}" for the default response.`; + } + return { error: error3, shouldReturnResponse: !1 }; +} +async function parse(jsonContentTypes, xmlContentTypes, operationResponse, opts, parseXML2) { + if (!operationResponse.request.streamResponseStatusCodes?.has(operationResponse.status) && operationResponse.bodyAsText) { + let text = operationResponse.bodyAsText, contentType2 = operationResponse.headers.get("Content-Type") || "", contentComponents = contentType2 ? contentType2.split(";").map((component) => component.toLowerCase()) : []; + try { + if (contentComponents.length === 0 || contentComponents.some((component) => jsonContentTypes.indexOf(component) !== -1)) + return operationResponse.parsedBody = JSON.parse(text), operationResponse; + if (contentComponents.some((component) => xmlContentTypes.indexOf(component) !== -1)) { + if (!parseXML2) + throw new Error("Parsing XML not supported."); + let body2 = await parseXML2(text, opts.xml); + return operationResponse.parsedBody = body2, operationResponse; + } + } catch (err) { + let msg = `Error "${err}" occurred while parsing the response body - ${operationResponse.bodyAsText}.`, errCode = err.code || RestError2.PARSE_ERROR; + throw new RestError2(msg, { + code: errCode, + statusCode: operationResponse.status, + request: operationResponse.request, + response: operationResponse + }); + } + } + return operationResponse; +} + +// node_modules/@azure/core-client/dist/esm/interfaceHelpers.js +function getStreamingResponseStatusCodes(operationSpec) { + let result = /* @__PURE__ */ new Set(); + for (let [statusCode, operationResponse] of Object.entries(operationSpec.responses)) + operationResponse.bodyMapper && operationResponse.bodyMapper.type.name === MapperTypeNames.Stream && result.add(Number(statusCode)); + return result; +} +function getPathStringFromParameter(parameter) { + let { parameterPath, mapper } = parameter, result; + return typeof parameterPath == "string" ? result = parameterPath : Array.isArray(parameterPath) ? result = parameterPath.join(".") : result = mapper.serializedName, result; +} + +// node_modules/@azure/core-client/dist/esm/serializationPolicy.js +var serializationPolicyName = "serializationPolicy"; +function serializationPolicy(options = {}) { + let stringifyXML2 = options.stringifyXML; + return { + name: serializationPolicyName, + sendRequest(request, next) { + let operationInfo = getOperationRequestInfo(request), operationSpec = operationInfo?.operationSpec, operationArguments = operationInfo?.operationArguments; + return operationSpec && operationArguments && (serializeHeaders(request, operationArguments, operationSpec), serializeRequestBody(request, operationArguments, operationSpec, stringifyXML2)), next(request); + } + }; +} +function serializeHeaders(request, operationArguments, operationSpec) { + if (operationSpec.headerParameters) + for (let headerParameter of operationSpec.headerParameters) { + let headerValue = getOperationArgumentValueFromParameter(operationArguments, headerParameter); + if (headerValue != null || headerParameter.mapper.required) { + headerValue = operationSpec.serializer.serialize(headerParameter.mapper, headerValue, getPathStringFromParameter(headerParameter)); + let headerCollectionPrefix = headerParameter.mapper.headerCollectionPrefix; + if (headerCollectionPrefix) + for (let key of Object.keys(headerValue)) + request.headers.set(headerCollectionPrefix + key, headerValue[key]); + else + request.headers.set(headerParameter.mapper.serializedName || getPathStringFromParameter(headerParameter), headerValue); + } + } + let customHeaders = operationArguments.options?.requestOptions?.customHeaders; + if (customHeaders) + for (let customHeaderName of Object.keys(customHeaders)) + request.headers.set(customHeaderName, customHeaders[customHeaderName]); +} +function serializeRequestBody(request, operationArguments, operationSpec, stringifyXML2 = function() { + throw new Error("XML serialization unsupported!"); +}) { + let serializerOptions = operationArguments.options?.serializerOptions, updatedOptions = { + xml: { + rootName: serializerOptions?.xml.rootName ?? "", + includeRoot: serializerOptions?.xml.includeRoot ?? !1, + xmlCharKey: serializerOptions?.xml.xmlCharKey ?? "_" + } + }, xmlCharKey = updatedOptions.xml.xmlCharKey; + if (operationSpec.requestBody && operationSpec.requestBody.mapper) { + request.body = getOperationArgumentValueFromParameter(operationArguments, operationSpec.requestBody); + let bodyMapper = operationSpec.requestBody.mapper, { required, serializedName, xmlName, xmlElementName, xmlNamespace, xmlNamespacePrefix, nullable } = bodyMapper, typeName = bodyMapper.type.name; + try { + if (request.body !== void 0 && request.body !== null || nullable && request.body === null || required) { + let requestBodyParameterPathString = getPathStringFromParameter(operationSpec.requestBody); + request.body = operationSpec.serializer.serialize(bodyMapper, request.body, requestBodyParameterPathString, updatedOptions); + let isStream = typeName === MapperTypeNames.Stream; + if (operationSpec.isXML) { + let xmlnsKey = xmlNamespacePrefix ? `xmlns:${xmlNamespacePrefix}` : "xmlns", value = getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, request.body, updatedOptions); + typeName === MapperTypeNames.Sequence ? request.body = stringifyXML2(prepareXMLRootList(value, xmlElementName || xmlName || serializedName, xmlnsKey, xmlNamespace), { rootName: xmlName || serializedName, xmlCharKey }) : isStream || (request.body = stringifyXML2(value, { + rootName: xmlName || serializedName, + xmlCharKey + })); + } else { + if (typeName === MapperTypeNames.String && (operationSpec.contentType?.match("text/plain") || operationSpec.mediaType === "text")) + return; + isStream || (request.body = JSON.stringify(request.body)); + } + } + } catch (error3) { + throw new Error(`Error "${error3.message}" occurred in serializing the payload - ${JSON.stringify(serializedName, void 0, " ")}.`); + } + } else if (operationSpec.formDataParameters && operationSpec.formDataParameters.length > 0) { + request.formData = {}; + for (let formDataParameter of operationSpec.formDataParameters) { + let formDataParameterValue = getOperationArgumentValueFromParameter(operationArguments, formDataParameter); + if (formDataParameterValue != null) { + let formDataParameterPropertyName = formDataParameter.mapper.serializedName || getPathStringFromParameter(formDataParameter); + request.formData[formDataParameterPropertyName] = operationSpec.serializer.serialize(formDataParameter.mapper, formDataParameterValue, getPathStringFromParameter(formDataParameter), updatedOptions); + } + } + } +} +function getXmlValueWithNamespace(xmlNamespace, xmlnsKey, typeName, serializedValue, options) { + if (xmlNamespace && !["Composite", "Sequence", "Dictionary"].includes(typeName)) { + let result = {}; + return result[options.xml.xmlCharKey] = serializedValue, result["$"] = { [xmlnsKey]: xmlNamespace }, result; + } + return serializedValue; +} +function prepareXMLRootList(obj, elementName, xmlNamespaceKey, xmlNamespace) { + if (Array.isArray(obj) || (obj = [obj]), !xmlNamespaceKey || !xmlNamespace) + return { [elementName]: obj }; + let result = { [elementName]: obj }; + return result["$"] = { [xmlNamespaceKey]: xmlNamespace }, result; +} + +// node_modules/@azure/core-client/dist/esm/pipeline.js +function createClientPipeline(options = {}) { + let pipeline5 = createPipelineFromOptions2(options ?? {}); + return options.credentialOptions && pipeline5.addPolicy(bearerTokenAuthenticationPolicy({ + credential: options.credentialOptions.credential, + scopes: options.credentialOptions.credentialScopes + })), pipeline5.addPolicy(serializationPolicy(options.serializationOptions), { phase: "Serialize" }), pipeline5.addPolicy(deserializationPolicy(options.deserializationOptions), { + phase: "Deserialize" + }), pipeline5; +} + +// node_modules/@azure/core-client/dist/esm/httpClientCache.js +var cachedHttpClient; +function getCachedDefaultHttpClient() { + return cachedHttpClient || (cachedHttpClient = createDefaultHttpClient2()), cachedHttpClient; +} + +// node_modules/@azure/core-client/dist/esm/urlHelpers.js +var CollectionFormatToDelimiterMap = { + CSV: ",", + SSV: " ", + Multi: "Multi", + TSV: " ", + Pipes: "|" +}; +function getRequestUrl(baseUri, operationSpec, operationArguments, fallbackObject) { + let urlReplacements = calculateUrlReplacements(operationSpec, operationArguments, fallbackObject), isAbsolutePath = !1, requestUrl = replaceAll(baseUri, urlReplacements); + if (operationSpec.path) { + let path12 = replaceAll(operationSpec.path, urlReplacements); + operationSpec.path === "/{nextLink}" && path12.startsWith("/") && (path12 = path12.substring(1)), isAbsoluteUrl(path12) ? (requestUrl = path12, isAbsolutePath = !0) : requestUrl = appendPath(requestUrl, path12); + } + let { queryParams, sequenceParams } = calculateQueryParameters(operationSpec, operationArguments, fallbackObject); + return requestUrl = appendQueryParams(requestUrl, queryParams, sequenceParams, isAbsolutePath), requestUrl; +} +function replaceAll(input, replacements) { + let result = input; + for (let [searchValue, replaceValue] of replacements) + result = result.split(searchValue).join(replaceValue); + return result; +} +function calculateUrlReplacements(operationSpec, operationArguments, fallbackObject) { + let result = /* @__PURE__ */ new Map(); + if (operationSpec.urlParameters?.length) + for (let urlParameter of operationSpec.urlParameters) { + let urlParameterValue = getOperationArgumentValueFromParameter(operationArguments, urlParameter, fallbackObject), parameterPathString = getPathStringFromParameter(urlParameter); + urlParameterValue = operationSpec.serializer.serialize(urlParameter.mapper, urlParameterValue, parameterPathString), urlParameter.skipEncoding || (urlParameterValue = encodeURIComponent(urlParameterValue)), result.set(`{${urlParameter.mapper.serializedName || parameterPathString}}`, urlParameterValue); + } + return result; +} +function isAbsoluteUrl(url2) { + return url2.includes("://"); +} +function appendPath(url2, pathToAppend) { + if (!pathToAppend) + return url2; + let parsedUrl = new URL(url2), newPath = parsedUrl.pathname; + newPath.endsWith("/") || (newPath = `${newPath}/`), pathToAppend.startsWith("/") && (pathToAppend = pathToAppend.substring(1)); + let searchStart = pathToAppend.indexOf("?"); + if (searchStart !== -1) { + let path12 = pathToAppend.substring(0, searchStart), search = pathToAppend.substring(searchStart + 1); + newPath = newPath + path12, search && (parsedUrl.search = parsedUrl.search ? `${parsedUrl.search}&${search}` : search); + } else + newPath = newPath + pathToAppend; + return Object.assign(parsedUrl, { pathname: newPath }), parsedUrl.toString(); +} +function calculateQueryParameters(operationSpec, operationArguments, fallbackObject) { + let result = /* @__PURE__ */ new Map(), sequenceParams = /* @__PURE__ */ new Set(); + if (operationSpec.queryParameters?.length) + for (let queryParameter of operationSpec.queryParameters) { + queryParameter.mapper.type.name === "Sequence" && queryParameter.mapper.serializedName && sequenceParams.add(queryParameter.mapper.serializedName); + let queryParameterValue = getOperationArgumentValueFromParameter(operationArguments, queryParameter, fallbackObject); + if (queryParameterValue != null || queryParameter.mapper.required) { + queryParameterValue = operationSpec.serializer.serialize(queryParameter.mapper, queryParameterValue, getPathStringFromParameter(queryParameter)); + let delimiter3 = queryParameter.collectionFormat ? CollectionFormatToDelimiterMap[queryParameter.collectionFormat] : ""; + if (Array.isArray(queryParameterValue) && (queryParameterValue = queryParameterValue.map((item) => item ?? "")), queryParameter.collectionFormat === "Multi" && queryParameterValue.length === 0) + continue; + Array.isArray(queryParameterValue) && (queryParameter.collectionFormat === "SSV" || queryParameter.collectionFormat === "TSV") && (queryParameterValue = queryParameterValue.join(delimiter3)), queryParameter.skipEncoding || (Array.isArray(queryParameterValue) ? queryParameterValue = queryParameterValue.map((item) => encodeURIComponent(item)) : queryParameterValue = encodeURIComponent(queryParameterValue)), Array.isArray(queryParameterValue) && (queryParameter.collectionFormat === "CSV" || queryParameter.collectionFormat === "Pipes") && (queryParameterValue = queryParameterValue.join(delimiter3)), result.set(queryParameter.mapper.serializedName || getPathStringFromParameter(queryParameter), queryParameterValue); + } + } + return { + queryParams: result, + sequenceParams + }; +} +function simpleParseQueryParams(queryString) { + let result = /* @__PURE__ */ new Map(); + if (!queryString || queryString[0] !== "?") + return result; + queryString = queryString.slice(1); + let pairs = queryString.split("&"); + for (let pair of pairs) { + let [name, value] = pair.split("=", 2), existingValue = result.get(name); + existingValue ? Array.isArray(existingValue) ? existingValue.push(value) : result.set(name, [existingValue, value]) : result.set(name, value); + } + return result; +} +function appendQueryParams(url2, queryParams, sequenceParams, noOverwrite = !1) { + if (queryParams.size === 0) + return url2; + let parsedUrl = new URL(url2), combinedParams = simpleParseQueryParams(parsedUrl.search); + for (let [name, value] of queryParams) { + let existingValue = combinedParams.get(name); + if (Array.isArray(existingValue)) + if (Array.isArray(value)) { + existingValue.push(...value); + let valueSet = new Set(existingValue); + combinedParams.set(name, Array.from(valueSet)); + } else + existingValue.push(value); + else existingValue ? (Array.isArray(value) ? value.unshift(existingValue) : sequenceParams.has(name) && combinedParams.set(name, [existingValue, value]), noOverwrite || combinedParams.set(name, value)) : combinedParams.set(name, value); + } + let searchPieces = []; + for (let [name, value] of combinedParams) + if (typeof value == "string") + searchPieces.push(`${name}=${value}`); + else if (Array.isArray(value)) + for (let subValue of value) + searchPieces.push(`${name}=${subValue}`); + else + searchPieces.push(`${name}=${value}`); + return parsedUrl.search = searchPieces.length ? `?${searchPieces.join("&")}` : "", parsedUrl.toString(); +} + +// node_modules/@azure/core-client/dist/esm/log.js +var logger3 = createClientLogger2("core-client"); + +// node_modules/@azure/core-client/dist/esm/serviceClient.js +var ServiceClient = class { + /** + * If specified, this is the base URI that requests will be made against for this ServiceClient. + * If it is not specified, then all OperationSpecs must contain a baseUrl property. + */ + _endpoint; + /** + * The default request content type for the service. + * Used if no requestContentType is present on an OperationSpec. + */ + _requestContentType; + /** + * Set to true if the request is sent over HTTP instead of HTTPS + */ + _allowInsecureConnection; + /** + * The HTTP client that will be used to send requests. + */ + _httpClient; + /** + * The pipeline used by this client to make requests + */ + pipeline; + /** + * The ServiceClient constructor + * @param options - The service client options that govern the behavior of the client. + */ + constructor(options = {}) { + if (this._requestContentType = options.requestContentType, this._endpoint = options.endpoint ?? options.baseUri, options.baseUri && logger3.warning("The baseUri option for SDK Clients has been deprecated, please use endpoint instead."), this._allowInsecureConnection = options.allowInsecureConnection, this._httpClient = options.httpClient || getCachedDefaultHttpClient(), this.pipeline = options.pipeline || createDefaultPipeline2(options), options.additionalPolicies?.length) + for (let { policy, position } of options.additionalPolicies) { + let afterPhase = position === "perRetry" ? "Sign" : void 0; + this.pipeline.addPolicy(policy, { + afterPhase + }); + } + } + /** + * Send the provided httpRequest. + */ + sendRequest(request) { + return this.pipeline.sendRequest(this._httpClient, request); + } + /** + * Send an HTTP request that is populated using the provided OperationSpec. + * @typeParam T - The typed result of the request, based on the OperationSpec. + * @param operationArguments - The arguments that the HTTP request's templated values will be populated from. + * @param operationSpec - The OperationSpec to use to populate the httpRequest. + */ + async sendOperationRequest(operationArguments, operationSpec) { + let endpoint = operationSpec.baseUrl || this._endpoint; + if (!endpoint) + throw new Error("If operationSpec.baseUrl is not specified, then the ServiceClient must have a endpoint string property that contains the base URL to use."); + let url2 = getRequestUrl(endpoint, operationSpec, operationArguments, this), request = createPipelineRequest2({ + url: url2 + }); + request.method = operationSpec.httpMethod; + let operationInfo = getOperationRequestInfo(request); + operationInfo.operationSpec = operationSpec, operationInfo.operationArguments = operationArguments; + let contentType2 = operationSpec.contentType || this._requestContentType; + contentType2 && operationSpec.requestBody && request.headers.set("Content-Type", contentType2); + let options = operationArguments.options; + if (options) { + let requestOptions = options.requestOptions; + requestOptions && (requestOptions.timeout && (request.timeout = requestOptions.timeout), requestOptions.onUploadProgress && (request.onUploadProgress = requestOptions.onUploadProgress), requestOptions.onDownloadProgress && (request.onDownloadProgress = requestOptions.onDownloadProgress), requestOptions.shouldDeserialize !== void 0 && (operationInfo.shouldDeserialize = requestOptions.shouldDeserialize), requestOptions.allowInsecureConnection && (request.allowInsecureConnection = !0)), options.abortSignal && (request.abortSignal = options.abortSignal), options.tracingOptions && (request.tracingOptions = options.tracingOptions); + } + this._allowInsecureConnection && (request.allowInsecureConnection = !0), request.streamResponseStatusCodes === void 0 && (request.streamResponseStatusCodes = getStreamingResponseStatusCodes(operationSpec)); + try { + let rawResponse = await this.sendRequest(request), flatResponse = flattenResponse(rawResponse, operationSpec.responses[rawResponse.status]); + return options?.onResponse && options.onResponse(rawResponse, flatResponse), flatResponse; + } catch (error3) { + if (typeof error3 == "object" && error3?.response) { + let rawResponse = error3.response, flatResponse = flattenResponse(rawResponse, operationSpec.responses[error3.statusCode] || operationSpec.responses.default); + error3.details = flatResponse, options?.onResponse && options.onResponse(rawResponse, flatResponse, error3); + } + throw error3; + } + } +}; +function createDefaultPipeline2(options) { + let credentialScopes = getCredentialScopes(options), credentialOptions = options.credential && credentialScopes ? { credentialScopes, credential: options.credential } : void 0; + return createClientPipeline({ + ...options, + credentialOptions + }); +} +function getCredentialScopes(options) { + if (options.credentialScopes) + return options.credentialScopes; + if (options.endpoint) + return `${options.endpoint}/.default`; + if (options.baseUri) + return `${options.baseUri}/.default`; + if (options.credential) + throw new Error("When using credentials, the ServiceClientOptions must contain either a endpoint or a credentialScopes. Unable to create a bearerTokenAuthenticationPolicy"); +} + +// node_modules/@azure/core-client/dist/esm/authorizeRequestOnTenantChallenge.js +var Constants = { + DefaultScope: "/.default", + /** + * Defines constants for use with HTTP headers. + */ + HeaderConstants: { + /** + * The Authorization header. + */ + AUTHORIZATION: "authorization" + } +}; +function isUuid(text) { + 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(text); +} +var authorizeRequestOnTenantChallenge = async (challengeOptions) => { + let requestOptions = requestToOptions(challengeOptions.request), challenge = getChallenge(challengeOptions.response); + if (challenge) { + let challengeInfo = parseChallenge(challenge), challengeScopes = buildScopes(challengeOptions, challengeInfo), tenantId = extractTenantId(challengeInfo); + if (!tenantId) + return !1; + let accessToken = await challengeOptions.getAccessToken(challengeScopes, { + ...requestOptions, + tenantId + }); + return accessToken ? (challengeOptions.request.headers.set(Constants.HeaderConstants.AUTHORIZATION, `${accessToken.tokenType ?? "Bearer"} ${accessToken.token}`), !0) : !1; + } + return !1; +}; +function extractTenantId(challengeInfo) { + let tenantId = new URL(challengeInfo.authorization_uri).pathname.split("/")[1]; + if (tenantId && isUuid(tenantId)) + return tenantId; +} +function buildScopes(challengeOptions, challengeInfo) { + if (!challengeInfo.resource_id) + return challengeOptions.scopes; + let challengeScopes = new URL(challengeInfo.resource_id), scope = new URL(Constants.DefaultScope, challengeScopes.origin).toString(); + return scope === "https://disk.azure.com/.default" && (scope = "https://disk.azure.com//.default"), [scope]; +} +function getChallenge(response) { + let challenge = response.headers.get("WWW-Authenticate"); + if (response.status === 401 && challenge) + return challenge; +} +function parseChallenge(challenge) { + return `${challenge.slice(7).trim()} `.split(" ").filter((x) => x).map((keyValue) => (([key, value]) => ({ [key]: value }))(keyValue.trim().split("="))).reduce((a, b) => ({ ...a, ...b }), {}); +} +function requestToOptions(request) { + return { + abortSignal: request.abortSignal, + requestOptions: { + timeout: request.timeout + }, + tracingOptions: request.tracingOptions + }; +} + +// node_modules/@azure/core-http-compat/dist/esm/util.js +var originalRequestSymbol2 = /* @__PURE__ */ Symbol("Original PipelineRequest"), originalClientRequestSymbol = /* @__PURE__ */ Symbol.for("@azure/core-client original request"), passThroughProps = /* @__PURE__ */ new Set([ + "url", + "method", + "withCredentials", + "timeout", + "requestId", + "abortSignal", + "body", + "formData", + "onDownloadProgress", + "onUploadProgress", + "proxySettings", + "streamResponseStatusCodes", + "agent", + "requestOverrides" +]); +function toPipelineRequest(webResource, options = {}) { + let request = webResource[originalRequestSymbol2], headers = createHttpHeaders2(webResource.headers.toJson({ preserveCase: !0 })); + if (request) + return request.headers = headers, request; + { + let newRequest = createPipelineRequest2({ + url: webResource.url, + method: webResource.method, + headers, + withCredentials: webResource.withCredentials, + timeout: webResource.timeout, + requestId: webResource.requestId, + abortSignal: webResource.abortSignal, + body: webResource.body, + formData: webResource.formData, + disableKeepAlive: !!webResource.keepAlive, + onDownloadProgress: webResource.onDownloadProgress, + onUploadProgress: webResource.onUploadProgress, + proxySettings: webResource.proxySettings, + streamResponseStatusCodes: webResource.streamResponseStatusCodes, + agent: webResource.agent, + requestOverrides: webResource.requestOverrides + }); + return options.originalRequest && (newRequest[originalClientRequestSymbol] = options.originalRequest), newRequest; + } +} +function toWebResourceLike(request, options) { + let originalRequest = options?.originalRequest ?? request, webResource = { + url: request.url, + method: request.method, + headers: toHttpHeadersLike(request.headers), + withCredentials: request.withCredentials, + timeout: request.timeout, + requestId: request.headers.get("x-ms-client-request-id") || request.requestId, + abortSignal: request.abortSignal, + body: request.body, + formData: request.formData, + keepAlive: !!request.disableKeepAlive, + onDownloadProgress: request.onDownloadProgress, + onUploadProgress: request.onUploadProgress, + proxySettings: request.proxySettings, + streamResponseStatusCodes: request.streamResponseStatusCodes, + agent: request.agent, + requestOverrides: request.requestOverrides, + clone() { + throw new Error("Cannot clone a non-proxied WebResourceLike"); + }, + prepare() { + throw new Error("WebResourceLike.prepare() is not supported by @azure/core-http-compat"); + }, + validateRequestProperties() { + } + }; + return options?.createProxy ? new Proxy(webResource, { + get(target, prop, receiver) { + return prop === originalRequestSymbol2 ? request : prop === "clone" ? () => toWebResourceLike(toPipelineRequest(webResource, { originalRequest }), { + createProxy: !0, + originalRequest + }) : Reflect.get(target, prop, receiver); + }, + set(target, prop, value, receiver) { + return prop === "keepAlive" && (request.disableKeepAlive = !value), typeof prop == "string" && passThroughProps.has(prop) && (request[prop] = value), Reflect.set(target, prop, value, receiver); + } + }) : webResource; +} +function toHttpHeadersLike(headers) { + return new HttpHeaders(headers.toJSON({ preserveCase: !0 })); +} +function getHeaderKey(headerName) { + return headerName.toLowerCase(); +} +var HttpHeaders = class _HttpHeaders { + _headersMap; + constructor(rawHeaders) { + if (this._headersMap = {}, rawHeaders) + for (let headerName in rawHeaders) + this.set(headerName, rawHeaders[headerName]); + } + /** + * Set a header in this collection with the provided name and value. The name is + * case-insensitive. + * @param headerName - The name of the header to set. This value is case-insensitive. + * @param headerValue - The value of the header to set. + */ + set(headerName, headerValue) { + this._headersMap[getHeaderKey(headerName)] = { + name: headerName, + value: headerValue.toString() + }; + } + /** + * Get the header value for the provided header name, or undefined if no header exists in this + * collection with the provided name. + * @param headerName - The name of the header. + */ + get(headerName) { + let header = this._headersMap[getHeaderKey(headerName)]; + return header ? header.value : void 0; + } + /** + * Get whether or not this header collection contains a header entry for the provided header name. + */ + contains(headerName) { + return !!this._headersMap[getHeaderKey(headerName)]; + } + /** + * Remove the header with the provided headerName. Return whether or not the header existed and + * was removed. + * @param headerName - The name of the header to remove. + */ + remove(headerName) { + let result = this.contains(headerName); + return delete this._headersMap[getHeaderKey(headerName)], result; + } + /** + * Get the headers that are contained this collection as an object. + */ + rawHeaders() { + return this.toJson({ preserveCase: !0 }); + } + /** + * Get the headers that are contained in this collection as an array. + */ + headersArray() { + let headers = []; + for (let headerKey in this._headersMap) + headers.push(this._headersMap[headerKey]); + return headers; + } + /** + * Get the header names that are contained in this collection. + */ + headerNames() { + let headerNames = [], headers = this.headersArray(); + for (let i = 0; i < headers.length; ++i) + headerNames.push(headers[i].name); + return headerNames; + } + /** + * Get the header values that are contained in this collection. + */ + headerValues() { + let headerValues = [], headers = this.headersArray(); + for (let i = 0; i < headers.length; ++i) + headerValues.push(headers[i].value); + return headerValues; + } + /** + * Get the JSON object representation of this HTTP header collection. + */ + toJson(options = {}) { + let result = {}; + if (options.preserveCase) + for (let headerKey in this._headersMap) { + let header = this._headersMap[headerKey]; + result[header.name] = header.value; + } + else + for (let headerKey in this._headersMap) { + let header = this._headersMap[headerKey]; + result[getHeaderKey(header.name)] = header.value; + } + return result; + } + /** + * Get the string representation of this HTTP header collection. + */ + toString() { + return JSON.stringify(this.toJson({ preserveCase: !0 })); + } + /** + * Create a deep clone/copy of this HttpHeaders collection. + */ + clone() { + let resultPreservingCasing = {}; + for (let headerKey in this._headersMap) { + let header = this._headersMap[headerKey]; + resultPreservingCasing[header.name] = header.value; + } + return new _HttpHeaders(resultPreservingCasing); + } +}; + +// node_modules/@azure/core-http-compat/dist/esm/response.js +var originalResponse = /* @__PURE__ */ Symbol("Original FullOperationResponse"); +function toCompatResponse(response, options) { + let request = toWebResourceLike(response.request), headers = toHttpHeadersLike(response.headers); + return options?.createProxy ? new Proxy(response, { + get(target, prop, receiver) { + return prop === "headers" ? headers : prop === "request" ? request : prop === originalResponse ? response : Reflect.get(target, prop, receiver); + }, + set(target, prop, value, receiver) { + return prop === "headers" ? headers = value : prop === "request" && (request = value), Reflect.set(target, prop, value, receiver); + } + }) : { + ...response, + request, + headers + }; +} +function toPipelineResponse(compatResponse) { + let response = compatResponse[originalResponse], headers = createHttpHeaders2(compatResponse.headers.toJson({ preserveCase: !0 })); + return response ? (response.headers = headers, response) : { + ...compatResponse, + headers, + request: toPipelineRequest(compatResponse.request) + }; +} + +// node_modules/@azure/core-http-compat/dist/esm/extendedClient.js +var ExtendedServiceClient = class extends ServiceClient { + constructor(options) { + super(options), options.keepAliveOptions?.enable === !1 && !pipelineContainsDisableKeepAlivePolicy(this.pipeline) && this.pipeline.addPolicy(createDisableKeepAlivePolicy()), options.redirectOptions?.handleRedirects === !1 && this.pipeline.removePolicy({ + name: redirectPolicyName2 + }); + } + /** + * Compatible send operation request function. + * + * @param operationArguments - Operation arguments + * @param operationSpec - Operation Spec + * @returns + */ + async sendOperationRequest(operationArguments, operationSpec) { + let userProvidedCallBack = operationArguments?.options?.onResponse, lastResponse; + function onResponse(rawResponse, flatResponse, error3) { + lastResponse = rawResponse, userProvidedCallBack && userProvidedCallBack(rawResponse, flatResponse, error3); + } + operationArguments.options = { + ...operationArguments.options, + onResponse + }; + let result = await super.sendOperationRequest(operationArguments, operationSpec); + return lastResponse && Object.defineProperty(result, "_response", { + value: toCompatResponse(lastResponse) + }), result; + } +}; + +// node_modules/@azure/core-http-compat/dist/esm/policies/requestPolicyFactoryPolicy.js +var HttpPipelineLogLevel; +(function(HttpPipelineLogLevel2) { + HttpPipelineLogLevel2[HttpPipelineLogLevel2.ERROR = 1] = "ERROR", HttpPipelineLogLevel2[HttpPipelineLogLevel2.INFO = 3] = "INFO", HttpPipelineLogLevel2[HttpPipelineLogLevel2.OFF = 0] = "OFF", HttpPipelineLogLevel2[HttpPipelineLogLevel2.WARNING = 2] = "WARNING"; +})(HttpPipelineLogLevel || (HttpPipelineLogLevel = {})); +var mockRequestPolicyOptions = { + log(_logLevel, _message) { + }, + shouldLog(_logLevel) { + return !1; + } +}, requestPolicyFactoryPolicyName = "RequestPolicyFactoryPolicy"; +function createRequestPolicyFactoryPolicy(factories) { + let orderedFactories = factories.slice().reverse(); + return { + name: requestPolicyFactoryPolicyName, + async sendRequest(request, next) { + let httpPipeline = { + async sendRequest(httpRequest) { + let response2 = await next(toPipelineRequest(httpRequest)); + return toCompatResponse(response2, { createProxy: !0 }); + } + }; + for (let factory of orderedFactories) + httpPipeline = factory.create(httpPipeline, mockRequestPolicyOptions); + let webResourceLike = toWebResourceLike(request, { createProxy: !0 }), response = await httpPipeline.sendRequest(webResourceLike); + return toPipelineResponse(response); + } + }; +} + +// node_modules/@azure/core-http-compat/dist/esm/httpClientAdapter.js +function convertHttpClient(requestPolicyClient) { + return { + sendRequest: async (request) => { + let response = await requestPolicyClient.sendRequest(toWebResourceLike(request, { createProxy: !0 })); + return toPipelineResponse(response); + } + }; +} + +// node_modules/fast-xml-parser/src/util.js +var nameStartChar = ":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", nameChar = nameStartChar + "\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040", nameRegexp = "[" + nameStartChar + "][" + nameChar + "]*", regexName = new RegExp("^" + nameRegexp + "$"); +function getAllMatches(string, regex) { + let matches = [], match2 = regex.exec(string); + for (; match2; ) { + let allmatches = []; + allmatches.startIndex = regex.lastIndex - match2[0].length; + let len = match2.length; + for (let index = 0; index < len; index++) + allmatches.push(match2[index]); + matches.push(allmatches), match2 = regex.exec(string); + } + return matches; +} +var isName = function(string) { + let match2 = regexName.exec(string); + return !(match2 === null || typeof match2 > "u"); +}; +function isExist(v) { + return typeof v < "u"; +} +var DANGEROUS_PROPERTY_NAMES = [ + // '__proto__', + // 'constructor', + // 'prototype', + "hasOwnProperty", + "toString", + "valueOf", + "__defineGetter__", + "__defineSetter__", + "__lookupGetter__", + "__lookupSetter__" +], criticalProperties = ["__proto__", "constructor", "prototype"]; + +// node_modules/fast-xml-parser/src/validator.js +var defaultOptions = { + allowBooleanAttributes: !1, + //A tag can have attributes without any value + unpairedTags: [] +}; +function validate(xmlData, options) { + options = Object.assign({}, defaultOptions, options); + let tags2 = [], tagFound = !1, reachedRoot = !1; + xmlData[0] === "\uFEFF" && (xmlData = xmlData.substr(1)); + for (let i = 0; i < xmlData.length; i++) + if (xmlData[i] === "<" && xmlData[i + 1] === "?") { + if (i += 2, i = readPI(xmlData, i), i.err) return i; + } else if (xmlData[i] === "<") { + let tagStartPos = i; + if (i++, xmlData[i] === "!") { + i = readCommentAndCDATA(xmlData, i); + continue; + } else { + let closingTag = !1; + xmlData[i] === "/" && (closingTag = !0, i++); + let tagName = ""; + for (; i < xmlData.length && xmlData[i] !== ">" && xmlData[i] !== " " && xmlData[i] !== " " && xmlData[i] !== ` +` && xmlData[i] !== "\r"; i++) + tagName += xmlData[i]; + if (tagName = tagName.trim(), tagName[tagName.length - 1] === "/" && (tagName = tagName.substring(0, tagName.length - 1), i--), !validateTagName(tagName)) { + let msg; + return tagName.trim().length === 0 ? msg = "Invalid space after '<'." : msg = "Tag '" + tagName + "' is an invalid name.", getErrorObject("InvalidTag", msg, getLineNumberForPosition(xmlData, i)); + } + let result = readAttributeStr(xmlData, i); + if (result === !1) + return getErrorObject("InvalidAttr", "Attributes for '" + tagName + "' have open quote.", getLineNumberForPosition(xmlData, i)); + let attrStr = result.value; + if (i = result.index, attrStr[attrStr.length - 1] === "/") { + let attrStrStart = i - attrStr.length; + attrStr = attrStr.substring(0, attrStr.length - 1); + let isValid = validateAttributeString(attrStr, options); + if (isValid === !0) + tagFound = !0; + else + return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line)); + } else if (closingTag) + if (result.tagClosed) { + if (attrStr.trim().length > 0) + return getErrorObject("InvalidTag", "Closing tag '" + tagName + "' can't have attributes or invalid starting.", getLineNumberForPosition(xmlData, tagStartPos)); + if (tags2.length === 0) + return getErrorObject("InvalidTag", "Closing tag '" + tagName + "' has not been opened.", getLineNumberForPosition(xmlData, tagStartPos)); + { + let otg = tags2.pop(); + if (tagName !== otg.tagName) { + let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos); + return getErrorObject( + "InvalidTag", + "Expected closing tag '" + otg.tagName + "' (opened in line " + openPos.line + ", col " + openPos.col + ") instead of closing tag '" + tagName + "'.", + getLineNumberForPosition(xmlData, tagStartPos) + ); + } + tags2.length == 0 && (reachedRoot = !0); + } + } else return getErrorObject("InvalidTag", "Closing tag '" + tagName + "' doesn't have proper closing.", getLineNumberForPosition(xmlData, i)); + else { + let isValid = validateAttributeString(attrStr, options); + if (isValid !== !0) + return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line)); + if (reachedRoot === !0) + return getErrorObject("InvalidXml", "Multiple possible root nodes found.", getLineNumberForPosition(xmlData, i)); + options.unpairedTags.indexOf(tagName) !== -1 || tags2.push({ tagName, tagStartPos }), tagFound = !0; + } + for (i++; i < xmlData.length; i++) + if (xmlData[i] === "<") + if (xmlData[i + 1] === "!") { + i++, i = readCommentAndCDATA(xmlData, i); + continue; + } else if (xmlData[i + 1] === "?") { + if (i = readPI(xmlData, ++i), i.err) return i; + } else + break; + else if (xmlData[i] === "&") { + let afterAmp = validateAmpersand(xmlData, i); + if (afterAmp == -1) + return getErrorObject("InvalidChar", "char '&' is not expected.", getLineNumberForPosition(xmlData, i)); + i = afterAmp; + } else if (reachedRoot === !0 && !isWhiteSpace(xmlData[i])) + return getErrorObject("InvalidXml", "Extra text at the end", getLineNumberForPosition(xmlData, i)); + xmlData[i] === "<" && i--; + } + } else { + if (isWhiteSpace(xmlData[i])) + continue; + return getErrorObject("InvalidChar", "char '" + xmlData[i] + "' is not expected.", getLineNumberForPosition(xmlData, i)); + } + if (tagFound) { + if (tags2.length == 1) + return getErrorObject("InvalidTag", "Unclosed tag '" + tags2[0].tagName + "'.", getLineNumberForPosition(xmlData, tags2[0].tagStartPos)); + if (tags2.length > 0) + return getErrorObject("InvalidXml", "Invalid '" + JSON.stringify(tags2.map((t) => t.tagName), null, 4).replace(/\r?\n/g, "") + "' found.", { line: 1, col: 1 }); + } else return getErrorObject("InvalidXml", "Start tag expected.", 1); + return !0; +} +function isWhiteSpace(char) { + return char === " " || char === " " || char === ` +` || char === "\r"; +} +function readPI(xmlData, i) { + let start = i; + for (; i < xmlData.length; i++) + if (xmlData[i] == "?" || xmlData[i] == " ") { + let tagname = xmlData.substr(start, i - start); + if (i > 5 && tagname === "xml") + return getErrorObject("InvalidXml", "XML declaration allowed only at the start of the document.", getLineNumberForPosition(xmlData, i)); + if (xmlData[i] == "?" && xmlData[i + 1] == ">") { + i++; + break; + } else + continue; + } + return i; +} +function readCommentAndCDATA(xmlData, i) { + if (xmlData.length > i + 5 && xmlData[i + 1] === "-" && xmlData[i + 2] === "-") { + for (i += 3; i < xmlData.length; i++) + if (xmlData[i] === "-" && xmlData[i + 1] === "-" && xmlData[i + 2] === ">") { + i += 2; + break; + } + } else if (xmlData.length > i + 8 && xmlData[i + 1] === "D" && xmlData[i + 2] === "O" && xmlData[i + 3] === "C" && xmlData[i + 4] === "T" && xmlData[i + 5] === "Y" && xmlData[i + 6] === "P" && xmlData[i + 7] === "E") { + let angleBracketsCount = 1; + for (i += 8; i < xmlData.length; i++) + if (xmlData[i] === "<") + angleBracketsCount++; + else if (xmlData[i] === ">" && (angleBracketsCount--, angleBracketsCount === 0)) + break; + } else if (xmlData.length > i + 9 && xmlData[i + 1] === "[" && xmlData[i + 2] === "C" && xmlData[i + 3] === "D" && xmlData[i + 4] === "A" && xmlData[i + 5] === "T" && xmlData[i + 6] === "A" && xmlData[i + 7] === "[") { + for (i += 8; i < xmlData.length; i++) + if (xmlData[i] === "]" && xmlData[i + 1] === "]" && xmlData[i + 2] === ">") { + i += 2; + break; + } + } + return i; +} +var doubleQuote = '"', singleQuote = "'"; +function readAttributeStr(xmlData, i) { + let attrStr = "", startChar = "", tagClosed = !1; + for (; i < xmlData.length; i++) { + if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) + startChar === "" ? startChar = xmlData[i] : startChar !== xmlData[i] || (startChar = ""); + else if (xmlData[i] === ">" && startChar === "") { + tagClosed = !0; + break; + } + attrStr += xmlData[i]; + } + return startChar !== "" ? !1 : { + value: attrStr, + index: i, + tagClosed + }; +} +var validAttrStrRegxp = new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`, "g"); +function validateAttributeString(attrStr, options) { + let matches = getAllMatches(attrStr, validAttrStrRegxp), attrNames = {}; + for (let i = 0; i < matches.length; i++) { + if (matches[i][1].length === 0) + return getErrorObject("InvalidAttr", "Attribute '" + matches[i][2] + "' has no space in starting.", getPositionFromMatch(matches[i])); + if (matches[i][3] !== void 0 && matches[i][4] === void 0) + return getErrorObject("InvalidAttr", "Attribute '" + matches[i][2] + "' is without value.", getPositionFromMatch(matches[i])); + if (matches[i][3] === void 0 && !options.allowBooleanAttributes) + return getErrorObject("InvalidAttr", "boolean attribute '" + matches[i][2] + "' is not allowed.", getPositionFromMatch(matches[i])); + let attrName = matches[i][2]; + if (!validateAttrName(attrName)) + return getErrorObject("InvalidAttr", "Attribute '" + attrName + "' is an invalid name.", getPositionFromMatch(matches[i])); + if (!Object.prototype.hasOwnProperty.call(attrNames, attrName)) + attrNames[attrName] = 1; + else + return getErrorObject("InvalidAttr", "Attribute '" + attrName + "' is repeated.", getPositionFromMatch(matches[i])); + } + return !0; +} +function validateNumberAmpersand(xmlData, i) { + let re = /\d/; + for (xmlData[i] === "x" && (i++, re = /[\da-fA-F]/); i < xmlData.length; i++) { + if (xmlData[i] === ";") + return i; + if (!xmlData[i].match(re)) + break; + } + return -1; +} +function validateAmpersand(xmlData, i) { + if (i++, xmlData[i] === ";") + return -1; + if (xmlData[i] === "#") + return i++, validateNumberAmpersand(xmlData, i); + let count = 0; + for (; i < xmlData.length; i++, count++) + if (!(xmlData[i].match(/\w/) && count < 20)) { + if (xmlData[i] === ";") + break; + return -1; + } + return i; +} +function getErrorObject(code, message, lineNumber) { + return { + err: { + code, + msg: message, + line: lineNumber.line || lineNumber, + col: lineNumber.col + } + }; +} +function validateAttrName(attrName) { + return isName(attrName); +} +function validateTagName(tagname) { + return isName(tagname); +} +function getLineNumberForPosition(xmlData, index) { + let lines = xmlData.substring(0, index).split(/\r?\n/); + return { + line: lines.length, + // column number is last line's length + 1, because column numbering starts at 1: + col: lines[lines.length - 1].length + 1 + }; +} +function getPositionFromMatch(match2) { + return match2.startIndex + match2[1].length; +} + +// node_modules/@nodable/entities/src/entities.js +var CURRENCY = { + cent: "\xA2", + pound: "\xA3", + curren: "\xA4", + yen: "\xA5", + euro: "\u20AC", + dollar: "$", + fnof: "\u0192", + inr: "\u20B9", + af: "\u060B", + birr: "\u1265\u122D", + peso: "\u20B1", + rub: "\u20BD", + won: "\u20A9", + yuan: "\xA5", + cedil: "\xB8" +}; +var XML = { + amp: "&", + apos: "'", + gt: ">", + lt: "<", + quot: '"' +}, COMMON_HTML = { + nbsp: "\xA0", + copy: "\xA9", + reg: "\xAE", + trade: "\u2122", + mdash: "\u2014", + ndash: "\u2013", + hellip: "\u2026", + laquo: "\xAB", + raquo: "\xBB", + lsquo: "\u2018", + rsquo: "\u2019", + ldquo: "\u201C", + rdquo: "\u201D", + bull: "\u2022", + para: "\xB6", + sect: "\xA7", + deg: "\xB0", + frac12: "\xBD", + frac14: "\xBC", + frac34: "\xBE" +}; + +// node_modules/@nodable/entities/src/EntityDecoder.js +var ENTITY_ACTION = Object.freeze({ + /** Resolve and expand the entity normally. */ + ALLOW: "allow", + /** Silently skip this entity — it will not be registered. */ + BLOCK: "block", + /** Throw an error, aborting entity registration entirely. */ + THROW: "throw" +}), SPECIAL_CHARS = new Set("!?\\\\/[]$%{}^&*()<>|+"); +function validateEntityName(name) { + if (name[0] === "#") + throw new Error(`[EntityReplacer] Invalid character '#' in entity name: "${name}"`); + for (let ch of name) + if (SPECIAL_CHARS.has(ch)) + throw new Error(`[EntityReplacer] Invalid character '${ch}' in entity name: "${name}"`); + return name; +} +function mergeEntityMaps(...maps) { + let out = /* @__PURE__ */ Object.create(null); + for (let map of maps) + if (map) + for (let key of Object.keys(map)) { + let raw = map[key]; + if (typeof raw == "string") + out[key] = raw; + else if (raw && typeof raw == "object" && raw.val !== void 0) { + let val = raw.val; + typeof val == "string" && (out[key] = val); + } + } + return out; +} +var LIMIT_TIER_EXTERNAL = "external", LIMIT_TIER_BASE = "base", LIMIT_TIER_ALL = "all"; +function parseLimitTiers(raw) { + return !raw || raw === LIMIT_TIER_EXTERNAL ? /* @__PURE__ */ new Set([LIMIT_TIER_EXTERNAL]) : raw === LIMIT_TIER_ALL ? /* @__PURE__ */ new Set([LIMIT_TIER_ALL]) : raw === LIMIT_TIER_BASE ? /* @__PURE__ */ new Set([LIMIT_TIER_BASE]) : Array.isArray(raw) ? new Set(raw) : /* @__PURE__ */ new Set([LIMIT_TIER_EXTERNAL]); +} +var NCR_LEVEL = Object.freeze({ allow: 0, leave: 1, remove: 2, throw: 3 }), XML10_ALLOWED_C0 = /* @__PURE__ */ new Set([9, 10, 13]); +function parseNCRConfig(ncr) { + if (!ncr) + return { xmlVersion: 1, onLevel: NCR_LEVEL.allow, nullLevel: NCR_LEVEL.remove }; + let xmlVersion = ncr.xmlVersion === 1.1 ? 1.1 : 1, onLevel = NCR_LEVEL[ncr.onNCR] ?? NCR_LEVEL.allow, nullLevel = NCR_LEVEL[ncr.nullNCR] ?? NCR_LEVEL.remove, clampedNull = Math.max(nullLevel, NCR_LEVEL.remove); + return { xmlVersion, onLevel, nullLevel: clampedNull }; +} +var EntityDecoder = class { + /** + * @param {object} [options] + * @param {object|null} [options.namedEntities] — extra named entities merged into base map + * @param {object} [options.limit] — security limits + * @param {number} [options.limit.maxTotalExpansions=0] — 0 = unlimited + * @param {number} [options.limit.maxExpandedLength=0] — 0 = unlimited + * @param {'external'|'base'|'all'|string[]} [options.limit.applyLimitsTo='external'] + * Which entity tiers count against the security limits: + * - 'external' (default) — only input/runtime + persistent external entities + * - 'base' — only DEFAULT_XML_ENTITIES + namedEntities + * - 'all' — every entity regardless of tier + * - string[] — explicit combination, e.g. ['external', 'base'] + * @param {((resolved: string, original: string) => string)|null} [options.postCheck=null] + * @param {string[]} [options.remove=[]] — entity names (e.g. ['nbsp', '#13']) to delete (replace with empty string) + * @param {string[]} [options.leave=[]] — entity names to keep as literal (unchanged in output) + * @param {object} [options.ncr] — Numeric Character Reference controls + * @param {1.0|1.1} [options.ncr.xmlVersion=1.0] + * XML version governing which codepoint ranges are restricted: + * - 1.0 — C0 controls U+0001–U+001F (except U+0009/000A/000D) are prohibited + * - 1.1 — C0 controls are allowed when written as NCRs; C1 (U+007F–U+009F) decoded as-is + * @param {'allow'|'leave'|'remove'|'throw'} [options.ncr.onNCR='allow'] + * Base action for numeric references. Severity order: allow < leave < remove < throw. + * For codepoint ranges that carry a minimum level (surrogates → remove, XML 1.0 C0 → remove), + * the effective action is max(onNCR, rangeMinimum). + * @param {'remove'|'throw'} [options.ncr.nullNCR='remove'] + * Action for U+0000 (null). 'allow' and 'leave' are clamped to 'remove' since null is never safe. + * @param {((name: string, value: string) => 'allow'|'block'|'throw')|null} [options.onExternalEntity=null] + * Hook called when an external entity is registered via `setExternalEntities()` or + * `addExternalEntity()`. Return `ENTITY_ACTION.ALLOW` to accept the entity, + * `ENTITY_ACTION.BLOCK` to silently skip it, or `ENTITY_ACTION.THROW` to abort with an error. + * @param {((name: string, value: string) => 'allow'|'block'|'throw')|null} [options.onInputEntity=null] + * Hook called when an input entity is registered via `addInputEntities()`. Return + * `ENTITY_ACTION.ALLOW` to accept, `ENTITY_ACTION.BLOCK` to silently skip, or + * `ENTITY_ACTION.THROW` to abort with an error. + */ + constructor(options = {}) { + this._limit = options.limit || {}, this._maxTotalExpansions = this._limit.maxTotalExpansions || 0, this._maxExpandedLength = this._limit.maxExpandedLength || 0, this._postCheck = typeof options.postCheck == "function" ? options.postCheck : (r) => r, this._limitTiers = parseLimitTiers(this._limit.applyLimitsTo ?? LIMIT_TIER_EXTERNAL), this._numericAllowed = options.numericAllowed ?? !0, this._baseMap = mergeEntityMaps(XML, options.namedEntities || null), this._externalMap = /* @__PURE__ */ Object.create(null), this._inputMap = /* @__PURE__ */ Object.create(null), this._totalExpansions = 0, this._expandedLength = 0, this._removeSet = new Set(options.remove && Array.isArray(options.remove) ? options.remove : []), this._leaveSet = new Set(options.leave && Array.isArray(options.leave) ? options.leave : []); + let ncrCfg = parseNCRConfig(options.ncr); + this._ncrXmlVersion = ncrCfg.xmlVersion, this._ncrOnLevel = ncrCfg.onLevel, this._ncrNullLevel = ncrCfg.nullLevel, this._onExternalEntity = typeof options.onExternalEntity == "function" ? options.onExternalEntity : null, this._onInputEntity = typeof options.onInputEntity == "function" ? options.onInputEntity : null; + } + // ------------------------------------------------------------------------- + // Private: registration hook dispatch + // ------------------------------------------------------------------------- + /** + * Invoke a registration hook for a single entity name/value pair. + * Returns true when the entity should be accepted, false when it should be + * silently skipped (BLOCK), and throws when the hook returns THROW. + * + * @param {((name: string, value: string) => 'allow'|'block'|'throw')|null} hook + * @param {string} name + * @param {string} value + * @param {string} context — used in error messages ('external' | 'input') + * @returns {boolean} true = accept, false = skip + */ + _applyRegistrationHook(hook, name, value, context3) { + if (!hook) return !0; + let action5 = hook(name, value); + if (action5 === ENTITY_ACTION.BLOCK) return !1; + if (action5 === ENTITY_ACTION.THROW) + throw new Error( + `[EntityDecoder] Registration of ${context3} entity "&${name};" was rejected by hook` + ); + return !0; + } + // ------------------------------------------------------------------------- + // Persistent external entity registration + // ------------------------------------------------------------------------- + /** + * Replace the full set of persistent external entities. + * All keys are validated — throws on invalid characters. + * If `onExternalEntity` is set, it is called once per entry; entries that + * return `ENTITY_ACTION.BLOCK` are silently omitted, `ENTITY_ACTION.THROW` + * aborts the whole call. + * @param {Record} map + */ + setExternalEntities(map) { + if (map) + for (let key of Object.keys(map)) + validateEntityName(key); + if (!this._onExternalEntity) { + this._externalMap = mergeEntityMaps(map); + return; + } + let flat = mergeEntityMaps(map), filtered = /* @__PURE__ */ Object.create(null); + for (let [name, value] of Object.entries(flat)) + this._applyRegistrationHook(this._onExternalEntity, name, value, "external") && (filtered[name] = value); + this._externalMap = filtered; + } + /** + * Add a single persistent external entity. + * If `onExternalEntity` is set it is called before the entity is stored; + * `ENTITY_ACTION.BLOCK` silently skips storage, `ENTITY_ACTION.THROW` raises. + * @param {string} key + * @param {string} value + */ + addExternalEntity(key, value) { + validateEntityName(key), typeof value == "string" && value.indexOf("&") === -1 && this._applyRegistrationHook(this._onExternalEntity, key, value, "external") && (this._externalMap[key] = value); + } + // ------------------------------------------------------------------------- + // Input / runtime entity registration (per document) + // ------------------------------------------------------------------------- + /** + * Inject DOCTYPE entities for the current document. + * Also resets per-document expansion counters. + * If `onInputEntity` is set it is called once per entry; entries returning + * `ENTITY_ACTION.BLOCK` are silently omitted, `ENTITY_ACTION.THROW` aborts. + * @param {Record} map + */ + addInputEntities(map) { + if (this._totalExpansions = 0, this._expandedLength = 0, !this._onInputEntity) { + this._inputMap = mergeEntityMaps(map); + return; + } + let flat = mergeEntityMaps(map), filtered = /* @__PURE__ */ Object.create(null); + for (let [name, value] of Object.entries(flat)) + this._applyRegistrationHook(this._onInputEntity, name, value, "input") && (filtered[name] = value); + this._inputMap = filtered; + } + // ------------------------------------------------------------------------- + // Per-document reset + // ------------------------------------------------------------------------- + /** + * Wipe input/runtime entities and reset counters. + * Call this before processing each new document. + * @returns {this} + */ + reset() { + return this._inputMap = /* @__PURE__ */ Object.create(null), this._totalExpansions = 0, this._expandedLength = 0, this; + } + // ------------------------------------------------------------------------- + // XML version (can be set after construction, e.g. once parser reads ) + // ------------------------------------------------------------------------- + /** + * Update the XML version used for NCR classification. + * Call this as soon as the document's `` declaration is parsed. + * @param {1.0|1.1|number} version + */ + setXmlVersion(version3) { + this._ncrXmlVersion = version3 === 1.1 ? 1.1 : 1; + } + // ------------------------------------------------------------------------- + // Primary API + // ------------------------------------------------------------------------- + /** + * Replace all entity references in `str` in a single pass. + * + * @param {string} str + * @returns {string} + */ + decode(str) { + if (typeof str != "string" || str.length === 0 || str.indexOf("&") === -1) return str; + let original = str, chunks = [], len = str.length, last = 0, i = 0, limitExpansions = this._maxTotalExpansions > 0, limitLength = this._maxExpandedLength > 0, checkLimits = limitExpansions || limitLength; + for (; i < len; ) { + if (str.charCodeAt(i) !== 38) { + i++; + continue; + } + let j = i + 1; + for (; j < len && str.charCodeAt(j) !== 59 && j - i <= 32; ) j++; + if (j >= len || str.charCodeAt(j) !== 59) { + i++; + continue; + } + let token = str.slice(i + 1, j); + if (token.length === 0) { + i++; + continue; + } + let replacement, tier2; + if (this._removeSet.has(token)) + replacement = "", tier2 === void 0 && (tier2 = LIMIT_TIER_EXTERNAL); + else if (this._leaveSet.has(token)) { + i++; + continue; + } else if (token.charCodeAt(0) === 35) { + let ncrResult = this._resolveNCR(token); + if (ncrResult === void 0) { + i++; + continue; + } + replacement = ncrResult, tier2 = LIMIT_TIER_BASE; + } else { + let resolved = this._resolveName(token); + replacement = resolved?.value, tier2 = resolved?.tier; + } + if (replacement === void 0) { + i++; + continue; + } + if (i > last && chunks.push(str.slice(last, i)), chunks.push(replacement), last = j + 1, i = last, checkLimits && this._tierCounts(tier2)) { + if (limitExpansions && (this._totalExpansions++, this._totalExpansions > this._maxTotalExpansions)) + throw new Error( + `[EntityReplacer] Entity expansion count limit exceeded: ${this._totalExpansions} > ${this._maxTotalExpansions}` + ); + if (limitLength) { + let delta = replacement.length - (token.length + 2); + if (delta > 0 && (this._expandedLength += delta, this._expandedLength > this._maxExpandedLength)) + throw new Error( + `[EntityReplacer] Expanded content length limit exceeded: ${this._expandedLength} > ${this._maxExpandedLength}` + ); + } + } + } + last < len && chunks.push(str.slice(last)); + let result = chunks.length === 0 ? str : chunks.join(""); + return this._postCheck(result, original); + } + // ------------------------------------------------------------------------- + // Private: limit tier check + // ------------------------------------------------------------------------- + /** + * Returns true if a resolved entity of the given tier should count + * against the expansion/length limits. + * @param {string} tier — LIMIT_TIER_EXTERNAL | LIMIT_TIER_BASE + * @returns {boolean} + */ + _tierCounts(tier2) { + return this._limitTiers.has(LIMIT_TIER_ALL) ? !0 : this._limitTiers.has(tier2); + } + // ------------------------------------------------------------------------- + // Private: entity resolution + // ------------------------------------------------------------------------- + /** + * Resolve a named entity token (without & and ;). + * Priority: inputMap > externalMap > baseMap + * Returns the resolved value tagged with its limit tier. + * + * @param {string} name + * @returns {{ value: string, tier: string }|undefined} + */ + _resolveName(name) { + if (name in this._inputMap) return { value: this._inputMap[name], tier: LIMIT_TIER_EXTERNAL }; + if (name in this._externalMap) return { value: this._externalMap[name], tier: LIMIT_TIER_EXTERNAL }; + if (name in this._baseMap) return { value: this._baseMap[name], tier: LIMIT_TIER_BASE }; + } + /** + * Classify a codepoint and return the minimum action level that must be applied. + * Returns -1 when no minimum is imposed (normal allow path). + * + * Ranges checked (in priority order): + * 1. U+0000 — null, governed by nullNCR (always ≥ remove) + * 2. U+D800–U+DFFF — surrogates, always prohibited (min: remove) + * 3. U+0001–U+001F \ {0x09,0x0A,0x0D} — XML 1.0 restricted C0 (min: remove) + * (skipped in XML 1.1 — C0 controls are allowed when written as NCRs) + * + * @param {number} cp — codepoint + * @returns {number} — minimum NCR_LEVEL value, or -1 for no restriction + */ + _classifyNCR(cp) { + return cp === 0 ? this._ncrNullLevel : cp >= 55296 && cp <= 57343 || this._ncrXmlVersion === 1 && cp >= 1 && cp <= 31 && !XML10_ALLOWED_C0.has(cp) ? NCR_LEVEL.remove : -1; + } + /** + * Execute a resolved NCR action. + * + * @param {number} action — NCR_LEVEL value + * @param {string} token — raw token (e.g. '#38') for error messages + * @param {number} cp — codepoint, used only for error messages + * @returns {string|undefined} + * - decoded character string → 'allow' + * - '' → 'remove' + * - undefined → 'leave' (caller must skip past '&' only) + * - throws Error → 'throw' + */ + _applyNCRAction(action5, token, cp) { + switch (action5) { + case NCR_LEVEL.allow: + return String.fromCodePoint(cp); + case NCR_LEVEL.remove: + return ""; + case NCR_LEVEL.leave: + return; + // signal: keep literal + case NCR_LEVEL.throw: + throw new Error( + `[EntityDecoder] Prohibited numeric character reference &${token}; (U+${cp.toString(16).toUpperCase().padStart(4, "0")})` + ); + default: + return String.fromCodePoint(cp); + } + } + /** + * Full NCR resolution pipeline for a numeric token. + * + * Steps: + * 1. Parse the codepoint (decimal or hex). + * 2. Validate the raw codepoint range (NaN, <0, >0x10FFFF). + * 3. If numericAllowed is false and no minimum restriction applies → leave as-is. + * 4. Classify the codepoint to find the minimum required action level. + * 5. Resolve effective action = max(onNCR, minimum). + * 6. Apply and return. + * + * @param {string} token — e.g. '#38', '#x26', '#X26' + * @returns {string|undefined} + * - string (incl. '') — replacement ('' = remove) + * - undefined — leave original &token; as-is + */ + _resolveNCR(token) { + let second = token.charCodeAt(1), cp; + if (second === 120 || second === 88 ? cp = parseInt(token.slice(2), 16) : cp = parseInt(token.slice(1), 10), Number.isNaN(cp) || cp < 0 || cp > 1114111) return; + let minimum = this._classifyNCR(cp); + if (!this._numericAllowed && minimum < NCR_LEVEL.remove) return; + let effective = minimum === -1 ? this._ncrOnLevel : Math.max(this._ncrOnLevel, minimum); + return this._applyNCRAction(effective, token, cp); + } +}; + +// node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +var defaultOnDangerousProperty = (name) => DANGEROUS_PROPERTY_NAMES.includes(name) ? "__" + name : name, defaultOptions2 = { + preserveOrder: !1, + attributeNamePrefix: "@_", + attributesGroupName: !1, + textNodeName: "#text", + ignoreAttributes: !0, + removeNSPrefix: !1, + // remove NS from tag name or attribute name if true + allowBooleanAttributes: !1, + //a tag can have attributes without any value + //ignoreRootElement : false, + parseTagValue: !0, + parseAttributeValue: !1, + trimValues: !0, + //Trim string values of tag and attributes + cdataPropName: !1, + numberParseOptions: { + hex: !0, + leadingZeros: !0, + eNotation: !0, + unicode: !1 + }, + tagValueProcessor: function(tagName, val) { + return val; + }, + attributeValueProcessor: function(attrName, val) { + return val; + }, + stopNodes: [], + //nested tags will not be parsed even for errors + alwaysCreateTextNode: !1, + isArray: () => !1, + commentPropName: !1, + unpairedTags: [], + processEntities: !0, + htmlEntities: !1, + entityDecoder: null, + ignoreDeclaration: !1, + ignorePiTags: !1, + transformTagName: !1, + transformAttributeName: !1, + updateTag: function(tagName, jPath, attrs) { + return tagName; + }, + // skipEmptyListItem: false + captureMetaData: !1, + maxNestedTags: 100, + strictReservedNames: !0, + jPath: !0, + // if true, pass jPath string to callbacks; if false, pass matcher instance + onDangerousProperty: defaultOnDangerousProperty +}; +function validatePropertyName(propertyName, optionName) { + if (typeof propertyName != "string") + return; + let normalized = propertyName.toLowerCase(); + if (DANGEROUS_PROPERTY_NAMES.some((dangerous) => normalized === dangerous.toLowerCase())) + throw new Error( + `[SECURITY] Invalid ${optionName}: "${propertyName}" is a reserved JavaScript keyword that could cause prototype pollution` + ); + if (criticalProperties.some((dangerous) => normalized === dangerous.toLowerCase())) + throw new Error( + `[SECURITY] Invalid ${optionName}: "${propertyName}" is a reserved JavaScript keyword that could cause prototype pollution` + ); +} +function normalizeProcessEntities(value, htmlEntities) { + return typeof value == "boolean" ? { + enabled: value, + // true or false + maxEntitySize: 1e4, + maxExpansionDepth: 1e4, + maxTotalExpansions: 1 / 0, + maxExpandedLength: 1e5, + maxEntityCount: 1e3, + allowedTags: null, + tagFilter: null, + appliesTo: "all" + } : typeof value == "object" && value !== null ? { + enabled: value.enabled !== !1, + maxEntitySize: Math.max(1, value.maxEntitySize ?? 1e4), + maxExpansionDepth: Math.max(1, value.maxExpansionDepth ?? 1e4), + maxTotalExpansions: Math.max(1, value.maxTotalExpansions ?? 1 / 0), + maxExpandedLength: Math.max(1, value.maxExpandedLength ?? 1e5), + maxEntityCount: Math.max(1, value.maxEntityCount ?? 1e3), + allowedTags: value.allowedTags ?? null, + tagFilter: value.tagFilter ?? null, + appliesTo: value.appliesTo ?? "all" + } : normalizeProcessEntities(!0); +} +var buildOptions = function(options) { + let built = Object.assign({}, defaultOptions2, options), propertyNameOptions = [ + { value: built.attributeNamePrefix, name: "attributeNamePrefix" }, + { value: built.attributesGroupName, name: "attributesGroupName" }, + { value: built.textNodeName, name: "textNodeName" }, + { value: built.cdataPropName, name: "cdataPropName" }, + { value: built.commentPropName, name: "commentPropName" } + ]; + for (let { value, name } of propertyNameOptions) + value && validatePropertyName(value, name); + return built.onDangerousProperty === null && (built.onDangerousProperty = defaultOnDangerousProperty), built.processEntities = normalizeProcessEntities(built.processEntities, built.htmlEntities), built.unpairedTagsSet = new Set(built.unpairedTags), built.stopNodes && Array.isArray(built.stopNodes) && (built.stopNodes = built.stopNodes.map((node) => typeof node == "string" && node.startsWith("*.") ? ".." + node.substring(2) : node)), built; +}; + +// node_modules/fast-xml-parser/src/xmlparser/xmlNode.js +var METADATA_SYMBOL; +typeof Symbol != "function" ? METADATA_SYMBOL = "@@xmlMetadata" : METADATA_SYMBOL = /* @__PURE__ */ Symbol("XML Node Metadata"); +var XmlNode = class { + constructor(tagname) { + this.tagname = tagname, this.child = [], this[":@"] = /* @__PURE__ */ Object.create(null); + } + add(key, val) { + key === "__proto__" && (key = "#__proto__"), this.child.push({ [key]: val }); + } + addChild(node, startIndex) { + node.tagname === "__proto__" && (node.tagname = "#__proto__"), node[":@"] && Object.keys(node[":@"]).length > 0 ? this.child.push({ [node.tagname]: node.child, ":@": node[":@"] }) : this.child.push({ [node.tagname]: node.child }), startIndex !== void 0 && (this.child[this.child.length - 1][METADATA_SYMBOL] = { startIndex }); + } + /** symbol used for metadata */ + static getMetaDataSymbol() { + return METADATA_SYMBOL; + } +}; + +// node_modules/xml-naming/src/index.js +var nameStartChar10 = ":A-Za-z_\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u0486\u0488-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD", nameChar10 = nameStartChar10 + "\\-\\.\\d\xB7\u0300-\u036F\u203F-\u2040", nameStartChar11 = ":A-Za-z_\xC0-\u02FF\u0370-\u037D\u037F-\u0486\u0488-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}", nameChar11 = nameStartChar11 + "\\-\\.\\d\xB7\u0300-\u036F\u0487\u203F-\u2040", buildRegexes = (startChar, char, flags = "") => { + let ncStart = startChar.replace(":", ""), ncChar = char.replace(":", ""), ncNamePat = `[${ncStart}][${ncChar}]*`; + return { + name: new RegExp(`^[${startChar}][${char}]*$`, flags), + ncName: new RegExp(`^${ncNamePat}$`, flags), + qName: new RegExp(`^${ncNamePat}(?::${ncNamePat})?$`, flags), + nmToken: new RegExp(`^[${char}]+$`, flags), + nmTokens: new RegExp(`^[${char}]+(?:\\s+[${char}]+)*$`, flags) + }; +}, regexes10 = buildRegexes(nameStartChar10, nameChar10), regexes11 = buildRegexes(nameStartChar11, nameChar11, "u"), nameStartCharAscii = ":A-Za-z_", nameCharAscii = nameStartCharAscii + "\\-\\.\\d", regexesAscii = buildRegexes(nameStartCharAscii, nameCharAscii), getRegexes = (xmlVersion = "1.0", asciiOnly = !1) => asciiOnly ? regexesAscii : xmlVersion === "1.1" ? regexes11 : regexes10; +var qName = (str, { xmlVersion = "1.0", asciiOnly = !1 } = {}) => getRegexes(xmlVersion, asciiOnly).qName.test(str); +var PRODUCTIONS = ["name", "ncName", "qName", "nmToken", "nmTokens"], createValidator = (production, { xmlVersion = "1.0", asciiOnly = !1, maxCacheSize = 2048 } = {}) => { + if (!PRODUCTIONS.includes(production)) + throw new TypeError( + `Unknown production "${production}". Must be one of: ${PRODUCTIONS.join(", ")}` + ); + let regex = getRegexes(xmlVersion, asciiOnly)[production], cache = /* @__PURE__ */ new Map(), validator = (str) => { + let cached = cache.get(str); + if (cached !== void 0) return cached; + let result = regex.test(str); + return cache.size < maxCacheSize && cache.set(str, result), result; + }; + return validator.reset = () => { + cache = /* @__PURE__ */ new Map(); + }, validator; +}; + +// node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +var DocTypeReader = class { + constructor(options, xmlVersion) { + this.suppressValidationErr = !options, this.options = options, this.xmlVersion = xmlVersion || 1; + } + setXmlVersion(xmlVersion = 1) { + this.xmlVersion = xmlVersion; + } + readDocType(xmlData, i) { + let entities = /* @__PURE__ */ Object.create(null), entityCount = 0; + if (xmlData[i + 3] === "O" && xmlData[i + 4] === "C" && xmlData[i + 5] === "T" && xmlData[i + 6] === "Y" && xmlData[i + 7] === "P" && xmlData[i + 8] === "E") { + i = i + 9; + let angleBracketsCount = 1, hasBody = !1, comment = !1, exp = ""; + for (; i < xmlData.length; i++) + if (xmlData[i] === "<" && !comment) { + if (hasBody && hasSeq(xmlData, "!ENTITY", i)) { + i += 7; + let entityName, val; + if ([entityName, val, i] = this.readEntityExp(xmlData, i + 1, this.suppressValidationErr), val.indexOf("&") === -1) { + if (this.options.enabled !== !1 && this.options.maxEntityCount != null && entityCount >= this.options.maxEntityCount) + throw new Error( + `Entity count (${entityCount + 1}) exceeds maximum allowed (${this.options.maxEntityCount})` + ); + entities[entityName] = val, entityCount++; + } + } else if (hasBody && hasSeq(xmlData, "!ELEMENT", i)) { + i += 8; + let { index } = this.readElementExp(xmlData, i + 1); + i = index; + } else if (hasBody && hasSeq(xmlData, "!ATTLIST", i)) + i += 8; + else if (hasBody && hasSeq(xmlData, "!NOTATION", i)) { + i += 9; + let { index } = this.readNotationExp(xmlData, i + 1, this.suppressValidationErr); + i = index; + } else if (hasSeq(xmlData, "!--", i)) comment = !0; + else throw new Error("Invalid DOCTYPE"); + angleBracketsCount++, exp = ""; + } else if (xmlData[i] === ">") { + if (comment ? xmlData[i - 1] === "-" && xmlData[i - 2] === "-" && (comment = !1, angleBracketsCount--) : angleBracketsCount--, angleBracketsCount === 0) + break; + } else xmlData[i] === "[" ? hasBody = !0 : exp += xmlData[i]; + if (angleBracketsCount !== 0) + throw new Error("Unclosed DOCTYPE"); + } else + throw new Error("Invalid Tag instead of DOCTYPE"); + return { entities, i }; + } + readEntityExp(xmlData, i) { + i = skipWhitespace(xmlData, i); + let startIndex = i; + for (; i < xmlData.length && !/\s/.test(xmlData[i]) && xmlData[i] !== '"' && xmlData[i] !== "'"; ) + i++; + let entityName = xmlData.substring(startIndex, i); + if (validateEntityName2(entityName, { xmlVersion: this.xmlVersion }), i = skipWhitespace(xmlData, i), !this.suppressValidationErr) { + if (xmlData.substring(i, i + 6).toUpperCase() === "SYSTEM") + throw new Error("External entities are not supported"); + if (xmlData[i] === "%") + throw new Error("Parameter entities are not supported"); + } + let entityValue = ""; + if ([i, entityValue] = this.readIdentifierVal(xmlData, i, "entity"), this.options.enabled !== !1 && this.options.maxEntitySize != null && entityValue.length > this.options.maxEntitySize) + throw new Error( + `Entity "${entityName}" size (${entityValue.length}) exceeds maximum allowed size (${this.options.maxEntitySize})` + ); + return i--, [entityName, entityValue, i]; + } + readNotationExp(xmlData, i) { + i = skipWhitespace(xmlData, i); + let startIndex = i; + for (; i < xmlData.length && !/\s/.test(xmlData[i]); ) + i++; + let notationName = xmlData.substring(startIndex, i); + !this.suppressValidationErr && validateEntityName2(notationName, { xmlVersion: this.xmlVersion }), i = skipWhitespace(xmlData, i); + let identifierType = xmlData.substring(i, i + 6).toUpperCase(); + if (!this.suppressValidationErr && identifierType !== "SYSTEM" && identifierType !== "PUBLIC") + throw new Error(`Expected SYSTEM or PUBLIC, found "${identifierType}"`); + i += identifierType.length, i = skipWhitespace(xmlData, i); + let publicIdentifier = null, systemIdentifier = null; + if (identifierType === "PUBLIC") + [i, publicIdentifier] = this.readIdentifierVal(xmlData, i, "publicIdentifier"), i = skipWhitespace(xmlData, i), (xmlData[i] === '"' || xmlData[i] === "'") && ([i, systemIdentifier] = this.readIdentifierVal(xmlData, i, "systemIdentifier")); + else if (identifierType === "SYSTEM" && ([i, systemIdentifier] = this.readIdentifierVal(xmlData, i, "systemIdentifier"), !this.suppressValidationErr && !systemIdentifier)) + throw new Error("Missing mandatory system identifier for SYSTEM notation"); + return { notationName, publicIdentifier, systemIdentifier, index: --i }; + } + readIdentifierVal(xmlData, i, type) { + let identifierVal = "", startChar = xmlData[i]; + if (startChar !== '"' && startChar !== "'") + throw new Error(`Expected quoted string, found "${startChar}"`); + i++; + let startIndex = i; + for (; i < xmlData.length && xmlData[i] !== startChar; ) + i++; + if (identifierVal = xmlData.substring(startIndex, i), xmlData[i] !== startChar) + throw new Error(`Unterminated ${type} value`); + return i++, [i, identifierVal]; + } + readElementExp(xmlData, i) { + i = skipWhitespace(xmlData, i); + let startIndex = i; + for (; i < xmlData.length && !/\s/.test(xmlData[i]); ) + i++; + let elementName = xmlData.substring(startIndex, i); + if (!this.suppressValidationErr && !qName(elementName, { xmlVersion: this.xmlVersion })) + throw new Error(`Invalid element name: "${elementName}"`); + i = skipWhitespace(xmlData, i); + let contentModel = ""; + if (xmlData[i] === "E" && hasSeq(xmlData, "MPTY", i)) i += 4; + else if (xmlData[i] === "A" && hasSeq(xmlData, "NY", i)) i += 2; + else if (xmlData[i] === "(") { + i++; + let startIndex2 = i; + for (; i < xmlData.length && xmlData[i] !== ")"; ) + i++; + if (contentModel = xmlData.substring(startIndex2, i), xmlData[i] !== ")") + throw new Error("Unterminated content model"); + } else if (!this.suppressValidationErr) + throw new Error(`Invalid Element Expression, found "${xmlData[i]}"`); + return { + elementName, + contentModel: contentModel.trim(), + index: i + }; + } + readAttlistExp(xmlData, i) { + i = skipWhitespace(xmlData, i); + let startIndex = i; + for (; i < xmlData.length && !/\s/.test(xmlData[i]); ) + i++; + let elementName = xmlData.substring(startIndex, i); + for (validateEntityName2(elementName, { xmlVersion: this.xmlVersion }), i = skipWhitespace(xmlData, i), startIndex = i; i < xmlData.length && !/\s/.test(xmlData[i]); ) + i++; + let attributeName = xmlData.substring(startIndex, i); + if (!validateEntityName2(attributeName, { xmlVersion: this.xmlVersion })) + throw new Error(`Invalid attribute name: "${attributeName}"`); + i = skipWhitespace(xmlData, i); + let attributeType = ""; + if (xmlData.substring(i, i + 8).toUpperCase() === "NOTATION") { + if (attributeType = "NOTATION", i += 8, i = skipWhitespace(xmlData, i), xmlData[i] !== "(") + throw new Error(`Expected '(', found "${xmlData[i]}"`); + i++; + let allowedNotations = []; + for (; i < xmlData.length && xmlData[i] !== ")"; ) { + let startIndex2 = i; + for (; i < xmlData.length && xmlData[i] !== "|" && xmlData[i] !== ")"; ) + i++; + let notation = xmlData.substring(startIndex2, i); + if (notation = notation.trim(), !validateEntityName2(notation, { xmlVersion: this.xmlVersion })) + throw new Error(`Invalid notation name: "${notation}"`); + allowedNotations.push(notation), xmlData[i] === "|" && (i++, i = skipWhitespace(xmlData, i)); + } + if (xmlData[i] !== ")") + throw new Error("Unterminated list of notations"); + i++, attributeType += " (" + allowedNotations.join("|") + ")"; + } else { + let startIndex2 = i; + for (; i < xmlData.length && !/\s/.test(xmlData[i]); ) + i++; + attributeType += xmlData.substring(startIndex2, i); + let validTypes = ["CDATA", "ID", "IDREF", "IDREFS", "ENTITY", "ENTITIES", "NMTOKEN", "NMTOKENS"]; + if (!this.suppressValidationErr && !validTypes.includes(attributeType.toUpperCase())) + throw new Error(`Invalid attribute type: "${attributeType}"`); + } + i = skipWhitespace(xmlData, i); + let defaultValue = ""; + return xmlData.substring(i, i + 8).toUpperCase() === "#REQUIRED" ? (defaultValue = "#REQUIRED", i += 8) : xmlData.substring(i, i + 7).toUpperCase() === "#IMPLIED" ? (defaultValue = "#IMPLIED", i += 7) : [i, defaultValue] = this.readIdentifierVal(xmlData, i, "ATTLIST"), { + elementName, + attributeName, + attributeType, + defaultValue, + index: i + }; + } +}, skipWhitespace = (data, index) => { + for (; index < data.length && /\s/.test(data[index]); ) + index++; + return index; +}; +function hasSeq(data, seq, i) { + for (let j = 0; j < seq.length; j++) + if (seq[j] !== data[i + j + 1]) return !1; + return !0; +} +function validateEntityName2(name, xmlVersion) { + if (qName(name, { xmlVersion })) + return name; + throw new Error(`Invalid entity name ${name}`); +} + +// node_modules/anynum/digitTable.js +var SCRIPT_ZEROS = [ + // Basic Latin (ASCII) — included for completeness / pass-through + 48, + // 0-9 + // Arabic scripts + 1632, + // Arabic-Indic ٠١٢٣٤٥٦٧٨٩ + 1776, + // Extended Arabic-Indic (Urdu/Persian/Sindhi) ۰۱۲۳ + // Indic scripts + 2406, + // Devanagari ०१२३४५६७८९ + 2534, + // Bengali ০১২৩৪৫৬৭৮৯ + 2662, + // Gurmukhi ੦੧੨੩੪੫੬੭੮੯ + 2790, + // Gujarati ૦૧૨૩૪૫૬૭૮૯ + 2918, + // Odia ୦୧୨୩୪୫୬୭୮୯ + 3046, + // Tamil ௦௧௨௩௪௫௬௭௮௯ + 3174, + // Telugu ౦౧౨౩౪౫౬౭౮౯ + 3302, + // Kannada ೦೧೨೩೪೫೬೭೮೯ + 3430, + // Malayalam ൦൧൨൩൪൫൬൭൮൯ + 3558, + // Sinhala Archaic ෦෧෨෩෪෫෬෭෮෯ + // Southeast Asian scripts + 3664, + // Thai ๐๑๒๓๔๕๖๗๘๙ + 3792, + // Lao ໐໑໒໓໔໕໖໗໘໙ + 3872, + // Tibetan ༠༡༢༣༤༥༦༧༨༩ + 4160, + // Myanmar ၀၁၂၃၄၅၆၇၈၉ + 4240, + // Myanmar Shan ႐႑႒႓႔႕႖႗႘႙ + 6112, + // Khmer ០១២៣៤៥៦៧៨៩ + 6160, + // Mongolian ᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙ + 6470, + // Limbu ᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏ + 6608, + // New Tai Lue ᧐᧑᧒᧓᧔᧕᧖᧗᧘᧙ + 6784, + // Tai Tham Hora ᪀᪁᪂᪃᪄᪅᪆᪇᪈᪉ + 6800, + // Tai Tham Tham ᪐᪑᪒᪓᪔᪕᪖᪗᪘᪙ + 6992, + // Balinese ᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙ + 7088, + // Sundanese ᮰᮱᮲᮳᮴᮵᮶᮷᮸᮹ + 7232, + // Lepcha ᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉ + 7248, + // Ol Chiki ᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙ + // Fullwidth (CJK context) + 65296, + // Fullwidth 0123456789 + // Mathematical digit variants (Unicode math block) + 120782, + // Mathematical Bold + 120792, + // Mathematical Double-Struck + 120802, + // Mathematical Sans-Serif + 120812, + // Mathematical Sans-Serif Bold + 120822, + // Mathematical Monospace + // Other scripts + 66720, + // Osmanya 𐒠𐒡𐒢𐒣𐒤𐒥𐒦𐒧𐒨𐒩 + 68912, + // Hanifi Rohingya 𐴰𐴱𐴲𐴳𐴴𐴵𐴶𐴷𐴸𐴹 + 69734, + // Brahmi 𑁦𑁧𑁨𑁩𑁪𑁫𑁬𑁭𑁮𑁯 + 69872, + // Sora Sompeng 𑃰𑃱𑃲𑃳𑃴𑃵𑃶𑃷𑃸𑃹 + 69942, + // Chakma 𑄶𑄷𑄸𑄹𑄺𑄻𑄼𑄽𑄾𑄿 + 70096, + // Sharada 𑇐𑇑𑇒𑇓𑇔𑇕𑇖𑇗𑇘𑇙 + 70384, + // Khudawadi 𑋰𑋱𑋲𑋳𑋴𑋵𑋶𑋷𑋸𑋹 + 70736, + // Newa 𑑐𑑑𑑒𑑓𑑔𑑕𑑖𑑗𑑘𑑙 + 70864, + // Tirhuta 𑓐𑓑𑓒𑓓𑓔𑓕𑓖𑓗𑓘𑓙 + 71248, + // Modi 𑙐𑙑𑙒𑙓𑙔𑙕𑙖𑙗𑙘𑙙 + 71360, + // Takri 𑛀𑛁𑛂𑛃𑛄𑛅𑛆𑛇𑛈𑛉 + 71472, + // Ahom 𑜰𑜱𑜲𑜳𑜴𑜵𑜶𑜷𑜸𑜹 + 71904, + // Warang Citi 𑣠𑣡𑣢𑣣𑣤𑣥𑣦𑣧𑣨𑣩 + 72016, + // Dives Akuru 𑥐𑥑𑥒𑥓𑥔𑥕𑥖𑥗𑥘𑥙 + 72688, + // Khitan Small Script 𑯰𑯱𑯲𑯳𑯴𑯵𑯶𑯷𑯸𑯹 + 72784, + // Bhaiksuki 𑱐𑱑𑱒𑱓𑱔𑱕𑱖𑱗𑱘𑱙 + 73040, + // Masaram Gondi 𑵐𑵑𑵒𑵓𑵔𑵕𑵖𑵗𑵘𑵙 + 73120, + // Gunjala Gondi 𑶠𑶡𑶢𑶣𑶤𑶥𑶦𑶧𑶨𑶩 + 73552, + // Kawi 𑽐𑽑𑽒𑽓𑽔𑽕𑽖𑽗𑽘𑽙 + 92768, + // Mro 𖩠𖩡𖩢𖩣𖩤𖩥𖩦𖩧𖩨𖩩 + 92864, + // Tangsa 𖫀𖫁𖫂𖫃𖫄𖫅𖫆𖫇𖫈𖫉 + 93008, + // Pahawh Hmong 𖭐𖭑𖭒𖭓𖭔𖭕𖭖𖭗𖭘𖭙 + 123200, + // Nyiakeng Puachue Hmong 𞅀𞅁𞅂𞅃𞅄𞅅𞅆𞅇𞅈𞅉 + 123632, + // Wancho 𞋰𞋱𞋲𞋳𞋴𞋵𞋶𞋷𞋸𞋹 + 124144, + // Nag Mundari 𞓰𞓱𞓲𞓳𞓴𞓵𞓶𞓷𞓸𞓹 + 125264, + // Adlam 𞥐𞥑𞥒𞥓𞥔𞥕𞥖𞥗𞥘𞥙 + 130032 + // Segmented digit symbols 🯰🯱🯲🯳🯴🯵🯶🯷🯸🯹 +], NOT_DIGIT = 255, HIGH_MAP = /* @__PURE__ */ new Map(), LOW_MAX = 65535, LOW_MIN = 1632, TABLE_OFFSET = LOW_MIN, TABLE_SIZE = LOW_MAX - LOW_MIN + 1, TABLE = new Uint8Array(TABLE_SIZE).fill(NOT_DIGIT); +for (let zero of SCRIPT_ZEROS) + for (let d = 0; d < 10; d++) { + let cp = zero + d; + cp <= LOW_MAX ? TABLE[cp - TABLE_OFFSET] = d : HIGH_MAP.set(cp, d); + } + +// node_modules/anynum/anynum.js +var CHAR_0 = 48, CHAR_9 = 57, CHAR_MINUS = 45, MINUS_SET = /* @__PURE__ */ new Set([8722, 65293, 65123]); +function anynum(str) { + if (typeof str != "string") return str; + let len = str.length; + if (len === 0) return str; + let firstHit = -1; + for (let i = 0; i < len; i++) { + let cc = str.charCodeAt(i); + if (!(cc >= CHAR_0 && cc <= CHAR_9 || cc === CHAR_MINUS)) { + if (cc < TABLE_OFFSET) { + if (MINUS_SET.has(cc)) { + firstHit = i; + break; + } + continue; + } + if (cc >= 55296 && cc <= 56319) { + if (i + 1 < len) { + let low = str.charCodeAt(i + 1); + if (low >= 56320 && low <= 57343) { + let cp = 65536 + (cc - 55296 << 10) + (low - 56320); + if (HIGH_MAP.has(cp)) { + firstHit = i; + break; + } + } + } + continue; + } + if (TABLE[cc - TABLE_OFFSET] !== NOT_DIGIT || MINUS_SET.has(cc)) { + firstHit = i; + break; + } + } + } + if (firstHit === -1) return str; + let chars = []; + firstHit > 0 && chars.push(str.slice(0, firstHit)); + for (let i = firstHit; i < len; i++) { + let cc = str.charCodeAt(i); + if (cc >= CHAR_0 && cc <= CHAR_9 || cc === CHAR_MINUS) { + chars.push(str[i]); + continue; + } + if (cc < TABLE_OFFSET) { + chars.push(MINUS_SET.has(cc) ? "-" : str[i]); + continue; + } + if (cc >= 55296 && cc <= 56319) { + if (i + 1 < len) { + let low = str.charCodeAt(i + 1); + if (low >= 56320 && low <= 57343) { + let cp = 65536 + (cc - 55296 << 10) + (low - 56320), d2 = HIGH_MAP.get(cp); + if (d2 !== void 0) { + chars.push(String.fromCharCode(d2 + 48)), i++; + continue; + } + } + } + chars.push(str[i]); + continue; + } + if (MINUS_SET.has(cc)) { + chars.push("-"); + continue; + } + let d = TABLE[cc - TABLE_OFFSET]; + chars.push(d !== NOT_DIGIT ? String.fromCharCode(d + 48) : str[i]); + } + return chars.join(""); +} +var anynum_default = anynum; + +// node_modules/strnum/strnum.js +var hexRegex = /^[-+]?0x[a-fA-F0-9]+$/, binRegex = /^0b[01]+$/, octRegex = /^0o[0-7]+$/, numRegex = /^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/, consider = { + hex: !0, + binary: !1, + octal: !1, + leadingZeros: !0, + decimalPoint: ".", + eNotation: !0, + //skipLike: /regex/, + infinity: "original", + // "null", "infinity" (Infinity type), "string" ("Infinity" (the string literal)) + unicode: !1 +}; +function toNumber(str, options = {}) { + if (options = Object.assign({}, consider, options), !str || typeof str != "string") return str; + let trimmedStr = str.trim(); + if (trimmedStr.length === 0) return str; + if (options.skipLike !== void 0 && options.skipLike.test(trimmedStr)) return str; + if (trimmedStr === "0" || options.unicode && (trimmedStr = anynum_default(trimmedStr), trimmedStr === "0")) + return 0; + if (options.hex && hexRegex.test(trimmedStr)) + return parse_int(trimmedStr, 16); + if (options.binary && binRegex.test(trimmedStr)) + return parse_int(trimmedStr, 2); + if (options.octal && octRegex.test(trimmedStr)) + return parse_int(trimmedStr, 8); + if (isFinite(trimmedStr)) { + if (trimmedStr.includes("e") || trimmedStr.includes("E")) + return resolveEnotation(str, trimmedStr, options); + { + let match2 = numRegex.exec(trimmedStr); + if (match2) { + let sign = match2[1] || "", leadingZeros = match2[2], numTrimmedByZeros = trimZeros(match2[3]), decimalAdjacentToLeadingZeros = sign ? ( + // 0., -00., 000. + str[leadingZeros.length + 1] === "." + ) : str[leadingZeros.length] === "."; + if (!options.leadingZeros && (leadingZeros.length > 1 || leadingZeros.length === 1 && !decimalAdjacentToLeadingZeros)) + return str; + { + let num = Number(trimmedStr), parsedStr = String(num); + if (num === 0) return num; + if (parsedStr.search(/[eE]/) !== -1) + return options.eNotation ? num : str; + if (trimmedStr.indexOf(".") !== -1) + return parsedStr === "0" || parsedStr === numTrimmedByZeros || parsedStr === `${sign}${numTrimmedByZeros}` ? num : str; + let n = leadingZeros ? numTrimmedByZeros : trimmedStr; + return leadingZeros ? n === parsedStr || sign + n === parsedStr ? num : str : n === parsedStr || n === sign + parsedStr ? num : str; + } + } else + return str; + } + } else return handleInfinity(str, Number(trimmedStr), options); +} +var eNotationRegx = /^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/; +function resolveEnotation(str, trimmedStr, options) { + if (!options.eNotation) return str; + let notation = trimmedStr.match(eNotationRegx); + if (notation) { + let sign = notation[1] || "", eChar = notation[3].indexOf("e") === -1 ? "E" : "e", leadingZeros = notation[2], eAdjacentToLeadingZeros = sign ? ( + // 0E. + str[leadingZeros.length + 1] === eChar + ) : str[leadingZeros.length] === eChar; + return leadingZeros.length > 1 && eAdjacentToLeadingZeros ? str : leadingZeros.length === 1 && (notation[3].startsWith(`.${eChar}`) || notation[3][0] === eChar) ? Number(trimmedStr) : leadingZeros.length > 0 ? options.leadingZeros && !eAdjacentToLeadingZeros ? (trimmedStr = (notation[1] || "") + notation[3], Number(trimmedStr)) : str : Number(trimmedStr); + } else + return str; +} +function trimZeros(numStr) { + return numStr && numStr.indexOf(".") !== -1 && (numStr = numStr.replace(/0+$/, ""), numStr === "." ? numStr = "0" : numStr[0] === "." ? numStr = "0" + numStr : numStr[numStr.length - 1] === "." && (numStr = numStr.substring(0, numStr.length - 1))), numStr; +} +function parse_int(numStr, base) { + let str = numStr.trim(); + if ((base === 2 || base === 8) && (numStr = str.substring(2)), parseInt) return parseInt(numStr, base); + if (Number.parseInt) return Number.parseInt(numStr, base); + if (window && window.parseInt) return window.parseInt(numStr, base); + throw new Error("parseInt, Number.parseInt, window.parseInt are not supported"); +} +function handleInfinity(str, num, options) { + let isPositive = num === 1 / 0; + switch (options.infinity.toLowerCase()) { + case "null": + return null; + case "infinity": + return num; + // Return Infinity or -Infinity + case "string": + return isPositive ? "Infinity" : "-Infinity"; + default: + return str; + } +} + +// node_modules/fast-xml-parser/src/ignoreAttributes.js +function getIgnoreAttributesFn(ignoreAttributes) { + return typeof ignoreAttributes == "function" ? ignoreAttributes : Array.isArray(ignoreAttributes) ? (attrName) => { + for (let pattern of ignoreAttributes) + if (typeof pattern == "string" && attrName === pattern || pattern instanceof RegExp && pattern.test(attrName)) + return !0; + } : () => !1; +} + +// node_modules/path-expression-matcher/src/Expression.js +var Expression = class { + /** + * Create a new Expression + * @param {string} pattern - Pattern string (e.g., "root.users.user", "..user[id]") + * @param {Object} options - Configuration options + * @param {string} options.separator - Path separator (default: '.') + */ + constructor(pattern, options = {}, data) { + this.pattern = pattern, this.separator = options.separator || ".", this.segments = this._parse(pattern), this.data = data, this._hasDeepWildcard = this.segments.some((seg) => seg.type === "deep-wildcard"), this._hasAttributeCondition = this.segments.some((seg) => seg.attrName !== void 0), this._hasPositionSelector = this.segments.some((seg) => seg.position !== void 0); + } + /** + * Parse pattern string into segments + * @private + * @param {string} pattern - Pattern to parse + * @returns {Array} Array of segment objects + */ + _parse(pattern) { + let segments = [], i = 0, currentPart = ""; + for (; i < pattern.length; ) + pattern[i] === this.separator ? i + 1 < pattern.length && pattern[i + 1] === this.separator ? (currentPart.trim() && (segments.push(this._parseSegment(currentPart.trim())), currentPart = ""), segments.push({ type: "deep-wildcard" }), i += 2) : (currentPart.trim() && segments.push(this._parseSegment(currentPart.trim())), currentPart = "", i++) : (currentPart += pattern[i], i++); + return currentPart.trim() && segments.push(this._parseSegment(currentPart.trim())), segments; + } + /** + * Parse a single segment + * @private + * @param {string} part - Segment string (e.g., "user", "ns::user", "user[id]", "ns::user:first") + * @returns {Object} Segment object + */ + _parseSegment(part) { + let segment = { type: "tag" }, bracketContent = null, withoutBrackets = part, bracketMatch = part.match(/^([^\[]+)(\[[^\]]*\])(.*)$/); + if (bracketMatch && (withoutBrackets = bracketMatch[1] + bracketMatch[3], bracketMatch[2])) { + let content = bracketMatch[2].slice(1, -1); + content && (bracketContent = content); + } + let namespace, tagAndPosition = withoutBrackets; + if (withoutBrackets.includes("::")) { + let nsIndex = withoutBrackets.indexOf("::"); + if (namespace = withoutBrackets.substring(0, nsIndex).trim(), tagAndPosition = withoutBrackets.substring(nsIndex + 2).trim(), !namespace) + throw new Error(`Invalid namespace in pattern: ${part}`); + } + let tag, positionMatch = null; + if (tagAndPosition.includes(":")) { + let colonIndex = tagAndPosition.lastIndexOf(":"), tagPart = tagAndPosition.substring(0, colonIndex).trim(), posPart = tagAndPosition.substring(colonIndex + 1).trim(); + ["first", "last", "odd", "even"].includes(posPart) || /^nth\(\d+\)$/.test(posPart) ? (tag = tagPart, positionMatch = posPart) : tag = tagAndPosition; + } else + tag = tagAndPosition; + if (!tag) + throw new Error(`Invalid segment pattern: ${part}`); + if (segment.tag = tag, namespace && (segment.namespace = namespace), bracketContent) + if (bracketContent.includes("=")) { + let eqIndex = bracketContent.indexOf("="); + segment.attrName = bracketContent.substring(0, eqIndex).trim(), segment.attrValue = bracketContent.substring(eqIndex + 1).trim(); + } else + segment.attrName = bracketContent.trim(); + if (positionMatch) { + let nthMatch = positionMatch.match(/^nth\((\d+)\)$/); + nthMatch ? (segment.position = "nth", segment.positionValue = parseInt(nthMatch[1], 10)) : segment.position = positionMatch; + } + return segment; + } + /** + * Get the number of segments + * @returns {number} + */ + get length() { + return this.segments.length; + } + /** + * Check if expression contains deep wildcard + * @returns {boolean} + */ + hasDeepWildcard() { + return this._hasDeepWildcard; + } + /** + * Check if expression has attribute conditions + * @returns {boolean} + */ + hasAttributeCondition() { + return this._hasAttributeCondition; + } + /** + * Check if expression has position selectors + * @returns {boolean} + */ + hasPositionSelector() { + return this._hasPositionSelector; + } + /** + * Get string representation + * @returns {string} + */ + toString() { + return this.pattern; + } +}; + +// node_modules/path-expression-matcher/src/ExpressionSet.js +var ExpressionSet = class { + constructor() { + this._byDepthAndTag = /* @__PURE__ */ new Map(), this._wildcardByDepth = /* @__PURE__ */ new Map(), this._deepWildcards = [], this._deepByTerminalTag = /* @__PURE__ */ new Map(), this._patterns = /* @__PURE__ */ new Set(), this._sealed = !1; + } + /** + * Add an Expression to the set. + * Duplicate patterns (same pattern string) are silently ignored. + * + * @param {import('./Expression.js').default} expression - A pre-constructed Expression instance + * @returns {this} for chaining + * @throws {TypeError} if called after seal() + * + * @example + * set.add(new Expression('root.users.user')); + * set.add(new Expression('..script')); + */ + add(expression) { + if (this._sealed) + throw new TypeError( + "ExpressionSet is sealed. Create a new ExpressionSet to add more expressions." + ); + if (this._patterns.has(expression.pattern)) return this; + if (this._patterns.add(expression.pattern), expression.hasDeepWildcard()) { + let lastSeg2 = expression.segments[expression.segments.length - 1]; + if (lastSeg2 && lastSeg2.type !== "deep-wildcard" && lastSeg2.tag !== "*") { + let tag2 = lastSeg2.tag; + this._deepByTerminalTag.has(tag2) || this._deepByTerminalTag.set(tag2, []), this._deepByTerminalTag.get(tag2).push(expression); + } else + this._deepWildcards.push(expression); + return this; + } + let depth = expression.length, tag = expression.segments[expression.segments.length - 1]?.tag; + if (!tag || tag === "*") + this._wildcardByDepth.has(depth) || this._wildcardByDepth.set(depth, []), this._wildcardByDepth.get(depth).push(expression); + else { + let key = `${depth}:${tag}`; + this._byDepthAndTag.has(key) || this._byDepthAndTag.set(key, []), this._byDepthAndTag.get(key).push(expression); + } + return this; + } + /** + * Add multiple expressions at once. + * + * @param {import('./Expression.js').default[]} expressions - Array of Expression instances + * @returns {this} for chaining + * + * @example + * set.addAll([ + * new Expression('root.users.user'), + * new Expression('root.config.setting'), + * ]); + */ + addAll(expressions) { + for (let expr of expressions) this.add(expr); + return this; + } + /** + * Check whether a pattern string is already present in the set. + * + * @param {import('./Expression.js').default} expression + * @returns {boolean} + */ + has(expression) { + return this._patterns.has(expression.pattern); + } + /** + * Number of expressions in the set. + * @type {number} + */ + get size() { + return this._patterns.size; + } + /** + * Seal the set against further modifications. + * Useful to prevent accidental mutations after config is built. + * Calling add() or addAll() on a sealed set throws a TypeError. + * + * @returns {this} + */ + seal() { + return this._sealed = !0, this; + } + /** + * Whether the set has been sealed. + * @type {boolean} + */ + get isSealed() { + return this._sealed; + } + /** + * Test whether the matcher's current path matches any expression in the set. + * + * Evaluation order (cheapest → most expensive): + * 1. Exact depth + tag bucket — O(1) lookup, typically 0–2 expressions + * 2. Depth-only wildcard bucket — O(1) lookup, rare + * 3. Deep-wildcard list — always checked, but usually small + * + * @param {import('./Matcher.js').default} matcher - Matcher instance (or readOnly view) + * @returns {boolean} true if any expression matches the current path + * + * @example + * if (stopNodes.matchesAny(matcher)) { + * // handle stop node + * } + */ + matchesAny(matcher) { + return this.findMatch(matcher) !== null; + } + /** + * Find and return the first Expression that matches the matcher's current path. + * + * Uses the same evaluation order as matchesAny (cheapest → most expensive): + * 1. Exact depth + tag bucket + * 2. Depth-only wildcard bucket + * 3. Deep-wildcard list + * + * @param {import('./Matcher.js').default} matcher - Matcher instance (or readOnly view) + * @returns {import('./Expression.js').default | null} the first matching Expression, or null + * + * @example + * const expr = stopNodes.findMatch(matcher); + * if (expr) { + * // access expr.config, expr.pattern, etc. + * } + */ + findMatch(matcher) { + let depth = matcher.getDepth(), tag = matcher.getCurrentTag(), exactKey = `${depth}:${tag}`, exactBucket = this._byDepthAndTag.get(exactKey); + if (exactBucket) { + for (let i = 0; i < exactBucket.length; i++) + if (matcher.matches(exactBucket[i])) return exactBucket[i]; + } + let wildcardBucket = this._wildcardByDepth.get(depth); + if (wildcardBucket) { + for (let i = 0; i < wildcardBucket.length; i++) + if (matcher.matches(wildcardBucket[i])) return wildcardBucket[i]; + } + let deepBucket = this._deepByTerminalTag.get(tag); + if (deepBucket) { + for (let i = 0; i < deepBucket.length; i++) + if (matcher.matches(deepBucket[i])) return deepBucket[i]; + } + for (let i = 0; i < this._deepWildcards.length; i++) + if (matcher.matches(this._deepWildcards[i])) return this._deepWildcards[i]; + return null; + } +}; + +// node_modules/path-expression-matcher/src/Matcher.js +var MatcherView = class { + /** + * @param {Matcher} matcher - The parent Matcher instance to read from. + */ + constructor(matcher) { + this._matcher = matcher; + } + /** + * Get the path separator used by the parent matcher. + * @returns {string} + */ + get separator() { + return this._matcher.separator; + } + /** + * Get current tag name. + * @returns {string|undefined} + */ + getCurrentTag() { + let path12 = this._matcher.path; + return path12.length > 0 ? path12[path12.length - 1].tag : void 0; + } + /** + * Get current namespace. + * @returns {string|undefined} + */ + getCurrentNamespace() { + let path12 = this._matcher.path; + return path12.length > 0 ? path12[path12.length - 1].namespace : void 0; + } + /** + * Get current node's attribute value. + * @param {string} attrName + * @returns {*} + */ + getAttrValue(attrName) { + let path12 = this._matcher.path; + if (path12.length !== 0) + return path12[path12.length - 1].values?.[attrName]; + } + /** + * Check if current node has an attribute. + * @param {string} attrName + * @returns {boolean} + */ + hasAttr(attrName) { + let path12 = this._matcher.path; + if (path12.length === 0) return !1; + let current = path12[path12.length - 1]; + return current.values !== void 0 && attrName in current.values; + } + /** + * Get the value of a "kept" attribute from the nearest ancestor (or + * current node) that declared it via `push(tag, attrs, ns, { keep: [...] })`. + * @param {string} attrName + * @returns {*} + */ + getAnyParentAttr(attrName) { + return this._matcher.getAnyParentAttr(attrName); + } + /** + * Check whether any ancestor (or the current node) kept the given + * attribute via `push(tag, attrs, ns, { keep: [...] })`. + * @param {string} attrName + * @returns {boolean} + */ + hasAnyParentAttr(attrName) { + return this._matcher.hasAnyParentAttr(attrName); + } + /** + * Get current node's sibling position (child index in parent). + * @returns {number} + */ + getPosition() { + let path12 = this._matcher.path; + return path12.length === 0 ? -1 : path12[path12.length - 1].position ?? 0; + } + /** + * Get current node's repeat counter (occurrence count of this tag name). + * @returns {number} + */ + getCounter() { + let path12 = this._matcher.path; + return path12.length === 0 ? -1 : path12[path12.length - 1].counter ?? 0; + } + /** + * Get current node's sibling index (alias for getPosition). + * @returns {number} + * @deprecated Use getPosition() or getCounter() instead + */ + getIndex() { + return this.getPosition(); + } + /** + * Get current path depth. + * @returns {number} + */ + getDepth() { + return this._matcher.path.length; + } + /** + * Get path as string. + * @param {string} [separator] - Optional separator (uses default if not provided) + * @param {boolean} [includeNamespace=true] + * @returns {string} + */ + toString(separator, includeNamespace = !0) { + return this._matcher.toString(separator, includeNamespace); + } + /** + * Get path as array of tag names. + * @returns {string[]} + */ + toArray() { + return this._matcher.path.map((n) => n.tag); + } + /** + * Match current path against an Expression. + * @param {Expression} expression + * @returns {boolean} + */ + matches(expression) { + return this._matcher.matches(expression); + } + /** + * Match any expression in the given set against the current path. + * @param {ExpressionSet} exprSet + * @returns {boolean} + */ + matchesAny(exprSet) { + return exprSet.matchesAny(this._matcher); + } +}, Matcher = class { + /** + * Create a new Matcher. + * @param {Object} [options={}] + * @param {string} [options.separator='.'] - Default path separator + */ + constructor(options = {}) { + this.separator = options.separator || ".", this.path = [], this.siblingStacks = [], this._pathStringCache = null, this._view = new MatcherView(this), this._keptAttrs = []; + } + /** + * Push a new tag onto the path. + * @param {string} tagName + * @param {Object|null} [attrValues=null] + * @param {string|null} [namespace=null] + * @param {Object|null} [options=null] + * @param {string[]} [options.keep] - Names of attributes (from attrValues) + */ + push(tagName, attrValues = null, namespace = null, options = null) { + this._pathStringCache = null, this.path.length > 0 && (this.path[this.path.length - 1].values = void 0); + let currentLevel = this.path.length, level = this.siblingStacks[currentLevel]; + level || (level = { counts: /* @__PURE__ */ new Map(), total: 0 }, this.siblingStacks[currentLevel] = level); + let siblingKey = namespace ? `${namespace}:${tagName}` : tagName, counter = level.counts.get(siblingKey) || 0, position = level.total; + level.counts.set(siblingKey, counter + 1), level.total++; + let node = { + tag: tagName, + position, + counter + }; + namespace != null && (node.namespace = namespace), attrValues != null && (node.values = attrValues), this.path.push(node); + let depth = this.path.length, keep = options !== null ? options.keep : null; + if (keep != null && keep.length > 0 && attrValues) + for (let i = 0; i < keep.length; i++) { + let name = keep[i]; + attrValues[name] !== void 0 && this._keptAttrs.push({ depth, name, value: attrValues[name] }); + } + } + /** + * Pop the last tag from the path. + * @returns {Object|undefined} The popped node + */ + pop() { + if (this.path.length === 0) return; + this._pathStringCache = null; + let node = this.path.pop(); + this.siblingStacks.length > this.path.length + 1 && (this.siblingStacks.length = this.path.length + 1); + let poppedDepth = this.path.length + 1; + for (; this._keptAttrs.length > 0 && this._keptAttrs[this._keptAttrs.length - 1].depth >= poppedDepth; ) + this._keptAttrs.pop(); + return node; + } + /** + * Update current node's attribute values. + * Useful when attributes are parsed after push. + * @param {Object} attrValues + */ + updateCurrent(attrValues) { + if (this.path.length > 0) { + let current = this.path[this.path.length - 1]; + attrValues != null && (current.values = attrValues); + } + } + /** + * Get current tag name. + * @returns {string|undefined} + */ + getCurrentTag() { + return this.path.length > 0 ? this.path[this.path.length - 1].tag : void 0; + } + /** + * Get current namespace. + * @returns {string|undefined} + */ + getCurrentNamespace() { + return this.path.length > 0 ? this.path[this.path.length - 1].namespace : void 0; + } + /** + * Get current node's attribute value. + * @param {string} attrName + * @returns {*} + */ + getAttrValue(attrName) { + if (this.path.length !== 0) + return this.path[this.path.length - 1].values?.[attrName]; + } + /** + * Check if current node has an attribute. + * @param {string} attrName + * @returns {boolean} + */ + hasAttr(attrName) { + if (this.path.length === 0) return !1; + let current = this.path[this.path.length - 1]; + return current.values !== void 0 && attrName in current.values; + } + /** + * Get the value of a "kept" attribute from the nearest ancestor (or + * current node) that declared it via `push(tag, attrs, ns, { keep: [...] })`. + * Unlike getAttrValue(), this works regardless of how deep the path has + * gone since the attribute was pushed — but only for attribute names that + * were explicitly marked with `keep` at push time. Cost is proportional to + * the number of currently-kept attributes (typically 0-3), not path depth. + * @param {string} attrName + * @returns {*} the value, or undefined if no ancestor kept this attribute + */ + getAnyParentAttr(attrName) { + let kept = this._keptAttrs; + for (let i = kept.length - 1; i >= 0; i--) + if (kept[i].name === attrName) return kept[i].value; + } + /** + * Check whether any ancestor (or the current node) kept the given + * attribute via `push(tag, attrs, ns, { keep: [...] })`. + * @param {string} attrName + * @returns {boolean} + */ + hasAnyParentAttr(attrName) { + let kept = this._keptAttrs; + for (let i = kept.length - 1; i >= 0; i--) + if (kept[i].name === attrName) return !0; + return !1; + } + /** + * Get current node's sibling position (child index in parent). + * @returns {number} + */ + getPosition() { + return this.path.length === 0 ? -1 : this.path[this.path.length - 1].position ?? 0; + } + /** + * Get current node's repeat counter (occurrence count of this tag name). + * @returns {number} + */ + getCounter() { + return this.path.length === 0 ? -1 : this.path[this.path.length - 1].counter ?? 0; + } + /** + * Get current node's sibling index (alias for getPosition). + * @returns {number} + * @deprecated Use getPosition() or getCounter() instead + */ + getIndex() { + return this.getPosition(); + } + /** + * Get current path depth. + * @returns {number} + */ + getDepth() { + return this.path.length; + } + /** + * Get path as string. + * @param {string} [separator] - Optional separator (uses default if not provided) + * @param {boolean} [includeNamespace=true] + * @returns {string} + */ + toString(separator, includeNamespace = !0) { + let sep9 = separator || this.separator; + if (sep9 === this.separator && includeNamespace === !0) { + if (this._pathStringCache !== null) + return this._pathStringCache; + let result = this.path.map( + (n) => n.namespace ? `${n.namespace}:${n.tag}` : n.tag + ).join(sep9); + return this._pathStringCache = result, result; + } + return this.path.map( + (n) => includeNamespace && n.namespace ? `${n.namespace}:${n.tag}` : n.tag + ).join(sep9); + } + /** + * Get path as array of tag names. + * @returns {string[]} + */ + toArray() { + return this.path.map((n) => n.tag); + } + /** + * Reset the path to empty. + */ + reset() { + this._pathStringCache = null, this.path = [], this.siblingStacks = [], this._keptAttrs = []; + } + /** + * Match current path against an Expression. + * @param {Expression} expression + * @returns {boolean} + */ + matches(expression) { + let segments = expression.segments; + return segments.length === 0 ? !1 : expression.hasDeepWildcard() ? this._matchWithDeepWildcard(segments) : this._matchSimple(segments); + } + /** + * @private + */ + _matchSimple(segments) { + if (this.path.length !== segments.length) + return !1; + for (let i = 0; i < segments.length; i++) + if (!this._matchSegment(segments[i], this.path[i], i === this.path.length - 1)) + return !1; + return !0; + } + /** + * @private + */ + _matchWithDeepWildcard(segments) { + let pathIdx = this.path.length - 1, segIdx = segments.length - 1; + for (; segIdx >= 0 && pathIdx >= 0; ) { + let segment = segments[segIdx]; + if (segment.type === "deep-wildcard") { + if (segIdx--, segIdx < 0) + return !0; + let nextSeg = segments[segIdx], found = !1; + for (let i = pathIdx; i >= 0; i--) + if (this._matchSegment(nextSeg, this.path[i], i === this.path.length - 1)) { + pathIdx = i - 1, segIdx--, found = !0; + break; + } + if (!found) + return !1; + } else { + if (!this._matchSegment(segment, this.path[pathIdx], pathIdx === this.path.length - 1)) + return !1; + pathIdx--, segIdx--; + } + } + return segIdx < 0; + } + /** + * @private + */ + _matchSegment(segment, node, isCurrentNode) { + if (segment.tag !== "*" && segment.tag !== node.tag || segment.namespace !== void 0 && segment.namespace !== "*" && segment.namespace !== node.namespace || segment.attrName !== void 0 && (!isCurrentNode || !node.values || !(segment.attrName in node.values) || segment.attrValue !== void 0 && String(node.values[segment.attrName]) !== String(segment.attrValue))) + return !1; + if (segment.position !== void 0) { + if (!isCurrentNode) + return !1; + let counter = node.counter ?? 0; + if (segment.position === "first" && counter !== 0) + return !1; + if (segment.position === "odd" && counter % 2 !== 1) + return !1; + if (segment.position === "even" && counter % 2 !== 0) + return !1; + if (segment.position === "nth" && counter !== segment.positionValue) + return !1; + } + return !0; + } + /** + * Match any expression in the given set against the current path. + * @param {ExpressionSet} exprSet + * @returns {boolean} + */ + matchesAny(exprSet) { + return exprSet.matchesAny(this); + } + /** + * Create a snapshot of current state. + * @returns {Object} + */ + snapshot() { + return { + path: this.path.map((node) => ({ ...node })), + siblingStacks: this.siblingStacks.map((level) => level && { counts: new Map(level.counts), total: level.total }), + keptAttrs: this._keptAttrs.map((entry) => ({ ...entry })) + }; + } + /** + * Restore state from snapshot. + * @param {Object} snapshot + */ + restore(snapshot2) { + this._pathStringCache = null, this.path = snapshot2.path.map((node) => ({ ...node })), this.siblingStacks = snapshot2.siblingStacks.map((level) => level && { counts: new Map(level.counts), total: level.total }), this._keptAttrs = (snapshot2.keptAttrs || []).map((entry) => ({ ...entry })); + } + /** + * Return the read-only {@link MatcherView} for this matcher. + * + * The same instance is returned on every call — no allocation occurs. + * It always reflects the current parser state and is safe to pass to + * user callbacks without risk of accidental mutation. + * + * @returns {MatcherView} + * + * @example + * const view = matcher.readOnly(); + * // pass view to callbacks — it stays in sync automatically + * view.matches(expr); // ✓ + * view.getCurrentTag(); // ✓ + * // view.push(...) // ✗ method does not exist — caught by TypeScript + */ + readOnly() { + return this._view; + } +}; + +// node_modules/is-unsafe/src/contexts/html.js +var HTML_PATTERNS = [ + { + id: "html-script-open", + description: "]/i + }, + { + id: "html-javascript-protocol", + description: "javascript: URI scheme (with optional whitespace/encoding)", + // Handles javascript:, j\u0061vascript:, and whitespace variants + pattern: /j[\t\n\r ]*a[\t\n\r ]*v[\t\n\r ]*a[\t\n\r ]*s[\t\n\r ]*c[\t\n\r ]*r[\t\n\r ]*i[\t\n\r ]*p[\t\n\r ]*t[\t\n\r ]*:/i + }, + { + id: "html-vbscript-protocol", + description: "vbscript: URI scheme", + pattern: /vbscript[\t\n\r ]*:/i + }, + { + id: "html-data-html", + description: "data:text/html URI \u2014 can execute scripts in browsers", + pattern: /data[\t\n\r ]*:[\t\n\r ]*text\/html/i + }, + { + id: "html-data-xhtml", + description: "data:application/xhtml+xml URI", + pattern: /data[\t\n\r ]*:[\t\n\r ]*application\/xhtml/i + }, + { + id: "html-data-svg", + description: "data:image/svg+xml URI \u2014 can execute scripts", + pattern: /data[\t\n\r ]*:[\t\n\r ]*image\/svg\+xml/i + }, + { + id: "html-inline-event-handler", + description: "Inline event handler attributes: onclick=, onerror=, onload=, etc.", + // \bon ensures we match a word boundary so "phonetic=" is not caught + pattern: /\bon\w{1,30}\s*=/i + }, + { + id: "html-entity-obfuscated-script", + description: "HTML-entity-encoded ]/i + }, + { + id: "html-javascript-protocol", + description: "javascript: URI scheme (with optional whitespace/encoding)", + // Handles javascript:, j\u0061vascript:, and whitespace variants + pattern: /j[\t\n\r ]*a[\t\n\r ]*v[\t\n\r ]*a[\t\n\r ]*s[\t\n\r ]*c[\t\n\r ]*r[\t\n\r ]*i[\t\n\r ]*p[\t\n\r ]*t[\t\n\r ]*:/i + }, + { + id: "html-vbscript-protocol", + description: "vbscript: URI scheme", + pattern: /vbscript[\t\n\r ]*:/i + }, + { + id: "html-data-html", + description: "data:text/html URI \u2014 can execute scripts in browsers", + pattern: /data[\t\n\r ]*:[\t\n\r ]*text\/html/i + }, + { + id: "html-data-xhtml", + description: "data:application/xhtml+xml URI", + pattern: /data[\t\n\r ]*:[\t\n\r ]*application\/xhtml/i + }, + { + id: "html-data-svg", + description: "data:image/svg+xml URI \u2014 can execute scripts", + pattern: /data[\t\n\r ]*:[\t\n\r ]*image\/svg\+xml/i + }, + { + id: "html-inline-event-handler", + description: "Inline event handler attributes: onclick=, onerror=, onload=, etc.", + // \bon ensures we match a word boundary so "phonetic=" is not caught + pattern: /\bon\w{1,30}\s*=/i + }, + { + id: "html-entity-obfuscated-script", + description: "HTML-entity-encoded