Author SHA1 Message Date
sneak dcf75f6c72 Close three gaps between the containerised-lint rule and its first adopters
check / check (push) Successful in 22s
The rule landed in 12e8db8 is right; these are the three places where the
canonical text and the repos implementing it can diverge without either
side looking wrong.

1. `.dockerignore` excluding the agent scratch directory is now stated as a
   correctness precondition of containerised linting rather than a
   context-size measure. `Dockerfile.lint` lints whatever `COPY . .` copies,
   and language toolchains discover files by walking the tree instead of
   reading `.gitignore`, so a nested worktree in the context puts the
   foreign-tree false reds back inside the container — in the convincing
   form, where the findings are real but belong to another checkout.
   sneak/quak measured the same discovery mechanism taking a test count
   from 210 to 1050.

2. The cache-bust build arg is fixed at `CHECK_EPOCH` in `Dockerfile.lint`
   as well as in `Dockerfile`. A per-file name is invisible to the grep that
   proves every build is busted, which makes a renamed guard and a missing
   guard read identically. sneak/quak's lint file currently names it
   `LINT_EPOCH`.

3. The formatting check must run in exactly one of the two images, and
   either placement is allowed. Splitting lint out of the `Dockerfile` is
   precisely the moment `fmt-check` gets dropped from both, and running the
   formatter beside the linters is the better shape wherever it is the same
   pinned dependency — it takes the last host toolchain off the checked
   path for the reason the linter came off it.

Both checklists carry the matching items, since a repo that satisfies the
policy prose but not the checklist is the drift this is meant to stop.

Refs #40
2026-08-10 12:59:44 +00:00
sneak 12e8db8b0e Run every lint in a container via Dockerfile.lint (closes #40)
check / check (push) Successful in 29s
The linter is no longer installed on the host and no longer invoked
there. script/lint is now `docker build -f Dockerfile.lint .` and
nothing else, with the linter running as a build step, so a successful
build of that file is a clean lint — and it works unchanged where the
docker daemon is remote and bind mounts are impossible.

That removes three host-only failure mechanisms rather than mitigating
them: the result cache keyed on file content rather than location, which
produced a confirmed false green and a string of findings reported
against other checkouts; the host-global $TMPDIR/golangci-lint.lock,
which fails a run with `parallel golangci-lint is running` in a way no
caller can distinguish from findings; and host/container version skew,
which hid thirteen findings on one repo. A container per run has its own
cache, its own lock and a binary pinned by digest.

Resolving the recursion this creates. script/lint is a docker build, so
a Dockerfile that runs `make check` would nest a build inside a build
step where there is no daemon. Fixed by direction, not detection: the
main Dockerfile runs script/test and script/fmt-check individually, with
a comment saying why `make check` must not come back, and script/cibuild
runs script/lint first for fail-fast feedback. script/check still runs
all three, so developers and the pre-commit hook are unaffected.

Dockerfile.lint carries the same CHECK_EPOCH guard as the main image,
with the ARG placed below the dependency layer so only the lint steps
re-run. Blanket --no-cache was rejected: it re-runs the dependency
install on every lint and makes linting network-dependent.

golangci-lint config verify is kept, on measurement rather than
preference. Under the pinned v2.12.2, a bogus top-level key and a bogus
key nested under linters.settings.lll both pass `golangci-lint run` with
exit 0 and `0 issues` while config verify exits 3 and names them; an
unknown linter name fails run and passes config verify. The two catch
disjoint classes, and `run` alone silently ignores the class where a
threshold reads as configured and is not applied. The concern that
config verify fetches its JSON schema over live HTTPS does not hold for
this version: every case reproduced byte-identically under
`docker run --network none`, in a container where `getent hosts
golangci-lint.run` exits 2. The schema is embedded in the pinned binary.

Two canonical forms are superseded and deleted rather than left standing
beside the new one, because consuming repos read these documents
literally and two contradictory canonical script/lint forms is worse
than either. The script/bootstrap golangci-lint install landed for
#28 is removed: nothing invokes
a host linter now, so it can only reintroduce the skew it was written to
close. Its version-enforcement principle — compare version not presence,
re-resolve through PATH after installing, let a mis-parse fall through
to reinstall, and call it — stays documented for any other pinned host
tool. The per-checkout GOLANGCI_LINT_CACHE/TMPDIR wrapper is removed
with it; its entire subject was making a host run trustworthy. Adopting
repos delete .lint-cache/ from .gitignore and .dockerignore too. The Go
multistage lint stage and its COPY --from=lint ordering trick go the
same way: that stage ran `make lint`, which is now a docker build.

Corrected everywhere the claim that a successful docker build implies
lint passed — REPO_POLICIES.md, both repo checklists, the Go styleguide
and the README. The guarantee now belongs to script/cibuild, which runs
both container builds; a bare `docker build .` never lints at all.

Verified in this repo, not only documented: two consecutive script/lint
runs on a byte-identical tree both executed prettier (4.556s and 3.738s,
lint layers DONE with a fresh epoch printed, dependency layers CACHED as
intended); a planted violation failed the build naming the file, and
reverting it went green; a bare `docker build -f Dockerfile.lint .`
failed on the guard; make check, script/docker and script/cibuild all
green with the check layers demonstrably executing; and the main image
build completed without attempting a nested build.
2026-08-10 12:49:34 +00:00
clawbot 0620416869 Give golangci-lint per-checkout cache and lock state (closes #30)
check / check (push) Successful in 7s
A golangci-lint result on a host running many concurrent workers does not
reliably belong to the tree that asked for it. Two independent mechanisms,
which have repeatedly been mistaken for one:

The result cache is keyed on file content, not location, so two checkouts
of the same commit hold byte-identical files, share cache entries, and one
tree's findings are served for the other under the other tree's path. This
produced a confirmed false green as well as the loud false reds. Moving
workers from shared worktrees to their own clones does not address it —
two clones collide exactly as two worktrees did — and removes only the
foreign-path artefact that made the defect noticeable.

The concurrency lock is $TMPDIR/golangci-lint.lock (pkg/commands/run.go,
acquireFileLock), host-global and independent of GOLANGCI_LINT_CACHE, with
a five-second acquire timeout, so it fails when the host is busiest. A
private cache directory does not isolate it. Setting only the cache closes
the contamination half and leaves runs failing red on a condition that is
not a result at all.

REPO_POLICIES.md now carries the canonical Go script/lint: both variables
scoped into a .lint-cache/ directory inside the checkout, above any
container-versus-host branch so every path reaching the linter gets them;
--allow-serial-runners, which keeps the mutual-exclusion guard and queues
rather than aborting, for the same-checkout overlap TMPDIR scoping cannot
cover, with --allow-parallel-runners rejected because it deletes the
guard; and a bounded retry that treats the lock error as VOID rather than
as findings, exiting 75 on exhaustion so it is neither a pass nor a
failure. Detection is on the stderr stream and never on exit status:
findings go to stdout, so a finding quoting the lock message in source
cannot be retried away, and the exit status is not a stable discriminator
anyway. The interim void rule is recorded with the ../ clause that the
original filter missed, and with its limit stated — it catches
contamination that names foreign files, not contamination that suppresses
findings. Both checklists gained the corresponding items, since a half-fix
that sets only the cache reads as complete.

GOCACHE was measured rather than assumed and does not need isolating: with
the two variables scoped per checkout and GOCACHE shared at the host
default, each checkout reported its own paths.

Verified with the snippet extracted from the committed document and
executed as a consuming repo would adopt it, each control paired against
the pre-fix form: contamination reproduced on the pre-fix script and
absent on the adopted one; a stub linter colliding twice then clearing,
with the retry engaging and succeeding; exhaustion exiting 75 with a VOID
message; a genuine finding whose text quotes the lock message reported as
findings with no retry; and a real held lock failing the pre-fix script
with exit 3 while the adopted script, inheriting the same environment,
completed in one second.
2026-08-09 18:51:22 +00:00
sneak 3a218497b8 Keep in-repo agent scratch out of the build context and out of git (closes #27)
check / check (push) Successful in 17s
The canonical .dockerignore and .gitignore both omitted the in-repo agent
scratch directory. On this fleet that directory holds one worktree per
in-flight agent -- an entire additional checkout of the repo each -- so under
`COPY . .` all of it reached the build context and the image. Measured on this
repo before the change: five planted scratch files, at every depth beneath the
directory, all present inside a probe image built from the real context.

Three consequences, only the first of which is about size. The context inflates
by a multiple of the repo. Another session's unreviewed and sometimes
uncommitted work is copied into a build artifact. And the directory is created
and destroyed constantly by tooling, so it invalidates `COPY . .` for reasons
that have nothing to do with this repo's content -- which is the accidental
cache protection described at length in the issue thread, and the reason this
change was sequenced behind the CHECK_EPOCH bust rather than landed alongside
the rest of the .dockerignore work.

The two entries are deliberately different shapes, because the two files have
different semantics and neither is derived from the other. In .dockerignore the
entry is anchored, `.claude`, with no `**/` prefix: the directory occurs exactly
once, at the context root, and the prefixed form additionally matches any nested
directory of that name. Measured rather than argued -- the `**/`-prefixed
control was built and enumerated too, and it removes prompts/.claude/ from the
context as well, which in a repo with a legitimately named nested directory
would silently delete it from the build. In .gitignore the entry is unanchored,
`.claude/`, because a .gitignore pattern already matches at every depth;
`git check-ignore -v` confirms it covering both .claude/ and prompts/.claude/,
so a `**/` prefix there would be redundant at best, and on an anchored pattern
it would be actively wrong.

Anchoring buys that at the cost of a residual exposure, and the vendored files
now say so rather than only asserting the reason to anchor. "Occurs exactly
once, at the context root" is a property of how agents are run, not of the
tooling: the directory is created in the agent's working directory, so a
monorepo running a per-service agent in services/api/ still ships
services/api/.claude/ into the context and the image -- the exact exposure this
change exists to close, left open in the repo shape where it is likeliest. The
.dockerignore header block, the REPO_POLICIES.md bullet and both checklists
state the gap and the remedy (anchored entries for the subdirectories that have
one, or `**/.claude` once no legitimately named nested directory would be
caught). Consuming repos receive the files and not the tracker, so a caveat that
lives only in a PR body is not a caveat.

It is not case-folded the way the neighbouring secret patterns are: tooling
creates the directory in exactly one spelling, so a folded pattern would add no
coverage. The earlier justification -- that a miss costs bloat rather than
exposure -- is gone, because it contradicted this issue's own framing, in which
the cost of a miss is unreviewed work in an image layer.

The second half of this change is the consequence that ships broken silently.
Excluding .git means `git describe` cannot run in any build stage, and it fails
quietly there rather than erroring: `-X main.Version=` comes out empty, the
binary reports no version, and the build still exits 0. The Go template in
REPO_POLICIES.md had `ARG VERSION=dev` and never said where VERSION came from,
which is precisely the gap a reader fills in with `git describe` inside the
build. It now says: computed on the host, threaded in with `--build-arg
VERSION=...`, shown as a complete command rather than as two rules each
documenting half of one. script/docker and script/cibuild do it, with the same
discipline the epoch already has -- assignment on its own line, because a
failing command substitution inside an argument does not trip `set -e`, plus a
non-empty fallback so a build from an export with no .git reports `unknown`
rather than an empty string that reads as a successful version.

That fallback is applied in exactly one place, and that place can actually
execute. `git describe ... || true` leaves the value empty when it fails, and
the `[ -n "$version" ]` line is what substitutes `unknown`. Folding the fallback
into the substitution as `|| echo unknown` would have left the guard unreachable
-- harmless in itself, but a guard that cannot fire is indistinguishable from
one that works to every repo that copies it, and canonical text should not carry
a check that is decorative. Measured firing in both sh and dash: not a git
repository -> unknown, repository with no commits yet -> unknown, this
repository -> the describe output. The checklist now carries the guard line as
well, so the vendored guidance and the vendored script no longer disagree.

The scripts pass VERSION unconditionally rather than growing a per-repo variant.
This repo's Dockerfile declares no `ARG VERSION`, and BuildKit was measured
accepting the unconsumed arg silently -- no warning, no cache effect, confirmed
by the paired runs below in which the bootstrap layer still caches. The
alternative, leaving it to each repo, reintroduces the trap: a repo that needs a
version and finds no VERSION in its scripts writes `git describe` into the
Dockerfile, which is the failure being closed.

The same correction reaches the two Go documents that carry the GOLDFLAGS
pattern, since a `$(shell git describe)` evaluated inside a build stage is
exactly this empty version. Both are now `?=`, and their comments say precisely
when that matters: where a build stage compiles by invoking make, `ARG VERSION`
puts the value in the environment and `?=` defers to it, whereas the canonical
Go template compiles with `go build` directly and uses the Makefile on the host
only -- still `?=`, so that a repo which later moves its build behind make does
not silently start shipping an empty version. Leaving them as `:=`
would have left the corpus telling a reader one thing in the policy and the
opposite in the styleguide.

Both repo checklists gain the entries too. They are what an agent reads while
writing these files, so they are where the wrong shape actually gets written:
the .gitignore item is the one an existing repo never re-fetches, and it now
names `.claude/` explicitly along with the warning not to prefix it.

Verification, by enumerating a probe image rather than by reading the patterns.
Standalone minimal Dockerfile held outside the context, `--no-cache` scoped to
that one image, no prune of any kind. Before: all five planted scratch files in
the image, 42 files total. After: zero, 37 files total, with README.md,
script/check, prompts/NEW_REPO_CHECKLIST.md and a planted probe_src/app.md all
still present as positive controls, so the exclusion is a real exclusion and not
a COPY that stopped copying. Transferred context fell from 161.86kB to 68.82kB,
recorded as corroboration only: BuildKit reports a delta, not a total, and an
earlier run in this repo transferred 2.18kB while shipping 43 files.

The CHECK_EPOCH verification was re-run under the changed context, because the
context moved underneath the earlier measurement. Two consecutive script/cibuild
runs on an unchanged tree: run 1 in 17.07s, run 2 in 5.73s, both executing the
check layer with a distinct epoch and real prettier output from both lint and
fmt-check. The `RUN script/bootstrap` layer is CACHED in run 2, which is the
validity control -- it proves no concurrent prune landed between the runs and
that no --no-cache path was taken, so the check layer executing is the bust
working rather than a cold cache.

Planted files were removed afterwards and their absence confirmed against the
filesystem with `find`, not against `git status`, which cannot see them once
.gitignore covers the directory -- the same blind spot that made the earlier
secret exposure invisible.
2026-08-09 17:13:10 +00:00
sneak fd78aeb003 Keep secrets out of the Docker build context at every depth (closes #29)
check / check (push) Successful in 21s
The canonical .dockerignore was three lines -- .git, node_modules, .DS_Store
-- while the canonical Dockerfile does `COPY . .`, so a developer's local
.env, *.pem or *.key was shipped into the build context and could land in an
image layer. Nothing surfaced it because .gitignore covers those patterns, so
the files are invisible to every git-based check.

The obvious repair, copying .gitignore's secret patterns across, is worse than
the gap it closes. .dockerignore does not use .gitignore semantics: Docker
matches with moby/patternmatcher, which is filepath.Match semantics plus a `**`
extension compiled to a regexp. `*` does not cross `/`, and a pattern without
a leading `**/` is anchored at the build-context root. A file listing .env,
*.pem and *.key therefore reads as solved, reviews as solved, and protects
only the repository root, while config/.env and certs/server.key still ship.
The three-line file at least invited scrutiny; the transplanted form
manufactures confidence and stops anyone looking.

So every depth-independent pattern here carries the `**/` prefix and only
genuinely root-anchored entries stay unprefixed. `**/node_modules` fixes a
defect the three-line file had today for any nested node_modules,
independently of the secret exposure.

Coverage is not limited to the three patterns the issue names, because the
enumeration found more shapes reaching the image. `**/*.env` covers the
prod.env / local.env convention, which the .env and .env.* spellings miss
entirely; `.envrc` is a secrets file by direnv convention; *.p12 and *.pfx are
bundles carrying private keys; and id_rsa, id_dsa, id_ecdsa and id_ed25519 are
the extensionless SSH keys that were covered before only when someone happened
to append a .key suffix.

Matching is case-sensitive, so `**/*.key` does not match certs/SERVER.KEY,
which is reachable on the case-insensitive filesystems most laptops use.
Doubling each pattern with an ALL-CAPS twin is not the fix: measured against
the planted set it still ships certs/Server.Key and certs/Ca.Pem while reading
as though case were handled, which is this issue's failure mode restated in a
new place. The matcher supports character ranges, so every secret name is
written that way -- `**/*.[kK][eE][yY]`, `**/*.[pP][eE][mM]`,
`**/.[eE][nN][vV][rR][cC]`, `**/[iI][dD]_[rR][sS][aA]` and the rest. The
extensionless SSH keys and .envrc are folded for the same reason the
extensions are: on the very filesystems that make SERVER.KEY reachable, direnv
reads .ENVRC and ssh reads ID_RSA, so exempting them would have contradicted
the rule that justifies the folding. Since `*` matches the empty string,
`**/*.[eE][nN][vV]` already covers a bare .ENV and no separate literal .env
entry is needed; the literal one is gone rather than left to imply that case
is unhandled there.

Deliberately not covered: bare `key` and `pem` filenames, which no tool
produces and which collide with legitimate paths (a `**/key` pattern would
delete an internal/key/ package directory from the context); `**/id_*`, which
would match ordinary source such as id_generator.go and ID_MAP.go; and *.crt
and *.cer, which are public certificates rather than secrets and are sometimes
a legitimate build input. Each of those is planted as a positive control and
verified present in the image after the change.

The one predictable false positive is a committed env template: `**/*.env`
excludes example.env. The remedy travels with the file rather than living in a
review thread -- the header comment and the policy both say to re-include it
with a negation, `!docs/example.env`, and never to delete the pattern, which
would reopen the exposure for everything else it covers.

The OS and editor patterns are included on their own merits rather than by
mirroring .gitignore. None of them is ever a build input, and editor state in
particular churns under a developer's hands, so each one is a source of
`COPY . .` invalidation carrying no information about the source tree. Now
that the checks are keyed on CHECK_EPOCH rather than on accidental context
churn, there is no reason left to keep churn in the context. Language build
artifacts are deliberately absent: they are per-repo, and the file's header
comment tells consuming repos to add their own host-built binaries, which is
the case that actually bites -- a host `make build` drops a multi-megabyte
artifact into the context where .gitignore hides it from every git-based
check. That comment gives the anchored form explicitly, `/myapp` rather than
`**/myapp`, because the prefixed spelling also matches cmd/myapp/ and deletes
the package directory. The header comment is the only part of this guidance a
consuming repo actually receives, since it is vendored with the file.

.gitignore is untouched. Its semantics are the inverse: an unanchored pattern
already matches at any depth, so `**/`-prefixing it produces a file that is
wrong in a way that looks careful. That asymmetry is why "derive one from the
other" was the wrong instruction, and it is now written down in
REPO_POLICIES.md in both directions, together with the case-sensitivity rule,
the negation remedy, and the requirement to verify by enumerating the image
rather than by reading the patterns. Every consuming repo inherits
.dockerignore by copy, so the trap has to live where the next person looks,
not only be fixed once here. Both repo checklists gain the same requirements.

Verified by planting 130 secret files -- twenty-six name shapes, including
every capitalisation of .env, .env.*, prod.env, .envrc, id_rsa, id_ed25519,
ca.pem, server.key, bundle.p12 and bundle.pfx, at five depths from the context
root to a/b/c -- alongside nine positive controls, then building a standalone
probe image doing `COPY . .` and listing what actually landed inside it. The
patterns as first written leaked 35 of the 130: every .ENVRC, .Envrc, ID_RSA,
Id_Rsa, ID_ED25519, .ENV.PRODUCTION and .Env.Local, at all five depths. A
lowercase-only control leaks 80, so the probe is not vacuous. After this
change: zero, with all nine controls still present, including
internal/ID_MAP.go and certs/CA.CRT.

Transferred-context size is recorded but load-bearing on nothing: an earlier
run reported 2.18kB transferred while 43 files, five of them secrets, were in
the image. BuildKit transfers only the delta from the previous build, so the
number describes the transfer and not the contents.

Planted files were removed and their absence confirmed against the filesystem
rather than against `git status`, which could not have seen them.

`make docker` re-run after the change: the check layer executed rather than
being served from cache, so the CHECK_EPOCH verification still holds under the
altered build context.
2026-08-09 16:42:00 +00:00
clawbot d173e69f85 Make the pinned golangci-lint actually reach the host (closes #28)
check / check (push) Successful in 9s
REPO_POLICIES.md now carries the canonical script/bootstrap snippet for Go
repos alongside the .golangci.yml bullet, where the pinned linter version
already lives.

The guard it replaces, `if missing golangci-lint; then go install ...; fi`,
tests PATH presence and never version, so on any already-provisioned machine
the pin is inert and a version bump is a no-op. The Dockerfile installs
unconditionally into a clean image, so CI and local then disagree about what
the linter is: a local `make check` green while `make docker` rejects the same
commit, and a container run surfacing findings the host run cannot see.

Comparing versions alone is not enough. `go install` writes to GOBIN (or
GOPATH/bin) while callers resolve through PATH, so a shadowing binary earlier
in PATH lets the install succeed and change nothing a caller ever sees, while
bootstrap prints success. The canonical form therefore compares the installed
version against the pin, re-resolves through PATH after installing and asserts
the pin, and treats any unparseable --version output as a mismatch so the
failure direction is a redundant install rather than a skipped one.

The comparison is exact over the whole version token. A parser that stops at
the first `-` reports 2.12.2 for a host running 2.12.2-rc1, which compares
equal to a 2.12.2 pin and skips the install -- the original defect, reachable
through the comparison meant to close it, and not caught by requiring the pin
to be tagged, since a pre-release is tagged too.

When the assert fails the diagnosis is derived from the resolved path rather
than asserted: a path outside the install directory is shadowing and the
operator is told to remove it or reorder PATH; a path inside it is not, and
saying so would send them after a fault that does not exist; no resolution at
all means the install directory is simply absent from PATH. A trailing slash
on GOBIN is normalised away, since it would otherwise make the inside-the-
directory test miss and misreport shadowing.

The snippet ends with a call site, and both success paths print a confirmation
naming the version. Two definitions with no invocation are a silent no-op with
exactly the shape this change exists to close, and a success path that prints
nothing is byte-identical to that no-op: same exit status, same empty output.

The version helper ends in `|| true` so a --version that exits non-zero cannot
kill the script through `set -e` under `set -o pipefail` before the diagnostic
is printed, which the styleguide's bash form would otherwise do.

The policy text states each of those as a requirement rather than leaving them
implicit in the code, and records why the commit-pinned `go install` ref
satisfies the hash-pinning rule: a commit hash is not a mutable tag, and the
checksum database verifies the fetch, with no repo go.sum consulted, since
`go install pkg@version` ignores the go.mod in the current directory or any
parent. Whether a go.mod tool dependency should replace that is an open
decision and is linked rather than settled here. The two version strings must
be kept in sync and must match exactly what --version prints; tagged pins are
preferred because the expected string is then derivable from the ref, rather
than because the comparison cannot handle a pseudo-version.

Verification runs the controls against the block as a consuming repo would
adopt it, pasted into a script/bootstrap-shaped file and executed, rather than
sourcing it and calling the function directly.

The node and yarn handling described earlier in the document is untouched.
2026-08-09 16:01:36 +00:00
clawbot 51c394552e Bust the Docker check-layer cache with a per-invocation CHECK_EPOCH (closes #26)
check / check (push) Successful in 7s
script/cibuild was a plain `docker build .`, and the Dockerfile does
`COPY . .` followed by `RUN make check`. Docker invalidates a COPY layer
only when the copied content changes, so on an unchanged tree the check
layer was served from cache, the suite never ran, and the build still
exited 0. Measured here: run 1 took 18.5s and ran the suite; run 2 on a
byte-identical tree took 0.286s with `RUN make check` CACHED.

script/cibuild and script/docker now assign a per-invocation nonce on its
own line and pass it as --build-arg CHECK_EPOCH. The Dockerfile declares
ARG CHECK_EPOCH, guards it with `[ -n "$CHECK_EPOCH" ] || exit 1`, and
expands it into the check command. Post-fix, two consecutive runs both
execute make check (17.4s / 8.1s) with `RUN script/bootstrap` still
CACHED, so dependency layers are untouched and the build ceiling is not
at risk.

The guard is what makes a bare `docker build .` — the command
REPO_POLICIES named verbatim — fail closed rather than reuse the empty
and therefore stable cache key; verified failing in 0.455s. Holding the
epoch constant restores the false green (run 2 fully CACHED), which pins
the varying value as the operative mechanism rather than a coincidence.

Because the guard references $CHECK_EPOCH it is itself value-keyed:
BuildKit renders the epoch into that layer's description and re-runs the
layer when the value changes. Each stage therefore has two independent
invalidation points, the guard and the expansion, and the guard always
precedes the check RUN. Both are kept and the prose now records this;
the expansion remains defence in depth and is what puts the epoch in the
build log.

The false guarantee was org-canonical text in more than one document, so
it is corrected everywhere it appeared rather than only where the issue
first found it. REPO_POLICIES.md carried it in two places, and its Go
multistage template had check steps in two stages; ARG is stage-scoped,
so both stages get the treatment or the fleet inherits the half-fixed
shape. CODE_STYLEGUIDE_GO.md restated the guarantee for the bare command
this change makes fail closed. NEW_REPO_CHECKLIST.md specified the
pre-fix script/cibuild verbatim, so every new repo would have been born
with the false green, and EXISTING_REPO_CHECKLIST.md ended on a
`docker build` acceptance item that the guard makes unsatisfiable by
design — an agent working that checklist would have been led to delete
the guard to tick the last box. Both checklists' Dockerfile criteria were
also satisfiable by a Dockerfile whose check layers are still frozen, and
now require the ARG and guard in every check-running stage.

REPO_POLICIES.md's own Dockerfile criterion carried that same incomplete
form; it is tightened by cross-reference to the CHECK_EPOCH rule rather
than by duplicating the canonical block. The Go template's Key points
gain a caveat that the cache-bust turns the `COPY --from=lint` no-op into
a content-cache hit, so a repo using a file-dependency trick for stage
ordering must re-prove that ordering on a warm cache after adopting it.
That was re-proved in another repo in the org which uses the trick with a
marker file, where the ordering held; the caveat states explicitly that
it was not verified here, this repo being single-stage with no lint stage
to order against.
2026-08-09 15:15:03 +00:00
30 changed files with 1499 additions and 3360 deletions

No files matched your search

+64 -45
View File
@@ -1,55 +1,75 @@
# .dockerignore does NOT use .gitignore semantics. Docker matches with
# moby/patternmatcher: filepath.Match plus `**`, so `*` does not cross
# `/` and an unprefixed pattern is anchored at the context root. Every
# depth-independent pattern therefore needs `**/`, or `config/.env` and
# `certs/server.key` still ship while this file reads as solved. Only
# genuinely root-anchored entries go unprefixed. Never transplant these
# into .gitignore, where `**/` is wrong.
# Docker matches this file with moby/patternmatcher: Go filepath.Match
# semantics plus a `**` extension, compiled to a regexp. Plain
# filepath.Match has no `**` at all. What follows from that: `*` does not
# cross `/`, and a pattern without a leading `**/` is anchored at the
# build-context root. Every depth-independent pattern therefore needs the
# `**/` prefix — without it `config/.env` and `certs/server.key` still
# ship while the file reads as solved.
#
# Matching is case-sensitive, so secrets use character ranges rather
# than an ALL-CAPS twin, which would still miss `Server.Key`.
# Root-anchored entries are for paths that occur exactly once, at the
# context root. A host-built binary is the usual case, and it must be
# written anchored: `/myapp`, never `**/myapp`. The prefixed form also
# matches `cmd/myapp/`, which deletes the package directory from the
# context. In-repo agent scratch is the other case, for the same reason
# — with the caveat recorded at that entry: anchoring is exact only
# where agents run at the repo root, and a repo where they do not must
# add its own entries.
#
# Extend with this repo's own host-built artifacts, written anchored:
# `/myapp`, never `**/myapp`, which also matches `cmd/myapp/` and
# deletes the package directory from the context.
# Matching is case-sensitive, so `**/*.key` does not match
# `certs/SERVER.KEY`, which is reachable on the case-insensitive
# filesystems most laptops use. Adding an ALL-CAPS twin per pattern is
# not the fix: it still misses `Server.Key` while reading as though case
# were handled. Character ranges cover every spelling in one line, so
# every secret name below is written that way — including the
# extensionless SSH keys and `.envrc`, because on those same
# case-insensitive filesystems direnv reads `.ENVRC` and ssh reads
# `ID_RSA`.
#
# `**/*.[eE][nN][vV]` also excludes a committed env template such as
# `example.env`. If the build genuinely needs one, re-include it with a
# negation after the pattern: `!docs/example.env`.
#
# Extend this file with the repo's own host-built artifacts (compiled
# binaries, test binaries, coverage output); those are per-repo and
# belong here because a host build otherwise drops them into the
# context.
# .git is sent without its config. Without a VERSION build argument the
# stage that compiles runs `git describe --tags --always` on .git, which
# does not need .git/config; that file can hold a credential, such as a
# password in a remote URL or the token the CI checkout step stores there.
# Each submodule keeps a config with the same exposure in its git directory
# under .git/modules/, nested again for a submodule's own submodules, or in
# its own .git directory when it keeps one.
# KNOWN GAP: a submodule whose name has a `config` segment (`config`,
# `deploy/config`, `config/lib`) loses its whole git directory, because
# `**/.git/modules/**/config` also matches that segment's directory
# under .git/modules/. Go's version stamping then fails the build;
# nothing leaks. Name such a submodule without that segment:
# `git submodule add --name`.
**/.git/config
**/.git/modules/**/config
# Repository metadata: exactly one, at the context root. Excluding it
# means `git describe` cannot run in any build stage, and it fails
# quietly there rather than erroring, so a version embedded that way
# comes out empty. Compute the version on the host and pass it in with
# `--build-arg VERSION=...`; see the version rule in REPO_POLICIES.md.
.git
# Agent scratch: one full checkout of the repo per in-flight agent.
# Anchored because it occurs once where agents run at the repo root.
# KNOWN GAP: a repo running agents in subdirectories still ships
# `services/api/.claude/` and must add its own anchored entry.
# In-repo agent scratch: a directory holding a full additional checkout
# of the repo for each in-flight agent. Anchored because it occurs
# exactly once *where agents run at the repo root*, which is the
# convention this file assumes; the `**/` form would also match any
# nested directory of that name and delete it from the build.
#
# KNOWN GAP, and it is not hypothetical: the directory is created in the
# agent's working directory. If agents in this repo run in
# subdirectories — a monorepo with a per-service agent, say — then
# `services/api/.claude/` is NOT excluded by the line below and still
# reaches the build context and the image, which is the exposure this
# entry exists to close. A repo in that shape adds its own anchored
# entries (`/services/api/.claude`), or `**/.claude` after confirming no
# legitimately named nested directory would be caught.
#
# Not case-folded, unlike the secret patterns below: tooling creates
# this directory in exactly one spelling, so a folded pattern would add
# no coverage.
.claude
# yarn's install state and cache stay out, and its release file stays
# in. Docker obeys the last matching line, so these two lines sit above
# the secret patterns, which must win under .yarn/releases/.
.yarn/*
!.yarn/releases
# Environment files. `*.env` covers bare `.env` and the `prod.env`
# convention. Re-include a committed template with a negation if the
# build needs one: `!docs/example.env`.
# Environment files. `*.env` covers both the bare `.env` name (`*` matches
# the empty string) and the `prod.env` convention.
**/*.[eE][nN][vV]
**/.[eE][nN][vV].*
**/.[eE][nN][vV][rR][cC]
# Private keys and the bundles carrying them. Public certificates
# (*.crt, *.cer) are deliberately absent: they are legitimate inputs.
# Private keys and the bundles that carry them. Public certificates
# (*.crt, *.cer) are deliberately absent: they are not secrets and are
# sometimes a legitimate build input.
**/*.[pP][eE][mM]
**/*.[kK][eE][yY]
**/*.[pP]12
@@ -57,9 +77,7 @@
**/[iI][dD]_[rR][sS][aA]
**/[iI][dD]_[dD][sS][aA]
**/[iI][dD]_[eE][cC][dD][sS][aA]
**/[iI][dD]_[eE][cC][dD][sS][aA]_[sS][kK]
**/[iI][dD]_[eE][dD]25519
**/[iI][dD]_[eE][dD]25519_[sS][kK]
# Dependencies: restored inside the image, never copied in.
**/node_modules
@@ -68,7 +86,8 @@
**/.DS_Store
**/Thumbs.db
# Editor state: never a build input, and it churns COPY.
# Editor state. Never a build input, and it churns under a developer's
# hands, so it invalidates COPY for reasons unrelated to the source.
**/*.swp
**/*.swo
**/*~
-6
View File
@@ -10,9 +10,3 @@ insert_final_newline = true
[Makefile]
indent_style = tab
[*.go]
indent_style = tab
# This repository's own sections, such as one for another language it
# uses, go below this comment, and a re-vendor keeps them.
-7
View File
@@ -1,7 +0,0 @@
# Every PR adds an entry at the top of TODO.md's Completed Steps; union keeps
# both sides instead of conflicting. Git never reports a conflict here: read
# the merged entries after every merge or rebase.
TODO.md merge=union
# yarn's release file is one opaque file in diffs and merges.
.yarn/releases/** binary
-11
View File
@@ -1,20 +1,9 @@
name: check
on: [push]
# Free the shared runner: a new push cancels only the same branch's older run.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
runs-on: ubuntu-latest
# Free the shared runner from a hung build.
timeout-minutes: 20
steps:
# actions/checkout v4.2.2, 2026-02-22
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
# script/cibuild needs no token, so none is left in .git/config.
with:
persist-credentials: false
# All history and tags, so git describe finds the version tag.
fetch-depth: 0
- run: script/cibuild
+5 -31
View File
@@ -19,35 +19,9 @@ Thumbs.db
# Node
node_modules/
.yarn/*
!.yarn/releases
# Secrets. Unanchored, so each matches at every depth. Matching is
# case-sensitive on Linux, so names use character ranges rather than a
# lowercase form that misses `Server.Key`.
# Environment files. `*.env` covers bare `.env` and the `prod.env`
# convention. Only the templates `example.env` and `sample.env` are
# re-included below. A repository that commits any other template adds
# its own negation at the end of this file, for example `!.env.example`.
*.[eE][nN][vV]
.[eE][nN][vV].*
.[eE][nN][vV][rR][cC]
!example.env
!sample.env
# Private keys and the bundles carrying them.
*.[pP][eE][mM]
*.[kK][eE][yY]
*.[pP]12
*.[pP][fF][xX]
[iI][dD]_[rR][sS][aA]
[iI][dD]_[dD][sS][aA]
[iI][dD]_[eE][cC][dD][sS][aA]
[iI][dD]_[eE][cC][dD][sS][aA]_[sS][kK]
[iI][dD]_[eE][dD]25519
[iI][dD]_[eE][dD]25519_[sS][kK]
# This repository's own entries, such as its build outputs, go below
# this comment, and a re-vendor keeps them. Anchor a binary built at the
# root: `/myapp`, never `myapp`, which also ignores `cmd/myapp/`.
# Environment / secrets
.env
.env.*
*.pem
*.key
+3 -91
View File
@@ -3,9 +3,6 @@ version: "2"
# Config schema uses the golangci-lint v2 layout (settings live under
# linters.settings, not top-level linters-settings) so that the
# thresholds below are actually applied by golangci-lint >= v2.
#
# This file has no formatters section, so golangci-lint run does not run
# gofmt. A repository's script/fmt-check runs it, on the host.
run:
timeout: 5m
@@ -13,21 +10,14 @@ run:
linters:
default: all
enable:
# Successor to the deprecated gomodguard. Named explicitly, rather than
# left to `default: all`, because it carries the module policy below.
- gomodguard_v2
disable:
# Genuinely incompatible with project patterns
- exhaustruct_v5 # Requires all struct fields
- exhaustruct # Requires all struct fields
- depguard # Dependency allow/block lists
- godot # Requires comments to end with periods
- wsl # Deprecated, replaced by wsl_v5
- wrapcheck # Too verbose for internal packages
- varnamelen # Short names like db, id are idiomatic Go
# Deprecated: the warning is attached to the old name, so it is
# silenced by disabling that name, not by enabling the successor.
- exhaustruct # Deprecated, replaced by exhaustruct_v5
- wsl # Deprecated, replaced by wsl_v5
- gomodguard # Deprecated, replaced by gomodguard_v2
settings:
lll:
line-length: 88
@@ -38,85 +28,7 @@ linters:
max-complexity: 15
dupl:
threshold: 100
depguard:
# Test-support code must not be compiled into the shipped binary. A
# test-support package exists to hand a test privileges the program
# itself must never have, so a file that is not a test must not import
# one. Test files, and the files inside a package whose directory name
# ends in `test`, are where that code belongs, and are exempt. A package
# in a subdirectory of that directory is not exempt. `${base-path}` is
# the directory holding this file, so the name of the directory a
# repository is cloned into does not count.
#
# The deny list below is the one part of this file a repository is
# expected to extend, and the only part it may. depguard matches an
# import path against a list of prefixes, so it cannot be told "any path
# whose last segment ends in test"; a repository's own test-support
# packages have to be named here one at a time, by full import path,
# under a module path that differs from repository to repository. Add
# them; change nothing else.
rules:
test-support:
list-mode: lax
files:
- "$all"
- "!$test"
- "!${base-path}**/*test/*"
deny:
- pkg: net/http/httptest
desc: >-
Test-support code belongs in test files and in packages whose
directory name ends in test, not in the shipped binary.
# Each entry names a module not to use and what to use instead. Every
# entry matches the module path exactly.
gomodguard_v2:
blocked:
- module: github.com/rs/zerolog
recommendations:
- log/slog
reason: "Structured logging is stdlib log/slog."
# These entries cover only the github.com/go-redis/redis module paths,
# one entry per path, because the later releases are separate paths.
# A prefix match would be shorter but would also reach
# github.com/go-redis/redismock/v9, the test double for the successor
# these entries recommend.
- module: github.com/go-redis/redis
recommendations:
- github.com/redis/go-redis/v9
reason: "Pre-fork module; use the maintained go-redis v9."
- module: github.com/go-redis/redis/v7
recommendations:
- github.com/redis/go-redis/v9
reason: "Pre-fork module; use the maintained go-redis v9."
- module: github.com/go-redis/redis/v8
recommendations:
- github.com/redis/go-redis/v9
reason: "Pre-fork module; use the maintained go-redis v9."
- module: github.com/go-redis/redis/v9
recommendations:
- github.com/redis/go-redis/v9
reason: "Pre-fork module; use the maintained go-redis v9."
- module: github.com/sergi/go-diff
recommendations:
- github.com/aymanbagabas/go-udiff
reason: "No unified diff output; use go-udiff."
- module: github.com/hexops/gotextdiff
recommendations:
- github.com/aymanbagabas/go-udiff
reason: "Unmaintained fork; use go-udiff."
exclusions:
rules:
# homoicon keeps a local copy of sobek, its JavaScript engine, as sneak
# decided in
# https://git.eeqj.de/sneak/homoicon/issues/1759#issuecomment-153261.
# This is an exclusion because gomoddirectives does not check its
# replace-allow-list for a replace that points at a local path.
- path: ^go\.mod$
linters:
- gomoddirectives
text: '^local replacement are not allowed: github\.com/grafana/sobek$'
issues:
max-issues-per-linter: 0
max-same-issues: 0
uniq-by-line: false
-1
View File
@@ -1,3 +1,2 @@
node_modules/
.yarn/
yarn.lock
-1000
View File
@@ -1,1000 +0,0 @@
#!/usr/bin/env node
/* eslint-disable */
//prettier-ignore
(()=>{var QXe=Object.create;var A6=Object.defineProperty;var FXe=Object.getOwnPropertyDescriptor;var NXe=Object.getOwnPropertyNames;var OXe=Object.getPrototypeOf,LXe=Object.prototype.hasOwnProperty;var Ae=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var tt=(t,e)=>()=>(t&&(e=t(t=0)),e);var H=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),lr=(t,e)=>{for(var r in e)A6(t,r,{get:e[r],enumerable:!0})},_Xe=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of NXe(e))!LXe.call(t,a)&&a!==r&&A6(t,a,{get:()=>e[a],enumerable:!(s=FXe(e,a))||s.enumerable});return t};var st=(t,e,r)=>(r=t!=null?QXe(OXe(t)):{},_Xe(e||!t||!t.__esModule?A6(r,"default",{value:t,enumerable:!0}):r,t));var Oi={};lr(Oi,{SAFE_TIME:()=>bae,S_IFDIR:()=>fT,S_IFLNK:()=>hT,S_IFMT:()=>Rh,S_IFREG:()=>nS});var Rh,fT,nS,hT,bae,Dae=tt(()=>{Rh=61440,fT=16384,nS=32768,hT=40960,bae=456789e3});var vr={};lr(vr,{EBADF:()=>ha,EBUSY:()=>MXe,EEXIST:()=>VXe,EINVAL:()=>HXe,EISDIR:()=>qXe,ENOENT:()=>jXe,ENOSYS:()=>UXe,ENOTDIR:()=>GXe,ENOTEMPTY:()=>YXe,EOPNOTSUPP:()=>KXe,EROFS:()=>WXe,ERR_DIR_CLOSED:()=>p6});function ou(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function MXe(t){return ou("EBUSY",t)}function UXe(t,e){return ou("ENOSYS",`${t}, ${e}`)}function HXe(t){return ou("EINVAL",`invalid argument, ${t}`)}function ha(t){return ou("EBADF",`bad file descriptor, ${t}`)}function jXe(t){return ou("ENOENT",`no such file or directory, ${t}`)}function GXe(t){return ou("ENOTDIR",`not a directory, ${t}`)}function qXe(t){return ou("EISDIR",`illegal operation on a directory, ${t}`)}function VXe(t){return ou("EEXIST",`file already exists, ${t}`)}function WXe(t){return ou("EROFS",`read-only filesystem, ${t}`)}function YXe(t){return ou("ENOTEMPTY",`directory not empty, ${t}`)}function KXe(t){return ou("EOPNOTSUPP",`operation not supported, ${t}`)}function p6(){return ou("ERR_DIR_CLOSED","Directory handle was closed")}var AT=tt(()=>{});var Lc={};lr(Lc,{BigIntStatsEntry:()=>iw,DEFAULT_MODE:()=>m6,DirEntry:()=>d6,StatEntry:()=>nw,areStatsEqual:()=>y6,clearStats:()=>pT,convertToBigIntStats:()=>JXe,makeDefaultStats:()=>Pae,makeEmptyStats:()=>zXe});function Pae(){return new nw}function zXe(){return pT(Pae())}function pT(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):g6.types.isDate(r)&&(t[e]=new Date(0))}return t}function JXe(t){let e=new iw;for(let r in t)if(Object.hasOwn(t,r)){let s=t[r];typeof s=="number"?e[r]=BigInt(Math.floor(s)):g6.types.isDate(s)&&(e[r]=new Date(s))}return e.atimeNs=e.atimeMs*BigInt(1e6)+BigInt(Math.floor(t.atimeMs%1*1e3))*BigInt(1e3),e.mtimeNs=e.mtimeMs*BigInt(1e6)+BigInt(Math.floor(t.mtimeMs%1*1e3))*BigInt(1e3),e.ctimeNs=e.ctimeMs*BigInt(1e6)+BigInt(Math.floor(t.ctimeMs%1*1e3))*BigInt(1e3),e.birthtimeNs=e.birthtimeMs*BigInt(1e6)+BigInt(Math.floor(t.birthtimeMs%1*1e3))*BigInt(1e3),e}function y6(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,s=e;return!(r.atimeNs!==s.atimeNs||r.mtimeNs!==s.mtimeNs||r.ctimeNs!==s.ctimeNs||r.birthtimeNs!==s.birthtimeNs)}var g6,m6,d6,nw,iw,E6=tt(()=>{g6=st(Ae("util")),m6=33188,d6=class{constructor(){this.name="";this.path="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},nw=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=m6;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},iw=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);thisLine truncated
`).length,s=e.length-r;return r>s?`\r
`:`
`}function ty(t,e){return e.replace(/\r?\n/g,l$e(t))}var Lae,_ae,Sp,Th,ry=tt(()=>{Lae=Ae("crypto"),_ae=Ae("os");C6();_c();Sp=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let s=[e];for(;s.length>0;){let a=s.shift();if((await this.lstatPromise(a)).isDirectory()){let l=await this.readdirPromise(a);if(r)for(let f of l.sort())s.push(this.pathUtils.join(a,f));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let s=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),l=(0,Lae.createHash)(r),f=0;for(;(f=await this.readPromise(s,n,0,65536))!==0;)l.update(f===65536?n:n.slice(0,f));return l.digest("hex")}finally{await this.closePromise(s)}}async removePromise(e,{recursive:r=!0,maxRetries:s=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(l=>this.removePromise(this.pathUtils.resolve(e,l))))}for(let n=0;n<=s;n++)try{await this.rmdirPromise(e);break}catch(l){if(l.code!=="EBUSY"&&l.code!=="ENOTEMPTY")throw l;n<s&&await new Promise(f=>setTimeout(f,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let s;try{s=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(s.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let l=2;l<=a.length;++l){let f=a.slice(0,l).join(this.pathUtils.sep);if(!this.existsSync(f)){try{await this.mkdirPromise(f)}catch(h){if(h.code==="EEXIST")continue;throw h}if(n??=f,r!=null&&await this.chmodPromise(f,r),s!=null)await this.utimesPromise(f,s[0],s[1]);else{let h=await this.statPromise(this.pathUtils.dirname(f));await this.utimesPromise(f,h.atime,h.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:s}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let l=2;l<=a.length;++l){let f=a.slice(0,l).join(this.pathUtils.sep);if(!this.existsSync(f)){try{this.mkdirSync(f)}catch(h){if(h.code==="EEXIST")continue;throw h}if(n??=f,r!=null&&this.chmodSync(f,r),s!=null)this.utimesSync(f,s[0],s[1]);else{let h=this.statSync(this.pathUtils.dirname(f));this.utimesSync(f,h.atime,h.mtime)}}}return n}async copyPromise(e,r,{baseFs:s=this,overwrite:a=!0,stableSort:n=!1,stableTime:l=!1,linkStrategy:f=null}={}){return await Rae(this,e,s,r,{overwrite:a,stableSort:n,stableTime:l,linkStrategy:f})}copySync(e,r,{baseFs:s=this,overwrite:a=!0}={}){let n=s.lstatSync(r),l=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let h=s.readdirSync(r);for(let A of h)this.copySync(this.pathUtils.join(e,A),s.pathUtils.join(r,A),{baseFs:s,overwrite:a})}else if(n.isFile()){if(!l||a){l&&this.removeSync(e);let h=s.readFileSync(r);this.writeFileSync(e,h)}}else if(n.isSymbolicLink()){if(!l||a){l&&this.removeSync(e);let h=s.readlinkSync(r);this.symlinkSync(dT(this.pathUtils,h),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let f=n.mode&511;this.chmodSync(e,f)}async changeFilePromise(e,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,s):this.changeFileTextPromise(e,r,s)}async changeFileBufferPromise(e,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:s})}async changeFileTextPromise(e,r,{automaticNewlines:s,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let l=s?ty(n,r):r;n!==l&&await this.writeFilePromise(e,l,{mode:a})}changeFileSync(e,r,s={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,s):this.changeFileTextSync(e,r,s)}changeFileBufferSync(e,r,{mode:s}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:s})}changeFileTextSync(e,r,{automaticNewlines:s=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let l=s?ty(n,r):r;n!==l&&this.writeFileSync(e,l,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(s){if(s.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw s}}moveSync(e,r){try{this.renameSync(e,r)}catch(s){if(s.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw s}}async lockPromise(e,r){let s=`${e}.flock`,a=1e3/60,n=Date.now(),l=null,f=async()=>{let h;try{[h]=await this.readJsonPromise(s)}catch{return Date.now()-n<500}try{return process.kill(h,0),!0}catch{return!1}};for(;l===null;)try{l=await this.openPromise(s,"wx")}catch(h){if(h.code==="EEXIST"){if(!await f())try{await this.unlinkPromise(s);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(A=>setTimeout(A,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${s})`)}else Line truncated
`)}writeJsonSync(e,r,{compact:s=!1}={}){let a=s?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)}
`)}async preserveTimePromise(e,r){let s=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,s.atime,s.mtime)}async preserveTimeSync(e,r){let s=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,s.atime,s.mtime)}},Th=class extends Sp{constructor(){super(Y)}}});var fo,bp=tt(()=>{ry();fo=class extends Sp{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,s){return this.baseFs.openPromise(this.mapToBase(e),r,s)}openSync(e,r,s){return this.baseFs.openSync(this.mapToBase(e),r,s)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,s,a,n){return await this.baseFs.readPromise(e,r,s,a,n)}readSync(e,r,s,a,n){return this.baseFs.readSync(e,r,s,a,n)}async writePromise(e,r,s,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,s):await this.baseFs.writePromise(e,r,s,a,n)}writeSync(e,r,s,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,s):this.baseFs.writeSync(e,r,s,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,s){return this.baseFs.fchownPromise(e,r,s)}fchownSync(e,r,s){return this.baseFs.fchownSync(e,r,s)}async chownPromise(e,r,s){return this.baseFs.chownPromise(this.mapToBase(e),r,s)}chownSync(e,r,s){return this.baseFs.chownSync(this.mapToBase(e),r,s)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,s=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),s)}copyFileSync(e,r,s=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),s)}async appendFilePromise(e,r,s){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,s)}appendFileSync(e,r,s){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,s)}async writeFilePromise(e,r,s){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,s)}writeFileSync(e,r,s){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,s)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,s){return this.baseFs.utimesPromise(this.mapToBase(e),r,s)}utimesSync(e,r,s){return this.baseFs.utimesSync(this.mapToBase(e),r,s)}async lutimesPromise(e,r,s){return this.baseFs.lutimesPromise(this.mapToBase(e),r,s)}lutimesSync(e,r,s){return this.baseFs.lutimesSync(this.mapToBase(e),r,s)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async rmPromise(e,r){return this.baseFs.rmPromise(this.mapToBase(e),r)}rmSync(e,r){return this.baseFs.rmSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,s){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,s);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkP Line truncated
`,La=Pr(`\\
`,!1),HA=function(){return""},Ma="\\",Ua=Pr("\\",!1),jA=/^[\\$"`]/,Fr=ws(["\\","$",'"',"`"],!1,!1),Zo=function(O){return O},Ec="\\a",Ge=Pr("\\a",!1),Hr=function(){return"a"},oh="\\b",GA=Pr("\\b",!1),qA=function(){return"\b"},Zu=/^[Ee]/,Xu=ws(["E","e"],!1,!1),Vl=function(){return"\x1B"},ve="\\f",Jt=Pr("\\f",!1),Wl=function(){return"\f"},as="\\n",To=Pr("\\n",!1),Vt=function(){return`
`},ei="\\r",Ha=Pr("\\r",!1),As=function(){return"\r"},cs="\\t",Ic=Pr("\\t",!1),Un=function(){return" "},Ei="\\v",$u=Pr("\\v",!1),Ud=function(){return"\v"},wc=/^[\\'"?]/,Cc=ws(["\\","'",'"',"?"],!1,!1),Bc=function(O){return String.fromCharCode(parseInt(O,16))},it="\\x",vc=Pr("\\x",!1),ah="\\u",Yl=Pr("\\u",!1),Yn="\\U",ja=Pr("\\U",!1),VA=function(O){return String.fromCodePoint(parseInt(O,16))},WA=/^[0-7]/,Ga=ws([["0","7"]],!1,!1),ll=/^[0-9a-fA-f]/,rr=ws([["0","9"],["a","f"],["A","f"]],!1,!1),ti=fh(),qa="{}",Sc=Pr("{}",!1),ks=function(){return"{}"},Kl="-",ef=Pr("-",!1),zl="+",bc=Pr("+",!1),ls=".",Ys=Pr(".",!1),ul=function(O,J,se){return{type:"number",value:(O==="-"?-1:1)*parseFloat(J.join("")+"."+se.join(""))}},ch=function(O,J){return{type:"number",value:(O==="-"?-1:1)*parseInt(J.join(""))}},Jl=function(O){return{type:"variable",...O}},zi=function(O){return{type:"variable",name:O}},ri=function(O){return O},Zl="*",et=Pr("*",!1),dt="/",_t=Pr("/",!1),Sr=function(O,J,se){return{type:J==="*"?"multiplication":"division",right:se}},ne=function(O,J){return J.reduce((se,Ie)=>({left:se,...Ie}),O)},Be=function(O,J,se){return{type:J==="+"?"addition":"subtraction",right:se}},_e="$((",bt=Pr("$((",!1),xt="))",jt=Pr("))",!1),Ir=function(O){return O},Nn="$(",Qi=Pr("$(",!1),ps=function(O){return O},ni="${",Dc=Pr("${",!1),mI=":-",Iv=Pr(":-",!1),Xo=function(O,J){return{name:O,defaultValue:J}},yI=":-}",Hd=Pr(":-}",!1),wv=function(O){return{name:O,defaultValue:[]}},$o=":+",jd=Pr(":+",!1),Gd=function(O,J){return{name:O,alternativeValue:J}},tf=":+}",qd=Pr(":+}",!1),gm=function(O){return{name:O,alternativeValue:[]}},mm=function(O){return{name:O}},ym="$",EI=Pr("$",!1),lh=function(O){return e.isGlobPattern(O)},ea=function(O){return O},fl=/^[a-zA-Z0-9_]/,Vd=ws([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Em=function(){return BI()},hl=/^[$@*?#a-zA-Z0-9_\-]/,Al=ws(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),II=/^[()}<>$|&; \t"']/,YA=ws(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),wI=/^[<>&; \t"']/,CI=ws(["<",">","&",";"," "," ",'"',"'"],!1,!1),KA=/^[ \t]/,zA=ws([" "," "],!1,!1),K=0,Gt=0,JA=[{line:1,column:1}],ta=0,uh=[],Dt=0,rf;if("startRule"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=s[e.startRule]}function BI(){return t.substring(Gt,K)}function Im(){return hh(Gt,K)}function Cv(O,J){throw J=J!==void 0?J:hh(Gt,K),ZA([wm(O)],t.substring(Gt,K),J)}function Wd(O,J){throw J=J!==void 0?J:hh(Gt,K),Ui(O,J)}function Pr(O,J){return{type:"literal",text:O,ignoreCase:J}}function ws(O,J,se){return{type:"class",parts:O,inverted:J,ignoreCase:se}}function fh(){return{type:"any"}}function Pc(){return{type:"end"}}function wm(O){return{type:"other",description:O}}function nf(O){var J=JA[O],se;if(J)return J;for(se=O-1;!JA[se];)se--;for(J=JA[se],J={line:J.line,column:J.column};se<O;)t.charCodeAt(se)===10?(J.line++,J.column=1):J.column++,se++;return JA[O]=J,J}function hh(O,J){var se=nf(O),Ie=nf(J);return{start:{offset:O,line:se.line,column:se.column},end:{offset:J,line:Ie.line,column:Ie.column}}}function Qt(O){K<ta||(K>ta&&(ta=K,uh=[]),uh.push(O))}function Ui(O,J){return new sy(O,null,null,J)}function ZA(O,J,se){return new sy(sy.buildMessage(O,J),O,J,se)}function xc(){var O,J,se;for(O=K,J=[],se=qt();se!==r;)J.push(se),se=qt();return J!==r?(se=Va(),se===r&&(se=null),se!==r?(Gt=O,J=n(se),O=J):(K=O,O=r)):(K=O,O=r),O}function Va(){var O,J,se,Ie,Xe;if(O=K,J=Yd(),J!==r){for(se=[],Ie=qt();Ie!==r;)se.push(Ie),Ie=qt();se!==r?(Ie=Cm(),Ie!==r?(Xe=kc(),Xe===r&&(Xe=null),Xe!==r?(Gt=O,J=l(J,Ie,Xe),O=J):(K=O,O=r)):(K=O,O=r)):(K=O,O=r)}else K=O,O=r;if(O===r)if(O=K,J=Yd(),J!==r){for(se=[],Ie=qt();Ie!==r;)se.push(Ie),Ie=qt();se!==r?(Ie=Cm(),Ie===r&&(Ie=null),Ie!==r?(Gt=O,J=f(J,Ie),O=J):(K=O,O=r)):(K=O,O=r)}else K=O,O=r;return O}function kc(){var O,J,se,Ie,Xe;for(O=K,J=[],se=qt();se!==r;)J.push(se),se=qt();if(J!==r)if(se=Va(),se!==r){for(Ie=[],Xe=qt();Xe!==r;)Ie.push(Xe),Xe=qt();Ie!==r?(Gt=O,J=h(se),O=J):(K=O,O=r)}else K=O,O=r;else K=O,O=r;return O}function Cm(){var O;return t.charCodeAt(K)===59?(O=A,K++):(O=r,Dt===0&&Qt(m)),O===r&&(t.charCodeAt(K)===38?(O=w,K++):(O=r,Dt===0&&Qt(B))),O}function Yd(){var O,J,se;return O=K,J=XA(),J!==r?(se=Bm(),se===r&&(se=null),se!==r?(Gt=O,J=D(J,se),O=J):(K=O,O=r)):(K=O,O=r),O}function Bm(){var O,J,se,Ie,Xe,It,Nr;for(O=K,J=[],se=qt();se!==r;)J.push(se),se=qt();if(J!==r)if(se=vI(),se!==r){for(Ie=[],Xe=qt();Xe!==r;)Ie.push(Xe),Xe=qt();if(Ie!==r)if(Xe=Yd(),Xe!==r){for(It=[],Nr=qt();Nr!==r;)It.push(Nr),Nr=qt();It!==r?(Gt=O,J=I(se,Xe),O=J):(K=O,O=r)}else K=O,O=r;else K=O,O=r}else K=O,O=r;else K=O,O=r;return O}function vI(){var O;return t.substr(K,2)===R?(O=R,K+=2):(O=r,Dt===0&&Qt(N)),O===r&&(t.substr(K,2)===U?(O=U,K+=2):(O=r,Dt===0&&Qt(V))),O}function XA(){var O,J,se;return O=K,J=Ah(),J!==r?(se=vm(),se===r&&(se=null),se!==r?(Gt=O,J=ee(J,se),O=J):(K=O,O=r)):(K=O,O=r),O}function vm(){var O,J,se,Ie,Xe,It,Nr;for(O=K,J=[],se=qt();se!==r;)J.push(se),se=qt();if(J!==r)Line truncated
`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),j$e=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(tle,([t,e])=>[t,`"$'${e}'"`])]),rle=t=>tle.get(t)??`\\x${t.charCodeAt(0).toString(16).padStart(2,"0")}`,G$e=t=>j$e.get(t)??`"$'${rle(t)}'"`});var sle=H((uqt,ile)=>{"use strict";function q$e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function ay(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ay)}q$e(ay,Error);ay.buildMessage=function(t,e){var r={literal:function(A){return'"'+a(A.text)+'"'},class:function(A){var m="",w;for(w=0;w<A.parts.length;w++)m+=A.parts[w]instanceof Array?n(A.parts[w][0])+"-"+n(A.parts[w][1]):n(A.parts[w]);return"["+(A.inverted?"^":"")+m+"]"},any:function(A){return"any character"},end:function(A){return"end of input"},other:function(A){return A.description}};function s(A){return A.charCodeAt(0).toString(16).toUpperCase()}function a(A){return A.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(m){return"\\x0"+s(m)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(m){return"\\x"+s(m)})}function n(A){return A.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(m){return"\\x0"+s(m)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(m){return"\\x"+s(m)})}function l(A){return r[A.type](A)}function f(A){var m=new Array(A.length),w,B;for(w=0;w<A.length;w++)m[w]=l(A[w]);if(m.sort(),m.length>0){for(w=1,B=1;w<m.length;w++)m[w-1]!==m[w]&&(m[B]=m[w],B++);m.length=B}switch(m.length){case 1:return m[0];case 2:return m[0]+" or "+m[1];default:return m.slice(0,-1).join(", ")+", or "+m[m.length-1]}}function h(A){return A?'"'+a(A)+'"':"end of input"}return"Expected "+f(t)+" but "+h(e)+" found."};function V$e(t,e){e=e!==void 0?e:{};var r={},s={resolution:Fe},a=Fe,n="/",l=Ce("/",!1),f=function(Me,x){return{from:Me,descriptor:x}},h=function(Me){return{descriptor:Me}},A="@",m=Ce("@",!1),w=function(Me,x){return{fullName:Me,description:x}},B=function(Me){return{fullName:Me}},D=function(){return De()},I=/^[^\/@]/,R=Ee(["/","@"],!0,!1),N=/^[^\/]/,U=Ee(["/"],!0,!1),V=0,ee=0,te=[{line:1,column:1}],ie=0,ae=[],ge=0,de;if("startRule"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=s[e.startRule]}function De(){return t.substring(ee,V)}function we(){return ot(ee,V)}function d(Me,x){throw x=x!==void 0?x:ot(ee,V),Ne([Pe(Me)],t.substring(ee,V),x)}function be(Me,x){throw x=x!==void 0?x:ot(ee,V),rt(Me,x)}function Ce(Me,x){return{type:"literal",text:Me,ignoreCase:x}}function Ee(Me,x,C){return{type:"class",parts:Me,inverted:x,ignoreCase:C}}function he(){return{type:"any"}}function $(){return{type:"end"}}function Pe(Me){return{type:"other",description:Me}}function Te(Me){var x=te[Me],C;if(x)return x;for(C=Me-1;!te[C];)C--;for(x=te[C],x={line:x.line,column:x.column};C<Me;)t.charCodeAt(C)===10?(x.line++,x.column=1):x.column++,C++;return te[Me]=x,x}function ot(Me,x){var C=Te(Me),P=Te(x);return{start:{offset:Me,line:C.line,column:C.column},end:{offset:x,line:P.line,column:P.column}}}function j(Me){V<ie||(V>ie&&(ie=V,ae=[]),ae.push(Me))}function rt(Me,x){return new ay(Me,null,null,x)}function Ne(Me,x,C){return new ay(ay.buildMessage(Me,x),Me,x,C)}function Fe(){var Me,x,C,P;return Me=V,x=xe(),x!==r?(t.charCodeAt(V)===47?(C=n,V++):(C=r,ge===0&&j(l)),C!==r?(P=xe(),P!==r?(ee=Me,x=f(x,P),Me=x):(V=Me,Me=r)):(V=Me,Me=r)):(V=Me,Me=r),Me===r&&(Me=V,x=xe(),x!==r&&(ee=Me,x=h(x)),Me=x),Me}function xe(){var Me,x,C,P;return Me=V,x=He(),x!==r?(t.charCodeAt(V)===64?(C=A,V++):(C=r,ge===0&&j(m)),C!==r?(P=ft(),P!==r?(ee=Me,x=w(x,P),Me=x):(V=Me,Me=r)):(V=Me,Me=r)):(V=Me,Me=r),Me===r&&(Me=V,x=He(),x!==r&&(ee=Me,x=B(x)),Me=x),Me}function He(){var Me,x,C,P,E;return Me=V,t.charCodeAt(V)===64?(x=A,V++):(x=r,ge===0&&j(m)),x!==r?(C=Qe(),C!==r?(t.charCodeAt(V)===47?(P=n,V++):(P=r,ge===0&&j(l)),P!==r?(E=Qe(),E!==r?(ee=Me,x=D(),Me=x):(V=Me,Me=r)):(V=Me,Me=r)):(V=Me,Me=r)):(V=Me,Me=r),Me===r&&(Me=V,x=Qe(),x!==r&&(ee=Me,x=D()),Me=x),Me}function Qe(){var Me,x,C;if(Me=V,x=[],I.test(t.charAt(V))?(C=t.charAt(V),V++):(C=r,ge===0&&j(R)),C!==r)for(;C!==r;)x.push(C),I.test(t.charAt(V))?(C=t.charAt(V),V++):(C=r,ge===0&&j(R));else x=r;return x!==r&&(ee=Me,x=D()),Me=x,Me}function ft(){var Me,x,C;if(Me=V,x=[],N.test(t.charAt(V))?(C=t.charAt(V),V++):(C=r,ge===0&&j(U)),C!==r)for(;C!==r;)x.push(C),N.test(t.charAt(V))?(C=t.charAt(V),V++):(C=r,ge===0&&j(U));else x=r;return x!==r&&(ee=Me,x=D()),Me=x,Me}if(de=a(),de!==r&&V===t.length)return de;throw de!==r&&V<t.length&&j($()),Ne(ae,ie<t.length?t.charAt(ie):null,ie<t.length?ot(ie,ie+1):ot(ie,ie))}ile.exports={SyntaxError:ay,parse:V$e}});function kT(t){let e=t.match(/^\*{1,Line truncated
`+r.mark.snippet),n+" "+a):n}function e(r,s){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=s,this.message=t(this,!1),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e.prototype.toString=function(s){return this.name+": "+t(this,s)},j6=e,j6}function Y$e(){if(ule)return G6;ule=1;let t=uS();function e(a,n,l,f,h){let A="",m="",w=Math.floor(h/2)-1;return f-n>w&&(A=" ... ",n=f-w+A.length),l-f>w&&(m=" ...",l=f+w-m.length),{str:A+a.slice(n,l).replace(/\t/g,"\u2192")+m,pos:f-n+A.length}}function r(a,n){return t.repeat(" ",n-a.length)+a}function s(a,n){if(n=Object.create(n||null),!a.buffer)return null;n.maxLength||(n.maxLength=79),typeof n.indent!="number"&&(n.indent=1),typeof n.linesBefore!="number"&&(n.linesBefore=3),typeof n.linesAfter!="number"&&(n.linesAfter=2);let l=/\r?\n|\r|\0/g,f=[0],h=[],A,m=-1;for(;A=l.exec(a.buffer);)h.push(A.index),f.push(A.index+A[0].length),a.position<=A.index&&m<0&&(m=f.length-2);m<0&&(m=f.length-1);let w="",B=Math.min(a.line+n.linesAfter,h.length).toString().length,D=n.maxLength-(n.indent+B+3);for(let R=1;R<=n.linesBefore&&!(m-R<0);R++){let N=e(a.buffer,f[m-R],h[m-R],a.position-(f[m]-f[m-R]),D);w=t.repeat(" ",n.indent)+r((a.line-R+1).toString(),B)+" | "+N.str+`
`+w}let I=e(a.buffer,f[m],h[m],a.position,D);w+=t.repeat(" ",n.indent)+r((a.line+1).toString(),B)+" | "+I.str+`
`,w+=t.repeat("-",n.indent+B+3+I.pos)+`^
`;for(let R=1;R<=n.linesAfter&&!(m+R>=h.length);R++){let N=e(a.buffer,f[m+R],h[m+R],a.position-(f[m]-f[m+R]),D);w+=t.repeat(" ",n.indent)+r((a.line+R+1).toString(),B)+" | "+N.str+`
`}return w.replace(/\n$/,"")}return G6=s,G6}function Za(){if(fle)return q6;fle=1;let t=fS(),e=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],r=["scalar","sequence","mapping"];function s(n){let l={};return n!==null&&Object.keys(n).forEach(function(f){n[f].forEach(function(h){l[String(h)]=f})}),l}function a(n,l){if(l=l||{},Object.keys(l).forEach(function(f){if(e.indexOf(f)===-1)throw new t('Unknown option "'+f+'" is met in definition of "'+n+'" YAML type.')}),this.options=l,this.tag=n,this.kind=l.kind||null,this.resolve=l.resolve||function(){return!0},this.construct=l.construct||function(f){return f},this.instanceOf=l.instanceOf||null,this.predicate=l.predicate||null,this.represent=l.represent||null,this.representName=l.representName||null,this.defaultStyle=l.defaultStyle||null,this.multi=l.multi||!1,this.styleAliases=s(l.styleAliases||null),r.indexOf(this.kind)===-1)throw new t('Unknown kind "'+this.kind+'" is specified for "'+n+'" YAML type.')}return q6=a,q6}function Qle(){if(hle)return V6;hle=1;let t=fS(),e=Za();function r(n,l){let f=[];return n[l].forEach(function(h){let A=f.length;f.forEach(function(m,w){m.tag===h.tag&&m.kind===h.kind&&m.multi===h.multi&&(A=w)}),f[A]=h}),f}function s(){let n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}};function l(f){f.multi?(n.multi[f.kind].push(f),n.multi.fallback.push(f)):n[f.kind][f.tag]=n.fallback[f.tag]=f}for(let f=0,h=arguments.length;f<h;f+=1)arguments[f].forEach(l);return n}function a(n){return this.extend(n)}return a.prototype.extend=function(l){let f=[],h=[];if(l instanceof e)h.push(l);else if(Array.isArray(l))h=h.concat(l);else if(l&&(Array.isArray(l.implicit)||Array.isArray(l.explicit)))l.implicit&&(f=f.concat(l.implicit)),l.explicit&&(h=h.concat(l.explicit));else throw new t("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");f.forEach(function(m){if(!(m instanceof e))throw new t("Specified list of YAML types (or a single Type object) contains a non-Type object.");if(m.loadKind&&m.loadKind!=="scalar")throw new t("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");if(m.multi)throw new t("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.")}),h.forEach(function(m){if(!(m instanceof e))throw new t("Specified list of YAML types (or a single Type object) contains a non-Type object.")});let A=Object.create(a.prototype);return A.implicit=(this.implicit||[]).concat(f),A.explicit=(this.explicit||[]).concat(h),A.compiledImplicit=r(A,"implicit"),A.compiledExplicit=r(A,"explicit"),A.compiledTypeMap=s(A.compiledImplicit,A.compiledExplicit),A},V6=a,V6}function Fle(){if(Ale)return W6;Ale=1;let t=Za();return W6=new t("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}}),W6}function Nle(){if(ple)return Y6;ple=1;let t=Za();return Y6=new t("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}}),Y6}function Ole(){if(dle)return K6;dle=1;let t=Za();return K6=new t("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}}),K6}function Lle(){if(gle)return z6;gle=1;let t=Qle();return z6=new t({explicit:[Fle(),Nle(),Ole()]}),z6}function _le(){if(mle)return J6;mle=1;let t=Za();function e(a){if(a===null)return!0;let n=a.length;return n===1&&a==="~"||n===4&&(a==="null"||a==="Null"||a==="NULL")}function r(){return null}function s(a){return a===null}return J6=new t("tag:yaml.org,2002:null",{kind:"scalar",resolve:e,construct:r,predicate:s,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"},empty:function(){return""}},defaultStyle:"lowercase"}),J6}function Mle(){if(yle)return Z6;yle=1;let t=Za();function e(a){if(a===null)return!1;let n=a.length;return n===4&&(a==="true"||a==="True"||a==="TRUE")||n===5&&(a==="false"||a==="False"||a==="FALSE")}function r(a){return a==="true"||a==="True"||a==="TRUE"}function s(a){return Object.prototype.toString.call(a)==="[object Boolean]"}return Z6=new t("tag:yaml.org,2002:bool",{kind:"scalar",resolve:e,construct:r,predicate:s,represent:{lowercase:function(a){return a?"true":"false"},uppercase:function(a){return a?"TRUE":"FALSE"},camelcase:function(a){return a?"True":"False"}},defaultStyle:"lowercase"}),Z6}function Ule(){if(Ele)return X6;Ele=1;let t=uS(),e=Za();function r(A){return A>=48&&A<=57||A>=65&&A<=70||A>=97&&A<=102}function s(A){return A>=48&&A<=55}function a(A){return A>=48&&A<=57}function n(A){if(A===null)return!1;let m=A.length,w=0,B=!1;if(!m)return!1;let D=A[w];if((D==="-"||D==="+")&&(D=A[++w]),D==="0"){if(w+1===m)return!0;if(D=A[++w],D==="b"){for(w++;w<m;w++){if(D=A[w],D!=="0"&&D!=="1")return!1;B=!0}return B&&isFinite(l(A))}if(D==="x"){for(w++;w<m;w++){if(!r(A.cha Line truncated
\r`;function r(l){if(l===null)return!1;let f=0,h=l.length,A=e;for(let m=0;m<h;m++){let w=A.indexOf(l.charAt(m));if(!(w>64)){if(w<0)return!1;f+=6}}return f%8===0}function s(l){let f=l.replace(/[\r\n=]/g,""),h=f.length,A=e,m=0,w=[];for(let D=0;D<h;D++)D%4===0&&D&&(w.push(m>>16&255),w.push(m>>8&255),w.push(m&255)),m=m<<6|A.indexOf(f.charAt(D));let B=h%4*6;return B===0?(w.push(m>>16&255),w.push(m>>8&255),w.push(m&255)):B===18?(w.push(m>>10&255),w.push(m>>2&255)):B===12&&w.push(m>>4&255),new Uint8Array(w)}function a(l){let f="",h=0,A=l.length,m=e;for(let B=0;B<A;B++)B%3===0&&B&&(f+=m[h>>18&63],f+=m[h>>12&63],f+=m[h>>6&63],f+=m[h&63]),h=(h<<8)+l[B];let w=A%3;return w===0?(f+=m[h>>18&63],f+=m[h>>12&63],f+=m[h>>6&63],f+=m[h&63]):w===2?(f+=m[h>>10&63],f+=m[h>>4&63],f+=m[h<<2&63],f+=m[64]):w===1&&(f+=m[h>>2&63],f+=m[h<<4&63],f+=m[64],f+=m[64]),f}function n(l){return Object.prototype.toString.call(l)==="[object Uint8Array]"}return iH=new t("tag:yaml.org,2002:binary",{kind:"scalar",resolve:r,construct:s,predicate:n,represent:a}),iH}function Yle(){if(ble)return sH;ble=1;let t=Za(),e=Object.prototype.hasOwnProperty,r=Object.prototype.toString;function s(n){if(n===null)return!0;let l=[],f=n;for(let h=0,A=f.length;h<A;h+=1){let m=f[h],w=!1;if(r.call(m)!=="[object Object]")return!1;let B;for(B in m)if(e.call(m,B))if(!w)w=!0;else return!1;if(!w)return!1;if(l.indexOf(B)===-1)l.push(B);else return!1}return!0}function a(n){return n!==null?n:[]}return sH=new t("tag:yaml.org,2002:omap",{kind:"sequence",resolve:s,construct:a}),sH}function Kle(){if(Dle)return oH;Dle=1;let t=Za(),e=Object.prototype.toString;function r(a){if(a===null)return!0;let n=a,l=new Array(n.length);for(let f=0,h=n.length;f<h;f+=1){let A=n[f];if(e.call(A)!=="[object Object]")return!1;let m=Object.keys(A);if(m.length!==1)return!1;l[f]=[m[0],A[m[0]]]}return!0}function s(a){if(a===null)return[];let n=a,l=new Array(n.length);for(let f=0,h=n.length;f<h;f+=1){let A=n[f],m=Object.keys(A);l[f]=[m[0],A[m[0]]]}return l}return oH=new t("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:r,construct:s}),oH}function zle(){if(Ple)return aH;Ple=1;let t=Za(),e=Object.prototype.hasOwnProperty;function r(a){if(a===null)return!0;let n=a;for(let l in n)if(e.call(n,l)&&n[l]!==null)return!1;return!0}function s(a){return a!==null?a:{}}return aH=new t("tag:yaml.org,2002:set",{kind:"mapping",resolve:r,construct:s}),aH}function uH(){return xle||(xle=1,cH=Gle().extend({implicit:[qle(),Vle()],explicit:[Wle(),Yle(),Kle(),zle()]})),cH}function K$e(){if(kle)return TT;kle=1;let t=uS(),e=fS(),r=Y$e(),s=uH(),a=Object.prototype.hasOwnProperty,n=1,l=2,f=3,h=4,A=1,m=2,w=3,B=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,D=/[\x85\u2028\u2029]/,I=/[,\[\]{}]/,R=/^(?:!|!!|![0-9A-Za-z-]+!)$/,N=/^(?:!|[^,\[\]{}])(?:%[0-9a-f]{2}|[0-9a-z\-#;/?:@&=+$,_.!~*'()\[\]])*$/i;function U(_){return Object.prototype.toString.call(_)}function V(_){return _===10||_===13}function ee(_){return _===9||_===32}function te(_){return _===9||_===32||_===10||_===13}function ie(_){return _===44||_===91||_===93||_===123||_===125}function ae(_){if(_>=48&&_<=57)return _-48;let Ue=_|32;return Ue>=97&&Ue<=102?Ue-97+10:-1}function ge(_){return _===120?2:_===117?4:_===85?8:0}function de(_){return _>=48&&_<=57?_-48:-1}function De(_){switch(_){case 48:return"\0";case 97:return"\x07";case 98:return"\b";case 116:return" ";case 9:return" ";case 110:return`
`;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 101:return"\x1B";case 32:return" ";case 34:return'"';case 47:return"/";case 92:return"\\";case 78:return"\x85";case 95:return"\xA0";case 76:return"\u2028";case 80:return"\u2029";default:return""}}function we(_){return _<=65535?String.fromCharCode(_):String.fromCharCode((_-65536>>10)+55296,(_-65536&1023)+56320)}function d(_,Ue,lt){Ue==="__proto__"?Object.defineProperty(_,Ue,{configurable:!0,enumerable:!0,writable:!0,value:lt}):_[Ue]=lt}let be=new Array(256),Ce=new Array(256);for(let _=0;_<256;_++)be[_]=De(_)?1:0,Ce[_]=De(_);function Ee(_,Ue){this.input=_,this.filename=Ue.filename||null,this.schema=Ue.schema||s,this.onWarning=Ue.onWarning||null,this.legacy=Ue.legacy||!1,this.json=Ue.json||!1,this.listener=Ue.listener||null,this.maxDepth=typeof Ue.maxDepth=="number"?Ue.maxDepth:100,this.maxTotalMergeKeys=typeof Ue.maxTotalMergeKeys=="number"?Ue.maxTotalMergeKeys:1e4,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=_.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.depth=0,this.totalMergeKeys=0,this.firstTabInLine=-1,this.documents=[],this.anchorMapTransactions=[]}function he(_,Ue){let lt={name:_.filename,buffer:_.input.slice(0,-1),position:_.position,line:_.line,column:_.position-_.lineStart};return lt.snippet=r(lt),new e(Ue,lt)}function $(_,Ue){throw he(_,Ue)}function Pe(_,Ue){_.onWarning&&_.onWarning.call(null,he(_,Ue))}function Te(_,Ue,lt){let Bt=_.anchorMapTransactions;if(Bt.length!==0){let ct=Bt[Bt.length-1];a.call(ct,Ue)||(ct[Ue]={existed:a.call(_.anchorMap,Ue),value:_.anchorMap[Ue]})}_.anchorMap[Ue]=lt}function ot(_){_.anchorMapTransactions.push(Object.create(null))}function j(_){let Ue=_.anchorMapTransactions.pop(),lt=_.anchorMapTransactions;if(lt.length===0)return;let Bt=lt[lt.length-1],ct=Object.keys(Ue);for(let Ft=0,le=ct.length;Ft<le;Ft+=1){let Ze=ct[Ft];a.call(Bt,Ze)||(Bt[Ze]=Ue[Ze])}}function rt(_){let Ue=_.anchorMapTransactions.pop(),lt=Object.keys(Ue);for(let Bt=lt.length-1;Bt>=0;Bt-=1){let ct=Ue[lt[Bt]];ct.existed?_.anchorMap[lt[Bt]]=ct.value:delete _.anchorMap[lt[Bt]]}}function Ne(_){return{position:_.position,line:_.line,lineStart:_.lineStart,lineIndent:_.lineIndent,firstTabInLine:_.firstTabInLine,tag:_.tag,anchor:_.anchor,kind:_.kind,result:_.result}}function Fe(_,Ue){_.position=Ue.position,_.line=Ue.line,_.lineStart=Ue.lineStart,_.lineIndent=Ue.lineIndent,_.firstTabInLine=Ue.firstTabInLine,_.tag=Ue.tag,_.anchor=Ue.anchor,_.kind=Ue.kind,_.result=Ue.result}let xe={YAML:function(Ue,lt,Bt){Ue.version!==null&&$(Ue,"duplication of %YAML directive"),Bt.length!==1&&$(Ue,"YAML directive accepts exactly one argument");let ct=/^([0-9]+)\.([0-9]+)$/.exec(Bt[0]);ct===null&&$(Ue,"ill-formed argument of the YAML directive");let Ft=parseInt(ct[1],10),le=parseInt(ct[2],10);Ft!==1&&$(Ue,"unacceptable YAML version of the document"),Ue.version=Bt[0],Ue.checkLineBreaks=le<2,le!==1&&le!==2&&Pe(Ue,"unsupported YAML version of the document")},TAG:function(Ue,lt,Bt){let ct;Bt.length!==2&&$(Ue,"TAG directive accepts exactly two arguments");let Ft=Bt[0];ct=Bt[1],R.test(Ft)||$(Ue,"ill-formed tag handle (first argument) of the TAG directive"),a.call(Ue.tagMap,Ft)&&$(Ue,'there is a previously declared suffix for "'+Ft+'" tag handle'),N.test(ct)||$(Ue,"ill-formed tag prefix (second argument) of the TAG directive");try{ct=decodeURIComponent(ct)}catch{$(Ue,"tag prefix is malformed: "+ct)}Ue.tagMap[Ft]=ct}};function He(_,Ue,lt,Bt){if(Ue<lt){let ct=_.input.slice(Ue,lt);if(Bt)for(let Ft=0,le=ct.length;Ft<le;Ft+=1){let Ze=ct.charCodeAt(Ft);Ze===9||Ze>=32&&Ze<=1114111||$(_,"expected valid JSON character")}else B.test(ct)&&$(_,"the stream contains non-printable characters");_.result+=ct}}function Qe(_,Ue,lt,Bt){t.isObject(lt)||$(_,"cannot merge mappings; the provided source object is unacceptable");let ct=Object.keys(lt);for(let Ft=0,le=ct.length;Ft<le;Ft+=1){let Ze=ct[Ft];_.maxTotalMergeKeys!==-1&&++_.totalMergeKeys>_.maxTotalMergeKeys&&$(_,"merge keys exceeded maxTotalMergeKeys ("+_.maxTotalMergeKeys+")"),a.call(Ue,Ze)||(d(Ue,Ze,lt[Ze]),Bt[Ze]=!0)}}function ft(_,Ue,lt,Bt,ct,Ft,le,Ze,Tt){if(Array.isArray(ct)){ct=Array.prototype.slice.call(ct);for(let Et=0,Pt=ct.length;Et<Pt;Et+=1)Array.isArray(ct[Et])&&$(_,"nested arrays are not supported inside keys"),typeof ct=="object"&&U(ct[Et])==="[object Object]"&&(ct[Et]="[object Object]")}if(typeof ct=="object"&&U(ct)==="[object Object]"&&(ct="[object Object]"),ct=String(ct),Ue===null&&(Ue={}),Bt==="tag:yaml.org,2002:merge")if(Array.isArray(Ft))for(let Et=0,Pt=Ft.length;Et<Pt;Et+=1)Qe(_,Ue,Ft[Et],lt);else Qe(_,Ue,Ft,lt);else!_.json&&!a.call(lt,ct)&&a.call(Ue,ct)&&(_.line=le||_.line,_.lineStart=Ze||_.lineStart,_.position=Tt||_.position,$(_,"duplicated mapping key")),d(Ue,ct,Ft),delete lt[ct];return Ue}function Me(_){let Ue=_.input.charCodeAt(_.position);Ue===10?_.position++:Ue===13?(_.position++,_.input.charCodeAt(_.position)===10&&_.position+ Line truncated
`,Ue-1))}function E(_,Ue,lt){let Bt,ct,Ft,le,Ze,Tt,Et=_.kind,Pt=_.result,Lt=_.input.charCodeAt(_.position);if(te(Lt)||ie(Lt)||Lt===35||Lt===38||Lt===42||Lt===33||Lt===124||Lt===62||Lt===39||Lt===34||Lt===37||Lt===64||Lt===96)return!1;if(Lt===63||Lt===45){let Nt=_.input.charCodeAt(_.position+1);if(te(Nt)||lt&&ie(Nt))return!1}for(_.kind="scalar",_.result="",Bt=ct=_.position,Ft=!1;Lt!==0;){if(Lt===58){let Nt=_.input.charCodeAt(_.position+1);if(te(Nt)||lt&&ie(Nt))break}else if(Lt===35){let Nt=_.input.charCodeAt(_.position-1);if(te(Nt))break}else{if(_.position===_.lineStart&&C(_)||lt&&ie(Lt))break;if(V(Lt))if(le=_.line,Ze=_.lineStart,Tt=_.lineIndent,x(_,!1,-1),_.lineIndent>=Ue){Ft=!0,Lt=_.input.charCodeAt(_.position);continue}else{_.position=ct,_.line=le,_.lineStart=Ze,_.lineIndent=Tt;break}}Ft&&(He(_,Bt,ct,!1),P(_,_.line-le),Bt=ct=_.position,Ft=!1),ee(Lt)||(ct=_.position+1),Lt=_.input.charCodeAt(++_.position)}return He(_,Bt,ct,!1),_.result?!0:(_.kind=Et,_.result=Pt,!1)}function F(_,Ue){let lt,Bt,ct=_.input.charCodeAt(_.position);if(ct!==39)return!1;for(_.kind="scalar",_.result="",_.position++,lt=Bt=_.position;(ct=_.input.charCodeAt(_.position))!==0;)if(ct===39)if(He(_,lt,_.position,!0),ct=_.input.charCodeAt(++_.position),ct===39)lt=_.position,_.position++,Bt=_.position;else return!0;else V(ct)?(He(_,lt,Bt,!0),P(_,x(_,!1,Ue)),lt=Bt=_.position):_.position===_.lineStart&&C(_)?$(_,"unexpected end of the document within a single quoted scalar"):(_.position++,ee(ct)||(Bt=_.position));$(_,"unexpected end of the stream within a single quoted scalar")}function Z(_,Ue){let lt,Bt,ct,Ft=_.input.charCodeAt(_.position);if(Ft!==34)return!1;for(_.kind="scalar",_.result="",_.position++,lt=Bt=_.position;(Ft=_.input.charCodeAt(_.position))!==0;){if(Ft===34)return He(_,lt,_.position,!0),_.position++,!0;if(Ft===92){if(He(_,lt,_.position,!0),Ft=_.input.charCodeAt(++_.position),V(Ft))x(_,!1,Ue);else if(Ft<256&&be[Ft])_.result+=Ce[Ft],_.position++;else if((ct=ge(Ft))>0){let le=ct,Ze=0;for(;le>0;le--)Ft=_.input.charCodeAt(++_.position),(ct=ae(Ft))>=0?Ze=(Ze<<4)+ct:$(_,"expected hexadecimal character");_.result+=we(Ze),_.position++}else $(_,"unknown escape sequence");lt=Bt=_.position}else V(Ft)?(He(_,lt,Bt,!0),P(_,x(_,!1,Ue)),lt=Bt=_.position):_.position===_.lineStart&&C(_)?$(_,"unexpected end of the document within a double quoted scalar"):(_.position++,ee(Ft)||(Bt=_.position))}$(_,"unexpected end of the stream within a double quoted scalar")}function X(_,Ue){let lt=!0,Bt,ct,Ft,le=_.tag,Ze,Tt=_.anchor,Et,Pt,Lt,Nt,hr=Object.create(null),Xt,$t,Er,Yr=_.input.charCodeAt(_.position);if(Yr===91)Et=93,Nt=!1,Ze=[];else if(Yr===123)Et=125,Nt=!0,Ze={};else return!1;for(_.anchor!==null&&Te(_,_.anchor,Ze),Yr=_.input.charCodeAt(++_.position);Yr!==0;){if(x(_,!0,Ue),Yr=_.input.charCodeAt(_.position),Yr===Et)return _.position++,_.tag=le,_.anchor=Tt,_.kind=Nt?"mapping":"sequence",_.result=Ze,!0;if(lt?Yr===44&&$(_,"expected the node content, but found ','"):$(_,"missed comma between flow collection entries"),$t=Xt=Er=null,Pt=Lt=!1,Yr===63){let Tn=_.input.charCodeAt(_.position+1);te(Tn)&&(Pt=Lt=!0,_.position++,x(_,!0,Ue))}Bt=_.line,ct=_.lineStart,Ft=_.position,ur(_,Ue,n,!1,!0),$t=_.tag,Xt=_.result,x(_,!0,Ue),Yr=_.input.charCodeAt(_.position),(Lt||_.line===Bt)&&Yr===58&&(Pt=!0,Yr=_.input.charCodeAt(++_.position),x(_,!0,Ue),ur(_,Ue,n,!1,!0),Er=_.result),Nt?ft(_,Ze,hr,$t,Xt,Er,Bt,ct,Ft):Pt?Ze.push(ft(_,null,hr,$t,Xt,Er,Bt,ct,Ft)):Ze.push(Xt),x(_,!0,Ue),Yr=_.input.charCodeAt(_.position),Yr===44?(lt=!0,Yr=_.input.charCodeAt(++_.position)):lt=!1}$(_,"unexpected end of the stream within a flow collection")}function re(_,Ue){let lt,Bt=A,ct=!1,Ft=!1,le=Ue,Ze=0,Tt=!1,Et,Pt=_.input.charCodeAt(_.position);if(Pt===124)lt=!1;else if(Pt===62)lt=!0;else return!1;for(_.kind="scalar",_.result="";Pt!==0;)if(Pt=_.input.charCodeAt(++_.position),Pt===43||Pt===45)A===Bt?Bt=Pt===43?w:m:$(_,"repeat of a chomping mode identifier");else if((Et=de(Pt))>=0)Et===0?$(_,"bad explicit indentation width of a block scalar; it cannot be less than one"):Ft?$(_,"repeat of an indentation width identifier"):(le=Ue+Et-1,Ft=!0);else break;if(ee(Pt)){do Pt=_.input.charCodeAt(++_.position);while(ee(Pt));if(Pt===35)do Pt=_.input.charCodeAt(++_.position);while(!V(Pt)&&Pt!==0)}for(;Pt!==0;){for(Me(_),_.lineIndent=0,Pt=_.input.charCodeAt(_.position);(!Ft||_.lineIndent<le)&&Pt===32;)_.lineIndent++,Pt=_.input.charCodeAt(++_.position);if(!Ft&&_.lineIndent>le&&(le=_.lineIndent),V(Pt)){Ze++;continue}if(!Ft&&le===0&&$(_,"missing indentation for block scalar"),_.lineIndent<le){Bt===w?_.result+=t.repeat(`
`,ct?1+Ze:Ze):Bt===A&&ct&&(_.result+=`
`);break}lt?ee(Pt)?(Tt=!0,_.result+=t.repeat(`
`,ct?1+Ze:Ze)):Tt?(Tt=!1,_.result+=t.repeat(`
`,Ze+1)):Ze===0?ct&&(_.result+=" "):_.result+=t.repeat(`
`,Ze):_.result+=t.repeat(`
`,ct?1+Ze:Ze),ct=!0,Ft=!0,Ze=0;let Lt=_.position;for(;!V(Pt)&&Pt!==0;)Pt=_.input.charCodeAt(++_.position);He(_,Lt,_.position,!1)}return!0}function ce(_,Ue){let lt=_.tag,Bt=_.anchor,ct=[],Ft=!1;if(_.firstTabInLine!==-1)return!1;_.anchor!==null&&Te(_,_.anchor,ct);let le=_.input.charCodeAt(_.position);for(;le!==0&&(_.firstTabInLine!==-1&&(_.position=_.firstTabInLine,$(_,"tab characters must not be used in indentation")),le===45);){let Ze=_.input.charCodeAt(_.position+1);if(!te(Ze))break;if(Ft=!0,_.position++,x(_,!0,-1)&&_.lineIndent<=Ue){ct.push(null),le=_.input.charCodeAt(_.position);continue}let Tt=_.line;if(ur(_,Ue,f,!1,!0),ct.push(_.result),x(_,!0,-1),le=_.input.charCodeAt(_.position),(_.line===Tt||_.lineIndent>Ue)&&le!==0)$(_,"bad indentation of a sequence entry");else if(_.lineIndent<Ue)break}return Ft?(_.tag=lt,_.anchor=Bt,_.kind="sequence",_.result=ct,!0):!1}function ke(_,Ue,lt){let Bt,ct,Ft,le,Ze=_.tag,Tt=_.anchor,Et={},Pt=Object.create(null),Lt=null,Nt=null,hr=null,Xt=!1,$t=!1;if(_.firstTabInLine!==-1)return!1;_.anchor!==null&&Te(_,_.anchor,Et);let Er=_.input.charCodeAt(_.position);for(;Er!==0;){!Xt&&_.firstTabInLine!==-1&&(_.position=_.firstTabInLine,$(_,"tab characters must not be used in indentation"));let Yr=_.input.charCodeAt(_.position+1),Tn=_.line;if((Er===63||Er===58)&&te(Yr))Er===63?(Xt&&(ft(_,Et,Pt,Lt,Nt,null,ct,Ft,le),Lt=Nt=hr=null),$t=!0,Xt=!0,Bt=!0):Xt?(Xt=!1,Bt=!0):$(_,"incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"),_.position+=1,Er=Yr;else{if(ct=_.line,Ft=_.lineStart,le=_.position,!ur(_,lt,l,!1,!0))break;if(_.line===Tn){for(Er=_.input.charCodeAt(_.position);ee(Er);)Er=_.input.charCodeAt(++_.position);if(Er===58)Er=_.input.charCodeAt(++_.position),te(Er)||$(_,"a whitespace character is expected after the key-value separator within a block mapping"),Xt&&(ft(_,Et,Pt,Lt,Nt,null,ct,Ft,le),Lt=Nt=hr=null),$t=!0,Xt=!1,Bt=!1,Lt=_.tag,Nt=_.result;else if($t)$(_,"can not read an implicit mapping pair; a colon is missed");else return _.tag=Ze,_.anchor=Tt,!0}else if($t)$(_,"can not read a block mapping entry; a multiline key may not be an implicit key");else return _.tag=Ze,_.anchor=Tt,!0}if((_.line===Tn||_.lineIndent>Ue)&&(Xt&&(ct=_.line,Ft=_.lineStart,le=_.position),ur(_,Ue,h,!0,Bt)&&(Xt?Nt=_.result:hr=_.result),Xt||(ft(_,Et,Pt,Lt,Nt,hr,ct,Ft,le),Lt=Nt=hr=null),x(_,!0,-1),Er=_.input.charCodeAt(_.position)),(_.line===Tn||_.lineIndent>Ue)&&Er!==0)$(_,"bad indentation of a mapping entry");else if(_.lineIndent<Ue)break}return Xt&&ft(_,Et,Pt,Lt,Nt,null,ct,Ft,le),$t&&(_.tag=Ze,_.anchor=Tt,_.kind="mapping",_.result=Et),$t}function Le(_){let Ue=!1,lt=!1,Bt,ct,Ft=_.input.charCodeAt(_.position);if(Ft!==33)return!1;_.tag!==null&&$(_,"duplication of a tag property"),Ft=_.input.charCodeAt(++_.position),Ft===60?(Ue=!0,Ft=_.input.charCodeAt(++_.position)):Ft===33?(lt=!0,Bt="!!",Ft=_.input.charCodeAt(++_.position)):Bt="!";let le=_.position;if(Ue){do Ft=_.input.charCodeAt(++_.position);while(Ft!==0&&Ft!==62);_.position<_.length?(ct=_.input.slice(le,_.position),Ft=_.input.charCodeAt(++_.position)):$(_,"unexpected end of the stream within a verbatim tag")}else{for(;Ft!==0&&!te(Ft);)Ft===33&&(lt?$(_,"tag suffix cannot contain exclamation marks"):(Bt=_.input.slice(le-1,_.position+1),R.test(Bt)||$(_,"named tag handle cannot contain such characters"),lt=!0,le=_.position+1)),Ft=_.input.charCodeAt(++_.position);ct=_.input.slice(le,_.position),I.test(ct)&&$(_,"tag suffix cannot contain flow indicator characters")}ct&&!N.test(ct)&&$(_,"tag name cannot contain such characters: "+ct);try{ct=decodeURIComponent(ct)}catch{$(_,"tag name is malformed: "+ct)}return Ue?_.tag=ct:a.call(_.tagMap,Bt)?_.tag=_.tagMap[Bt]+ct:Bt==="!"?_.tag="!"+ct:Bt==="!!"?_.tag="tag:yaml.org,2002:"+ct:$(_,'undeclared tag handle "'+Bt+'"'),!0}function pt(_){let Ue=_.input.charCodeAt(_.position);if(Ue!==38)return!1;_.anchor!==null&&$(_,"duplication of an anchor property"),Ue=_.input.charCodeAt(++_.position);let lt=_.position;for(;Ue!==0&&!te(Ue)&&!ie(Ue);)Ue=_.input.charCodeAt(++_.position);return _.position===lt&&$(_,"name of an anchor node must contain at least one character"),_.anchor=_.input.slice(lt,_.position),!0}function St(_){let Ue=_.input.charCodeAt(_.position);if(Ue!==42)return!1;Ue=_.input.charCodeAt(++_.position);let lt=_.position;for(;Ue!==0&&!te(Ue)&&!ie(Ue);)Ue=_.input.charCodeAt(++_.position);_.position===lt&&$(_,"name of an alias node must contain at least one character");let Bt=_.input.slice(lt,_.position);return a.call(_.anchorMap,Bt)||$(_,'unidentified alias "'+Bt+'"'),_.result=_.anchorMap[Bt],x(_,!0,-1),!0}function er(_,Ue,lt,Bt){let ct=Ne(_);return ot(_),Fe(_,Ue),_.tag=null,_.anchor=null,_.kind=null,_.result=null,ke(_,lt,Bt)&&_.kind==="mapping"?(j(_),!0):(rt(_),Fe(_,ct),!1)}function ur(_,Ue,lt,Bt,ct){let Ft,le,Ze=1,Tt=!1,Et=!1,Pt=null,Lt,Nt,hr;_.depth>=_.maxDepth&&$(_,"nesting exceeded maxDepth ("+_.maxDepth+")"),_.depth+=1,_.listener!==null&&_.listener("open",_),_.tag=null,_.anc Line truncated
`),_.charCodeAt(0)===65279&&(_=_.slice(1)));let lt=new Ee(_,Ue),Bt=_.indexOf("\0");for(Bt!==-1&&(lt.position=Bt,$(lt,"null byte is not allowed in input")),lt.input+="\0";lt.input.charCodeAt(lt.position)===32;)lt.lineIndent+=1,lt.position+=1;for(;lt.position<lt.length-1;)Ht(lt);return lt.documents}function Ur(_,Ue,lt){Ue!==null&&typeof Ue=="object"&&typeof lt>"u"&&(lt=Ue,Ue=null);let Bt=Cn(_,lt);if(typeof Ue!="function")return Bt;for(let ct=0,Ft=Bt.length;ct<Ft;ct+=1)Ue(Bt[ct])}function kr(_,Ue){let lt=Cn(_,Ue);if(lt.length!==0){if(lt.length===1)return lt[0];throw new e("expected a single document in the stream, but found more")}}return TT.loadAll=Ur,TT.load=kr,TT}function z$e(){if(Rle)return lH;Rle=1;let t=uS(),e=fS(),r=uH(),s=Object.prototype.toString,a=Object.prototype.hasOwnProperty,n=65279,l=9,f=10,h=13,A=32,m=33,w=34,B=35,D=37,I=38,R=39,N=42,U=44,V=45,ee=58,te=61,ie=62,ae=63,ge=64,de=91,De=93,we=96,d=123,be=124,Ce=125,Ee={};Ee[0]="\\0",Ee[7]="\\a",Ee[8]="\\b",Ee[9]="\\t",Ee[10]="\\n",Ee[11]="\\v",Ee[12]="\\f",Ee[13]="\\r",Ee[27]="\\e",Ee[34]='\\"',Ee[92]="\\\\",Ee[133]="\\N",Ee[160]="\\_",Ee[8232]="\\L",Ee[8233]="\\P";let he=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"],$=/^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/;function Pe(le,Ze){if(Ze===null)return{};let Tt={},Et=Object.keys(Ze);for(let Pt=0,Lt=Et.length;Pt<Lt;Pt+=1){let Nt=Et[Pt],hr=String(Ze[Nt]);Nt.slice(0,2)==="!!"&&(Nt="tag:yaml.org,2002:"+Nt.slice(2));let Xt=le.compiledTypeMap.fallback[Nt];Xt&&a.call(Xt.styleAliases,hr)&&(hr=Xt.styleAliases[hr]),Tt[Nt]=hr}return Tt}function Te(le){let Ze,Tt,Et=le.toString(16).toUpperCase();if(le<=255)Ze="x",Tt=2;else if(le<=65535)Ze="u",Tt=4;else if(le<=4294967295)Ze="U",Tt=8;else throw new e("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+Ze+t.repeat("0",Tt-Et.length)+Et}let ot=1,j=2;function rt(le){this.schema=le.schema||r,this.indent=Math.max(1,le.indent||2),this.noArrayIndent=le.noArrayIndent||!1,this.skipInvalid=le.skipInvalid||!1,this.flowLevel=t.isNothing(le.flowLevel)?-1:le.flowLevel,this.styleMap=Pe(this.schema,le.styles||null),this.sortKeys=le.sortKeys||!1,this.lineWidth=le.lineWidth||80,this.noRefs=le.noRefs||!1,this.noCompatMode=le.noCompatMode||!1,this.condenseFlow=le.condenseFlow||!1,this.quotingType=le.quotingType==='"'?j:ot,this.forceQuotes=le.forceQuotes||!1,this.replacer=typeof le.replacer=="function"?le.replacer:null,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function Ne(le,Ze){let Tt=t.repeat(" ",Ze),Et=0,Pt="",Lt=le.length;for(;Et<Lt;){let Nt,hr=le.indexOf(`
`,Et);hr===-1?(Nt=le.slice(Et),Et=Lt):(Nt=le.slice(Et,hr+1),Et=hr+1),Nt.length&&Nt!==`
`&&(Pt+=Tt),Pt+=Nt}return Pt}function Fe(le,Ze){return`
`+t.repeat(" ",le.indent*Ze)}function xe(le,Ze){for(let Tt=0,Et=le.implicitTypes.length;Tt<Et;Tt+=1)if(le.implicitTypes[Tt].resolve(Ze))return!0;return!1}function He(le){return le===A||le===l}function Qe(le){return le>=32&&le<=126||le>=161&&le<=55295&&le!==8232&&le!==8233||le>=57344&&le<=65533&&le!==n||le>=65536&&le<=1114111}function ft(le){return Qe(le)&&le!==n&&le!==h&&le!==f}function Me(le,Ze,Tt){let Et=ft(le),Pt=Et&&!He(le);return(Tt?Et:Et&&le!==U&&le!==de&&le!==De&&le!==d&&le!==Ce)&&le!==B&&!(Ze===ee&&!Pt)||ft(Ze)&&!He(Ze)&&le===B||Ze===ee&&Pt}function x(le){return Qe(le)&&le!==n&&!He(le)&&le!==V&&le!==ae&&le!==ee&&le!==U&&le!==de&&le!==De&&le!==d&&le!==Ce&&le!==B&&le!==I&&le!==N&&le!==m&&le!==be&&le!==te&&le!==ie&&le!==R&&le!==w&&le!==D&&le!==ge&&le!==we}function C(le){return!He(le)&&le!==ee}function P(le,Ze){let Tt=le.charCodeAt(Ze),Et;return Tt>=55296&&Tt<=56319&&Ze+1<le.length&&(Et=le.charCodeAt(Ze+1),Et>=56320&&Et<=57343)?(Tt-55296)*1024+Et-56320+65536:Tt}function E(le){return/^\n* /.test(le)}let F=1,Z=2,X=3,re=4,ce=5;function ke(le,Ze,Tt,Et,Pt,Lt,Nt,hr){let Xt,$t=0,Er=null,Yr=!1,Tn=!1,yc=Et!==-1,Ro=-1,La=x(P(le,0))&&C(P(le,le.length-1));if(Ze||Nt)for(Xt=0;Xt<le.length;$t>=65536?Xt+=2:Xt++){if($t=P(le,Xt),!Qe($t))return ce;La=La&&Me($t,Er,hr),Er=$t}else{for(Xt=0;Xt<le.length;$t>=65536?Xt+=2:Xt++){if($t=P(le,Xt),$t===f)Yr=!0,yc&&(Tn=Tn||Xt-Ro-1>Et&&le[Ro+1]!==" ",Ro=Xt);else if(!Qe($t))return ce;La=La&&Me($t,Er,hr),Er=$t}Tn=Tn||yc&&Xt-Ro-1>Et&&le[Ro+1]!==" "}return!Yr&&!Tn?La&&!Nt&&!Pt(le)?F:Lt===j?ce:Z:Tt>9&&E(le)?ce:Nt?Lt===j?ce:Z:Tn?re:X}function Le(le,Ze,Tt,Et,Pt){le.dump=function(){if(Ze.length===0)return le.quotingType===j?'""':"''";if(!le.noCompatMode&&(he.indexOf(Ze)!==-1||$.test(Ze)))return le.quotingType===j?'"'+Ze+'"':"'"+Ze+"'";let Lt=le.indent*Math.max(1,Tt),Nt=le.lineWidth===-1?-1:Math.max(Math.min(le.lineWidth,40),le.lineWidth-Lt),hr=Et||le.flowLevel>-1&&Tt>=le.flowLevel;function Xt($t){return xe(le,$t)}switch(ke(Ze,hr,le.indent,Nt,Xt,le.quotingType,le.forceQuotes&&!Et,Pt)){case F:return Ze;case Z:return"'"+Ze.replace(/'/g,"''")+"'";case X:return"|"+pt(Ze,le.indent)+St(Ne(Ze,Lt));case re:return">"+pt(Ze,le.indent)+St(Ne(er(Ze,Nt),Lt));case ce:return'"'+Ht(Ze)+'"';default:throw new e("impossible error: invalid scalar style")}}()}function pt(le,Ze){let Tt=E(le)?String(Ze):"",Et=le[le.length-1]===`
`,Lt=Et&&(le[le.length-2]===`
`||le===`
`)?"+":Et?"":"-";return Tt+Lt+`
`}function St(le){return le[le.length-1]===`
`?le.slice(0,-1):le}function er(le,Ze){let Tt=/(\n+)([^\n]*)/g,Et=function(){let hr=le.indexOf(`
`);return hr=hr!==-1?hr:le.length,Tt.lastIndex=hr,ur(le.slice(0,hr),Ze)}(),Pt=le[0]===`
`||le[0]===" ",Lt,Nt;for(;Nt=Tt.exec(le);){let hr=Nt[1],Xt=Nt[2];Lt=Xt[0]===" ",Et+=hr+(!Pt&&!Lt&&Xt!==""?`
`:"")+ur(Xt,Ze),Pt=Lt}return Et}function ur(le,Ze){if(le===""||le[0]===" ")return le;let Tt=/ [^ ]/g,Et,Pt=0,Lt,Nt=0,hr=0,Xt="";for(;Et=Tt.exec(le);)hr=Et.index,hr-Pt>Ze&&(Lt=Nt>Pt?Nt:hr,Xt+=`
`+le.slice(Pt,Lt),Pt=Lt+1),Nt=hr;return Xt+=`
`,le.length-Pt>Ze&&Nt>Pt?Xt+=le.slice(Pt,Nt)+`
`+le.slice(Nt+1):Xt+=le.slice(Pt),Xt.slice(1)}function Ht(le){let Ze="",Tt=0;for(let Et=0;Et<le.length;Tt>=65536?Et+=2:Et++){Tt=P(le,Et);let Pt=Ee[Tt];!Pt&&Qe(Tt)?(Ze+=le[Et],Tt>=65536&&(Ze+=le[Et+1])):Ze+=Pt||Te(Tt)}return Ze}function Cn(le,Ze,Tt){let Et="",Pt=le.tag;for(let Lt=0,Nt=Tt.length;Lt<Nt;Lt+=1){let hr=Tt[Lt];le.replacer&&(hr=le.replacer.call(Tt,String(Lt),hr)),(lt(le,Ze,hr,!1,!1)||typeof hr>"u"&&lt(le,Ze,null,!1,!1))&&(Et!==""&&(Et+=","+(le.condenseFlow?"":" ")),Et+=le.dump)}le.tag=Pt,le.dump="["+Et+"]"}function Ur(le,Ze,Tt,Et){let Pt="",Lt=le.tag;for(let Nt=0,hr=Tt.length;Nt<hr;Nt+=1){let Xt=Tt[Nt];le.replacer&&(Xt=le.replacer.call(Tt,String(Nt),Xt)),(lt(le,Ze+1,Xt,!0,!0,!1,!0)||typeof Xt>"u"&&lt(le,Ze+1,null,!0,!0,!1,!0))&&((!Et||Pt!=="")&&(Pt+=Fe(le,Ze)),le.dump&&f===le.dump.charCodeAt(0)?Pt+="-":Pt+="- ",Pt+=le.dump)}le.tag=Lt,le.dump=Pt||"[]"}function kr(le,Ze,Tt){let Et="",Pt=le.tag,Lt=Object.keys(Tt);for(let Nt=0,hr=Lt.length;Nt<hr;Nt+=1){let Xt="";Et!==""&&(Xt+=", "),le.condenseFlow&&(Xt+='"');let $t=Lt[Nt],Er=Tt[$t];le.replacer&&(Er=le.replacer.call(Tt,$t,Er)),lt(le,Ze,$t,!1,!1)&&(le.dump.length>1024&&(Xt+="? "),Xt+=le.dump+(le.condenseFlow?'"':"")+":"+(le.condenseFlow?"":" "),lt(le,Ze,Er,!1,!1)&&(Xt+=le.dump,Et+=Xt))}le.tag=Pt,le.dump="{"+Et+"}"}function _(le,Ze,Tt,Et){let Pt="",Lt=le.tag,Nt=Object.keys(Tt);if(le.sortKeys===!0)Nt.sort();else if(typeof le.sortKeys=="function")Nt.sort(le.sortKeys);else if(le.sortKeys)throw new e("sortKeys must be a boolean or a function");for(let hr=0,Xt=Nt.length;hr<Xt;hr+=1){let $t="";(!Et||Pt!=="")&&($t+=Fe(le,Ze));let Er=Nt[hr],Yr=Tt[Er];if(le.replacer&&(Yr=le.replacer.call(Tt,Er,Yr)),!lt(le,Ze+1,Er,!0,!0,!0))continue;let Tn=le.tag!==null&&le.tag!=="?"||le.dump&&le.dump.length>1024;Tn&&(le.dump&&f===le.dump.charCodeAt(0)?$t+="?":$t+="? "),$t+=le.dump,Tn&&($t+=Fe(le,Ze)),lt(le,Ze+1,Yr,!0,Tn)&&(le.dump&&f===le.dump.charCodeAt(0)?$t+=":":$t+=": ",$t+=le.dump,Pt+=$t)}le.tag=Lt,le.dump=Pt||"{}"}function Ue(le,Ze,Tt){let Et=Tt?le.explicitTypes:le.implicitTypes;for(let Pt=0,Lt=Et.length;Pt<Lt;Pt+=1){let Nt=Et[Pt];if((Nt.instanceOf||Nt.predicate)&&(!Nt.instanceOf||typeof Ze=="object"&&Ze instanceof Nt.instanceOf)&&(!Nt.predicate||Nt.predicate(Ze))){if(Tt?Nt.multi&&Nt.representName?le.tag=Nt.representName(Ze):le.tag=Nt.tag:le.tag="?",Nt.represent){let hr=le.styleMap[Nt.tag]||Nt.defaultStyle,Xt;if(s.call(Nt.represent)==="[object Function]")Xt=Nt.represent(Ze,hr);else if(a.call(Nt.represent,hr))Xt=Nt.represent[hr](Ze,hr);else throw new e("!<"+Nt.tag+'> tag resolver accepts not "'+hr+'" style');le.dump=Xt}return!0}}return!1}function lt(le,Ze,Tt,Et,Pt,Lt,Nt){le.tag=null,le.dump=Tt,Ue(le,Tt,!1)||Ue(le,Tt,!0);let hr=s.call(le.dump),Xt=Et;Et&&(Et=le.flowLevel<0||le.flowLevel>Ze);let $t=hr==="[object Object]"||hr==="[object Array]",Er,Yr;if($t&&(Er=le.duplicates.indexOf(Tt),Yr=Er!==-1),(le.tag!==null&&le.tag!=="?"||Yr||le.indent!==2&&Ze>0)&&(Pt=!1),Yr&&le.usedDuplicates[Er])le.dump="*ref_"+Er;else{if($t&&Yr&&!le.usedDuplicates[Er]&&(le.usedDuplicates[Er]=!0),hr==="[object Object]")Et&&Object.keys(le.dump).length!==0?(_(le,Ze,le.dump,Pt),Yr&&(le.dump="&ref_"+Er+le.dump)):(kr(le,Ze,le.dump),Yr&&(le.dump="&ref_"+Er+" "+le.dump));else if(hr==="[object Array]")Et&&le.dump.length!==0?(le.noArrayIndent&&!Nt&&Ze>0?Ur(le,Ze-1,le.dump,Pt):Ur(le,Ze,le.dump,Pt),Yr&&(le.dump="&ref_"+Er+le.dump)):(Cn(le,Ze,le.dump),Yr&&(le.dump="&ref_"+Er+" "+le.dump));else if(hr==="[object String]")le.tag!=="?"&&Le(le,le.dump,Ze,Lt,Xt);else{if(hr==="[object Undefined]")return!1;if(le.skipInvalid)return!1;throw new e("unacceptable kind of an object to dump "+hr)}if(le.tag!==null&&le.tag!=="?"){let Tn=encodeURI(le.tag[0]==="!"?le.tag.slice(1):le.tag).replace(/!/g,"%21");le.tag[0]==="!"?Tn="!"+Tn:Tn.slice(0,18)==="tag:yaml.org,2002:"?Tn="!!"+Tn.slice(18):Tn="!<"+Tn+">",le.dump=Tn+" "+le.dump}}return!0}function Bt(le,Ze){let Tt=[],Et=[];ct(le,Tt,Et);let Pt=Et.length;for(let Lt=0;Lt<Pt;Lt+=1)Ze.duplicates.push(Tt[Et[Lt]]);Ze.usedDuplicates=new Array(Pt)}function ct(le,Ze,Tt){if(le!==null&&typeof le=="object"){let Et=Ze.indexOf(le);if(Et!==-1)Tt.indexOf(Et)===-1&&Tt.push(Et);else if(Ze.push(le),Array.isArray(le))for(let Pt=0,Lt=le.length;Pt<Lt;Pt+=1)ct(le[Pt],Ze,Tt);else{let Pt=Object.keys(le);for(let Lt=0,Nt=Pt.length;Lt<Nt;Lt+=1)ct(le[Pt[Lt]],Ze,Tt)}}}function Ft(le,Ze){Ze=Ze||{};let Tt=new rt(Ze);Tt.noRefs||Bt(le,Tt);let Et=le;return Tt.replacer&&(Et=Tt.replacer.call({"":Et},"",Et)),lt(Tt,0,Et,!0,!0)?Tt.dump+`
`:""}return lH.dump=Ft,lH}function J$e(){if(Tle)return pa;Tle=1;let t=K$e(),e=z$e();function r(s,a){return function(){throw new Error("Function yaml."+s+" is removed in js-yaml 4. Use yaml."+a+" instead, which is now safe by default.")}}return pa.Type=Za(),pa.Schema=Qle(),pa.FAILSAFE_SCHEMA=Lle(),pa.JSON_SCHEMA=jle(),pa.CORE_SCHEMA=Gle(),pa.DEFAULT_SCHEMA=uH(),pa.load=t.load,pa.loadAll=t.loadAll,pa.dump=e.dump,pa.YAMLException=fS(),pa.types={binary:Wle(),float:Hle(),map:Ole(),null:_le(),pairs:Kle(),set:zle(),timestamp:qle(),bool:Mle(),int:Ule(),merge:Vle(),omap:Yle(),seq:Nle(),str:Fle()},pa.safeLoad=r("safeLoad","load"),pa.safeLoadAll=r("safeLoadAll","loadAll"),pa.safeDump=r("safeDump","dump"),pa}var pa,TT,S0,cle,j6,lle,G6,ule,q6,fle,V6,hle,W6,Ale,Y6,ple,K6,dle,z6,gle,J6,mle,Z6,yle,X6,Ele,$6,Ile,eH,wle,tH,Cle,rH,Ble,nH,vle,iH,Sle,sH,ble,oH,Dle,aH,Ple,cH,xle,kle,lH,Rle,Tle,Z$e,X$e,hqt,Aqt,Jle,pqt,dqt,gqt,Zle,mqt,yqt,Eqt,Iqt,wqt,Cqt,Bqt,Xle=tt(()=>{pa={},TT={},S0={};lH={};Z$e=J$e(),X$e=W$e(Z$e),{Type:hqt,Schema:Aqt,FAILSAFE_SCHEMA:Jle,JSON_SCHEMA:pqt,CORE_SCHEMA:dqt,DEFAULT_SCHEMA:gqt,load:Zle,loadAll:mqt,dump:yqt,YAMLException:Eqt,types:Iqt,safeLoad:wqt,safeLoadAll:Cqt,safeDump:Bqt}=X$e});var eue=H((Sqt,$le)=>{"use strict";function $$e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function cy(t,e,r,s){this.message=t,this.expected=e,this.found=r,this.location=s,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,cy)}$$e(cy,Error);cy.buildMessage=function(t,e){var r={literal:function(A){return'"'+a(A.text)+'"'},class:function(A){var m="",w;for(w=0;w<A.parts.length;w++)m+=A.parts[w]instanceof Array?n(A.parts[w][0])+"-"+n(A.parts[w][1]):n(A.parts[w]);return"["+(A.inverted?"^":"")+m+"]"},any:function(A){return"any character"},end:function(A){return"end of input"},other:function(A){return A.description}};function s(A){return A.charCodeAt(0).toString(16).toUpperCase()}function a(A){return A.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(m){return"\\x0"+s(m)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(m){return"\\x"+s(m)})}function n(A){return A.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(m){return"\\x0"+s(m)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(m){return"\\x"+s(m)})}function l(A){return r[A.type](A)}function f(A){var m=new Array(A.length),w,B;for(w=0;w<A.length;w++)m[w]=l(A[w]);if(m.sort(),m.length>0){for(w=1,B=1;w<m.length;w++)m[w-1]!==m[w]&&(m[B]=m[w],B++);m.length=B}switch(m.length){case 1:return m[0];case 2:return m[0]+" or "+m[1];default:return m.slice(0,-1).join(", ")+", or "+m[m.length-1]}}function h(A){return A?'"'+a(A)+'"':"end of input"}return"Expected "+f(t)+" but "+h(e)+" found."};function eet(t,e){e=e!==void 0?e:{};var r={},s={Start:Yl},a=Yl,n=function(ne){return[].concat(...ne)},l="-",f=Un("-",!1),h=function(ne){return ne},A=function(ne){return Object.assign({},...ne)},m="#",w=Un("#",!1),B=$u(),D=function(){return{}},I=":",R=Un(":",!1),N=function(ne,Be){return{[ne]:Be}},U=",",V=Un(",",!1),ee=function(ne,Be){return Be},te=function(ne,Be,_e){return Object.assign({},...[ne].concat(Be).map(bt=>({[bt]:_e})))},ie=function(ne){return ne},ae=function(ne){return ne},ge=wc("correct indentation"),de=" ",De=Un(" ",!1),we=function(ne){return ne.length===Sr*_t},d=function(ne){return ne.length===(Sr+1)*_t},be=function(){return Sr++,!0},Ce=function(){return Sr--,!0},Ee=function(){return Ha()},he=wc("pseudostring"),$=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,Pe=Ei(["\r",`
`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Te=/^[^\r\n\t ,\][{}:#"']/,ot=Ei(["\r",`
`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),j=function(){return Ha().replace(/^ *| *$/g,"")},rt="--",Ne=Un("--",!1),Fe=/^[a-zA-Z\/0-9]/,xe=Ei([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),He=/^[^\r\n\t :,]/,Qe=Ei(["\r",`
`," "," ",":",","],!0,!1),ft="null",Me=Un("null",!1),x=function(){return null},C="true",P=Un("true",!1),E=function(){return!0},F="false",Z=Un("false",!1),X=function(){return!1},re=wc("string"),ce='"',ke=Un('"',!1),Le=function(){return""},pt=function(ne){return ne},St=function(ne){return ne.join("")},er=/^[^"\\\0-\x1F\x7F]/,ur=Ei(['"',"\\",["\0",""],"\x7F"],!0,!1),Ht='\\"',Cn=Un('\\"',!1),Ur=function(){return'"'},kr="\\\\",_=Un("\\\\",!1),Ue=function(){return"\\"},lt="\\/",Bt=Un("\\/",!1),ct=function(){return"/"},Ft="\\b",le=Un("\\b",!1),Ze=function(){return"\b"},Tt="\\f",Et=Un("\\f",!1),Pt=function(){return"\f"},Lt="\\n",Nt=Un("\\n",!1),hr=function(){return`
`},Xt="\\r",$t=Un("\\r",!1),Er=function(){return"\r"},Yr="\\t",Tn=Un("\\t",!1),yc=function(){return" "},Ro="\\u",La=Un("\\u",!1),HA=function(ne,Be,_e,bt){return String.fromCharCode(parseInt(`0x${ne}${Be}${_e}${bt}`))},Ma=/^[0-9a-fA-F]/,Ua=Ei([["0","9"],["a","f"],["A","F"]],!1,!1),jA=wc("blank space"),Fr=/^[ \t]/,Zo=Ei([" "," "],!1,!1),Ec=wc("white space"),Ge=/^[ \t\n\r]/,Hr=Ei([" "," ",`
`,"\r"],!1,!1),oh=`\r
`,GA=Un(`\r
`,!1),qA=`
`,Zu=Un(`
`,!1),Xu="\r",Vl=Un("\r",!1),ve=0,Jt=0,Wl=[{line:1,column:1}],as=0,To=[],Vt=0,ei;if("startRule"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=s[e.startRule]}function Ha(){return t.substring(Jt,ve)}function As(){return Bc(Jt,ve)}function cs(ne,Be){throw Be=Be!==void 0?Be:Bc(Jt,ve),ah([wc(ne)],t.substring(Jt,ve),Be)}function Ic(ne,Be){throw Be=Be!==void 0?Be:Bc(Jt,ve),vc(ne,Be)}function Un(ne,Be){return{type:"literal",text:ne,ignoreCase:Be}}function Ei(ne,Be,_e){return{type:"class",parts:ne,inverted:Be,ignoreCase:_e}}function $u(){return{type:"any"}}function Ud(){return{type:"end"}}function wc(ne){return{type:"other",description:ne}}function Cc(ne){var Be=Wl[ne],_e;if(Be)return Be;for(_e=ne-1;!Wl[_e];)_e--;for(Be=Wl[_e],Be={line:Be.line,column:Be.column};_e<ne;)t.charCodeAt(_e)===10?(Be.line++,Be.column=1):Be.column++,_e++;return Wl[ne]=Be,Be}function Bc(ne,Be){var _e=Cc(ne),bt=Cc(Be);return{start:{offset:ne,line:_e.line,column:_e.column},end:{offset:Be,line:bt.line,column:bt.column}}}function it(ne){ve<as||(ve>as&&(as=ve,To=[]),To.push(ne))}function vc(ne,Be){return new cy(ne,null,null,Be)}function ah(ne,Be,_e){return new cy(cy.buildMessage(ne,Be),ne,Be,_e)}function Yl(){var ne;return ne=VA(),ne}function Yn(){var ne,Be,_e;for(ne=ve,Be=[],_e=ja();_e!==r;)Be.push(_e),_e=ja();return Be!==r&&(Jt=ne,Be=n(Be)),ne=Be,ne}function ja(){var ne,Be,_e,bt,xt;return ne=ve,Be=ll(),Be!==r?(t.charCodeAt(ve)===45?(_e=l,ve++):(_e=r,Vt===0&&it(f)),_e!==r?(bt=ri(),bt!==r?(xt=Ga(),xt!==r?(Jt=ne,Be=h(xt),ne=Be):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r),ne}function VA(){var ne,Be,_e;for(ne=ve,Be=[],_e=WA();_e!==r;)Be.push(_e),_e=WA();return Be!==r&&(Jt=ne,Be=A(Be)),ne=Be,ne}function WA(){var ne,Be,_e,bt,xt,jt,Ir,Nn,Qi;if(ne=ve,Be=ri(),Be===r&&(Be=null),Be!==r){if(_e=ve,t.charCodeAt(ve)===35?(bt=m,ve++):(bt=r,Vt===0&&it(w)),bt!==r){if(xt=[],jt=ve,Ir=ve,Vt++,Nn=dt(),Vt--,Nn===r?Ir=void 0:(ve=Ir,Ir=r),Ir!==r?(t.length>ve?(Nn=t.charAt(ve),ve++):(Nn=r,Vt===0&&it(B)),Nn!==r?(Ir=[Ir,Nn],jt=Ir):(ve=jt,jt=r)):(ve=jt,jt=r),jt!==r)for(;jt!==r;)xt.push(jt),jt=ve,Ir=ve,Vt++,Nn=dt(),Vt--,Nn===r?Ir=void 0:(ve=Ir,Ir=r),Ir!==r?(t.length>ve?(Nn=t.charAt(ve),ve++):(Nn=r,Vt===0&&it(B)),Nn!==r?(Ir=[Ir,Nn],jt=Ir):(ve=jt,jt=r)):(ve=jt,jt=r);else xt=r;xt!==r?(bt=[bt,xt],_e=bt):(ve=_e,_e=r)}else ve=_e,_e=r;if(_e===r&&(_e=null),_e!==r){if(bt=[],xt=et(),xt!==r)for(;xt!==r;)bt.push(xt),xt=et();else bt=r;bt!==r?(Jt=ne,Be=D(),ne=Be):(ve=ne,ne=r)}else ve=ne,ne=r}else ve=ne,ne=r;if(ne===r&&(ne=ve,Be=ll(),Be!==r?(_e=Sc(),_e!==r?(bt=ri(),bt===r&&(bt=null),bt!==r?(t.charCodeAt(ve)===58?(xt=I,ve++):(xt=r,Vt===0&&it(R)),xt!==r?(jt=ri(),jt===r&&(jt=null),jt!==r?(Ir=Ga(),Ir!==r?(Jt=ne,Be=N(_e,Ir),ne=Be):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r),ne===r&&(ne=ve,Be=ll(),Be!==r?(_e=ks(),_e!==r?(bt=ri(),bt===r&&(bt=null),bt!==r?(t.charCodeAt(ve)===58?(xt=I,ve++):(xt=r,Vt===0&&it(R)),xt!==r?(jt=ri(),jt===r&&(jt=null),jt!==r?(Ir=Ga(),Ir!==r?(Jt=ne,Be=N(_e,Ir),ne=Be):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r),ne===r))){if(ne=ve,Be=ll(),Be!==r)if(_e=ks(),_e!==r)if(bt=ri(),bt!==r)if(xt=ef(),xt!==r){if(jt=[],Ir=et(),Ir!==r)for(;Ir!==r;)jt.push(Ir),Ir=et();else jt=r;jt!==r?(Jt=ne,Be=N(_e,xt),ne=Be):(ve=ne,ne=r)}else ve=ne,ne=r;else ve=ne,ne=r;else ve=ne,ne=r;else ve=ne,ne=r;if(ne===r)if(ne=ve,Be=ll(),Be!==r)if(_e=ks(),_e!==r){if(bt=[],xt=ve,jt=ri(),jt===r&&(jt=null),jt!==r?(t.charCodeAt(ve)===44?(Ir=U,ve++):(Ir=r,Vt===0&&it(V)),Ir!==r?(Nn=ri(),Nn===r&&(Nn=null),Nn!==r?(Qi=ks(),Qi!==r?(Jt=xt,jt=ee(_e,Qi),xt=jt):(ve=xt,xt=r)):(ve=xt,xt=r)):(ve=xt,xt=r)):(ve=xt,xt=r),xt!==r)for(;xt!==r;)bt.push(xt),xt=ve,jt=ri(),jt===r&&(jt=null),jt!==r?(t.charCodeAt(ve)===44?(Ir=U,ve++):(Ir=r,Vt===0&&it(V)),Ir!==r?(Nn=ri(),Nn===r&&(Nn=null),Nn!==r?(Qi=ks(),Qi!==r?(Jt=xt,jt=ee(_e,Qi),xt=jt):(ve=xt,xt=r)):(ve=xt,xt=r)):(ve=xt,xt=r)):(ve=xt,xt=r);else bt=r;bt!==r?(xt=ri(),xt===r&&(xt=null),xt!==r?(t.charCodeAt(ve)===58?(jt=I,ve++):(jt=r,Vt===0&&it(R)),jt!==r?(Ir=ri(),Ir===r&&(Ir=null),Ir!==r?(Nn=Ga(),Nn!==r?(Jt=ne,Be=te(_e,bt,Nn),ne=Be):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)}else ve=ne,ne=r;else ve=ne,ne=r}return ne}function Ga(){var ne,Be,_e,bt,xt,jt,Ir;if(ne=ve,Be=ve,Vt++,_e=ve,bt=dt(),bt!==r?(xt=rr(),xt!==r?(t.charCodeAt(ve)===45?(jt=l,ve++):(jt=r,Vt===0&&it(f)),jt!==r?(Ir=ri(),Ir!==r?(bt=[bt,xt,jt,Ir],_e=bt):(ve=_e,_e=r)):(ve=_e,_e=r)):(ve=_e,_e=r)):(ve=_e,_e=r),Vt--,_e!==r?(ve=Be,Be=void 0):Be=r,Be!==r?(_e=et(),_e!==r?(bt=ti(),bt!==r?(xt=Yn(),xt!==r?(jt=qa(),jt!==r?(Jt=ne,Be=ie(xt),ne=Be):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r),ne===r&&(ne=ve,Be=dt(),Be!==r?(_e=ti(),_e!==r?(bt=VA(),bt!==r?(xt=qa(),xt!==r?(Jt=ne,Be=ie(bt),ne=Be):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r)):(ve=ne,ne=r),ne===r))if(ne=ve,Be=Kl(),Be!==r){if(_e=[],bt=et(),bt!==r)for(;bt!==r;)_e.push(bt),bt=et();else _e=r;_e!==r?(Jt=ne,BeLine truncated
`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()}
`;if(typeof t=="string")return`${rue(t)}
`;if(Array.isArray(t)){if(t.length===0)return`[]
`;let s=" ".repeat(e);return`
${t.map(n=>`${s}- ${fH(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[s,a]=t instanceof QT?[t.data,!1]:[t,!0],n=" ".repeat(e),l=Object.keys(s);a&&l.sort((h,A)=>{let m=tue.indexOf(h),w=tue.indexOf(A);return m===-1&&w===-1?h<A?-1:h>A?1:0:m!==-1&&w===-1?-1:m===-1&&w!==-1?1:m-w});let f=l.filter(h=>!iue(s[h])).map((h,A)=>{let m=s[h],w=rue(h),B=fH(m,e+1,!0),D=A>0||r?n:"",I=w.length>1024?`? ${w}
${D}:`:`${w}:`,R=B.startsWith(`
`)?B:` ${B}`;return`${D}${I}${R}`}).join(e===0?`
`:"")||`
`;return r?`
${f}`:`${f}`}throw new Error(`Unsupported value type (${t})`)}function Uc(t){try{let e=fH(t,0,!1);return e!==`
`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function ret(t){return t.endsWith(`
`)||(t+=`
`),(0,nue.parse)(t)}function iet(t){if(net.test(t))return ret(t);let e=Zle(t,{schema:Jle,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Fs(t){return iet(t)}var nue,tet,tue,QT,net,sue=tt(()=>{Xle();nue=st(eue()),tet=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,tue=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],QT=class{constructor(e){this.data=e}};Uc.PreserveOrdering=QT;net=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var hS={};lr(hS,{parseResolution:()=>kT,parseShell:()=>DT,parseSyml:()=>Fs,stringifyArgument:()=>U6,stringifyArgumentSegment:()=>H6,stringifyArithmeticExpression:()=>xT,stringifyCommand:()=>M6,stringifyCommandChain:()=>hw,stringifyCommandChainThen:()=>_6,stringifyCommandLine:()=>PT,stringifyCommandLineThen:()=>L6,stringifyEnvSegment:()=>bT,stringifyRedirectArgument:()=>lS,stringifyResolution:()=>RT,stringifyShell:()=>fw,stringifyShellLine:()=>fw,stringifySyml:()=>Uc,stringifyValueArgument:()=>oy});var au=tt(()=>{nle();ale();sue()});var aue=H((Rqt,hH)=>{"use strict";var set=t=>{let e=!1,r=!1,s=!1;for(let a=0;a<t.length;a++){let n=t[a];e&&/[a-zA-Z]/.test(n)&&n.toUpperCase()===n?(t=t.slice(0,a)+"-"+t.slice(a),e=!1,s=r,r=!0,a++):r&&s&&/[a-zA-Z]/.test(n)&&n.toLowerCase()===n?(t=t.slice(0,a-1)+"-"+t.slice(a-1),s=r,r=!1,e=!0):(e=n.toLowerCase()===n&&n.toUpperCase()!==n,s=r,r=n.toUpperCase()===n&&n.toLowerCase()!==n)}return t},oue=(t,e)=>{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=set(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};hH.exports=oue;hH.exports.default=oue});var cue=H((Tqt,oet)=>{oet.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Re Line truncated
${this.candidates.map(({usage:a})=>`$ ${a}`).join(`
`)}`}else if(this.candidates.length===1){let[{usage:s}]=this.candidates;this.message=`Command not found; did you mean:
$ ${s}
${gH(e)}`}else this.message=`Command not found; did you mean one of:
${this.candidates.map(({usage:s},a)=>`${`${a}.`.padStart(4)} ${s}`).join(`
`)}
${gH(e)}`}},OT=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives:
${this.usages.map((s,a)=>`${`${a}.`.padStart(4)} ${s}`).join(`
`)}
${gH(e)}`}},gH=t=>`While running ${t.filter(e=>e!==Si.EndOfInput&&e!==Si.EndOfPartialInput).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function aet(t){let e=t.split(`
`),r=e.filter(a=>a.match(/\S/)),s=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(s).trimRight()).join(`
`)}function da(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,`
`),t=aet(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2
`),t=t.replace(/\n(\n)?\n*/g,(s,a)=>a||" "),r&&(t=t.split(/\n/).map(s=>{let a=s.match(/^\s*[*-][\t ]+(.*)/);if(!a)return s.match(/(.{1,80})(?: |$)/g).join(`
`);let n=s.length-s.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((l,f)=>" ".repeat(n)+(f===0?"- ":" ")+l).join(`
`)}).join(`
`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(s,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(s,a,n)=>e.bold(a+n+a)),t?`${t}
`:""}var mH,hue,Aue,yH=tt(()=>{mH=Array(80).fill("\u2501");for(let t=0;t<=24;++t)mH[mH.length-t]=`\x1B[38;5;${232+t}m\u2501`;hue={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<75?` ${mH.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},Aue={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function Xa(t){return{...t,[AS]:!0}}function Nh(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function _T(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(!r)return"validation failed";let[,s,a]=r;return e&&(a=a[0].toLowerCase()+a.slice(1)),a=s!=="."||!e?`${s.replace(/^\.(\[|$)/,"$1")}: ${a}`:`: ${a}`,a}function pS(t,e){return e.length===1?new ht(`${t}${_T(e[0],{mergeName:!0})}`):new ht(`${t}:
${e.map(r=>`
- ${_T(r)}`).join("")}`)}function fy(t,e,r){if(typeof r>"u")return e;let s=[],a=[],n=f=>{let h=e;return e=f,n.bind(null,h)};if(!r(e,{errors:s,coercions:a,coercion:n}))throw pS(`Invalid value for ${t}`,s);for(let[,f]of a)f();return e}var AS,Pp=tt(()=>{LT();AS=Symbol("clipanion/isOption")});var ho={};lr(ho,{KeyRelationship:()=>Oh,TypeAssertionError:()=>D0,applyCascade:()=>gS,as:()=>Pet,assert:()=>vet,assertWithErrors:()=>bet,cascade:()=>P0,fn:()=>xet,hasAtLeastOneKey:()=>SH,hasExactLength:()=>yue,hasForbiddenKeys:()=>Ket,hasKeyRelationship:()=>yS,hasMaxLength:()=>Ret,hasMinLength:()=>ket,hasMutuallyExclusiveKeys:()=>zet,hasRequiredKeys:()=>Yet,hasUniqueItems:()=>Tet,isArray:()=>MT,isAtLeast:()=>BH,isAtMost:()=>Net,isBase64:()=>Get,isBoolean:()=>get,isDate:()=>yet,isDict:()=>wet,isEnum:()=>$s,isHexColor:()=>jet,isISO8601:()=>Het,isInExclusiveRange:()=>Let,isInInclusiveRange:()=>Oet,isInstanceOf:()=>Bet,isInteger:()=>vH,isJSON:()=>qet,isLiteral:()=>due,isLowerCase:()=>_et,isMap:()=>Iet,isNegative:()=>Qet,isNullable:()=>Wet,isNumber:()=>wH,isObject:()=>gue,isOneOf:()=>CH,isOptional:()=>Vet,isPartial:()=>Cet,isPayload:()=>met,isPositive:()=>Fet,isRecord:()=>HT,isSet:()=>Eet,isString:()=>_h,isTuple:()=>UT,isUUID4:()=>Uet,isUnknown:()=>IH,isUpperCase:()=>Met,makeTrait:()=>mue,makeValidator:()=>fn,matchesRegExp:()=>xp,softAssert:()=>Det});function bi(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":typeof t=="symbol"?`<${t.toString()}>`:Array.isArray(t)?"an array":JSON.stringify(t)}function pw(t,e){if(t.length===0)return"nothing";if(t.length===1)return bi(t[0]);let r=t.slice(0,-1),s=t[t.length-1],a=t.length>2?`, ${e} `:` ${e} `;return`${r.map(n=>bi(n)).join(", ")}${a}${bi(s)}`}function b0(t,e){var r,s,a;return typeof e=="number"?`${(r=t?.p)!==null&&r!==void 0?r:"."}[${e}]`:cet.test(e)?`${(s=t?.p)!==null&&s!==void 0?s:""}.${e}`:`${(a=t?.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function EH(t,e,r){return t===1?e:r}function Lr({errors:t,p:e}={},r){return t?.push(`${e??"."}: ${r}`),!1}function pet(t,e){return r=>{t[e]=r}}function Lh(t,e){return r=>{let s=t[e];return t[e]=r,Lh(t,e).bind(null,s)}}function dS(t,e,r){let s=()=>(t(r()),a),a=()=>(t(e),s);return s}function IH(){return fn({test:(t,e)=>!0})}function due(t){return fn({test:(e,r)=>e!==t?Lr(r,`Expected ${bi(t)} (got ${bi(e)})`):!0})}function _h(){return fn({test:(t,e)=>typeof t!="string"?Lr(e,`Expected a string (got ${bi(t)})`):!0})}function $s(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>typeof a=="string"||typeof a=="number"),s=new Set(e);return s.size===1?due([...s][0]):fn({test:(a,n)=>s.has(a)?!0:r?Lr(n,`Expected one of ${pw(e,"or")} (got ${bi(a)})`):Lr(n,`Expected a valid enumeration value (got ${bi(a)})`)})}function get(){return fn({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return Lr(e,"Unbound coercion result");let s=det.get(t);if(typeof s<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,s)]),!0}return Lr(e,`Expected a boolean (got ${bi(t)})`)}return!0}})}function wH(){return fn({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return Lr(e,"Unbound coercion result");let s;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)s=a;else return Lr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof s<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,s)]),!0}return Lr(e,`Expected a number (got ${bi(t)})`)}return!0}})}function met(t){return fn({test:(e,r)=>{var s;if(typeof r?.coercions>"u")return Lr(r,"The isPayload predicate can only be used with coercion enabled");if(typeof r.coercion>"u")return Lr(r,"Unbound coercion result");if(typeof e!="string")return Lr(r,`Expected a string (got ${bi(e)})`);let a;try{a=JSON.parse(e)}catch{return Lr(r,`Expected a JSON string (got ${bi(e)})`)}let n={value:a};return t(a,Object.assign(Object.assign({},r),{coercion:Lh(n,"value")}))?(r.coercions.push([(s=r.p)!==null&&s!==void 0?s:".",r.coercion.bind(null,n.value)]),!0):!1}})}function yet(){return fn({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return Lr(e,"Unbound coercion result");let s;if(typeof t=="string"&&pue.test(t))s=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))s=new Date(a*1e3);else return Lr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof s<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,s)]),!0}return Lr(e,`Expected a date (got ${bi(t)})`)}return!0}})}function MT(t,{delimiter:e}={}){return fn({test:(r,s)=>{var a;let n=r;if(typeof r=="string"&&typeof e<"u"&&typeof s?.coercions<"u"){iLine truncated
`;for(let s of e)r+=`
- ${s}`}super(r)}};mS={missing:(t,e)=>t.has(e),undefined:(t,e,r)=>t.has(e)&&typeof r[e]<"u",nil:(t,e,r)=>t.has(e)&&r[e]!=null,falsy:(t,e,r)=>t.has(e)&&!!r[e]};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Oh||(Oh={}));Jet={[Oh.Forbids]:{expect:!1,message:"forbids using"},[Oh.Requires]:{expect:!0,message:"requires using"}}});var At,x0=tt(()=>{Pp();At=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:l}=await Promise.resolve().then(()=>(ga(),ho)),f=l(a(n()),r),h=[],A=[];if(!f(this,{errors:h,coercions:A}))throw pS("Invalid option schema",h);for(let[,w]of A)w()}else if(r!=null)throw new Error("Invalid command schema");let s=await this.execute();return typeof s<"u"?s:0}};At.isOption=AS;At.Default=[]});function Hc(t){dH&&console.log(t)}function Iue(){let t={nodes:[]};for(let e=0;e<Gn.CustomNode;++e)t.nodes.push(Sl());return t}function Zet(t){let e=Iue(),r=[],s=e.nodes.length;for(let a of t){r.push(s);for(let n=0;n<a.nodes.length;++n)Cue(n)||e.nodes.push(stt(a.nodes[n],s));s+=a.nodes.length-Gn.CustomNode+1}for(let a of r)dw(e,Gn.InitialNode,a);return e}function vf(t,e){return t.nodes.push(e),t.nodes.length-1}function Xet(t){let e=new Set,r=s=>{if(e.has(s))return;e.add(s);let a=t.nodes[s];for(let l of Object.values(a.statics))for(let{to:f}of l)r(f);for(let[,{to:l}]of a.dynamics)r(l);for(let{to:l}of a.shortcuts)r(l);let n=new Set(a.shortcuts.map(({to:l})=>l));for(;a.shortcuts.length>0;){let{to:l}=a.shortcuts.shift(),f=t.nodes[l];for(let[h,A]of Object.entries(f.statics)){let m=Object.prototype.hasOwnProperty.call(a.statics,h)?a.statics[h]:a.statics[h]=[];for(let w of A)m.some(({to:B})=>w.to===B)||m.push(w)}for(let[h,A]of f.dynamics)a.dynamics.some(([m,{to:w}])=>h===m&&A.to===w)||a.dynamics.push([h,A]);for(let h of f.shortcuts)n.has(h.to)||(a.shortcuts.push(h),n.add(h.to))}};r(Gn.InitialNode)}function $et(t,{prefix:e=""}={}){if(dH){Hc(`${e}Nodes are:`);for(let r=0;r<t.nodes.length;++r)Hc(`${e} ${r}: ${JSON.stringify(t.nodes[r])}`)}}function ett(t,e,r=!1){Hc(`Running a vm on ${JSON.stringify(e)}`);let s=[{node:Gn.InitialNode,state:{candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,options:[],path:[],positionals:[],remainder:null,selectedIndex:null,partial:!1,tokens:[]}}];$et(t,{prefix:" "});let a=[Si.StartOfInput,...e];for(let n=0;n<a.length;++n){let l=a[n],f=l===Si.EndOfInput||l===Si.EndOfPartialInput,h=n-1;Hc(` Processing ${JSON.stringify(l)}`);let A=[];for(let{node:m,state:w}of s){Hc(` Current node is ${m}`);let B=t.nodes[m];if(m===Gn.ErrorNode){A.push({node:m,state:w});continue}console.assert(B.shortcuts.length===0,"Shortcuts should have been eliminated by now");let D=Object.prototype.hasOwnProperty.call(B.statics,l);if(!r||n<a.length-1||D)if(D){let I=B.statics[l];for(let{to:R,reducer:N}of I)A.push({node:R,state:typeof N<"u"?jT(DH,N,w,l,h):w}),Hc(` Static transition to ${R} found`)}else Hc(" No static transition found");else{let I=!1;for(let R of Object.keys(B.statics))if(R.startsWith(l)){if(l===R)for(let{to:N,reducer:U}of B.statics[R])A.push({node:N,state:typeof U<"u"?jT(DH,U,w,l,h):w}),Hc(` Static transition to ${N} found`);else for(let{to:N}of B.statics[R])A.push({node:N,state:{...w,remainder:R.slice(l.length)}}),Hc(` Static transition to ${N} found (partial match)`);I=!0}I||Hc(" No partial static transition found")}if(!f)for(let[I,{to:R,reducer:N}]of B.dynamics)jT(ott,I,w,l,h)&&(A.push({node:R,state:typeof N<"u"?jT(DH,N,w,l,h):w}),Hc(` Dynamic transition to ${R} found (via ${I})`))}if(A.length===0&&f&&e.length===1)return[{node:Gn.InitialNode,state:Eue}];if(A.length===0)throw new Aw(e,s.filter(({node:m})=>m!==Gn.ErrorNode).map(({state:m})=>({usage:m.candidateUsage,reason:null})));if(A.every(({node:m})=>m===Gn.ErrorNode))throw new Aw(e,A.map(({state:m})=>({usage:m.candidateUsage,reason:m.errorMessage})));s=rtt(A)}if(s.length>0){Hc(" Results:");for(let n of s)Hc(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else Hc(" No results");return s}function ttt(t,e,{endToken:r=Si.EndOfInput}={}){let s=ett(t,[...e,r]);return ntt(e,s.map(({state:a})=>a))}function rtt(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function ntt(t,e){let r=e.filter(B=>B.selectedIndex!==null),s=r.filter(B=>!B.partial);if(s.length>0&&(r=s),r.length===0)throw new Error;let a=r.filter(B=>B.selectedIndex===uy||B.requiredOptions.every(D=>D.some(I=>B.options.find(R=>R.name===I))));if(a.length===0)throw new Aw(t,r.map(B=>({usage:B.candidateUsage,reason:null})));let n=0;for(let B of a)B.path.length>n&&(n=B.path.length);let l=a.filter(B=>B.path.length===n),f=B=>B.positionals.filter(({extra:D})=>!D).length+B.options.length,h=l.map(B=>({state:B,positionalCount:f(B)})),A=0;for(let{positionalCount:B}of h)B>A&&(A=B);let m=h.filter(({positionalCount:B})=>B===A).map(({state:B Line truncated
`),this.context.stdout.write(`
`);let r=0;for(let s of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[s].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(`
`),this.context.stdout.write(`Run again with -h=<index> to see the longer details of any of those commands.
`)}}}});async function kue(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}=Tue(t);return ec.from(r,e).runExit(s,a)}async function Rue(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}=Tue(t);return ec.from(r,e).run(s,a)}function Tue(t){let e,r,s,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(s=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof At||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?s=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],s=t[2]):t[0]&&t[0].prototype instanceof At||Array.isArray(t[0])?(r=t[0],s=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],s=t[2],a=t[3];break}if(typeof s>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:s,resolvedContext:a}}function xue(t){return t()}var Pue,ec,Que=tt(()=>{NT();qT();yH();bue();x0();Due();Pue=Symbol("clipanion/errorCommand");ec=class t{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:s,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new GT({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=s,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let s=new t(r),a=Array.isArray(e)?e:[e];for(let n of a)s.register(n);return s}register(e){var r;let s=new Map,a=new e;for(let h in a){let A=a[h];typeof A=="object"&&A!==null&&A[At.isOption]&&s.set(h,A)}let n=this.builder.command(),l=n.cliIndex,f=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof f<"u")for(let h of f)n.addPath(h);this.registrations.set(e,{specs:s,builder:n,index:l});for(let[h,{definition:A}]of s.entries())A(n,h);n.setContext({commandClass:e})}process(e,r){let{input:s,context:a,partial:n}=typeof e=="object"&&Array.isArray(e)?{input:e,context:r}:e,{contexts:l,process:f}=this.builder.compile(),h=f(s,{partial:n}),A={...t.defaultContext,...a};switch(h.selectedIndex){case uy:{let m=WT.from(h,l);return m.context=A,m.tokens=h.tokens,m}default:{let{commandClass:m}=l[h.selectedIndex],w=this.registrations.get(m);if(typeof w>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let B=new m;B.context=A,B.tokens=h.tokens,B.path=h.path;try{for(let[D,{transformer:I}]of w.specs.entries())B[D]=I(w.builder,D,h,A);return B}catch(D){throw D[Pue]=B,D}}break}}async run(e,r){var s,a;let n,l={...t.defaultContext,...r},f=(s=this.enableColors)!==null&&s!==void 0?s:l.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,l)}catch(m){return l.stdout.write(this.error(m,{colored:f})),1}if(n.help)return l.stdout.write(this.usage(n,{colored:f,detailed:!0})),0;n.context=l,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:m=>this.definition(m),error:(m,w)=>this.error(m,w),format:m=>this.format(m),process:(m,w)=>this.process(m,{...l,...w}),run:(m,w)=>this.run(m,{...l,...w}),usage:(m,w)=>this.usage(m,w)};let h=this.enableCapture&&(a=Sue(l))!==null&&a!==void 0?a:xue,A;try{A=await h(()=>n.validateAndExecute().catch(m=>n.catch(m).then(()=>0)))}catch(m){return l.stdout.write(this.error(m,{colored:f,command:n})),1}return A}async runExit(e,r){process.exitCode=await this.run(e,r)}definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:s}=this.getUsageByRegistration(e,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(e,{detailed:!0,inlineOptions:!1}),l=typeof e.usage.category<"u"?da(e.usage.category,{format:this.format(r),paragraphs:!1}):void 0,f=typeof e.usage.description<"u"?da(e.usage.description,{format:this.format(r),paragraphs:!1}):void 0,h=typeof e.usage.details<"u"?da(e.usage.details,{format:this.format(r),paragraphs:!0}):void 0,A=typeof e.usage.examples<"u"?e.usage.examples.map(([m,w])=>[da(m,{format:this.format(r),paragraphs:!1}),w.replace(/\$0/g,this.binaryName)]):void 0;return{path:s,usage:a,category:l,description:f,details:h,examples:A,options:n}}definitions({colored:e=!1}={}){let r=[];for(let s of this.registrations.keys()){let a=this.definition(s,{colored:e});a&&r.push(a)}return r}usage(e=null,{colored:r,detailed:s=!1,prefix:a="$ "}={}){var n;if(e===null){for(let h of this.registrations.keys()){let A=h.paths,m=typeof h.usage<"u";if(!A||A.length===0||A.length===1&&A[0].length===0||((n=A?.some(D=>D.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=h;else if(m){e=null;continue}}e&&(s=!0)}let l=e!==null&&e instanceof At?e.constructor:e,f="";if(l)if(s){let{description:h="",details:A="",examples:m=[]}=l.usage||{};h!==""&&(f+=da(h,{format:this.format(r),paragraphs:!1}).replace(/^./,D=>D.toUpperCase()),f+=`
`),(A!==""||m.length>0)&&(f+=`${this.format(r).header("Usage")}
`,f+=`
`);let{usage:w,options:B}=this.getUsageByRegistration(l,{inlineOptions:!1});if(f+=`${this.format(r).bold(a)}${w}
`,B.length>0){f+=`
`,f+=`${this.format(r).header("Options")}
`;let D=B.reduce((I,R)=>Math.max(I,R.definition.length),0);f+=`
`;for(let{definition:I,description:R}of B)f+=` ${this.format(r).bold(I.padEnd(D))} ${da(R,{format:this.format(r),paragraphs:!1})}`}if(A!==""&&(f+=`
`,f+=`${this.format(r).header("Details")}
`,f+=`
`,f+=da(A,{format:this.format(r),paragraphs:!0})),m.length>0){f+=`
`,f+=`${this.format(r).header("Examples")}
`;for(let[D,I]of m)f+=`
`,f+=da(D,{format:this.format(r),paragraphs:!1}),f+=`${I.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)}
`}}else{let{usage:h}=this.getUsageByRegistration(l);f+=`${this.format(r).bold(a)}${h}
`}else{let h=new Map;for(let[B,{index:D}]of this.registrations.entries()){if(typeof B.usage>"u")continue;let I=typeof B.usage.category<"u"?da(B.usage.category,{format:this.format(r),paragraphs:!1}):null,R=h.get(I);typeof R>"u"&&h.set(I,R=[]);let{usage:N}=this.getUsageByIndex(D);R.push({commandClass:B,usage:N})}let A=Array.from(h.keys()).sort((B,D)=>B===null?-1:D===null?1:B.localeCompare(D,"en",{usage:"sort",caseFirst:"upper"})),m=typeof this.binaryLabel<"u",w=typeof this.binaryVersion<"u";m||w?(m&&w?f+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)}
`:m?f+=`${this.format(r).header(`${this.binaryLabel}`)}
`:f+=`${this.format(r).header(`${this.binaryVersion}`)}
`,f+=` ${this.format(r).bold(a)}${this.binaryName} <command>
`):f+=`${this.format(r).bold(a)}${this.binaryName} <command>
`;for(let B of A){let D=h.get(B).slice().sort((R,N)=>R.usage.localeCompare(N.usage,"en",{usage:"sort",caseFirst:"upper"})),I=B!==null?B.trim():"General commands";f+=`
`,f+=`${this.format(r).header(`${I}`)}
`;for(let{commandClass:R,usage:N}of D){let U=R.usage.description||"undocumented";f+=`
`,f+=` ${this.format(r).bold(N)}
`,f+=` ${da(U,{format:this.format(r),paragraphs:!1})}`}}f+=`
`,f+=da("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return f}error(e,r){var s,{colored:a,command:n=(s=e[Pue])!==null&&s!==void 0?s:null}=r===void 0?{}:r;(!e||typeof e!="object"||!("stack"in e))&&(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let l="",f=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");f==="Error"&&(f="Internal Error"),l+=`${this.format(a).error(f)}: ${e.message}
`;let h=e.clipanion;return typeof h<"u"?h.type==="usage"&&(l+=`
`,l+=this.usage(n)):e.stack&&(l+=`${e.stack.replace(/^.*\n/,"")}
`),l}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:t.defaultContext.colorDepth>1)?hue:Aue}getUsageByRegistration(e,r){let s=this.registrations.get(e);if(typeof s>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(s.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};ec.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:vue()}});var ES,Fue=tt(()=>{x0();ES=class extends At{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)}
`)}};ES.paths=[["--clipanion=definitions"]]});var IS,Nue=tt(()=>{x0();IS=class extends At{async execute(){this.context.stdout.write(this.cli.usage())}};IS.paths=[["-h"],["--help"]]});function YT(t={}){return Xa({definition(e,r){var s;e.addProxy({name:(s=t.name)!==null&&s!==void 0?s:r,required:t.required})},transformer(e,r,s){return s.positionals.map(({value:a})=>a)}})}var xH=tt(()=>{Pp()});var wS,Oue=tt(()=>{x0();xH();wS=class extends At{constructor(){super(...arguments),this.args=YT()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)}
`)}};wS.paths=[["--clipanion=tokens"]]});var CS,Lue=tt(()=>{x0();CS=class extends At{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:"<unknown>"}
`)}};CS.paths=[["-v"],["--version"]]});var kH={};lr(kH,{DefinitionsCommand:()=>ES,HelpCommand:()=>IS,TokensCommand:()=>wS,VersionCommand:()=>CS});var _ue=tt(()=>{Fue();Nue();Oue();Lue()});function Mue(t,e,r){let[s,a]=Nh(e,r??{}),{arity:n=1}=a,l=t.split(","),f=new Set(l);return Xa({definition(h){h.addOption({names:l,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(h,A,m){let w,B=typeof s<"u"?[...s]:void 0;for(let{name:D,value:I}of m.options)f.has(D)&&(w=D,B=B??[],B.push(I));return typeof B<"u"?fy(w??A,B,a.validator):B}})}var Uue=tt(()=>{Pp()});function Hue(t,e,r){let[s,a]=Nh(e,r??{}),n=t.split(","),l=new Set(n);return Xa({definition(f){f.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(f,h,A){let m=s;for(let{name:w,value:B}of A.options)l.has(w)&&(m=B);return m}})}var jue=tt(()=>{Pp()});function Gue(t,e,r){let[s,a]=Nh(e,r??{}),n=t.split(","),l=new Set(n);return Xa({definition(f){f.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(f,h,A){let m=s;for(let{name:w,value:B}of A.options)l.has(w)&&(m??(m=0),B?m+=1:m=0);return m}})}var que=tt(()=>{Pp()});function Vue(t={}){return Xa({definition(e,r){var s;e.addRest({name:(s=t.name)!==null&&s!==void 0?s:r,required:t.required})},transformer(e,r,s){let a=l=>{let f=s.positionals[l];return f.extra===bl||f.extra===!1&&l<e.arity.leading.length},n=0;for(;n<s.positionals.length&&a(n);)n+=1;return s.positionals.splice(0,n).map(({value:l})=>l)}})}var Wue=tt(()=>{qT();Pp()});function att(t,e,r){let[s,a]=Nh(e,r??{}),{arity:n=1}=a,l=t.split(","),f=new Set(l);return Xa({definition(h){h.addOption({names:l,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(h,A,m,w){let B,D=s;typeof a.env<"u"&&w.env[a.env]&&(B=a.env,D=w.env[a.env]);for(let{name:I,value:R}of m.options)f.has(I)&&(B=I,D=R);return typeof D=="string"?fy(B??A,D,a.validator):D}})}function ctt(t={}){let{required:e=!0}=t;return Xa({definition(r,s){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:s,required:t.required})},transformer(r,s,a){var n;for(let l=0;l<a.positionals.length;++l){if(a.positionals[l].extra===bl||e&&a.positionals[l].extra===!0||!e&&a.positionals[l].extra===!1)continue;let[f]=a.positionals.splice(l,1);return fy((n=t.name)!==null&&n!==void 0?n:s,f.value,t.validator)}}})}function Yue(t,...e){return typeof t=="string"?att(t,...e):ctt(t)}var Kue=tt(()=>{qT();Pp()});var ye={};lr(ye,{Array:()=>Mue,Boolean:()=>Hue,Counter:()=>Gue,Proxy:()=>YT,Rest:()=>Vue,String:()=>Yue,applyValidator:()=>fy,cleanValidationError:()=>_T,formatError:()=>pS,isOptionSymbol:()=>AS,makeCommandOption:()=>Xa,rerouteArguments:()=>Nh});var zue=tt(()=>{Pp();xH();Uue();jue();que();Wue();Kue()});var BS={};lr(BS,{Builtins:()=>kH,Cli:()=>ec,Command:()=>At,Option:()=>ye,UsageError:()=>ht,formatMarkdownish:()=>da,run:()=>Rue,runExit:()=>kue});var sr=tt(()=>{LT();yH();x0();Que();_ue();zue()});var Jue=H((M7t,ltt)=>{ltt.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var efe=H((U7t,kp)=>{var Zue=Ae("fs"),TH=Ae("path"),utt=Ae("os"),ftt=Ae("crypto"),htt=Jue(),QH=htt.version,Att=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function ptt(t){let e={},r=t.toString();r=r.replace(/\r\n?/mg,`
`);let s;for(;(s=Att.exec(r))!=null;){let a=s[1],n=s[2]||"";n=n.trim();let l=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),l==='"'&&(n=n.replace(/\\n/g,`
`),n=n.replace(/\\r/g,"\r")),e[a]=n}return e}function dtt(t){let e=$ue(t),r=po.configDotenv({path:e});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let s=Xue(t).split(","),a=s.length,n;for(let l=0;l<a;l++)try{let f=s[l].trim(),h=ytt(r,f);n=po.decrypt(h.ciphertext,h.key);break}catch(f){if(l+1>=a)throw f}return po.parse(n)}function gtt(t){console.log(`[dotenv@${QH}][INFO] ${t}`)}function mtt(t){console.log(`[dotenv@${QH}][WARN] ${t}`)}function RH(t){console.log(`[dotenv@${QH}][DEBUG] ${t}`)}function Xue(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function ytt(t,e){let r;try{r=new URL(e)}catch(f){throw f.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):f}let s=r.password;if(!s)throw new Error("INVALID_DOTENV_KEY: Missing key part");let a=r.searchParams.get("environment");if(!a)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let n=`DOTENV_VAULT_${a.toUpperCase()}`,l=t.parsed[n];if(!l)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:l,key:s}}function $ue(t){let e=TH.resolve(process.cwd(),".env");return t&&t.path&&t.path.length>0&&(e=t.path),e.endsWith(".vault")?e:`${e}.vault`}function Ett(t){return t[0]==="~"?TH.join(utt.homedir(),t.slice(1)):t}function Itt(t){gtt("Loading env from encrypted .env.vault");let e=po._parseVault(t),r=process.env;return t&&t.processEnv!=null&&(r=t.processEnv),po.populate(r,e,t),{parsed:e}}function wtt(t){let e=TH.resolve(process.cwd(),".env"),r="utf8",s=!!(t&&t.debug);t&&(t.path!=null&&(e=Ett(t.path)),t.encoding!=null&&(r=t.encoding));try{let a=po.parse(Zue.readFileSync(e,{encoding:r})),n=process.env;return t&&t.processEnv!=null&&(n=t.processEnv),po.populate(n,a,t),{parsed:a}}catch(a){return s&&RH(`Failed to load ${e} ${a.message}`),{error:a}}}function Ctt(t){let e=$ue(t);return Xue(t).length===0?po.configDotenv(t):Zue.existsSync(e)?po._configVault(t):(mtt(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),po.configDotenv(t))}function Btt(t,e){let r=Buffer.from(e.slice(-64),"hex"),s=Buffer.from(t,"base64"),a=s.slice(0,12),n=s.slice(-16);s=s.slice(12,-16);try{let l=ftt.createDecipheriv("aes-256-gcm",r,a);return l.setAuthTag(n),`${l.update(s)}${l.final()}`}catch(l){let f=l instanceof RangeError,h=l.message==="Invalid key length",A=l.message==="Unsupported state or unable to authenticate data";if(f||h){let m="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(m)}else if(A){let m="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(m)}else throw console.error("Error: ",l.code),console.error("Error: ",l.message),l}}function vtt(t,e,r={}){let s=!!(r&&r.debug),a=!!(r&&r.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let n of Object.keys(e))Object.prototype.hasOwnProperty.call(t,n)?(a===!0&&(t[n]=e[n]),s&&RH(a===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):t[n]=e[n]}var po={configDotenv:wtt,_configVault:Itt,_parseVault:dtt,config:Ctt,decrypt:Btt,parse:ptt,populate:vtt};kp.exports.configDotenv=po.configDotenv;kp.exports._configVault=po._configVault;kp.exports._parseVault=po._parseVault;kp.exports.config=po.config;kp.exports.decrypt=po.decrypt;kp.exports.parse=po.parse;kp.exports.populate=po.populate;kp.exports=po});var rfe=H((H7t,tfe)=>{"use strict";tfe.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var hy=H((j7t,FH)=>{"use strict";var Stt=rfe(),nfe=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,s=()=>{r--,e.length>0&&e.shift()()},a=(f,h,...A)=>{r++;let m=Stt(f,...A);h(m),m.then(s,s)},n=(f,h,...A)=>{r<t?a(f,h,...A):e.push(a.bind(null,f,h,...A))},l=(f,...h)=>new Promise(A=>n(f,A,...h));return Object.defineProperties(l,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),l};FH.exports=nfe;FH.exports.default=nfe});function Mh(t){return`YN${t.toString(10).padStart(4,"0")}`}function KT(t){let e=Number(t.slice(2));if(typeof Tr[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var Tr,zT=tt(()=>{Tr=(Ge=>(Ge[Ge.UNNAMED=0]="UNNAMED",Ge[Ge.EXCEPTION=1]="EXCEPTION",Ge[Ge.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Ge[Ge.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Ge[Ge.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Ge[Ge.BUILD_DISABLED=5]="BUILD_DISABLED",Ge[Ge.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Ge[Ge.MUST_BUILD=7]="MUST_BUILD",Ge[Ge.MUST_REBUILD=8]="MUST_REBUILD",Ge[Ge.BUILD_FAILED=9]="BUILD_FAILED",Ge[Ge.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Ge[Ge.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Ge[Ge.LINKER_NOT_FOUND=12]="LINKER_NOT_FO Line truncated
`,"\r","(",")","!","|","&","^"],!0,!1),ae=function(re){return e.queryPattern.test(re)},ge=function(re){return e.checkFn(re)},de=Qe("whitespace"),De=/^[ \t\n\r]/,we=Fe([" "," ",`
`,"\r"],!1,!1),d=0,be=0,Ce=[{line:1,column:1}],Ee=0,he=[],$=0,Pe;if("startRule"in e){if(!(e.startRule in s))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=s[e.startRule]}function Te(){return t.substring(be,d)}function ot(){return Me(be,d)}function j(re,ce){throw ce=ce!==void 0?ce:Me(be,d),P([Qe(re)],t.substring(be,d),ce)}function rt(re,ce){throw ce=ce!==void 0?ce:Me(be,d),C(re,ce)}function Ne(re,ce){return{type:"literal",text:re,ignoreCase:ce}}function Fe(re,ce,ke){return{type:"class",parts:re,inverted:ce,ignoreCase:ke}}function xe(){return{type:"any"}}function He(){return{type:"end"}}function Qe(re){return{type:"other",description:re}}function ft(re){var ce=Ce[re],ke;if(ce)return ce;for(ke=re-1;!Ce[ke];)ke--;for(ce=Ce[ke],ce={line:ce.line,column:ce.column};ke<re;)t.charCodeAt(ke)===10?(ce.line++,ce.column=1):ce.column++,ke++;return Ce[re]=ce,ce}function Me(re,ce){var ke=ft(re),Le=ft(ce);return{start:{offset:re,line:ke.line,column:ke.column},end:{offset:ce,line:Le.line,column:Le.column}}}function x(re){d<Ee||(d>Ee&&(Ee=d,he=[]),he.push(re))}function C(re,ce){return new Ay(re,null,null,ce)}function P(re,ce,ke){return new Ay(Ay.buildMessage(re,ce),re,ce,ke)}function E(){var re,ce,ke,Le,pt,St,er,ur;if(re=d,ce=F(),ce!==r){for(ke=[],Le=d,pt=X(),pt!==r?(t.charCodeAt(d)===124?(St=n,d++):(St=r,$===0&&x(l)),St===r&&(t.charCodeAt(d)===38?(St=f,d++):(St=r,$===0&&x(h)),St===r&&(t.charCodeAt(d)===94?(St=A,d++):(St=r,$===0&&x(m)))),St!==r?(er=X(),er!==r?(ur=F(),ur!==r?(pt=[pt,St,er,ur],Le=pt):(d=Le,Le=r)):(d=Le,Le=r)):(d=Le,Le=r)):(d=Le,Le=r);Le!==r;)ke.push(Le),Le=d,pt=X(),pt!==r?(t.charCodeAt(d)===124?(St=n,d++):(St=r,$===0&&x(l)),St===r&&(t.charCodeAt(d)===38?(St=f,d++):(St=r,$===0&&x(h)),St===r&&(t.charCodeAt(d)===94?(St=A,d++):(St=r,$===0&&x(m)))),St!==r?(er=X(),er!==r?(ur=F(),ur!==r?(pt=[pt,St,er,ur],Le=pt):(d=Le,Le=r)):(d=Le,Le=r)):(d=Le,Le=r)):(d=Le,Le=r);ke!==r?(be=re,ce=w(ce,ke),re=ce):(d=re,re=r)}else d=re,re=r;return re}function F(){var re,ce,ke,Le,pt,St;return re=d,t.charCodeAt(d)===33?(ce=B,d++):(ce=r,$===0&&x(D)),ce!==r?(ke=F(),ke!==r?(be=re,ce=I(ke),re=ce):(d=re,re=r)):(d=re,re=r),re===r&&(re=d,t.charCodeAt(d)===40?(ce=R,d++):(ce=r,$===0&&x(N)),ce!==r?(ke=X(),ke!==r?(Le=E(),Le!==r?(pt=X(),pt!==r?(t.charCodeAt(d)===41?(St=U,d++):(St=r,$===0&&x(V)),St!==r?(be=re,ce=ee(Le),re=ce):(d=re,re=r)):(d=re,re=r)):(d=re,re=r)):(d=re,re=r)):(d=re,re=r),re===r&&(re=Z())),re}function Z(){var re,ce,ke,Le,pt;if(re=d,ce=X(),ce!==r){if(ke=d,Le=[],te.test(t.charAt(d))?(pt=t.charAt(d),d++):(pt=r,$===0&&x(ie)),pt!==r)for(;pt!==r;)Le.push(pt),te.test(t.charAt(d))?(pt=t.charAt(d),d++):(pt=r,$===0&&x(ie));else Le=r;Le!==r?ke=t.substring(ke,d):ke=Le,ke!==r?(be=d,Le=ae(ke),Le?Le=void 0:Le=r,Le!==r?(be=re,ce=ge(ke),re=ce):(d=re,re=r)):(d=re,re=r)}else d=re,re=r;return re}function X(){var re,ce;for($++,re=[],De.test(t.charAt(d))?(ce=t.charAt(d),d++):(ce=r,$===0&&x(we));ce!==r;)re.push(ce),De.test(t.charAt(d))?(ce=t.charAt(d),d++):(ce=r,$===0&&x(we));return $--,re===r&&(ce=r,$===0&&x(de)),re}if(Pe=a(),Pe!==r&&d===t.length)return Pe;throw Pe!==r&&d<t.length&&x(He()),P(he,Ee<t.length?t.charAt(Ee):null,Ee<t.length?Me(Ee,Ee+1):Me(Ee,Ee))}Khe.exports={SyntaxError:Ay,parse:Fit}});var Jhe=H(cQ=>{var{parse:Nit}=zhe();cQ.makeParser=(t=/[a-z]+/)=>(e,r)=>Nit(e,{queryPattern:t,checkFn:r});cQ.parse=cQ.makeParser()});var Xhe=H((LVt,Zhe)=>{"use strict";Zhe.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodLine truncated
`:`
`)+r,a=s+1,s=t.indexOf(`
`,a)}while(s!==-1);return n+=t.substr(a),n};dAe.exports={stringReplaceAll:Kit,stringEncaseCRLFWithFirstIndex:zit}});var wAe=H((VVt,IAe)=>{"use strict";var Jit=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,mAe=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Zit=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Xit=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,$it=new Map([["n",`
`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function EAe(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):$it.get(t)||t}function est(t,e){let r=[],s=e.trim().split(/\s*,\s*/g),a;for(let n of s){let l=Number(n);if(!Number.isNaN(l))r.push(l);else if(a=n.match(Zit))r.push(a[2].replace(Xit,(f,h,A)=>h?EAe(h):A));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function tst(t){mAe.lastIndex=0;let e=[],r;for(;(r=mAe.exec(t))!==null;){let s=r[1];if(r[2]){let a=est(s,r[2]);e.push([s].concat(a))}else e.push([s])}return e}function yAe(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let s=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in s))throw new Error(`Unknown Chalk style: ${a}`);s=n.length>0?s[a](...n):s[a]}return s}IAe.exports=(t,e)=>{let r=[],s=[],a=[];if(e.replace(Jit,(n,l,f,h,A,m)=>{if(l)a.push(EAe(l));else if(h){let w=a.join("");a=[],s.push(r.length===0?w:yAe(t,r)(w)),r.push({inverse:f,styles:tst(h)})}else if(A){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");s.push(yAe(t,r)(a.join(""))),a=[],r.pop()}else a.push(m)}),s.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return s.join("")}});var Cw=H((WVt,DAe)=>{"use strict";var kS=fQ(),{stdout:a5,stderr:c5}=pAe(),{stringReplaceAll:rst,stringEncaseCRLFWithFirstIndex:nst}=gAe(),{isArray:hQ}=Array,BAe=["ansi","ansi","ansi256","ansi16m"],ww=Object.create(null),ist=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=a5?a5.level:0;t.level=e.level===void 0?r:e.level},l5=class{constructor(e){return vAe(e)}},vAe=t=>{let e={};return ist(e,t),e.template=(...r)=>bAe(e.template,...r),Object.setPrototypeOf(e,AQ.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=l5,e.template};function AQ(t){return vAe(t)}for(let[t,e]of Object.entries(kS))ww[t]={get(){let r=pQ(this,u5(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};ww.visible={get(){let t=pQ(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var SAe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of SAe)ww[t]={get(){let{level:e}=this;return function(...r){let s=u5(kS.color[BAe[e]][t](...r),kS.color.close,this._styler);return pQ(this,s,this._isEmpty)}}};for(let t of SAe){let e="bg"+t[0].toUpperCase()+t.slice(1);ww[e]={get(){let{level:r}=this;return function(...s){let a=u5(kS.bgColor[BAe[r]][t](...s),kS.bgColor.close,this._styler);return pQ(this,a,this._isEmpty)}}}}var sst=Object.defineProperties(()=>{},{...ww,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),u5=(t,e,r)=>{let s,a;return r===void 0?(s=t,a=e):(s=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:s,closeAll:a,parent:r}},pQ=(t,e,r)=>{let s=(...a)=>hQ(a[0])&&hQ(a[0].raw)?CAe(s,bAe(s,...a)):CAe(s,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(s,sst),s._generator=t,s._styler=e,s._isEmpty=r,s},CAe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:s,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=rst(e,r.close,r.open),r=r.parent;let n=e.indexOf(`
`);return n!==-1&&(e=nst(e,a,s,n)),s+e+a},o5,bAe=(t,...e)=>{let[r]=e;if(!hQ(r)||!hQ(r.raw))return e.join(" ");let s=e.slice(1),a=[r.raw[0]];for(let n=1;n<r.length;n++)a.push(String(s[n-1]).replace(/[{}\\]/g,"\\$&"),String(r.raw[n]));return o5===void 0&&(o5=wAe()),o5(t,a.join(""))};Object.defineProperties(AQ.prototype,ww);var dQ=AQ();dQ.supportsColor=a5;dQ.stderr=AQ({level:c5?c5.level:0});dQ.stderr.supportsColor=c5;DAe.exports=dQ});var gQ=H(fu=>{"use strict";fu.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;fu.find=(t,e)=>t.nodes.find(r=>r.type===e);fu.exceedsLimit=(t,e,r=1,s)=>s===!1||!fu.isInteger(t)||!fu.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=s;fu.escapeNode=(t,e=0,r)=>{let s=t.nodes[e];s&&(r&&s.type===r||s.type==="open"||s.type==="close")&&s.escaped!==!0&&(s.value="\\"+s.value,s.escaped=!0)};fu.encloseBrace=t=>t.type!=="brace"||t.commas>>0+t.ranges>>0?!1:(t.invalid=!0,!0);fu.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:!(t.commas>>0+t.ranges>>0)||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;fu.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;fu.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);fu.flatten=(...t)=>{let e=[],r=s=>{for(let a=0;a<s.length;a++){let n=s[a];Array.isArray(n)?r(n,e):n!==void 0&&e.push(n)}return e};return r(t),e}});var mQ=H((KVt,xAe)=>{"use strict";var PAe=gQ();xAe.exports=(t,e={})=>{let r=(s,a={})=>{let n=e.escapeInvalid&&PAe.isInvalidBrace(a),l=s.invalid===!0&&e.escapeInvalid===!0,f="";if(s.value)return(n||l)&&PAe.isOpenOrClose(s)?"\\"+s.value:s.value;if(s.value)return s.value;if(s.nodes)for(let h of s.nodes)f+=r(h);return f};return r(t)}});var RAe=H((zVt,kAe)=>{"use strict";kAe.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var UAe=H((JVt,MAe)=>{"use strict";var TAe=RAe(),py=(t,e,r)=>{if(TAe(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(TAe(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let s={relaxZeros:!0,...r};typeof s.strictZeros=="boolean"&&(s.relaxZeros=s.strictZeros===!1);let a=String(s.relaxZeros),n=String(s.shorthand),l=String(s.capture),f=String(s.wrap),h=t+":"+e+"="+a+n+l+f;if(py.cache.hasOwnProperty(h))return py.cache[h].result;let A=Math.min(t,e),m=Math.max(t,e);if(Math.abs(A-m)===1){let R=t+"|"+e;return s.capture?`(${R})`:s.wrap===!1?R:`(?:${R})`}let w=_Ae(t)||_Ae(e),B={min:t,max:e,a:A,b:m},D=[],I=[];if(w&&(B.isPadded=w,B.maxLen=String(B.max).length),A<0){let R=m<0?Math.abs(m):1;I=QAe(R,Math.abs(A),B,s),A=B.a=0}return m>=0&&(D=QAe(A,m,B,s)),B.negatives=I,B.positives=D,B.result=ost(I,D,s),s.capture===!0?B.result=`(${B.result})`:s.wrap!==!1&&D.length+I.length>1&&(B.result=`(?:${B.result})`),py.cache[h]=B,B.result};function ost(t,e,r){let s=f5(t,e,"-",!1,r)||[],a=f5(e,t,"",!1,r)||[],n=f5(t,e,"-?",!0,r)||[];return s.concat(n).concat(a).join("|")}function ast(t,e){let r=1,s=1,a=NAe(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=NAe(t,r);for(a=OAe(e+1,s)-1;t<a&&a<=e;)n.add(a),s+=1,a=OAe(e+1,s)-1;return n=[...n],n.sort(ust),n}function cst(t,e,r){if(t===e)return{pattern:t,count:[],digits:0};let s=lst(t,e),a=s.length,n="",l=0;for(let f=0;f<a;f++){let[h,A]=s[f];h===A?n+=h:h!=="0"||A!=="9"?n+=fst(h,A,r):l++}return l&&(n+=r.shorthand===!0?"\\d":"[0-9]"),{pattern:n,count:[l],digits:a}}function QAe(t,e,r,s){let a=ast(t,e),n=[],l=t,f;for(let h=0;h<a.length;h++){let A=a[h],m=cst(String(l),String(A),s),w="";if(!r.isPadded&&f&&f.pattern===m.pattern){f.count.length>1&&f.count.pop(),f.count.push(m.count[0]),f.string=f.pattern+LAe(f.count),l=A+1;continue}r.isPadded&&(w=hst(A,r,s)),m.string=w+m.pattern+LAe(m.count),n.push(m),l=A+1,f=m}return n}function f5(t,e,r,s,a){let n=[];for(let l of t){let{string:f}=l;!s&&!FAe(e,"string",f)&&n.push(r+f),s&&FAe(e,"string",f)&&n.push(r+f)}return n}function lst(t,e){let r=[];for(let s=0;s<t.length;s++)r.push([t[s],e[s]]);return r}function ust(t,e){return t>e?1:e>t?-1:0}function FAe(t,e,r){return t.some(s=>s[e]===r)}function NAe(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function OAe(t,e){return t-t%Math.pow(10,e)}function LAe(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function fst(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function _Ae(t){return/^-?(0+)\d/.test(t)}function hst(t,e,r){if(!e.isPadded)return t;let s=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(s){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${s}}`:`0{${s}}`}}py.cache={};py.clearCache=()=>py.cache={};MAe.exports=py});var p5=H((ZVt,KAe)=>{"use strict";var Ast=Ae("util"),GAe=UAe(),HAe=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),pst=t=>e=>t===!0?Number(e):String(e),h5=t=>typeof t=="numb Line truncated
`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var ape=H((tWt,ope)=>{"use strict";var Sst=mQ(),{MAX_LENGTH:npe,CHAR_BACKSLASH:d5,CHAR_BACKTICK:bst,CHAR_COMMA:Dst,CHAR_DOT:Pst,CHAR_LEFT_PARENTHESES:xst,CHAR_RIGHT_PARENTHESES:kst,CHAR_LEFT_CURLY_BRACE:Rst,CHAR_RIGHT_CURLY_BRACE:Tst,CHAR_LEFT_SQUARE_BRACKET:ipe,CHAR_RIGHT_SQUARE_BRACKET:spe,CHAR_DOUBLE_QUOTE:Qst,CHAR_SINGLE_QUOTE:Fst,CHAR_NO_BREAK_SPACE:Nst,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Ost}=rpe(),Lst=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},s=typeof r.maxLength=="number"?Math.min(npe,r.maxLength):npe;if(t.length>s)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${s})`);let a={type:"root",input:t,nodes:[]},n=[a],l=a,f=a,h=0,A=t.length,m=0,w=0,B,D={},I=()=>t[m++],R=N=>{if(N.type==="text"&&f.type==="dot"&&(f.type="text"),f&&f.type==="text"&&N.type==="text"){f.value+=N.value;return}return l.nodes.push(N),N.parent=l,N.prev=f,f=N,N};for(R({type:"bos"});m<A;)if(l=n[n.length-1],B=I(),!(B===Ost||B===Nst)){if(B===d5){R({type:"text",value:(e.keepEscaping?B:"")+I()});continue}if(B===spe){R({type:"text",value:"\\"+B});continue}if(B===ipe){h++;let N=!0,U;for(;m<A&&(U=I());){if(B+=U,U===ipe){h++;continue}if(U===d5){B+=I();continue}if(U===spe&&(h--,h===0))break}R({type:"text",value:B});continue}if(B===xst){l=R({type:"paren",nodes:[]}),n.push(l),R({type:"text",value:B});continue}if(B===kst){if(l.type!=="paren"){R({type:"text",value:B});continue}l=n.pop(),R({type:"text",value:B}),l=n[n.length-1];continue}if(B===Qst||B===Fst||B===bst){let N=B,U;for(e.keepQuotes!==!0&&(B="");m<A&&(U=I());){if(U===d5){B+=U+I();continue}if(U===N){e.keepQuotes===!0&&(B+=U);break}B+=U}R({type:"text",value:B});continue}if(B===Rst){w++;let U={type:"brace",open:!0,close:!1,dollar:f.value&&f.value.slice(-1)==="$"||l.dollar===!0,depth:w,commas:0,ranges:0,nodes:[]};l=R(U),n.push(l),R({type:"open",value:B});continue}if(B===Tst){if(l.type!=="brace"){R({type:"text",value:B});continue}let N="close";l=n.pop(),l.close=!0,R({type:N,value:B}),w--,l=n[n.length-1];continue}if(B===Dst&&w>0){if(l.ranges>0){l.ranges=0;let N=l.nodes.shift();l.nodes=[N,{type:"text",value:Sst(l)}]}R({type:"comma",value:B}),l.commas++;continue}if(B===Pst&&w>0&&l.commas===0){let N=l.nodes;if(w===0||N.length===0){R({type:"text",value:B});continue}if(f.type==="dot"){if(l.range=[],f.value+=B,f.type="range",l.nodes.length!==3&&l.nodes.length!==5){l.invalid=!0,l.ranges=0,f.type="text";continue}l.ranges++,l.args=[];continue}if(f.type==="range"){N.pop();let U=N[N.length-1];U.value+=f.value+B,f=U,l.ranges--;continue}R({type:"dot",value:B});continue}R({type:"text",value:B})}do if(l=n.pop(),l.type!=="root"){l.nodes.forEach(V=>{V.nodes||(V.type==="open"&&(V.isOpen=!0),V.type==="close"&&(V.isClose=!0),V.nodes||(V.type="text"),V.invalid=!0)});let N=n[n.length-1],U=N.nodes.indexOf(l);N.nodes.splice(U,1,...l.nodes)}while(n.length>0);return R({type:"eos"}),a};ope.exports=Lst});var upe=H((rWt,lpe)=>{"use strict";var cpe=mQ(),_st=ZAe(),Mst=epe(),Ust=ape(),Dl=(t,e={})=>{let r=[];if(Array.isArray(t))for(let s of t){let a=Dl.create(s,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(Dl.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};Dl.parse=(t,e={})=>Ust(t,e);Dl.stringify=(t,e={})=>cpe(typeof t=="string"?Dl.parse(t,e):t,e);Dl.compile=(t,e={})=>(typeof t=="string"&&(t=Dl.parse(t,e)),_st(t,e));Dl.expand=(t,e={})=>{typeof t=="string"&&(t=Dl.parse(t,e));let r=Mst(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};Dl.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?Dl.compile(t,e):Dl.expand(t,e);lpe.exports=Dl});var TS=H((nWt,dpe)=>{"use strict";var Hst=Ae("path"),Hh="\\\\/",fpe=`[^${Hh}]`,Rp="\\.",jst="\\+",Gst="\\?",EQ="\\/",qst="(?=.)",hpe="[^/]",g5=`(?:${EQ}|$)`,Ape=`(?:^|${EQ})`,m5=`${Rp}{1,2}${g5}`,Vst=`(?!${Rp})`,Wst=`(?!${Ape}${m5})`,Yst=`(?!${Rp}{0,1}${g5})`,Kst=`(?!${m5})`,zst=`[^.${EQ}]`,Jst=`${hpe}*?`,ppe={DOT_LITERAL:Rp,PLUS_LITERAL:jst,QMARK_LITERAL:Gst,SLASH_LITERAL:EQ,ONE_CHAR:qst,QMARK:hpe,END_ANCHOR:g5,DOTS_SLASH:m5,NO_DOT:Vst,NO_DOTS:Wst,NO_DOT_SLASH:Yst,NO_DOTS_SLASH:Kst,QMARK_NO_DOT:zst,STAR:Jst,START_ANCHOR:Ape},Zst={...ppe,SLASH_LITERAL:`[${Hh}]`,QMARK:fpe,STAR:`${fpe}*?`,DOTS_SLASH:`${Rp}{1,2}(?:[${Hh}]|$)`,NO_DOT:`(?!${Rp})`,NO_DOTS:`(?!(?:^|[${Hh}])${Rp}{1,2}(?:[${Hh}]|$))`,NO_DOT_SLASH:`(?!${Rp}{0,1}(?:[${Hh}]|$))`,NO_DOTS_SLASH:`(?!${Rp}{1,2}(?:[${Hh}]|$))`,QMARK_NO_DOT:`[^.${Hh}]`,START_ANCHOR:`(?:^|[${Hh}])`,END_ANCHOR:`(?:[${Hh}]|$)`},Xst={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&' Line truncated
`),f!==-1){let h=a+l.substring(0,f);l=l.substring(f+1),a="",e!==null?this.reportInfo(null,`${e} ${h}`):this.reportInfo(null,h)}while(f!==-1);a+=l}),r.on("end",()=>{let n=s.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var Zw,H9=tt(()=>{mu();Ea();Zw=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let s=this.fetchers.find(a=>a.supports(e,r));return s||null}getFetcher(e,r){let s=this.fetchers.find(a=>a.supports(e,r));if(!s)throw new Zt(11,`${hn(r.project.configuration,e)} isn't supported by any available fetcher`);return s}}});var Dy,j9=tt(()=>{Ea();Dy=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,s){return this.getResolverByDescriptor(e,s).bindDescriptor(e,r,s)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,s){return await this.getResolverByDescriptor(e,s).getCandidates(e,r,s)}async getSatisfying(e,r,s,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,s,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let s=this.resolvers.find(a=>a.supportsDescriptor(e,r));return s||null}getResolverByDescriptor(e,r){let s=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!s)throw new Error(`${xi(r.project.configuration,e)} isn't supported by any available resolver`);return s}tryResolverByLocator(e,r){let s=this.resolvers.find(a=>a.supportsLocator(e,r));return s||null}getResolverByLocator(e,r){let s=this.resolvers.find(a=>a.supportsLocator(e,r));if(!s)throw new Error(`${hn(r.project.configuration,e)} isn't supported by any available resolver`);return s}}});var Xw,G9=tt(()=>{Mt();Ea();Xw=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let s=e.reference.indexOf("#");if(s===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(s+1),n=mo(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let s=e.reference.indexOf("#");if(s===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(s+1),n=mo(e,a),l=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,l,r)}getLocatorFilename(e){return Yw(e)}async ensureVirtualLink(e,r,s){let a=r.packageFs.getRealPath(),n=s.project.configuration.get("virtualFolder"),l=this.getLocatorFilename(e),f=Mo.makeVirtualPath(n,l,a),h=new Qh(f,{baseFs:r.packageFs,pathUtils:Y});return{...r,packageFs:h}}}});var UF,qge=tt(()=>{UF=class t{static{this.protocol="virtual:"}static isVirtualDescriptor(e){return!!e.range.startsWith(t.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(t.protocol)}supportsDescriptor(e,r){return t.isVirtualDescriptor(e)}supportsLocator(e,r){return t.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,s){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,s,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}});var $w,q9=tt(()=>{Mt();by();$w=class{supports(e){return!!e.reference.startsWith(Gi.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let s=this.getWorkspace(e,r).cwd;return{packageFs:new Jn(s),prefixPath:Rt.dot,localPath:s}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(Gi.protocol.length))}}});function sb(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Vge(t){return typeof t>"u"?3:sb(t)?0:Array.isArray(t)?1:2}function Y9(t,e){return Object.hasOwn(t,e)}function aut(t){return sb(t)&&Y9(t,"onConflict")&&typeof t.onConflict=="string"}function cut(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!aut(t))return{onConflict:"default",value:t};if(Y9(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function Wge(t,e){let r=sb(t)&&Y9(t,e)?t[e]:void 0;return cut(r)}function eC(t,e){return[t,e,Yge]}function K9(t){return Array.isArray(t)?t[2]===Yge:!1}function V9(t,e){if(sb(t)){let r={};for(let s of Object.keys(t))r[s]=V9(t[s],e);return eC(e,r)}return Array.isArray(t)?eC(e,t.map(r=>V9(r,e))):eC(e,t)}function W9(t,e,r,s,a){let n,l=[],f=a,h=0;for(let m=a-Line truncated
Please report this to https://github.com/szmarczak/http2-wrapper/`);I(R)}return}s[0].resolve(D);return}}if(l in this.queue){if(f in this.queue[l]){this.queue[l][f].listeners.push(...s),this._tryToCreateNewSession(l,f);return}}else this.queue[l]={};let h=()=>{l in this.queue&&this.queue[l][f]===A&&(delete this.queue[l][f],Object.keys(this.queue[l]).length===0&&delete this.queue[l])},A=()=>{let m=`${f}:${l}`,w=!1;try{let B=Sft.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(m),...r});B[oc]=0,B[sC]=!1;let D=()=>B[oc]<B.remoteSettings.maxConcurrentStreams,I=!0;B.socket.once("session",N=>{this.tlsSessionCache.set(m,N)}),B.once("error",N=>{for(let{reject:U}of s)U(N);this.tlsSessionCache.delete(m)}),B.setTimeout(this.timeout,()=>{B.destroy()}),B.once("close",()=>{if(w){I&&this._freeSessionsCount--,this._sessionsCount--;let N=this.sessions[l];N.splice(N.indexOf(B),1),N.length===0&&delete this.sessions[l]}else{let N=new Error("Session closed without receiving a SETTINGS frame");N.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:U}of s)U(N);h()}this._tryToCreateNewSession(l,f)});let R=()=>{if(!(!(l in this.queue)||!D())){for(let N of B[yu])if(N in this.queue[l]){let{listeners:U}=this.queue[l][N];for(;U.length!==0&&D();)U.shift().resolve(B);let V=this.queue[l];if(V[N].listeners.length===0&&(delete V[N],Object.keys(V).length===0)){delete this.queue[l];break}if(!D())break}}};B.on("origin",()=>{B[yu]=B.originSet,D()&&(R(),xG(this.sessions[l],B))}),B.once("remoteSettings",()=>{if(B.ref(),B.unref(),this._sessionsCount++,A.destroyed){let N=new Error("Agent has been destroyed");for(let U of s)U.reject(N);B.destroy();return}B[yu]=B.originSet;{let N=this.sessions;if(l in N){let U=N[l];U.splice(Pft(U,B,xft),0,B)}else N[l]=[B]}this._freeSessionsCount+=1,w=!0,this.emit("session",B),R(),h(),B[oc]===0&&this._freeSessionsCount>this.maxFreeSessions&&B.close(),s.length!==0&&(this.getSession(f,r,s),s.length=0),B.on("remoteSettings",()=>{R(),xG(this.sessions[l],B)})}),B[$me]=B.request,B.request=(N,U)=>{if(B[sC])throw new Error("The session is gracefully closing. No new streams are allowed.");let V=B[$me](N,U);return B.ref(),++B[oc],B[oc]===B.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,V.once("close",()=>{if(I=D(),--B[oc],!B.destroyed&&!B.closed&&(kft(this.sessions[l],B),D()&&!B.closed)){I||(this._freeSessionsCount++,I=!0);let ee=B[oc]===0;ee&&B.unref(),ee&&(this._freeSessionsCount>this.maxFreeSessions||B[sC])?B.close():(xG(this.sessions[l],B),R())}}),V}}catch(B){for(let D of s)D.reject(B);h()}};A.listeners=s,A.completed=!1,A.destroyed=!1,this.queue[l][f]=A,this._tryToCreateNewSession(l,f)})}request(e,r,s,a){return new Promise((n,l)=>{this.getSession(e,r,[{reject:l,resolve:f=>{try{n(f.request(s,a))}catch(h){l(h)}}}])})}createConnection(e,r){return t.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let s=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),vft.connect(s,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[oc]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let s of r)s.destroy(e);for(let r of Object.values(this.queue))for(let s of Object.values(r))s.destroyed=!0;this.queue={}}get freeSessions(){return eye({agent:this,isFree:!0})}get busySessions(){return eye({agent:this,isFree:!1})}};xy.kCurrentStreamsCount=oc;xy.kGracefullyClosing=sC;rye.exports={Agent:xy,globalAgent:new xy}});var TG=H((LJt,nye)=>{"use strict";var{Readable:Rft}=Ae("stream"),RG=class extends Rft{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};nye.exports=RG});var QG=H((_Jt,iye)=>{"use strict";iye.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var oye=H((MJt,sye)=>{"use strict";sye.exports=(t,e,r)=>{for(let s of r)t.on(s,(...a)=>e.emit(s,...a))}});var cye=H((UJt,aye)=>{"use strict";aye.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var uye=H((jJt,lye)=>{"use strict";var oC=(t,e,r)=>{lye.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r: Line truncated
`).reverse(),f=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(`
`).reverse();for(;f.length!==0&&f[0]===l[0];)l.shift();this.stack=`${this.stack.slice(0,n)}${l.reverse().join(`
`)}${f.reverse().join(`
`)}`}}};ai.RequestError=Ls;var aN=class extends Ls{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};ai.MaxRedirectsError=aN;var cN=class extends Ls{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};ai.HTTPError=cN;var lN=class extends Ls{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};ai.CacheError=lN;var uN=class extends Ls{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};ai.UploadError=uN;var fN=class extends Ls{constructor(e,r,s){super(e.message,e,s),this.name="TimeoutError",this.event=e.event,this.timings=r}};ai.TimeoutError=fN;var gb=class extends Ls{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};ai.ReadError=gb;var hN=class extends Ls{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};ai.UnsupportedProtocolError=hN;var _ht=["socket","connect","continue","information","upgrade","timeout"],AN=class extends Wye.Duplex{constructor(e,r={},s){super({autoDestroy:!1,highWaterMark:0}),this[cC]=0,this[uC]=0,this.requestInitialized=!1,this[iN]=new Set,this.redirects=[],this[fC]=!1,this[sN]=!1,this[db]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",A=>{A.prependListener("data",a),A.on("data",n),A.prependListener("end",a),A.on("end",n)}),this.on("unpipe",A=>{A.off("data",a),A.off("data",n),A.off("end",a),A.off("end",n)}),this.on("pipe",A=>{A instanceof nq.IncomingMessage&&(this.options.headers={...A.headers,...this.options.headers})});let{json:l,body:f,form:h}=r;if((l||f||h)&&this._lockWrite(),ai.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,s)}catch(A){gt.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(A);return}(async()=>{var A;try{this.options.body instanceof mht.ReadStream&&await Nht(this.options.body);let{url:m}=this.options;if(!m)throw new TypeError("Missing `url` property");if(this.requestUrl=m.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(A=this[Go])===null||A===void 0||A.destroy();return}for(let w of this[db])w();this[db].length=0,this.requestInitialized=!0}catch(m){if(m instanceof Ls){this._beforeError(m);return}this.destroyed||this.destroy(m)}})()}static normalizeArguments(e,r,s){var a,n,l,f,h;let A=r;if(gt.default.object(e)&&!gt.default.urlInstance(e))r={...s,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...s,...r},e!==void 0&&(r.url=e),gt.default.urlInstance(r.url)&&(r.url=new V0.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),gt.assert.any([gt.default.string,gt.default.undefined],r.method),gt.assert.any([gt.default.object,gt.default.undefined],r.headers),gt.assert.any([gt.default.string,gt.default.urlInstance,gt.default.undefined],r.prefixUrl),gt.assert.any([gt.default.object,gt.default.undefined],r.cookieJar),gt.assert.any([gt.default.object,gt.default.string,gt.default.undefined],r.searchParams),gt.assert.any([gt.default.object,gt.default.string,gt.default.undefined],r.cache),gt.assert.any([gt.default.object,gt.default.number,gt.default.undefined],r.timeout),gt.assert.any([gt.default.object,gt.default.undefined],r.context),gt.assert.any([gt.default.object,gt.default.undefined],r.hooks),gt.assert.any([gt.default.boolean,gt.default.undefined],r.decompress),gt.assert.any([gt.default.boolean,gt.default.undefined],r.ignoreInvalidCookies),gt.assert.any([gt.default.boolean,gt.default.undefined],r.followRedirect),gt.assert.any([gt.default.number,gt.default.undefined],r.maxRedirects),gt.assert.any([gt.default.boolean,gt.default.undefined],r.throwHttpErrors),gt.assert.any([gt.default.boolean,gt.default.undefined],r.http2),gt.assert.any([gt.default.boolean,gt.default.undefined],r.allowGetBody),gt.assert.any([gt.default.string,gt.default.undefined],r.localAddress),gt.assert.any([Xye.isDnsLookupIpVersion,gt.default.undefined],r.dnsLookupIpVersion),gt.assert.any([gt.default.object,gt.default.undefined],r.https),gt.assert.any([gt.default.boolean,gt.default.undefined],r.rejectUnauthorized),r.https&&(gt.assert.any([gt.default.boolean,gt.default.undefined],r.https.rejectUnauthorized),gt.assert.any([gt.default.function_,gt.default.undefined],r.https.checkServerIdentity),gt.assert.any([gt.default.string,gt.default.object,gt.default.array,gt.default.undefined],r.https.certificateAuthority),gt.assert.any([gt.default.string,gt.default.object,gt.default.array,gt.default.undefined],r.https.key),gt.assert.any([gt.default.string,gt.default.object,gt.default.array,gt.default.undefined],r.https.certificate),gt.assert.any([gt.default.string,gt.default.undefined],r.https.passphrase),gt.assert.any([gt.default.string,gt.default.buffer,gt.default.array,gt.default.undefined],r.httpLine truncated
`)[3];return BAt(e)}function Iq(){return typeof IN.default.availableParallelism<"u"?IN.default.availableParallelism():Math.max(1,IN.default.cpus().length)}var IN,gAt,kEe,mAt,yAt,REe,TEe,wAt,CAt,wN=tt(()=>{Mt();IN=st(Ae("os"));CN();Au();gAt=Number(process.versions.node.split(".")[0]),kEe=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),mAt=typeof kEe<"u"?async t=>{try{return await wq(kEe,[t],{cwd:Y.cwd()}),!0}catch{return!1}}:void 0,yAt="/usr/bin/ldd";wAt=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,CAt=/\((\S*)(?::(\d+))(?::(\d+))\)/});function Dq(t,e,r,s,a){let n=ob(r);if(s.isArray||s.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((l,f)=>Cq(t,`${e}[${f}]`,l,s,a)):String(n).split(/,/).map(l=>Cq(t,e,l,s,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return Cq(t,e,r,s,a)}function Cq(t,e,r,s,a){let n=ob(r);switch(s.type){case"ANY":return HF(n);case"SHAPE":return PAt(t,e,r,s,a);case"MAP":return xAt(t,e,r,s,a)}if(n===null&&!s.isNullable&&s.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if("values"in s&&s.values?.includes(n))return n;let f=(()=>{if(s.type==="BOOLEAN"&&typeof n!="string")return qS(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof n}`);let h=$Q(n,{env:t.env});switch(s.type){case"ABSOLUTE_PATH":{let A=a,m=z9(r);return m&&m[0]!=="<"&&(A=Y.dirname(m)),Y.resolve(A,me.toPortablePath(h))}case"LOCATOR_LOOSE":return Op(h,!1);case"NUMBER":return parseInt(h);case"LOCATOR":return Op(h);case"BOOLEAN":return qS(h);case"DURATION":return eF(h,s.unit);default:return h}})();if("values"in s&&s.values&&!s.values.includes(f))throw new Error(`Invalid value, expected one of ${s.values.join(", ")}`);return f}function PAt(t,e,r,s,a){let n=ob(r);if(typeof n!="object"||Array.isArray(n))throw new ht(`Object configuration settings "${e}" must be an object`);let l=Pq(t,s,{ignoreArrays:!0});if(n===null)return l;for(let[f,h]of Object.entries(n)){let A=`${e}.${f}`;if(!s.properties[f])throw new ht(`Unrecognized configuration settings found: ${e}.${f} - run "yarn config" to see the list of settings supported in Yarn`);l.set(f,Dq(t,A,h,s.properties[f],a))}return l}function xAt(t,e,r,s,a){let n=ob(r),l=new Map;if(typeof n!="object"||Array.isArray(n))throw new ht(`Map configuration settings "${e}" must be an object`);if(n===null)return l;for(let[f,h]of Object.entries(n)){let A=s.normalizeKeys?s.normalizeKeys(f):f,m=`${e}['${A}']`,w=s.valueDefinition;l.set(A,Dq(t,m,h,w,a))}return l}function Pq(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let s=new Map;for(let[a,n]of Object.entries(e.properties))s.set(a,Pq(t,n));return s}case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?Array.isArray(e.default)?e.default.map(s=>Y.normalize(s)):Y.isAbsolute(e.default)?Y.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(s=>Y.resolve(t.projectCwd,s)):Y.resolve(t.projectCwd,e.default);case"DURATION":return eF(e.default,e.unit);default:return e.default}}function vN(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return DAt;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return me.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let s=[];for(let a of t)s.push(vN(a,e,r));return s}if(e.type==="MAP"&&t instanceof Map){if(t.size===0)return;let s=new Map;for(let[a,n]of t.entries()){let l=vN(n,e.valueDefinition,r);typeof l<"u"&&s.set(a,l)}return s}if(e.type==="SHAPE"&&t instanceof Map){if(t.size===0)return;let s=new Map;for(let[a,n]of t.entries()){let l=e.properties[a],f=vN(n,l,r);typeof f<"u"&&s.set(a,f)}return s}return t}function kAt(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(SN)&&(e=(0,FEe.default)(e.slice(SN.length)),t[e]=r);return t}function vq(){let t=`${SN}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return Sq}async function QEe(t){try{return await fe.readFilePromise(t)}catch{return Buffer.of()}}async function RAt(t,e){return Buffer.compare(...await Promise.all([QEe(t),QEe(e)]))===0}async function TAt(t,e){let[r,s]=await Promise.all([fe.statPromise(t),fe.statPromise(e)]);return r.dev===s.dev&&r.ino===s.ino}async function FAt({configuration:t,selfPath:e}){let r=t.get("yarnPath");return t.get("ignorePath")||r===null||r===e||await QAt(r,e)?null:r}var FEe,jp,NEe,OEe,LEe,Bq,SAt,wb,bAt,Gp,SN,Sq,DAt,hC,_Ee,bq,bN,BN,QAt,$e,Cb=tt(()=>{Mt();au();FEe=st(aue()),jp=st(ly());sr();NEe=st(efe()),OEe=Ae("module"),LEe=st(hy()),Bq=Ae("stream");Tge();Jw();H9();j9();G9();qge();q9();by();zge();GF();pu();G0();EN();Au();wN();_p();Ea();SAt=function(){if(!jp.GITHUB_ACTIONS||!process.env.GITHUB_EVE Line truncated
`);return{stdout:n,stderr:l}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let s of r.resolvers||[])e.push(new s);return new Dy([new UF,new Gi,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let s of r.fetchers||[])e.push(new s);return new Zw([new Xw,new $w,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let s of r.linkers||[])e.push(new s);return e}getSupportedArchitectures(){let e=Ib(),r=this.get("supportedArchitectures"),s=r.get("os");s!==null&&(s=s.map(l=>l==="current"?e.os:l));let a=r.get("cpu");a!==null&&(a=a.map(l=>l==="current"?e.cpu:l));let n=r.get("libc");return n!==null&&(n=kl(n,l=>l==="current"?e.libc??kl.skip:l)),{os:s,cpu:a,libc:n}}isInteractive({interactive:e,stdout:r}){return r.isTTY?e??this.get("preferInteractive"):!1}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let e=this.packageExtensions,r=(s,a,{userProvided:n=!1}={})=>{if(!Vc(s.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let l=new nr;l.load(a,{yamlCompatibilityMode:!0});let f=GS(e,s.identHash),h=[];f.push([s.range,h]);let A={status:"inactive",userProvided:n,parentDescriptor:s};for(let m of l.dependencies.values())h.push({...A,type:"Dependency",descriptor:m});for(let m of l.peerDependencies.values())h.push({...A,type:"PeerDependency",descriptor:m});for(let[m,w]of l.peerDependenciesMeta)for(let[B,D]of Object.entries(w))h.push({...A,type:"PeerDependencyMeta",selector:m,key:B,value:D})};await this.triggerHook(s=>s.registerPackageExtensions,this,r);for(let[s,a]of this.get("packageExtensions"))r(q0(s,!0),XQ(a),{userProvided:!0});return e}normalizeLocator(e){return Vc(e.reference)?mo(e,`${this.get("defaultProtocol")}${e.reference}`):Gp.test(e.reference)?mo(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return Vc(e.range)?oi(e,`${this.get("defaultProtocol")}${e.range}`):Gp.test(e.range)?oi(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,s])=>[r,this.normalizeDependency(s)]))}normalizePackage(e,{packageExtensions:r}){let s=ZS(e),a=r.get(e.identHash);if(typeof a<"u"){let l=e.version;if(l!==null){for(let[f,h]of a)if(Wh(l,f))for(let A of h)switch(A.status==="inactive"&&(A.status="redundant"),A.type){case"Dependency":typeof s.dependencies.get(A.descriptor.identHash)>"u"&&(A.status="active",s.dependencies.set(A.descriptor.identHash,this.normalizeDependency(A.descriptor)));break;case"PeerDependency":typeof s.peerDependencies.get(A.descriptor.identHash)>"u"&&(A.status="active",s.peerDependencies.set(A.descriptor.identHash,A.descriptor));break;case"PeerDependencyMeta":{let m=s.peerDependenciesMeta.get(A.selector);(typeof m>"u"||!Object.hasOwn(m,A.key)||m[A.key]!==A.value)&&(A.status="active",Rl(s.peerDependenciesMeta,A.selector,()=>({}))[A.key]=A.value)}break;default:z5(A)}}}let n=l=>l.scope?`${l.scope}__${l.name}`:`${l.name}`;for(let l of s.peerDependenciesMeta.keys()){let f=nc(l);s.peerDependencies.has(f.identHash)||s.peerDependencies.set(f.identHash,oi(f,"*"))}for(let l of s.peerDependencies.values()){if(l.scope==="types")continue;let f=n(l),h=ic("types",f),A=Qn(h);s.peerDependencies.has(h.identHash)||s.peerDependenciesMeta.has(A)||s.dependencies.has(h.identHash)||(s.peerDependencies.set(h.identHash,oi(h,"*")),s.peerDependenciesMeta.set(A,{optional:!0}))}return s.dependencies=new Map(go(s.dependencies,([,l])=>Gc(l))),s.peerDependencies=new Map(go(s.peerDependencies,([,l])=>Gc(l))),s}getLimit(e){return Rl(this.limits,e,()=>(0,LEe.default)(this.get(e)))}async triggerHook(e,...r){for(let s of this.plugins.values()){let a=s.hooks;if(!a)continue;let n=e(a);n&&await n(...r)}}async triggerMultipleHooks(e,r){for(let s of r)await this.triggerHook(e,...s)}async reduceHook(e,r,...s){let a=r;for(let n of this.plugins.values()){let l=n.hooks;if(!l)continue;let f=e(l);f&&(a=await f(a,...s))}return a}async firstHook(e,...r){for(let s of this.plugins.values()){let a=s.hooks;if(!a)continue;let n=e(a);if(!n)continue;let l=await n(...r);if(typeof l<"u")return l}return null}}});var un={};lr(un,{EndStrategy:()=>Tq,ExecError:()=>DN,PipeError:()=>Bb,execvp:()=>wq,pipevp:()=>Tf});function Ry(t){return t!==null&&typeof t.fd=="number"}function xq(){}function kq(){for(let t of Ty)t.kill()}async function Tf(t,e,{cwd:r,env:s=process.env,strict:a=!1,stdin:n=null,stdout:l,stderr:f,end:h=2}){let A=["pipe","pipe","pipe"];n===null?A[0]="ignore":Ry(n)&&(A[0]=n),Ry(l)&&(A[1]=l),Ry(f)&&(A[2]=f);let m=(0,Rq.default)(t,e,{cwd:me.fromPortablePath(r),env:{...s,PWD:me.fromPortablePath(r)},stdio:A});Ty.add(m),Ty.size===1&&(process.on("SIGINT",xq),process.on("SIGTERM",kq)),!Ry(n)&&n!==null&&n.pipe(m.stdin),Ry(l)||m.stdout.pipe(l,{end:!1}),Ry(f)||m.stderr.pipe(f,{end:!1});let w=()=>{for(let B of new Set([l,f]))Ry(B)||B.end()};return new Promise((B,D)=>{m.on("error",I=>{Ty.delete(m),Ty.size===0&&(process.off("SIGINT",xq),pro Line truncated
This command will run a command using Yarn's portable shell.
Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell.
Note: To escape something from Yarn's shell, you might have to escape it twice, the first time from your own shell.
Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used.
For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md.
`,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await pC(r,[],{cwd:me.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}}});var Tl,tIe=tt(()=>{Tl=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var FN={};lr(FN,{fastGlobOptions:()=>iIe,isBraceExpansion:()=>Wq,isGlobPattern:()=>HAt,match:()=>jAt,micromatchOptions:()=>QN});function HAt(t){if(!TN.default.scan(t,QN).isGlob)return!1;try{TN.default.parse(t,QN)}catch{return!1}return!0}function jAt(t,{cwd:e,baseFs:r}){return(0,rIe.default)(t,{...iIe,cwd:me.fromPortablePath(e),fs:vT(nIe.default,new B0(r))})}function Wq(t){return TN.default.scan(t,QN).isBrace}var rIe,nIe,TN,QN,iIe,sIe=tt(()=>{Mt();rIe=st(xF()),nIe=st(Ae("fs")),TN=st(ma()),QN={strictBrackets:!0},iIe={onlyDirectories:!1,onlyFiles:!1}});function Yq(){}function Kq(){for(let t of Fy)t.kill()}function lIe(t,e,r,s){return a=>{let n=a[0]instanceof zh.Transform?"pipe":a[0],l=a[1]instanceof zh.Transform?"pipe":a[1],f=a[2]instanceof zh.Transform?"pipe":a[2],h=(0,aIe.default)(t,e,{...s,stdio:[n,l,f]});return Fy.add(h),Fy.size===1&&(process.on("SIGINT",Yq),process.on("SIGTERM",Kq)),a[0]instanceof zh.Transform&&a[0].pipe(h.stdin),a[1]instanceof zh.Transform&&h.stdout.pipe(a[1],{end:!1}),a[2]instanceof zh.Transform&&h.stderr.pipe(a[2],{end:!1}),{stdin:h.stdin,promise:new Promise(A=>{h.on("error",m=>{switch(Fy.delete(h),Fy.size===0&&(process.off("SIGINT",Yq),process.off("SIGTERM",Kq)),m.code){case"ENOENT":a[2].write(`command not found: ${t}
`),A(127);break;case"EACCES":a[2].write(`permission denied: ${t}
`),A(128);break;default:a[2].write(`uncaught error: ${m.message}
`),A(1);break}}),h.on("close",m=>{Fy.delete(h),Fy.size===0&&(process.off("SIGINT",Yq),process.off("SIGTERM",Kq)),A(m!==null?m:129)})})}}}function uIe(t){return e=>{let r=e[0]==="pipe"?new zh.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function NN(t,e){return Jq.start(t,e)}function oIe(t,e=null){let r=new zh.PassThrough,s=new cIe.StringDecoder,a="";return r.on("data",n=>{let l=s.write(n),f;do if(f=l.indexOf(`
`),f!==-1){let h=a+l.substring(0,f);l=l.substring(f+1),a="",t(e!==null?`${e} ${h}`:h)}while(f!==-1);a+=l}),r.on("end",()=>{let n=s.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function fIe(t,{prefix:e}){return{stdout:oIe(r=>t.stdout.write(`${r}
`),t.stdout.isTTY?e:null),stderr:oIe(r=>t.stderr.write(`${r}
`),t.stderr.isTTY?e:null)}}var aIe,zh,cIe,Fy,wu,zq,Jq,Zq=tt(()=>{aIe=st(O6()),zh=Ae("stream"),cIe=Ae("string_decoder"),Fy=new Set;wu=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},zq=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},Jq=class t{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:s,stderr:a}){let n=new t(null,e);return n.stdin=r,n.stdout=s,n.stderr=a,n}pipeTo(e,r=1){let s=new t(this,e),a=new zq;return s.pipe=a,s.stdout=this.stdout,s.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),s}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let s;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");s=this.stderr,e[2]=s.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),s.close(),n))}async run(){let e=[];for(let s=this;s;s=s.ancestor)e.push(s.exec());return(await Promise.all(e))[0]}}});var Tb={};lr(Tb,{EntryCommand:()=>Db,ShellError:()=>Tl,execute:()=>pC,globUtils:()=>FN});function hIe(t,e,r){let s=new Ql.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(s,{end:!1}),(e&2)===2&&r.stdin instanceof Ql.Writable&&s.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(s,{end:!1}),(e&2)===2&&s.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(s,{end:!1}),(e&2)===2&&s.pipe(r.stderr,{end:!1});break;default:throw new Tl(`Bad file descriptor: "${t}"`)}return s}function LN(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function qAt(t,e,r){let s=[],a=new Ql.PassThrough;return a.on("data",n=>s.push(n)),await _N(t,e,LN(r,{stdout:a})),Buffer.concat(s).toString().replace(/[\r\n]+$/,"")}async function AIe(t,e,r){let s=t.map(async n=>{let l=await Ny(n.args,e,r);return{name:n.name,value:l.join(" ")}});return(await Promise.all(s)).reduce((n,l)=>(n[l.name]=l.value,n),{})}function ON(t){return t.match(/[^ \r\n\t]+/g)||[]}async function EIe(t,e,r,s,a=s){switch(t.name){case"$":s(String(process.pid));break;case"#":s(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let l=ON(n);for(let f=0;f<l.length-1;++f)a(l[f]);s(l[l.length-1])}break;case"*":{let n=e.args.join(" ");if(t.quoted)s(n);else for(let l of ON(n))a(l)}break;case"PPID":s(String(process.ppid));break;case"RANDOM":s(String(Math.floor(Math.random()*32768)));break;default:{let n=parseInt(t.name,10),l,f=Number.isFinite(n);if(f?n>=0&&n<e.args.length&&(l=e.args[n]):Object.hasOwn(r.variables,t.name)?l=r.variables[t.name]:Object.hasOwn(r.environment,t.name)&&(l=r.environment[t.name]),typeof l<"u"&&t.alternativeValue?l=(await Ny(t.alternativeValue,e,r)).join(" "):typeof l>"u"&&(t.defaultValue?l=(await Ny(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(l="")),typeof l>"u")throw f?new Tl(`Unbound argument #${n}`):new Tl(`Unbound variable "${t.name}"`);if(t.quoted)s(l);else{let h=ON(l);for(let m=0;m<h.length-1;++m)a(h[m]);let A=h[h.length-1];typeof A<"u"&&s(A)}}break}}async function xb(t,e,r){if(t.type==="number"){if(Number.isInteger(t.value))return t.value;throw new Error(`Invalid number: "${t.value}", only integers are allowed`)}else if(t.type==="variable"){let s=[];await EIe({...t,quoted:!0},e,r,n=>s.push(n));let a=Number(s.join(" "));return Number.isNaN(a)?xb({type:"variable",name:s.join(" ")},e,r):xb({type:"number",value:a},e,r)}else return VAt[t.type](await xb(t.left,e,r),await xb(t.right,e,r))}async function Ny(t,e,r){let s=new Map,a=[],n=[],l=m=>{n.push(m)},f=()=>{n.length>0&&a.push(n.join("")),n=[]},h=m=>{l(m),f()},A=(m,w,B)=>{let D=JSON.stringify({type:m,fd:w}),I=s.get(D);typeof I>"u"&&s.set(D,I=[]),I.push(B)};for(let m of t){let w=!1;switch(m.type){case"redirection":{let B=await Ny(m.args,e,r);for(let D of B)A(m.subtype,m.fd,D)}break;case"argument":for(let B of m.segments)switch(B.type){case"text":l(B.text);break;case"glob":l(B.pattern),w=!0;break;case"shell":{let D=await qAt(B.shell,e,r);if(B.quoted)l(D);else{let I=ON(D);for(let R=0;R<I.length-1;++R)h(I[R]);l(I[I.length-1])}}break;case"variable":await EIe(B,e,r,l,h);break;case"arithmetic":l(String(await xb(B.arithmetic,e,r)));break}break}if(f(),w){let B=a.pop();if(typeof B>"u")throw new Error("Assertion failed: Expected a glob pa Line truncated
`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${h}, '${l(hw(t))}' has ended
`)})),0}return await dIe(t,e,r)}async function zAt(t,e,r,{background:s=!1}={}){let a,n=f=>{a=f,r.variables["?"]=String(f)},l=async f=>{try{return await KAt(f.chain,e,r,{background:s&&typeof f.then>"u"})}catch(h){if(!(h instanceof Tl))throw h;return r.stderr.write(`${h.message}
`),1}};for(n(await l(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await l(t.then.line));break;case"||":a!==0&&n(await l(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function _N(t,e,r){let s=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:l}of t){if(a=await zAt(n,e,r,{background:l==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=s,a}function IIe(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>Rb(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>Rb(e));case"arithmetic":return Xq(t.arithmetic);case"shell":return $q(t.shell);default:return!1}}function Rb(t){switch(t.type){case"redirection":return t.args.some(e=>Rb(e));case"argument":return t.segments.some(e=>IIe(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function Xq(t){switch(t.type){case"variable":return IIe(t);case"number":return!1;default:return Xq(t.left)||Xq(t.right)}}function $q(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let s;switch(r.type){case"subshell":s=$q(r.subshell);break;case"command":s=r.envs.some(a=>a.args.some(n=>Rb(n)))||r.args.some(a=>Rb(a));break}if(s)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function pC(t,e=[],{baseFs:r=new pi,builtins:s={},cwd:a=me.toPortablePath(process.cwd()),env:n=process.env,stdin:l=process.stdin,stdout:f=process.stdout,stderr:h=process.stderr,variables:A={},glob:m=FN}={}){let w={};for(let[I,R]of Object.entries(n))typeof R<"u"&&(w[I]=R);let B=new Map(GAt);for(let[I,R]of Object.entries(s))B.set(I,R);l===null&&(l=new Ql.PassThrough,l.end());let D=DT(t,m);if(!$q(D)&&D.length>0&&e.length>0){let{command:I}=D[D.length-1];for(;I.then;)I=I.then.line;let R=I.chain;for(;R.then;)R=R.then.chain;R.type==="command"&&(R.args=R.args.concat(e.map(N=>({type:"argument",segments:[{type:"text",text:N}]}))))}return await _N(D,{args:e,baseFs:r,builtins:B,initialStdin:l,initialStdout:f,initialStderr:h,glob:m},{cwd:a,environment:w,exitCode:null,procedures:{},stdin:l,stdout:f,stderr:h,variables:Object.assign({},A,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var gIe,mIe,Ql,yIe,GAt,VAt,Pb=tt(()=>{Mt();au();gIe=st(Cw()),mIe=Ae("os"),Ql=Ae("stream"),yIe=Ae("timers/promises");eIe();tIe();sIe();Zq();Zq();GAt=new Map([["cd",async([t=(0,mIe.homedir)(),...e],r,s)=>{let a=Y.resolve(s.cwd,me.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(l=>{throw l.code==="ENOENT"?new Tl(`cd: no such file or directory: ${t}`):l})).isDirectory())throw new Tl(`cd: not a directory: ${t}`);return s.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${me.fromPortablePath(r.cwd)}
`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,s)=>s.exitCode=parseInt(t??s.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")}
`),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new Tl("sleep: missing operand");let s=Number(t);if(Number.isNaN(s))throw new Tl(`sleep: invalid time interval '${t}'`);return await(0,yIe.setTimeout)(1e3*s,0)}],["unset",async(t,e,r)=>{for(let s of t)delete r.environment[s],delete r.variables[s];return 0}],["__ysh_run_procedure",async(t,e,r)=>{let s=r.procedures[t[0]];return await NN(s,{stdin:new wu(r.stdin),stdout:new wu(r.stdout),stderr:new wu(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let s=r.stdin,a=r.stdout,n=r.stderr,l=[],f=[],h=[],A=0;for(;t[A]!=="--";){let w=t[A++],{type:B,fd:D}=JSON.parse(w),I=V=>{switch(D){case null:case 0:l.push(V);break;default:throw new Error(`Unsupported file descriptor: "${D}"`)}},R=V=>{switch(D){case null:case 1:f.push(V);break;case 2:h.push(V);break;default:throw new Error(`Unsupported file descriptor: "${D}"`)}},N=Number(t[A++]),U=A+N;for(let V=A;V<U;++A,++V)switch(B){case"<":I(()=>e.baseFs.createReadStream(Y.resolve(r.cwd,me.toPortablePath(t[V]))));break;case"<<<":I(()=>{let ee=new Ql.PassThrough;return process.nextTick(()=>{ee.write(`${t[V]}
`),ee.end()}),ee});break;case"<&":I(()=>hIe(Number(t[V]),1,r));break;case">":case">>":{let ee=Y.resolve(r.cwd,me.toPortablePath(t[V]));R(ee==="/dev/null"?new Ql.Writable({autoDestroy:!0,emitClose:!0,write(te,ie,ae){setImmediate(ae)}}):e.baseFs.createWriteStream(ee,B===">>"?{flags:"a"}:void 0))}break;case">&":R(hIe(Number(t[V]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${B}"`)}}if(l.length>0){let w=new Ql.PassThrough;s=w;let B=D=>{if(D===l.length)w.end();else{let I=l[D]();I.pipe(w,{end:!1}),I.on("end",()=>{B(D+1)})}};B(0)}if(f.length>0){let w=new Ql.PassThrough;a=w;for(let B of f)w.pipe(B)}if(h.length>0){let w=new Ql.PassThrough;n=w;for(let B of h)w.pipe(B)}let m=await NN(kb(t.slice(A+1),e,r),{stdin:new wu(s),stdout:new wu(a),stderr:new wu(n)}).run();return await Promise.all(f.map(w=>new Promise((B,D)=>{w.on("error",I=>{D(I)}),w.on("close",()=>{B()}),w.end()}))),await Promise.all(h.map(w=>new Promise((B,D)=>{w.on("error",I=>{D(I)}),w.on("close",()=>{B()}),w.end()}))),m}]]);VAt={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var wIe=H((g$t,MN)=>{function JAt(){var t=0,e=1,r=2,s=3,a=4,n=5,l=6,f=7,h=8,A=9,m=10,w=11,B=12,D=13,I=14,R=15,N=16,U=17,V=0,ee=1,te=2,ie=3,ae=4;function ge(d,be){return 55296<=d.charCodeAt(be)&&d.charCodeAt(be)<=56319&&56320<=d.charCodeAt(be+1)&&d.charCodeAt(be+1)<=57343}function de(d,be){be===void 0&&(be=0);var Ce=d.charCodeAt(be);if(55296<=Ce&&Ce<=56319&&be<d.length-1){var Ee=Ce,he=d.charCodeAt(be+1);return 56320<=he&&he<=57343?(Ee-55296)*1024+(he-56320)+65536:Ee}if(56320<=Ce&&Ce<=57343&&be>=1){var Ee=d.charCodeAt(be-1),he=Ce;return 55296<=Ee&&Ee<=56319?(Ee-55296)*1024+(he-56320)+65536:he}return Ce}function De(d,be,Ce){var Ee=[d].concat(be).concat([Ce]),he=Ee[Ee.length-2],$=Ce,Pe=Ee.lastIndexOf(I);if(Pe>1&&Ee.slice(1,Pe).every(function(j){return j==s})&&[s,D,U].indexOf(d)==-1)return te;var Te=Ee.lastIndexOf(a);if(Te>0&&Ee.slice(1,Te).every(function(j){return j==a})&&[B,a].indexOf(he)==-1)return Ee.filter(function(j){return j==a}).length%2==1?ie:ae;if(he==t&&$==e)return V;if(he==r||he==t||he==e)return $==I&&be.every(function(j){return j==s})?te:ee;if($==r||$==t||$==e)return ee;if(he==l&&($==l||$==f||$==A||$==m))return V;if((he==A||he==f)&&($==f||$==h))return V;if((he==m||he==h)&&$==h)return V;if($==s||$==R)return V;if($==n)return V;if(he==B)return V;var ot=Ee.indexOf(s)!=-1?Ee.lastIndexOf(s)-1:Ee.length-2;return[D,U].indexOf(Ee[ot])!=-1&&Ee.slice(ot+1,-1).every(function(j){return j==s})&&$==I||he==R&&[N,U].indexOf($)!=-1?V:be.indexOf(a)!=-1?te:he==a&&$==a?V:ee}this.nextBreak=function(d,be){if(be===void 0&&(be=0),be<0)return 0;if(be>=d.length-1)return d.length;for(var Ce=we(de(d,be)),Ee=[],he=be+1;he<d.length;he++)if(!ge(d,he-1)){var $=we(de(d,he));if(De(Ce,Ee,$))return he;Ee.push($)}return d.length},this.splitGraphemes=function(d){for(var be=[],Ce=0,Ee;(Ee=this.nextBreak(d,Ce))<d.length;)be.push(d.slice(Ce,Ee)),Ce=Ee;return Ce<d.length&&be.push(d.slice(Ce)),be},this.iterateGraphemes=function(d){var be=0,Ce={next:function(){var Ee,he;return(he=this.nextBreak(d,be))<d.length?(Ee=d.slice(be,he),be=he,{value:Ee,done:!1}):be<d.length?(Ee=d.slice(be),be=d.length,{value:Ee,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(Ce[Symbol.iterator]=function(){return Ce}),Ce},this.countGraphemes=function(d){for(var be=0,Ce=0,Ee;(Ee=this.nextBreak(d,Ce))<d.length;)Ce=Ee,be++;return Ce<d.length&&be++,be};function we(d){return 1536<=d&&d<=1541||d==1757||d==1807||d==2274||d==3406||d==69821||70082<=d&&d<=70083||d==72250||72326<=d&&d<=72329||d==73030?B:d==13?t:d==10?e:0<=d&&d<=9||11<=d&&d<=12||14<=d&&d<=31||127<=d&&d<=159||d==173||d==1564||d==6158||d==8203||8206<=d&&d<=8207||d==8232||d==8233||8234<=d&&d<=8238||8288<=d&&d<=8292||d==8293||8294<=d&&d<=8303||55296<=d&&d<=57343||d==65279||65520<=d&&d<=65528||65529<=d&&d<=65531||113824<=d&&d<=113827||119155<=d&&d<=119162||d==917504||d==917505||917506<=d&&d<=917535||917632<=d&&d<=917759||918e3<=d&&d<=921599?r:768<=d&&d<=879||1155<=d&&d<=1159||1160<=d&&d<=1161||1425<=d&&d<=1469||d==1471||1473<=d&&d<=1474||1476<=d&&d<=1477||d==1479||1552<=d&&d<=1562||1611<=d&&d<=1631||d==1648||1750<=d&&d<=1756||1759<=d&&d<=1764||1767<=d&&d<=1768||1770<=d&&d<=1773||d==1809||1840<=d&&d<=1866||1958<=d&&d<=1968||2027<=d&&d<=2035||2070<=d&&d<=2073||2075<=d&&d<=2083||2085<=d&&d<=2087||2089<=d&&d<=2093||2137<=d&&d<=2139||2260<=d&&d<=2273||2275<=d&&d<=2306||d==2362||d==2364||2369<=d&&d<=2376||d==2381||2385<=d&&d<=2391||2402<=d&&d<=2403||d==2433||d==2492||d==2494||2497<=d&&d<=2500||d==2509||d==2519||2530<=d&&d<=2531||2561<=d&&d<=2562||d==2620||2625<=d&&d<=2626||2631<=d&&d<=2632||2635<=d&&d<=2637||d==2641||2672<=d&&d<=2673||d==2677||2689<=d&&d<=2690||d==2748||2753<=d&&d<=2757||2759<=d&&d<=2760||d==2765||2786<=d&&d<=2787||2810<=d&&d<=2815||d==2817||d==2876||d==2878||d==2879||2881<=d&&d<=2884||d==2893||d==2902||d==2903||2914<=d&&d<=2915||d==2946||d==3006|| Line truncated
`,end:t=>`::endgroup::
`}:HN.default.TRAVIS?{start:t=>`travis_fold:start:${t}
`,end:t=>`travis_fold:end:${t}
`}:HN.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t}
`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,PIe=z0!==null,bIe=new Date,ept=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,tpt=t=>t,jN=tpt({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),rpt=ept&&Object.keys(jN).find(t=>{let e=jN[t];return!(e.date&&(e.date[0]!==bIe.getDate()||e.date[1]!==bIe.getMonth()+1))})||"default";Wt=class extends jo{constructor({configuration:r,stdout:s,json:a=!1,forceSectionAlignment:n=!1,includeNames:l=!0,includePrefix:f=!0,includeFooter:h=!0,includeLogs:A=!a,includeInfos:m=A,includeWarnings:w=A}){super();this.uncommitted=new Set;this.warningCount=0;this.errorCount=0;this.timerFooter=[];this.startTime=Date.now();this.indent=0;this.level=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;if(YS(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=l,this.includePrefix=f,this.includeFooter=h,this.includeInfos=m,this.includeWarnings=w,this.json=a,this.stdout=s,r.get("enableProgressBars")&&!a&&s.isTTY&&s.columns>22){let B=r.get("progressBarStyle")||rpt;if(!Object.hasOwn(jN,B))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=jN[B];let D=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*D/80)}}static async start(r,s){let a=new this(r),n=process.emitWarning;process.emitWarning=(l,f)=>{if(typeof l!="string"){let A=l;l=A.message,f=f??A.name}let h=typeof f<"u"?`${f}: ${l}`:l;a.reportWarning(0,h)},r.includeVersion&&a.reportInfo(0,wy(r.configuration,`Yarn ${Fn}`,2));try{await s(a)}catch(l){a.reportExceptionOnce(l)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let s=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,s-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:s,skipIfEmpty:a},n){let l={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(l):(l.action(),l.committed=!0);let f=Date.now();try{return n()}catch(h){throw this.reportExceptionOnce(h),h}finally{let h=Date.now();this.uncommitted.delete(l),l.committed&&s?.(h-f)}}async startSectionPromise({reportHeader:r,reportFooter:s,skipIfEmpty:a},n){let l={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(l):(l.action(),l.committed=!0);let f=Date.now();try{return await n()}catch(h){throw this.reportExceptionOnce(h),h}finally{let h=Date.now();this.uncommitted.delete(l),l.committed&&s?.(h-f)}}startTimerImpl(r,s,a){return{cb:typeof s=="function"?s:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\u250C ${r}`),this.indent+=1,z0!==null&&!this.json&&this.includeInfos&&this.stdout.write(z0.start(r))},reportFooter:f=>{if(this.indent-=1,z0!==null&&!this.json&&this.includeInfos){this.stdout.write(z0.end(r));for(let h of this.timerFooter)h()}this.configuration.get("enableTimers")&&f>200?this.reportInfo(null,`\u2514 Completed in ${or(this.configuration,f,Ct.DURATION)}`):this.reportInfo(null,"\u2514 Completed"),this.level-=1},skipIfEmpty:(typeof s=="function"?{}:s).skipIfEmpty}}startTimerSync(r,s,a){let{cb:n,...l}=this.startTimerImpl(r,s,a);return this.startSectionSync(l,n)}async startTimerPromise(r,s,a){let{cb:n,...l}=this.startTimerImpl(r,s,a);return this.startSectionPromise(l,n)}reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(null,"")}reportInfo(r,s){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",l=`${this.formatPrefix(n,"blueBright")}${s}`;this.json?this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(l)}reportWarning(r,s){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(`${this.formatPrefix(n,"yellowBright")}${s}`)}reportError(r,s){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,s)),this.reportErrorImpl(r,s)}reportErrorImpl(r,s){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:s}):this.writeLine(`${this.formatPrefix(n,"redBright")}${s}`,{truncate:!1})}reportFold(r,s){if(!z0)return;let a=`${z0.start(r)}${s}${z0.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)ret Line truncated
`),this.writeProgress()}writeLines(r,{truncate:s}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:s})}
`);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let s of r)s.committed=!0,s.action()}clearProgress({delta:r=0,clear:s=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||s)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>SIe&&(this.progressFrame=(this.progressFrame+1)%vIe.length,this.progressTime=r);let s=vIe[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let A=this.progressStyle.chars[0].repeat(a.lastScaledSize),m=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${A}${m}`}let l=this.formatName(null),f=l?`${l}: `:"",h=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${or(this.configuration,"\u27A4","blueBright")} ${f}${s}${n}${h}
`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},SIe)}refreshProgress({delta:r=0,force:s=!1}={}){let a=!1,n=!1;if(s||this.progress.size===0)a=!0;else for(let l of this.progress.values()){let f=typeof l.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*l.definition.progress):void 0,h=l.lastScaledSize;l.lastScaledSize=f;let A=l.lastTitle;if(l.lastTitle=l.definition.title,f!==h||(n=A!==l.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:s}={}){return this.progressStyle===null&&(s=!1),typeof s>"u"&&(s=this.configuration.get("preferTruncatedLines")),s&&(r=(0,DIe.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?xIe(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,s){return this.includePrefix?`${or(this.configuration,"\u27A4",s)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?e7(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ".repeat(this.indent):`${$At} `}}});var qn={};lr(qn,{PackageManager:()=>RIe,detectPackageManager:()=>TIe,executePackageAccessibleBinary:()=>LIe,executePackageScript:()=>GN,executePackageShellcode:()=>t7,executeWorkspaceAccessibleBinary:()=>lpt,executeWorkspaceLifecycleScript:()=>NIe,executeWorkspaceScript:()=>FIe,getPackageAccessibleBinaries:()=>qN,getWorkspaceAccessibleBinaries:()=>OIe,hasPackageScript:()=>opt,hasWorkspaceScript:()=>r7,isNodeScript:()=>n7,makeScriptEnv:()=>Nb,maybeExecuteWorkspaceLifecycleScript:()=>cpt,prepareExternalProject:()=>spt});async function J0(t,e,r,s=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${s.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await fe.writeFilePromise(Y.format({dir:t,name:e,ext:".cmd"}),a)}await fe.writeFilePromise(Y.join(t,e),`#!/bin/sh
exec "${r}" ${s.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@"
`,{mode:493})}async function TIe(t){let e=await nr.tryFind(t);if(e?.packageManager){let s=NF(e.packageManager);if(s?.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=s.reference.split(".");switch(s.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await fe.readFilePromise(Y.join(t,Or.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:fe.existsSync(Y.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:fe.existsSync(Y.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function Nb({project:t,locator:e,binFolder:r,ignoreCorepack:s,lifecycleScript:a,baseEnv:n=t?.configuration.env??process.env}){let l={};for(let[m,w]of Object.entries(n))typeof w<"u"&&(l[m.toLowerCase()!=="path"?m:"PATH"]=w);let f=me.fromPortablePath(r);l.BERRY_BIN_FOLDER=me.fromPortablePath(f);let h=process.env.COREPACK_ROOT&&!s?me.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([J0(r,"node",process.execPath),...Fn!==null?[J0(r,"run",process.execPath,[h,"run"]),J0(r,"yarn",process.execPath,[h]),J0(r,"yarnpkg",process.execPath,[h]),J0(r,"node-gyp",process.execPath,[h,"run","--top-level","node-gyp"])]:[]]),t&&(l.INIT_CWD=me.fromPortablePath(t.configuration.startingCwd),l.PROJECT_CWD=me.fromPortablePath(t.cwd)),l.PATH=l.PATH?`${f}${me.delimiter}${l.PATH}`:`${f}`,l.npm_execpath=`${f}${me.sep}yarn`,l.npm_node_execpath=`${f}${me.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let m=t.tryWorkspaceByLocator(e),w=m?m.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";l.npm_package_name=Qn(e),l.npm_package_version=w;let B;if(m)B=m.cwd;else{let D=t.storedPackages.get(e.locatorHash);if(!D)throw new Error(`Package for ${hn(t.configuration,e)} not found in the project`);let I=t.configuration.getLinkers(),R={project:t,report:new Wt({stdout:new Z0.PassThrough,configuration:t.configuration})},N=I.find(U=>U.supportsPackage(D,R));if(!N)throw new Error(`The package ${hn(t.configuration,D)} isn't supported by any of the available linkers`);B=await N.findPackageLocation(D,R)}l.npm_package_json=me.fromPortablePath(Y.join(B,Or.manifest))}let A=Fn!==null?`yarn/${Fn}`:`yarn/${Qp("@yarnpkg/core").version}-core`;return l.npm_config_user_agent=`${A} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(l.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(m=>m.setupScriptEnvironment,t,l,async(m,w,B)=>await J0(r,m,w,B)),l}async function spt(t,e,{configuration:r,report:s,workspace:a=null,locator:n=null}){await ipt(async()=>{await fe.mktempPromise(async l=>{let f=Y.join(l,"pack.log"),h=null,{stdout:A,stderr:m}=r.getSubprocessStreams(f,{prefix:me.fromPortablePath(t),report:s}),w=n&&kf(n)?Ww(n):n,B=w?qc(w):"an external project";A.write(`Packing ${B} from sources
`);let D=await TIe(t),I;D!==null?(A.write(`Using ${D.packageManager} for bootstrap. Reason: ${D.reason}
`),I=D.packageManager):(A.write(`No package manager configuration detected; defaulting to Yarn
`),I="Yarn");let R=I==="Yarn"&&!D?.packageManagerField;await fe.mktempPromise(async N=>{let U=await Nb({binFolder:N,ignoreCorepack:R,baseEnv:{...process.env,COREPACK_ENABLE_AUTO_PIN:"0"}}),ee=new Map([["Yarn Classic",async()=>{let ie=a!==null?["workspace",a]:[],ae=Y.join(t,Or.manifest),ge=await fe.readFilePromise(ae),de=await Tf(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:U,stdin:h,stdout:A,stderr:m,end:1});if(de.code!==0)return de.code;await fe.writeFilePromise(ae,ge),await fe.appendFilePromise(Y.join(t,".npmignore"),`/.yarn
`),A.write(`
`),delete U.NODE_ENV;let De=await Tf("yarn",["install"],{cwd:t,env:U,stdin:h,stdout:A,stderr:m,end:1});if(De.code!==0)return De.code;A.write(`
`);let we=await Tf("yarn",[...ie,"pack","--filename",me.fromPortablePath(e)],{cwd:t,env:U,stdin:h,stdout:A,stderr:m});return we.code!==0?we.code:0}],["Yarn",async()=>{let ie=a!==null?["workspace",a]:[];U.YARN_ENABLE_INLINE_BUILDS="1";let ae=Y.join(t,Or.lockfile);await fe.existsPromise(ae)||await fe.writeFilePromise(ae,"");let ge=await Tf("yarn",[...ie,"pack","--install-if-needed","--filename",me.fromPortablePath(e)],{cwd:t,env:U,stdin:h,stdout:A,stderr:m});return ge.code!==0?ge.code:0}],["npm",async()=>{if(a!==null){let be=new Z0.PassThrough,Ce=Nw(be);be.pipe(A,{end:!1});let Ee=await Tf("npm",["--version"],{cwd:t,env:U,stdin:h,stdout:be,stderr:m,end:0});if(be.end(),Ee.code!==0)return A.end(),m.end(),Ee.code;let he=(await Ce).toString().trim();if(!Wh(he,">=7.x")){let $=ic(null,"npm"),Pe=oi($,he),Te=oi($,">=7.x");throw new Error(`Workspaces aren't supported by ${xi(r,Pe)}; please upgrade to ${xi(r,Te)} (npm has been detected as the primary package manager for ${or(r,t,Ct.PATH)})`)}}let ie=a!==null?["--workspace",a]:[];delete U.npm_config_user_agent,delete U.npm_config_production,delete U.NPM_CONFIG_PRODUCTION,delete U.NODE_ENV;let ae=await Tf("npm",["install","--legacy-peer-deps"],{cwd:t,env:U,stdin:h,stdout:A,stderr:m,end:1});if(ae.code!==0)return ae.code;let ge=new Z0.PassThrough,de=Nw(ge);ge.pipe(A);let De=await Tf("npm",["pack","--silent",...ie],{cwd:t,env:U,stdin:h,stdout:ge,stderr:m});if(De.code!==0)return De.code;let we=(await de).toString().trim().replace(/^.*\n/s,""),d=Y.resolve(t,me.toPortablePath(we));return await fe.renamePromise(d,e),0}]]).get(I);if(typeof ee>"u")throw new Error("Assertion failed: Unsupported workflow");let te=await ee();if(!(te===0||typeof te>"u"))throw fe.detachTemp(l),new Zt(58,`Packing the package failed (exit code ${te}, logs can be found here: ${or(r,f,Ct.PATH)})`)})})})}async function opt(t,e,{project:r}){let s=r.tryWorkspaceByLocator(t);if(s!==null)return r7(s,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${hn(r.configuration,t)} not found in the project`);return await Yh.openPromise(async n=>{let l=r.configuration,f=r.configuration.getLinkers(),h={project:r,report:new Wt({stdout:new Z0.PassThrough,configuration:l})},A=f.find(D=>D.supportsPackage(a,h));if(!A)throw new Error(`The package ${hn(r.configuration,a)} isn't supported by any of the available linkers`);let m=await A.findPackageLocation(a,h),w=new Jn(m,{baseFs:n});return(await nr.find(Rt.dot,{baseFs:w})).scripts.has(e)})}async function GN(t,e,r,{cwd:s,project:a,stdin:n,stdout:l,stderr:f}){return await fe.mktempPromise(async h=>{let{manifest:A,env:m,cwd:w}=await QIe(t,{project:a,binFolder:h,cwd:s,lifecycleScript:e}),B=A.scripts.get(e);if(typeof B>"u")return 1;let D=async()=>await pC(B,r,{cwd:w,env:m,stdin:n,stdout:l,stderr:f});return await(await a.configuration.reduceHook(R=>R.wrapScriptExecution,D,a,t,e,{script:B,args:r,cwd:w,env:m,stdin:n,stdout:l,stderr:f}))()})}async function t7(t,e,r,{cwd:s,project:a,stdin:n,stdout:l,stderr:f}){return await fe.mktempPromise(async h=>{let{env:A,cwd:m}=await QIe(t,{project:a,binFolder:h,cwd:s});return await pC(e,r,{cwd:m,env:A,stdin:n,stdout:l,stderr:f})})}async function apt(t,{binFolder:e,cwd:r,lifecycleScript:s}){let a=await Nb({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:s});return await i7(e,await OIe(t)),typeof r>"u"&&(r=Y.dirname(await fe.realpathPromise(Y.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function QIe(t,{project:e,binFolder:r,cwd:s,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return apt(n,{binFolder:r,cwd:s,lifecycleScript:a});let l=e.storedPackages.get(t.locatorHash);if(!l)throw new Error(`Package for ${hn(e.configuration,t)} not found in the project`);return await Yh.openPromise(async f=>{let h=e.configuration,A=e.configuration.getLinkers(),m={project:e,report:new Wt({stdout:new Z0.PassThrough,configuration:h})},w=A.find(N=>N.supportsPackage(l,m));if(!w)throw new Error(`The package ${hn(e.configuration,l)} isn't supported by any of the available linkers`);let B=await Nb({project:e,locator:t,binFolder:r,lifecycleScript:a});await i7(r,await qN(t,{project:e}));let D=await w.findPackageLocation(l,m),I=new Jn(D,{baseFs:f}),R=await nr.find(Rt.dot,{baseFs:I});return typeof s>"u"&&(s=D),{manifest:R,binFolder:r,env:B,cwd:s}})}async function FIe(t,e,r,{cwd:s,stdin:a,stdout:n,stderr:l}){return await GN(t.anchoredLocator,e,r,{cwd:s,project:t.project,stdin:a,stdout:n,stderr:l})}function r7(t,e){return t.manifest.scripts.has(e)}async function NIe(t,e,{cwd:r,report:s}){let{configuration:a}=t.project,n=null;await fe.mktempPromise(async l=>{let f=Y.join(l,`${e}.log`),h=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${me.fromPortablePath(t.cwd)}")
`,{stdout:A,stderr:m}=a.getSubprocessStreams(f,{report:s,prefix:hn(a,t.anchoredLocator),header:h});s.reportInfo(36,`Calling the "${e}" lifecycle script`);let w=await FIe(t,e,[],{cwd:r,stdin:n,stdout:A,stderr:m});if(A.end(),m.end(),w!==0)throw fe.detachTemp(l),new Zt(36,`${HS(e)} script failed (exit code ${or(a,w,Ct.NUMBER)}, logs can be found here: ${or(a,f,Ct.PATH)}); run ${or(a,`yarn ${e}`,Ct.CODE)} to investigate`)})}async function cpt(t,e,r){r7(t,e)&&await NIe(t,e,r)}function n7(t){let e=Y.extname(t);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let r=Buffer.alloc(4),s;try{s=fe.openSync(t,"r")}catch{return!0}try{fe.readSync(s,r,0,r.length,0)}finally{fe.closeSync(s)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function qN(t,{project:e}){let r=e.configuration,s=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${hn(r,t)} not found in the project`);let n=new Z0.Writable,l=r.getLinkers(),f={project:e,report:new Wt({configuration:r,stdout:n})},h=new Set([t.locatorHash]);for(let m of a.dependencies.values()){let w=e.storedResolutions.get(m.descriptorHash);if(!w)throw new Error(`Assertion failed: The resolution (${xi(r,m)}) should have been registered`);h.add(w)}let A=await Promise.all(Array.from(h,async m=>{let w=e.storedPackages.get(m);if(!w)throw new Error(`Assertion failed: The package (${m}) should have been registered`);if(w.bin.size===0)return kl.skip;let B=l.find(I=>I.supportsPackage(w,f));if(!B)return kl.skip;let D=null;try{D=await B.findPackageLocation(w,f)}catch(I){if(I.code==="LOCATOR_NOT_INSTALLED")return kl.skip;throw I}return{dependency:w,packageLocation:D}}));for(let m of A){if(m===kl.skip)continue;let{dependency:w,packageLocation:B}=m;for(let[D,I]of w.bin){let R=Y.resolve(B,I);s.set(D,[w,me.fromPortablePath(R),n7(R)])}}return s}async function OIe(t){return await qN(t.anchoredLocator,{project:t.project})}async function i7(t,e){await Promise.all(Array.from(e,([r,[,s,a]])=>a?J0(t,r,process.execPath,[s]):J0(t,r,s,[])))}async function LIe(t,e,r,{cwd:s,project:a,stdin:n,stdout:l,stderr:f,nodeArgs:h=[],packageAccessibleBinaries:A}){A??=await qN(t,{project:a});let m=A.get(e);if(!m)throw new Error(`Binary not found (${e}) for ${hn(a.configuration,t)}`);return await fe.mktempPromise(async w=>{let[,B]=m,D=await Nb({project:a,locator:t,binFolder:w});await i7(D.BERRY_BIN_FOLDER,A);let I=n7(me.toPortablePath(B))?Tf(process.execPath,[...h,B,...r],{cwd:s,env:D,stdin:n,stdout:l,stderr:f}):Tf(B,r,{cwd:s,env:D,stdin:n,stdout:l,stderr:f}),R;try{R=await I}finally{await fe.removePromise(D.BERRY_BIN_FOLDER)}return R.code})}async function lpt(t,e,r,{cwd:s,stdin:a,stdout:n,stderr:l,packageAccessibleBinaries:f}){return await LIe(t.anchoredLocator,e,r,{project:t.project,cwd:s,stdin:a,stdout:n,stderr:l,packageAccessibleBinaries:f})}var kIe,Z0,RIe,npt,ipt,s7=tt(()=>{Mt();Mt();Kh();Pb();xl();kIe=st(hy()),Z0=Ae("stream");Jw();mu();Fb();Qb();CN();pu();Au();_p();Ea();RIe=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(RIe||{});npt=2,ipt=(0,kIe.default)(npt)});function Cdt(t,e,r){let s=e,a=e?e.next:t.head,n=new lV(r,s,a,t);return n.next===void 0&&(t.tail=n),n.prev===void 0&&(t.head=n),t.length++,n}function Bdt(t,e){t.tail=new lV(e,t.tail,void 0,t),t.head||(t.head=t.tail),t.length++}function vdt(t,e){t.head=new lV(e,void 0,t.head,t),t.tail||(t.tail=t.head),t.length++}var pwe,lc,IO,tV,dwe,nV,Wy,CO,ywe,gO,og,jIe,Ewe,Vy,Swe,nD,Of,L7,kwe,V7,fV,Owe,hV,Vn,Us,AV,oD,SC,Yc,Hwe,iD,pV,Wc,gV,upt,fpt,_Ie,hpt,Apt,ppt,Vp,Wp,X0,VN,Ob,WN,MIe,YN,UIe,Qf,gC,yo,Lb,IC,Eo,cc,Io,o7,KN,Ba,Ss,a7,c7,HIe,l7,Jh,u7,zN,_b,Oy,Fl,Mb,dpt,gpt,mpt,ypt,gwe,Ept,Ipt,wpt,Zy,Cpt,cg,_f,Ub,di,f7,Jp,h7,Q7,F7,Jb,JN,vC,bC,A7,wC,lg,Lf,rg,Zh,CC,p7,zp,Hb,d7,sO,Ly,oO,Yy,rV,Bpt,wO,mwe,vpt,Spt,bpt,Dpt,Ppt,xpt,kpt,iV,sD,Rpt,eA,Tpt,GIe,Qpt,g7,Ky,ZN,m7,sV,Iwe,Fpt,Npt,wwe,Opt,Lpt,Cwe,_pt,Mpt,Upt,Hpt,jpt,Gpt,qpt,Vpt,Bwe,vwe,Wpt,aO,Ypt,BO,oV,zy,Kpt,_y,y7,zpt,ng,Jpt,Zpt,Xpt,ig,$pt,edt,tdt,E7,rdt,My,mO,ndt,idt,sdt,odt,xn,Dwe,vO,adt,N7,O7,cdt,Cu,Uy,Yp,I7,qIe,Xh,jb,$0,VIe,qi,Kp,eg,w7,Hy,Ms,XN,$N,C7,WIe,YIe,Gb,B7,eO,mC,tg,tO,jy,rO,nO,KIe,ldt,Jy,Zb,udt,Pwe,fdt,hdt,SO,xwe,Adt,zIe,aV,bO,cV,pdt,ddt,JIe,gdt,Rwe,mdt,ZIe,XIe,$Ie,_7,ewe,qb,cO,M7,lO,U7,H7,j7,G7,sg,yO,q7,v7,$h,Twe,ydt,Edt,Idt,wdt,lV,twe,rwe,uO,Vb,Ff,Gy,qy,Wb,S7,Nf,b7,fO,nwe,W7,Y7,hO,AO,iwe,D7,pO,Qwe,P7,DO,uV,Sdt,bdt,Fwe,Nwe,Ddt,Pdt,M$t,xdt,kdt,Rdt,Tdt,Qdt,Lwe,Fdt,Ndt,Odt,_we,K7,EO,Ldt,Mwe,_dt,Uwe,jwe,PO,Mdt,Udt,z7,Gwe,Hdt,jdt,x7,swe,yC,Gdt,qdt,Vdt,Wdt,Ydt,Kdt,owe,J7,awe,Z7,Bu,X7,$7,dO,cwe,lwe,zb,uwe,fwe,k7,ag,wo,iO,hwe,EC,R7,T7,eV,Xb,$b,eD,tD,zdt,rD,Jdt,Zdt,Xdt,Awe,dV,Yb,qwe,$dt,e0t,U$t,t0t,r0t,n0t,i0t,s0t,Kb,H$t,o0t,Vwe=tt(()=>{pwe=st(Ae("events"),1),lc=st(Ae("fs"),1),IO=Ae("node:events"),tV=st(Ae("node:stream"),1),dwe=Ae("node:string_decoder"),nV=st(Ae("node:path"),1),Wy=st(Ae("node:fs"),1),CO=Ae("path"),ywe=Ae("events"),gO=st(Ae("assert"),1),og=Ae("buffer"),jIe=st(Ae("zlib"),1), Line truncated
`,n=Buffer.byteLength(a),l=Math.floor(Math.log(n)/Math.log(10))+1;return n+l>=Math.pow(10,l)&&(l+=1),l+n+a}static parse(e,r,s=!1){return new bwe(ndt(idt(e),r),s)}},ndt=(t,e)=>e?Object.assign({},e,t):t,idt=t=>t.replace(/\n$/,"").split(`
`).reduce(sdt,Object.create(null)),sdt=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.slice((r+" ").length);let s=e.split("="),a=s.shift();if(!a)return t;let n=a.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),l=s.join("=");return t[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(Number(l)*1e3):/^[0-9]+$/.test(l)?+l:l,t},odt=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,xn=odt!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/"),Dwe=class extends Zy{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(t,e,r){switch(super({}),this.pause(),this.extended=e,this.globalExtended=r,this.header=t,this.remain=t.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=t.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!t.path)throw new Error("no path provided for tar.ReadEntry");this.path=xn(t.path),this.mode=t.mode,this.mode&&(this.mode=this.mode&4095),this.uid=t.uid,this.gid=t.gid,this.uname=t.uname,this.gname=t.gname,this.size=this.remain,this.mtime=t.mtime,this.atime=t.atime,this.ctime=t.ctime,this.linkpath=t.linkpath?xn(t.linkpath):void 0,this.uname=t.uname,this.gname=t.gname,e&&this.#e(e),r&&this.#e(r,!0)}write(t){let e=t.length;if(e>this.blockRemain)throw new Error("writing more to entry than is appropriate");let r=this.remain,s=this.blockRemain;return this.remain=Math.max(0,r-e),this.blockRemain=Math.max(0,s-e),this.ignore?!0:r>=e?super.write(t):super.write(t.subarray(0,r))}#e(t,e=!1){t.path&&(t.path=xn(t.path)),t.linkpath&&(t.linkpath=xn(t.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(t).filter(([r,s])=>!(s==null||r==="path"&&e))))}},vO=(t,e,r,s={})=>{t.file&&(s.file=t.file),t.cwd&&(s.cwd=t.cwd),s.code=r instanceof Error&&r.code||e,s.tarCode=e,!t.strict&&s.recoverable!==!1?(r instanceof Error&&(s=Object.assign(r,s),r=r.message),t.emit("warn",e,r,s)):r instanceof Error?t.emit("error",Object.assign(r,s)):t.emit("error",Object.assign(new Error(`${e}: ${r}`),s))},adt=1024*1024,N7=Buffer.from([31,139]),O7=Buffer.from([40,181,47,253]),cdt=Math.max(N7.length,O7.length),Cu=Symbol("state"),Uy=Symbol("writeEntry"),Yp=Symbol("readEntry"),I7=Symbol("nextEntry"),qIe=Symbol("processEntry"),Xh=Symbol("extendedHeader"),jb=Symbol("globalExtendedHeader"),$0=Symbol("meta"),VIe=Symbol("emitMeta"),qi=Symbol("buffer"),Kp=Symbol("queue"),eg=Symbol("ended"),w7=Symbol("emittedEnd"),Hy=Symbol("emit"),Ms=Symbol("unzip"),XN=Symbol("consumeChunk"),$N=Symbol("consumeChunkSub"),C7=Symbol("consumeBody"),WIe=Symbol("consumeMeta"),YIe=Symbol("consumeHeader"),Gb=Symbol("consuming"),B7=Symbol("bufferConcat"),eO=Symbol("maybeEnd"),mC=Symbol("writing"),tg=Symbol("aborted"),tO=Symbol("onDone"),jy=Symbol("sawValidEntry"),rO=Symbol("sawNullBlock"),nO=Symbol("sawEOF"),KIe=Symbol("closeStream"),ldt=()=>!0,Jy=class extends ywe.EventEmitter{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[Kp]=[];[qi];[Yp];[Uy];[Cu]="begin";[$0]="";[Xh];[jb];[eg]=!1;[Ms];[tg]=!1;[jy];[rO]=!1;[nO]=!1;[mC]=!1;[Gb]=!1;[w7]=!1;constructor(t={}){super(),this.file=t.file||"",this.on(tO,()=>{(this[Cu]==="begin"||this[jy]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),t.ondone?this.on(tO,t.ondone):this.on(tO,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")}),this.strict=!!t.strict,this.maxMetaEntrySize=t.maxMetaEntrySize||adt,this.filter=typeof t.filter=="function"?t.filter:ldt;let e=t.file&&(t.file.endsWith(".tar.br")||t.file.endsWith(".tbr"));this.brotli=!(t.gzip||t.zstd)&&t.brotli!==void 0?t.brotli:e?void 0:!1;let r=t.file&&(t.file.endsWith(".tar.zst")||t.file.endsWith(".tzst"));this.zstd=!(t.gzip||t.brotli)&&t.zstd!==void 0?t.zstd:r?!0:void 0,this.on("end",()=>this[KIe]()),typeof t.onwarn=="function"&&this.on("warn",t.onwarn),typeof t.onReadEntry=="function"&&this.on("entry",t.onReadEntry)}warn(t,e,r={}){vO(this,t,e,r)}[YIe](t,e){this[jy]===void 0&&(this[jy]=!1);let r;try{r=new zy(t,e,this[Xh],this[jb])}catch(s){return this.warn("TAR_ENTRY_INVALID",s)}if(r.nullBlock)this[rO]?(this[nO]=!0,this[Cu]==="begin"&&(this[Cu]="header"),this[Hy]("eof")):(this[rO]=!0,this[Hy]("nullBlock"));else if(this[rO]=!1,!r.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:r});else if(!r.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:r});else{let s=r.type;if(/^(Symbolic)?Link$/.test(s)&&!r.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:r});else if(!/^(Symbolic)?Link$/.test(s)&&!/^(Global)?ExtendedHeader$/.test Line truncated
`}),f},s})});var bs={};lr(bs,{emitList:()=>A0t,emitTree:()=>oCe,treeNodeToJson:()=>sCe,treeNodeToTreeify:()=>iCe});function iCe(t,{configuration:e}){let r={},s=0,a=(n,l)=>{let f=Array.isArray(n)?n.entries():Object.entries(n);for(let[h,A]of f){if(!A)continue;let{label:m,value:w,children:B}=A,D=[];typeof m<"u"&&D.push(wy(e,m,2)),typeof w<"u"&&D.push(or(e,w[0],w[1])),D.length===0&&D.push(wy(e,`${h}`,2));let I=D.join(": ").trim(),R=`\0${s++}\0`,N=l[`${R}${I}`]={};typeof B<"u"&&a(B,N)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return a(t.children,r),r}function sCe(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Cy(r.value[0],r.value[1])}let s=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,l]of s)l&&(a[p0t(n)]=e(l));return typeof r.value>"u"?a:{value:Cy(r.value[0],r.value[1]),children:a}};return e(t)}function A0t(t,{configuration:e,stdout:r,json:s}){let a=t.map(n=>({value:n}));oCe({children:a},{configuration:e,stdout:r,json:s})}function oCe(t,{configuration:e,stdout:r,json:s,separators:a=0}){if(s){let l=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let f of l)f&&r.write(`${JSON.stringify(sCe(f))}
`);return}let n=(0,nCe.asTree)(iCe(t,{configuration:e}),!1,!1);if(n=n.replace(/\0[0-9]+\0/g,""),a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502
$1`).replace(/^│\n/,"")),a>=2)for(let l=0;l<2;++l)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502
$2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}function p0t(t){return typeof t=="string"?t.replace(/^\0[0-9]+\0/,""):t}var nCe,aCe=tt(()=>{nCe=st(rCe());pu()});var xO,cCe=tt(()=>{xO=class{constructor(e){this.releaseFunction=e;this.map=new Map}addOrCreate(e,r){let s=this.map.get(e);if(typeof s<"u"){if(s.refCount<=0)throw new Error(`Race condition in RefCountedMap. While adding a new key the refCount is: ${s.refCount} for ${JSON.stringify(e)}`);return s.refCount++,{value:s.value,release:()=>this.release(e)}}else{let a=r();return this.map.set(e,{refCount:1,value:a}),{value:a,release:()=>this.release(e)}}}release(e){let r=this.map.get(e);if(!r)throw new Error(`Unbalanced calls to release. No known instances of: ${JSON.stringify(e)}`);let s=r.refCount;if(s<=0)throw new Error(`Unbalanced calls to release. Too many release vs alloc refcount would become: ${s-1} of ${JSON.stringify(e)}`);s==1?(this.map.delete(e),this.releaseFunction(r.value)):r.refCount--}}});function lD(t){let e=t.match(d0t);if(!e?.groups)throw new Error("Assertion failed: Expected the checksum to match the requested pattern");let r=e.groups.cacheVersion?parseInt(e.groups.cacheVersion):null;return{cacheKey:e.groups.cacheKey??null,cacheVersion:r,cacheSpec:e.groups.cacheSpec??null,hash:e.groups.hash}}var lCe,BV,vV,kO,gn,d0t,SV=tt(()=>{We();Mt();Mt();Kh();lCe=Ae("crypto"),BV=st(Ae("fs"));cCe();mu();G0();Au();Ea();vV=Ow(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),kO=Ow(process.env.YARN_CACHE_VERSION_OVERRIDE??10),gn=class t{constructor(e,{configuration:r,immutable:s=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.refCountedZipFsCache=new xO(e=>{e.discardAndClose()});this.cacheId=`-${(0,lCe.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=s,this.check=a;let{cacheSpec:n,cacheKey:l}=t.getCacheKey(r);this.cacheSpec=n,this.cacheKey=l}static async find(e,{immutable:r,check:s}={}){let a=new t(e.get("cacheFolder"),{configuration:e,immutable:r,check:s});return await a.setup(),a}static getCacheKey(e){let r=e.get("compressionLevel"),s=r!=="mixed"?`c${r}`:"";return{cacheKey:[kO,s].join(""),cacheSpec:s}}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${Yw(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=lD(r).hash.slice(0,10);return`${Yw(e)}-${a}.zip`}isChecksumCompatible(e){if(e===null)return!1;let{cacheVersion:r,cacheSpec:s}=lD(e);if(r===null||r<vV)return!1;let a=this.configuration.get("cacheMigrationMode");return!(r<kO&&a==="always"||s!==this.cacheSpec&&a!=="required-only")}getLocatorPath(e,r){return this.mirrorCwd===null?Y.resolve(this.cwd,this.getVersionFilename(e)):r===null?Y.resolve(this.cwd,this.getVersionFilename(e)):Y.resolve(this.cwd,this.getChecksumFilename(e,r))}getLocatorMirrorPath(e){let r=this.mirrorCwd;return r!==null?Y.resolve(r,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await fe.existsPromise(this.cwd))throw new Zt(56,"Cache path does not exist.")}else{await fe.mkdirPromise(this.cwd,{recursive:!0});let e=Y.resolve(this.cwd,".gitignore");await fe.changeFilePromise(e,`/.gitignore
*.flock
*.tmp
`)}(this.mirrorCwd||!this.immutable)&&await fe.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,r,{onHit:s,onMiss:a,loader:n,...l}){let f=this.getLocatorMirrorPath(e),h=new pi,A=()=>{let de=new _s,De=Y.join(Rt.root,L9(e));return de.mkdirSync(De,{recursive:!0}),de.writeJsonSync(Y.join(De,Or.manifest),{name:Qn(e),mocked:!0}),de},m=async(de,{isColdHit:De,controlPath:we=null})=>{if(we===null&&l.unstablePackages?.has(e.locatorHash))return{isValid:!0,hash:null};let d=r&&!De?lD(r).cacheKey:this.cacheKey,be=!l.skipIntegrityCheck||!r?`${d}/${await RF(de)}`:r;if(we!==null){let Ee=!l.skipIntegrityCheck||!r?`${this.cacheKey}/${await RF(we)}`:r;if(be!==Ee)throw new Zt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}let Ce=null;switch(r!==null&&be!==r&&(this.check?Ce="throw":lD(r).cacheKey!==lD(be).cacheKey?Ce="update":Ce=this.configuration.get("checksumBehavior")),Ce){case null:case"update":return{isValid:!0,hash:be};case"ignore":return{isValid:!0,hash:r};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new Zt(18,"The remote archive doesn't match the expected checksum")}},w=async de=>{if(!n)throw new Error(`Cache check required but no loader configured for ${hn(this.configuration,e)}`);let De=await n(),we=De.getRealPath();De.saveAndClose(),await fe.chmodPromise(we,420);let d=await m(de,{controlPath:we,isColdHit:!1});if(!d.isValid)throw new Error("Assertion failed: Expected a valid checksum");return d.hash},B=async()=>{if(f===null||!await fe.existsPromise(f)){let de=await n(),De=de.getRealPath();return de.saveAndClose(),{source:"loader",path:De}}return{source:"mirror",path:f}},D=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${hn(this.configuration,e)}`);if(this.immutable)throw new Zt(56,`Cache entry required but missing for ${hn(this.configuration,e)}`);let{path:de,source:De}=await B(),{hash:we}=await m(de,{isColdHit:!0}),d=this.getLocatorPath(e,we),be=[];De!=="mirror"&&f!==null&&be.push(async()=>{let Ee=`${f}${this.cacheId}`;await fe.copyFilePromise(de,Ee,BV.default.constants.COPYFILE_FICLONE),await fe.chmodPromise(Ee,420),await fe.renamePromise(Ee,f)}),(!l.mirrorWriteOnly||f===null)&&be.push(async()=>{let Ee=`${d}${this.cacheId}`;await fe.copyFilePromise(de,Ee,BV.default.constants.COPYFILE_FICLONE),await fe.chmodPromise(Ee,420),await fe.renamePromise(Ee,d)});let Ce=l.mirrorWriteOnly?f??d:d;return await Promise.all(be.map(Ee=>Ee())),[!1,Ce,we]},I=async()=>{let De=(async()=>{let we=l.unstablePackages?.has(e.locatorHash),d=we||!r||this.isChecksumCompatible(r)?this.getLocatorPath(e,r):null,be=d!==null?this.markedFiles.has(d)||await h.existsPromise(d):!1,Ce=!!l.mockedPackages?.has(e.locatorHash)&&(!this.check||!be),Ee=Ce||be,he=Ee?s:a;if(he&&he(),Ee){let $=null,Pe=d;if(!Ce)if(this.check)$=await w(Pe);else{let Te=await m(Pe,{isColdHit:!1});if(Te.isValid)$=Te.hash;else return D()}return[Ce,Pe,$]}else{if(this.immutable&&we)throw new Zt(56,`Cache entry required but missing for ${hn(this.configuration,e)}; consider defining ${pe.pretty(this.configuration,"supportedArchitectures",pe.Type.CODE)} to cache packages for multiple systems`);return D()}})();this.mutexes.set(e.locatorHash,De);try{return await De}finally{this.mutexes.delete(e.locatorHash)}};for(let de;de=this.mutexes.get(e.locatorHash);)await de;let[R,N,U]=await I();R||this.markedFiles.add(N);let V=()=>this.refCountedZipFsCache.addOrCreate(N,()=>R?A():new _s(N,{baseFs:h,readOnly:!0})),ee,te=new ow(()=>Z5(()=>(ee=V(),ee.value),de=>`Failed to open the cache entry for ${hn(this.configuration,e)}: ${de}`),Y),ie=new Qh(N,{baseFs:te,pathUtils:Y}),ae=()=>{ee?.release()},ge=l.unstablePackages?.has(e.locatorHash)?null:U;return[ie,ae,ge]}},d0t=/^(?:(?<cacheKey>(?<cacheVersion>[0-9]+)(?<cacheSpec>.*))\/)?(?<hash>.*)$/});var RO,uCe=tt(()=>{RO=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(RO||{})});var g0t,DC,bV=tt(()=>{Mt();au();_p();Ea();g0t=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,s)=>`${r}#commit=${s}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",s,a)=>`https://${r}github.com/${s}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",s,a)=>`https://${r}github.com/${s}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>OF({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],DC=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let s=Y.join(e.cwd,Or Line truncated
`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,s){}async finalize(){this.errorCount>0&&(this.stdout.write(`
`),this.stdout.write(`${or(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command.
`),this.suggestInstall&&this.stdout.write(`${or(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help.
`))}formatNameWithHyperlink(r){return e7(r,{configuration:this.configuration,json:!1})}}});var PC,DV=tt(()=>{Ea();PC=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(QF(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,s){let a=s.project.storedResolutions.get(e.descriptorHash);if(a){let l=s.project.originalPackages.get(a);if(l)return[l]}let n=s.project.originalPackages.get(QF(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(l=>l.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let s=r.project.originalPackages.get(e.locatorHash);if(!s)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return s}}});function Zp(){}function m0t(t,e,r,s,a){for(var n=0,l=e.length,f=0,h=0;n<l;n++){var A=e[n];if(A.removed){if(A.value=t.join(s.slice(h,h+A.count)),h+=A.count,n&&e[n-1].added){var w=e[n-1];e[n-1]=e[n],e[n]=w}}else{if(!A.added&&a){var m=r.slice(f,f+A.count);m=m.map(function(D,I){var R=s[h+I];return R.length>D.length?R:D}),A.value=t.join(m)}else A.value=t.join(r.slice(f,f+A.count));f+=A.count,A.added||(h+=A.count)}}var B=e[l-1];return l>1&&typeof B.value=="string"&&(B.added||B.removed)&&t.equals("",B.value)&&(e[l-2].value+=B.value,e.pop()),e}function y0t(t){return{newPos:t.newPos,components:t.components.slice(0)}}function E0t(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function pCe(t,e,r){return r=E0t(r,{ignoreWhitespace:!0}),TV.diff(t,e,r)}function I0t(t,e,r){return QV.diff(t,e,r)}function TO(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?TO=function(e){return typeof e}:TO=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},TO(t)}function PV(t){return B0t(t)||v0t(t)||S0t(t)||b0t()}function B0t(t){if(Array.isArray(t))return xV(t)}function v0t(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function S0t(t,e){if(t){if(typeof t=="string")return xV(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return xV(t,e)}}function xV(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,s=new Array(e);r<e;r++)s[r]=t[r];return s}function b0t(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kV(t,e,r,s,a){e=e||[],r=r||[],s&&(t=s(a,t));var n;for(n=0;n<e.length;n+=1)if(e[n]===t)return r[n];var l;if(D0t.call(t)==="[object Array]"){for(e.push(t),l=new Array(t.length),r.push(l),n=0;n<t.length;n+=1)l[n]=kV(t[n],e,r,s,a);return e.pop(),r.pop(),l}if(t&&t.toJSON&&(t=t.toJSON()),TO(t)==="object"&&t!==null){e.push(t),l={},r.push(l);var f=[],h;for(h in t)t.hasOwnProperty(h)&&f.push(h);for(f.sort(),n=0;n<f.length;n+=1)h=f[n],l[h]=kV(t[h],e,r,s,h);e.pop(),r.pop()}else l=t;return l}function dCe(t,e,r,s,a,n,l){l||(l={}),typeof l.context>"u"&&(l.context=4);var f=I0t(r,s,l);if(!f)return;f.push({value:"",lines:[]});function h(U){return U.map(function(V){return" "+V})}for(var A=[],m=0,w=0,B=[],D=1,I=1,R=function(V){var ee=f[V],te=ee.lines||ee.value.replace(/\n$/,"").split(`
`);if(ee.lines=te,ee.added||ee.removed){var ie;if(!m){var ae=f[V-1];m=D,w=I,ae&&(B=l.context>0?h(ae.lines.slice(-l.context)):[],m-=B.length,w-=B.length)}(ie=B).push.apply(ie,PV(te.map(function(Ee){return(ee.added?"+":"-")+Ee}))),ee.added?I+=te.length:D+=te.length}else{if(m)if(te.length<=l.context*2&&V<f.length-2){var ge;(ge=B).push.apply(ge,PV(h(te)))}else{var de,De=Math.min(te.length,l.context);(de=B).push.apply(de,PV(h(te.slice(0,De))));var we={oldStart:m,oldLines:D-m+De,newStart:w,newLines:I-w+De,lines:B};if(V>=f.length-2&&te.length<=l.context){var d=/\n$/.test(r),be=/\n$/.test(s),Ce=te.length==0&&B.length>we.oldLines;!d&&Ce&&r.length>0&&B.splice(we.oldLines,0,"\\ No newline at end of file"),(!d&&!Ce||!be)&&B.push("\\ No newline at end of file")}A.push(we),m=0,w=0,B=[]}D+=te.length,I+=te.length}},N=0;N<f.length;N++)R(N);return{oldFileName:t,newFileName:e,oldHeader:a,newHeader:n,hunks:A}}var $er,hCe,ACe,TV,QV,w0t,C0t,D0t,uD,RV,FV=tt(()=>{Zp.prototype={diff:function(e,r){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=s.callback;typeof s=="function"&&(a=s,s={}),this.options=s;var n=this;function l(R){return a?(setTimeout(function(){a(void 0,R)},0),!0):R}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var f=r.length,h=e.length,A=1,m=f+h;s.maxEditLength&&(m=Math.min(m,s.maxEditLength));var w=[{newPos:-1,components:[]}],B=this.extractCommon(w[0],r,e,0);if(w[0].newPos+1>=f&&B+1>=h)return l([{value:this.join(r),count:r.length}]);function D(){for(var R=-1*A;R<=A;R+=2){var N=void 0,U=w[R-1],V=w[R+1],ee=(V?V.newPos:0)-R;U&&(w[R-1]=void 0);var te=U&&U.newPos+1<f,ie=V&&0<=ee&&ee<h;if(!te&&!ie){w[R]=void 0;continue}if(!te||ie&&U.newPos<V.newPos?(N=y0t(V),n.pushComponent(N.components,void 0,!0)):(N=U,N.newPos++,n.pushComponent(N.components,!0,void 0)),ee=n.extractCommon(N,r,e,R),N.newPos+1>=f&&ee+1>=h)return l(m0t(n,N.components,r,e,n.useLongestToken));w[R]=N}A++}if(a)(function R(){setTimeout(function(){if(A>m)return a();D()||R()},0)})();else for(;A<=m;){var I=D();if(I)return I}},pushComponent:function(e,r,s){var a=e[e.length-1];a&&a.added===r&&a.removed===s?e[e.length-1]={count:a.count+1,added:r,removed:s}:e.push({count:1,added:r,removed:s})},extractCommon:function(e,r,s,a){for(var n=r.length,l=s.length,f=e.newPos,h=f-a,A=0;f+1<n&&h+1<l&&this.equals(r[f+1],s[h+1]);)f++,h++,A++;return A&&e.components.push({count:A}),e.newPos=f,h},equals:function(e,r){return this.options.comparator?this.options.comparator(e,r):e===r||this.options.ignoreCase&&e.toLowerCase()===r.toLowerCase()},removeEmpty:function(e){for(var r=[],s=0;s<e.length;s++)e[s]&&r.push(e[s]);return r},castInput:function(e){return e},tokenize:function(e){return e.split("")},join:function(e){return e.join("")}};$er=new Zp;hCe=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,ACe=/\S/,TV=new Zp;TV.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!ACe.test(t)&&!ACe.test(e)};TV.tokenize=function(t){for(var e=t.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/),r=0;r<e.length-1;r++)!e[r+1]&&e[r+2]&&hCe.test(e[r])&&hCe.test(e[r+2])&&(e[r]+=e[r+2],e.splice(r+1,2),r--);return e};QV=new Zp;QV.tokenize=function(t){var e=[],r=t.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var s=0;s<r.length;s++){var a=r[s];s%2&&!this.options.newlineIsToken?e[e.length-1]+=a:(this.options.ignoreWhitespace&&(a=a.trim()),e.push(a))}return e};w0t=new Zp;w0t.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};C0t=new Zp;C0t.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};D0t=Object.prototype.toString,uD=new Zp;uD.useLongestToken=!0;uD.tokenize=QV.tokenize;uD.castInput=function(t){var e=this.options,r=e.undefinedReplacement,s=e.stringifyReplacer,a=s===void 0?function(n,l){return typeof l>"u"?r:l}:s;return typeof t=="string"?t:JSON.stringify(kV(t,null,null,a),a," ")};uD.equals=function(t,e){return Zp.prototype.equals.call(uD,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};RV=new Zp;RV.tokenize=function(t){return t.slice()};RV.join=RV.removeEmpty=function(t){return t}});var QO,gCe=tt(()=>{mu();QO=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,s){return this.resolver.bindDescriptor(e,r,s)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,s){throw new Zt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,s,a){throw new Zt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new Zt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfLine truncated
`;await fe.changeFilePromise(r,s,{automaticNewlines:!0}),this.manifest.raw=e}}});function Q0t({project:t,allDescriptors:e,allResolutions:r,allPackages:s,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:l=new Map,peerWarnings:f=[],peerRequirementNodes:h=new Map,volatileDescriptors:A=new Set}){let m=new Map,w=[],B=new Map,D=new Map,I=new Map,R=new Map,N=new Map,U=new Map(t.workspaces.map(ae=>{let ge=ae.anchoredLocator.locatorHash,de=s.get(ge);if(typeof de>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[ge,ZS(de)]})),V=()=>{let ae=fe.mktempSync(),ge=Y.join(ae,"stacktrace.log"),de=String(w.length+1).length,De=w.map((we,d)=>`${`${d+1}.`.padStart(de," ")} ${qc(we)}
`).join("");throw fe.writeFileSync(ge,De),fe.detachTemp(ae),new Zt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${me.fromPortablePath(ge)}`)},ee=ae=>{let ge=r.get(ae.descriptorHash);if(typeof ge>"u")throw new Error("Assertion failed: The resolution should have been registered");let de=s.get(ge);if(!de)throw new Error("Assertion failed: The package could not be found");return de},te=(ae,ge,de,{top:De,optional:we})=>{w.length>1e3&&V(),w.push(ge);let d=ie(ae,ge,de,{top:De,optional:we});return w.pop(),d},ie=(ae,ge,de,{top:De,optional:we})=>{if(we||n.delete(ge.locatorHash),a.has(ge.locatorHash))return;a.add(ge.locatorHash);let d=s.get(ge.locatorHash);if(!d)throw new Error(`Assertion failed: The package (${hn(t.configuration,ge)}) should have been registered`);let be=new Set,Ce=new Map,Ee=[],he=[],$=[],Pe=[];for(let Te of Array.from(d.dependencies.values())){if(d.peerDependencies.has(Te.identHash)&&d.locatorHash!==De)continue;if(Np(Te))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");A.delete(Te.descriptorHash);let ot=we;if(!ot){let Qe=d.dependenciesMeta.get(Qn(Te));if(typeof Qe<"u"){let ft=Qe.get(null);typeof ft<"u"&&ft.optional&&(ot=!0)}}let j=r.get(Te.descriptorHash);if(!j)throw new Error(`Assertion failed: The resolution (${xi(t.configuration,Te)}) should have been registered`);let rt=U.get(j)||s.get(j);if(!rt)throw new Error(`Assertion failed: The package (${j}, resolved from ${xi(t.configuration,Te)}) should have been registered`);if(rt.peerDependencies.size===0){te(Te,rt,new Map,{top:De,optional:ot});continue}let Ne,Fe,xe=new Set,He=new Map;Ee.push(()=>{Ne=N9(Te,ge.locatorHash),Fe=O9(rt,ge.locatorHash),d.dependencies.set(Te.identHash,Ne),r.set(Ne.descriptorHash,Fe.locatorHash),e.set(Ne.descriptorHash,Ne),s.set(Fe.locatorHash,Fe),Tp(R,Fe.locatorHash).add(Ne.descriptorHash),be.add(Fe.locatorHash)}),he.push(()=>{N.set(Fe.locatorHash,He);for(let Qe of Fe.peerDependencies.values()){let Me=Rl(Ce,Qe.identHash,()=>{let x=de.get(Qe.identHash)??null,C=d.dependencies.get(Qe.identHash);return!C&&$S(ge,Qe)&&(ae.identHash===ge.identHash?C=ae:(C=oi(ge,ae.range),e.set(C.descriptorHash,C),r.set(C.descriptorHash,ge.locatorHash),A.delete(C.descriptorHash),x=null)),C||(C=oi(Qe,"missing:")),{subject:ge,ident:Qe,provided:C,root:!x,requests:new Map,hash:`p${Os(ge.locatorHash,Qe.identHash).slice(0,6)}`}}).provided;if(Me.range==="missing:"&&Fe.dependencies.has(Qe.identHash)){Fe.peerDependencies.delete(Qe.identHash);continue}if(He.set(Qe.identHash,{requester:Fe,descriptor:Qe,meta:Fe.peerDependenciesMeta.get(Qn(Qe)),children:new Map}),Fe.dependencies.set(Qe.identHash,Me),Np(Me)){let x=r.get(Me.descriptorHash);Tp(I,x).add(Fe.locatorHash)}B.set(Me.identHash,Me),Me.range==="missing:"&&xe.add(Me.identHash)}Fe.dependencies=new Map(go(Fe.dependencies,([Qe,ft])=>Qn(ft)))}),$.push(()=>{if(!s.has(Fe.locatorHash))return;let Qe=m.get(rt.locatorHash);typeof Qe=="number"&&Qe>=2&&V();let ft=m.get(rt.locatorHash),Me=typeof ft<"u"?ft+1:1;m.set(rt.locatorHash,Me),te(Ne,Fe,He,{top:De,optional:ot}),m.set(rt.locatorHash,Me-1)}),Pe.push(()=>{let Qe=r.get(Ne.descriptorHash);if(typeof Qe>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let ft=N.get(Qe);if(typeof ft>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let Me of Ce.values()){let x=ft.get(Me.ident.identHash);x&&(Me.requests.set(Ne.descriptorHash,x),h.set(Me.hash,Me),Me.root||de.get(Me.ident.identHash)?.children.set(Ne.descriptorHash,x))}if(s.has(Fe.locatorHash))for(let Me of xe)Fe.dependencies.delete(Me)})}for(let Te of[...Ee,...he])Te();for(let Te of be){be.delete(Te);let ot=s.get(Te),j=Os(Ww(ot).locatorHash,...Array.from(ot.dependencies.values(),xe=>{let He=xe.range!=="missing:"?r.get(xe.descriptorHash):"missing:";if(typeof He>"u")throw new Error(`Assertion failed: Expected the resolution for ${xi(t.configuration,xe)} to have been registered`);return He===De?`${He} (top)`:He})),rt=D.get(j);if(typeof rt>"u"){D.set(j,ot);continue}let Ne=Tp(R,rt.locatorHash);for(let xe of R.get(ot.locatorHash)??[])r.set(xe,rt.locatorHash),Ne.add(xe);s.delete(ot.locatorHash),a.delete(ot.locatorHash),be.delete(ot.locatorHash);let Fe=I.get(ot.locatorHash);if(Fe!==void 0){let xe=Tp(I,rt.locatorHash);for(let He of Fe)xe.add(He),be.add(He)}}for(let Te of[...$,...Pe])Te()};for(let ae of t.workspaces){let ge=ae.anchoredLocator;A.delete(ae.anchoredDescriptor.descriptorHash),te(ae.anchoredDescriptor,ge,new Map,{top:ge.locatorHash,optional:!1})}for(let ae of h.values()){if(!ae.root)continue;let ge=s.get(ae.subject.locatorHash);if(typeof ge>"u")continue;for(let De of ae.requests.values()){let we=`p${Os(ae.subject.locatorHash,Qn(ae.ident),De.requester.locatorHash).slice(0,6)}`;l.set(we,{subject:ae.subject.locatorHash,requested:ae.ident,rootRequester:De.requester.locatorHash,allRequesters:Array.from(ib(De),d=>d.requester.locatorHash)})}let de=[...ib(ae)];if(ae.provided.rang Line truncated
${[w,B,D].join(`
`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=Y.join(this.cwd,Or.lockfile),r=this.configuration.get("defaultLanguageName");if(fe.existsSync(e)){let s=await fe.readFilePromise(e,"utf8");this.lockFileChecksum=ECe(s);let a=Fs(s);if(a.__metadata){let n=a.__metadata.version,l=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n<OO;for(let f of Object.keys(a)){if(f==="__metadata")continue;let h=a[f];if(typeof h.resolution>"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${f})`);let A=Op(h.resolution,!0),m=new nr;m.load(h,{yamlCompatibilityMode:!0});let w=m.version,B=m.languageName||r,D=h.linkType.toUpperCase(),I=h.conditions??null,R=m.dependencies,N=m.peerDependencies,U=m.dependenciesMeta,V=m.peerDependenciesMeta,ee=m.bin;if(h.checksum!=null){let ie=typeof l<"u"&&!h.checksum.includes("/")?`${l}/${h.checksum}`:h.checksum;this.storedChecksums.set(A.locatorHash,ie)}let te={...A,version:w,languageName:B,linkType:D,conditions:I,dependencies:R,peerDependencies:N,dependenciesMeta:U,peerDependenciesMeta:V,bin:ee};this.originalPackages.set(te.locatorHash,te);for(let ie of f.split(x0t)){let ae=q0(ie);n<=6&&(ae=this.configuration.normalizeDependency(ae),ae=oi(ae,ae.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(ae.descriptorHash,ae),this.storedResolutions.set(ae.descriptorHash,A.locatorHash)}}}else s.includes("yarn lockfile v1")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,NO.default)(4),s=async(a,n)=>{if(e.has(n))return a;e.add(n);let l=new xC(n,{project:this});await r(()=>l.setup());let f=a.then(()=>{this.addWorkspace(l)});return Array.from(l.workspacesCwds).reduce(s,f)};await s(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.anchoredLocator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${vs(this.configuration,e.anchoredLocator)}: ${me.fromPortablePath(e.cwd)} conflicts with ${me.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.anchoredLocator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){Y.isAbsolute(e)||(e=Y.resolve(this.cwd,e)),e=Y.normalize(e).replace(/\/+$/,"")||Rt.root;let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let s of this.workspaces)Y.relative(s.cwd,e).startsWith("../")||r&&r.cwd.length>=s.cwd.length||(r=s);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${vs(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(Gi.protocol)){let s=e.range.slice(Gi.protocol.length);if(s!=="^"&&s!=="~"&&s!=="*"&&!Vc(s))return this.tryWorkspaceByCwd(s)}let r=this.tryWorkspaceByIdent(e);return r===null||(Np(e)&&(e=XS(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${xi(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(kf(e)&&(e=Ww(e)),r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${hn(this.configuration,e)})`);return r}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof r<"u"&&!s.has(r)&&this.deleteLocator(r)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[r,s]of this.storedResolutions)s===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[s,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(s)}for(let s of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(s,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(s.locatorHash);let n=r.get(s.locatorHash);if(n){r.delete(s.locatorHash);for(let l of n)this.deleteDescriptor(l)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,s]of e.dependencies)NLine truncated
`;switch(rt.type){case 0:Ne+=`# Script name: ${rt.script}
`;break;case 1:Ne+=`# Script code: ${rt.script}
`;break}let Fe=null;if(!await fe.mktempPromise(async He=>{let Qe=Y.join(He,"build.log"),{stdout:ft,stderr:Me}=this.configuration.getSubprocessStreams(Qe,{header:Ne,prefix:hn(this.configuration,$),report:r}),x;try{switch(rt.type){case 0:x=await GN($,rt.script,[],{cwd:j,project:this,stdin:Fe,stdout:ft,stderr:Me});break;case 1:x=await t7($,rt.script,[],{cwd:j,project:this,stdin:Fe,stdout:ft,stderr:Me});break}}catch(E){Me.write(E.stack),x=1}if(ft.end(),Me.end(),x===0)return!0;fe.detachTemp(He);let C=`${hn(this.configuration,$)} couldn't be built successfully (exit code ${or(this.configuration,x,Ct.NUMBER)}, logs can be found here: ${or(this.configuration,Qe,Ct.PATH)})`,P=this.optionalBuilds.has($.locatorHash);return P?r.reportInfo(9,C):r.reportError(9,C),PIe&&r.reportFold(me.fromPortablePath(Qe),fe.readFileSync(Qe,"utf8")),P}))return!1}return!0});Ee.push(...ot,Promise.allSettled(ot).then(j=>{te.delete(he),j.every(rt=>rt.status==="fulfilled"&&rt.value===!0)&&we.set($.locatorHash,Te)}))}if(await bf(Ee),Ce===te.size){let he=Array.from(te).map($=>{let Pe=this.storedPackages.get($);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return hn(this.configuration,Pe)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${he})`);break}}this.storedBuildState=we,this.skippedBuilds=N}async installWithNewReport(e,r){return(await Wt.start({configuration:this.configuration,json:e.json,stdout:e.stdout,forceSectionAlignment:!0,includeLogs:!e.json&&!e.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(e){let r=this.configuration.get("nodeLinker");$e.telemetry?.reportInstall(r);let s=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{this.configuration.get("enableOfflineMode")&&e.report.reportWarning(90,"Offline work is enabled; Yarn won't fetch packages from the remote registry if it can avoid it"),await this.configuration.triggerHook(m=>m.validateProject,this,{reportWarning:(m,w)=>{e.report.reportWarning(m,w)},reportError:(m,w)=>{e.report.reportError(m,w),s=!0}})}),s)return;let a=await this.configuration.getPackageExtensions();for(let m of a.values())for(let[,w]of m)for(let B of w)B.status="inactive";let n=Y.join(this.cwd,Or.lockfile),l=null;if(e.immutable)try{l=await fe.readFilePromise(n,"utf8")}catch(m){throw m.code==="ENOENT"?new Zt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):m}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{N0t(this,e.report);for(let[,m]of a)for(let[,w]of m)for(let B of w)if(B.userProvided){let D=or(this.configuration,B,Ct.PACKAGE_EXTENSION);switch(B.status){case"inactive":e.report.reportWarning(68,`${D}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${D}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(l!==null){let m=ty(l,this.generateLockfile());if(m!==l){let w=dCe(n,n,l,m,void 0,void 0,{maxEditLength:100});if(w){e.report.reportSeparator();for(let B of w.hunks){e.report.reportInfo(null,`@@ -${B.oldStart},${B.oldLines} +${B.newStart},${B.newLines} @@`);for(let D of B.lines)D.startsWith("+")?e.report.reportError(28,or(this.configuration,D,Ct.ADDED)):D.startsWith("-")?e.report.reportError(28,or(this.configuration,D,Ct.REMOVED)):e.report.reportInfo(null,or(this.configuration,D,"grey"))}e.report.reportSeparator()}throw new Zt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let m of a.values())for(let[,w]of m)for(let B of w)B.userProvided&&B.status==="active"&&$e.telemetry?.reportPackageExtension(Cy(B,Ct.PACKAGE_EXTENSION));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e)});let f=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],h=await Promise.all(f.map(async m=>TF(m,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${or(this.configuration,"mode=update-lockfile",Ct.CODE)}`);return}await this.linkEverything(e);let m=await Promise.all(f.map(async w=>TF(w,{cwd:this.cwd})));for(let w=0;w<f.length;++w)h[w]!==m[w]&&e.report.reportError(64,`The checksum for ${f[w]} has been modified by this install, which is explicitly forbidden.`)}),await this.persistInstallStateFile();let A=!1;await e.report.startTimerPromise("Post-install validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(m=>m.validateProjectAfterInstall,this,{reportWarning:(m,w)=>{e.report.r Line truncated
`,`# Manual changes might be lost - proceed with caution!
`].join("")}
`+Uc(r)}async persistLockfile(){let e=Y.join(this.cwd,Or.lockfile),r="";try{r=await fe.readFilePromise(e,"utf8")}catch{}let s=this.generateLockfile(),a=ty(r,s);a!==r&&(await fe.writeFilePromise(e,a),this.lockFileChecksum=ECe(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let l of Object.values(LV))e.push(...l);let r=Iy(this,e),s=_V.default.serialize(r),a=Os(s);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await fe.mkdirPromise(Y.dirname(n),{recursive:!0}),await fe.writeFilePromise(n,await R0t(s)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:s=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let l=await T0t(await fe.readFilePromise(a));n=_V.default.deserialize(l),this.installStateChecksum=Os(l)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),s&&Object.assign(this,Iy(n,LV.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,Iy(n,LV.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new rs}),await this.persistInstallStateFile()}async persist(){let e=(0,NO.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let s=new Set([".gitignore"]);if(!X9(e.cwd,this.cwd)||!await fe.existsPromise(e.cwd))return null;let a=[];for(let l of await fe.readdirPromise(e.cwd)){if(s.has(l))continue;let f=Y.resolve(e.cwd,l);e.markedFiles.has(f)||(e.immutable?r.reportError(56,`${or(this.configuration,Y.basename(f),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(fe.lstatPromise(f).then(async h=>(await fe.removePromise(f),h.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((l,f)=>l+f,0)}}}});function O0t(t){let s=Math.floor(t.timeNow/864e5),a=t.updateInterval*864e5,n=t.state.lastUpdate??t.timeNow+a+Math.floor(a*t.randomInitialInterval),l=n+a,f=t.state.lastTips??s*864e5,h=f+864e5+8*36e5-t.timeZone,A=l<=t.timeNow,m=h<=t.timeNow,w=null;return(A||m||!t.state.lastUpdate||!t.state.lastTips)&&(w={},w.lastUpdate=A?t.timeNow:n,w.lastTips=f,w.blocks=A?{}:t.state.blocks,w.displayedTips=t.state.displayedTips),{nextState:w,triggerUpdate:A,triggerTips:m,nextTips:m?s*864e5:f}}var kC,CCe=tt(()=>{Mt();Qb();G0();EN();Au();_p();kC=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=e;let s=this.getRegistryPath();this.isNew=!fe.existsSync(s),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(e){let r=new Set(this.displayedTips),s=f=>f&&Fn?Wh(Fn,f):!1,a=e.map((f,h)=>h).filter(f=>e[f]&&s(e[f]?.selector));if(a.length===0)return null;let n=a.filter(f=>!r.has(f));if(n.length===0){let f=Math.floor(a.length*.2);this.displayedTips=f>0?this.displayedTips.slice(-f):[],n=a.filter(h=>!r.has(h))}let l=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(l),this.commitTips(),e[l]}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"<none>")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,r){Tp(this.values,e).add(r)}reportEnumerator(e,r){Tp(this.enumerators,e).add(Os(r))}reportHit(e,r="*"){let s=J5(this.hits,e),a=Rl(s,r,()=>0);s.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return Y.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),s;try{s=fe.readJsonSync(r)}catch{s={}}let{nextState:a,triggerUpdate:n,triggerTips:l,nextTips:f}=O0t({state:s,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=f,this.displayedTips=s.displayedTips??[],a!==null)try{fe.mkdirSync(Y.dirname(r),{recursive:!0}),fe.writeJsonSync(r,a)}catch{return!1}if(l&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),n){let h=s.blocks??{};if(Object.keys(h).length===0){let A=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,m=w=>yq(A,w,{configuration:this.configuration}).catch(()=>{});for(let[w,B]of Object.entries(s.blocks??{})){if(Object.keys(B).length===0)continue;let D=B;D Line truncated
`),A=l.length;for(A>0&&l.includes("unstyle")&&(l=[...new Set(["unstyle",...l])].reverse());A-- >0;)f=r(t.styles[l[A]],f,h);return f},a=(n,l,f)=>{t.styles[n]=e({name:n,codes:l}),(t.keys[f]||(t.keys[f]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(A){t.alias(n,A)},get(){let A=m=>s(m,A.stack);return Reflect.setPrototypeOf(A,t),A.stack=this.stack?this.stack.concat(n):[n],A}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=H0t,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,l)=>{let f=typeof l=="string"?t[l]:l;if(typeof f!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");f.stack||(Reflect.defineProperty(f,"name",{value:n}),t.styles[n]=f,f.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=A=>s(A,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(f.stack):f.stack,h}})},t.theme=n=>{if(!U0t(n))throw new TypeError("Expected theme to be an object");for(let l of Object.keys(n))t.alias(l,n[l]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=PCe(),t.define=a,t};jV.exports=xCe();jV.exports.create=xCe});var va=H(On=>{"use strict";var j0t=Object.prototype.toString,vu=Mf(),kCe=!1,GV=[],RCe={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};On.longest=(t,e)=>t.reduce((r,s)=>Math.max(r,e?s[e].length:s.length),0);On.hasColor=t=>!!t&&vu.hasColor(t);var MO=On.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);On.nativeType=t=>j0t.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");On.isAsyncFn=t=>On.nativeType(t)==="asyncfunction";On.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";On.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;On.scrollDown=(t=[])=>[...t.slice(1),t[0]];On.scrollUp=(t=[])=>[t.pop(),...t];On.reorder=(t=[])=>{let e=t.slice();return e.sort((r,s)=>r.index>s.index?1:r.index<s.index?-1:0),e};On.swap=(t,e,r)=>{let s=t.length,a=r===s?0:r<0?s-1:r,n=t[e];t[e]=t[a],t[a]=n};On.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};On.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};On.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:s=`
`+r,width:a=80}=e,n=(s+r).match(/[^\S\n]/g)||[];a-=n.length;let l=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,f=t.trim(),h=new RegExp(l,"g"),A=f.match(h)||[];return A=A.map(m=>m.replace(/\n$/,"")),e.padEnd&&(A=A.map(m=>m.padEnd(a," "))),e.padStart&&(A=A.map(m=>m.padStart(a," "))),r+A.join(s)};On.unmute=t=>{let e=t.stack.find(s=>vu.keys.color.includes(s));return e?vu[e]:t.stack.find(s=>s.slice(2)==="bg")?vu[e.slice(2)]:s=>s};On.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";On.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(s=>vu.keys.color.includes(s));if(e){let s=vu["bg"+On.pascal(e)];return s?s.black:t}let r=t.stack.find(s=>s.slice(0,2)==="bg");return r?vu[r.slice(2).toLowerCase()]||t:vu.none};On.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(s=>vu.keys.color.includes(s)),r=t.stack.find(s=>s.slice(0,2)==="bg");if(e&&!r)return vu[RCe[e]||e];if(r){let s=r.slice(2).toLowerCase(),a=RCe[s];return a&&vu["bg"+On.pascal(a)]||t}return vu.none};On.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),s=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+s};On.set=(t={},e="",r)=>e.split(".").reduce((s,a,n,l)=>{let f=l.length-1>n?s[a]||{}:r;return!On.isObject(f)&&n<l.length-1&&(f={}),s[a]=f},t);On.get=(t={},e="",r)=>{let s=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return s??r};On.mixin=(t,e)=>{if(!MO(t))return e;if(!MO(e))return t;for(let r of Object.keys(e)){let s=Object.getOwnPropertyDescriptor(e,r);if(s.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&MO(s.value)){let a=Object.getOwnPropertyDescriptor(t,r);MO(a.value)?t[r]=On.merge({},t[r],e[r]):Reflect.defineProperty(t,r,s)}else Reflect.defineProperty(t,r,s);else Reflect.defineProperty(t,r,s)}return t};On.merge=(...t)=>{let e={};for(let r of t)On.mixin(e,r);return e};On.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let s of Object.keys(r)){let a=r[s];typeof a=="function"?On.define(t,s,a.bind(e)):On.define(t,s,a)}};On.onExit=t=>{let e=(r,s)=>{kCe||(kCe=!0,GV.forEach(a=>a()),r===!0&&process.exit(128+s))};GV.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),GV.push(t)};On.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};On.defineExport=(t,e,r)=>{let s;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){s=a},get(){return s?s():r()}})}});var TCe=H(FC=>{"use strict";FC.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};FC.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};FC.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};FC.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};FC.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var NCe=H((krr,FCe)=>{"use strict";var QCe=Ae("readline"),G0t=TCe(),q0t=/^(?:\x1b)([a-zA-Z0-9])$/,V0t=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,W0t={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function Y0t(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function K0t(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var UO=(t="",e={})=>{let r,s={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=s.sequence||""),s.sequence=s.sequence||t||s.name,t==="\r")s.raw=void 0,s.name="return";else if(t===`
`)s.name="enter";else if(t===" ")s.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")s.name="backspace",s.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")s.name="escape",s.meta=t.length===2;else if(t===" "||t==="\x1B ")s.name="space",s.meta=t.length===2;else if(t<="")s.name=String.fromCharCode(t.charCodeAt(0)+97-1),s.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")s.name="number";else if(t.length===1&&t>="a"&&t<="z")s.name=t;else if(t.length===1&&t>="A"&&t<="Z")s.name=t.toLowerCase(),s.shift=!0;else if(r=q0t.exec(t))s.meta=!0,s.shift=/^[A-Z]$/.test(r[1]);else if(r=V0t.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(s.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),l=(r[3]||r[5]||1)-1;s.ctrl=!!(l&4),s.meta=!!(l&10),s.shift=!!(l&1),s.code=n,s.name=W0t[n],s.shift=Y0t(n)||s.shift,s.ctrl=K0t(n)||s.ctrl}return s};UO.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let s=QCe.createInterface({terminal:!0,input:r});QCe.emitKeypressEvents(r,s);let a=(f,h)=>e(f,UO(f,h),s),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),s.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),s.pause(),s.close()}};UO.action=(t,e,r)=>{let s={...G0t,...r};return e.ctrl?(e.action=s.ctrl[e.name],e):e.option&&s.option?(e.action=s.option[e.name],e):e.shift?(e.action=s.shift[e.name],e):(e.action=s.keys[e.name],e)};FCe.exports=UO});var LCe=H((Rrr,OCe)=>{"use strict";OCe.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(e)for(let r of Object.keys(e)){let s=e[r];typeof s=="number"&&(s={interval:s}),z0t(t,r,s)}};function z0t(t,e,r={}){let s=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;s.frames=r.frames||[],s.loading=!0;let n=setInterval(()=>{s.ms=Date.now()-s.start,s.tick++,t.render()},a);return s.stop=()=>{s.loading=!1,clearInterval(n)},Reflect.defineProperty(s,"interval",{value:n}),t.once("close",()=>s.stop()),s.stop}});var MCe=H((Trr,_Ce)=>{"use strict";var{define:J0t,width:Z0t}=va(),qV=class{constructor(e){let r=e.options;J0t(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=Z0t(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};_Ce.exports=qV});var HCe=H((Qrr,UCe)=>{"use strict";var VV=va(),qo=Mf(),WV={default:qo.noop,noop:qo.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||VV.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||VV.complement(this.primary)},primary:qo.cyan,success:qo.green,danger:qo.magenta,strong:qo.bold,warning:qo.yellow,muted:qo.dim,disabled:qo.gray,dark:qo.dim.gray,underline:qo.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};WV.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(qo.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(qo.visible=t.styles.visible);let e=VV.merge({},WV,t.styles);delete e.merge;for(let r of Object.keys(qo))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>qo[r]});for(let r of Object.keys(qo.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>qo[r]});return e};UCe.exports=WV});var GCe=H((Frr,jCe)=>{"use strict";var YV=process.platform==="win32",Xp=Mf(),X0t=va(),KV={...Xp.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301", Line truncated
`),A=h[0],m=h[h.length-1],B=(s+(r?" "+r:"")).length,D=B<A.length?A.slice(B+1):"";return{header:l,prompt:A,after:D,rest:h.slice(1),last:m}}async submit(){this.state.submitted=!0,this.state.validating=!0,this.options.onSubmit&&await this.options.onSubmit.call(this,this.name,this.value,this);let e=this.state.error||await this.validate(this.value,this.state);if(e!==!0){let r=`
`+this.symbols.pointer+" ";typeof e=="string"?r+=e.trim():r+="Invalid input",this.state.error=`
`+this.styles.danger(r),this.state.submitted=!1,await this.render(),await this.alert(),this.state.validating=!1,this.state.error=void 0;return}this.state.validating=!1,await this.render(),await this.close(),this.value=await this.result(this.value),this.emit("submit",this.value)}async cancel(e){this.state.cancelled=this.state.submitted=!0,await this.render(),await this.close(),typeof this.options.onCancel=="function"&&await this.options.onCancel.call(this,this.name,this.value,this),this.emit("cancel",await this.error(e))}async close(){this.state.closed=!0;try{let e=this.sections(),r=Math.ceil(e.prompt.length/this.width);e.rest&&this.write($y.cursor.down(e.rest.length)),this.write(`
`.repeat(r))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=XV.listen(this,this.keypress.bind(this)),this.once("close",this.stop))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:e,options:r,result:s}=this;if(this.format=()=>e.call(this,this.value),this.result=()=>s.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,s){let{options:a,state:n,symbols:l,timers:f}=this,h=f&&f[e];n.timer=h;let A=a[e]||n[e]||l[e],m=r&&r[e]!=null?r[e]:await A;if(m==="")return m;let w=await this.resolve(m,n,r,s);return!w&&r&&r[e]?this.resolve(A,n,r,s):w}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,s=this.state;return s.timer=r,Kc.isObject(e)&&(e=e[s.status]||e.pending),Kc.hasColor(e)?e:(this.styles[s.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Kc.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,s=this.state;s.timer=r;let a=e[s.status]||e.pending||s.separator,n=await this.resolve(a,s);return Kc.isObject(n)&&(n=n[s.status]||n.pending),Kc.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let s=await this.element("pointer",e,r);if(typeof s=="string"&&Kc.hasColor(s))return s;if(s){let a=this.styles,n=this.index===r,l=n?a.primary:A=>A,f=await this.resolve(s[n?"on":"off"]||s,this.state),h=Kc.hasColor(f)?f:l(f);return n?h:" ".repeat(f.length)}}async indicator(e,r){let s=await this.element("indicator",e,r);if(typeof s=="string"&&Kc.hasColor(s))return s;if(s){let a=this.styles,n=e.enabled===!0,l=n?a.success:a.dark,f=s[n?"on":"off"]||s;return Kc.hasColor(f)?f:l(f)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Kc.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return Kc.resolve(this,e,...r)}get base(){return t.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Kc.height(this.stdout,25)}get width(){return this.options.columns||Kc.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,s=[r,e].find(this.isValue.bind(this));return this.isValue(s)?s:this.initial}static get prompt(){return e=>new this(e).run()}};function agt(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],s=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?s.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function cgt(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?`
`:" ",s=[];for(let a=0;a<4;a++){let n=r(a);e[a]?s.push(n.repeat(e[a])):s.push("")}return s}XCe.exports=$V});var t1e=H((Lrr,e1e)=>{"use strict";var lgt=va(),$Ce={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return $Ce.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};e1e.exports=(t,e={})=>{let r=lgt.merge({},$Ce,e.roles);return r[t]||r.default}});var pD=H((_rr,i1e)=>{"use strict";var ugt=Mf(),fgt=NC(),hgt=t1e(),HO=va(),{reorder:eW,scrollUp:Agt,scrollDown:pgt,isObject:r1e,swap:dgt}=HO,tW=class extends fgt{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:s,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");r1e(r)&&(r=Object.keys(r)),Array.isArray(r)?(s!=null&&(this.index=this.findIndex(s)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(s!=null&&(r=s),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let s=[],a=0,n=async(l,f)=>{typeof l=="function"&&(l=await l.call(this)),l instanceof Promise&&(l=await l);for(let h=0;h<l.length;h++){let A=l[h]=await this.toChoice(l[h],a++,f);s.push(A),A.choices&&await n(A.choices,A)}return s};return n(e,r).then(l=>(this.state.loadingChoices=!1,l))}async toChoice(e,r,s){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=hgt(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,HO.define(e,"parent",s),e.level=s?s.level+1:1,e.indent==null&&(e.indent=s?s.indent+" ":e.indent||""),e.path=s?s.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,ugt.unstyle(e.message).length));let l={...e};return e.reset=(f=l.input,h=l.value)=>{for(let A of Object.keys(l))e[A]=l[A];e.input=f,e.value=h},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,s){let a=await this.toChoice(e,r,s);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,s){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,s);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelected<this.choices.length)return this.alert();let e=this.selectable.every(r=>r.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e. Line truncated
`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,s].filter(Boolean).join(`
`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,s="",a=await this.header(),n=await this.prefix(),l=await this.separator(),f=await this.message();this.options.promptLine!==!1&&(s=[n,f,l,""].join(" "),this.state.prompt=s);let h=await this.format(),A=await this.error()||await this.hint(),m=await this.renderChoices(),w=await this.footer();h&&(s+=h),A&&!s.includes(A)&&(s+=" "+A),e&&!h&&!m.trim()&&this.multiple&&this.emptyError!=null&&(s+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,s,m,w].filter(Boolean).join(`
`)),this.write(this.margin[2]),this.restore()}};s1e.exports=nW});var a1e=H((Urr,o1e)=>{"use strict";var mgt=hg(),ygt=(t,e)=>{let r=t.toLowerCase();return s=>{let n=s.toLowerCase().indexOf(r),l=e(s.slice(n,n+r.length));return n>=0?s.slice(0,n)+l+s.slice(n+r.length):s}},iW=class extends mgt{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:s}=this.state;return this.input=s.slice(0,r)+e+s.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let s=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(s))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=ygt(this.input,e),s=this.choices;this.choices=s.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=s}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};o1e.exports=iW});var oW=H((Hrr,c1e)=>{"use strict";var sW=va();c1e.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:s="",pos:a,showCursor:n=!0,color:l}=e,f=l||t.styles.placeholder,h=sW.inverse(t.styles.primary),A=R=>h(t.styles.black(R)),m=r,w=" ",B=A(w);if(t.blink&&t.blink.off===!0&&(A=R=>R,B=""),n&&a===0&&s===""&&r==="")return A(w);if(n&&a===0&&(r===s||r===""))return A(s[0])+f(s.slice(1));s=sW.isPrimitive(s)?`${s}`:"",r=sW.isPrimitive(r)?`${r}`:"";let D=s&&s.startsWith(r)&&s!==r,I=D?A(s[r.length]):B;if(a!==r.length&&n===!0&&(m=r.slice(0,a)+A(r[a])+r.slice(a+1),I=""),n===!1&&(I=""),D){let R=t.styles.unstyle(m+I);return m+I+f(s.slice(R.length))}return m+I}});var jO=H((jrr,l1e)=>{"use strict";var Egt=Mf(),Igt=hg(),wgt=oW(),aW=class extends Igt{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:s,input:a}=r;return r.value=r.input=a.slice(0,s)+e+a.slice(s),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:s}=e;return e.value=e.input=s.slice(0,r-1)+s.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:s}=e;if(s[r]===void 0)return this.alert();let a=`${s}`.slice(0,r)+`${s}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:s}=e;return r&&r.startsWith(s)&&s!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let s=await this.resolve(e.separator,this.state,e,r)||":";return s?" "+this.styles.disabled(s):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:s,styles:a}=this,{cursor:n,initial:l="",name:f,hint:h,input:A=""}=e,{muted:m,submitted:w,primary:B,danger:D}=a,I=h,R=this.index===r,N=e.validate||(()=>!0),U=await this.choiceSeparator(e,r),V=e.message;this.align==="right"&&(V=V.padStart(this.longest+1," ")),this.align==="left"&&(V=V.padEnd(this.longest+1," "));let ee=this.values[f]=A||l,te=A?"success":"dark";await N.call(e,ee,thi Line truncated
`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};d1e.exports=lW});var m1e=H((Wrr,g1e)=>{"use strict";var xgt=GO(),uW=class extends xgt{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};g1e.exports=uW});var E1e=H((Yrr,y1e)=>{"use strict";var kgt=hg(),Rgt=jO(),OC=Rgt.prototype,fW=class extends kgt{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let s=this.focused,a=s.parent||{};return!s.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():OC.dispatch.call(this,e,r)}append(e,r){return OC.append.call(this,e,r)}delete(e,r){return OC.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?OC.next.call(this):super.next()}prev(){return this.focused.editable?OC.prev.call(this):super.prev()}async indicator(e,r){let s=e.indicator||"",a=e.editable?s:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?OC.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let s=r.parent?this.value[r.parent.name]:this.value;if(r.editable?s=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(s=r.enabled===!0),e=await r.validate(s,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};y1e.exports=fW});var eE=H((Krr,I1e)=>{"use strict";var Tgt=NC(),Qgt=oW(),{isPrimitive:Fgt}=va(),hW=class extends Tgt{constructor(e){super(e),this.initial=Fgt(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let s=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!s||s.name!=="return")?this.append(`
`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:s}=this.state;this.input=`${s}`.slice(0,r)+e+`${s}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),s=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=s,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):Qgt(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),s=await this.separator(),a=await this.message(),n=[r,a,s].filter(Boolean).join(" ");this.state.prompt=n;let l=await this.header(),f=await this.format(),h=await this.error()||await this.hint(),A=await this.footer();h&&!f.includes(h)&&(f+=" "+h),n+=" "+f,this.clear(e),this.write([l,n,A].filter(Boolean).join(`
`)),this.restore()}};I1e.exports=hW});var C1e=H((zrr,w1e)=>{"use strict";var Ngt=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),qO=t=>Ngt(t).filter(Boolean);w1e.exports=(t,e={},r="")=>{let{past:s=[],present:a=""}=e,n,l;switch(t){case"prev":case"undo":return n=s.slice(0,s.length-1),l=s[s.length-1]||"",{past:qO([r,...n]),present:l};case"next":case"redo":return n=s.slice(1),l=s[0]||"",{past:qO([...n,r]),present:l};case"save":return{past:qO([...s,r]),present:""};case"remove":return l=qO(s.filter(f=>f!==r)),a="",l.length&&(a=l.pop()),{past:l,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var pW=H((Jrr,v1e)=>{"use strict";var Ogt=eE(),B1e=C1e(),AW=class extends Ogt{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let s=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:s},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=B1e(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=B1e("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};v1e.exports=AW});var b1e=H((Zrr,S1e)=>{"use strict";var Lgt=eE(),dW=class extends Lgt{format(){return""}};S1e.exports=dW});var P1e=H((Xrr,D1e)=>{"use strict";var _gt=eE(),gW=class extends _gt{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};D1e.exports=gW});var k1e=H(($rr,x1e)=>{"use strict";var Mgt=hg(),mW=class extends Mgt{constructor(e){super({...e,multiple:!0})}};x1e.exports=mW});var EW=H((enr,R1e)=>{"use strict";var Ugt=eE(),yW=class extends Ugt{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,s=this.toNumber(this.input);return s>this.max+r?this.alert():(this.input=`${s+r}`,this.render())}down(e){let r=e||this.minor,s=this.toNumber(this.input);return s<this.min-r?this.alert():(this.input=`${s-r}`,this.render())}shiftDown(){return this.down(this.major)}shiftUp(){return this.up(this.major)}format(e=this.input){return typeof this.options.format=="function"?this.options.format.call(this,e):this.styles.info(e)}toNumber(e=""){return this.float?+e:Math.round(+e)}isValue(e){return/^[-+]?[0-9]+((\.)|(\.[0-9]+))?$/.test(e)}submit(){let e=[this.input,this.initial].find(r=>this.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};R1e.exports=yW});var Q1e=H((tnr,T1e)=>{T1e.exports=EW()});var N1e=H((rnr,F1e)=>{"use strict";var Hgt=eE(),IW=class extends Hgt{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};F1e.exports=IW});var _1e=H((nnr,L1e)=>{"use strict";var jgt=Mf(),Ggt=pD(),O1e=va(),wW=class extends Ggt{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||`
`;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((s,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let s=0;s<this.scale.length;s++)r.scale.push({index:s})}this.widths[0]=Math.min(this.widths[0],e+3)}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}heading(e,r,s){return this.styles.strong(e)}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIndex>=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(s=>` ${s.name} - ${s.message}`)].map(s=>this.styles.muted(s)).join(`
`)}renderScaleHeading(e){let r=this.scale.map(h=>h.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let s=this.scaleLength-r.join("").length,a=Math.round(s/(r.length-1)),l=r.map(h=>this.styles.strong(h)).join(" ".repeat(a)),f=" ".repeat(this.widths[0]);return this.margin[3]+f+this.margin[1]+l}scaleIndicator(e,r,s){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,s);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let s=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return s.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let s=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!O1e.hasColor(n)&&(n=this.styles.muted(n));let l=I=>this.margin[3]+I.replace(/\s+$/,"").padEnd(this.widths[0]," "),f=this.newline,h=this.indent(e),A=await this.resolve(e.message,this.state,e,r),m=await this.renderScale(e,r),w=this.margin[1]+this.margin[3];this.scaleLength=jgt.unstyle(m).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-w.length);let D=O1e.wordWrap(A,{width:this.widths[0],newline:f}).split(`
`).map(I=>l(I)+this.margin[1]);return s&&(m=this.styles.info(m),D=D.map(I=>this.styles.info(I))),D[0]+=m,this.linebreak&&D.push(""),[h+a,D.join(`
`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),s=await this.renderScaleHeading();return this.margin[0]+[s,...r.map(a=>a.join(" "))].join(`
`)}async render(){let{submitted:e,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),l="";this.options.promptLine!==!1&&(l=[s,n,a,""].join(" "),this.state.prompt=l);let f=await this.header(),h=await this.format(),A=await this.renderScaleKey(),m=await this.error()||await this.hint(),w=await this.renderChoices(),B=await this.footer(),D=this.emptyError;h&&(l+=h),m&&!l.includes(m)&&(l+=" "+m),e&&!h&&!w.trim()&&this.multiple&&D!=null&&(l+=this.styles.danger(D)),this.clear(r),this.write([f,l,A,w,B].filter(Boolean).join(`
`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};L1e.exports=wW});var H1e=H((inr,U1e)=>{"use strict";var M1e=Mf(),qgt=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",BW=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=qgt(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Vgt=async(t={},e={},r=s=>s)=>{let s=new Set,a=t.fields||[],n=t.template,l=[],f=[],h=[],A=1;typeof n=="function"&&(n=await n());let m=-1,w=()=>n[++m],B=()=>n[m+1],D=I=>{I.line=A,l.push(I)};for(D({type:"bos",value:""});m<n.length-1;){let I=w();if(/^[^\S\n ]$/.test(I)){D({type:"text",value:I});continue}if(I===`
`){D({type:"newline",value:I}),A++;continue}if(I==="\\"){I+=w(),D({type:"text",value:I});continue}if((I==="$"||I==="#"||I==="{")&&B()==="{"){let N=w();I+=N;let U={type:"template",open:I,inner:"",close:"",value:I},V;for(;V=w();){if(V==="}"){B()==="}"&&(V+=w()),U.value+=V,U.close=V;break}V===":"?(U.initial="",U.key=U.inner):U.initial!==void 0&&(U.initial+=V),U.value+=V,U.inner+=V}U.template=U.open+(U.initial||U.inner)+U.close,U.key=U.key||U.inner,e.hasOwnProperty(U.key)&&(U.initial=e[U.key]),U=r(U),D(U),h.push(U.key),s.add(U.key);let ee=f.find(te=>te.name===U.key);U.field=a.find(te=>te.name===U.key),ee||(ee=new BW(U),f.push(ee)),ee.lines.push(U.line-1);continue}let R=l[l.length-1];R.type==="text"&&R.line===A?R.value+=I:D({type:"text",value:I})}return D({type:"eos",value:""}),{input:n,tabstops:l,unique:s,keys:h,items:f}};U1e.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),s={...e.values,...e.initial},{tabstops:a,items:n,keys:l}=await Vgt(e,s),f=CW("result",t,e),h=CW("format",t,e),A=CW("validate",t,e,!0),m=t.isValue.bind(t);return async(w={},B=!1)=>{let D=0;w.required=r,w.items=n,w.keys=l,w.output="";let I=async(V,ee,te,ie)=>{let ae=await A(V,ee,te,ie);return ae===!1?"Invalid field "+te.name:ae};for(let V of a){let ee=V.value,te=V.key;if(V.type!=="template"){ee&&(w.output+=ee);continue}if(V.type==="template"){let ie=n.find(we=>we.name===te);e.required===!0&&w.required.add(ie.name);let ae=[ie.input,w.values[ie.value],ie.value,ee].find(m),de=(ie.field||{}).message||V.inner;if(B){let we=await I(w.values[te],w,ie,D);if(we&&typeof we=="string"||we===!1){w.invalid.set(te,we);continue}w.invalid.delete(te);let d=await f(w.values[te],w,ie,D);w.output+=M1e.unstyle(d);continue}ie.placeholder=!1;let De=ee;ee=await h(ee,w,ie,D),ae!==ee?(w.values[te]=ae,ee=t.styles.typing(ae),w.missing.delete(de)):(w.values[te]=void 0,ae=`<${de}>`,ee=t.styles.primary(ae),ie.placeholder=!0,w.required.has(te)&&w.missing.add(de)),w.missing.has(de)&&w.validating&&(ee=t.styles.warning(ae)),w.invalid.has(te)&&w.validating&&(ee=t.styles.danger(ae)),D===w.index&&(De!==ee?ee=t.styles.underline(ee):ee=t.styles.heading(M1e.unstyle(ee))),D++}ee&&(w.output+=ee)}let R=w.output.split(`
`).map(V=>" "+V),N=n.length,U=0;for(let V of n)w.invalid.has(V.name)&&V.lines.forEach(ee=>{R[ee][0]===" "&&(R[ee]=w.styles.danger(w.symbols.bullet)+R[ee].slice(1))}),t.isValue(w.values[V.name])&&U++;return w.completed=(U/N*100).toFixed(0),w.output=R.join(`
`),w.output}};function CW(t,e,r,s){return(a,n,l,f)=>typeof l.field[t]=="function"?l.field[t].call(e,a,n,l,f):[s,a].find(h=>e.isValue(h))}});var G1e=H((snr,j1e)=>{"use strict";var Wgt=Mf(),Ygt=H1e(),Kgt=NC(),vW=class extends Kgt{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Ygt(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let s=this.getItem(),a=s.input.slice(0,this.cursor),n=s.input.slice(this.cursor);this.input=s.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),s=e.input.slice(0,this.cursor-1);this.input=e.input=`${s}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:s,size:a}=this.state,n=[this.options.newline,`
`].find(V=>V!=null),l=await this.prefix(),f=await this.separator(),h=await this.message(),A=[l,h,f].filter(Boolean).join(" ");this.state.prompt=A;let m=await this.header(),w=await this.error()||"",B=await this.hint()||"",D=s?"":await this.interpolate(this.state),I=this.state.key=r[e]||"",R=await this.format(I),N=await this.footer();R&&(A+=" "+R),B&&!R&&this.state.completed===0&&(A+=" "+B),this.clear(a);let U=[m,A,D,N,w.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:s,index:a}=this.state,n=r.find(l=>l.name===s[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:s,values:a}=this.state;if(e.size){let f="";for(let[h,A]of e)f+=`Invalid ${h}: ${A}
`;return this.state.error=f,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let l=Wgt.unstyle(s).split(`
`).map(f=>f.slice(1)).join(`
`);return this.value={values:a,result:l},super.submit()}};j1e.exports=vW});var V1e=H((onr,q1e)=>{"use strict";var zgt="(Use <shift>+<up/down> to sort)",Jgt=hg(),SW=class extends Jgt{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,zgt].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let s=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+s:n+s}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};q1e.exports=SW});var Y1e=H((anr,W1e)=>{"use strict";var Zgt=pD(),bW=class extends Zgt{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(s=>this.styles.muted(s)),this.state.header=r.join(`
`)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let s of r)s.scale=Xgt(5,this.options),s.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],s=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!s,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let s=this.index===r,a=this.term==="Hyper",n=a?9:8,l=a?"":" ",f=this.symbols.line.repeat(n),h=" ".repeat(n+(a?0:1)),A=ee=>(ee?this.styles.success("\u25C9"):"\u25EF")+l,m=r+1+".",w=s?this.styles.heading:this.styles.noop,B=await this.resolve(e.message,this.state,e,r),D=this.indent(e),I=D+e.scale.map((ee,te)=>A(te===e.scaleIdx)).join(f),R=ee=>ee===e.scaleIdx?w(ee):ee,N=D+e.scale.map((ee,te)=>R(te)).join(h),U=()=>[m,B].filter(Boolean).join(" "),V=()=>[U(),I,N," "].filter(Boolean).join(`
`);return s&&(I=this.styles.cyan(I),N=this.styles.cyan(N)),V()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(s,a)=>await this.renderChoice(s,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(`
`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,s=await this.prefix(),a=await this.separator(),n=await this.message(),l=[s,n,a].filter(Boolean).join(" ");this.state.prompt=l;let f=await this.header(),h=await this.format(),A=await this.error()||await this.hint(),m=await this.renderChoices(),w=await this.footer();(h||!A)&&(l+=" "+h),A&&!l.includes(A)&&(l+=" "+A),e&&!h&&!m&&this.multiple&&this.type!=="form"&&(l+=this.styles.danger(this.emptyError)),this.clear(r),this.write([l,f,m,w].filter(Boolean).join(`
`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function Xgt(t,e={}){if(Array.isArray(e.scale))return e.scale.map(s=>({...s}));let r=[];for(let s=1;s<t+1;s++)r.push({i:s,selected:!1});return r}W1e.exports=bW});var z1e=H((cnr,K1e)=>{K1e.exports=pW()});var Z1e=H((lnr,J1e)=>{"use strict";var $gt=GO(),DW=class extends $gt{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=s=>this.styles.primary.underline(s);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),s=await this.prefix(),a=await this.separator(),n=await this.message(),l=await this.format(),f=await this.error()||await this.hint(),h=await this.footer(),A=[s,n,a,l].join(" ");this.state.prompt=A,f&&!A.includes(f)&&(A+=" "+f),this.clear(e),this.write([r,A,h].filter(Boolean).join(`
`)),this.write(this.margin[2]),this.restore()}};J1e.exports=DW});var $1e=H((unr,X1e)=>{"use strict";var emt=hg(),PW=class extends emt{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let s=await super.toChoices(e,r);if(s.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>s.length)throw new Error("Please specify the index of the correct answer from the list of choices");return s}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};X1e.exports=PW});var t2e=H(xW=>{"use strict";var e2e=va(),ro=(t,e)=>{e2e.defineExport(xW,t,e),e2e.defineExport(xW,t.toLowerCase(),e)};ro("AutoComplete",()=>a1e());ro("BasicAuth",()=>p1e());ro("Confirm",()=>m1e());ro("Editable",()=>E1e());ro("Form",()=>jO());ro("Input",()=>pW());ro("Invisible",()=>b1e());ro("List",()=>P1e());ro("MultiSelect",()=>k1e());ro("Numeral",()=>Q1e());ro("Password",()=>N1e());ro("Scale",()=>_1e());ro("Select",()=>hg());ro("Snippet",()=>G1e());ro("Sort",()=>V1e());ro("Survey",()=>Y1e());ro("Text",()=>z1e());ro("Toggle",()=>Z1e());ro("Quiz",()=>$1e())});var n2e=H((hnr,r2e)=>{r2e.exports={ArrayPrompt:pD(),AuthPrompt:cW(),BooleanPrompt:GO(),NumberPrompt:EW(),StringPrompt:eE()}});var gD=H((Anr,s2e)=>{"use strict";var i2e=Ae("assert"),RW=Ae("events"),Ag=va(),Hf=class extends RW{constructor(e,r){super(),this.options=Ag.merge({},e),this.answers={...r}}register(e,r){if(Ag.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}i2e.equal(typeof r,"function","expected a function");let s=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[s]=r:this.prompts[s]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(Ag.merge({},this.options,r))}catch(s){return Promise.reject(s)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=Ag.merge({},this.options,e),{type:s,name:a}=e,{set:n,get:l}=Ag;if(typeof s=="function"&&(s=await s.call(this,e,this.answers)),!s)return this.answers[a];i2e(this.prompts[s],`Prompt "${s}" is not registered`);let f=new this.prompts[s](r),h=l(this.answers,a);f.state.answers=this.answers,f.enquirer=this,a&&f.on("submit",m=>{this.emit("answer",a,m,f),n(this.answers,a,m)});let A=f.emit.bind(f);return f.emit=(...m)=>(this.emit.call(this,...m),A(...m)),this.emit("prompt",f,this),r.autofill&&h!=null?(f.value=f.input=h,r.autofill==="show"&&await f.submit()):h=f.value=await f.run(),h}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||NC()}static get prompts(){return t2e()}static get types(){return n2e()}static get prompt(){let e=(r,...s)=>{let a=new this(...s),n=a.emit.bind(a);return a.emit=(...l)=>(e.emit(...l),n(...l)),a.prompt(r)};return Ag.mixinEmitter(e,new RW),e}};Ag.mixinEmitter(Hf,new RW);var kW=Hf.prompts;for(let t of Object.keys(kW)){let e=t.toLowerCase(),r=s=>new kW[t](s).run();Hf.prompt[e]=r,Hf[e]=r,Hf[t]||Reflect.defineProperty(Hf,t,{get:()=>kW[t]})}var dD=t=>{Ag.defineExport(Hf,t,()=>Hf.types[t])};dD("ArrayPrompt");dD("AuthPrompt");dD("BooleanPrompt");dD("NumberPrompt");dD("StringPrompt");s2e.exports=Hf});var A2e=H((Oir,lmt)=>{lmt.exports={name:"@yarnpkg/cli",version:"4.18.1",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-catalog":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-jsr":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspa Line truncated
${V} at ${ee}`:`
${V}`}).join("");A.push({text:`Conflict detected in constraint targeting ${pe.pretty(t.configuration,D,pe.Type.CODE)}; conflicting values are:${R}`,fixable:!1})}else{let[[R]]=I,N=rc(B,D);if(JSON.stringify(N)===JSON.stringify(R))continue;if(!s){let U=typeof N>"u"?`Missing field ${pe.pretty(t.configuration,D,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,R,pe.Type.INSPECT)}`:typeof R>"u"?`Extraneous field ${pe.pretty(t.configuration,D,pe.Type.CODE)} currently set to ${pe.pretty(t.configuration,N,pe.Type.INSPECT)}`:`Invalid field ${pe.pretty(t.configuration,D,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,R,pe.Type.INSPECT)}, found ${pe.pretty(t.configuration,N,pe.Type.INSPECT)}`;A.push({text:U,fixable:!0});continue}typeof R>"u"?N0(B,D):Ey(B,D,R),m=!0}m&&a.set(w,B)}A.length>0&&n.set(w,A)}return{changedWorkspaces:a,remainingErrors:n}}function $2e(t,{configuration:e}){let r={children:[]};for(let[s,a]of t){let n=[];for(let f of a){let h=f.text.split(/\n/);f.fixable&&(h[0]=`${pe.pretty(e,"\u2699","gray")} ${h[0]}`),n.push({value:pe.tuple(pe.Type.NO_HINT,h[0]),children:h.slice(1).map(A=>({value:pe.tuple(pe.Type.NO_HINT,A)}))})}let l={value:pe.tuple(pe.Type.LOCATOR,s.anchoredLocator),children:Ye.sortMap(n,f=>f.value[1])};r.children.push(l)}return r.children=Ye.sortMap(r.children,s=>s.value[1]),r}var v1,iyt,syt,oyt,DD=tt(()=>{We();xl();v1=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let s=Object.hasOwn(e,r)?e[r]:void 0;if(typeof s>"u")continue;Ye.getArrayWithDefault(this.indexes[r],s).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let s=[],a;for(let[l,f]of r){let h=l,A=Object.hasOwn(this.indexes,h)?this.indexes[h]:void 0;if(typeof A>"u"){s.push([h,f]);continue}let m=new Set(A.get(f)??[]);if(m.size===0)return[];if(typeof a>"u")a=m;else for(let w of a)m.has(w)||a.delete(w);if(a.size===0)break}let n=[...a??[]];return s.length>0&&(n=n.filter(l=>{for(let[f,h]of s)if(!(typeof h<"u"?Object.hasOwn(l,f)&&l[f]===h:Object.hasOwn(l,f)===!1))return!1;return!0})),n}},iyt=/^[0-9]+$/,syt=/^[a-zA-Z0-9_]+$/,oyt=new Set(["scripts",...nr.allDependencies])});var eBe=H((wur,AY)=>{var lyt;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Ter Line truncated
`+h:"")),l.error.method="_execFileSync",l.error.program=a,l.error.args=n,l.error.extMessage=h,l.error.exitCode=+f),ki.unlinkSync(A),ki.unlinkSync(m),ki.unlinkSync(w),ki.unlinkSync(B),l}function Ayt(t){var e,r={},s,a={env:process.env,encoding:t.encoding};if(pg||(nE?process.env.PSModulePath?(pg="powershell.exe",ZO=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(pg="cscript.exe",ZO=["//nologo",__dirname+"\\read.cs.js"]):(pg="/bin/sh",ZO=[__dirname+"/read.sh"])),nE&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),gY.execFileSync){e=sBe(t),PD&&PD("execFileSync",e);try{r.input=gY.execFileSync(pg,e,a)}catch(n){s=n.stderr?(n.stderr+"").trim():"",r.error=new Error(nBe+(s?`
`+s:"")),r.error.method="execFileSync",r.error.program=pg,r.error.args=e,r.error.extMessage=s,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=hyt(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function EY(t){var e="",r=t.display,s=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=Ayt(t);if(n.error)throw n.error;return n.input}return yY&&yY(t),function(){var n,l,f;function h(){return n||(n=process.binding("fs"),l=process.binding("constants")),n}if(typeof ed=="string")if(ed=null,nE){if(f=function(A){var m=A.replace(/^\D+/,"").split("."),w=0;return(m[0]=+m[0])&&(w+=m[0]*1e4),(m[1]=+m[1])&&(w+=m[1]*100),(m[2]=+m[2])&&(w+=m[2]),w}(process.version),!(f>=20302&&f<40204||f>=5e4&&f<50100||f>=50600&&f<60200)&&process.stdin.isTTY)process.stdin.pause(),ed=process.stdin.fd,b1=process.stdin._handle;else try{ed=h().open("CONIN$",l.O_RDWR,parseInt("0666",8)),b1=new tBe(ed,!0)}catch{}if(process.stdout.isTTY)Gf=process.stdout.fd;else{try{Gf=ki.openSync("\\\\.\\CON","w")}catch{}if(typeof Gf!="number")try{Gf=h().open("CONOUT$",l.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{ed=ki.openSync("/dev/tty","r"),b1=process.stdin._handle}catch{}}else try{ed=ki.openSync("/dev/tty","r"),b1=new tBe(ed,!1)}catch{}if(process.stdout.isTTY)Gf=process.stdout.fd;else try{Gf=ki.openSync("/dev/tty","w")}catch{}}}(),function(){var n,l,f=!t.hideEchoBack&&!t.keyIn,h,A,m,w,B;XO="";function D(I){return I===rBe?!0:b1.setRawMode(I)!==0?!1:(rBe=I,!0)}if(iBe||!b1||typeof Gf!="number"&&(t.display||!f)){e=a();return}if(t.display&&(ki.writeSync(Gf,t.display),t.display=""),!t.displayOnly){if(!D(!f)){e=a();return}for(A=t.keyIn?1:t.bufferSize,h=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(A):new Buffer(A),t.keyIn&&t.limit&&(l=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){m=0;try{m=ki.readSync(ed,h,0,A)}catch(I){if(I.code!=="EOF"){D(!1),e+=a();return}}if(m>0?(w=h.toString(t.encoding,0,m),XO+=w):(w=`
`,XO+="\0"),w&&typeof(B=(w.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(w=B,n=!0),w&&(w=w.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),w&&l&&(w=w.replace(l,"")),w&&(f||(t.hideEchoBack?t.mask&&ki.writeSync(Gf,new Array(w.length+1).join(t.mask)):ki.writeSync(Gf,w)),e+=w),!t.keyIn&&n||t.keyIn&&e.length>=A)break}!f&&!s&&ki.writeSync(Gf,`
`),D(!1)}}(),t.print&&!s&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+`
`),t.encoding),t.displayOnly?"":CY=t.keepWhitespace||t.keyIn?e:e.trim()}function pyt(t,e){var r=[];function s(a){a!=null&&(Array.isArray(a)?a.forEach(s):(!e||e(a))&&r.push(a))}return s(t),r}function BY(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function Co(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(mY),t.unshift(mY))),t.reduce(function(s,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var l;if(a.hasOwnProperty(n))switch(l=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":l=l!=null?l+"":"",l&&n!=="limitMessage"&&(l=l.replace(/[\r\n]/g,"")),s[n]=l;break;case"bufferSize":!isNaN(l=parseInt(l,10))&&typeof l=="number"&&(s[n]=l);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":s[n]=!!l;break;case"limit":case"trueValue":case"falseValue":s[n]=pyt(l,function(f){var h=typeof f;return h==="string"||h==="number"||h==="function"||f instanceof RegExp}).map(function(f){return typeof f=="string"?f.replace(/[\r\n]/g,""):f});break;case"print":case"phContent":case"preCheck":s[n]=typeof l=="function"?l:void 0;break;case"prompt":case"display":s[n]=l??"";break}})),s},{})}function IY(t,e,r){return e.some(function(s){var a=typeof s;return a==="string"?r?t===s:t.toLowerCase()===s.toLowerCase():a==="number"?parseFloat(t)===s:a==="function"?s(t):s instanceof RegExp?s.test(t):!1})}function vY(t,e){var r=dg.normalize(nE?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=dg.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+BY(r)+"(?=\\/|\\\\|$)",nE?"i":""),"~")}function D1(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",s=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(l,f,h,A,m,w){var B;return f||typeof(B=e(m))!="string"?h:B?(A||"")+B+(w||""):""}return t.replace(s,n).replace(a,n)}function oBe(t,e,r){var s,a=[],n=-1,l=0,f="",h;function A(m,w){return w.length>3?(m.push(w[0]+"..."+w[w.length-1]),h=!0):w.length&&(m=m.concat(w)),m}return s=t.reduce(function(m,w){return m.concat((w+"").split(""))},[]).reduce(function(m,w){var B,D;return e||(w=w.toLowerCase()),B=/^\d$/.test(w)?1:/^[A-Z]$/.test(w)?2:/^[a-z]$/.test(w)?3:0,r&&B===0?f+=w:(D=w.charCodeAt(0),B&&B===n&&D===l+1?a.push(w):(m=A(m,a),a=[w],n=B),l=D),m},[]),s=A(s,a),f&&(s.push(f),h=!0),{values:s,suppressed:h}}function aBe(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function cBe(t,e){var r,s,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":s=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=oBe(s,e.caseSensitive),s=a.values):s=s.filter(function(l){var f=typeof l;return f==="string"||f==="number"}),r=aBe(s,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=CY;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=dg.basename(r):t==="cwdHome"&&(r=vY(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(l){return l.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=rE[rE.length-n]||"")}return r}function lBe(t){var e=/^(.)-(.)$/.exec(t),r="",s,a,n,l;if(!e)return null;for(s=e[1].charCodeAt(0),a=e[2].charCodeAt(0),l=s<a?1:-1,n=s;n!==a+l;n+=l)r+=String.fromCharCode(n);return r}function wY(t){var e=new RegExp(/(\s*)(?:("|')(.*?)(?:\2|$)|(\S+))/g),r,s="",a=[],n;for(t=t.trim();r=e.exec(t);)n=r[3]||r[4]||"",r[1]&&(a.push(s),s=""),s+=n;return s&&a.push(s),a}function uBe(t,e){return e.trueValue.length&&IY(t,e.trueValue,e.caseSensitive)?!0:e.falseValue.length&&IY(t,e.falseValue,e.caseSensitive)?!1:t}function fBe(t){var e,r,s,a,n,l,f;function h(m){return cBe(m,t)}function A(m){t.display+=(/[^\r\n]$/.test(t.display)?`
`:"")+m}for(t.limitSrc=t.limit,t.displaySrc=t.display,t.limit="",t.display=D1(t.display+"",h);;){if(e=EY(t),r=!1,s="",t.defaultInput&&!e&&(e=t.defaultInput),t.history&&((a=/^\s*\!(?:\!|-1)(:p)?\s*$/.exec(e))?(n=rE[0]||"",a[1]?r=!0:e=n,A(n+`
`),r||(t.displayOnly=!0,EY(t),t.displayOnly=!1)):e&&e!==rE[rE.length-1]&&(rE=[e])),!r&&t.cd&&e)switch(l=wY(e),l[0].toLowerCase()){case"cd":if(l[1])try{process.chdir(vY(l[1],!0))}catch(m){A(m+"")}r=!0;break;case"pwd":A(process.cwd()),r=!0;break}if(!r&&t.preCheck&&(f=t.preCheck(e,t),e=f.res,f.forceNext&&(r=!0)),!r){if(!t.limitSrc.length||IY(e,t.limitSrc,t.caseSensitive))break;t.limitMessage&&(s=D1(t.limitMessage,h))}A((s?s+`
`:"")+D1(t.displaySrc+"",h))}return uBe(e,t)}wn._DBG_set_useExt=function(t){iBe=t};wn._DBG_set_checkOptions=function(t){yY=t};wn._DBG_set_checkMethod=function(t){PD=t};wn._DBG_clearHistory=function(){CY="",rE=[]};wn.setDefaultOptions=function(t){return mY=Co(!0,t),Co(!0)};wn.question=function(t,e){return fBe(Co(Co(!0,e),{display:t}))};wn.prompt=function(t){var e=Co(!0,t);return e.display=e.prompt,fBe(e)};wn.keyIn=function(t,e){var r=Co(Co(!0,e),{display:t,keyIn:!0,keepWhitespace:!0});return r.limitSrc=r.limit.filter(function(s){var a=typeof s;return a==="string"||a==="number"}).map(function(s){return D1(s+"",lBe)}),r.limit=BY(r.limitSrc.join("")),["trueValue","falseValue"].forEach(function(s){r[s]=r[s].reduce(function(a,n){var l=typeof n;return l==="string"||l==="number"?a=a.concat((n+"").split("")):a.push(n),a},[])}),r.display=D1(r.display+"",function(s){return cBe(s,r)}),uBe(EY(r),r)};wn.questionEMail=function(t,e){return t==null&&(t="Input e-mail address: "),wn.question(t,Co({hideEchoBack:!1,limit:/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,limitMessage:"Input valid e-mail address, please.",trueValue:null,falseValue:null},e,{keepWhitespace:!1,cd:!1}))};wn.questionNewPassword=function(t,e){var r,s,a,n=Co({hideEchoBack:!0,mask:"*",limitMessage:`It can include: $<charlist>
And the length must be: $<length>`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(D){return D==="charlist"?r.text:D==="length"?s+"..."+a:null}}),l,f,h,A,m,w,B;for(e=e||{},l=D1(e.charlist?e.charlist+"":"$<!-~>",lBe),(isNaN(s=parseInt(e.min,10))||typeof s!="number")&&(s=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),A=new RegExp("^["+BY(l)+"]{"+s+","+a+"}$"),r=oBe([l],n.caseSensitive,!0),r.text=aBe(r.values,r.suppressed),f=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",h=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),m=n.limitMessage;!B;)n.limit=A,n.limitMessage=m,w=wn.question(t,n),n.limit=[w,""],n.limitMessage=h,B=wn.question(f,n);return w};function hBe(t,e,r){var s;function a(n){return s=r(n),!isNaN(s)&&typeof s=="number"}return wn.question(t,Co({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),s}wn.questionInt=function(t,e){return hBe(t,e,function(r){return parseInt(r,10)})};wn.questionFloat=function(t,e){return hBe(t,e,parseFloat)};wn.questionPath=function(t,e){var r,s="",a=Co({hideEchoBack:!1,limitMessage:`$<error(
)>Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var l,f,h;n=vY(n,!0),s="";function A(m){m.split(/\/|\\/).reduce(function(w,B){var D=dg.resolve(w+=B+dg.sep);if(!ki.existsSync(D))ki.mkdirSync(D);else if(!ki.statSync(D).isDirectory())throw new Error("Non directory already exists: "+D);return w},"")}try{if(l=ki.existsSync(n),r=l?ki.realpathSync(n):dg.resolve(n),!e.hasOwnProperty("exists")&&!l||typeof e.exists=="boolean"&&e.exists!==l)return s=(l?"Already exists":"No such file or directory")+": "+r,!1;if(!l&&e.create&&(e.isDirectory?A(r):(A(dg.dirname(r)),ki.closeSync(ki.openSync(r,"w"))),r=ki.realpathSync(r)),l&&(e.min||e.max||e.isFile||e.isDirectory)){if(f=ki.statSync(r),e.isFile&&!f.isFile())return s="Not file: "+r,!1;if(e.isDirectory&&!f.isDirectory())return s="Not directory: "+r,!1;if(e.min&&f.size<+e.min||e.max&&f.size>+e.max)return s="Size "+f.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(h=e.validate(r))!==!0)return typeof h=="string"&&(s=h),!1}catch(m){return s=m+"",!1}return!0},phContent:function(n){return n==="error"?s:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),wn.question(t,a),r};function ABe(t,e){var r={},s={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(s[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=wY(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&s.hasOwnProperty(n)?s[n].apply(a,r.args.slice(1)):s.hasOwnProperty("_")?s._.apply(a,r.args):null,{res:a,forceNext:!1}},s.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),s.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=wY(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}wn.promptCL=function(t,e){var r=Co({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),s=ABe(t,r);return r.limit=s.limit,r.preCheck=s.preCheck,wn.prompt(r),s.args};wn.promptLoop=function(t,e){for(var r=Co({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t(wn.prompt(r)););};wn.promptCLLoop=function(t,e){var r=Co({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),s=ABe(t,r);for(r.limit=s.limit,r.preCheck=s.preCheck;wn.prompt(r),!s.hRes;);};wn.promptSimShell=function(t){return wn.prompt(Co({hideEchoBack:!1,history:!0},t,{prompt:function(){return nE?"$<cwd>>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$<cwdHome>$ "}()}))};function pBe(t,e,r){var s;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),s=wn.keyIn(t,Co(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof s=="boolean"?s:""}wn.keyInYN=function(t,e){return pBe(t,e)};wn.keyInYNStrict=function(t,e){return pBe(t,e,"yn")};wn.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),wn.keyIn(t,Co({limit:null},e,{hideEchoBack:!0,mask:""}))};wn.keyInSelect=function(t,e,r){var s=Co({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(h){return h==="itemsCount"?t.length+"":h==="firstItem"?(t[0]+"").trim():h==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},l=49,f=`
`;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(h,A){var m=String.fromCharCode(l);a+=m,n[m]=A,f+="["+m+"] "+(h+"").trim()+`
`,l=l===57?97:l+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,f+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+`
`),s.limit=a,f+=`
`,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$<limit>]: "),f+=e),n[wn.keyIn(f,s).toLowerCase()]};wn.getRawInput=function(){return XO};function xD(t,e){var r;return e.length&&(r={},r[t]=e[0]),wn.setDefaultOptions(r)[t]}wn.setPrint=function(){return xD("print",arguments)};wn.setPrompt=function(){return xD("prompt",arguments)};wn.setEncoding=function(){return xD("encoding",arguments)};wn.setMask=function(){return xD("mask",arguments)};wn.setBufferSize=function(){return xD("bufferSize",arguments)}});var SY=H((Bur,Nl)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(C,P,E){var F=tau_file_system.files[C];if(!F){if(E==="read")return null;F={path:C,text:"",type:P,get:function(Z,X){return X===this.text.length||X>this.text.length?"end_of_file":this.text.substring(X,X+Z)},put:function(Z,X){return X==="end_of_file"?(this.text+=Z,!0):X==="past_end_of_file"?null:(this.text=this.text.substring(0,X)+Z+this.text.substring(X+Z.length),!0)},get_byte:function(Z){if(Z==="end_of_stream")return-1;var X=Math.floor(Z/2);if(this.text.length<=X)return-1;var re=n(this.text[Math.floor(Z/2)],0);return Z%2===0?re&255:re/256>>>0},put_byte:function(Z,X){var re=X==="end_of_stream"?this.text.length:Math.floor(X/2);if(this.text.length<re)return null;var ce=this.text.length===re?-1:n(this.text[Math.floor(X/2)],0);return X%2===0?(ce=ce/256>>>0,ce=(ce&255)<<8|Z&255):(ce=ce&255,ce=(Z&255)<<8|ce&255),this.text.length===re?this.text+=l(ce):this.text=this.text.substring(0,re)+l(ce)+this.text.substring(re+1),!0},flush:function(){return!0},close:function(){var Z=tau_file_system.files[this.path];return Z?!0:null}},tau_file_system.files[C]=F}return E==="write"&&(F.text=""),F}},tau_user_input={buffer:"",get:function(C,P){for(var E;tau_user_input.buffer.length<C;)E=window.prompt(),E&&(tau_user_input.buffer+=E);return E=tau_user_input.buffer.substr(0,C),tau_user_input.buffer=tau_user_input.buffer.substr(C),E}},tau_user_output={put:function(C,P){return console.log(C),!0},flush:function(){return!0}},nodejs_file_system={open:function(C,P,E){var F=Ae("fs"),Z=F.openSync(C,E[0]);return E==="read"&&!F.existsSync(C)?null:{get:function(X,re){var ce=new Buffer(X);return F.readSync(Z,ce,0,X,re),ce.toString()},put:function(X,re){var ce=Buffer.from(X);if(re==="end_of_file")F.writeSync(Z,ce);else{if(re==="past_end_of_file")return null;F.writeSync(Z,ce,0,ce.length,re)}return!0},get_byte:function(X){return null},put_byte:function(X,re){return null},flush:function(){return!0},close:function(){return F.closeSync(Z),!0}}}},nodejs_user_input={buffer:"",get:function(C,P){for(var E,F=dBe();nodejs_user_input.buffer.length<C;)nodejs_user_input.buffer+=F.question();return E=nodejs_user_input.buffer.substr(0,C),nodejs_user_input.buffer=nodejs_user_input.buffer.substr(C),E}},nodejs_user_output={put:function(C,P){return process.stdout.write(C),!0},flush:function(){return!0}};var e;Array.prototype.indexOf?e=function(C,P){return C.indexOf(P)}:e=function(C,P){for(var E=C.length,F=0;F<E;F++)if(P===C[F])return F;return-1};var r=function(C,P){if(C.length!==0){for(var E=C[0],F=C.length,Z=1;Z<F;Z++)E=P(E,C[Z]);return E}},s;Array.prototype.map?s=function(C,P){return C.map(P)}:s=function(C,P){for(var E=[],F=C.length,Z=0;Z<F;Z++)E.push(P(C[Z]));return E};var a;Array.prototype.filter?a=function(C,P){return C.filter(P)}:a=function(C,P){for(var E=[],F=C.length,Z=0;Z<F;Z++)P(C[Z])&&E.push(C[Z]);return E};var n;String.prototype.codePointAt?n=function(C,P){return C.codePointAt(P)}:n=function(C,P){return C.charCodeAt(P)};var l;String.fromCodePoint?l=function(){return String.fromCodePoint.apply(null,arguments)}:l=function(){return String.fromCharCode.apply(null,arguments)};var f=0,h=1,A=/(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)|\\x([0-9a-fA-F]+)\\|\\([0-7]+)\\|(\\\\)|(\\')|('')|(\\")|(\\`)|(\\.)|(.)/g,m={"\\a":7,"\\b":8,"\\f":12,"\\n":10,"\\r":13,"\\t":9,"\\v":11};function w(C){var P=[],E=!1;return C.replace(A,function(F,Z,X,re,ce,ke,Le,pt,St,er,ur,Ht,Cn,Ur,kr,_,Ue){switch(!0){case St!==void 0:return P.push(parseInt(St,16)),"";case er!==void 0:return P.push(parseInt(er,8)),"";case ur!==void 0:case Ht!==void 0:case Cn!==void 0:case Ur!==void 0:case kr!==void 0:return P.push(n(F.substr(1),0)),"";case Ue!==void 0:return P.push(n(Ue,0)),"";case _!==void 0:E=!0;default:return P.push(m[F]),""}}),E?null:P}function B(C,P){var E="";if(C.length<2)return C;try{C=C.replace(/\\([0-7]+)\\/g,function(re,ce){return l(parseInt(ce,8))}),C=C.replace(/\\x([0-9a-fA-F]+)\\/g,function(re,ce){return l(parseInt(ce,16))})}catch{return null}for(var F=0;F<C.length;F++){var Z=C.charAt(F),X=C.charAt(F+1);if(Z===P&&X===P)F++,E+=P;else if(Z==="\\")if(["a","b","f","n","r","t","v","'",'"',"\\","a","\b","\f",`
`,"\r"," ","\v"].indexOf(X)!==-1)switch(F+=1,X){case"a":E+="a";break;case"b":E+="\b";break;case"f":E+="\f";break;case"n":E+=`
`;break;case"r":E+="\r";break;case"t":E+=" ";break;case"v":E+="\v";break;case"'":E+="'";break;case'"':E+='"';break;case"\\":E+="\\";break}else return null;else E+=Z}return E}function D(C){for(var P="",E=0;E<C.length;E++)switch(C.charAt(E)){case"'":P+="\\'";break;case"\\":P+="\\\\";break;case"\b":P+="\\b";break;case"\f":P+="\\f";break;case`
`:P+="\\n";break;case"\r":P+="\\r";break;case" ":P+="\\t";break;case"\v":P+="\\v";break;default:P+=C.charAt(E);break}return P}function I(C){var P=C.substr(2);switch(C.substr(0,2).toLowerCase()){case"0x":return parseInt(P,16);case"0b":return parseInt(P,2);case"0o":return parseInt(P,8);case"0'":return w(P)[0];default:return parseFloat(C)}}var R={whitespace:/^\s*(?:(?:%.*)|(?:\/\*(?:\n|\r|.)*?\*\/)|(?:\s+))\s*/,variable:/^(?:[A-Z_][a-zA-Z0-9_]*)/,atom:/^(\!|,|;|[a-z][0-9a-zA-Z_]*|[#\$\&\*\+\-\.\/\:\<\=\>\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function N(C,P){return C.get_flag("char_conversion").id==="on"?P.replace(/./g,function(E){return C.get_char_conversion(E)}):P}function U(C){this.thread=C,this.text="",this.tokens=[]}U.prototype.set_last_tokens=function(C){return this.tokens=C},U.prototype.new_text=function(C){this.text=C,this.tokens=[]},U.prototype.get_tokens=function(C){var P,E=0,F=0,Z=0,X=[],re=!1;if(C){var ce=this.tokens[C-1];E=ce.len,P=N(this.thread,this.text.substr(ce.len)),F=ce.line,Z=ce.start}else P=this.text;if(/^\s*$/.test(P))return null;for(;P!=="";){var ke=[],Le=!1;if(/^\n/.exec(P)!==null){F++,Z=0,E++,P=P.replace(/\n/,""),re=!0;continue}for(var pt in R)if(R.hasOwnProperty(pt)){var St=R[pt].exec(P);St&&ke.push({value:St[0],name:pt,matches:St})}if(!ke.length)return this.set_last_tokens([{value:P,matches:[],name:"lexical",line:F,start:Z}]);var ce=r(ke,function(Ur,kr){return Ur.value.length>=kr.value.length?Ur:kr});switch(ce.start=Z,ce.line=F,P=P.replace(ce.value,""),Z+=ce.value.length,E+=ce.value.length,ce.name){case"atom":ce.raw=ce.value,ce.value.charAt(0)==="'"&&(ce.value=B(ce.value.substr(1,ce.value.length-2),"'"),ce.value===null&&(ce.name="lexical",ce.value="unknown escape sequence"));break;case"number":ce.float=ce.value.substring(0,2)!=="0x"&&ce.value.match(/[.eE]/)!==null&&ce.value!=="0'.",ce.value=I(ce.value),ce.blank=Le;break;case"string":var er=ce.value.charAt(0);ce.value=B(ce.value.substr(1,ce.value.length-2),er),ce.value===null&&(ce.name="lexical",ce.value="unknown escape sequence");break;case"whitespace":var ur=X[X.length-1];ur&&(ur.space=!0),Le=!0;continue;case"r_bracket":X.length>0&&X[X.length-1].name==="l_bracket"&&(ce=X.pop(),ce.name="atom",ce.value="{}",ce.raw="{}",ce.space=!1);break;case"r_brace":X.length>0&&X[X.length-1].name==="l_brace"&&(ce=X.pop(),ce.name="atom",ce.value="[]",ce.raw="[]",ce.space=!1);break}ce.len=E,X.push(ce),Le=!1}var Ht=this.set_last_tokens(X);return Ht.length===0?null:Ht};function V(C,P,E,F,Z){if(!P[E])return{type:f,value:x.error.syntax(P[E-1],"expression expected",!0)};var X;if(F==="0"){var re=P[E];switch(re.name){case"number":return{type:h,len:E+1,value:new x.type.Num(re.value,re.float)};case"variable":return{type:h,len:E+1,value:new x.type.Var(re.value)};case"string":var ce;switch(C.get_flag("double_quotes").id){case"atom":ce=new j(re.value,[]);break;case"codes":ce=new j("[]",[]);for(var ke=re.value.length-1;ke>=0;ke--)ce=new j(".",[new x.type.Num(n(re.value,ke),!1),ce]);break;case"chars":ce=new j("[]",[]);for(var ke=re.value.length-1;ke>=0;ke--)ce=new j(".",[new x.type.Term(re.value.charAt(ke),[]),ce]);break}return{type:h,len:E+1,value:ce};case"l_paren":var Ht=V(C,P,E+1,C.__get_max_priority(),!0);return Ht.type!==h?Ht:P[Ht.len]&&P[Ht.len].name==="r_paren"?(Ht.len++,Ht):{type:f,derived:!0,value:x.error.syntax(P[Ht.len]?P[Ht.len]:P[Ht.len-1],") or operator expected",!P[Ht.len])};case"l_bracket":var Ht=V(C,P,E+1,C.__get_max_priority(),!0);return Ht.type!==h?Ht:P[Ht.len]&&P[Ht.len].name==="r_bracket"?(Ht.len++,Ht.value=new j("{}",[Ht.value]),Ht):{type:f,derived:!0,value:x.error.syntax(P[Ht.len]?P[Ht.len]:P[Ht.len-1],"} or operator expected",!P[Ht.len])}}var Le=ee(C,P,E,Z);return Le.type===h||Le.derived||(Le=te(C,P,E),Le.type===h||Le.derived)?Le:{type:f,derived:!1,value:x.error.syntax(P[E],"unexpected token")}}var pt=C.__get_max_priority(),St=C.__get_next_priority(F),er=E;if(P[E].name==="atom"&&P[E+1]&&(P[E].space||P[E+1].name!=="l_paren")){var re=P[E++],ur=C.__lookup_operator_classes(F,re.value);if(ur&&ur.indexOf("fy")>-1){var Ht=V(C,P,E,F,Z);if(Ht.type!==f)return re.value==="-"&&!re.space&&x.type.is_number(Ht.value)?{value:new x.type.Num(-Ht.value.value,Ht.value.is_float),len:Ht.len,type:h}:{value:new x.type.Term(re.value,[Ht.value]),len:Ht.len,type:h};X=Ht}else if(ur&&ur.indexOf("fx")>-1){var Ht=V(C,P,E,St,Z);if(Ht.type!==f)return{value:new x.type.Term(re.value,[Ht.value]),len:Ht.len,type:h};X=Ht}}E=er;var Ht=V(C,P,E,St,Z);if(Ht.type===h){E=Ht.len;var re=P[E];if(P[E]&&(P[E].name==="atom"&&C.__lookup_operator_classes(F,re.value)||P[E].name==="bar"&&C.__lookup_operator_classes(F,"|"))){var Cn=St,Ur=F,ur=C.__lookup_operator_classes(F,re.value);iLine truncated
`;P+=`
`;for(key in this.rules)for(E=0;E<this.rules[key].length;E++)P+=this.rules[key][E].toString(C),P+=`
`;return P},Pe.prototype.clone=function(){return new Pe(this.id)},Te.prototype.clone=function(){return new Te(this.value,this.is_float)},j.prototype.clone=function(){return new j(this.id,s(this.args,function(C){return C.clone()}))},Ne.prototype.clone=function(){return new Stram(this.stream,this.mode,this.alias,this.type,this.reposition,this.eof_action)},Fe.prototype.clone=function(){var C={};for(var P in this.links)this.links.hasOwnProperty(P)&&(C[P]=this.links[P].clone());return new Fe(C)},xe.prototype.clone=function(){return new xe(this.goal.clone(),this.substitution.clone(),this.parent)},He.prototype.clone=function(){return new He(this.head.clone(),this.body!==null?this.body.clone():null)},Pe.prototype.equals=function(C){return x.type.is_variable(C)&&this.id===C.id},Te.prototype.equals=function(C){return x.type.is_number(C)&&this.value===C.value&&this.is_float===C.is_float},j.prototype.equals=function(C){if(!x.type.is_term(C)||this.indicator!==C.indicator)return!1;for(var P=0;P<this.args.length;P++)if(!this.args[P].equals(C.args[P]))return!1;return!0},Ne.prototype.equals=function(C){return x.type.is_stream(C)&&this.id===C.id},Fe.prototype.equals=function(C){var P;if(!x.type.is_substitution(C))return!1;for(P in this.links)if(this.links.hasOwnProperty(P)&&(!C.links[P]||!this.links[P].equals(C.links[P])))return!1;for(P in C.links)if(C.links.hasOwnProperty(P)&&!this.links[P])return!1;return!0},xe.prototype.equals=function(C){return x.type.is_state(C)&&this.goal.equals(C.goal)&&this.substitution.equals(C.substitution)&&this.parent===C.parent},He.prototype.equals=function(C){return x.type.is_rule(C)&&this.head.equals(C.head)&&(this.body===null&&C.body===null||this.body!==null&&this.body.equals(C.body))},Pe.prototype.rename=function(C){return C.get_free_variable(this)},Te.prototype.rename=function(C){return this},j.prototype.rename=function(C){return new j(this.id,s(this.args,function(P){return P.rename(C)}))},Ne.prototype.rename=function(C){return this},He.prototype.rename=function(C){return new He(this.head.rename(C),this.body!==null?this.body.rename(C):null)},Pe.prototype.variables=function(){return[this.id]},Te.prototype.variables=function(){return[]},j.prototype.variables=function(){return[].concat.apply([],s(this.args,function(C){return C.variables()}))},Ne.prototype.variables=function(){return[]},He.prototype.variables=function(){return this.body===null?this.head.variables():this.head.variables().concat(this.body.variables())},Pe.prototype.apply=function(C){return C.lookup(this.id)?C.lookup(this.id):this},Te.prototype.apply=function(C){return this},j.prototype.apply=function(C){if(this.indicator==="./2"){for(var P=[],E=this;E.indicator==="./2";)P.push(E.args[0].apply(C)),E=E.args[1];for(var F=E.apply(C),Z=P.length-1;Z>=0;Z--)F=new j(".",[P[Z],F]);return F}return new j(this.id,s(this.args,function(X){return X.apply(C)}),this.ref)},Ne.prototype.apply=function(C){return this},He.prototype.apply=function(C){return new He(this.head.apply(C),this.body!==null?this.body.apply(C):null)},Fe.prototype.apply=function(C){var P,E={};for(P in this.links)this.links.hasOwnProperty(P)&&(E[P]=this.links[P].apply(C));return new Fe(E)},j.prototype.select=function(){for(var C=this;C.indicator===",/2";)C=C.args[0];return C},j.prototype.replace=function(C){return this.indicator===",/2"?this.args[0].indicator===",/2"?new j(",",[this.args[0].replace(C),this.args[1]]):C===null?this.args[1]:new j(",",[C,this.args[1]]):C},j.prototype.search=function(C){if(x.type.is_term(C)&&C.ref!==void 0&&this.ref===C.ref)return!0;for(var P=0;P<this.args.length;P++)if(x.type.is_term(this.args[P])&&this.args[P].search(C))return!0;return!1},Qe.prototype.get_current_input=function(){return this.current_input},ft.prototype.get_current_input=function(){return this.session.get_current_input()},Qe.prototype.get_current_output=function(){return this.current_output},ft.prototype.get_current_output=function(){return this.session.get_current_output()},Qe.prototype.set_current_input=function(C){this.current_input=C},ft.prototype.set_current_input=function(C){return this.session.set_current_input(C)},Qe.prototype.set_current_output=function(C){this.current_input=C},ft.prototype.set_current_output=function(C){return this.session.set_current_output(C)},Qe.prototype.get_stream_by_alias=function(C){return this.streams[C]},ft.prototype.get_stream_by_alias=function(C){return this.session.get_stream_by_alias(C)},Qe.prototype.file_system_open=function(C,P,E){return this.file_system.open(C,P,E)},ft.prototype.file_system_open=function(C,P,E){return this.session.file_system_open(C,P,E)},Qe.prototype.get_char_conversion=function(C){return this.__char_conversion[C]||C},ft.prototype.get_char_conversion=function(C){return this.session.get_char_conversion(C)},Qe.prototype.parse=function(C){return this.thread.parse(C)},ft.prototype.parse=function(C){var P=new U(this);P.new_text(C);var E=P.get_tokens();if(E===null)return!1;var F=V(this,E,0,this.__get_max_priority(),!1);return F Line truncated
`,[])])])),P.substitution,P)])},"nl/1":function(C,P,E){var F=E.args[0];C.prepend([new xe(P.goal.replace(new j("put_char",[F,new j(`
`,[])])),P.substitution,P)])},"get_byte/1":function(C,P,E){var F=E.args[0];C.prepend([new xe(P.goal.replace(new j(",",[new j("current_input",[new Pe("S")]),new j("get_byte",[new Pe("S"),F])])),P.substitution,P)])},"get_byte/2":function(C,P,E){var F=E.args[0],Z=E.args[1],X=x.type.is_stream(F)?F:C.get_stream_by_alias(F.id);if(x.type.is_variable(F))C.throw_error(x.error.instantiation(E.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_byte(Z))C.throw_error(x.error.type("in_byte",char,E.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))C.throw_error(x.error.domain("stream_or_alias",F,E.indicator));else if(!x.type.is_stream(X)||X.stream===null)C.throw_error(x.error.existence("stream",F,E.indicator));else if(X.output)C.throw_error(x.error.permission("input","stream",F,E.indicator));else if(X.type==="text")C.throw_error(x.error.permission("input","text_stream",F,E.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")C.throw_error(x.error.permission("input","past_end_of_stream",F,E.indicator));else{var re;if(X.position==="end_of_stream")re="end_of_file",X.position="past_end_of_stream";else{if(re=X.stream.get_byte(X.position),re===null){C.throw_error(x.error.representation("byte",E.indicator));return}X.position++}C.prepend([new xe(P.goal.replace(new j("=",[new Te(re,!1),Z])),P.substitution,P)])}},"peek_byte/1":function(C,P,E){var F=E.args[0];C.prepend([new xe(P.goal.replace(new j(",",[new j("current_input",[new Pe("S")]),new j("peek_byte",[new Pe("S"),F])])),P.substitution,P)])},"peek_byte/2":function(C,P,E){var F=E.args[0],Z=E.args[1],X=x.type.is_stream(F)?F:C.get_stream_by_alias(F.id);if(x.type.is_variable(F))C.throw_error(x.error.instantiation(E.indicator));else if(!x.type.is_variable(Z)&&!x.type.is_byte(Z))C.throw_error(x.error.type("in_byte",char,E.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))C.throw_error(x.error.domain("stream_or_alias",F,E.indicator));else if(!x.type.is_stream(X)||X.stream===null)C.throw_error(x.error.existence("stream",F,E.indicator));else if(X.output)C.throw_error(x.error.permission("input","stream",F,E.indicator));else if(X.type==="text")C.throw_error(x.error.permission("input","text_stream",F,E.indicator));else if(X.position==="past_end_of_stream"&&X.eof_action==="error")C.throw_error(x.error.permission("input","past_end_of_stream",F,E.indicator));else{var re;if(X.position==="end_of_stream")re="end_of_file",X.position="past_end_of_stream";else if(re=X.stream.get_byte(X.position),re===null){C.throw_error(x.error.representation("byte",E.indicator));return}C.prepend([new xe(P.goal.replace(new j("=",[new Te(re,!1),Z])),P.substitution,P)])}},"put_byte/1":function(C,P,E){var F=E.args[0];C.prepend([new xe(P.goal.replace(new j(",",[new j("current_output",[new Pe("S")]),new j("put_byte",[new Pe("S"),F])])),P.substitution,P)])},"put_byte/2":function(C,P,E){var F=E.args[0],Z=E.args[1],X=x.type.is_stream(F)?F:C.get_stream_by_alias(F.id);x.type.is_variable(F)||x.type.is_variable(Z)?C.throw_error(x.error.instantiation(E.indicator)):x.type.is_byte(Z)?!x.type.is_variable(F)&&!x.type.is_stream(F)&&!x.type.is_atom(F)?C.throw_error(x.error.domain("stream_or_alias",F,E.indicator)):!x.type.is_stream(X)||X.stream===null?C.throw_error(x.error.existence("stream",F,E.indicator)):X.input?C.throw_error(x.error.permission("output","stream",F,E.indicator)):X.type==="text"?C.throw_error(x.error.permission("output","text_stream",F,E.indicator)):X.stream.put_byte(Z.value,X.position)&&(typeof X.position=="number"&&X.position++,C.success(P)):C.throw_error(x.error.type("byte",Z,E.indicator))},"read/1":function(C,P,E){var F=E.args[0];C.prepend([new xe(P.goal.replace(new j(",",[new j("current_input",[new Pe("S")]),new j("read_term",[new Pe("S"),F,new j("[]",[])])])),P.substitution,P)])},"read/2":function(C,P,E){var F=E.args[0],Z=E.args[1];C.prepend([new xe(P.goal.replace(new j("read_term",[F,Z,new j("[]",[])])),P.substitution,P)])},"read_term/2":function(C,P,E){var F=E.args[0],Z=E.args[1];C.prepend([new xe(P.goal.replace(new j(",",[new j("current_input",[new Pe("S")]),new j("read_term",[new Pe("S"),F,Z])])),P.substitution,P)])},"read_term/3":function(C,P,E){var F=E.args[0],Z=E.args[1],X=E.args[2],re=x.type.is_stream(F)?F:C.get_stream_by_alias(F.id);if(x.type.is_variable(F)||x.type.is_variable(X))C.throw_error(x.error.instantiation(E.indicator));else if(!x.type.is_list(X))C.throw_error(x.error.type("list",X,E.indicator));else if(!x.type.is_stream(F)&&!x.type.is_atom(F))C.throw_error(x.error.domain("stream_or_alias",F,E.indicator));else if(!x.type.is_stream(re)||re.stream===null)C.throw_error(x.error.existence("stream",F,E.indicator));else if(re.output)C.throw_error(x.error.permission("input","stream",F,E.indicator));else if(re.type==="binary")C.throw_error(x.error.permission("input","binary_stream",F,E.indicator));else if(re.position==="past_end_of_stream"&&re.eof_action==="error")C.throw_error(x.error.permission("input","past_end_of_stream",F,E.indicator));else{for(v Line truncated
`;for(let r of this.project.workspacesByCwd.values()){let s=r.relativeCwd;e+=`workspace(${mg(s)}).
`,e+=`workspace_ident(${mg(s)}, ${mg(G.stringifyIdent(r.anchoredLocator))}).
`,e+=`workspace_version(${mg(s)}, ${mg(r.manifest.version)}).
`;for(let a of wBe)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${mg(s)}, ${mg(G.stringifyIdent(n))}, ${mg(n.range)}, ${a}).
`}return e+=`workspace(_) :- false.
`,e+=`workspace_ident(_, _) :- false.
`,e+=`workspace_version(_, _) :- false.
`,e+=`workspace_has_dependency(_, _, _, _) :- false.
`,e}getDeclarations(){let e="";return e+=`gen_enforced_dependency(_, _, _, _) :- false.
`,e+=`gen_enforced_field(_, _, _) :- false.
`,e}get fullSource(){return`${this.getProjectDatabase()}
${this.source}
${this.getDeclarations()}`}createSession(){return new DY(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),s=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:l,dependencyType:f}of e){let h=bD([f,G.stringifyIdent(n)]),A=Ye.getMapWithDefault(s,a.cwd);Ye.getMapWithDefault(A,h).set(l??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:l}of r){let f=bD(n),h=Ye.getMapWithDefault(s,a.cwd);Ye.getMapWithDefault(h,f).set(JSON.parse(l)??void 0,new Set)}return{manifestUpdates:s,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let s of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=Y.resolve(this.project.cwd,iE(s.links.WorkspaceCwd)),n=iE(s.links.DependencyIdent),l=iE(s.links.DependencyRange),f=iE(s.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let h=this.project.getWorkspaceByCwd(a),A=G.parseIdent(n);r.push({workspace:h,dependencyIdent:A,dependencyRange:l,dependencyType:f})}return Ye.sortMap(r,[({dependencyRange:s})=>s!==null?"0":"1",({workspace:s})=>G.stringifyIdent(s.anchoredLocator),({dependencyIdent:s})=>G.stringifyIdent(s)])}async genEnforcedFields(e){let r=[];for await(let s of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=Y.resolve(this.project.cwd,iE(s.links.WorkspaceCwd)),n=iE(s.links.FieldPath),l=yyt(s.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let f=this.project.getWorkspaceByCwd(a);r.push({workspace:f,fieldPath:n,fieldValue:l})}return Ye.sortMap(r,[({workspace:s})=>G.stringifyIdent(s.anchoredLocator),({fieldPath:s})=>s])}async*query(e){let r=this.createSession();for await(let s of r.makeQuery(e)){let a={};for(let[n,l]of Object.entries(s.links))n!=="_"&&(a[n]=iE(l));yield a}}}});var QBe=H(rL=>{"use strict";Object.defineProperty(rL,"__esModule",{value:!0});function WD(t){let e=[...t.caches],r=e.shift();return r===void 0?TBe():{get(s,a,n={miss:()=>Promise.resolve()}){return r.get(s,a,n).catch(()=>WD({caches:e}).get(s,a,n))},set(s,a){return r.set(s,a).catch(()=>WD({caches:e}).set(s,a))},delete(s){return r.delete(s).catch(()=>WD({caches:e}).delete(s))},clear(){return r.clear().catch(()=>WD({caches:e}).clear())}}}function TBe(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}rL.createFallbackableCache=WD;rL.createNullCache=TBe});var NBe=H((oAr,FBe)=>{FBe.exports=QBe()});var OBe=H(jY=>{"use strict";Object.defineProperty(jY,"__esModule",{value:!0});function Lyt(t={serializable:!0}){let e={};return{get(r,s,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let l=s(),f=a&&a.miss||(()=>Promise.resolve());return l.then(h=>f(h)).then(()=>l)},set(r,s){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(s):s,Promise.resolve(s)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}jY.createInMemoryCache=Lyt});var _Be=H((cAr,LBe)=>{LBe.exports=OBe()});var UBe=H(qf=>{"use strict";Object.defineProperty(qf,"__esModule",{value:!0});function _yt(t,e,r){let s={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===GY.WithinHeaders?s:{}},queryParameters(){return t===GY.WithinQueryParameters?s:{}}}}function Myt(t){let e=0,r=()=>(e++,new Promise(s=>{setTimeout(()=>{s(t(r))},Math.min(100*e,1e3))}));return t(r)}function MBe(t,e=(r,s)=>Promise.resolve()){return Object.assign(t,{wait(r){return MBe(t.then(s=>Promise.all([e(s,r),s])).then(s=>s[1]))}})}function Uyt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),s=t[e];t[e]=t[r],t[r]=s}return t}function Hyt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function jyt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var Gyt="4.22.1",qyt=t=>()=>t.transporter.requester.destroy(),GY={WithinQueryParameters:0,WithinHeaders:1};qf.AuthMode=GY;qf.addMethods=Hyt;qf.createAuth=_yt;qf.createRetryablePromise=Myt;qf.createWaitablePromise=MBe;qf.destroy=qyt;qf.encode=jyt;qf.shuffle=Uyt;qf.version=Gyt});var YD=H((uAr,HBe)=>{HBe.exports=UBe()});var jBe=H(qY=>{"use strict";Object.defineProperty(qY,"__esModule",{value:!0});var Vyt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};qY.MethodEnum=Vyt});var KD=H((hAr,GBe)=>{GBe.exports=jBe()});var ive=H(ds=>{"use strict";Object.defineProperty(ds,"__esModule",{value:!0});var VBe=KD();function VY(t,e){let r=t||{},s=r.data||{};return Object.keys(r).forEach(a=>{["timeout","head Line truncated
`;f!==s&&(s=f,t.write(tbe.default.eraseLines(r)+f),r=f.split(`
`).length)};return n.clear=()=>{t.write(tbe.default.eraseLines(r)),s="",r=0},n.done=()=>{s="",r=0,e||(rbe.default.show(),a=!1)},n};sP.default={create:Mwt}});var sbe=H((epr,Uwt)=>{Uwt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var cbe=H(Ol=>{"use strict";var abe=sbe(),nA=process.env;Object.defineProperty(Ol,"_vendors",{value:abe.map(function(t){return t.constant})});Ol.name=null;Ol.isPR=null;abe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(s){return obe(s)});if(Ol[t.constant]=r,r)switch(Ol.name=t.name,typeof t.pr){case"string":Ol.isPR=!!nA[t.pr];break;case"object":"env"in t.pr?Ol.isPR=t.pr.env in nA&&nA[t.pr.env]!==t.pr.ne:"any"in t.pr?Ol.isPR=t.pr.any.some(function(s){return!!nA[s]}):Ol.isPR=obe(t.pr);break;default:Ol.isPR=null}});Ol.isCI=!!(nA.CI||nA.CONTINUOUS_INTEGRATION||nA.BUILD_NUMBER||nA.RUN_ID||Ol.name);function obe(t){return typeof t=="string"?!!nA[t]:Object.keys(t).every(function(e){return nA[e]===t[e]})}});var ube=H((rpr,lbe)=>{"use strict";lbe.exports=cbe().isCI});var hbe=H((npr,fbe)=>{"use strict";var Hwt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};fbe.exports=(t,{include:e,exclude:r}={})=>{let s=a=>{let n=l=>typeof l=="string"?a===l:l.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of Hwt(t.constructor.prototype)){if(n==="constructor"||!s(n))continue;let l=Reflect.getOwnPropertyDescriptor(a,n);l&&typeof l.value=="function"&&(t[n]=t[n].bind(t))}return t}});var ybe=H(gi=>{"use strict";var J1,cP,CL,kK;typeof performance=="object"&&typeof performance.now=="function"?(Abe=performance,gi.unstable_now=function(){return Abe.now()}):(vK=Date,pbe=vK.now(),gi.unstable_now=function(){return vK.now()-pbe});var Abe,vK,pbe;typeof window>"u"||typeof MessageChannel!="function"?(z1=null,SK=null,bK=function(){if(z1!==null)try{var t=gi.unstable_now();z1(!0,t),z1=null}catch(e){throw setTimeout(bK,0),e}},J1=function(t){z1!==null?setTimeout(J1,0,t):(z1=t,setTimeout(bK,0))},cP=function(t,e){SK=setTimeout(t,e)},CL=function(){clearTimeout(SK)},gi.unstable_shouldYield=function(){return!1},kK=gi.unstable_forceFrameRate=function(){}):(dbe=window.setTimeout,gbe=window.clearTimeout,typeof console<"u"&&(mbe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof mbe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),oP=!1,aP=null,EL=-1,DK=5,PK=0,gi.unstable_shouldYield=function(){return gi.unstable_now()>=PK},kK=function(){},gi.unstable_forceFrameRate=function(t){0>t||125<t?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):DK=0<t?Math Line truncated
`+Xu+S}var ve=!1;function Jt(S,b){if(!S||ve)return"";ve=!0;var T=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error()},Object.defineProperty(b.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(b,[])}catch(wt){var q=wt}Reflect.construct(S,[],b)}else{try{b.call()}catch(wt){q=wt}S.call(b.prototype)}else{try{throw Error()}catch(wt){q=wt}S()}}catch(wt){if(wt&&q&&typeof wt.stack=="string"){for(var z=wt.stack.split(`
`),oe=q.stack.split(`
`),Se=z.length-1,qe=oe.length-1;1<=Se&&0<=qe&&z[Se]!==oe[qe];)qe--;for(;1<=Se&&0<=qe;Se--,qe--)if(z[Se]!==oe[qe]){if(Se!==1||qe!==1)do if(Se--,qe--,0>qe||z[Se]!==oe[qe])return`
`+z[Se].replace(" at new "," at ");while(1<=Se&&0<=qe);break}}}finally{ve=!1,Error.prepareStackTrace=T}return(S=S?S.displayName||S.name:"")?Vl(S):""}var Wl=[],as=-1;function To(S){return{current:S}}function Vt(S){0>as||(S.current=Wl[as],Wl[as]=null,as--)}function ei(S,b){as++,Wl[as]=S.current,S.current=b}var Ha={},As=To(Ha),cs=To(!1),Ic=Ha;function Un(S,b){var T=S.type.contextTypes;if(!T)return Ha;var q=S.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===b)return q.__reactInternalMemoizedMaskedChildContext;var z={},oe;for(oe in T)z[oe]=b[oe];return q&&(S=S.stateNode,S.__reactInternalMemoizedUnmaskedChildContext=b,S.__reactInternalMemoizedMaskedChildContext=z),z}function Ei(S){return S=S.childContextTypes,S!=null}function $u(){Vt(cs),Vt(As)}function Ud(S,b,T){if(As.current!==Ha)throw Error(l(168));ei(As,b),ei(cs,T)}function wc(S,b,T){var q=S.stateNode;if(S=b.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var z in q)if(!(z in S))throw Error(l(108,d(b)||"Unknown",z));return s({},T,q)}function Cc(S){return S=(S=S.stateNode)&&S.__reactInternalMemoizedMergedChildContext||Ha,Ic=As.current,ei(As,S),ei(cs,cs.current),!0}function Bc(S,b,T){var q=S.stateNode;if(!q)throw Error(l(169));T?(S=wc(S,b,Ic),q.__reactInternalMemoizedMergedChildContext=S,Vt(cs),Vt(As),ei(As,S)):Vt(cs),ei(cs,T)}var it=null,vc=null,ah=n.unstable_now;ah();var Yl=0,Yn=8;function ja(S){if(1&S)return Yn=15,1;if(2&S)return Yn=14,2;if(4&S)return Yn=13,4;var b=24&S;return b!==0?(Yn=12,b):S&32?(Yn=11,32):(b=192&S,b!==0?(Yn=10,b):S&256?(Yn=9,256):(b=3584&S,b!==0?(Yn=8,b):S&4096?(Yn=7,4096):(b=4186112&S,b!==0?(Yn=6,b):(b=62914560&S,b!==0?(Yn=5,b):S&67108864?(Yn=4,67108864):S&134217728?(Yn=3,134217728):(b=805306368&S,b!==0?(Yn=2,b):1073741824&S?(Yn=1,1073741824):(Yn=8,S))))))}function VA(S){switch(S){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function WA(S){switch(S){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(l(358,S))}}function Ga(S,b){var T=S.pendingLanes;if(T===0)return Yn=0;var q=0,z=0,oe=S.expiredLanes,Se=S.suspendedLanes,qe=S.pingedLanes;if(oe!==0)q=oe,z=Yn=15;else if(oe=T&134217727,oe!==0){var wt=oe&~Se;wt!==0?(q=ja(wt),z=Yn):(qe&=oe,qe!==0&&(q=ja(qe),z=Yn))}else oe=T&~Se,oe!==0?(q=ja(oe),z=Yn):qe!==0&&(q=ja(qe),z=Yn);if(q===0)return 0;if(q=31-ks(q),q=T&((0>q?0:1<<q)<<1)-1,b!==0&&b!==q&&!(b&Se)){if(ja(b),z<=Yn)return b;Yn=z}if(b=S.entangledLanes,b!==0)for(S=S.entanglements,b&=q;0<b;)T=31-ks(b),z=1<<T,q|=S[T],b&=~z;return q}function ll(S){return S=S.pendingLanes&-1073741825,S!==0?S:S&1073741824?1073741824:0}function rr(S,b){switch(S){case 15:return 1;case 14:return 2;case 12:return S=ti(24&~b),S===0?rr(10,b):S;case 10:return S=ti(192&~b),S===0?rr(8,b):S;case 8:return S=ti(3584&~b),S===0&&(S=ti(4186112&~b),S===0&&(S=512)),S;case 2:return b=ti(805306368&~b),b===0&&(b=268435456),b}throw Error(l(358,S))}function ti(S){return S&-S}function qa(S){for(var b=[],T=0;31>T;T++)b.push(S);return b}function Sc(S,b,T){S.pendingLanes|=b;var q=b-1;S.suspendedLanes&=q,S.pingedLanes&=q,S=S.eventTimes,b=31-ks(b),S[b]=T}var ks=Math.clz32?Math.clz32:zl,Kl=Math.log,ef=Math.LN2;function zl(S){return S===0?32:31-(Kl(S)/ef|0)|0}var bc=n.unstable_runWithPriority,ls=n.unstable_scheduleCallback,Ys=n.unstable_cancelCallback,ul=n.unstable_shouldYield,ch=n.unstable_requestPaint,Jl=n.unstable_now,zi=n.unstable_getCurrentPriorityLevel,ri=n.unstable_ImmediatePriority,Zl=n.unstable_UserBlockingPriority,et=n.unstable_NormalPriority,dt=n.unstable_LowPriority,_t=n.unstable_IdlePriority,Sr={},ne=ch!==void 0?ch:function(){},Be=null,_e=null,bt=!1,xt=Jl(),jt=1e4>xt?Jl:function(){return Jl()-xt};function Ir(){switch(zi()){case ri:return 99;case Zl:return 98;case et:return 97;case dt:return 96;case _t:return 95;default:throw Error(l(332))}}function Nn(S){switch(S){case 99:return ri;case 98:return Zl;case 97:return et;case 96:return dt;case 95:return _t;default:throw Error(l(332))}}function Qi(S,b){return S=Nn(S),bc(S,b)}function ps(S,b,T){return S=Nn(S),ls(S,b,T)}function ni(){if(_e!==null){var S=_e;_e=null,Ys(S)}Dc()}function Dc(){if(!bt&&Be!==null){bt=!0;var S=0;try{var b=Be;Qi(99,function(){for(;S<b.length;S++){var T=b[S];do T=T(!0);while(T!==null)}}),Be=null}catch(T){throw Be!==null&&(Be=Be.slice(S+1)),ls(ri,ni),T}finally{bt=!1}}}var mI=f.ReactCurrentBatchConfig;function Iv(S,b){return S===b&&(S!==0||1/S===1/b)||S!==S&&b!==b}var Xo=typeof Object.is=="function"?Object.is:Iv,yI=Object.prototype.hasOwnProperty;function Hd(S,b){if(Xo(S,b))return!0;if(typeof S!="object"||S===null||typeof b!="object"||b===null)return!1;var T=Object.keys(S),q=Object.keys(b);if(T.length!==q.length)return!1;for(q=0;q<T.length;q++)if(!yI.call(b,T[q])||!Xo(S[T[q]],b[T[q]]))return!1;return!0}function wv(S){switch(S.tag){case 5:return Vl(S.type);case 16:return Vl("Lazy" Line truncated
Error generating stack: `+oe.message+`
`+oe.stack}return{value:S,source:b,stack:z}}function xm(S,b){try{console.error(b.value)}catch(T){setTimeout(function(){throw T})}}var H8=typeof WeakMap=="function"?WeakMap:Map;function bv(S,b,T){T=hl(-1,T),T.tag=3,T.payload={element:null};var q=b.value;return T.callback=function(){UI||(UI=!0,Uv=q),xm(S,b)},T}function km(S,b,T){T=hl(-1,T),T.tag=3;var q=S.type.getDerivedStateFromError;if(typeof q=="function"){var z=b.value;T.payload=function(){return xm(S,b),q(z)}}var oe=S.stateNode;return oe!==null&&typeof oe.componentDidCatch=="function"&&(T.callback=function(){typeof q!="function"&&($l===null?$l=new Set([this]):$l.add(this),xm(S,b));var Se=b.stack;this.componentDidCatch(b.value,{componentStack:Se!==null?Se:""})}),T}var j8=typeof WeakSet=="function"?WeakSet:Set;function Dv(S){var b=S.ref;if(b!==null)if(typeof b=="function")try{b(null)}catch(T){Ch(S,T)}else b.current=null}function xI(S,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&S!==null){var T=S.memoizedProps,q=S.memoizedState;S=b.stateNode,b=S.getSnapshotBeforeUpdate(b.elementType===b.type?T:$o(b.type,T),q),S.__reactInternalSnapshotBeforeUpdate=b}return;case 3:F&&b.flags&256&&Er(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(l(163))}function e0(S,b){if(b=b.updateQueue,b=b!==null?b.lastEffect:null,b!==null){var T=b=b.next;do{if((T.tag&S)===S){var q=T.destroy;T.destroy=void 0,q!==void 0&&q()}T=T.next}while(T!==b)}}function DR(S,b,T){switch(T.tag){case 0:case 11:case 15:case 22:if(b=T.updateQueue,b=b!==null?b.lastEffect:null,b!==null){S=b=b.next;do{if((S.tag&3)===3){var q=S.create;S.destroy=q()}S=S.next}while(S!==b)}if(b=T.updateQueue,b=b!==null?b.lastEffect:null,b!==null){S=b=b.next;do{var z=S;q=z.next,z=z.tag,z&4&&z&1&&(HR(T,S),Z8(T,S)),S=q}while(S!==b)}return;case 1:S=T.stateNode,T.flags&4&&(b===null?S.componentDidMount():(q=T.elementType===T.type?b.memoizedProps:$o(T.type,b.memoizedProps),S.componentDidUpdate(q,b.memoizedState,S.__reactInternalSnapshotBeforeUpdate))),b=T.updateQueue,b!==null&&wI(T,b,S);return;case 3:if(b=T.updateQueue,b!==null){if(S=null,T.child!==null)switch(T.child.tag){case 5:S=Te(T.child.stateNode);break;case 1:S=T.child.stateNode}wI(T,b,S)}return;case 5:S=T.stateNode,b===null&&T.flags&4&&Ft(S,T.type,T.memoizedProps,T);return;case 6:return;case 4:return;case 12:return;case 13:X&&T.memoizedState===null&&(T=T.alternate,T!==null&&(T=T.memoizedState,T!==null&&(T=T.dehydrated,T!==null&&Zu(T))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(l(163))}function PR(S,b){if(F)for(var T=S;;){if(T.tag===5){var q=T.stateNode;b?Nt(q):Xt(T.stateNode,T.memoizedProps)}else if(T.tag===6)q=T.stateNode,b?hr(q):$t(q,T.memoizedProps);else if((T.tag!==23&&T.tag!==24||T.memoizedState===null||T===S)&&T.child!==null){T.child.return=T,T=T.child;continue}if(T===S)break;for(;T.sibling===null;){if(T.return===null||T.return===S)return;T=T.return}T.sibling.return=T.return,T=T.sibling}}function kI(S,b){if(vc&&typeof vc.onCommitFiberUnmount=="function")try{vc.onCommitFiberUnmount(it,b)}catch{}switch(b.tag){case 0:case 11:case 14:case 15:case 22:if(S=b.updateQueue,S!==null&&(S=S.lastEffect,S!==null)){var T=S=S.next;do{var q=T,z=q.destroy;if(q=q.tag,z!==void 0)if(q&4)HR(b,T);else{q=b;try{z()}catch(oe){Ch(q,oe)}}T=T.next}while(T!==S)}break;case 1:if(Dv(b),S=b.stateNode,typeof S.componentWillUnmount=="function")try{S.props=b.memoizedProps,S.state=b.memoizedState,S.componentWillUnmount()}catch(oe){Ch(b,oe)}break;case 5:Dv(b);break;case 4:F?TR(S,b):Z&&Z&&(b=b.stateNode.containerInfo,S=Tn(b),La(b,S))}}function xR(S,b){for(var T=b;;)if(kI(S,T),T.child===null||F&&T.tag===4){if(T===b)break;for(;T.sibling===null;){if(T.return===null||T.return===b)return;T=T.return}T.sibling.return=T.return,T=T.sibling}else T.child.return=T,T=T.child}function RI(S){S.alternate=null,S.child=null,S.dependencies=null,S.firstEffect=null,S.lastEffect=null,S.memoizedProps=null,S.memoizedState=null,S.pendingProps=null,S.return=null,S.updateQueue=null}function kR(S){return S.tag===5||S.tag===3||S.tag===4}function RR(S){if(F){e:{for(var b=S.return;b!==null;){if(kR(b))break e;b=b.return}throw Error(l(160))}var T=b;switch(b=T.stateNode,T.tag){case 5:var q=!1;break;case 3:b=b.containerInfo,q=!0;break;case 4:b=b.containerInfo,q=!0;break;default:throw Error(l(161))}T.flags&16&&(Lt(b),T.flags&=-17);e:t:for(T=S;;){for(;T.sibling===null;){if(T.return===null||kR(T.return)){T=null;break e}T=T.return}for(T.sibling.return=T.return,T=T.sibling;T.tag!==5&&T.tag!==6&&T.tag!==18;){if(T.flags&2||T.child===null||T.tag===4)continue t;T.child.return=T,T=T.child}if(!(T.flags&2)){T=T.stateNode;break e}}q?Pv(S,T,b):xv(S,T,b)}}function Pv(S,b,T){var q=S.tag,z=q===5||q===6;if(z)S=z?S.stateNode:S.stateNode.instance,b?Tt(T,S,b):Bt(T,S);else if(q!==4&&(S=S.child,S!==null))for(Pv(S,b,T),S=S.sibling;S!==null;)Pv(S,b,T),S=S.sibling}function xv(S,b,T){var q=S.tag,z=q===5||q===6;if(z)S=z?S.stateNode:S.stateNode.instance,b?Ze(T,S,b):lt(T,S);els Line truncated
Add a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.`)}zs!==5&&(zs=2),wt=Pm(wt,qe),gr=Se;do{switch(gr.tag){case 3:oe=wt,gr.flags|=4096,b&=-b,gr.lanes|=b;var Bi=bv(gr,oe,b);II(gr,Bi);break e;case 1:oe=wt;var Zr=gr.type,ii=gr.stateNode;if(!(gr.flags&64)&&(typeof Zr.getDerivedStateFromError=="function"||ii!==null&&typeof ii.componentDidCatch=="function"&&($l===null||!$l.has(ii)))){gr.flags|=4096,b&=-b,gr.lanes|=b;var li=km(gr,oe,b);II(gr,li);break e}}gr=gr.return}while(gr!==null)}UR(T)}catch(yn){b=yn,Cs===T&&T!==null&&(Cs=T=T.return);continue}break}while(!0)}function _R(){var S=_I.current;return _I.current=qt,S===null?qt:S}function Um(S,b){var T=Kr;Kr|=16;var q=_R();Fo===S&&oo===b||i0(S,b);do try{Y8();break}catch(z){LR(S,z)}while(!0);if(gm(),Kr=T,_I.current=q,Cs!==null)throw Error(l(261));return Fo=null,oo=0,zs}function Y8(){for(;Cs!==null;)MR(Cs)}function K8(){for(;Cs!==null&&!ul();)MR(Cs)}function MR(S){var b=qR(S.alternate,S,op);S.memoizedProps=S.pendingProps,b===null?UR(S):Cs=b,Qv.current=null}function UR(S){var b=S;do{var T=b.alternate;if(S=b.return,b.flags&2048){if(T=U8(b),T!==null){T.flags&=2047,Cs=T;return}S!==null&&(S.firstEffect=S.lastEffect=null,S.flags|=2048)}else{if(T=M8(T,b,op),T!==null){Cs=T;return}if(T=b,T.tag!==24&&T.tag!==23||T.memoizedState===null||op&1073741824||!(T.mode&4)){for(var q=0,z=T.child;z!==null;)q|=z.lanes|z.childLanes,z=z.sibling;T.childLanes=q}S!==null&&!(S.flags&2048)&&(S.firstEffect===null&&(S.firstEffect=b.firstEffect),b.lastEffect!==null&&(S.lastEffect!==null&&(S.lastEffect.nextEffect=b.firstEffect),S.lastEffect=b.lastEffect),1<b.flags&&(S.lastEffect!==null?S.lastEffect.nextEffect=b:S.firstEffect=b,S.lastEffect=b))}if(b=b.sibling,b!==null){Cs=b;return}Cs=b=S}while(b!==null);zs===0&&(zs=5)}function ap(S){var b=Ir();return Qi(99,z8.bind(null,S,b)),null}function z8(S,b){do hf();while(Nm!==null);if(Kr&48)throw Error(l(327));var T=S.finishedWork;if(T===null)return null;if(S.finishedWork=null,S.finishedLanes=0,T===S.current)throw Error(l(177));S.callbackNode=null;var q=T.lanes|T.childLanes,z=q,oe=S.pendingLanes&~z;S.pendingLanes=z,S.suspendedLanes=0,S.pingedLanes=0,S.expiredLanes&=z,S.mutableReadLanes&=z,S.entangledLanes&=z,z=S.entanglements;for(var Se=S.eventTimes,qe=S.expirationTimes;0<oe;){var wt=31-ks(oe),cr=1<<wt;z[wt]=0,Se[wt]=-1,qe[wt]=-1,oe&=~cr}if(uf!==null&&!(q&24)&&uf.has(S)&&uf.delete(S),S===Fo&&(Cs=Fo=null,oo=0),1<T.flags?T.lastEffect!==null?(T.lastEffect.nextEffect=T,q=T.firstEffect):q=T:q=T.firstEffect,q!==null){z=Kr,Kr|=32,Qv.current=null,_m=rt(S.containerInfo),Mm=!1,Br=q;do try{J8()}catch(Ke){if(Br===null)throw Error(l(330));Ch(Br,Ke),Br=Br.nextEffect}while(Br!==null);_m=null,Br=q;do try{for(Se=S;Br!==null;){var qr=Br.flags;if(qr&16&&F&&Lt(Br.stateNode),qr&128){var rn=Br.alternate;if(rn!==null){var gr=rn.ref;gr!==null&&(typeof gr=="function"?gr(null):gr.current=null)}}switch(qr&1038){case 2:RR(Br),Br.flags&=-3;break;case 6:RR(Br),Br.flags&=-3,kv(Br.alternate,Br);break;case 1024:Br.flags&=-1025;break;case 1028:Br.flags&=-1025,kv(Br.alternate,Br);break;case 4:kv(Br.alternate,Br);break;case 8:qe=Se,oe=Br,F?TR(qe,oe):xR(qe,oe);var Ii=oe.alternate;RI(oe),Ii!==null&&RI(Ii)}Br=Br.nextEffect}}catch(Ke){if(Br===null)throw Error(l(330));Ch(Br,Ke),Br=Br.nextEffect}while(Br!==null);Mm&&pt(),Ne(S.containerInfo),S.current=T,Br=q;do try{for(qr=S;Br!==null;){var ji=Br.flags;if(ji&36&&DR(qr,Br.alternate,Br),ji&128){rn=void 0;var Fc=Br.ref;if(Fc!==null){var at=Br.stateNode;switch(Br.tag){case 5:rn=Te(at);break;default:rn=at}typeof Fc=="function"?Fc(rn):Fc.current=rn}}Br=Br.nextEffect}}catch(Ke){if(Br===null)throw Error(l(330));Ch(Br,Ke),Br=Br.nextEffect}while(Br!==null);Br=null,ne(),Kr=z}else S.current=T;if(wh)wh=!1,Nm=S,Om=b;else for(Br=q;Br!==null;)b=Br.nextEffect,Br.nextEffect=null,Br.flags&8&&(ji=Br,ji.sibling=null,ji.stateNode=null),Br=b;if(q=S.pendingLanes,q===0&&($l=null),q===1?S===Gv?Lm++:(Lm=0,Gv=S):Lm=0,T=T.stateNode,vc&&typeof vc.onCommitFiberRoot=="function")try{vc.onCommitFiberRoot(it,T,void 0,(T.current.flags&64)===64)}catch{}if(Ka(S,jt()),UI)throw UI=!1,S=Uv,Uv=null,S;return Kr&8||ni(),null}function J8(){for(;Br!==null;){var S=Br.alternate;Mm||_m===null||(Br.flags&8?Pe(Br,_m)&&(Mm=!0,Le()):Br.tag===13&&G8(S,Br)&&Pe(Br,_m)&&(Mm=!0,Le()));var b=Br.flags;b&256&&xI(S,Br),!(b&512)||wh||(wh=!0,ps(97,function(){return hf(),null})),Br=Br.nextEffect}}function hf(){if(Om!==90){var S=97<Om?97:Om;return Om=90,Qi(S,X8)}return!1}function Z8(S,b){Hv.push(b,S),wh||(wh=!0,ps(97,function(){return hf(),null}))}function HR(S,b){jv.push(b,S),wh||(wh=!0,ps(97,function(){return hf(),null}))}function X8(){if(Nm===null)return!1;var S=Nm;if(Nm=null,Kr&48)throw Error(l(331));var b=Kr;Kr|=32;var T=jv;jv=[];for(var q=0;q<T.length;q+=2){var z=T[q],oe=T[q+1],Se=z.destroy;if(z.destroy=void 0,typeof Se=="function")try{Se()}catch(wt){if(oe===null)throw Error(l(330));Ch(oe,wt)}}for(T=Hv,Hv=[],q=0;q<T.length;q+=2){z=T[q],oe=T[q+1];try{va Line truncated
`+(q.join(" > ")+`
No matching component was found for:
`)+S.join(" > ")}return null},r.getPublicRootInstance=function(S){if(S=S.current,!S.child)return null;switch(S.child.tag){case 5:return Te(S.child.stateNode);default:return S.child.stateNode}},r.injectIntoDevTools=function(S){if(S={bundleType:S.bundleType,version:S.version,rendererPackageName:S.rendererPackageName,rendererConfig:S.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:f.ReactCurrentDispatcher,findHostInstanceByFiber:n3,findFiberByHostInstance:S.findFiberByHostInstance||i3,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")S=!1;else{var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!b.isDisabled&&b.supportsFiber)try{it=b.inject(S),vc=b}catch{}S=!0}return S},r.observeVisibleRects=function(S,b,T,q){if(!er)throw Error(l(363));S=Tv(S,b);var z=Ue(S,T,q).disconnect;return{disconnect:function(){z()}}},r.registerMutableSourceForHydration=function(S,b){var T=b._getVersion;T=T(b._source),S.mutableSourceEagerHydrationData==null?S.mutableSourceEagerHydrationData=[b,T]:S.mutableSourceEagerHydrationData.push(b,T)},r.runWithPriority=function(S,b){var T=Yl;try{return Yl=S,b()}finally{Yl=T}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(S,b){var T=Kr;Kr&=-2,Kr|=8;try{return S(b)}finally{Kr=T,Kr===0&&(Ih(),ni())}},r.updateContainer=function(S,b,T,q){var z=b.current,oe=ia(),Se=Js(z);e:if(T){T=T._reactInternals;t:{if(be(T)!==T||T.tag!==1)throw Error(l(170));var qe=T;do{switch(qe.tag){case 3:qe=qe.stateNode.context;break t;case 1:if(Ei(qe.type)){qe=qe.stateNode.__reactInternalMemoizedMergedChildContext;break t}}qe=qe.return}while(qe!==null);throw Error(l(171))}if(T.tag===1){var wt=T.type;if(Ei(wt)){T=wc(T,wt,qe);break e}}T=qe}else T=Ha;return b.context===null?b.context=T:b.pendingContext=T,b=hl(oe,Se),b.payload={element:S},q=q===void 0?null:q,q!==null&&(b.callback=q),Al(z,b),yl(z,Se,oe),Se},r}});var Cbe=H((apr,wbe)=>{"use strict";wbe.exports=Ibe()});var vbe=H((cpr,Bbe)=>{"use strict";var qwt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};Bbe.exports=qwt});var Pbe=H((lpr,Dbe)=>{"use strict";var Vwt=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(t[s]=r[s])}return t},SL=function(){function t(e,r){for(var s=0;s<r.length;s++){var a=r[s];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(e,r,s){return r&&t(e.prototype,r),s&&t(e,s),e}}();function OK(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function LK(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var Wf=vbe(),Wwt=function(){function t(e,r,s,a,n,l){LK(this,t),this.left=e,this.right=r,this.top=s,this.bottom=a,this.width=n,this.height=l}return SL(t,[{key:"fromJS",value:function(r){r(this.left,this.right,this.top,this.bottom,this.width,this.height)}},{key:"toString",value:function(){return"<Layout#"+this.left+":"+this.right+";"+this.top+":"+this.bottom+";"+this.width+":"+this.height+">"}}]),t}(),Sbe=function(){SL(t,null,[{key:"fromJS",value:function(r){var s=r.width,a=r.height;return new t(s,a)}}]);function t(e,r){LK(this,t),this.width=e,this.height=r}return SL(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toStri Line truncated
`+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),Module.buffer?buffer=Module.buffer:buffer=new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}if(HEAP32[0]=1668509029,HEAP16[1]=25459,HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;function callRuntimeCallbacks(t){for(;t.length>0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var s=r>0?r:lengthBytesUTF8(t)+1,a=new Array(s),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r<t.length;r++){var s=t[r];s>255&&(s&=255),e.push(String.fromCharCode(s))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var s,a;r&&(a=e+lengthBytesUTF8(t),s=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=s)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var s=0;s<t.length;++s)HEAP8[e++>>0]=t.charCodeAt(s);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var s=e>>>16,a=e&65535,n=r>>>16,l=r&65535;return a*l+(s*l+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.cei Line truncated
If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(s){r=s(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var uE=H((fpr,kbe)=>{"use strict";var Ywt=Pbe(),Kwt=xbe(),_K=!1,MK=null;Kwt({},function(t,e){if(!_K){if(_K=!0,t)throw t;MK=e}});if(!_K)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");kbe.exports=Ywt(MK.bind,MK.lib)});var HK=H((hpr,UK)=>{"use strict";var Rbe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);UK.exports=Rbe;UK.exports.default=Rbe});var Qbe=H((Apr,Tbe)=>{"use strict";Tbe.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E Line truncated
`))e=Math.max(e,Xwt(r));return e};GK.exports=Nbe;GK.exports.default=Nbe});var Obe=H(hP=>{"use strict";var $wt=hP&&hP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hP,"__esModule",{value:!0});var eCt=$wt(qK()),VK={};hP.default=t=>{if(t.length===0)return{width:0,height:0};if(VK[t])return VK[t];let e=eCt.default(t),r=t.split(`
`).length;return VK[t]={width:e,height:r},{width:e,height:r}}});var Lbe=H(AP=>{"use strict";var tCt=AP&&AP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(AP,"__esModule",{value:!0});var Xn=tCt(uE()),rCt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?Xn.default.POSITION_TYPE_ABSOLUTE:Xn.default.POSITION_TYPE_RELATIVE)},nCt=(t,e)=>{"marginLeft"in e&&t.setMargin(Xn.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(Xn.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(Xn.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(Xn.default.EDGE_BOTTOM,e.marginBottom||0)},iCt=(t,e)=>{"paddingLeft"in e&&t.setPadding(Xn.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(Xn.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(Xn.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(Xn.default.EDGE_BOTTOM,e.paddingBottom||0)},sCt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(Xn.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(Xn.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(Xn.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(Xn.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(Xn.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(Xn.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(Xn.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(Xn.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(Xn.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(Xn.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(Xn.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(Xn.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(Xn.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(Xn.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(Xn.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(Xn.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(Xn.default.JUSTIFY_SPACE_AROUND))},oCt=(t,e)=>{var r,s;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((s=e.minHeight)!==null&&s!==void 0?s:0))},aCt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?Xn.default.DISPLAY_FLEX:Xn.default.DISPLAY_NONE)},cCt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(Xn.default.EDGE_TOP,r),t.setBorder(Xn.default.EDGE_BOTTOM,r),t.setBorder(Xn.default.EDGE_LEFT,r),t.setBorder(Xn.default.EDGE_RIGHT,r)}};AP.default=(t,e={})=>{rCt(t,e),nCt(t,e),iCt(t,e),sCt(t,e),oCt(t,e),aCt(t,e),cCt(t,e)}});var Ube=H((ypr,Mbe)=>{"use strict";var pP=fP(),lCt=CQ(),uCt=fQ(),YK=new Set(["\x1B","\x9B"]),fCt=39,_be=t=>`${YK.values().next().value}[${t}m`,hCt=t=>t.split(" ").map(e=>pP(e)),WK=(t,e,r)=>{let s=[...e],a=!1,n=pP(lCt(t[t.length-1]));for(let[l,f]of s.entries()){let h=pP(f);if(n+h<=r?t[t.length-1]+=f:(t.push(f),n=0),YK.has(f))a=!0;else if(a&&f==="m"){a=!1;continue}a||(n+=h,n===r&&l<s.length-1&&(t.push(""),n=0))}!n&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},ACt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(pP(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},pCt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let s="",a="",n,l=hCt(t),f=[""];for(let[h,A]of t.split(" ").entries()){r.trim!==!1&&(f[f.length-1]=f[f.length-1].trimLeft());let m=pP(f[f.length-1]);if(h!==0&&(m>=e&&(r.wordWrap===!1||r.trim===!1)&&(f.push(""),m=0),(m>0||r.trim===!1)&&(f[f.length-1]+=" ",m++)),r.hard&&l[h]>e){let w=e-m,B=1+Math.floor((l[h]-w-1)/e);Math.floor((l[h]-1)/e)<B&&f.push(""),WK(f,A,e);continue}if(m+l[h]>e&&m>0&&l[h]>0){if(r.wordWrap===!1&&m<e){WK(f,A,e);continue}f.push("")}if(m+l[h]>e&&r.wordWrap===!1){WK(f,A,e);continue}f[f. Line truncated
`);for(let[h,A]of[...s].entries()){if(a+=A,YK.has(A)){let w=parseFloat(/\d[^m]*/.exec(s.slice(h,h+4)));n=w===fCt?null:w}let m=uCt.codes.get(Number(n));n&&m&&(s[h+1]===`
`?a+=_be(m):A===`
`&&(a+=_be(n)))}return a};Mbe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,`
`).split(`
`).map(s=>pCt(s,e,r)).join(`
`)});var Gbe=H((Epr,jbe)=>{"use strict";var Hbe="[\uD800-\uDBFF][\uDC00-\uDFFF]",dCt=t=>t&&t.exact?new RegExp(`^${Hbe}$`):new RegExp(Hbe,"g");jbe.exports=dCt});var KK=H((Ipr,Ybe)=>{"use strict";var gCt=HK(),mCt=Gbe(),qbe=fQ(),Wbe=["\x1B","\x9B"],bL=t=>`${Wbe[0]}[${t}m`,Vbe=(t,e,r)=>{let s=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let l=qbe.codes.get(parseInt(a,10));if(l){let f=t.indexOf(l.toString());f>=0?t.splice(f,1):s.push(bL(e?l:n))}else if(e){s.push(bL(0));break}else s.push(bL(n))}if(e&&(s=s.filter((a,n)=>s.indexOf(a)===n),r!==void 0)){let a=bL(qbe.codes.get(parseInt(r,10)));s=s.reduce((n,l)=>l===a?[l,...n]:[...n,l],[])}return s.join("")};Ybe.exports=(t,e,r)=>{let s=[...t.normalize()],a=[];r=typeof r=="number"?r:s.length;let n=!1,l,f=0,h="";for(let[A,m]of s.entries()){let w=!1;if(Wbe.includes(m)){let B=/\d[^m]*/.exec(t.slice(A,A+18));l=B&&B.length>0?B[0]:void 0,f<r&&(n=!0,l!==void 0&&a.push(l))}else n&&m==="m"&&(n=!1,w=!0);if(!n&&!w&&++f,!mCt({exact:!0}).test(m)&&gCt(m.codePointAt())&&++f,f>e&&f<=r)h+=m;else if(f===e&&!n&&l!==void 0)h=Vbe(a);else if(f>=r){h+=Vbe(a,!0,l);break}}return h}});var zbe=H((wpr,Kbe)=>{"use strict";var wg=KK(),yCt=fP();function DL(t,e,r){if(t.charAt(e)===" ")return e;for(let s=1;s<=3;s++)if(r){if(t.charAt(e+s)===" ")return e+s}else if(t.charAt(e-s)===" ")return e-s;return e}Kbe.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:s,space:a,preferTruncationOnSpace:n}=r,l="\u2026",f=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return l;let h=yCt(t);if(h<=e)return t;if(s==="start"){if(n){let A=DL(t,h-e+1,!0);return l+wg(t,A,h).trim()}return a===!0&&(l+=" ",f=2),l+wg(t,h-e+f,h)}if(s==="middle"){a===!0&&(l=" "+l+" ",f=3);let A=Math.floor(e/2);if(n){let m=DL(t,A),w=DL(t,h-(e-A)+1,!0);return wg(t,0,m)+l+wg(t,w,h).trim()}return wg(t,0,A)+l+wg(t,h-(e-A)+f,h)}if(s==="end"){if(n){let A=DL(t,e-1);return wg(t,0,A)+l}return a===!0&&(l=" "+l,f=2),wg(t,0,e-f)+l}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${s}`)}});var JK=H(dP=>{"use strict";var Jbe=dP&&dP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(dP,"__esModule",{value:!0});var ECt=Jbe(Ube()),ICt=Jbe(zbe()),zK={};dP.default=(t,e,r)=>{let s=t+String(e)+String(r);if(zK[s])return zK[s];let a=t;if(r==="wrap"&&(a=ECt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=ICt.default(t,e,{position:n})}return zK[s]=a,a}});var XK=H(ZK=>{"use strict";Object.defineProperty(ZK,"__esModule",{value:!0});var Zbe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let s="";r.nodeName==="#text"?s=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(s=Zbe(r)),s.length>0&&typeof r.internal_transform=="function"&&(s=r.internal_transform(s))),e+=s}return e};ZK.default=Zbe});var $K=H($i=>{"use strict";var gP=$i&&$i.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty($i,"__esModule",{value:!0});$i.setTextNodeValue=$i.createTextNode=$i.setStyle=$i.setAttribute=$i.removeChildNode=$i.insertBeforeNode=$i.appendChildNode=$i.createNode=$i.TEXT_NAME=void 0;var wCt=gP(uE()),Xbe=gP(Obe()),CCt=gP(Lbe()),BCt=gP(JK()),vCt=gP(XK());$i.TEXT_NAME="#text";$i.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:wCt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(SCt.bind(null,r))),r};$i.appendChildNode=(t,e)=>{var r;e.parentNode&&$i.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&PL(t)};$i.insertBeforeNode=(t,e,r)=>{var s,a;e.parentNode&&$i.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((s=t.yogaNode)===null||s===void 0||s.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&PL(t)};$i.removeChildNode=(t,e)=>{var r,s;e.yogaNode&&((s=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||s===void 0||s.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&PL(t)};$i.setAttribute=(t,e,r)=>{t.attributes[e]=r};$i.setStyle=(t,e)=>{t.style=e,t.yogaNode&&CCt.default(t.yogaNode,e)};$i.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaLine truncated
`).repeat(n-2),m=rz.default(f.bottomLeft+f.horizontal.repeat(a-2)+f.bottomRight,l,"foreground");s.write(t,e,h,{transformers:[]}),s.write(t,e+1,A,{transformers:[]}),s.write(t+a-1,e+1,A,{transformers:[]}),s.write(t,e+n-1,m,{transformers:[]})}}});var pDe=H(CP=>{"use strict";var fE=CP&&CP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(CP,"__esModule",{value:!0});var QCt=fE(uE()),FCt=fE(qK()),NCt=fE(oDe()),OCt=fE(JK()),LCt=fE(aDe()),_Ct=fE(XK()),MCt=fE(hDe()),UCt=(t,e)=>{var r;let s=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(s){let a=s.getComputedLeft(),n=s.getComputedTop();e=`
`.repeat(n)+NCt.default(e,a)}return e},ADe=(t,e,r)=>{var s;let{offsetX:a=0,offsetY:n=0,transformers:l=[],skipStaticElements:f}=r;if(f&&t.internal_static)return;let{yogaNode:h}=t;if(h){if(h.getDisplay()===QCt.default.DISPLAY_NONE)return;let A=a+h.getComputedLeft(),m=n+h.getComputedTop(),w=l;if(typeof t.internal_transform=="function"&&(w=[t.internal_transform,...l]),t.nodeName==="ink-text"){let B=_Ct.default(t);if(B.length>0){let D=FCt.default(B),I=LCt.default(h);if(D>I){let R=(s=t.style.textWrap)!==null&&s!==void 0?s:"wrap";B=OCt.default(B,I,R)}B=UCt(t,B),e.write(A,m,B,{transformers:w})}return}if(t.nodeName==="ink-box"&&MCt.default(A,m,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let B of t.childNodes)ADe(B,e,{offsetX:A,offsetY:m,transformers:w,skipStaticElements:f})}};CP.default=ADe});var mDe=H(BP=>{"use strict";var gDe=BP&&BP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(BP,"__esModule",{value:!0});var dDe=gDe(KK()),HCt=gDe(fP()),nz=class{constructor(e){this.writes=[];let{width:r,height:s}=e;this.width=r,this.height=s}write(e,r,s,a){let{transformers:n}=a;s&&this.writes.push({x:e,y:r,text:s,transformers:n})}get(){let e=[];for(let s=0;s<this.height;s++)e.push(" ".repeat(this.width));for(let s of this.writes){let{x:a,y:n,text:l,transformers:f}=s,h=l.split(`
`),A=0;for(let m of h){let w=e[n+A];if(!w)continue;let B=HCt.default(m);for(let D of f)m=D(m);e[n+A]=dDe.default(w,0,a)+m+dDe.default(w,a+B),A++}}return{output:e.map(s=>s.trimRight()).join(`
`),height:e.length}}};BP.default=nz});var IDe=H(vP=>{"use strict";var iz=vP&&vP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vP,"__esModule",{value:!0});var jCt=iz(uE()),yDe=iz(pDe()),EDe=iz(mDe());vP.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,jCt.default.DIRECTION_LTR);let s=new EDe.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});yDe.default(t,s,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new EDe.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),yDe.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:l}=s.get();return{output:n,outputHeight:l,staticOutput:a?`${a.get().output}
`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var vDe=H((Npr,BDe)=>{"use strict";var wDe=Ae("stream"),CDe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],sz={},GCt=t=>{let e=new wDe.PassThrough,r=new wDe.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let s=new console.Console(e,r);for(let a of CDe)sz[a]=console[a],console[a]=s[a];return()=>{for(let a of CDe)console[a]=sz[a];sz={}}};BDe.exports=GCt});var az=H(oz=>{"use strict";Object.defineProperty(oz,"__esModule",{value:!0});oz.default=new WeakMap});var lz=H(cz=>{"use strict";Object.defineProperty(cz,"__esModule",{value:!0});var qCt=Ln(),SDe=qCt.createContext({exit:()=>{}});SDe.displayName="InternalAppContext";cz.default=SDe});var fz=H(uz=>{"use strict";Object.defineProperty(uz,"__esModule",{value:!0});var VCt=Ln(),bDe=VCt.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});bDe.displayName="InternalStdinContext";uz.default=bDe});var Az=H(hz=>{"use strict";Object.defineProperty(hz,"__esModule",{value:!0});var WCt=Ln(),DDe=WCt.createContext({stdout:void 0,write:()=>{}});DDe.displayName="InternalStdoutContext";hz.default=DDe});var dz=H(pz=>{"use strict";Object.defineProperty(pz,"__esModule",{value:!0});var YCt=Ln(),PDe=YCt.createContext({stderr:void 0,write:()=>{}});PDe.displayName="InternalStderrContext";pz.default=PDe});var RL=H(gz=>{"use strict";Object.defineProperty(gz,"__esModule",{value:!0});var KCt=Ln(),xDe=KCt.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});xDe.displayName="InternalFocusContext";gz.default=xDe});var RDe=H((jpr,kDe)=>{"use strict";var zCt=/[|\\{}()[\]^$+*?.-]/g;kDe.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(zCt,"\\$&")}});var NDe=H((Gpr,FDe)=>{"use strict";var JCt=RDe(),ZCt=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",QDe=[].concat(Ae("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));QDe.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var mz=class t{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=t.nodeInternals()),"cwd"in e||(e.cwd=ZCt),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,XCt(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...QDe]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(`
`)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let s=!1,a=null,n=[];return e.forEach(l=>{if(l=l.replace(/\\/g,"/"),this._internals.some(h=>h.test(l)))return;let f=/^\s*at /.test(l);s?l=l.trimEnd().replace(/^(\s+)at /,"$1"):(l=l.trim(),f&&(l=l.slice(3))),l=l.replace(`${this._cwd}/`,""),l&&(f?(a&&(n.push(a),a=null),n.push(l)):(s=!0,a=l))}),n.map(l=>`${r}${l}
`).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:s}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=s,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:s,stackTraceLimit:a}=Error;Error.prepareStackTrace=(f,h)=>this._wrapCallSite?h.map(this._wrapCallSite):h,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:l}=n;return Object.assign(Error,{prepareStackTrace:s,stackTraceLimit:a}),l}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let s={line:r.getLineNumber(),column:r.getColumnNumber()};TDe(s,r.getFileName(),this._cwd),r.isConstructor()&&(s.constructor=!0),r.isEval()&&(s.evalOrigin=r.getEvalOrigin()),r.isNative()&&(s.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(s.type=a);let n=r.getFunctionName();n&&(s.function=n);let l=r.getMethodName();return l&&n!==l&&(s.method=l),s}parseLine(e){let r=e&&e.match($Ct);if(!r)return null;let s=r[1]==="new",a=r[2],n=r[3],l=r[4],f=Number(r[5]),h=Number(r[6]),A=r[7],m=r[8],w=r[9],B=r[10]==="native",D=r[11]===")",I,R={};if(m&&(R.line=Number(m)),w&&(R.column=Number(w)),D&&A){let N=0;for(let U=A.length-1;U>0;U--)if(A.charAt(U)===")")N++;else if(A.charAt(U)==="("&&A.charAt(U-1)===" "&&(N--,N===-1&&A.charAt(U-1)===" ")){let V=A.slice(0,U-1);A=A.slice(U+1),a+=` (${V}`;break}}if(a){let N=a.match(e1t);N&&(a=N[1],I=N[2])}return TDe(R,A,this._cwd),s&&(R.constructor=!0),n&&(R.evalOrigin=n,R.evalLine=f,R.evalColumn=h,R.evalFile=l&&l.replace(/\\/g,"/")),B&&(R.native=!0),a&&(R.function=a),I&&a!==I&&(R.method=I),R}};function TDe(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function XCt(t){if(t.length===0)return[];let e=t.map(r=>JCt(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var $Ct=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),e1t=/^(.*?) \[as (.*?)\]$/;FDe.exports=mz});var LDe=H((qpr,ODe)=>{"use strict";ODe.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var MDe=H((Vpr,_De)=>{"use strict";var t1t=LDe(),r1t=(t,e)=>{let r=[],s=t-e,a=t+e;for(let n=s;n<=a;n++)r.push(n);return r};_De.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=t1t(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},r1t(e,r.around).filter(s=>t[s-1]!==void 0).map(s=>({line:s,value:t[s-1]}))}});var TL=H(Yf=>{"use strict";var n1t=Yf&&Yf.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),i1t=Yf&&Yf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),s1t=Yf&&Yf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&n1t(e,t,r);return i1t(e,t),e},o1t=Yf&&Yf.__rest||function(t,e){var r={};for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&e.indexOf(s)<0&&(r[s]=t[s]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,s=Object.getOwnPropertySymbols(t);a<s.length;a++)e.indexOf(s[a])<0&&Object.prototype.propertyIsEnumerable.call(t,s[a])&&(r[s[a]]=t[s[a]]);return r};Object.defineProperty(Yf,"__esModule",{value:!0});var UDe=s1t(Ln()),yz=UDe.forwardRef((t,e)=>{var{children:r}=t,s=o1t(t,["children"]);let a=Object.assign(Object.assign({},s),{marginLeft:s.marginLeft||s.marginX||s.margin||0,marginRight:s.marginRight||s.marginX||s.margin||0,marginTop:s.marginTop||s.marginY||s.margin||0,marginBottom:s.marginBottom||s.marginY||s.margin||0,paddingLeft:s.paddingLeft||s.paddingX||s.padding||0,paddingRight:s.paddingRight||s.paddingX||s.padding||0,paddingTop:s.paddingTop||s.paddingY||s.padding||0,paddingBottom:s.paddingBottom||s.paddingY||s.padding||0});return UDe.default.createElement("ink-box",{ref:e,style:a},r)});yz.displayName="Box";yz.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};Yf.default=yz});var wz=H(SP=>{"use strict";var Ez=SP&&SP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(SP,"__esModule",{value:!0});var a1t=Ez(Ln()),Z1=Ez(Cw()),HDe=Ez(tz()),Iz=({color:t,backgroundColor:e,dimColor:r,bold:s,italic:a,underline:n,strikethrough:l,inverse:f,wrap:h,children:A})=>{if(A==null)return null;let m=w=>(r&&(w=Z1.default.dim(w)),t&&(w=HDe.default(w,t,"foreground")),e&&(w=HDe.default(w,e,"background")),s&&(w=Z1.default.bold(w)),a&&(w=Z1.default.italic(w)),n&&(w=Z1.default.underline(w)),l&&(w=Z1.default.strikethrough(w)),f&&(w=Z1.default.inverse(w)),w);return a1t.default.createElement("ink-text",{style:{flexGrow:0,flexSLine truncated
`).slice(1):void 0,r=e?qDe.parseLine(e[0]):void 0,s,a=0;if(r?.file&&r?.line&&jDe.existsSync(r.file)){let n=jDe.readFileSync(r.file,"utf8");if(s=f1t.default(n,r.line),s)for(let{line:l}of s)a=Math.max(a,String(l).length)}return no.default.createElement(rd.default,{flexDirection:"column",padding:1},no.default.createElement(rd.default,null,no.default.createElement(sA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),no.default.createElement(sA.default,null," ",t.message)),r&&no.default.createElement(rd.default,{marginTop:1},no.default.createElement(sA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&s&&no.default.createElement(rd.default,{marginTop:1,flexDirection:"column"},s.map(({line:n,value:l})=>no.default.createElement(rd.default,{key:n},no.default.createElement(rd.default,{width:a+1},no.default.createElement(sA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),no.default.createElement(sA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+l)))),t.stack&&no.default.createElement(rd.default,{marginTop:1,flexDirection:"column"},t.stack.split(`
`).slice(1).map(n=>{let l=qDe.parseLine(n);return l?no.default.createElement(rd.default,{key:n},no.default.createElement(sA.default,{dimColor:!0},"- "),no.default.createElement(sA.default,{dimColor:!0,bold:!0},l.function),no.default.createElement(sA.default,{dimColor:!0,color:"gray"}," ","(",l.file,":",l.line,":",l.column,")")):no.default.createElement(rd.default,{key:n},no.default.createElement(sA.default,{dimColor:!0},"- "),no.default.createElement(sA.default,{dimColor:!0,bold:!0},n))})))};Kf.default=h1t});var YDe=H(zf=>{"use strict";var A1t=zf&&zf.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),p1t=zf&&zf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),d1t=zf&&zf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&A1t(e,t,r);return p1t(e,t),e},AE=zf&&zf.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(zf,"__esModule",{value:!0});var hE=d1t(Ln()),WDe=AE(BK()),g1t=AE(lz()),m1t=AE(fz()),y1t=AE(Az()),E1t=AE(dz()),I1t=AE(RL()),w1t=AE(VDe()),C1t=" ",B1t="\x1B[Z",v1t="\x1B",QL=class extends hE.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default.
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink.
Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===v1t&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===C1t&&this.focusNext(),e===B1t&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=e=>{this.setState(r=>r.focusables.some(a=>a?.id===e)?{activeFocusId:e}:r)},this.focusNext=()=>{this.setState(e=>{var r;let s=(r=e.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(e)||s}})},this.focusPrevious=()=>{this.setState(e=>{var r;let s=(r=e.focusables[e.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(e)||s}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(s=>{let a=s.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...s.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(s=>s.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(s=>s.id!==e?s:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(s=>s.id!==e?s:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{var r;let s=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=s+1;a<e.focusables.length;a++)if(!((r=e.focusables[a])===null||r===void 0)&&r.isActive)return e.focusables[a].id},this.findPreviousFocusable=e=>{var r;let s=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=s-1;a>=0;a--)if(!((r=e.focusables[a])===null||r===void 0)&&r.isActive)return e.focusables[a].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return hE.default.createElement(g1t.default.Provider,{value:{exit:this.handleExit}},hE.default.createElement(m1t.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},hE.default.createElement(y1t.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},hE.default.createElement(E1t.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},hE.default.createElement(I1t.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?hE.default.createElement(w1t.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){WDe.default.hide(this.props.stdout)}componentWillUnmount(){WDe.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};zf.default=QL;QL.displayName="InternalApp"});var JDe=H(Jf=>{"use strict";var S1t=Jf&&Jf.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),b1t=Jf&&Jf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),D1t=Jf&&Jf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&S1t(e,t,r);return b1t(e,t),e},Zf=Jf&&Jf.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Jf,"__esModule",{value:!0});var P1t=Zf(Ln()),KDe=jSe(),x1t=Zf(ibe()),k1t=Zf(yK()),R1t=Zf(ube()),T1t=Zf(hbe()),Cz=Zf(iDe()),Q1t=Zf(IDe()),F1t=Zf(CK()),N1t=Zf(vDe()),O1t=D1t($K()),L1t=Zf(az()),_1t=Zf(YDe()),X1=process.env.CI==="false"?!1:R1t.default,zDe=()=>{},Bz=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:s,staticOutput:a}=Q1t.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==`
`;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(X1){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),s>=this.options.stdout.rows){this.options.stdout.write(k1t.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},T1t.default(this),this.options=e,this.rootNode=O1t.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:KDe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=x1t.default.create(e.stdout),this.throttledLog=e.debug?this.log:KDe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=Cz.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=F1t.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),X1||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=P1t.default.createElement(_1t.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);Cz.default.updateContainer(r,this.container,null,zDe)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(X1){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(X1){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),X1?this.options.stdout.write(this.lastOutput+`
`):this.options.debug||this.log.done(),this.isUnmounted=!0,Cz.default.updateContainer(null,this.container,null,zDe),L1t.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!X1&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=N1t.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};Jf.default=Bz});var XDe=H(DP=>{"use strict";var ZDe=DP&&DP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(DP,"__esModule",{value:!0});var M1t=ZDe(JDe()),FL=ZDe(az()),U1t=Ae("stream"),H1t=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},j1t(e)),s=G1t(r.stdout,()=>new M1t.default(r));return s.render(t),{rerender:s.render,unmount:()=>s.unmount(),waitUntilExit:s.waitUntilExit,cleanup:()=>FL.default.delete(r.stdout),clear:s.clear}};DP.default=H1t;var j1t=(t={})=>t instanceof U1t.Stream?{stdout:t,stdin:process.stdin}:t,G1t=(t,e)=>{let r;return FL.default.has(t)?r=FL.default.get(t):(r=e(),FL.default.set(t,r)),r}});var ePe=H(nd=>{"use strict";var q1t=nd&&nd.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r),Object.defineProperty(t,s,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),V1t=nd&&nd.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),W1t=nd&&nd.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&q1t(e,t,r);return V1t(e,t),e};Object.defineProperty(nd,"__esModule",{value:!0});var PP=W1t(Ln()),$De=t=>{let{items:e,children:r,style:s}=t,[a,n]=PP.useState(0),l=PP.useMemo(()=>e.slice(a),[e,a]);PP.useLayoutEffect(()=>{n(e.length)},[e.length]);let f=l.map((A,m)=>r(A,a+m)),h=PP.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},s),[s]);return PP.default.createElement("ink-box",{internal_static:!0,style:h},f)};$De.displayName="Static";nd.default=$De});var rPe=H(xP=>{"use strict";var Y1t=xP&&xP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xP,"__esModule",{value:!0});var K1t=Y1t(Ln()),tPe=({children:t,transform:e})=>t==null?null:K1t.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);tPe.displayName="Transform";xP.default=tPe});var iPe=H(kP=>{"use strict";var z1t=kP&&kP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(kP,"__esModule",{value:!0});var J1t=z1t(Ln()),nPe=({count:t=1})=>J1t.default.createElement("ink-text",null,`
`.repeat(t));nPe.displayName="Newline";kP.default=nPe});var aPe=H(RP=>{"use strict";var sPe=RP&&RP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(RP,"__esModule",{value:!0});var Z1t=sPe(Ln()),X1t=sPe(TL()),oPe=()=>Z1t.default.createElement(X1t.default,{flexGrow:1});oPe.displayName="Spacer";RP.default=oPe});var NL=H(TP=>{"use strict";var $1t=TP&&TP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(TP,"__esModule",{value:!0});var e2t=Ln(),t2t=$1t(fz()),r2t=()=>e2t.useContext(t2t.default);TP.default=r2t});var lPe=H(QP=>{"use strict";var n2t=QP&&QP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(QP,"__esModule",{value:!0});var cPe=Ln(),i2t=n2t(NL()),s2t=(t,e={})=>{let{stdin:r,setRawMode:s,internal_exitOnCtrlC:a}=i2t.default();cPe.useEffect(()=>{if(e.isActive!==!1)return s(!0),()=>{s(!1)}},[e.isActive,s]),cPe.useEffect(()=>{if(e.isActive===!1)return;let n=l=>{let f=String(l),h={upArrow:f==="\x1B[A",downArrow:f==="\x1B[B",leftArrow:f==="\x1B[D",rightArrow:f==="\x1B[C",pageDown:f==="\x1B[6~",pageUp:f==="\x1B[5~",return:f==="\r",escape:f==="\x1B",ctrl:!1,shift:!1,tab:f===" "||f==="\x1B[Z",backspace:f==="\b",delete:f==="\x7F"||f==="\x1B[3~",meta:!1};f<=""&&!h.return&&(f=String.fromCharCode(f.charCodeAt(0)+97-1),h.ctrl=!0),f.startsWith("\x1B")&&(f=f.slice(1),h.meta=!0);let A=f>="A"&&f<="Z",m=f>="\u0410"&&f<="\u042F";f.length===1&&(A||m)&&(h.shift=!0),h.tab&&f==="[Z"&&(h.shift=!0),(h.tab||h.backspace||h.delete)&&(f=""),(!(f==="c"&&h.ctrl)||!a)&&t(f,h)};return r?.on("data",n),()=>{r?.off("data",n)}},[e.isActive,r,a,t])};QP.default=s2t});var uPe=H(FP=>{"use strict";var o2t=FP&&FP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(FP,"__esModule",{value:!0});var a2t=Ln(),c2t=o2t(lz()),l2t=()=>a2t.useContext(c2t.default);FP.default=l2t});var fPe=H(NP=>{"use strict";var u2t=NP&&NP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(NP,"__esModule",{value:!0});var f2t=Ln(),h2t=u2t(Az()),A2t=()=>f2t.useContext(h2t.default);NP.default=A2t});var hPe=H(OP=>{"use strict";var p2t=OP&&OP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(OP,"__esModule",{value:!0});var d2t=Ln(),g2t=p2t(dz()),m2t=()=>d2t.useContext(g2t.default);OP.default=m2t});var pPe=H(_P=>{"use strict";var APe=_P&&_P.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_P,"__esModule",{value:!0});var LP=Ln(),y2t=APe(RL()),E2t=APe(NL()),I2t=({isActive:t=!0,autoFocus:e=!1,id:r}={})=>{let{isRawModeSupported:s,setRawMode:a}=E2t.default(),{activeId:n,add:l,remove:f,activate:h,deactivate:A,focus:m}=LP.useContext(y2t.default),w=LP.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return LP.useEffect(()=>(l(w,{autoFocus:e}),()=>{f(w)}),[w,e]),LP.useEffect(()=>{t?h(w):A(w)},[t,w]),LP.useEffect(()=>{if(!(!s||!t))return a(!0),()=>{a(!1)}},[t]),{isFocused:!!w&&n===w,focus:m}};_P.default=I2t});var dPe=H(MP=>{"use strict";var w2t=MP&&MP.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(MP,"__esModule",{value:!0});var C2t=Ln(),B2t=w2t(RL()),v2t=()=>{let t=C2t.useContext(B2t.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious,focus:t.focus}};MP.default=v2t});var gPe=H(vz=>{"use strict";Object.defineProperty(vz,"__esModule",{value:!0});vz.default=t=>{var e,r,s,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(s=t.yogaNode)===null||s===void 0?void 0:s.getComputedHeight())!==null&&a!==void 0?a:0}}});var Du=H(Wo=>{"use strict";Object.defineProperty(Wo,"__esModule",{value:!0});var S2t=XDe();Object.defineProperty(Wo,"render",{enumerable:!0,get:function(){return S2t.default}});var b2t=TL();Object.defineProperty(Wo,"Box",{enumerable:!0,get:function(){return b2t.default}});var D2t=wz();Object.defineProperty(Wo,"Text",{enumerable:!0,get:function(){return D2t.default}});var P2t=ePe();Object.defineProperty(Wo,"Static",{enumerable:!0,get:function(){return P2t.default}});var x2t=rPe();Object.defineProperty(Wo,"Transform",{enumerable:!0,get:function(){return x2t.default}});var k2t=iPe();Object.defineProperty(Wo,"Newline",{enumerable:!0,get:function(){return k2t.default}});var R2t=aPe();Object.defineProperty(Wo,"Spacer",{enumerable:!0,get:function(){return R2t.default}});var T2t=lPe();Object.defineProperty(Wo,"useInput",{enumerable:!0,get:function(){return T2t.default}});var Q2t=uPe();Object.defineProperty(Wo,"useApp",{enumerable:!0,get:function(){return Q2t.default}});var F2t=NL();Object.defineProperty(Wo,"useStdin",{enumerable:!0,get:function(){return F2t.default}});var N2t=fPe();Object.defineProperty(Wo,"useStdout",{enumerable:!0,get:function(){return N2t.default}});var O2t=hPe();Object.defineProperty(Wo,"useStderr",{enumerable:!0,get:function(){ Line truncated
`:"";return l?w+=`@IF EXIST ${l} (\r
${l} ${h} ${a} ${m}%*\r
) ELSE (\r
@SETLOCAL\r
@SET PATHEXT=%PATHEXT:;.JS;=;%\r
${f} ${h} ${a} ${m}%*\r
)\r
`:w+=`@${f} ${h} ${a} ${m}%*\r
`,w}function uvt(t,e,r){let s=xu.relative(xu.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;s=s.split("\\").join("/");let l=xu.isAbsolute(s)?`"${s}"`:`"$basedir/${s}"`,f=r.args||"",h=EJ(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,s=l):(a=l,f="",s="");let A=r.progArgs?`${r.progArgs.join(" ")} `:"",m=`#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')")
case \`uname\` in
*CYGWIN*) basedir=\`cygpath -w "$basedir"\`;;
esac
`,w=r.nodePath?`export NODE_PATH="${h}"
`:"";return n?m+=`${w}if [ -x ${n} ]; then
exec ${n} ${f} ${s} ${A}"$@"
else
exec ${a} ${f} ${s} ${A}"$@"
fi
`:m+=`${w}${a} ${f} ${s} ${A}"$@"
exit $?
`,m}function fvt(t,e,r){let s=xu.relative(xu.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,l;s=s.split("\\").join("/");let f=xu.isAbsolute(s)?`"${s}"`:`"$basedir/${s}"`,h=r.args||"",A=EJ(r.nodePath),m=A.win32,w=A.posix;n?(l=`"$basedir/${r.prog}$exe"`,s=f):(n=f,h="",s="");let B=r.progArgs?`${r.progArgs.join(" ")} `:"",D=`#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
${r.nodePath?`$env_node_path=$env:NODE_PATH
$env:NODE_PATH="${m}"
`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}`;return r.nodePath&&(D+=` else {
$env:NODE_PATH="${w}"
}`),l?D+=`
$ret=0
if (Test-Path ${l}) {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${l} ${h} ${s} ${B}$args
} else {
& ${l} ${h} ${s} ${B}$args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${n} ${h} ${s} ${B}$args
} else {
& ${n} ${h} ${s} ${B}$args
}
$ret=$LASTEXITCODE
}
${r.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $ret
`:D+=`
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & ${n} ${h} ${s} ${B}$args
} else {
& ${n} ${h} ${s} ${B}$args
}
${r.nodePath?`$env:NODE_PATH=$env_node_path
`:""}exit $LASTEXITCODE
`,D}function hvt(t,e){return e.fs_.chmod(t,493)}function EJ(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(xu.delimiter):Array.from(t),r={};for(let s=0;s<e.length;s++){let a=e[s].split("/").join("\\"),n=kxe()?e[s].split("\\").join("/").replace(/^([^:\\/]*):/,(l,f)=>`/mnt/${f.toLowerCase()}`):e[s];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[s]={win32:a,posix:n}}return r}Txe.exports=yJ});var TJ=H((DEr,eke)=>{eke.exports=Ae("stream")});var ike=H((PEr,nke)=>{"use strict";function tke(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,s)}return r}function zvt(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?tke(Object(r),!0).forEach(function(s){Jvt(t,s,r[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):tke(Object(r)).forEach(function(s){Object.defineProperty(t,s,Object.getOwnPropertyDescriptor(r,s))})}return t}function Jvt(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function Zvt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function rke(t,e){for(var r=0;r<e.length;r++){var s=e[r];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,s.key,s)}}function Xvt(t,e,r){return e&&rke(t.prototype,e),r&&rke(t,r),t}var $vt=Ae("buffer"),l_=$vt.Buffer,eSt=Ae("util"),QJ=eSt.inspect,tSt=QJ&&QJ.custom||"inspect";function rSt(t,e,r){l_.prototype.copy.call(t,e,r)}nke.exports=function(){function t(){Zvt(this,t),this.head=null,this.tail=null,this.length=0}return Xvt(t,[{key:"push",value:function(r){var s={data:r,next:null};this.length>0?this.tail.next=s:this.head=s,this.tail=s,++this.length}},{key:"unshift",value:function(r){var s={data:r,next:this.head};this.length===0&&(this.tail=s),this.head=s,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var s=this.head,a=""+s.data;s=s.next;)a+=r+s.data;return a}},{key:"concat",value:function(r){if(this.length===0)return l_.alloc(0);for(var s=l_.allocUnsafe(r>>>0),a=this.head,n=0;a;)rSt(a.data,s,n),n+=a.data.length,a=a.next;return s}},{key:"consume",value:function(r,s){var a;return r<this.head.data.length?(a=this.head.data.slice(0,r),this.head.data=this.head.data.slice(r)):r===this.head.data.length?a=this.shift():a=s?this._getString(r):this._getBuffer(r),a}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(r){var s=this.head,a=1,n=s.data;for(r-=n.length;s=s.next;){var l=s.data,f=r>l.length?l.length:r;if(f===l.length?n+=l:n+=l.slice(0,r),r-=f,r===0){f===l.length?(++a,s.next?this.head=s.next:this.head=this.tail=null):(this.head=s,s.data=l.slice(f));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var s=l_.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(s),r-=a.data.length;a=a.next;){var l=a.data,f=r>l.length?l.length:r;if(l.copy(s,s.length-r,0,f),r-=f,r===0){f===l.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=l.slice(f));break}++n}return this.length-=n,s}},{key:tSt,value:function(r,s){return QJ(this,zvt({},s,{depth:0,customInspect:!1}))}}]),t}()});var NJ=H((xEr,oke)=>{"use strict";function nSt(t,e){var r=this,s=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return s||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(FJ,this,t)):process.nextTick(FJ,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(u_,r):(r._writableState.errorEmitted=!0,process.nextTick(ske,r,n)):process.nextTick(ske,r,n):e?(process.nextTick(u_,r),e(n)):process.nextTick(u_,r)}),this)}function ske(t,e){FJ(t,e),u_(t)}function u_(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function iSt(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function FJ(t,e){t.emit("error",e)}function sSt(t,e){var r=t._readableState,s=t._writableState;r&& Line truncated
`)),t.linkname&&(e+=lZ(" linkpath="+t.linkname+`
`));var r=t.pax;if(r)for(var s in r)e+=lZ(" "+s+"="+r[s]+`
`);return Buffer.from(e)};E2.decodePax=function(t){for(var e={};t.length;){for(var r=0;r<t.length&&t[r]!==32;)r++;var s=parseInt(t.slice(0,r).toString(),10);if(!s)return e;var a=t.slice(r+1,s-1).toString(),n=a.indexOf("=");if(n===-1)return e;e[a.slice(0,n)]=a.slice(n+1),t=t.slice(s)}return e};E2.encode=function(t){var e=Zbt(512),r=t.name,s="";if(t.typeflag===5&&r[r.length-1]!=="/"&&(r+="/"),Buffer.byteLength(r)!==r.length)return null;for(;Buffer.byteLength(r)>100;){var a=r.indexOf("/");if(a===-1)return null;s+=s?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(s)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(Og(t.mode&nDt,6),100),e.write(Og(t.uid,6),108),e.write(Og(t.gid,6),116),e.write(Og(t.size,11),124),e.write(Og(t.mtime.getTime()/1e3|0,11),136),e[156]=oRe+oDt(t.type),t.linkname&&e.write(t.linkname,157),aRe.copy(e,xx),eDt.copy(e,uZ),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(Og(t.devmajor||0,6),329),e.write(Og(t.devminor||0,6),337),s&&e.write(s,345),e.write(Og(lRe(e),6),148),e)};E2.decode=function(t,e,r){var s=t[156]===0?0:t[156]-oRe,a=y2(t,0,100,e),n=Lg(t,100,8),l=Lg(t,108,8),f=Lg(t,116,8),h=Lg(t,124,12),A=Lg(t,136,12),m=sDt(s),w=t[157]===0?null:y2(t,157,100,e),B=y2(t,265,32),D=y2(t,297,32),I=Lg(t,329,8),R=Lg(t,337,8),N=lRe(t);if(N===8*32)return null;if(N!==Lg(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(aRe.compare(t,xx,xx+6)===0)t[345]&&(a=y2(t,345,155,e)+"/"+a);else if(!(tDt.compare(t,xx,xx+6)===0&&rDt.compare(t,uZ,uZ+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return s===0&&a&&a[a.length-1]==="/"&&(s=5),{name:a,mode:n,uid:l,gid:f,size:h,mtime:new Date(1e3*A),type:m,linkname:w,uname:B,gname:D,devmajor:I,devminor:R}}});var gRe=H((zEr,dRe)=>{var fRe=Ae("util"),cDt=sRe(),kx=fZ(),hRe=m2().Writable,ARe=m2().PassThrough,pRe=function(){},uRe=function(t){return t&=511,t&&512-t},lDt=function(t,e){var r=new S_(t,e);return r.end(),r},uDt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},S_=function(t,e){this._parent=t,this.offset=e,ARe.call(this,{autoDestroy:!1})};fRe.inherits(S_,ARe);S_.prototype.destroy=function(t){this._parent.destroy(t)};var fd=function(t){if(!(this instanceof fd))return new fd(t);hRe.call(this,t),t=t||{},this._offset=0,this._buffer=cDt(),this._missing=0,this._partial=!1,this._onparse=pRe,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,s=function(){e._continue()},a=function(B){if(e._locked=!1,B)return e.destroy(B);e._stream||s()},n=function(){e._stream=null;var B=uRe(e._header.size);B?e._parse(B,l):e._parse(512,w),e._locked||s()},l=function(){e._buffer.consume(uRe(e._header.size)),e._parse(512,w),s()},f=function(){var B=e._header.size;e._paxGlobal=kx.decodePax(r.slice(0,B)),r.consume(B),n()},h=function(){var B=e._header.size;e._pax=kx.decodePax(r.slice(0,B)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(B),n()},A=function(){var B=e._header.size;this._gnuLongPath=kx.decodeLongPath(r.slice(0,B),t.filenameEncoding),r.consume(B),n()},m=function(){var B=e._header.size;this._gnuLongLinkPath=kx.decodeLongPath(r.slice(0,B),t.filenameEncoding),r.consume(B),n()},w=function(){var B=e._offset,D;try{D=e._header=kx.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(I){e.emit("error",I)}if(r.consume(512),!D){e._parse(512,w),s();return}if(D.type==="gnu-long-path"){e._parse(D.size,A),s();return}if(D.type==="gnu-long-link-path"){e._parse(D.size,m),s();return}if(D.type==="pax-global-header"){e._parse(D.size,f),s();return}if(D.type==="pax-header"){e._parse(D.size,h),s();return}if(e._gnuLongPath&&(D.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(D.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=D=uDt(D,e._pax),e._pax=null),e._locked=!0,!D.size||D.type==="directory"){e._parse(512,w),e.emit("entry",D,lDt(e,B),a);return}e._stream=new S_(e,B),e.emit("entry",D,e._stream,a),e._parse(D.size,n),s()};this._onheader=w,this._parse(512,w)};fRe.inherits(fd,hRe);fd.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};fd.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};fd.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=pRe,this._overflow?this._write(this._overflow,void 0,t):t()}};fd.prototype._write=function(t,e,r){if(!this._destroyed){var s=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.length<n)return this._missing-=t.length,this._overflow=null,s?s.write(t,r):(a.append(t), Line truncated
Wanted: ${this.expectedSize}
Found: ${this.size}`);s.code="EBADSIZE",s.found=this.size,s.expected=this.expectedSize,s.sri=this.sri,this.emit("error",s)}else if(this.sri&&!r){let s=new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${e}. (${this.size} bytes)`);s.code="EINTEGRITY",s.found=e,s.expected=this.digests,s.algorithm=this.algorithm,s.sri=this.sri,this.emit("error",s)}else this.#t=this.size,this.emit("size",this.size),this.#e=e,this.emit("integrity",e),r&&(this.#r=r,this.emit("verified",r))}},pd=class{get isHash(){return!0}constructor(e,r){let s=r?.strict;this.source=e.trim(),this.digest="",this.algorithm="",this.options=[];let a=this.source.match(s?jDt:HDt);if(!a||s&&!PZ.includes(a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];n&&(this.options=n.slice(1).split("?"))}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}match(e,r){let s=_l(e,r);if(!s)return!1;if(s.isIntegrity){let a=s.pickAlgorithm(r,[this.algorithm]);if(!a)return!1;let n=s[a].find(l=>l.digest===this.digest);return n||!1}return s.digest===this.digest?s:!1}toString(e){return e?.strict&&!(PZ.includes(this.algorithm)&&this.digest.match(UDt)&&this.options.every(r=>r.match(GDt)))?"":`${this.algorithm}-${this.digest}${_x(this.options)}`}};function LRe(t,e,r,s){let a=t!=="",n=!1,l="",f=s.length-1;for(let A=0;A<f;A++){let m=pd.prototype.toString.call(s[A],r);m&&(n=!0,l+=m,l+=e)}let h=pd.prototype.toString.call(s[f],r);return h&&(n=!0,l+=h),a&&n?t+e+l:t+l}var DE=class{get isIntegrity(){return!0}toJSON(){return this.toString()}isEmpty(){return Object.keys(this).length===0}toString(e){let r=e?.sep||" ",s="";if(e?.strict){r=r.replace(/\S+/g," ");for(let a of PZ)this[a]&&(s=LRe(s,r,e,this[a]))}else for(let a of Object.keys(this))s=LRe(s,r,e,this[a]);return s}concat(e,r){let s=typeof e=="string"?e:Ox(e,r);return _l(`${this.toString(r)} ${s}`,r)}hexDigest(){return _l(this,{single:!0}).hexDigest()}merge(e,r){let s=_l(e,r);for(let a in s)if(this[a]){if(!this[a].find(n=>s[a].find(l=>n.digest===l.digest)))throw new Error("hashes do not match, cannot update integrity")}else this[a]=s[a]}match(e,r){let s=_l(e,r);if(!s)return!1;let a=s.pickAlgorithm(r,Object.keys(this));return!!a&&this[a]&&s[a]&&this[a].find(n=>s[a].find(l=>n.digest===l.digest))||!1}pickAlgorithm(e,r){let s=e?.pickAlgorithm||ZDt,a=Object.keys(this).filter(n=>r?.length?r.includes(n):!0);return a.length?a.reduce((n,l)=>s(n,l)||n):null}};AA.exports.parse=_l;function _l(t,e){if(!t)return null;if(typeof t=="string")return DZ(t,e);if(t.algorithm&&t.digest){let r=new DE;return r[t.algorithm]=[t],DZ(Ox(r,e),e)}else return DZ(Ox(t,e),e)}function DZ(t,e){if(e?.single)return new pd(t,e);let r=t.trim().split(/\s+/).reduce((s,a)=>{let n=new pd(a,e);if(n.algorithm&&n.digest){let l=n.algorithm;s[l]||(s[l]=[]),s[l].push(n)}return s},new DE);return r.isEmpty()?null:r}AA.exports.stringify=Ox;function Ox(t,e){return t.algorithm&&t.digest?pd.prototype.toString.call(t,e):typeof t=="string"?Ox(_l(t,e),e):DE.prototype.toString.call(t,e)}AA.exports.fromHex=qDt;function qDt(t,e,r){let s=_x(r?.options);return _l(`${e}-${Buffer.from(t,"hex").toString("base64")}${s}`,r)}AA.exports.fromData=VDt;function VDt(t,e){let r=e?.algorithms||[...kZ],s=_x(e?.options);return r.reduce((a,n)=>{let l=Lx.createHash(n).update(t).digest("base64"),f=new pd(`${n}-${l}${s}`,e);if(f.algorithm&&f.digest){let h=f.algorithm;a[h]||(a[h]=[]),a[h].push(f)}return a},new DE)}AA.exports.fromStream=WDt;function WDt(t,e){let r=RZ(e);return new Promise((s,a)=>{t.pipe(r),t.on("error",a),r.on("error",a);let n;r.on("integrity",l=>{n=l}),r.on("end",()=>s(n)),r.resume()})}AA.exports.checkData=YDt;function YDt(t,e,r){if(e=_l(e,r),!e||!Object.keys(e).length){if(r?.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let s=e.pickAlgorithm(r),a=Lx.createHash(s).update(t).digest("base64"),n=_l({algorithm:s,digest:a}),l=n.match(e,r);if(r=r||{},l||!r.error)return l;if(typeof r.size=="number"&&t.length!==r.size){let f=new Error(`data size mismatch when checking ${e}.
Wanted: ${r.size}
Found: ${t.length}`);throw f.code="EBADSIZE",f.found=t.length,f.expected=r.size,f.sri=e,f}else{let f=new Error(`Integrity checksum failed when using ${s}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw f.code="EINTEGRITY",f.found=n,f.expected=e,f.algorithm=s,f.sri=e,f}}AA.exports.checkStream=KDt;function KDt(t,e,r){if(r=r||Object.create(null),r.integrity=e,e=_l(e,r),!e||!Object.keys(e).length)return Promise.reject(Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"}));let s=RZ(r);return new Promise((a,n)=>{t.pipe(s),t.on("error",n),s.on("error",n);let l;s.on("verified",f=>{l=f}),s.on("end",()=>a(l)),s.resume()})}AA.exports.integrityStream=RZ;function RZ(t=Object.create(null)){return new xZ(t)}AA.exports.create=zDt;function zDt(t){let e=t?.algorithms||[...kZ],r=_x(t?.options),s=e.map(Lx.createHash);return{update:function(a,n){return s.forEach(l=>l.update(a,n)),this},digest:function(){return e.reduce((n,l)=>{let f=s.shift().digest("base64"),h=new pd(`${l}-${f}${r}`,t);if(h.algorithm&&h.digest){let A=h.algorithm;n[A]||(n[A]=[]),n[A].push(h)}return n},new DE)}}}var JDt=Lx.getHashes(),_Re=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>JDt.includes(t));function ZDt(t,e){return _Re.indexOf(t.toLowerCase())>=_Re.indexOf(e.toLowerCase())?t:e}});var U_=H(Mg=>{"use strict";Object.defineProperty(Mg,"__esModule",{value:!0});Mg.Signature=Mg.Envelope=void 0;Mg.Envelope={fromJSON(t){return{payload:M_(t.payload)?Buffer.from(URe(t.payload)):Buffer.alloc(0),payloadType:M_(t.payloadType)?globalThis.String(t.payloadType):"",signatures:globalThis.Array.isArray(t?.signatures)?t.signatures.map(e=>Mg.Signature.fromJSON(e)):[]}},toJSON(t){let e={};return t.payload.length!==0&&(e.payload=HRe(t.payload)),t.payloadType!==""&&(e.payloadType=t.payloadType),t.signatures?.length&&(e.signatures=t.signatures.map(r=>Mg.Signature.toJSON(r))),e}};Mg.Signature={fromJSON(t){return{sig:M_(t.sig)?Buffer.from(URe(t.sig)):Buffer.alloc(0),keyid:M_(t.keyid)?globalThis.String(t.keyid):""}},toJSON(t){let e={};return t.sig.length!==0&&(e.sig=HRe(t.sig)),t.keyid!==""&&(e.keyid=t.keyid),e}};function URe(t){return Uint8Array.from(globalThis.Buffer.from(t,"base64"))}function HRe(t){return globalThis.Buffer.from(t).toString("base64")}function M_(t){return t!=null}});var GRe=H(H_=>{"use strict";Object.defineProperty(H_,"__esModule",{value:!0});H_.Timestamp=void 0;H_.Timestamp={fromJSON(t){return{seconds:jRe(t.seconds)?globalThis.String(t.seconds):"0",nanos:jRe(t.nanos)?globalThis.Number(t.nanos):0}},toJSON(t){let e={};return t.seconds!=="0"&&(e.seconds=t.seconds),t.nanos!==0&&(e.nanos=Math.round(t.nanos)),e}};function jRe(t){return t!=null}});var dd=H(sn=>{"use strict";Object.defineProperty(sn,"__esModule",{value:!0});sn.TimeRange=sn.X509CertificateChain=sn.SubjectAlternativeName=sn.X509Certificate=sn.DistinguishedName=sn.ObjectIdentifierValuePair=sn.ObjectIdentifier=sn.PublicKeyIdentifier=sn.PublicKey=sn.RFC3161SignedTimestamp=sn.LogId=sn.MessageSignature=sn.HashOutput=sn.SubjectAlternativeNameType=sn.PublicKeyDetails=sn.HashAlgorithm=void 0;sn.hashAlgorithmFromJSON=VRe;sn.hashAlgorithmToJSON=WRe;sn.publicKeyDetailsFromJSON=YRe;sn.publicKeyDetailsToJSON=KRe;sn.subjectAlternativeNameTypeFromJSON=zRe;sn.subjectAlternativeNameTypeToJSON=JRe;var XDt=GRe(),$c;(function(t){t[t.HASH_ALGORITHM_UNSPECIFIED=0]="HASH_ALGORITHM_UNSPECIFIED",t[t.SHA2_256=1]="SHA2_256",t[t.SHA2_384=2]="SHA2_384",t[t.SHA2_512=3]="SHA2_512",t[t.SHA3_256=4]="SHA3_256",t[t.SHA3_384=5]="SHA3_384"})($c||(sn.HashAlgorithm=$c={}));function VRe(t){switch(t){case 0:case"HASH_ALGORITHM_UNSPECIFIED":return $c.HASH_ALGORITHM_UNSPECIFIED;case 1:case"SHA2_256":return $c.SHA2_256;case 2:case"SHA2_384":return $c.SHA2_384;case 3:case"SHA2_512":return $c.SHA2_512;case 4:case"SHA3_256":return $c.SHA3_256;case 5:case"SHA3_384":return $c.SHA3_384;default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum HashAlgorithm")}}function WRe(t){switch(t){case $c.HASH_ALGORITHM_UNSPECIFIED:return"HASH_ALGORITHM_UNSPECIFIED";case $c.SHA2_256:return"SHA2_256";case $c.SHA2_384:return"SHA2_384";case $c.SHA2_512:return"SHA2_512";case $c.SHA3_256:return"SHA3_256";case $c.SHA3_384:return"SHA3_384";default:throw new globalThis.Error("Unrecognized enum value "+t+" for enum HashAlgorithm")}}var tn;(function(t){t[t.PUBLIC_KEY_DETAILS_UNSPECIFIED=0]="PUBLIC_KEY_DETAILS_UNSPECIFIED",t[t.PKCS1_RSA_PKCS1V5=1]="PKCS1_RSA_PKCS1V5",t[t.PKCS1_RSA_PSS=2]="PKCS1_RSA_PSS",t[t.PKIX_RSA_PKCS1V5=3]="PKIX_RSA_PKCS1V5",t[t.PKIX_RSA_PSS=4]="PKIX_RSA_PSS",t[t.PKIX_RSA_PKCS1V15_2048_SHA256=9]="PKIX_RSA_PKCS1V15_2048_SHA256",t[t.PKIX_RSA_PKCS1V15_3072_SHA256=10]="PKIX_RSA_PKCS1V15_3072_SHA256",t[t.PKIX_RSA_PKCS1V15_4096_SHA256=11]="PKIX_RSA_PKCS1V15_4096_SHA256",t[t.PKIX_RSA_PSS_2048_SHA256=16]="PKIX_RSA_PSS_2048_SHA256",t[t.PKIX_RSA_PSS_3072_SHA256=17]="PKIX_RSA_PSS_3072_SHA256",t[t.PKIX_RS Line truncated
`).forEach(r=>{r.match(qPt)||r.match(VPt)||(e+=r)}),Buffer.from(e,"base64")}function YPt(t,e="CERTIFICATE"){let s=t.toString("base64").match(/.{1,64}/g)||"";return[`-----BEGIN ${e}-----`,...s,`-----END ${e}-----`].join(`
`).concat(`
`)}});var cM=H(Vg=>{"use strict";Object.defineProperty(Vg,"__esModule",{value:!0});Vg.SHA2_HASH_ALGOS=Vg.RSA_SIGNATURE_ALGOS=Vg.ECDSA_SIGNATURE_ALGOS=void 0;Vg.ECDSA_SIGNATURE_ALGOS={"1.2.840.10045.4.3.1":"sha224","1.2.840.10045.4.3.2":"sha256","1.2.840.10045.4.3.3":"sha384","1.2.840.10045.4.3.4":"sha512"};Vg.RSA_SIGNATURE_ALGOS={"1.2.840.113549.1.1.14":"sha224","1.2.840.113549.1.1.11":"sha256","1.2.840.113549.1.1.12":"sha384","1.2.840.113549.1.1.13":"sha512"};Vg.SHA2_HASH_ALGOS={"2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512"}});var ZZ=H(lM=>{"use strict";Object.defineProperty(lM,"__esModule",{value:!0});lM.RFC3161TimestampVerificationError=void 0;var JZ=class extends Error{};lM.RFC3161TimestampVerificationError=JZ});var PTe=H(yA=>{"use strict";var KPt=yA&&yA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),zPt=yA&&yA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),JPt=yA&&yA.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(s[s.length]=a);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),a=0;a<s.length;a++)s[a]!=="default"&&KPt(r,e,s[a]);return zPt(r,e),r}}();Object.defineProperty(yA,"__esModule",{value:!0});yA.TSTInfo=void 0;var DTe=JPt(x2()),ZPt=cM(),XPt=ZZ(),XZ=class{root;constructor(e){this.root=e}get version(){return this.root.subs[0].toInteger()}get genTime(){return this.root.subs[4].toDate()}get messageImprintHashAlgorithm(){let e=this.messageImprintObj.subs[0].subs[0].toOID();return ZPt.SHA2_HASH_ALGOS[e]}get messageImprintHashedMessage(){return this.messageImprintObj.subs[1].value}get raw(){return this.root.toDER()}verify(e){let r=DTe.digest(this.messageImprintHashAlgorithm,e);if(!DTe.bufferEqual(r,this.messageImprintHashedMessage))throw new XPt.RFC3161TimestampVerificationError("message imprint does not match artifact")}get messageImprintObj(){return this.root.subs[2]}};yA.TSTInfo=XZ});var kTe=H(EA=>{"use strict";var $Pt=EA&&EA.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),ext=EA&&EA.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),txt=EA&&EA.__importStar||function(){var t=function(e){return t=Object.getOwnPropertyNames||function(r){var s=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(s[s.length]=a);return s},t(e)};return function(e){if(e&&e.__esModule)return e;var r={};if(e!=null)for(var s=t(e),a=0;a<s.length;a++)s[a]!=="default"&&$Pt(r,e,s[a]);return ext(r,e),r}}();Object.defineProperty(EA,"__esModule",{value:!0});EA.RFC3161Timestamp=void 0;var rxt=sM(),$Z=txt(x2()),xTe=cM(),jx=ZZ(),nxt=PTe(),ixt="1.2.840.113549.1.7.2",sxt="1.2.840.113549.1.9.16.1.4",oxt="1.2.840.113549.1.9.4",eX=class t{root;constructor(e){this.root=e}static parse(e){let r=rxt.ASN1Obj.parseBuffer(e);return new t(r)}get status(){return this.pkiStatusInfoObj.subs[0].toInteger()}get contentType(){return this.contentTypeObj.toOID()}get eContentType(){return this.eContentTypeObj.toOID()}get signingTime(){return this.tstInfo.genTime}get signerIssuer(){return this.signerSidObj.subs[0].value}get signerSerialNumber(){return this.signerSidObj.subs[1].value}get signerDigestAlgorithm(){let e=this.signerDigestAlgorithmObj.subs[0].toOID();return xTe.SHA2_HASH_ALGOS[e]}get signatureAlgorithm(){let e=this.signatureAlgorithmObj.subs[0].toOID();return xTe.ECDSA_SIGNATURE_ALGOS[e]}get signatureValue(){return this.signatureValueObj.value}get tstInfo(){return new nxt.TSTInfo(this.eContentObj.subs[0].subs[0])}verify(e,r){if(!this.timeStampTokenObj)throw new jx.RFC3161TimestampVerificationError("timeStampToken is missing");if(this.contentType!==ixt)throw new jx.RFC3161TimestampVerificationError(`incorrect content type: ${this.contentType}`);if(this.eContentType!==sxt)throw new jx.RFC3161TimestampVerificationError(`incorrect encapsulated content type: ${this.eContentType}`);this.tstInfo.verify(e),this.verifyMessageDigest(),this.verifySignature(r)}verifyMessageDigest(){let e=$Z.digest(this.signerDigestAlgorithm,this.tstInfo.raw),r=this.messageDigestAttributeObj.subs[1].subs[0].value;if(!$Z.bufferEqual(e,r))throw new jx.RFC3161TimestampVerificationError("signed data does not match tstInfo")}verifySignature(e){let r=this.signedAttrsObj.toDER();if(r[0]=49,!$Z.verify( Line truncated
\v\f\r\x1B !"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD`},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041FLine truncated
\v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0`},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},viscii:{type:"_sbcs",chars:`\0\u1EB2\u1EB4\u1EAA\x07\b
\v\f\r\u1EF6\u1EF8\x1B\u1EF4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE`},iso646cn:{type:"_sbcs",chars:`\0\x07\b
\v\f\r\x1B !"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},iso646jp:{type:"_sbcs",chars:`\0\x07\b
\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var NQe=H(FQe=>{"use strict";var v$=Bd().Buffer;FQe._dbcs=vd;var zo=-1,QQe=-2,Lu=-10,dc=-1e3,L2=new Array(256),Xx=-1;for(FM=0;FM<256;FM++)L2[FM]=zo;var FM;function vd(t,e){if(this.encodingName=t.encodingName,!t)throw new Error("DBCS codec is called without the data.");if(!t.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=t.table();this.decodeTables=[],this.decodeTables[0]=L2.slice(0),this.decodeTableSeq=[];for(var s=0;s<r.length;s++)this._addDecodeChunk(r[s]);if(typeof t.gb18030=="function"){this.gb18030=t.gb18030();var a=this.decodeTables.length;this.decodeTables.push(L2.slice(0));var n=this.decodeTables.length;this.decodeTables.push(L2.slice(0));for(var l=this.decodeTables[0],s=129;s<=254;s++)for(var f=this.decodeTables[dc-l[s]],h=48;h<=57;h++){if(f[h]===zo)f[h]=dc-a;else if(f[h]>dc)throw new Error("gb18030 decode tables conflict at byte 2");for(var A=this.decodeTables[dc-f[h]],m=129;m<=254;m++){if(A[m]===zo)A[m]=dc-n;else{if(A[m]===dc-n)continue;if(A[m]>dc)throw new Error("gb18030 decode tables conflict at byte 3")}for(var w=this.decodeTables[dc-A[m]],B=48;B<=57;B++)w[B]===zo&&(w[B]=QQe)}}}this.defaultCharUnicode=e.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var D={};if(t.encodeSkipVals)for(var s=0;s<t.encodeSkipValsLine truncated
Wanted: ${this.expectedSize}
Found: ${this.size}`);s.code="EBADSIZE",s.found=this.size,s.expected=this.expectedSize,s.sri=this.sri,this.emit("error",s)}else if(this.sri&&!r){let s=new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${e}. (${this.size} bytes)`);s.code="EINTEGRITY",s.found=e,s.expected=this.digests,s.algorithm=this.algorithm,s.sri=this.sri,this.emit("error",s)}else this.#t=this.size,this.emit("size",this.size),this.#e=e,this.emit("integrity",e),r&&(this.#r=r,this.emit("verified",r))}},Pd=class{get isHash(){return!0}constructor(e,r){let s=r?.strict;this.source=e.trim(),this.digest="",this.algorithm="",this.options=[];let a=this.source.match(s?FRt:QRt);if(!a||s&&!V$.includes(a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];n&&(this.options=n.slice(1).split("?"))}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}match(e,r){let s=Ul(e,r);if(!s)return!1;if(s.isIntegrity){let a=s.pickAlgorithm(r,[this.algorithm]);if(!a)return!1;let n=s[a].find(l=>l.digest===this.digest);return n||!1}return s.digest===this.digest?s:!1}toString(e){return e?.strict&&!(V$.includes(this.algorithm)&&this.digest.match(TRt)&&this.options.every(r=>r.match(NRt)))?"":`${this.algorithm}-${this.digest}${ak(this.options)}`}};function GFe(t,e,r,s){let a=t!=="",n=!1,l="",f=s.length-1;for(let A=0;A<f;A++){let m=Pd.prototype.toString.call(s[A],r);m&&(n=!0,l+=m,l+=e)}let h=Pd.prototype.toString.call(s[f],r);return h&&(n=!0,l+=h),a&&n?t+e+l:t+l}var jE=class{get isIntegrity(){return!0}toJSON(){return this.toString()}isEmpty(){return Object.keys(this).length===0}toString(e){let r=e?.sep||" ",s="";if(e?.strict){r=r.replace(/\S+/g," ");for(let a of V$)this[a]&&(s=GFe(s,r,e,this[a]))}else for(let a of Object.keys(this))s=GFe(s,r,e,this[a]);return s}concat(e,r){let s=typeof e=="string"?e:sk(e,r);return Ul(`${this.toString(r)} ${s}`,r)}hexDigest(){return Ul(this,{single:!0}).hexDigest()}merge(e,r){let s=Ul(e,r);for(let a in s)if(this[a]){if(!this[a].find(n=>s[a].find(l=>n.digest===l.digest)))throw new Error("hashes do not match, cannot update integrity")}else this[a]=s[a]}match(e,r){let s=Ul(e,r);if(!s)return!1;let a=s.pickAlgorithm(r,Object.keys(this));return!!a&&this[a]&&s[a]&&this[a].find(n=>s[a].find(l=>n.digest===l.digest))||!1}pickAlgorithm(e,r){let s=e?.pickAlgorithm||GRt,a=Object.keys(this).filter(n=>r?.length?r.includes(n):!0);return a.length?a.reduce((n,l)=>s(n,l)||n):null}};bA.exports.parse=Ul;function Ul(t,e){if(!t)return null;if(typeof t=="string")return q$(t,e);if(t.algorithm&&t.digest){let r=new jE;return r[t.algorithm]=[t],q$(sk(r,e),e)}else return q$(sk(t,e),e)}function q$(t,e){if(e?.single)return new Pd(t,e);let r=t.trim().split(/\s+/).reduce((s,a)=>{let n=new Pd(a,e);if(n.algorithm&&n.digest){let l=n.algorithm;s[l]||(s[l]=[]),s[l].push(n)}return s},new jE);return r.isEmpty()?null:r}bA.exports.stringify=sk;function sk(t,e){return t.algorithm&&t.digest?Pd.prototype.toString.call(t,e):typeof t=="string"?sk(Ul(t,e),e):jE.prototype.toString.call(t,e)}bA.exports.fromHex=ORt;function ORt(t,e,r){let s=ak(r?.options);return Ul(`${e}-${Buffer.from(t,"hex").toString("base64")}${s}`,r)}bA.exports.fromData=LRt;function LRt(t,e){let r=e?.algorithms||[...Y$],s=ak(e?.options);return r.reduce((a,n)=>{let l=ok.createHash(n).update(t).digest("base64"),f=new Pd(`${n}-${l}${s}`,e);if(f.algorithm&&f.digest){let h=f.algorithm;a[h]||(a[h]=[]),a[h].push(f)}return a},new jE)}bA.exports.fromStream=_Rt;function _Rt(t,e){let r=K$(e);return new Promise((s,a)=>{t.pipe(r),t.on("error",a),r.on("error",a);let n;r.on("integrity",l=>{n=l}),r.on("end",()=>s(n)),r.resume()})}bA.exports.checkData=MRt;function MRt(t,e,r){if(e=Ul(e,r),!e||!Object.keys(e).length){if(r?.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let s=e.pickAlgorithm(r),a=ok.createHash(s).update(t).digest("base64"),n=Ul({algorithm:s,digest:a}),l=n.match(e,r);if(r=r||{},l||!r.error)return l;if(typeof r.size=="number"&&t.length!==r.size){let f=new Error(`data size mismatch when checking ${e}.
Wanted: ${r.size}
Found: ${t.length}`);throw f.code="EBADSIZE",f.found=t.length,f.expected=r.size,f.sri=e,f}else{let f=new Error(`Integrity checksum failed when using ${s}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw f.code="EINTEGRITY",f.found=n,f.expected=e,f.algorithm=s,f.sri=e,f}}bA.exports.checkStream=URt;function URt(t,e,r){if(r=r||Object.create(null),r.integrity=e,e=Ul(e,r),!e||!Object.keys(e).length)return Promise.reject(Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"}));let s=K$(r);return new Promise((a,n)=>{t.pipe(s),t.on("error",n),s.on("error",n);let l;s.on("verified",f=>{l=f}),s.on("end",()=>a(l)),s.resume()})}bA.exports.integrityStream=K$;function K$(t=Object.create(null)){return new W$(t)}bA.exports.create=HRt;function HRt(t){let e=t?.algorithms||[...Y$],r=ak(t?.options),s=e.map(ok.createHash);return{update:function(a,n){return s.forEach(l=>l.update(a,n)),this},digest:function(){return e.reduce((n,l)=>{let f=s.shift().digest("base64"),h=new Pd(`${l}-${f}${r}`,t);if(h.algorithm&&h.digest){let A=h.algorithm;n[A]||(n[A]=[]),n[A].push(h)}return n},new jE)}}}var jRt=ok.getHashes(),qFe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>jRt.includes(t));function GRt(t,e){return qFe.indexOf(t.toLowerCase())>=qFe.indexOf(e.toLowerCase())?t:e}});var J$=H((rCr,zFe)=>{var VFe=IG(),WFe=jFe(),qRt=Zg(),YFe={shared:!1,ignoreCargoCult:!0},VRt={status:200,headers:{}},H2=t=>{let e={method:t.method,url:t.url,headers:{},compress:t.compress};return t.headers.forEach((r,s)=>{e.headers[s]=r}),e},KFe=t=>{let e={status:t.status,headers:{}};return t.headers.forEach((r,s)=>{e.headers[s]=r}),e},z$=class{constructor({entry:e,request:r,response:s,options:a}){this.entry=e,this.request=H2(r),this.response=KFe(s),this.options=a,this.policy=new VFe(this.request,this.response,YFe),this.entry&&(this.policy._responseTime=this.entry.metadata.time)}static storable(e,r){return!r.cachePath||r.cache==="no-store"||!["GET","HEAD"].includes(e.method)?!1:new VFe(H2(e),VRt,YFe).storable()}satisfies(e){let r=H2(e);if(this.request.headers.host!==r.headers.host||this.request.compress!==r.compress)return!1;let s=new WFe(this.request),a=new WFe(r);return JSON.stringify(s.mediaTypes())!==JSON.stringify(a.mediaTypes())||JSON.stringify(s.languages())!==JSON.stringify(a.languages())||JSON.stringify(s.encodings())!==JSON.stringify(a.encodings())?!1:this.options.integrity?qRt.parse(this.options.integrity).match(this.entry.integrity):!0}storable(){return this.policy.storable()}get mustRevalidate(){return!!this.policy._rescc["must-revalidate"]}needsRevalidation(e){let r=H2(e);return r.method="GET",!this.policy.satisfiesWithoutRevalidation(r)}responseHeaders(){return this.policy.responseHeaders()}revalidationHeaders(e){let r=H2(e);return this.policy.revalidationHeaders(r)}revalidated(e,r){let s=H2(e),a=KFe(r);return!this.policy.revalidatedPolicy(s,a).modified}};zFe.exports=z$});var ZFe=H((nCr,JFe)=>{var Z$=class extends Error{constructor(e){super(`request to ${e} failed: cache mode is 'only-if-cached' but no cached response is available.`),this.code="ENOTCACHED"}};JFe.exports={NotCachedError:Z$}});var KM=H((iCr,tNe)=>{var WRt=vM(),XFe=Symbol("_flush"),$Fe=Symbol("_flushed"),eNe=Symbol("_flushing"),X$=class extends WRt{constructor(e={}){if(typeof e=="function"&&(e={flush:e}),super(e),typeof e.flush!="function"&&typeof this.flush!="function")throw new TypeError("must provide flush function in options");this[XFe]=e.flush||this.flush}emit(e,...r){if(e!=="end"&&e!=="finish"||this[$Fe])return super.emit(e,...r);if(this[eNe])return;this[eNe]=!0;let s=n=>{this[$Fe]=!0,n?super.emit("error",n):super.emit("end")},a=this[XFe](s);a&&a.then&&a.then(()=>s(),n=>s(n))}};tNe.exports=X$});var ree=H((sCr,tee)=>{var{Minipass:rNe}=Ko(),j2=Symbol("_data"),G2=Symbol("_length"),$$=class extends rNe{constructor(e){super(e),this[j2]=[],this[G2]=0}write(e,r,s){typeof r=="function"&&(s=r,r="utf8"),r||(r="utf8");let a=Buffer.isBuffer(e)?e:Buffer.from(e,r);return this[j2].push(a),this[G2]+=a.length,s&&s(),!0}end(e,r,s){typeof e=="function"&&(s=e,e=null),typeof r=="function"&&(s=r,r="utf8"),e&&this.write(e,r);let a=Buffer.concat(this[j2],this[G2]);return super.write(a),super.end(s)}};tee.exports=$$;var eee=class extends rNe{constructor(e){super(e),this[j2]=[],this[G2]=0}write(e,r,s){typeof r=="function"&&(s=r,r="utf8"),r||(r="utf8");let a=Buffer.isBuffer(e)?e:Buffer.from(e,r);return this[j2].push(a),this[G2]+=a.length,super.write(e,r,s)}end(e,r,s){typeof e=="function"&&(s=e,e=null),typeof r=="function"&&(s=r,r="utf8"),e&&this.write(e,r);let a=Buffer.concat(this[j2],this[G2]);return this.emit("collect",a),super.end(s)}};tee.exports.PassThrough=eee});var q2=H((oCr,oNe)=>{var YRt=vM(),KRt=Ae("events"),zRt=t=>t&&t instanceof KRt&&(typeof t.pipe=="function"||typeof t.write=="function"&&typeof t.end=="function"),GE=Symbol("_head"),Hl=Symbol("_tail"),nee=Symbol( Line truncated
`+l.map(B=>{let D=JSON.stringify(B);return`${n4(D)} ${D}`}).join(`
`),h=async()=>{let B=EQt(PA.join(t,"tmp"),s.tmpPrefix);return await Iee(PA.dirname(B),{recursive:!0}),{target:B,moved:!1}},A=async B=>{if(!B.moved)return $Ne(B.target,{recursive:!0,force:!0})},m=async B=>{await gQt(B.target,f,{flag:"wx"}),await Iee(PA.dirname(a),{recursive:!0}),await BQt(B.target,a),B.moved=!0},w=await h();try{await m(w)}finally{await A(w)}return l.reverse().map(B=>i4(t,B,!0))}jl.exports.insert=eOe;async function eOe(t,e,r,s={}){let{metadata:a,size:n,time:l}=s,f=fk(t,e),h={key:e,integrity:r&&yQt.stringify(r),time:l||Date.now(),size:n,metadata:a};try{await Iee(PA.dirname(f),{recursive:!0});let A=JSON.stringify(h);await AQt(f,`
${n4(A)} ${A}`)}catch(A){if(A.code==="ENOENT")return;throw A}return i4(t,h)}jl.exports.find=SQt;async function SQt(t,e){let r=fk(t,e);try{return(await r4(r)).reduce((a,n)=>n&&n.key===e?i4(t,n):a,null)}catch(s){if(s.code==="ENOENT")return null;throw s}}jl.exports.delete=bQt;function bQt(t,e,r={}){if(!r.removeFully)return eOe(t,e,null,r);let s=fk(t,e);return $Ne(s,{recursive:!0,force:!0})}jl.exports.lsStream=tOe;function tOe(t){let e=wee(t),r=new mQt({objectMode:!0});return Promise.resolve().then(async()=>{let{default:s}=await Promise.resolve().then(()=>(t4(),e4)),a=await Eee(e);return await s(a,async n=>{let l=PA.join(e,n),f=await Eee(l);await s(f,async h=>{let A=PA.join(l,h),m=await Eee(A);await s(m,async w=>{let B=PA.join(A,w);try{let I=(await r4(B)).reduce((R,N)=>(R.set(N.key,N),R),new Map);for(let R of I.values()){let N=i4(t,R);N&&r.write(N)}}catch(D){if(D.code==="ENOENT")return;throw D}},{concurrency:yee})},{concurrency:yee})},{concurrency:yee}),r.end(),r}).catch(s=>r.emit("error",s)),r}jl.exports.ls=DQt;async function DQt(t){return(await tOe(t).collect()).reduce((r,s)=>(r[s.key]=s,r),{})}jl.exports.bucketEntries=r4;async function r4(t,e){let r=await pQt(t,"utf8");return PQt(r,e)}function PQt(t){let e=[];return t.split(`
`).forEach(r=>{if(!r)return;let s=r.split(" ");if(!s[1]||n4(s[1])!==s[0])return;let a;try{a=JSON.parse(s[1])}catch{}a&&e.push(a)}),e}jl.exports.bucketDir=wee;function wee(t){return PA.join(t,`index-v${CQt}`)}jl.exports.bucketPath=fk;function fk(t,e){let r=rOe(e);return PA.join.apply(PA,[wee(t)].concat(wQt(r)))}jl.exports.hashKey=rOe;function rOe(t){return nOe(t,"sha256")}jl.exports.hashEntry=n4;function n4(t){return nOe(t,"sha1")}function nOe(t,e){return hQt.createHash(e).update(t).digest("hex")}function i4(t,e,r){return!e.integrity&&!r?null:{key:e.key,integrity:e.integrity,path:e.integrity?IQt(t,e.integrity):void 0,size:e.size,time:e.time,metadata:e.metadata}}function Eee(t){return dQt(t).catch(e=>{if(e.code==="ENOENT"||e.code==="ENOTDIR")return[];throw e})}});var z2=H(o4=>{"use strict";Object.defineProperty(o4,"__esModule",{value:!0});o4.LRUCache=void 0;var xQt=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,sOe=new Set,Cee=typeof process=="object"&&process?process:{},oOe=(t,e,r,s)=>{typeof Cee.emitWarning=="function"?Cee.emitWarning(t,e,r,s):console.error(`[${r}] ${e}: ${t}`)},s4=globalThis.AbortController,iOe=globalThis.AbortSignal;if(typeof s4>"u"){iOe=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(s,a){this._onabort.push(a)}},s4=class{constructor(){e()}signal=new iOe;abort(s){if(!this.signal.aborted){this.signal.reason=s,this.signal.aborted=!0;for(let a of this.signal._onabort)a(s);this.signal.onabort?.(s)}}};let t=Cee.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",e=()=>{t&&(t=!1,oOe("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}var kQt=t=>!sOe.has(t),PCr=Symbol("type"),Xg=t=>t&&t===Math.floor(t)&&t>0&&isFinite(t),aOe=t=>Xg(t)?t<=Math.pow(2,8)?Uint8Array:t<=Math.pow(2,16)?Uint16Array:t<=Math.pow(2,32)?Uint32Array:t<=Number.MAX_SAFE_INTEGER?K2:null:null,K2=class extends Array{constructor(e){super(e),this.fill(0)}},Bee=class t{heap;length;static#e=!1;static create(e){let r=aOe(e);if(!r)return[];t.#e=!0;let s=new t(e,r);return t.#e=!1,s}constructor(e,r){if(!t.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(e),this.length=0}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}},vee=class t{#e;#t;#r;#n;#s;#i;#l;#u;get perf(){return this.#u}ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#c;#A;#p;#f;#a;#d;#w;#I;#g;#P;#m;#v;#S;#y;#E;#C;#b;#o;#F;static unsafeExposeInternals(e){return{starts:e.#S,ttls:e.#y,autopurgeTimers:e.#E,sizes:e.#v,keyMap:e.#p,keyList:e.#f,valList:e.#a,next:e.#d,prev:e.#w,get head(){return e.#I},get tail(){return e.#g},free:e.#P,isBackgroundFetch:r=>e.#h(r),backgroundFetch:(r,s,a,n)=>e.#j(r,s,a,n),moveToTail:r=>e.#O(r),indexes:r=>e.#k(r),rindexes:r=>e.#R(r),isStale:r=>e.#B(r)}}get max(){return this.#e}get maxSize(){return this.#t}get calculatedSize(){return this.#A}get size(){return this.#c}get fetchMethod(){return this.#i}get memoMethod(){return this.#l}get dispose(){return this.#r}get onInsert(){return this.#n}get disposeAfter(){return this.#s}constructor(e){let{max:r=0,ttl:s,ttlResolution:a=1,ttlAutopurge:n,updateAgeOnGet:l,updateAgeOnHas:f,allowStale:h,dispose:A,onInsert:m,disposeAfter:w,noDisposeOnSet:B,noUpdateTTL:D,maxSize:I=0,maxEntrySize:R=0,sizeCalculation:N,fetchMethod:U,memoMethod:V,noDeleteOnFetchRejection:ee,noDeleteOnStaleGet:te,allowStaleOnFetchRejection:ie,allowStaleOnFetchAbort:ae,ignoreFetchAbort:ge,perf:de}=e;if(de!==void 0&&typeof de?.now!="function")throw new TypeError("perf option must have a now() method if specified");if(this.#u=de??xQt,r!==0&&!Xg(r))throw new TypeError("max option must be a nonnegative integer");let De=r?aOe(r):Array;if(!De)throw new Error("invalid max value: "+r);if(this.#e=r,this.#t=I,this.maxEntrySize=R||this.#t,this.sizeCalculation=N,this.sizeCalculation){if(!this.#t&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(V!==void 0&&typeof V!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#l=V,U!==void 0&&typeof U!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#i=U,this.#b=!!U,this.#p=new Map,this.#f=new Array(r).fill(void 0),this.#a=new Array(r).fill(void 0),this.#d=new De(r),this.#w=new De(r),this.#I=0,this.#g=0 Line truncated
Wanted: ${t}
Found: ${e}`);return r.code="EINTEGRITY",r.expected=t,r.found=e,r}});var xOe=H((NCr,_ee)=>{"use strict";var SOe=Y2(),bOe=hk(),DOe=vOe(),hFt=KM(),{PassThrough:AFt}=ree(),pFt=q2(),POe=t=>({algorithms:["sha512"],...t});_ee.exports=dFt;async function dFt(t,e,r,s={}){let{memoize:a}=s;s=POe(s);let n=await DOe(t,r,s),l=await SOe.insert(t,e,n.integrity,{...s,size:n.size});return a&&bOe.put(t,l,r,s),n.integrity}_ee.exports.stream=gFt;function gFt(t,e,r={}){let{memoize:s}=r;r=POe(r);let a,n,l,f,h=new pFt;if(s){let m=new AFt().on("collect",w=>{f=w});h.push(m)}let A=DOe.stream(t,r).on("integrity",m=>{a=m}).on("size",m=>{n=m}).on("error",m=>{l=m});return h.push(A),h.push(new hFt({async flush(){if(!l){let m=await SOe.insert(t,e,a,{...r,size:n});s&&f&&bOe.put(t,m,f,r),h.emit("integrity",a),h.emit("size",n)}}})),h}});var ROe=H(KE=>{"use strict";Object.defineProperty(KE,"__esModule",{value:!0});KE.range=KE.balanced=void 0;var mFt=(t,e,r)=>{let s=t instanceof RegExp?kOe(t,r):t,a=e instanceof RegExp?kOe(e,r):e,n=s!==null&&a!=null&&(0,KE.range)(s,a,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+s.length,n[1]),post:r.slice(n[1]+a.length)}};KE.balanced=mFt;var kOe=(t,e)=>{let r=e.match(t);return r?r[0]:null},yFt=(t,e,r)=>{let s,a,n,l,f,h=r.indexOf(t),A=r.indexOf(e,h+1),m=h;if(h>=0&&A>0){if(t===e)return[h,A];for(s=[],n=r.length;m>=0&&!f;){if(m===h)s.push(m),h=r.indexOf(t,m+1);else if(s.length===1){let w=s.pop();w!==void 0&&(f=[w,A])}else a=s.pop(),a!==void 0&&a<n&&(n=a,l=A),A=r.indexOf(e,m+1);m=h<A&&h>=0?h:A}s.length&&l!==void 0&&(f=[n,l])}return f};KE.range=yFt});var _Oe=H(Hee=>{"use strict";Object.defineProperty(Hee,"__esModule",{value:!0});Hee.expand=RFt;var TOe=ROe(),QOe="\0SLASH"+Math.random()+"\0",FOe="\0OPEN"+Math.random()+"\0",Uee="\0CLOSE"+Math.random()+"\0",NOe="\0COMMA"+Math.random()+"\0",OOe="\0PERIOD"+Math.random()+"\0",EFt=new RegExp(QOe,"g"),IFt=new RegExp(FOe,"g"),wFt=new RegExp(Uee,"g"),CFt=new RegExp(NOe,"g"),BFt=new RegExp(OOe,"g"),vFt=/\\\\/g,SFt=/\\{/g,bFt=/\\}/g,DFt=/\\,/g,PFt=/\\./g;function Mee(t){return isNaN(t)?t.charCodeAt(0):parseInt(t,10)}function xFt(t){return t.replace(vFt,QOe).replace(SFt,FOe).replace(bFt,Uee).replace(DFt,NOe).replace(PFt,OOe)}function kFt(t){return t.replace(EFt,"\\").replace(IFt,"{").replace(wFt,"}").replace(CFt,",").replace(BFt,".")}function LOe(t){if(!t)return[""];let e=[],r=(0,TOe.balanced)("{","}",t);if(!r)return t.split(",");let{pre:s,body:a,post:n}=r,l=s.split(",");l[l.length-1]+="{"+a+"}";let f=LOe(n);return n.length&&(l[l.length-1]+=f.shift(),l.push.apply(l,f)),e.push.apply(e,l),e}function RFt(t){return t?(t.slice(0,2)==="{}"&&(t="\\{\\}"+t.slice(2)),Ek(xFt(t),!0).map(kFt)):[]}function TFt(t){return"{"+t+"}"}function QFt(t){return/^-?0\d/.test(t)}function FFt(t,e){return t<=e}function NFt(t,e){return t>=e}function Ek(t,e){let r=[],s=(0,TOe.balanced)("{","}",t);if(!s)return[t];let a=s.pre,n=s.post.length?Ek(s.post,!1):[""];if(/\$$/.test(s.pre))for(let l=0;l<n.length;l++){let f=a+"{"+s.body+"}"+n[l];r.push(f)}else{let l=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(s.body),f=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(s.body),h=l||f,A=s.body.indexOf(",")>=0;if(!h&&!A)return s.post.match(/,(?!,).*\}/)?(t=s.pre+"{"+s.body+Uee+s.post,Ek(t)):[t];let m;if(h)m=s.body.split(/\.\./);else if(m=LOe(s.body),m.length===1&&m[0]!==void 0&&(m=Ek(m[0],!1).map(TFt),m.length===1))return n.map(B=>s.pre+m[0]+B);let w;if(h&&m[0]!==void 0&&m[1]!==void 0){let B=Mee(m[0]),D=Mee(m[1]),I=Math.max(m[0].length,m[1].length),R=m.length===3&&m[2]!==void 0?Math.abs(Mee(m[2])):1,N=FFt;D<B&&(R*=-1,N=NFt);let V=m.some(QFt);w=[];for(let ee=B;N(ee,D);ee+=R){let te;if(f)te=String.fromCharCode(ee),te==="\\"&&(te="");else if(te=String(ee),V){let ie=I-te.length;if(ie>0){let ae=new Array(ie+1).join("0");ee<0?te="-"+ae+te.slice(1):te=ae+te}}w.push(te)}}else{w=[];for(let B=0;B<m.length;B++)w.push.apply(w,Ek(m[B],!1))}for(let B=0;B<w.length;B++)for(let D=0;D<n.length;D++){let I=a+w[B]+n[D];(!e||h||I)&&r.push(I)}}return r}});var MOe=H(m4=>{"use strict";Object.defineProperty(m4,"__esModule",{value:!0});m4.assertValidPattern=void 0;var OFt=1024*64,LFt=t=>{if(typeof t!="string")throw new TypeError("invalid pattern");if(t.length>OFt)throw new TypeError("pattern is too long")};m4.assertValidPattern=LFt});var HOe=H(y4=>{"use strict";Object.defineProperty(y4,"__esModule",{value:!0});y4.parseClass=void 0;var _Ft={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},Ik=t=>t.replace(/[[\]\\-]/g,"\\$&"),MFt=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),UOe=t=>t.join(""),UFt=(t,e)=>{let r=e;if(t.charAt(r)!=="[")throw new Line truncated
globstar while`,e,B,r,D,I),this.matchOne(e.slice(B),r.slice(D),s))return this.debug("globstar found match!",B,h,I),!0;if(I==="."||I===".."||!a.dot&&I.charAt(0)==="."){this.debug("dot detected!",e,B,r,D);break}this.debug("globstar swallow a segment, and continue"),B++}return!!(s&&(this.debug(`
>>> no match, partial?`,e,B,r,D),B===h))}let R;if(typeof m=="string"?(R=w===m,this.debug("string match",m,w,R)):(R=m.test(w),this.debug("pattern match",m,w,R)),!R)return!1}if(l===h&&f===A)return!0;if(l===h)return s;if(f===A)return l===h-1&&e[l]==="";throw new Error("wtf?")}braceExpand(){return(0,_r.braceExpand)(this.pattern,this.options)}parse(e){(0,S4.assertValidPattern)(e);let r=this.options;if(e==="**")return _r.GLOBSTAR;if(e==="")return"";let s,a=null;(s=e.match(uNt))?a=r.dot?hNt:fNt:(s=e.match(eNt))?a=(r.nocase?r.dot?iNt:nNt:r.dot?rNt:tNt)(s[1]):(s=e.match(ANt))?a=(r.nocase?r.dot?dNt:pNt:r.dot?gNt:mNt)(s):(s=e.match(sNt))?a=r.dot?aNt:oNt:(s=e.match(cNt))&&(a=lNt);let n=YOe.AST.fromGlob(e,this.options).toMMPattern();return a&&typeof n=="object"&&Reflect.defineProperty(n,"test",{value:a}),n}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let e=this.set;if(!e.length)return this.regexp=!1,this.regexp;let r=this.options,s=r.noglobstar?ENt:r.dot?INt:wNt,a=new Set(r.nocase?["i"]:[]),n=e.map(h=>{let A=h.map(w=>{if(w instanceof RegExp)for(let B of w.flags.split(""))a.add(B);return typeof w=="string"?DNt(w):w===_r.GLOBSTAR?_r.GLOBSTAR:w._src});A.forEach((w,B)=>{let D=A[B+1],I=A[B-1];w!==_r.GLOBSTAR||I===_r.GLOBSTAR||(I===void 0?D!==void 0&&D!==_r.GLOBSTAR?A[B+1]="(?:\\/|"+s+"\\/)?"+D:A[B]=s:D===void 0?A[B-1]=I+"(?:\\/|\\/"+s+")?":D!==_r.GLOBSTAR&&(A[B-1]=I+"(?:\\/|\\/"+s+"\\/)"+D,A[B+1]=_r.GLOBSTAR))});let m=A.filter(w=>w!==_r.GLOBSTAR);if(this.partial&&m.length>=1){let w=[];for(let B=1;B<=m.length;B++)w.push(m.slice(0,B).join("/"));return"(?:"+w.join("|")+")"}return m.join("/")}).join("|"),[l,f]=e.length>1?["(?:",")"]:["",""];n="^"+l+n+f+"$",this.partial&&(n="^(?:\\/|"+l+n.slice(1,-1)+f+")$"),this.negate&&(n="^(?!"+n+").+$");try{this.regexp=new RegExp(n,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(e){return this.preserveMultipleSlashes?e.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(e)?["",...e.split(/\/+/)]:e.split(/\/+/)}match(e,r=this.partial){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return e==="";if(e==="/"&&r)return!0;let s=this.options;this.isWindows&&(e=e.split("\\").join("/"));let a=this.slashSplit(e);this.debug(this.pattern,"split",a);let n=this.set;this.debug(this.pattern,"set",n);let l=a[a.length-1];if(!l)for(let f=a.length-2;!l&&f>=0;f--)l=a[f];for(let f=0;f<n.length;f++){let h=n[f],A=a;if(s.matchBase&&h.length===1&&(A=[l]),this.matchOne(A,h,r))return s.flipNegate?!0:!this.negate}return s.flipNegate?!1:this.negate}static defaults(e){return _r.minimatch.defaults(e).Minimatch}};_r.Minimatch=zE;var PNt=qee();Object.defineProperty(_r,"AST",{enumerable:!0,get:function(){return PNt.AST}});var xNt=Vee();Object.defineProperty(_r,"escape",{enumerable:!0,get:function(){return xNt.escape}});var kNt=I4();Object.defineProperty(_r,"unescape",{enumerable:!0,get:function(){return kNt.unescape}});_r.minimatch.AST=YOe.AST;_r.minimatch.Minimatch=zE;_r.minimatch.escape=ZFt.escape;_r.minimatch.unescape=XFt.unescape});var uLe=H(yi=>{"use strict";var RNt=yi&&yi.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),TNt=yi&&yi.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),QNt=yi&&yi.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&RNt(e,t,r);return TNt(e,t),e};Object.defineProperty(yi,"__esModule",{value:!0});yi.PathScurry=yi.Path=yi.PathScurryDarwin=yi.PathScurryPosix=yi.PathScurryWin32=yi.PathScurryBase=yi.PathPosix=yi.PathWin32=yi.PathBase=yi.ChildrenCache=yi.ResolveCache=void 0;var Q4=z2(),k4=Ae("node:path"),FNt=Ae("node:url"),Ck=Ae("fs"),NNt=QNt(Ae("node:fs")),ONt=Ck.realpathSync.native,b4=Ae("node:fs/promises"),ZOe=Ko(),Bk={lstatSync:Ck.lstatSync,readdir:Ck.readdir,readdirSync:Ck.readdirSync,readlinkSync:Ck.readlinkSync,realpathSync:ONt,promises:{lstat:b4.lstat,readdir:b4.readdir,readlink:b4.readlink,realpath:b4.realpath}},rLe=t=>!t||t===Bk||t===NNt?Bk:{...Bk,...t,promises:{...Bk.promises,...t.promises||{}}},nLe=/^\\\\\?\\([a-z]:)\\?$/i,LNt=t=>t.replace(/\//g,"\\").replace(nLe,"$1\\"),_Nt=/[\\\/]/,Uu=0,iLe=1,sLe=2,kA=4,oLe=6,aLe=8,JE=10,cLe=12,Mu=15,wk=~Mu,Wee=16,XOe=32,vk=64,nh=128,D4=256,x4=512,$Oe=vk|nh|x4,MNt=1023,Yee=t=>t.isFile()?aLe:t.isDirectory()?kA:t.isSymbolicLink()?JE:t.isCharacterDevice()?sLe:t.isBlockDevice()?oLe:t.isSocket()?cLe:t.isFIFO()?iLe:Uu,eLe=new Q4.LRUCache({max:2**12}),Sk=t=>{let e=eLe.get(t);if(e)return e;let r=t.normalize("NFKD");return eLe.set(t,r),r},tLe=new Q4.LRUCache({max:2**12}),P4=t=>{let e=tLe.get(t);if(e)return e;let r=Sk(t.toLowerCase());return tLe.set(t,r),r},bk=class extends Q4.LRUCache{ Line truncated
`).join(`
`+n),t.push(a+"m+"+Z4.exports.humanize(this.diff)+"\x1B[0m")}else t[0]=NLt()+e+" "+t[0]}function NLt(){return xo.inspectOpts.hideDate?"":new Date().toISOString()+" "}function OLt(...t){return process.stderr.write(J4.formatWithOptions(xo.inspectOpts,...t)+`
`)}function LLt(t){t?process.env.DEBUG=t:delete process.env.DEBUG}function _Lt(){return process.env.DEBUG}function MLt(t){t.inspectOpts={};let e=Object.keys(xo.inspectOpts);for(let r=0;r<e.length;r++)t.inspectOpts[e[r]]=xo.inspectOpts[e[r]]}Z4.exports=Ste()(xo);var{formatters:i_e}=Z4.exports;i_e.o=function(t){return this.inspectOpts.colors=this.useColors,J4.inspect(t,this.inspectOpts).split(`
`).map(e=>e.trim()).join(" ")};i_e.O=function(t){return this.inspectOpts.colors=this.useColors,J4.inspect(t,this.inspectOpts)}});var $E=H((g1r,bte)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?bte.exports=n_e():bte.exports=s_e()});var c_e=H(sl=>{"use strict";var ULt=sl&&sl.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),HLt=sl&&sl.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),o_e=sl&&sl.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&ULt(e,t,r);return HLt(e,t),e};Object.defineProperty(sl,"__esModule",{value:!0});sl.req=sl.json=sl.toBuffer=void 0;var jLt=o_e(Ae("http")),GLt=o_e(Ae("https"));async function a_e(t){let e=0,r=[];for await(let s of t)e+=s.length,r.push(s);return Buffer.concat(r,e)}sl.toBuffer=a_e;async function qLt(t){let r=(await a_e(t)).toString("utf8");try{return JSON.parse(r)}catch(s){let a=s;throw a.message+=` (input: ${r})`,a}}sl.json=qLt;function VLt(t,e={}){let s=((typeof t=="string"?t:t.href).startsWith("https:")?GLt:jLt).request(t,e),a=new Promise((n,l)=>{s.once("response",n).once("error",l).end()});return s.then=a.then.bind(a),s}sl.req=VLt});var Ok=H(Gl=>{"use strict";var u_e=Gl&&Gl.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),WLt=Gl&&Gl.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),f_e=Gl&&Gl.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&u_e(e,t,r);return WLt(e,t),e},YLt=Gl&&Gl.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&u_e(e,t,r)};Object.defineProperty(Gl,"__esModule",{value:!0});Gl.Agent=void 0;var KLt=f_e(Ae("net")),l_e=f_e(Ae("http")),zLt=Ae("https");YLt(c_e(),Gl);var TA=Symbol("AgentBaseInternalState"),Dte=class extends l_e.Agent{constructor(e){super(e),this[TA]={}}isSecureEndpoint(e){if(e){if(typeof e.secureEndpoint=="boolean")return e.secureEndpoint;if(typeof e.protocol=="string")return e.protocol==="https:"}let{stack:r}=new Error;return typeof r!="string"?!1:r.split(`
`).some(s=>s.indexOf("(https.js:")!==-1||s.indexOf("node:https:")!==-1)}incrementSockets(e){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[e]||(this.sockets[e]=[]);let r=new KLt.Socket({writable:!1});return this.sockets[e].push(r),this.totalSocketCount++,r}decrementSockets(e,r){if(!this.sockets[e]||r===null)return;let s=this.sockets[e],a=s.indexOf(r);a!==-1&&(s.splice(a,1),this.totalSocketCount--,s.length===0&&delete this.sockets[e])}getName(e){return this.isSecureEndpoint(e)?zLt.Agent.prototype.getName.call(this,e):super.getName(e)}createSocket(e,r,s){let a={...r,secureEndpoint:this.isSecureEndpoint(r)},n=this.getName(a),l=this.incrementSockets(n);Promise.resolve().then(()=>this.connect(e,a)).then(f=>{if(this.decrementSockets(n,l),f instanceof l_e.Agent)try{return f.addRequest(e,a)}catch(h){return s(h)}this[TA].currentSocket=f,super.createSocket(e,r,s)},f=>{this.decrementSockets(n,l),s(f)})}createConnection(){let e=this[TA].currentSocket;if(this[TA].currentSocket=void 0,!e)throw new Error("No socket was returned in the `connect()` function");return e}get defaultPort(){return this[TA].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(e){this[TA]&&(this[TA].defaultPort=e)}get protocol(){return this[TA].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(e){this[TA]&&(this[TA].protocol=e)}};Gl.Agent=Dte});var p_e=H(Hu=>{"use strict";var JLt=Hu&&Hu.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),ZLt=Hu&&Hu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),A_e=Hu&&Hu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&JLt(e,t,r);return ZLt(e,t),e},XLt=Hu&&Hu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Hu,"__esModule",{value:!0});Hu.HttpProxyAgent=void 0;var $Lt=A_e(Ae("net")),e_t=A_e(Ae("tls")),t_t=XLt($E()),r_t=Ae("events"),n_t=Ok(),h_e=Ae("url"),uB=(0,t_t.default)("http-proxy-agent"),X4=class extends n_t.Agent{constructor(e,r){super(r),this.proxy=typeof e=="string"?new h_e.URL(e):e,this.proxyHeaders=r?.headers??{},uB("Creating new HttpProxyAgent instance: %o",this.proxy.href);let s=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),a=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={...r?i_t(r,"headers"):null,host:s,port:a}}addRequest(e,r){e._header=null,this.setRequestProps(e,r),super.addRequest(e,r)}setRequestProps(e,r){let{proxy:s}=this,a=r.secureEndpoint?"https:":"http:",n=e.getHeader("host")||"localhost",l=`${a}//${n}`,f=new h_e.URL(e.path,l);r.port!==80&&(f.port=String(r.port)),e.path=String(f);let h=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders};if(s.username||s.password){let A=`${decodeURIComponent(s.username)}:${decodeURIComponent(s.password)}`;h["Proxy-Authorization"]=`Basic ${Buffer.from(A).toString("base64")}`}h["Proxy-Connection"]||(h["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let A of Object.keys(h)){let m=h[A];m&&e.setHeader(A,m)}}async connect(e,r){e._header=null,e.path.includes("://")||this.setRequestProps(e,r);let s,a;uB("Regenerating stored HTTP header string for request"),e._implicitHeader(),e.outputData&&e.outputData.length>0&&(uB("Patching connection write() output buffer with updated header"),s=e.outputData[0].data,a=s.indexOf(`\r
\r
`)+4,e.outputData[0].data=e._header+s.substring(a),uB("Output buffer: %o",e.outputData[0].data));let n;return this.proxy.protocol==="https:"?(uB("Creating `tls.Socket`: %o",this.connectOpts),n=e_t.connect(this.connectOpts)):(uB("Creating `net.Socket`: %o",this.connectOpts),n=$Lt.connect(this.connectOpts)),await(0,r_t.once)(n,"connect"),n}};X4.protocols=["http","https"];Hu.HttpProxyAgent=X4;function i_t(t,...e){let r={},s;for(s in t)e.includes(s)||(r[s]=t[s]);return r}});var d_e=H(fB=>{"use strict";var s_t=fB&&fB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fB,"__esModule",{value:!0});fB.parseProxyResponse=void 0;var o_t=s_t($E()),$4=(0,o_t.default)("https-proxy-agent:parse-proxy-response");function a_t(t){return new Promise((e,r)=>{let s=0,a=[];function n(){let m=t.read();m?A(m):t.once("readable",n)}function l(){t.removeListener("end",f),t.removeListener("error",h),t.removeListener("readable",n)}function f(){l(),$4("onend"),r(new Error("Proxy connection ended before receiving CONNECT response"))}function h(m){l(),$4("onerror %o",m),r(m)}function A(m){a.push(m),s+=m.length;let w=Buffer.concat(a,s),B=w.indexOf(`\r
\r
`);if(B===-1){$4("have not received end of HTTP headers yet..."),n();return}let D=w.slice(0,B).toString("ascii").split(`\r
`),I=D.shift();if(!I)return t.destroy(),r(new Error("No header received from proxy CONNECT response"));let R=I.split(" "),N=+R[1],U=R.slice(2).join(" "),V={};for(let ee of D){if(!ee)continue;let te=ee.indexOf(":");if(te===-1)return t.destroy(),r(new Error(`Invalid header from proxy CONNECT response: "${ee}"`));let ie=ee.slice(0,te).toLowerCase(),ae=ee.slice(te+1).trimStart(),ge=V[ie];typeof ge=="string"?V[ie]=[ge,ae]:Array.isArray(ge)?ge.push(ae):V[ie]=ae}$4("got proxy server response: %o %o",I,V),l(),e({connect:{statusCode:N,statusText:U,headers:V},buffered:w})}t.on("error",h),t.on("end",f),n()})}fB.parseProxyResponse=a_t});var w_e=H(ju=>{"use strict";var c_t=ju&&ju.__createBinding||(Object.create?function(t,e,r,s){s===void 0&&(s=r);var a=Object.getOwnPropertyDescriptor(e,r);(!a||("get"in a?!e.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,s,a)}:function(t,e,r,s){s===void 0&&(s=r),t[s]=e[r]}),l_t=ju&&ju.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),E_e=ju&&ju.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&c_t(e,t,r);return l_t(e,t),e},I_e=ju&&ju.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ju,"__esModule",{value:!0});ju.HttpsProxyAgent=void 0;var eU=E_e(Ae("net")),g_e=E_e(Ae("tls")),u_t=I_e(Ae("assert")),f_t=I_e($E()),h_t=Ok(),A_t=Ae("url"),p_t=d_e(),Lk=(0,f_t.default)("https-proxy-agent"),m_e=t=>t.servername===void 0&&t.host&&!eU.isIP(t.host)?{...t,servername:t.host}:t,tU=class extends h_t.Agent{constructor(e,r){super(r),this.options={path:void 0},this.proxy=typeof e=="string"?new A_t.URL(e):e,this.proxyHeaders=r?.headers??{},Lk("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let s=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),a=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...r?y_e(r,"headers"):null,host:s,port:a}}async connect(e,r){let{proxy:s}=this;if(!r.host)throw new TypeError('No "host" provided');let a;s.protocol==="https:"?(Lk("Creating `tls.Socket`: %o",this.connectOpts),a=g_e.connect(m_e(this.connectOpts))):(Lk("Creating `net.Socket`: %o",this.connectOpts),a=eU.connect(this.connectOpts));let n=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},l=eU.isIPv6(r.host)?`[${r.host}]`:r.host,f=`CONNECT ${l}:${r.port} HTTP/1.1\r
`;if(s.username||s.password){let B=`${decodeURIComponent(s.username)}:${decodeURIComponent(s.password)}`;n["Proxy-Authorization"]=`Basic ${Buffer.from(B).toString("base64")}`}n.Host=`${l}:${r.port}`,n["Proxy-Connection"]||(n["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let B of Object.keys(n))f+=`${B}: ${n[B]}\r
`;let h=(0,p_t.parseProxyResponse)(a);a.write(`${f}\r
`);let{connect:A,buffered:m}=await h;if(e.emit("proxyConnect",A),this.emit("proxyConnect",A,e),A.statusCode===200)return e.once("socket",d_t),r.secureEndpoint?(Lk("Upgrading socket connection to TLS"),g_e.connect({...y_e(m_e(r),"host","path","port"),socket:a})):a;a.destroy();let w=new eU.Socket({writable:!1});return w.readable=!0,e.once("socket",B=>{Lk("Replaying proxy buffer for failed request"),(0,u_t.default)(B.listenerCount("data")>0),B.push(m),B.push(null)}),w}};tU.protocols=["http","https"];ju.HttpsProxyAgent=tU;function d_t(t){t.resume()}function y_e(t,...e){let r={},s;for(s in t)e.includes(s)||(r[s]=t[s]);return r}});var S_e=H(Nd=>{"use strict";Object.defineProperty(Nd,"__esModule",{value:!0});var C_e=Ae("buffer"),eI={INVALID_ENCODING:"Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.",INVALID_SMARTBUFFER_SIZE:"Invalid size provided. Size must be a valid integer greater than zero.",INVALID_SMARTBUFFER_BUFFER:"Invalid Buffer provided in SmartBufferOptions.",INVALID_SMARTBUFFER_OBJECT:"Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.",INVALID_OFFSET:"An invalid offset value was provided.",INVALID_OFFSET_NON_NUMBER:"An invalid offset value was provided. A numeric value is required.",INVALID_LENGTH:"An invalid length value was provided.",INVALID_LENGTH_NON_NUMBER:"An invalid length value was provived. A numeric value is required.",INVALID_TARGET_OFFSET:"Target offset is beyond the bounds of the internal SmartBuffer data.",INVALID_TARGET_LENGTH:"Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.",INVALID_READ_BEYOND_BOUNDS:"Attempted to read beyond the bounds of the managed data.",INVALID_WRITE_BEYOND_BOUNDS:"Attempted to write beyond the bounds of the managed data."};Nd.ERRORS=eI;function g_t(t){if(!C_e.Buffer.isEncoding(t))throw new Error(eI.INVALID_ENCODING)}Nd.checkEncoding=g_t;function B_e(t){return typeof t=="number"&&isFinite(t)&&I_t(t)}Nd.isFiniteInteger=B_e;function v_e(t,e){if(typeof t=="number"){if(!B_e(t)||t<0)throw new Error(e?eI.INVALID_OFFSET:eI.INVALID_LENGTH)}else throw new Error(e?eI.INVALID_OFFSET_NON_NUMBER:eI.INVALID_LENGTH_NON_NUMBER)}function m_t(t){v_e(t,!1)}Nd.checkLengthValue=m_t;function y_t(t){v_e(t,!0)}Nd.checkOffsetValue=y_t;function E_t(t,e){if(t<0||t>e.length)throw new Error(eI.INVALID_TARGET_OFFSET)}Nd.checkTargetOffset=E_t;function I_t(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t}function w_t(t){if(typeof BigInt>"u")throw new Error("Platform does not support JS BigInt type.");if(typeof C_e.Buffer.prototype[t]>"u")throw new Error(`Platform does not support Buffer.prototype.${t}.`)}Nd.bigIntAndBufferInt64Check=w_t});var D_e=H(xte=>{"use strict";Object.defineProperty(xte,"__esModule",{value:!0});var bn=S_e(),b_e=4096,C_t="utf8",Pte=class t{constructor(e){if(this.length=0,this._encoding=C_t,this._writeOffset=0,this._readOffset=0,t.isSmartBufferOptions(e))if(e.encoding&&(bn.checkEncoding(e.encoding),this._encoding=e.encoding),e.size)if(bn.isFiniteInteger(e.size)&&e.size>0)this._buff=Buffer.allocUnsafe(e.size);else throw new Error(bn.ERRORS.INVALID_SMARTBUFFER_SIZE);else if(e.buff)if(Buffer.isBuffer(e.buff))this._buff=e.buff,this.length=e.buff.length;else throw new Error(bn.ERRORS.INVALID_SMARTBUFFER_BUFFER);else this._buff=Buffer.allocUnsafe(b_e);else{if(typeof e<"u")throw new Error(bn.ERRORS.INVALID_SMARTBUFFER_OBJECT);this._buff=Buffer.allocUnsafe(b_e)}}static fromSize(e,r){return new this({size:e,encoding:r})}static fromBuffer(e,r){return new this({buff:e,encoding:r})}static fromOptions(e){return new this(e)}static isSmartBufferOptions(e){let r=e;return r&&(r.encoding!==void 0||r.size!==void 0||r.buff!==void 0)}readInt8(e){return this._readNumberValue(Buffer.prototype.readInt8,1,e)}readInt16BE(e){return this._readNumberValue(Buffer.prototype.readInt16BE,2,e)}readInt16LE(e){return this._readNumberValue(Buffer.prototype.readInt16LE,2,e)}readInt32BE(e){return this._readNumberValue(Buffer.prototype.readInt32BE,4,e)}readInt32LE(e){return this._readNumberValue(Buffer.prototype.readInt32LE,4,e)}readBigInt64BE(e){return bn.bigIntAndBufferInt64Check("readBigInt64BE"),this._readNumberValue(Buffer.prototype.readBigInt64BE,8,e)}readBigInt64LE(e){return bn.bigIntAndBufferInt64Check("readBigInt64LE"),this._readNumberValue(Buffer.prototype.readBigInt64LE,8,e)}writeInt8(e,r){return this._writeNumberValue(Buffer.prototype.writeInt8,1,e,r),this}insertInt8(e,r){return this._insertNumberValue(Buffer.prototype.writeInt8,1,e,r)}writeInt16BE(e,r){return this._writeNumberValue(Buffer.prototype.writeInt16BE,2,e,r)}insertInt16BE(e,r){return this._insertNumberValue(Buffer.prototype.writeInt16BE,2,e,r)}writeInt16LE(e,r){return this._writeNumberValue(Buffer.prototype.writeInt16LE,2,e,r)}insertInt16LE(e,r){return this._insertNumberValue(Buffer.prototype.writeInt16LE,2,e,r)}writeInt32BE(e,r){return this._writeNumberValue(Buffer.prototype.writeInt32BE,4,e,r)}insert Line truncated
`,lHt=/\u2014 (\S+) (\S+)\n/g;function uHt(t,e){let r=t.inclusionProof,s=$ne.fromString(r.checkpoint.envelope),a=C8.fromString(s.note);if(!fHt(s,e))throw new lR.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid checkpoint signature"});return a}function fHt(t,e){let r=Buffer.from(t.note,"utf-8");return t.signatures.some(s=>{let a=e.find(n=>CUe.crypto.bufferEqual(n.logID.subarray(0,4),s.keyHint)&&n.baseURL.match(s.name));return a?CUe.crypto.verify(r,a.publicKey,s.signature):!1})}var $ne=class t{note;signatures;constructor(e,r){this.note=e,this.signatures=r}static fromString(e){if(!e.includes(Xne))throw new lR.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"missing checkpoint separator"});let r=e.indexOf(Xne),s=e.slice(0,r+1),n=e.slice(r+Xne.length).matchAll(lHt),l=Array.from(n,f=>{let[,h,A]=f,m=Buffer.from(A,"base64");if(m.length<5)throw new lR.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"malformed checkpoint signature"});return{name:h,keyHint:m.subarray(0,4),signature:m.subarray(4)}});if(l.length===0)throw new lR.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"no signatures found in checkpoint"});return new t(s,l)}},C8=class t{origin;logSize;logHash;rest;constructor(e,r,s,a){this.origin=e,this.logSize=r,this.logHash=s,this.rest=a}static fromString(e){let r=e.trimEnd().split(`
`);if(r.length<3)throw new lR.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"too few lines in checkpoint header"});let s=r[0],a=BigInt(r[1]),n=Buffer.from(r[2],"base64"),l=r.slice(3);return new t(s,a,n,l)}};uR.LogCheckpoint=C8});var vUe=H(nie=>{"use strict";Object.defineProperty(nie,"__esModule",{value:!0});nie.verifyMerkleInclusion=pHt;var rie=tl(),eie=Na(),hHt=Buffer.from([0]),AHt=Buffer.from([1]);function pHt(t,e){let r=t.inclusionProof,s=BigInt(r.logIndex),a=BigInt(e.logSize);if(s<0n||s>=a)throw new eie.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:`invalid index: ${s}`});let{inner:n,border:l}=dHt(s,a);if(r.hashes.length!==n+l)throw new eie.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid hash count"});let f=r.hashes.slice(0,n),h=r.hashes.slice(n),A=wHt(t.canonicalizedBody),m=mHt(gHt(A,f,s),h);if(!rie.crypto.bufferEqual(m,e.logHash))throw new eie.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"calculated root hash does not match inclusion proof"})}function dHt(t,e){let r=yHt(t,e),s=EHt(t>>BigInt(r));return{inner:r,border:s}}function gHt(t,e,r){return e.reduce((s,a,n)=>r>>BigInt(n)&BigInt(1)?tie(a,s):tie(s,a),t)}function mHt(t,e){return e.reduce((r,s)=>tie(s,r),t)}function yHt(t,e){return IHt(t^e-BigInt(1))}function EHt(t){return t.toString(2).split("1").length-1}function IHt(t){return t===0n?0:t.toString(2).length}function tie(t,e){return rie.crypto.digest("sha256",AHt,t,e)}function wHt(t){return rie.crypto.digest("sha256",hHt,t)}});var bUe=H(iie=>{"use strict";Object.defineProperty(iie,"__esModule",{value:!0});iie.verifyTLogSET=vHt;var SUe=tl(),CHt=Na(),BHt=MB();function vHt(t,e){if(!(0,BHt.filterTLogAuthorities)(e,{logID:t.logId.keyId,targetDate:new Date(Number(t.integratedTime)*1e3)}).some(a=>{let n=SHt(t),l=Buffer.from(SUe.json.canonicalize(n),"utf8"),f=t.inclusionPromise.signedEntryTimestamp;return SUe.crypto.verify(l,a.publicKey,f)}))throw new CHt.VerificationError({code:"TLOG_INCLUSION_PROMISE_ERROR",message:"inclusion promise could not be verified"})}function SHt(t){let{integratedTime:e,logIndex:r,logId:s,canonicalizedBody:a}=t;return{body:a.toString("base64"),integratedTime:Number(e),logIndex:Number(r),logID:s.keyId.toString("hex")}}});var PUe=H(B8=>{"use strict";Object.defineProperty(B8,"__esModule",{value:!0});B8.verifyTLogBody=kHt;B8.verifyTLogInclusion=RHt;var DUe=Ere(),aie=Na(),sie=EUe(),oie=IUe(),bHt=wUe(),DHt=BUe(),PHt=vUe(),xHt=bUe();function kHt(t,e){let{kind:r,version:s}=t.kindVersion,a=JSON.parse(t.canonicalizedBody.toString("utf8"));if(r!==a.kind||s!==a.apiVersion)throw new aie.VerificationError({code:"TLOG_BODY_ERROR",message:`kind/version mismatch - expected: ${r}/${s}, received: ${a.kind}/${a.apiVersion}`});switch(r){case"dsse":if(s==sie.DSSE_API_VERSION_V1)return(0,sie.verifyDSSETLogBody)(a,e);{let n=DUe.Entry.fromJSON(a);return(0,sie.verifyDSSETLogBodyV2)(n,e)}case"intoto":return(0,bHt.verifyIntotoTLogBody)(a,e);case"hashedrekord":if(s==oie.HASHEDREKORD_API_VERSION_V1)return(0,oie.verifyHashedRekordTLogBody)(a,e);{let n=DUe.Entry.fromJSON(a);return(0,oie.verifyHashedRekordTLogBodyV2)(n,e)}default:throw new aie.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported kind: ${r}`})}}function RHt(t,e){let r=!1;if(THt(t)&&((0,xHt.verifyTLogSET)(t,e),r=!0),QHt(t)){let s=(0,DHt.verifyCheckpoint)(t,e);(0,PHt.verifyMerkleInclusion)(t,s),r=!0}if(!r)throw new aie.VerificationError({code:"TLOG_MISSING_INCLUSION_ERROR",message:"inclusion could not be verified"})}function THt(t){return t.inclusionPromise!==void 0}function QHt(t){return t.inclusionProof!==void 0}});var QUe=H(v8=>{"use strict";Object.defineProperty(v8,"__esModule",{value:!0});v8.Verifier=void 0;var FHt=Ae("util"),UB=Na(),xUe=pUe(),cie=dUe(),kUe=yUe(),RUe=PUe(),lie=class{trustMaterial;options;constructor(e,r={}){this.trustMaterial=e,this.options={ctlogThreshold:r.ctlogThreshold??1,tlogThreshold:r.tlogThreshold??1,timestampThreshold:r.timestampThreshold??r.tsaThreshold??1,tsaThreshold:0}}verify(e,r){let s=this.verifyTimestamps(e),a=this.verifySigningKey(e,s);return this.verifyTLogs(e),this.verifySignature(e,a),r&&this.verifyPolicy(r,a.identity||{}),a}verifyTimestamps(e){let r=[];for(let s of e.timestamps)switch(s.$case){case"timestamp-authority":r.push((0,kUe.getTSATimestamp)(s.timestamp,e.signature.signature,this.trustMaterial.timestampAuthorities));break;case"transparency-log":{let a=(0,kUe.getTLogTimestamp)(s.tlogEntry);a&&r.push(a);break}}if(TUe(r))throw new UB.VerificationError({code:"TIMESTAMP_ERROR",message:"duplicate timestamp"});if(r.length<this.options.timestampThreshold)throw new UB.VerificationError({code:"TIMESTAMP_ERROR",message:`expected ${this.options.timestampThreshold} timestamps, got ${r.length}`});return r.map(s=>s.timestamp)}verifySigningKey({key:e},r){switch(e.$case){case"public-key":return(0,xUe.verifyPublicKey)(e.hint,r,this.trustMaterial);case"certificate":{let s=(0,xUe.verifyCertificate)(e.certificate,r,this.trustMaterial);if(TUe(s Line truncated
Try running the command again with the package name prefixed: ${pe.pretty(r,"yarn add",pe.Type.CODE)} ${pe.pretty(r,G.makeDescriptor(G.makeIdent(null,"my-package"),`${te[0]}...`),pe.Type.DESCRIPTOR)}`);if(!ee)throw new ht(`The ${pe.pretty(r,V,pe.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ie=omt(a,ee,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ie.map(async ge=>{let de=await ED(ee,{project:s,workspace:a,cache:n,fixed:l,target:ge,modifier:A,strategies:m,maxResults:w});return{request:ee,suggestedDescriptors:de,target:ge}}))})).then(V=>V.flat()),I=await tA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async V=>{for(let{request:ee,suggestedDescriptors:{suggestions:te,rejections:ie}}of D)if(te.filter(ge=>ge.descriptor!==null).length===0){let[ge]=ie;if(typeof ge>"u")throw new Error("Assertion failed: Expected an error to have been set");s.configuration.get("enableNetwork")?V.reportError(27,`${G.prettyDescriptor(r,ee)} can't be resolved to a satisfying range`):V.reportError(27,`${G.prettyDescriptor(r,ee)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),V.reportSeparator(),V.reportExceptionOnce(ge)}});if(I.hasErrors())return I.exitCode();let R=!1,N=[],U=[];for(let{suggestedDescriptors:{suggestions:V},target:ee}of D){let te,ie=V.filter(De=>De.descriptor!==null),ae=ie[0].descriptor,ge=ie.every(De=>G.areDescriptorsEqual(De.descriptor,ae));ie.length===1||ge?te=ae:(R=!0,{answer:te}=await(0,f2e.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:V.map(({descriptor:De,name:we,reason:d})=>De?{name:we,hint:d,descriptor:De}:{name:we,hint:d,disabled:!0}),onCancel:()=>process.exit(130),result(De){return this.find(De,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let de=a.manifest[ee].get(te.identHash);(typeof de>"u"||de.descriptorHash!==te.descriptorHash)&&(a.manifest[ee].set(te.identHash,te),this.optional&&(ee==="dependencies"?a.manifest.ensureDependencyMeta({...te,range:"unknown"}).optional=!0:ee==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...te,range:"unknown"}).optional=!0)),typeof de>"u"?N.push([a,ee,te,m]):U.push([a,ee,de,te]))}return await r.triggerMultipleHooks(V=>V.afterWorkspaceDependencyAddition,N),await r.triggerMultipleHooks(V=>V.afterWorkspaceDependencyReplacement,U),R&&this.context.stdout.write(`
`),await s.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};function omt(t,e,{dev:r,peer:s,preferDev:a,optional:n}){let l=t.manifest.dependencies.has(e.identHash),f=t.manifest.devDependencies.has(e.identHash),h=t.manifest.peerDependencies.has(e.identHash);if((r||s)&&l)throw new ht(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!s&&h)throw new ht(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&f)throw new ht(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!s&&h)throw new ht(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new ht(`Package "${G.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let A=[];return s&&A.push("peerDependencies"),(r||a)&&A.push("devDependencies"),n&&A.push("dependencies"),A.length>0?A:f?["devDependencies"]:h?["peerDependencies"]:["dependencies"]}We();We();sr();var MC=class extends mt{constructor(){super(...arguments);this.verbose=ye.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=ye.String({required:!1})}static{this.paths=[["bin"]]}static{this.usage=At.Usage({description:"get the path to a binary script",details:`
When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary.
When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive.
`,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,locator:a}=await Yt.find(r,this.context.cwd);if(await s.restoreInstallState(),this.name){let f=(await qn.getPackageAccessibleBinaries(a,{project:s})).get(this.name);if(!f)throw new ht(`Couldn't find a binary named "${this.name}" for package "${G.prettyLocator(r,a)}"`);let[,h]=f;return this.context.stdout.write(`${h}
`),0}return(await Wt.start({configuration:r,json:this.json,stdout:this.context.stdout},async l=>{let f=await qn.getPackageAccessibleBinaries(a,{project:s}),A=Array.from(f.keys()).reduce((m,w)=>Math.max(m,w.length),0);for(let[m,[w,B]]of f)l.reportJson({name:m,source:G.stringifyIdent(w),path:B});if(this.verbose)for(let[m,[w]]of f)l.reportInfo(null,`${m.padEnd(A," ")} ${G.prettyLocator(r,w)}`);else for(let m of f.keys())l.reportInfo(null,m)})).exitCode()}};We();Mt();sr();var UC=class extends mt{constructor(){super(...arguments);this.mirror=ye.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=ye.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}static{this.paths=[["cache","clean"],["cache","clear"]]}static{this.usage=At.Usage({description:"remove the shared cache files",details:`
This command will remove all the files from the cache.
`,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins);if(!r.get("enableCacheClean"))throw new ht("Cache cleaning is currently disabled. To enable it, set `enableCacheClean: true` in your configuration file. Note: Cache cleaning is typically not required and should be avoided when using Zero-Installs.");let s=await gn.find(r);return(await Wt.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&s.mirrorCwd!==null,l=!this.mirror;n&&(await fe.removePromise(s.mirrorCwd),await r.triggerHook(f=>f.cleanGlobalArtifacts,r)),l&&await fe.removePromise(s.cwd)})).exitCode()}};We();sr();xl();var OW=Ae("util"),HC=class extends mt{constructor(){super(...arguments);this.why=ye.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"});this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=ye.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=ye.String()}static{this.paths=[["config","get"]]}static{this.usage=At.Usage({description:"read a configuration settings",details:`
This command will print a configuration setting.
Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value.
`,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),s=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(s)>"u")throw new ht(`Couldn't find a configuration settings named "${s}"`);let l=r.getSpecial(s,{hideSecrets:!this.unsafe,getNativePaths:!0}),f=Ye.convertMapsToIndexableObjects(l),h=a?rc(f,a):f,A=await Wt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async m=>{m.reportJson(h)});if(!this.json){if(typeof h=="string")return this.context.stdout.write(`${h}
`),A.exitCode();OW.inspect.styles.name="cyan",this.context.stdout.write(`${(0,OW.inspect)(h,{depth:1/0,colors:r.get("enableColors"),compact:!1})}
`)}return A.exitCode()}};We();sr();xl();var LW=Ae("util"),jC=class extends mt{constructor(){super(...arguments);this.json=ye.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=ye.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ye.String();this.value=ye.String()}static{this.paths=[["config","set"]]}static{this.usage=At.Usage({description:"change a configuration settings",details:`
This command will set a configuration setting.
When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean).
When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects.
`,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),s=()=>{if(!r.projectCwd)throw new ht("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new ht(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new ht("This setting only affects the file it's in, and thus cannot be set from the CLI");let f=this.json?JSON.parse(this.value):this.value;await(this.home?I=>$e.updateHomeConfiguration(I):I=>$e.updateConfiguration(s(),I))(I=>{if(n){let R=F0(I);return Ey(R,this.name,f),R}else return{...I,[a]:f}});let m=(await $e.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),w=Ye.convertMapsToIndexableObjects(m),B=n?rc(w,n):w;return(await Wt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async I=>{LW.inspect.styles.name="cyan",I.reportInfo(0,`Successfully set ${this.name} to ${(0,LW.inspect)(B,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};We();sr();xl();var GC=class extends mt{constructor(){super(...arguments);this.home=ye.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ye.String()}static{this.paths=[["config","unset"]]}static{this.usage=At.Usage({description:"unset a configuration setting",details:`
This command will unset a configuration setting.
`,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),s=()=>{if(!r.projectCwd)throw new ht("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new ht(`Couldn't find a configuration settings named "${a}"`);let f=this.home?A=>$e.updateHomeConfiguration(A):A=>$e.updateConfiguration(s(),A);return(await Wt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async A=>{let m=!1;await f(w=>{if(!_S(w,this.name))return A.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),m=!0,w;let B=n?F0(w):{...w};return N0(B,this.name),B}),m||A.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};We();Mt();sr();var WO=Ae("util"),qC=class extends mt{constructor(){super(...arguments);this.noDefaults=ye.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"});this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.verbose=ye.Boolean("-v,--verbose",{hidden:!0});this.why=ye.Boolean("--why",{hidden:!0});this.names=ye.Rest()}static{this.paths=[["config"]]}static{this.usage=At.Usage({description:"display the current configuration",details:`
This command prints the current active configuration settings.
`,examples:[["Print the active configuration settings","$0 config"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins,{strict:!1}),s=await dC({configuration:r,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(s!==null)return s;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,l=await Wt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async f=>{if(r.invalid.size>0&&!this.json){for(let[h,A]of r.invalid)f.reportError(34,`Invalid configuration key "${h}" in ${A}`);f.reportSeparator()}if(this.json)for(let h of a){if(this.noDefaults&&!r.sources.has(h))continue;let A=r.settings.get(h);typeof A>"u"&&f.reportError(34,`No configuration key named "${h}"`);let m=r.getSpecial(h,{hideSecrets:!0,getNativePaths:!0}),w=r.sources.get(h)??"<default>",B=w&&w[0]!=="<"?me.fromPortablePath(w):w;f.reportJson({key:h,effective:m,source:B,...A})}else{let h={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},A={},m={children:A};for(let w of a){if(this.noDefaults&&!r.sources.has(w))continue;let B=r.settings.get(w),D=r.sources.get(w)??"<default>",I=r.getSpecial(w,{hideSecrets:!0,getNativePaths:!0}),R={Description:{label:"Description",value:pe.tuple(pe.Type.MARKDOWN,{text:B.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:pe.tuple(D[0]==="<"?pe.Type.CODE:pe.Type.PATH,D)}};A[w]={value:pe.tuple(pe.Type.CODE,w),children:R};let N=(U,V)=>{for(let[ee,te]of V)if(te instanceof Map){let ie={};U[ee]={children:ie},N(ie,te)}else U[ee]={label:ee,value:pe.tuple(pe.Type.NO_HINT,(0,WO.inspect)(te,h))}};I instanceof Map?N(R,I):R.Value={label:"Value",value:pe.tuple(pe.Type.NO_HINT,(0,WO.inspect)(I,h))}}a.length!==1&&(n=void 0),bs.emitTree(m,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<"u"){let f=a[0],h=(0,WO.inspect)(r.getSpecial(f,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get("enableColors")});this.context.stdout.write(`
`),this.context.stdout.write(`${h}
`)}return l.exitCode()}};We();sr();ga();var YO={};lr(YO,{Strategy:()=>ID,acceptedStrategies:()=>amt,dedupe:()=>_W});We();We();var h2e=st(ma()),ID=(e=>(e.HIGHEST="highest",e))(ID||{}),amt=new Set(Object.values(ID)),cmt={highest:async(t,e,{resolver:r,fetcher:s,resolveOptions:a,fetchOptions:n})=>{let l=new Map;for(let[h,A]of t.storedResolutions){let m=t.storedDescriptors.get(h);if(typeof m>"u")throw new Error(`Assertion failed: The descriptor (${h}) should have been registered`);Ye.getSetWithDefault(l,m.identHash).add(A)}let f=new Map(Ye.mapAndFilter(t.storedDescriptors.values(),h=>G.isVirtualDescriptor(h)?Ye.mapAndFilter.skip:[h.descriptorHash,Ye.makeDeferred()]));for(let h of t.storedDescriptors.values()){let A=f.get(h.descriptorHash);if(typeof A>"u")throw new Error(`Assertion failed: The descriptor (${h.descriptorHash}) should have been registered`);let m=t.storedResolutions.get(h.descriptorHash);if(typeof m>"u")throw new Error(`Assertion failed: The resolution (${h.descriptorHash}) should have been registered`);let w=t.originalPackages.get(m);if(typeof w>"u")throw new Error(`Assertion failed: The package (${m}) should have been registered`);Promise.resolve().then(async()=>{let B=r.getResolutionDependencies(h,a),D=Object.fromEntries(await Ye.allSettledSafe(Object.entries(B).map(async([ee,te])=>{let ie=f.get(te.descriptorHash);if(typeof ie>"u")throw new Error(`Assertion failed: The descriptor (${te.descriptorHash}) should have been registered`);let ae=await ie.promise;if(!ae)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[ee,ae.updatedPackage]})));if(e.length&&!h2e.default.isMatch(G.stringifyIdent(h),e)||!r.shouldPersistResolution(w,a))return w;let I=l.get(h.identHash);if(typeof I>"u")throw new Error(`Assertion failed: The resolutions (${h.identHash}) should have been registered`);if(I.size===1)return w;let R=[...I].map(ee=>{let te=t.originalPackages.get(ee);if(typeof te>"u")throw new Error(`Assertion failed: The package (${ee}) should have been registered`);return te}),N=await r.getSatisfying(h,D,R,a),U=N.locators?.[0];if(typeof U>"u"||!N.sorted)return w;let V=t.originalPackages.get(U.locatorHash);if(typeof V>"u")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return V}).then(async B=>{let D=await t.preparePackage(B,{resolver:r,resolveOptions:a});A.resolve({descriptor:h,currentPackage:w,updatedPackage:B,resolvedPackage:D})}).catch(B=>{A.reject(B)})}return[...f.values()].map(h=>h.promise)}};async function _W(t,{strategy:e,patterns:r,cache:s,report:a}){let{configuration:n}=t,l=new rs,f=n.makeResolver(),h=n.makeFetcher(),A={cache:s,checksums:t.storedChecksums,fetcher:h,project:t,report:l,cacheOptions:{skipIntegrityCheck:!0}},m={project:t,resolver:f,report:l,fetchOptions:A};return await a.startTimerPromise("Deduplication step",async()=>{let w=cmt[e],B=await w(t,r,{resolver:f,resolveOptions:m,fetcher:h,fetchOptions:A}),D=jo.progressViaCounter(B.length);await a.reportProgress(D);let I=0;await Promise.all(B.map(U=>U.then(V=>{if(V===null||V.currentPackage.locatorHash===V.updatedPackage.locatorHash)return;I++;let{descriptor:ee,currentPackage:te,updatedPackage:ie}=V;a.reportInfo(0,`${G.prettyDescriptor(n,ee)} can be deduped from ${G.prettyLocator(n,te)} to ${G.prettyLocator(n,ie)}`),a.reportJson({descriptor:G.stringifyDescriptor(ee),currentResolution:G.stringifyLocator(te),updatedResolution:G.stringifyLocator(ie)}),t.storedResolutions.set(ee.descriptorHash,ie.locatorHash)}).finally(()=>D.tick())));let R;switch(I){case 0:R="No packages";break;case 1:R="One package";break;default:R=`${I} packages`}let N=pe.pretty(n,e,pe.Type.CODE);return a.reportInfo(0,`${R} can be deduped using the ${N} strategy`),I})}var VC=class extends mt{constructor(){super(...arguments);this.strategy=ye.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:$s(ID)});this.check=ye.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=ye.String("--mode",{description:"Change what artifacts installs generate",validator:$s(uc)});this.patterns=ye.Rest()}static{this.paths=[["dedupe"]]}static{this.usage=At.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never dow Line truncated
`)}};var YC=class extends mt{static{this.paths=[["help"],["--help"],["-h"]]}async execute(){this.context.stdout.write(this.cli.usage(null))}};We();Mt();sr();var KC=class extends mt{constructor(){super(...arguments);this.leadingArgument=ye.String();this.args=ye.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!G.tryParseIdent(this.leadingArgument)){let r=Y.resolve(this.context.cwd,me.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};We();var zC=class extends mt{static{this.paths=[["-v"],["--version"]]}async execute(){this.context.stdout.write(`${Fn||"<unknown>"}
`)}};We();We();sr();var JC=class extends mt{constructor(){super(...arguments);this.commandName=ye.String();this.args=ye.Proxy()}static{this.paths=[["exec"]]}static{this.usage=At.Usage({description:"execute a shell script",details:`
This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell.
It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).
`,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,locator:a}=await Yt.find(r,this.context.cwd);return await s.restoreInstallState(),await qn.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:s})}};We();sr();ga();var ZC=class extends mt{constructor(){super(...arguments);this.hash=ye.String({required:!1,validator:P0(_h(),[xp(/^p[0-9a-f]{6}$/)])})}static{this.paths=[["explain","peer-requirements"]]}static{this.usage=At.Usage({description:"explain a set of peer requirements",details:`
A peer requirement represents all peer requests that a subject must satisfy when providing a requested package to requesters.
When the hash argument is specified, this command prints a detailed explanation of the peer requirement corresponding to the hash and whether it is satisfied or not.
When used without arguments, this command lists all peer requirements and the corresponding hash that can be used to get detailed information about a given requirement.
**Note:** A hash is a seven-letter code consisting of the letter 'p' followed by six characters that can be obtained from peer dependency warnings or from the list of all peer requirements(\`yarn explain peer-requirements\`).
`,examples:[["Explain the corresponding peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s}=await Yt.find(r,this.context.cwd);return await s.restoreInstallState({restoreResolutions:!1}),await s.applyLightResolution(),typeof this.hash<"u"?await umt(this.hash,s,{stdout:this.context.stdout}):await fmt(s,{stdout:this.context.stdout})}};async function umt(t,e,r){let s=e.peerRequirementNodes.get(t);if(typeof s>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);let a=new Set,n=h=>a.has(h.requester.locatorHash)?{value:pe.tuple(pe.Type.DEPENDENT,{locator:h.requester,descriptor:h.descriptor}),children:h.children.size>0?[{value:pe.tuple(pe.Type.NO_HINT,"...")}]:[]}:(a.add(h.requester.locatorHash),{value:pe.tuple(pe.Type.DEPENDENT,{locator:h.requester,descriptor:h.descriptor}),children:Object.fromEntries(Array.from(h.children.values(),A=>[G.stringifyLocator(A.requester),n(A)]))}),l=e.peerWarnings.find(h=>h.hash===t);return(await Wt.start({configuration:e.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async h=>{let A=pe.mark(e.configuration),m=l?A.Cross:A.Check;if(h.reportInfo(0,`Package ${pe.pretty(e.configuration,s.subject,pe.Type.LOCATOR)} is requested to provide ${pe.pretty(e.configuration,s.ident,pe.Type.IDENT)} by its descendants`),h.reportSeparator(),h.reportInfo(0,pe.pretty(e.configuration,s.subject,pe.Type.LOCATOR)),bs.emitTree({children:Object.fromEntries(Array.from(s.requests.values(),w=>[G.stringifyLocator(w.requester),n(w)]))},{configuration:e.configuration,stdout:r.stdout,json:!1}),h.reportSeparator(),s.provided.range==="missing:"){let w=l?"":" , but all peer requests are optional";h.reportInfo(0,`${m} Package ${pe.pretty(e.configuration,s.subject,pe.Type.LOCATOR)} does not provide ${pe.pretty(e.configuration,s.ident,pe.Type.IDENT)}${w}.`)}else{let w=e.storedResolutions.get(s.provided.descriptorHash);if(!w)throw new Error("Assertion failed: Expected the descriptor to be registered");let B=e.storedPackages.get(w);if(!B)throw new Error("Assertion failed: Expected the package to be registered");h.reportInfo(0,`${m} Package ${pe.pretty(e.configuration,s.subject,pe.Type.LOCATOR)} provides ${pe.pretty(e.configuration,s.ident,pe.Type.IDENT)} with version ${G.prettyReference(e.configuration,B.version??"0.0.0")}, ${l?"which does not satisfy all requests.":"which satisfies all requests"}`),l?.type===3&&(l.range?h.reportInfo(0,` The combined requested range is ${pe.pretty(e.configuration,l.range,pe.Type.RANGE)}`):h.reportInfo(0," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function fmt(t,e){return(await Wt.start({configuration:t.configuration,stdout:e.stdout,includeFooter:!1,includePrefix:!1},async s=>{let a=pe.mark(t.configuration),n=Ye.sortMap(t.peerRequirementNodes,[([,l])=>G.stringifyLocator(l.subject),([,l])=>G.stringifyIdent(l.ident)]);for(let[,l]of n.values()){if(!l.root)continue;let f=t.peerWarnings.find(m=>m.hash===l.hash),h=[...G.allPeerRequests(l)],A;if(h.length>2?A=` and ${h.length-1} other dependencies`:h.length===2?A=" and 1 other dependency":A="",l.provided.range!=="missing:"){let m=t.storedResolutions.get(l.provided.descriptorHash);if(!m)throw new Error("Assertion failed: Expected the resolution to have been registered");let w=t.storedPackages.get(m);if(!w)throw new Error("Assertion failed: Expected the provided package to have been registered");let B=`${pe.pretty(t.configuration,l.hash,pe.Type.CODE)} \u2192 ${f?a.Cross:a.Check} ${G.prettyLocator(t.configuration,l.subject)} provides ${G.prettyLocator(t.configuration,w)} to ${G.prettyLocator(t.configuration,h[0].requester)}${A}`;f?s.reportWarning(0,B):s.reportInfo(0,B)}else{let m=`${pe.pretty(t.configuration,l.hash,pe.Type.CODE)} \u2192 ${f?a.Cross:a.Check} ${G.prettyLocator(t.configuration,l.subject)} doesn't provide ${G.prettyIdent(t.configuration,l.ident)} to ${G.prettyLocator(t.configuration,h[0].requester)}${A}`;f?s.reportWarning(0,m):s.reportInfo(0,m)}}})).exitCode()}We();sr();ga();We();We();Mt();sr();var p2e=st(Di()),XC=class extends mt{constructor(){super(...arguments);this.useYarnPath=ye.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=ye.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=ye.String()}static{this.paths=[["set","version"]]}static{this.usage=At.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set th Line truncated
${e}`)})}let f=t.projectCwd??t.startingCwd,h=Y.resolve(f,".yarn/releases"),A=Y.resolve(h,`yarn-${e}.cjs`),m=Y.relative(t.startingCwd,A),w=Ye.isTaggedYarnVersion(e),B=t.get("yarnPath"),D=!w,I=D||!!B||!!a;if(a===!1){if(D)throw new Zt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");I=!1}else!I&&!process.env.COREPACK_ROOT&&(s.reportWarning(0,`You don't seem to have ${pe.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${pe.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),I=!0);if(I){let ee=await l();s.reportInfo(0,`Saving the new release in ${pe.pretty(t,m,"magenta")}`),await fe.removePromise(Y.dirname(A)),await fe.mkdirPromise(Y.dirname(A),{recursive:!0}),await fe.writeFilePromise(A,ee,{mode:493}),await $e.updateConfiguration(f,{yarnPath:Y.relative(f,A)})}else await fe.removePromise(Y.dirname(A)),await $e.updateConfiguration(f,{yarnPath:$e.deleteProperty});let R=await nr.tryFind(f)||new nr;R.packageManager=`yarn@${w?e:await wD(t,"stable")}`;let N={};R.exportTo(N);let U=Y.join(f,nr.fileName),V=`${JSON.stringify(N,null,R.indent)}
`;return await fe.changeFilePromise(U,V,{automaticNewlines:!0}),{bundleVersion:e}}function d2e(t){return Tr[KT(t)]}var Amt=/## (?<code>YN[0-9]{4}) - `(?<name>[A-Z_]+)`\n\n(?<details>(?:.(?!##))+)/gs;async function pmt(t){let r=`https://repo.yarnpkg.com/${Ye.isTaggedYarnVersion(Fn)?Fn:await wD(t,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,s=await Sn.get(r,{configuration:t});return new Map(Array.from(s.toString().matchAll(Amt),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=d2e(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var $C=class extends mt{constructor(){super(...arguments);this.code=ye.String({required:!1,validator:gS(_h(),[xp(/^YN[0-9]{4}$/)])});this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["explain"]]}static{this.usage=At.Usage({description:"explain an error code",details:`
When the code argument is specified, this command prints its name and its details.
When used without arguments, this command lists all error codes and their names.
`,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let s=d2e(this.code),a=pe.pretty(r,s,pe.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),f=(await pmt(r)).get(this.code),h=typeof f<"u"?pe.jsonOrPretty(this.json,r,pe.tuple(pe.Type.MARKDOWN,{text:f,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description.
You can help us by editing this page on GitHub \u{1F642}:
${pe.jsonOrPretty(this.json,r,pe.tuple(pe.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx"))}
`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:s,details:h})}
`):this.context.stdout.write(`${n}
${h}
`)}else{let s={children:Ye.mapAndFilter(Object.entries(Tr),([a,n])=>Number.isNaN(Number(a))?Ye.mapAndFilter.skip:{label:Mh(Number(a)),value:pe.tuple(pe.Type.CODE,n)})};bs.emitTree(s,{configuration:r,stdout:this.context.stdout,json:this.json})}}};We();Mt();sr();var g2e=st(ma()),e1=class extends mt{constructor(){super(...arguments);this.all=ye.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=ye.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=ye.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=ye.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=ye.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=ye.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=ye.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=ye.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ye.Rest()}static{this.paths=[["info"]]}static{this.usage=At.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd),n=await gn.find(r);if(!a&&!this.all)throw new Dr(s.cwd,this.context.cwd);await s.restoreInstallState();let l=new Set(this.extra);this.cache&&l.add("cache"),this.dependents&&l.add("dependents"),this.manifest&&l.add("manifest");let f=(te,{recursive:ie})=>{let ae=te.anchoredLocator.locatorHash,ge=new Map,de=[ae];for(;de.length>0;){let De=de.shift();if(ge.has(De))continue;let we=s.storedPackages.get(De);if(typeof we>"u")throw new Error("Assertion failed: Expected the package to be registered");if(ge.set(De,we),G.isVirtualLocator(we)&&de.push(G.devirtualizeLocator(we).locatorHash),!(!ie&&De!==ae))for(let d of we.dependencies.values()){let be=s.storedResolutions.get(d.descriptorHash);if(typeof be>"u")throw new Error("Assertion failed: Expected the resolution to be registered");de.push(be)}}return ge.values()},h=({recursive:te})=>{let ie=new Map;for(let ae of s.workspaces)for(let ge of f(ae,{recursive:te}))ie.set(ge.locatorHash,ge);return ie.values()},A=({all:te,recursive:ie})=>te&&ie?s.storedPackages.values():te?h({recursive:ie}):f(a,{recursive:ie}),m=({all:te,recursive:ie})=>{let ae=A({all:te,recursive:ie}),ge=this.patterns.map(we=>{let d=G.parseLocator(we),be=g2e.default.makeRe(G.stringifyIdent(d)),Ce=G.isVirtualLocator(d),Ee=Ce?G.devirtualizeLocator(d):d;return he=>{let $=G.stringifyIdent(he);if(!be.test($))return!1;if(d.reference==="unknown")return!0;let Pe=G.isVirtualLocator(he),Te=Pe?G.devirtualizeLocator(he):he;return!(Ce&&Pe&&d.reference!==he.reference||Ee.reference!==Te.reference)}}),de=Ye.sortMap([...ae],we=>G.stringifyLocator(we));return{selection:de.filter(we=>ge.length===0||ge.some(d=>d(we))),sortedLookup:de}},{selection:w,sortedLookup:B}=m({all:this.all,recursive:this.recursive});if(w.length===0)throw new ht("No package matched your request");let D=new Map;if(this.dependents)for(let te of B)for(let ie of te.dependencies.values()){let ae=s.storedResolutions.get(ie.descriptorHash);if(typeof ae>"u")throw new Error("Assertion failed: Expected the resolution to be registered");Ye.getArrayWithDefault(D,ae).push(te)}let I=new Map;for(let te of B){if(!G.isVirtualLocator(te))continue;let ie=G.devirtualizeLocator(te);Ye.getArrayWithDefault(I,ie.locatorHash).push(te)}let R={},N={children:R},U=r.makeFetcher(),V={project:s,fetcher:U,cache:n,checksums:s.storedChecksum Line truncated
This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment).
The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version.
`,examples:[["Run a Node script","$0 node ./my-script.js"]]})}async execute(){return this.cli.run(["exec","node",...this.args])}};We();sr();var i1=class extends mt{constructor(){super(...arguments);this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","check"]]}static{this.usage=At.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:`
Check only the plugins from https.
If this command detects any plugin differences in the CI environment, it will throw an error.
`,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),s=await $e.findRcFiles(this.context.cwd);return(await Wt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let l of s)if(l.data?.plugins)for(let f of l.data.plugins){if(!f.checksum||!f.spec.match(/^https?:/))continue;let h=await Sn.get(f.spec,{configuration:r}),A=si.makeHash(h);if(f.checksum===A)continue;let m=pe.pretty(r,f.path,pe.Type.PATH),w=pe.pretty(r,f.spec,pe.Type.URL),B=`${m} is different from the file provided by ${w}`;n.reportJson({...f,newChecksum:A}),n.reportError(0,B)}})).exitCode()}};We();We();Mt();sr();var w2e=Ae("os");We();Mt();sr();var m2e=Ae("os");We();au();sr();var Emt="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function tE(t,e){let r=await Sn.get(Emt,{configuration:t}),s=Fs(r.toString());return Object.fromEntries(Object.entries(s).filter(([a,n])=>!e||zr.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var s1=class extends mt{constructor(){super(...arguments);this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","list"]]}static{this.usage=At.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins);return(await Wt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await tE(r,Fn);for(let[l,{experimental:f,...h}]of Object.entries(n)){let A=l;f&&(A+=" [experimental]"),a.reportJson({name:l,experimental:f,...h}),a.reportInfo(null,A)}})).exitCode()}};var Imt=/^[0-9]+$/,wmt=process.platform==="win32";function y2e(t){return Imt.test(t)?`pull/${t}/head`:t}var Cmt=({repository:t,branch:e},r)=>[["git","init",me.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",y2e(e)],["git","reset","--hard","FETCH_HEAD"]],Bmt=({branch:t})=>[["git","fetch","origin","--depth=1",y2e(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],vmt=({plugins:t,noMinify:e},r,s)=>[["yarn","build:cli",...new Array().concat(...t.map(a=>["--plugin",Y.resolve(s,a)])),...e?["--no-minify"]:[],"|"],[wmt?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",me.fromPortablePath(r),"|"]],o1=class extends mt{constructor(){super(...arguments);this.installPath=ye.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ye.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ye.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=ye.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.dryRun=ye.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"});this.noMinify=ye.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=ye.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=ye.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}static{this.paths=[["set","version","from","sources"]]}static{this.usage=At.Usage({description:"build Yarn from master",details:`
This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project.
By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag.
`,examples:[["Build Yarn from master","$0 set version from sources"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s}=await Yt.find(r,this.context.cwd),a=typeof this.installPath<"u"?Y.resolve(this.context.cwd,me.toPortablePath(this.installPath)):Y.resolve(me.toPortablePath((0,m2e.tmpdir)()),"yarnpkg-sources",si.makeHash(this.repository).slice(0,6));return(await Wt.start({configuration:r,stdout:this.context.stdout},async l=>{await HW(this,{configuration:r,report:l,target:a}),l.reportSeparator(),l.reportInfo(0,"Building a fresh bundle"),l.reportSeparator();let f=await un.execvp("git",["rev-parse","--short","HEAD"],{cwd:a,strict:!0}),h=Y.join(a,`packages/yarnpkg-cli/bundles/yarn-${f.stdout.trim()}.js`);fe.existsSync(h)||(await CD(vmt(this,h,a),{configuration:r,context:this.context,target:a}),l.reportSeparator());let A=await fe.readFilePromise(h);if(!this.dryRun){let{bundleVersion:m}=await MW(r,null,async()=>A,{report:l});this.skipPlugins||await Smt(this,m,{project:s,report:l,target:a})}})).exitCode()}};async function CD(t,{configuration:e,context:r,target:s}){for(let[a,...n]of t){let l=n[n.length-1]==="|";if(l&&n.pop(),l)await un.pipevp(a,n,{cwd:s,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${pe.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")}
`);try{await un.execvp(a,n,{cwd:s,strict:!0})}catch(f){throw r.stdout.write(f.stdout||f.stack),f}}}}async function HW(t,{configuration:e,report:r,target:s}){let a=!1;if(!t.force&&fe.existsSync(Y.join(s,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await CD(Bmt(t),{configuration:e,context:t.context,target:s}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await fe.removePromise(s),await fe.mkdirPromise(s,{recursive:!0}),await CD(Cmt(t,s),{configuration:e,context:t.context,target:s}))}async function Smt(t,e,{project:r,report:s,target:a}){let n=await tE(r.configuration,e),l=new Set(Object.keys(n));for(let f of r.configuration.plugins.keys())l.has(f)&&await jW(f,t,{project:r,report:s,target:a})}We();We();Mt();sr();var E2e=st(Di()),I2e=Ae("vm");var a1=class extends mt{constructor(){super(...arguments);this.name=ye.String();this.checksum=ye.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}static{this.paths=[["plugin","import"]]}static{this.usage=At.Usage({category:"Plugin-related commands",description:"download a plugin",details:`
This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations.
Three types of plugin references are accepted:
- If the plugin is stored within the Yarn repository, it can be referenced by name.
- Third-party plugins can be referenced directly through their public urls.
- Local plugins can be referenced by their path on the disk.
If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified.
Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package).
`,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins);return(await Wt.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await Yt.find(r,this.context.cwd),l,f;if(this.name.match(/^\.{0,2}[\\/]/)||me.isAbsolute(this.name)){let h=Y.resolve(this.context.cwd,me.toPortablePath(this.name));a.reportInfo(0,`Reading ${pe.pretty(r,h,pe.Type.PATH)}`),l=Y.relative(n.cwd,h),f=await fe.readFilePromise(h)}else{let h;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new Zt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}l=this.name,h=this.name}else{let A=G.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(A.reference!=="unknown"&&!E2e.default.valid(A.reference))throw new Zt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let m=G.stringifyIdent(A),w=await tE(r,Fn);if(!Object.hasOwn(w,m)){let B=`Couldn't find a plugin named ${G.prettyIdent(r,A)} on the remote registry.
`;throw r.plugins.has(m)?B+=`A plugin named ${G.prettyIdent(r,A)} is already installed; possibly attempting to import a built-in plugin.`:B+=`Note that only the plugins referenced on our website (${pe.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",pe.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${pe.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",pe.Type.URL)}).`,new Zt(51,B)}l=m,h=w[m].url,A.reference!=="unknown"?h=h.replace(/\/master\//,`/${m}/${A.reference}/`):Fn!==null&&(h=h.replace(/\/master\//,`/@yarnpkg/cli/${Fn}/`))}a.reportInfo(0,`Downloading ${pe.pretty(r,h,"green")}`),f=await Sn.get(h,{configuration:r})}await GW(l,f,{checksum:this.checksum,project:n,report:a})})).exitCode()}};async function GW(t,e,{checksum:r=!0,project:s,report:a}){let{configuration:n}=s,l={},f={exports:l};(0,I2e.runInNewContext)(e.toString(),{module:f,exports:l});let A=`.yarn/plugins/${f.exports.name}.cjs`,m=Y.resolve(s.cwd,A);a.reportInfo(0,`Saving the new plugin in ${pe.pretty(n,A,"magenta")}`),await fe.mkdirPromise(Y.dirname(m),{recursive:!0}),await fe.writeFilePromise(m,e);let w={path:A,spec:t};r&&(w.checksum=si.makeHash(e)),await $e.addPlugin(s.cwd,[w])}var bmt=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],c1=class extends mt{constructor(){super(...arguments);this.installPath=ye.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ye.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ye.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=ye.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=ye.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=ye.String()}static{this.paths=[["plugin","import","from","sources"]]}static{this.usage=At.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:`
This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations.
The plugins can be referenced by their short name if sourced from the official Yarn repository.
`,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),s=typeof this.installPath<"u"?Y.resolve(this.context.cwd,me.toPortablePath(this.installPath)):Y.resolve(me.toPortablePath((0,w2e.tmpdir)()),"yarnpkg-sources",si.makeHash(this.repository).slice(0,6));return(await Wt.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:l}=await Yt.find(r,this.context.cwd),f=G.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),h=G.stringifyIdent(f),A=await tE(r,Fn);if(!Object.hasOwn(A,h))throw new Zt(51,`Couldn't find a plugin named "${h}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let m=h;await HW(this,{configuration:r,report:n,target:s}),await jW(m,this,{project:l,report:n,target:s})})).exitCode()}};async function jW(t,{context:e,noMinify:r},{project:s,report:a,target:n}){let l=t.replace(/@yarnpkg\//,""),{configuration:f}=s;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${l}`),a.reportSeparator(),await CD(bmt({pluginName:l,noMinify:r},n),{configuration:f,context:e,target:n}),a.reportSeparator();let h=Y.resolve(n,`packages/${l}/bundles/${t}.js`),A=await fe.readFilePromise(h);await GW(t,A,{project:s,report:a})}We();Mt();sr();var l1=class extends mt{constructor(){super(...arguments);this.name=ye.String()}static{this.paths=[["plugin","remove"]]}static{this.usage=At.Usage({category:"Plugin-related commands",description:"remove a plugin",details:`
This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration.
**Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed.
`,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s}=await Yt.find(r,this.context.cwd);return(await Wt.start({configuration:r,stdout:this.context.stdout},async n=>{let l=this.name,f=G.parseIdent(l);if(!r.plugins.has(l))throw new ht(`${G.prettyIdent(r,f)} isn't referenced by the current configuration`);let h=`.yarn/plugins/${l}.cjs`,A=Y.resolve(s.cwd,h);fe.existsSync(A)&&(n.reportInfo(0,`Removing ${pe.pretty(r,h,pe.Type.PATH)}...`),await fe.removePromise(A)),n.reportInfo(0,"Updating the configuration..."),await $e.updateConfiguration(s.cwd,{plugins:m=>{if(!Array.isArray(m))return m;let w=m.filter(B=>B.path!==h);return w.length===0?$e.deleteProperty:w.length===m.length?m:w}})})).exitCode()}};We();sr();var u1=class extends mt{constructor(){super(...arguments);this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","runtime"]]}static{this.usage=At.Usage({category:"Plugin-related commands",description:"list the active plugins",details:`
This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.
`,examples:[["List the currently active plugins","$0 plugin runtime"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins);return(await Wt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let l=this.context.plugins.plugins.has(n),f=n;l&&(f+=" [builtin]"),a.reportJson({name:n,builtin:l}),a.reportInfo(null,`${f}`)}})).exitCode()}};We();We();sr();var f1=class extends mt{constructor(){super(...arguments);this.idents=ye.Rest()}static{this.paths=[["rebuild"]]}static{this.usage=At.Usage({description:"rebuild the project's native packages",details:`
This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again.
Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future).
By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory.
`,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd),n=await gn.find(r);if(!a)throw new Dr(s.cwd,this.context.cwd);let l=new Set;for(let f of this.idents)l.add(G.parseIdent(f).identHash);if(await s.restoreInstallState({restoreResolutions:!1}),await s.resolveEverything({cache:n,report:new rs}),l.size>0)for(let f of s.storedPackages.values())l.has(f.identHash)&&(s.storedBuildState.delete(f.locatorHash),s.skippedBuilds.delete(f.locatorHash));else s.storedBuildState.clear(),s.skippedBuilds.clear();return await s.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};We();We();We();sr();var qW=st(ma());ga();var h1=class extends mt{constructor(){super(...arguments);this.all=ye.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=ye.String("--mode",{description:"Change what artifacts installs generate",validator:$s(uc)});this.patterns=ye.Rest()}static{this.paths=[["remove"]]}static{this.usage=At.Usage({description:"remove dependencies from the project",details:`
This command will remove the packages matching the specified patterns from the current workspace.
If the \`--mode=<mode>\` option is set, Yarn will change which artifacts are generated. The modes currently supported are:
- \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.
- \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.
This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.
`,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd),n=await gn.find(r);if(!a)throw new Dr(s.cwd,this.context.cwd);await s.restoreInstallState({restoreResolutions:!1});let l=this.all?s.workspaces:[a],f=["dependencies","devDependencies","peerDependencies"],h=[],A=!1,m=[];for(let I of this.patterns){let R=!1,N=G.parseIdent(I);for(let U of l){let V=[...U.manifest.peerDependenciesMeta.keys()];for(let ee of(0,qW.default)(V,I))U.manifest.peerDependenciesMeta.delete(ee),A=!0,R=!0;for(let ee of f){let te=U.manifest.getForScope(ee),ie=[...te.values()].map(ae=>G.stringifyIdent(ae));for(let ae of(0,qW.default)(ie,G.stringifyIdent(N))){let{identHash:ge}=G.parseIdent(ae),de=te.get(ge);if(typeof de>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");U.manifest[ee].delete(ge),m.push([U,ee,de]),A=!0,R=!0}}}R||h.push(I)}let w=h.length>1?"Patterns":"Pattern",B=h.length>1?"don't":"doesn't",D=this.all?"any":"this";if(h.length>0)throw new ht(`${w} ${pe.prettyList(r,h,pe.Type.CODE)} ${B} match any packages referenced by ${D} workspace`);return A?(await r.triggerMultipleHooks(I=>I.afterWorkspaceDependencyRemoval,m),await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};We();We();sr();var C2e=Ae("util"),A1=class extends mt{constructor(){super(...arguments);this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["run"]]}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd);if(!a)throw new Dr(s.cwd,this.context.cwd);return(await Wt.start({configuration:r,stdout:this.context.stdout,json:this.json},async l=>{let f=a.manifest.scripts,h=Ye.sortMap(f.keys(),w=>w),A={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},m=h.reduce((w,B)=>Math.max(w,B.length),0);for(let[w,B]of f.entries())l.reportInfo(null,`${w.padEnd(m," ")} ${(0,C2e.inspect)(B,A)}`),l.reportJson({name:w,script:B})})).exitCode()}};We();We();sr();var p1=class extends mt{constructor(){super(...arguments);this.inspect=ye.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=ye.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=ye.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=ye.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=ye.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=ye.Boolean("--silent",{hidden:!0});this.scriptName=ye.String();this.args=ye.Proxy()}static{this.paths=[["run"]]}static{this.usage=At.Usage({description:"run a script defined in the package.json",details:`
This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:
- If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed.
- Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed.
- Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed.
Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax).
`,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a,locator:n}=await Yt.find(r,this.context.cwd);await s.restoreInstallState();let l=this.topLevel?s.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await qn.hasPackageScript(l,this.scriptName,{project:s}))return await qn.executePackageScript(l,this.scriptName,this.args,{project:s,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let f=await qn.getPackageAccessibleBinaries(l,{project:s});if(f.get(this.scriptName)){let A=[];return this.inspect&&(typeof this.inspect=="string"?A.push(`--inspect=${this.inspect}`):A.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?A.push(`--inspect-brk=${this.inspectBrk}`):A.push("--inspect-brk")),this.require&&A.push(`--require=${this.require}`),await qn.executePackageAccessibleBinary(l,this.scriptName,this.args,{cwd:this.context.cwd,project:s,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:A,packageAccessibleBinaries:f})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let m=(await Promise.all(s.workspaces.map(async w=>w.manifest.scripts.has(this.scriptName)?w:null))).filter(w=>w!==null);if(m.length===1)return await qn.executeWorkspaceScript(m[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new ht(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new ht(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new ht("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let A=[this.scriptName].concat(this.args);for(let[m,w]of RC)for(let B of w)if(A.length>=B.length&&JSON.stringify(A.slice(0,B.length))===JSON.stringify(B))throw new ht(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${m} plugin. You can install it with "yarn plugin import ${m}".`);throw new ht(`Couldn't find a script named "${this.scriptName}".`)}}};We();We();sr();var d1=class extends mt{constructor(){super(...arguments);this.descriptor=ye.String();this.resolution=ye.String()}static{this.paths=[["set","resolution"]]}static{this.usage=At.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 npm:1.5.0"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd),n=await gn.find(r);if(await s.restoreInstallState({restoreResolutions:!1}),!a)throw new Dr(s.cwd,this.context.cwd);let l=G.parseDescriptor(this.descriptor,!0),f=G.makeDescriptor(l,this.resolution);return s.storedDescriptors.set(l.descriptorHash,l),s.storedDescriptors.set(f.descriptorHash,f),s.resolutionAliases.set(l.descriptorHash,f.descriptorHash),await s.installWithNewReport({stdout:this.context.stdout},{cache:n})}};We();Mt();sr();var B2e=st(ma()),g1=class extends mt{constructor(){super(...arguments);this.all=ye.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=ye.Rest()}static{this.paths=[["unlink"]]}static{this.usage=At.Usage({description:"disconnect the local project from another one",details:`
This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments.
`,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd),n=await gn.find(r);if(!a)throw new Dr(s.cwd,this.context.cwd);let l=s.topLevelWorkspace,f=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:h,reference:A}of l.manifest.resolutions)A.startsWith("portal:")&&f.add(h.descriptor.fullName);if(this.leadingArguments.length>0)for(let h of this.leadingArguments){let A=Y.resolve(this.context.cwd,me.toPortablePath(h));if(Ye.isPathLike(h)){let m=await $e.find(A,this.context.plugins,{useRc:!1,strict:!1}),{project:w,workspace:B}=await Yt.find(m,A);if(!B)throw new Dr(w.cwd,A);if(this.all){for(let D of w.workspaces)D.manifest.name&&f.add(G.stringifyIdent(D.anchoredLocator));if(f.size===0)throw new ht("No workspace found to be unlinked in the target project")}else{if(!B.manifest.name)throw new ht("The target workspace doesn't have a name and thus cannot be unlinked");f.add(G.stringifyIdent(B.anchoredLocator))}}else{let m=[...l.manifest.resolutions.map(({pattern:w})=>w.descriptor.fullName)];for(let w of(0,B2e.default)(m,h))f.add(w)}}return l.manifest.resolutions=l.manifest.resolutions.filter(({pattern:h})=>!f.has(h.descriptor.fullName)),await s.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};We();We();We();sr();var v2e=st(gD()),VW=st(ma());ga();var m1=class extends mt{constructor(){super(...arguments);this.interactive=ye.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=ye.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ye.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ye.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ye.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=ye.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.noTimeGate=ye.Boolean("--no-time-gate",!1,{description:"Disable the minimum release age check for this command"});this.mode=ye.String("--mode",{description:"Change what artifacts installs generate",validator:$s(uc)});this.patterns=ye.Rest()}static{this.paths=[["up"]]}static{this.usage=At.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=<mode>` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously li Line truncated
${ae}`):N.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled)
${ae}`)}else te.length>1&&!f&&N.reportError(27,`${G.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(D.hasErrors())return D.exitCode();let I=!1,R=[];for(let[N,U,,{suggestions:V}]of B){let ee,te=V.filter(de=>de.descriptor!==null),ie=te[0].descriptor,ae=te.every(de=>G.areDescriptorsEqual(de.descriptor,ie));te.length===1||ae?ee=ie:(I=!0,{answer:ee}=await(0,v2e.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${G.prettyWorkspace(r,N)} \u276F ${U}?`,choices:V.map(({descriptor:de,name:De,reason:we})=>de?{name:De,hint:we,descriptor:de}:{name:De,hint:we,disabled:!0}),onCancel:()=>process.exit(130),result(de){return this.find(de,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let ge=N.manifest[U].get(ee.identHash);if(typeof ge>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(ge.descriptorHash!==ee.descriptorHash)N.manifest[U].set(ee.identHash,ee),R.push([N,U,ge,ee]);else{let de=r.makeResolver(),De={project:s,resolver:de},we=r.normalizeDependency(ge),d=de.bindDescriptor(we,N.anchoredLocator,De);s.forgetResolution(d)}}return await r.triggerMultipleHooks(N=>N.afterWorkspaceDependencyReplacement,R),I&&this.context.stdout.write(`
`),await s.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};We();We();sr();var y1=class extends mt{constructor(){super(...arguments);this.recursive=ye.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=ye.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=ye.String()}static{this.paths=[["why"]]}static{this.usage=At.Usage({description:"display the reason why a package is needed",details:`
This command prints the exact reasons why a package appears in the dependency tree. Specify a version or range to determine why the dependency tree contains a specific version of a package. This is particularly useful when trying to find out why your project depends on lower versions.
If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree.
`,examples:[["Explain why lodash is used in your project","$0 why lodash"],["Explain why version 3.3.1 of lodash is in your project","$0 why lodash@3.3.1"],["Explain why version 3.X of lodash is in your project","$0 why lodash@^3"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd);if(!a)throw new Dr(s.cwd,this.context.cwd);await s.restoreInstallState();let n=G.parseDescriptor(this.package,!1);if(n.range!=="unknown"&&zr.validRange(n.range)===null)throw new ht(`Expected a valid semver range, got ${n.range}`);let l=this.recursive?Pmt(s,n,{configuration:r,peers:this.peers}):Dmt(s,n,{configuration:r,peers:this.peers});bs.emitTree(l,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};function Dmt(t,e,{configuration:r,peers:s}){let a=Ye.sortMap(t.storedPackages.values(),f=>G.stringifyLocator(f)),n={},l={children:n};for(let f of a){let h={};for(let m of f.dependencies.values()){if(!s&&WW(f,m))continue;let w=t.storedResolutions.get(m.descriptorHash);if(!w)throw new Error("Assertion failed: The resolution should have been registered");let B=t.storedPackages.get(w);if(!B)throw new Error("Assertion failed: The package should have been registered");if(!G.areIdentsEqual(B,e)||!G.isPackageInRange(B,e.range))continue;{let I=G.stringifyLocator(f);n[I]={value:[f,pe.Type.LOCATOR],children:h}}let D=G.stringifyLocator(B);h[D]={value:[{descriptor:m,locator:B},pe.Type.DEPENDENT]}}}return l}function Pmt(t,e,{configuration:r,peers:s}){let a=Ye.sortMap(t.workspaces,B=>G.stringifyLocator(B.anchoredLocator)),n=new Set,l=new Set,f=B=>{if(n.has(B.locatorHash))return l.has(B.locatorHash);if(n.add(B.locatorHash),G.areIdentsEqual(B,e)&&G.isPackageInRange(B,e.range))return l.add(B.locatorHash),!0;let D=!1;for(let I of B.dependencies.values()){if(!s&&WW(B,I))continue;let R=t.storedResolutions.get(I.descriptorHash);if(!R)throw new Error("Assertion failed: The resolution should have been registered");let N=t.storedPackages.get(R);if(!N)throw new Error("Assertion failed: The package should have been registered");f(N)&&(D=!0)}return D&&l.add(B.locatorHash),D};for(let B of a)f(B.anchoredPackage);let h=new Set,A={},m={children:A},w=(B,D,I)=>{if(!l.has(B.locatorHash))return;let R=I!==null?pe.tuple(pe.Type.DEPENDENT,{locator:B,descriptor:I}):pe.tuple(pe.Type.LOCATOR,B),N={},U={value:R,children:N},V=G.stringifyLocator(B);if(D[V]=U,!(I!==null&&t.tryWorkspaceByLocator(B))&&!h.has(B.locatorHash)){h.add(B.locatorHash);for(let ee of B.dependencies.values()){if(!s&&WW(B,ee))continue;let te=t.storedResolutions.get(ee.descriptorHash);if(!te)throw new Error("Assertion failed: The resolution should have been registered");let ie=t.storedPackages.get(te);if(!ie)throw new Error("Assertion failed: The package should have been registered");w(ie,N,ee)}}};for(let B of a)w(B.anchoredPackage,A,null);return m}function WW(t,e){return G.isVirtualLocator(t)&&t.peerDependencies.has(e.identHash)}We();var rY={};lr(rY,{GitFetcher:()=>vD,GitResolver:()=>SD,default:()=>zmt,gitUtils:()=>fc});We();Mt();var fc={};lr(fc,{TreeishProtocols:()=>BD,clone:()=>tY,fetchBase:()=>V2e,fetchChangedFiles:()=>W2e,fetchChangedWorkspaces:()=>Ymt,fetchRoot:()=>q2e,isGitUrl:()=>w1,lsRemote:()=>G2e,normalizeLocator:()=>Wmt,normalizeRepoUrl:()=>E1,resolveUrl:()=>eY,splitRepoUrl:()=>$p,validateRepoUrl:()=>$W});We();Mt();sr();xl();var H2e=st(_2e()),I1=st(Ae("querystring")),ZW=st(Di());function JW(t,e,r){let s=t.indexOf(r);return t.lastIndexOf(e,s>-1?s:1/0)}function M2e(t){try{return new URL(t)}catch{return}}function qmt(t){let e=JW(t,"@","#"),r=JW(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),JW(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function U2e(t){return M2e(t)||M2e(qmt(t))}function E1(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let r=U2e(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function j2e(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var Vmt=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],BD=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(BD||{});function w1(t){return t?Vmt.some(e=>!!t.match(e)):!1}function $p(t){t=E1(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{pr Line truncated
This command will run a given sub-command on a single workspace.
`,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd);if(!a)throw new Dr(s.cwd,this.context.cwd);let n=s.workspaces,l=new Map(n.map(h=>[G.stringifyIdent(h.anchoredLocator),h])),f=l.get(this.workspaceName);if(f===void 0){let h=Array.from(l.keys()).sort();throw new ht(`Workspace '${this.workspaceName}' not found. Did you mean any of the following:
- ${h.join(`
- `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:f.cwd})}};var Jmt={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:Y2e.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[UC,HC,jC,GC,d1,o1,XC,C1,WC,YC,KC,zC,_C,MC,qC,VC,JC,ZC,$C,e1,t1,r1,g1,n1,i1,c1,a1,l1,s1,u1,f1,h1,A1,p1,m1,y1,B1]},Zmt=Jmt;var aY={};lr(aY,{default:()=>tyt});We();We();var iY="catalog:";var sY=t=>t.startsWith(iY),Xmt=t=>t.range.slice(iY.length)||null,K2e=t=>t===null?"default catalog":`catalog "${t}"`,$mt=t=>t.scope?`@${t.scope}/${t.name}`:t.name,oY=(t,e,r,s)=>{let a=Xmt(e),n;if(a===null)n=t.configuration.get("catalog");else try{let m=t.configuration.get("catalogs");m&&(n=m.get(a))}catch{n=void 0}if(!n||n.size===0)throw new Zt(82,`${G.prettyDescriptor(t.configuration,e)}: ${K2e(a)} not found or empty`);let l=$mt(e),f=n.get(l);if(!f)throw new Zt(82,`${G.prettyDescriptor(t.configuration,e)}: entry not found in ${K2e(a)}`);let h=t.configuration.normalizeDependency(G.makeDescriptor(e,f));return r.supportsDescriptor(h,s)?r.bindDescriptor(h,t.topLevelWorkspace.anchoredLocator,s):h};var eyt={configuration:{catalog:{description:"The default catalog of packages",type:"MAP",valueDefinition:{description:"The catalog of packages",type:"STRING"}},catalogs:{description:"Named catalogs of packages",type:"MAP",valueDefinition:{description:"A named catalog",type:"MAP",valueDefinition:{description:"Package version in the catalog",type:"STRING"}}}},hooks:{beforeWorkspacePacking:(t,e)=>{let r=t.project,s=r.configuration.makeResolver(),a={project:r,resolver:s,report:new rs};for(let n of nr.allDependencies){let l=e[n];if(l)for(let[f,h]of Object.entries(l)){if(typeof h!="string"||!sY(h))continue;let A=G.parseIdent(f),m=G.makeDescriptor(A,h),w=oY(r,m,s,a),{protocol:B,source:D,params:I,selector:R}=G.parseRange(G.convertToManifestRange(w.range));B===t.project.configuration.get("defaultProtocol")&&(B=null),l[f]=G.makeRange({protocol:B,source:D,params:I,selector:R})}}},reduceDependency:async(t,e,r,s,{resolver:a,resolveOptions:n})=>sY(t.range)?oY(e,t,a,n):t}},tyt=eyt;var hY={};lr(hY,{default:()=>nyt});We();var Ut={optional:!0},cY=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Ut,zenObservable:Ut}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Ut,zenObservable:Ut}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":Ut}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":Ut,"postcss-jsx":Ut,"postcss-less":Ut,"postcss-markdown":Ut,"postcss-scss":Ut}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Ut}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Ut}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Ut,"vue-template-compiler":Ut}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],Line truncated
This command will output all matches to the given prolog query.
`,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(RD(),kD)),s=await $e.find(this.context.cwd,this.context.plugins),{project:a}=await Yt.find(s,this.context.cwd),n=await r.find(a),l=this.query;return l.endsWith(".")||(l=`${l}.`),(await Wt.start({configuration:s,json:this.json,stdout:this.context.stdout},async h=>{for await(let A of n.query(l)){let m=Array.from(Object.entries(A)),w=m.length,B=m.reduce((D,[I])=>Math.max(D,I.length),0);for(let D=0;D<w;D++){let[I,R]=m[D];h.reportInfo(null,`${Iyt(D,w)}${I.padEnd(B," ")} = ${Eyt(R)}`)}h.reportJson(A)}})).exitCode()}};function Eyt(t){return typeof t!="string"?`${t}`:t.match(/^[a-zA-Z][a-zA-Z0-9_]+$/)?t:`'${t}'`}function Iyt(t,e){let r=t===0,s=t===e-1;return r&&s?"":r?"\u250C ":s?"\u2514 ":"\u2502 "}We();sr();var k1=class extends mt{constructor(){super(...arguments);this.verbose=ye.Boolean("-v,--verbose",!1,{description:"Also print the fact database automatically compiled from the workspace manifests"})}static{this.paths=[["constraints","source"]]}static{this.usage=At.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(RD(),kD)),s=await $e.find(this.context.cwd,this.context.plugins),{project:a}=await Yt.find(s,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};We();We();sr();DD();var R1=class extends mt{constructor(){super(...arguments);this.fix=ye.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["constraints"]]}static{this.usage=At.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:`
This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code.
If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution.
For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints.
`,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s}=await Yt.find(r,this.context.cwd);await s.restoreInstallState();let a=await s.loadUserConfig(),n;if(a?.constraints)n=new S1(s);else{let{Constraints:A}=await Promise.resolve().then(()=>(RD(),kD));n=await A.find(s)}let l,f=!1,h=!1;for(let A=this.fix?10:1;A>0;--A){let m=await n.process();if(!m)break;let{changedWorkspaces:w,remainingErrors:B}=zO(s,m,{fix:this.fix}),D=[];for(let[I,R]of w){let N=I.manifest.indent;I.manifest=new nr,I.manifest.indent=N,I.manifest.load(R),D.push(I.persistManifest())}if(await Promise.all(D),!(w.size>0&&A>1)){l=$2e(B,{configuration:r}),f=!1,h=!0;for(let[,I]of B)for(let R of I)R.fixable?f=!0:h=!1}}if(l.children.length===0)return 0;if(f){let A=h?`Those errors can all be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`;await Wt.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async m=>{m.reportInfo(0,A),m.reportSeparator()})}return l.children=Ye.sortMap(l.children,A=>A.value[1]),bs.emitTree(l,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};DD();var wyt={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[x1,k1,R1],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),s;if(r?.constraints)s=new S1(t);else{let{Constraints:l}=await Promise.resolve().then(()=>(RD(),kD));s=await l.find(t)}let a=await s.process();if(!a)return;let{remainingErrors:n}=zO(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[l,f]of n)for(let h of f)e(84,`${pe.pretty(t.configuration,l.anchoredLocator,pe.Type.IDENT)}: ${h.text}`);else e(84,`Constraint check failed; run ${pe.pretty(t.configuration,"yarn constraints",pe.Type.CODE)} for more details`)}}},Cyt=wyt;var kY={};lr(kY,{CreateCommand:()=>T1,DlxCommand:()=>Q1,default:()=>vyt});We();sr();var T1=class extends mt{constructor(){super(...arguments);this.pkg=ye.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=ye.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ye.String();this.args=ye.Proxy()}static{this.paths=[["create"]]}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let s=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=G.parseDescriptor(s),n=a.name.match(/^create(-|$)/)?a:a.scope?G.makeIdent(a.scope,`create-${a.name}`):G.makeIdent(null,`create-${a.name}`),l=G.stringifyIdent(n);return a.range!=="unknown"&&(l+=`@${a.range}`),this.cli.run(["dlx",...r,l,...this.args])}};We();We();Mt();sr();var Q1=class extends mt{constructor(){super(...arguments);this.packages=ye.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=ye.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ye.String();this.args=ye.Proxy()}static{this.paths=[["dlx"]]}static{this.usage=At.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-vite to scaffold a new Vite project","yarn dlx create-vite"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]})}async execute(){return $e.telemetry=null,await fe.mktempPromise(async r=>{let s=Y.join(r,`dlx-${process.pid}`);await fe.mkdirPromise(s),await fe.writeFilePromise(Y.join(s,"package.json"),`{}
`),await fe.writeFilePromise(Y.join(s,"yarn.lock"),"");let a=Y.join(s,".yarnrc.yml"),n=await $e.findProjectCwd(this.context.cwd),f={enableGlobalCache:!(await $e.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Mh(68),level:pe.LogLevel.Discard}]},h=n!==null?Y.join(n,".yarnrc.yml"):null;h!==null&&fe.existsSync(h)?(await fe.copyFilePromise(h,a),await $e.updateConfiguration(s,N=>{let U=Ye.toMerged(N,f);return Array.isArray(N.plugins)&&(U.plugins=N.plugins.map(V=>{let ee=typeof V=="string"?V:V.path,te=me.isAbsolute(ee)?ee:me.resolve(me.fromPortablePath(n),ee);return typeof V=="string"?te:{path:te,spec:V.spec}})),U})):await fe.writeJsonPromise(a,f);let A=this.packages??[this.command],m=G.parseDescriptor(this.command).name,w=await this.cli.run(["add","--fixed","--",...A],{cwd:s,quiet:this.quiet});if(w!==0)return w;this.quiet||this.context.stdout.write(`
`);let B=await $e.find(s,this.context.plugins),{project:D,workspace:I}=await Yt.find(B,s);if(I===null)throw new Dr(D.cwd,s);await D.restoreInstallState();let R=await qn.getWorkspaceAccessibleBinaries(I);return R.has(m)===!1&&R.size===1&&typeof this.packages>"u"&&(m=Array.from(R)[0][0]),await qn.executeWorkspaceAccessibleBinary(I,m,this.args,{packageAccessibleBinaries:R,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};var Byt={commands:[T1,Q1]},vyt=Byt;var QY={};lr(QY,{ExecFetcher:()=>QD,ExecResolver:()=>FD,default:()=>Dyt,execUtils:()=>$O});We();We();We();Mt();var rA="exec:";var $O={};lr($O,{loadGeneratorFile:()=>TD,makeLocator:()=>TY,makeSpec:()=>SBe,parseSpec:()=>RY});We();Mt();function RY(t){let{params:e,selector:r}=G.parseRange(t),s=me.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:s}}function SBe({parentLocator:t,path:e,generatorHash:r,protocol:s}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:s,source:e,selector:e,params:{...n,...a}})}function TY(t,{parentLocator:e,path:r,generatorHash:s,protocol:a}){return G.makeLocator(t,SBe({parentLocator:e,path:r,generatorHash:s,protocol:a}))}async function TD(t,e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(t,{protocol:e}),n=Y.isAbsolute(a)?{packageFs:new Jn(Rt.root),prefixPath:Rt.dot,localPath:Rt.root}:await r.fetcher.fetch(s,r),l=n.localPath?{packageFs:new Jn(Rt.root),prefixPath:Y.relative(Rt.root,n.localPath)}:n;n!==l&&n.releaseFs&&n.releaseFs();let f=l.packageFs,h=Y.join(l.prefixPath,a);return await f.readFilePromise(h,"utf8")}var QD=class{supports(e,r){return!!e.reference.startsWith(rA)}getLocalPath(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:rA});if(Y.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:Y.resolve(n,a)}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,l]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:l}}async fetchFromDisk(e,r){let s=r.project.getDependencyMeta(e,null);if(!r.project.configuration.get("enableScripts")&&!s.built)throw new Zt(4,`${G.prettyLocator(r.project.configuration,e)} can't be built with the exec: protocol because all scripts have been disabled.`);let a=await TD(e.reference,rA,r);return fe.mktempPromise(async n=>{let l=Y.join(n,"generator.js");return await fe.writeFilePromise(l,a),fe.mktempPromise(async f=>{if(await this.generatePackage(f,e,l,r),!fe.existsSync(Y.join(f,"build")))throw new Error("The script should have generated a build directory");return await Hs.makeArchiveFromDirectory(Y.join(f,"build"),{prefixPath:G.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,s,a){return await fe.mktempPromise(async n=>{let l=await qn.makeScriptEnv({project:a.project,binFolder:n}),f=Y.join(e,"runtime.js");return await fe.mktempPromise(async h=>{let A=Y.join(h,"buildfile.log"),m=Y.join(e,"generator"),w=Y.join(e,"build");await fe.mkdirPromise(m),await fe.mkdirPromise(w);let B={tempDir:me.fromPortablePath(m),buildDir:me.fromPortablePath(w),locator:G.stringifyLocator(r)};await fe.writeFilePromise(f,`
// Expose 'Module' as a global variable
Object.defineProperty(global, 'Module', {
get: () => require('module'),
configurable: true,
enumerable: false,
});
// Expose non-hidden built-in modules as global variables
for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) {
Object.defineProperty(global, name, {
get: () => require(name),
configurable: true,
enumerable: false,
});
}
// Expose the 'execEnv' global variable
Object.defineProperty(global, 'execEnv', {
value: {
...${JSON.stringify(B)},
},
enumerable: true,
});
`);let D=l.NODE_OPTIONS||"",I=/\s*--require\s+\S*\.pnp\.c?js\s*/g;D=D.replace(I," ").trim(),l.NODE_OPTIONS=D;let{stdout:R,stderr:N}=a.project.configuration.getSubprocessStreams(A,{header:`# This file contains the result of Yarn generating a package (${G.stringifyLocator(r)})
`,prefix:G.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await un.pipevp(process.execPath,["--require",me.fromPortablePath(f),me.fromPortablePath(s),G.stringifyIdent(r)],{cwd:e,env:l,stdin:null,stdout:R,stderr:N});if(U!==0)throw fe.detachTemp(h),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${pe.pretty(a.project.configuration,A,pe.Type.PATH)})`)})})}};We();We();We();var Syt=2,FD=class{supportsDescriptor(e,r){return!!e.range.startsWith(rA)}supportsLocator(e,r){return!!e.reference.startsWith(rA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){if(s.project.tryWorkspaceByLocator(r)===null)throw new Zt(57,`${G.prettyLocator(s.project.configuration,r)} lists ${G.prettyDescriptor(s.project.configuration,e)} as dependency, but only workspaces can depend on exec: packages.`);return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=RY(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=await TD(G.makeRange({protocol:rA,source:a,selector:a,params:{locator:G.stringifyLocator(n)}}),rA,s.fetchOptions),f=si.makeHash(`${Syt}`,l).slice(0,6);return[TY(e,{parentLocator:n,path:a,generatorHash:f,protocol:rA})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(l=>l.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let s=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await Ye.releaseAfterUseAsync(async()=>await nr.find(s.prefixPath,{baseFs:s.packageFs}),s.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var byt={fetchers:[QD],resolvers:[FD]},Dyt=byt;var NY={};lr(NY,{FileFetcher:()=>_D,FileResolver:()=>MD,TarballFileFetcher:()=>UD,TarballFileResolver:()=>HD,default:()=>kyt,fileUtils:()=>sE});We();Mt();var F1=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,ND=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Ds="file:";var sE={};lr(sE,{fetchArchiveFromLocator:()=>LD,makeArchiveFromLocator:()=>eL,makeBufferFromLocator:()=>FY,makeLocator:()=>N1,makeSpec:()=>bBe,parseSpec:()=>OD});We();Mt();function OD(t){let{params:e,selector:r}=G.parseRange(t),s=me.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:s}}function bBe({parentLocator:t,path:e,hash:r,protocol:s}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:s,source:e,selector:e,params:{...n,...a}})}function N1(t,{parentLocator:e,path:r,hash:s,protocol:a}){return G.makeLocator(t,bBe({parentLocator:e,path:r,hash:s,protocol:a}))}async function LD(t,e){let{parentLocator:r,path:s}=G.parseFileStyleRange(t.reference,{protocol:Ds}),a=Y.isAbsolute(s)?{packageFs:new Jn(Rt.root),prefixPath:Rt.dot,localPath:Rt.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new Jn(Rt.root),prefixPath:Y.relative(Rt.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let l=n.packageFs,f=Y.join(n.prefixPath,s);return await Ye.releaseAfterUseAsync(async()=>await l.readFilePromise(f),n.releaseFs)}async function eL(t,{protocol:e,fetchOptions:r,inMemory:s=!1}){let{parentLocator:a,path:n}=G.parseFileStyleRange(t.reference,{protocol:e}),l=Y.isAbsolute(n)?{packageFs:new Jn(Rt.root),prefixPath:Rt.dot,localPath:Rt.root}:await r.fetcher.fetch(a,r),f=l.localPath?{packageFs:new Jn(Rt.root),prefixPath:Y.relative(Rt.root,l.localPath)}:l;l!==f&&l.releaseFs&&l.releaseFs();let h=f.packageFs,A=Y.join(f.prefixPath,n);return await Ye.releaseAfterUseAsync(async()=>await Hs.makeArchiveFromDirectory(A,{baseFs:h,prefixPath:G.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:s}),f.releaseFs)}async function FY(t,{protocol:e,fetchOptions:r}){return(await eL(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var _D=class{supports(e,r){return!!e.reference.startsWith(Ds)}getLocalPath(e,r){let{parentLocator:s,path:a}=G.parseFileStyleRange(e.reference,{protocol:Ds});if(Y.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(s,r);return n===null?null:Y.resolve(n,a)}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,l]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFro Line truncated
`,{automaticNewlines:!0});let A=[h],m=Y.join(this.context.cwd,"README.md");if(fe.existsSync(m)||(await fe.writeFilePromise(m,`# ${G.stringifyIdent(n.name)}
`),A.push(m)),!s||s.cwd===this.context.cwd){let w=Y.join(this.context.cwd,Or.lockfile);fe.existsSync(w)||(await fe.writeFilePromise(w,""),A.push(w));let D=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Whether you use PnP or not, the node_modules folder is often used to store","# build artifacts that should be gitignored","node_modules","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(ie=>`${ie}
`).join(""),I=Y.join(this.context.cwd,".gitignore");fe.existsSync(I)||(await fe.writeFilePromise(I,D),A.push(I));let N=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(ie=>`${ie}
`).join(""),U=Y.join(this.context.cwd,".gitattributes");fe.existsSync(U)||(await fe.writeFilePromise(U,N),A.push(U));let V={"*":{charset:"utf-8",endOfLine:"lf",indentSize:2,indentStyle:"space",insertFinalNewline:!0}};Ye.mergeIntoTarget(V,r.get("initEditorConfig"));let ee=`root = true
`;for(let[ie,ae]of Object.entries(V)){ee+=`
[${ie}]
`;for(let[ge,de]of Object.entries(ae)){let De=ge.replace(/[A-Z]/g,we=>`_${we.toLowerCase()}`);ee+=`${De} = ${de}
`}}let te=Y.join(this.context.cwd,".editorconfig");fe.existsSync(te)||(await fe.writeFilePromise(te,ee),A.push(te)),await this.cli.run(["install"],{quiet:!0}),await this.initialize(),fe.existsSync(Y.join(this.context.cwd,".git"))||(await un.execvp("git",["init"],{cwd:this.context.cwd}),await un.execvp("git",["add","--",...A],{cwd:this.context.cwd}),await un.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};var O1=class extends yg{constructor(){super(...arguments);this.initializer=ye.String();this.argv=ye.Proxy()}static{this.paths=[["init"]]}async initialize(){this.context.stdout.write(`
`),await this.cli.run(["dlx",this.initializer,...this.argv],{quiet:!0})}};var Nyt={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[yg,O1]},Oyt=Nyt;var Lz={};lr(Lz,{SearchCommand:()=>e2,UpgradeInteractiveCommand:()=>t2,default:()=>W2t});We();var RBe=st(Ae("os"));function L1({stdout:t}){if(RBe.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}sr();var Gve=st(iK()),sK={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},QIt=(0,Gve.default)(sK.appId,sK.apiKey).initIndex(sK.indexName),oK=async(t,e=0)=>await QIt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var GP=["regular","dev","peer"],e2=class extends mt{static{this.paths=[["search"]]}static{this.usage=At.Usage({category:"Interactive commands",description:"open the search interface",details:`
This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry.
`,examples:[["Open the search window","yarn search"]]})}async execute(){L1(this.context);let{Gem:e}=await Promise.resolve().then(()=>(OL(),bz)),{ScrollableItems:r}=await Promise.resolve().then(()=>(UL(),ML)),{useKeypress:s}=await Promise.resolve().then(()=>($1(),Dz)),{useMinistore:a}=await Promise.resolve().then(()=>(Tz(),Rz)),{renderForm:n}=await Promise.resolve().then(()=>(VL(),qL)),{default:l}=await Promise.resolve().then(()=>st(PPe())),{Box:f,Text:h}=await Promise.resolve().then(()=>st(Du())),{default:A,useEffect:m,useState:w}=await Promise.resolve().then(()=>st(Ln())),B=await $e.find(this.context.cwd,this.context.plugins),D=()=>A.createElement(f,{flexDirection:"row"},A.createElement(f,{flexDirection:"column",width:48},A.createElement(f,null,A.createElement(h,null,"Press ",A.createElement(h,{bold:!0,color:"cyanBright"},"<up>"),"/",A.createElement(h,{bold:!0,color:"cyanBright"},"<down>")," to move between packages.")),A.createElement(f,null,A.createElement(h,null,"Press ",A.createElement(h,{bold:!0,color:"cyanBright"},"<space>")," to select a package.")),A.createElement(f,null,A.createElement(h,null,"Press ",A.createElement(h,{bold:!0,color:"cyanBright"},"<space>")," again to change the target."))),A.createElement(f,{flexDirection:"column"},A.createElement(f,{marginLeft:1},A.createElement(h,null,"Press ",A.createElement(h,{bold:!0,color:"cyanBright"},"<enter>")," to install the selected packages.")),A.createElement(f,{marginLeft:1},A.createElement(h,null,"Press ",A.createElement(h,{bold:!0,color:"cyanBright"},"<ctrl+c>")," to abort.")))),I=()=>A.createElement(A.Fragment,null,A.createElement(f,{width:15},A.createElement(h,{bold:!0,underline:!0,color:"gray"},"Owner")),A.createElement(f,{width:11},A.createElement(h,{bold:!0,underline:!0,color:"gray"},"Version")),A.createElement(f,{width:10},A.createElement(h,{bold:!0,underline:!0,color:"gray"},"Downloads"))),R=()=>A.createElement(f,{width:17},A.createElement(h,{bold:!0,underline:!0,color:"gray"},"Target")),N=({hit:de,active:De})=>{let[we,d]=a(de.name,null);s({active:De},(Ee,he)=>{if(he.name!=="space")return;if(!we){d(GP[0]);return}let $=GP.indexOf(we)+1;$===GP.length?d(null):d(GP[$])},[we,d]);let be=G.parseIdent(de.name),Ce=G.prettyIdent(B,be);return A.createElement(f,null,A.createElement(f,{width:45},A.createElement(h,{bold:!0,wrap:"wrap"},Ce)),A.createElement(f,{width:14,marginLeft:1},A.createElement(h,{bold:!0,wrap:"truncate"},de.owner.name)),A.createElement(f,{width:10,marginLeft:1},A.createElement(h,{italic:!0,wrap:"truncate"},de.version)),A.createElement(f,{width:16,marginLeft:1},A.createElement(h,null,de.humanDownloadsLast30Days)))},U=({name:de,active:De})=>{let[we]=a(de,null),d=G.parseIdent(de);return A.createElement(f,null,A.createElement(f,{width:47},A.createElement(h,{bold:!0}," - ",G.prettyIdent(B,d))),GP.map(be=>A.createElement(f,{key:be,width:14,marginLeft:1},A.createElement(h,null," ",A.createElement(e,{active:we===be})," ",A.createElement(h,{bold:!0},be)))))},V=()=>A.createElement(f,{marginTop:1},A.createElement(h,null,"Powered by Algolia.")),te=await n(({useSubmit:de})=>{let De=a();de(De);let we=Array.from(De.keys()).filter(j=>De.get(j)!==null),[d,be]=w(""),[Ce,Ee]=w(0),[he,$]=w([]),Pe=j=>{j.match(/\t| /)||be(j)},Te=async()=>{Ee(0);let j=await oK(d);j.query===d&&$(j.hits)},ot=async()=>{let j=await oK(d,Ce+1);j.query===d&&j.page-1===Ce&&(Ee(j.page),$([...he,...j.hits]))};return m(()=>{d?Te():$([])},[d]),A.createElement(f,{flexDirection:"column"},A.createElement(D,null),A.createElement(f,{flexDirection:"row",marginTop:1},A.createElement(h,{bold:!0},"Search: "),A.createElement(f,{width:41},A.createElement(l,{value:d,onChange:Pe,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),A.createElement(I,null)),he.length?A.createElement(r,{radius:2,loop:!1,children:he.map(j=>A.createElement(N,{key:j.name,hit:j,active:!1})),willReachEnd:ot}):A.createElement(h,{color:"gray"},"Start typing..."),A.createElement(f,{flexDirection:"row",marginTop:1},A.createElement(f,{width:49},A.createElement(h,{bold:!0},"Selected:")),A.createElement(R,null)),we.length?we.map(j=>A.createElement(U,{key:j,name:j,active:!1})):A.createElement(h,{color:"gray"},"No selected packages..."),A.createElement(V,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof te>"u")return 1;let ie=Array.from(te.keys()).filter(de=>te.get(de)==="regular"),ae=Array.from(te.keys()).filter(de=>te.get(de)==="dev"),ge=Array.from(te.keys()).filter(de=>te.get(de)==="peer");return ie.length&&await this.cli.run(["add",...ie]),ae.length&&await this.cli.run(["add","--dev",...ae]),ge&&await this.cli.run(["add","--peer",...ge]),0}};We();sr();FV();var NPe=st(Di());ga();var FPe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/;function OPe(t,e){return t.length>0?[t.slice(0,e)].concat(OPe(t.slice(e),e)):[]}var t2=class extends mt{constructor(){super(...arguments);this.mode=ye.String("--mode",{description:"Change what artifacts installs genera Line truncated
${m}, next tree:
${JP(f)}`);let B=UPe(f);if(B)throw new Error(`${B}, after hoisting finished:
${JP(f)}`)}return n.debugLevel>=2&&console.log(JP(f)),oBt(f)},$2t=t=>{let e=t[t.length-1],r=new Map,s=new Set,a=n=>{if(!s.has(n)){s.add(n);for(let l of n.hoistedDependencies.values())r.set(l.name,l);for(let l of n.dependencies.values())n.peerNames.has(l.name)||a(l)}};return a(e),r},eBt=t=>{let e=t[t.length-1],r=new Map,s=new Set,a=new Set,n=(l,f)=>{if(s.has(l))return;s.add(l);for(let A of l.hoistedDependencies.values())if(!f.has(A.name)){let m;for(let w of t)m=w.dependencies.get(A.name),m&&r.set(m.name,m)}let h=new Set;for(let A of l.dependencies.values())h.add(A.name);for(let A of l.dependencies.values())l.peerNames.has(A.name)||n(A,h)};return n(e,a),r},_Pe=(t,e)=>{if(e.decoupled)return e;let{name:r,references:s,ident:a,locator:n,dependencies:l,originalDependencies:f,hoistedDependencies:h,peerNames:A,reasons:m,isHoistBorder:w,hoistPriority:B,dependencyKind:D,hoistedFrom:I,hoistedTo:R}=e,N={name:r,references:new Set(s),ident:a,locator:n,dependencies:new Map(l),originalDependencies:new Map(f),hoistedDependencies:new Map(h),peerNames:new Set(A),reasons:new Map(m),decoupled:!0,isHoistBorder:w,hoistPriority:B,dependencyKind:D,hoistedFrom:new Map(I),hoistedTo:new Map(R)},U=N.dependencies.get(r);return U&&U.ident==N.ident&&N.dependencies.set(r,N),t.dependencies.set(N.name,N),N},tBt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let s=Array.from(e.keys());s.sort((a,n)=>{let l=e.get(a),f=e.get(n);if(f.hoistPriority!==l.hoistPriority)return f.hoistPriority-l.hoistPriority;{let h=l.dependents.size+l.peerDependents.size;return f.dependents.size+f.peerDependents.size-h}});for(let a of s){let n=a.substring(0,a.indexOf("@",1)),l=a.substring(n.length+1);if(!t.peerNames.has(n)){let f=r.get(n);f||(f=[],r.set(n,f)),f.indexOf(l)<0&&f.push(l)}}return r},Hz=t=>{let e=new Set,r=(s,a=new Set)=>{if(!a.has(s)){a.add(s);for(let n of s.peerNames)if(!t.peerNames.has(n)){let l=t.dependencies.get(n);l&&!e.has(l)&&r(l,a)}e.add(s)}};for(let s of t.dependencies.values())t.peerNames.has(s.name)||r(s);return e},Gz=(t,e,r,s,a,n=new Set)=>{let l=e[e.length-1];if(n.has(l))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(l);let f=aBt(l),h=tBt(l,f),A=t==l?new Map:a.fastLookupPossible?$2t(e):eBt(e),m,w=!1,B=!1,D=new Map(Array.from(h.entries()).map(([R,N])=>[R,N[0]])),I=new Map;do{let R=iBt(t,e,r,A,D,h,s,I,a);R.isGraphChanged&&(B=!0),R.anotherRoundNeeded&&(w=!0),m=!1;for(let[N,U]of h)U.length>1&&!l.dependencies.has(N)&&(D.delete(N),U.shift(),D.set(N,U[0]),m=!0)}while(m);for(let R of l.dependencies.values())if(!l.peerNames.has(R.name)&&!r.has(R.locator)){r.add(R.locator);let N=Gz(t,[...e,R],r,I,a);N.isGraphChanged&&(B=!0),N.anotherRoundNeeded&&(w=!0),r.delete(R.locator)}return{anotherRoundNeeded:w,isGraphChanged:B}},rBt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},nBt=(t,e,r,s,a,n,l,f,{outputReason:h,fastLookupPossible:A})=>{let m,w=null,B=new Set;h&&(m=`${Array.from(e).map(N=>Yo(N)).join("\u2192")}`);let D=r[r.length-1],R=!(s.ident===D.ident);if(h&&!R&&(w="- self-reference"),R&&(R=s.dependencyKind!==1,h&&!R&&(w="- workspace")),R&&s.dependencyKind===2&&(R=!rBt(s),h&&!R&&(w="- external soft link with unhoisted dependencies")),R&&(R=!t.peerNames.has(s.name),h&&!R&&(w=`- cannot shadow peer: ${Yo(t.originalDependencies.get(s.name).locator)} at ${m}`)),R){let N=!1,U=a.get(s.name);if(N=!U||U.ident===s.ident,h&&!N&&(w=`- filled by: ${Yo(U.locator)} at ${m}`),N)for(let V=r.length-1;V>=1;V--){let te=r[V].dependencies.get(s.name);if(te&&te.ident!==s.ident){N=!1;let ie=f.get(D);ie||(ie=new Set,f.set(D,ie)),ie.add(s.name),h&&(w=`- filled by ${Yo(te.locator)} at ${r.slice(0,V).map(ae=>Yo(ae.locator)).join("\u2192")}`);break}}R=N}if(R&&(R=n.get(s.name)===s.ident,h&&!R&&(w=`- filled by: ${Yo(l.get(s.name)[0])} at ${m}`)),R){let N=!0,U=new Set(s.peerNames);for(let V=r.length-1;V>=1;V--){let ee=r[V];for(let te of U){if(ee.peerNames.has(te)&&ee.originalDependencies.has(te))continue;let ie=ee.dependencies.get(te);ie&&t.dependencies.get(te)!==ie&&(V===r.length-1?B.add(ie):(B=null,N=!1,h&&(w=`- peer dependency ${Yo(ie.locator)} from parent ${Yo(ee.locator)} was not hoisted to ${m}`))),U.delete(te)}if(!N)break}R=N}if(R&&!A)for(let N of s.hoistedDependencies.values()){let U=a.get(N.name)||t.dependencies.get(N.name);if(!U||N.ident!==U.ident){R=!1,h&&(w=`- previously hoisted dependency mismatch, needed: ${Yo(N.locator)}, available: ${Yo(U?.locator)}`);break}}return B!==null&&B.size>0?{isHoistable:2,dependsOn:B,reason:w}:{isHoistable:R?0:1,reason:w}},KL=t=>`${t.name}@${t.locator}`,iBt=(t,e,r,s,a,n,l,f,h)=>{let A=e[e.length-1],m=new Set,w=!1,B=!1,D=(U,V,ee,te,ie)=>{if(m.has(te))return;let ae=[...V,KL(te)],ge=[...ee,KL(te)],de=new Map,De=new Map;for(let Ee of Hz(te)){let he=nBt(A,r,[A,...U,te],Ee,s,a,n,f,{outputReason:h.debugLevel>=2,fastLookupPossible:h.fastLookupPossible});if(De.set(Ee,he),he.isHoistable===2)for(let $ of he.dependsOn){let Line truncated
${JP(t)}`)}let Ce=Hz(te);for(let Ee of Ce)if(we.has(Ee)){let he=De.get(Ee);if((a.get(Ee.name)===Ee.ident||!te.reasons.has(Ee.name))&&he.isHoistable!==0&&te.reasons.set(Ee.name,he.reason),!Ee.isHoistBorder&&ge.indexOf(KL(Ee))<0){m.add(te);let Pe=_Pe(te,Ee);D([...U,te],ae,ge,Pe,R),m.delete(te)}}},I,R=new Set(Hz(A)),N=Array.from(e).map(U=>KL(U));do{I=R,R=new Set;for(let U of I){if(U.locator===A.locator||U.isHoistBorder)continue;let V=_Pe(A,U);D([],Array.from(r),N,V,R)}}while(R.size>0);return{anotherRoundNeeded:w,isGraphChanged:B}},UPe=t=>{let e=[],r=new Set,s=new Set,a=(n,l,f)=>{if(r.has(n)||(r.add(n),s.has(n)))return;let h=new Map(l);for(let A of n.dependencies.values())n.peerNames.has(A.name)||h.set(A.name,A);for(let A of n.originalDependencies.values()){let m=h.get(A.name),w=()=>`${Array.from(s).concat([n]).map(B=>Yo(B.locator)).join("\u2192")}`;if(n.peerNames.has(A.name)){let B=l.get(A.name);(B!==m||!B||B.ident!==A.ident)&&e.push(`${w()} - broken peer promise: expected ${A.ident} but found ${B&&B.ident}`)}else{let B=f.hoistedFrom.get(n.name),D=n.hoistedTo.get(A.name),I=`${B?` hoisted from ${B.join(", ")}`:""}`,R=`${D?` hoisted to ${D}`:""}`,N=`${w()}${I}`;m?m.ident!==A.ident&&e.push(`${N} - broken require promise for ${A.name}${R}: expected ${A.ident}, but found: ${m.ident}`):e.push(`${N} - broken require promise: no required dependency ${A.name}${R} found`)}}s.add(n);for(let A of n.dependencies.values())n.peerNames.has(A.name)||a(A,h,n);s.delete(n)};return a(t,t.dependencies,t),e.join(`
`)},sBt=(t,e)=>{let{identName:r,name:s,reference:a,peerNames:n}=t,l={name:s,references:new Set([a]),locator:jz(r,a),ident:LPe(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},f=new Map([[t,l]]),h=(A,m)=>{let w=f.get(A),B=!!w;if(!w){let{name:D,identName:I,reference:R,peerNames:N,hoistPriority:U,dependencyKind:V}=A;w={name:D,references:new Set([R]),locator:jz(I,R),ident:LPe(I,R),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(N),reasons:new Map,decoupled:!0,isHoistBorder:!1,hoistPriority:U||0,dependencyKind:V||0,hoistedFrom:new Map,hoistedTo:new Map},f.set(A,w)}if(!w.isHoistBorder&&e.hoistingLimits.get(m.locator)?.has(A.name)&&(w.isHoistBorder=!0),m.dependencies.set(A.name,w),m.originalDependencies.set(A.name,w),B){let D=new Set,I=R=>{if(!D.has(R)){D.add(R),R.decoupled=!1;for(let N of R.dependencies.values())R.peerNames.has(N.name)||I(N)}};I(w)}else for(let D of A.dependencies)h(D,w)};for(let A of t.dependencies)h(A,l);return l},qz=t=>t.substring(0,t.indexOf("@",1)),oBt=t=>{let e={name:t.name,identName:qz(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),s=(a,n,l)=>{let f=r.has(a),h;if(n===a)h=l;else{let{name:A,references:m,locator:w}=a;h={name:A,identName:qz(w),references:m,dependencies:new Set}}if(l.dependencies.add(h),!f){r.add(a);for(let A of a.dependencies.values())a.peerNames.has(A.name)||s(A,a,h);r.delete(a)}};for(let a of t.dependencies.values())s(a,t,e);return e},aBt=t=>{let e=new Map,r=new Set([t]),s=l=>`${l.name}@${l.ident}`,a=l=>{let f=s(l),h=e.get(f);return h||(h={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(f,h)),h},n=(l,f)=>{let h=!!r.has(f);if(a(f).dependents.add(l.ident),!h){r.add(f);for(let m of f.dependencies.values()){let w=a(m);w.hoistPriority=Math.max(w.hoistPriority,m.hoistPriority),f.peerNames.has(m.name)?w.peerDependents.add(f.ident):n(f,m)}}};for(let l of t.dependencies.values())t.peerNames.has(l.name)||n(t,l);return e},Yo=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let s=t.substring(e+1);if(s==="workspace:.")return".";if(s){let a=(s.indexOf("#")>0?s.split("#")[1]:s).replace("npm:","");return s.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`};var JP=t=>{let e=0,r=(a,n,l="")=>{if(e>5e4||n.has(a))return"";e++;let f=Array.from(a.dependencies.values()).sort((A,m)=>A.name===m.name?0:A.name>m.name?1:-1),h="";n.add(a);for(let A=0;A<f.length;A++){let m=f[A];if(!a.peerNames.has(m.name)&&m!==a){let w=a.reasons.get(m.name),B=qz(m.locator);h+=`${l}${A<f.length-1?"\u251C\u2500":"\u2514\u2500"}${(n.has(m)?">":"")+(B!==m.name?`a:${m.name}:`:"")+Yo(m.locator)+(w?` ${w}`:"")}
`,h+=r(m,n,`${l}${A<f.length-1?"\u2502 ":" "}`)}}return n.delete(a),h};return r(t,new Set)+(e>5e4?`
Tree is too large, part of the tree has been dunped
`:"")};var ZP=(s=>(s.WORKSPACES="workspaces",s.DEPENDENCIES="dependencies",s.NONE="none",s))(ZP||{}),HPe="node_modules",vg="$wsroot$";var XP=(t,e)=>{let{packageTree:r,hoistingLimits:s,errors:a,preserveSymlinksRequired:n}=lBt(t,e),l=null;if(a.length===0){let f=MPe(r,{hoistingLimits:s});l=fBt(t,f,e)}return{tree:l,errors:a,preserveSymlinksRequired:n}},oA=t=>`${t.name}@${t.reference}`,Wz=t=>{let e=new Map;for(let[r,s]of t.entries())if(!s.dirList){let a=e.get(s.locator);a||(a={target:s.target,linkType:s.linkType,locations:[],aliases:s.aliases},e.set(s.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((s,a)=>{let n=s.split(Y.delimiter).length,l=a.split(Y.delimiter).length;return a===s?0:n!==l?l-n:a>s?1:-1});return e},jPe=(t,e)=>{let r=G.isVirtualLocator(t)?G.devirtualizeLocator(t):t,s=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e;return G.areLocatorsEqual(r,s)},Vz=(t,e,r,s)=>{if(t.linkType!=="SOFT")return!1;let a=me.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return Y.contains(s,a)===null},cBt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let s=me.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},l=t.getDependencyTreeRoots(),f=new Map,h=new Set,A=(B,D)=>{let I=oA(B);if(h.has(I))return;h.add(I);let R=t.getPackageInformation(B);if(R){let N=D?oA(D):"";if(oA(B)!==N&&R.linkType==="SOFT"&&!B.reference.startsWith("link:")&&!Vz(R,B,t,s)){let U=GPe(R,B,t);(!f.get(U)||B.reference.startsWith("workspace:"))&&f.set(U,B)}for(let[U,V]of R.packageDependencies)V!==null&&(R.packagePeers.has(U)||A(t.getLocator(U,V),B))}};for(let B of l)A(B,null);let m=s.split(Y.sep);for(let B of f.values()){let D=t.getPackageInformation(B),R=me.toPortablePath(D.packageLocation.slice(0,-1)).split(Y.sep).slice(m.length),N=n;for(let U of R){let V=N.children.get(U);V||(V={children:new Map},N.children.set(U,V)),N=V}N.workspaceLocator=B}let w=(B,D)=>{if(B.workspaceLocator){let I=oA(D),R=a.get(I);R||(R=new Set,a.set(I,R)),R.add(B.workspaceLocator)}for(let I of B.children.values())w(I,B.workspaceLocator||D)};for(let B of n.children.values())w(B,n.workspaceLocator);return a},lBt=(t,e)=>{let r=[],s=!1,a=new Map,n=cBt(t),l=t.getPackageInformation(t.topLevel);if(l===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let f=t.findPackageLocator(l.packageLocation);if(f===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let h=me.toPortablePath(l.packageLocation.slice(0,-1)),A={name:f.name,identName:f.name,reference:f.reference,peerNames:l.packagePeers,dependencies:new Set,dependencyKind:1},m=new Map,w=(D,I)=>`${oA(I)}:${D}`,B=(D,I,R,N,U,V,ee,te)=>{let ie=w(D,R),ae=m.get(ie),ge=!!ae;!ge&&R.name===f.name&&R.reference===f.reference&&(ae=A,m.set(ie,A));let de=Vz(I,R,t,h);if(!ae){let Ee=0;de?Ee=2:I.linkType==="SOFT"&&R.name.endsWith(vg)&&(Ee=1),ae={name:D,identName:R.name,reference:R.reference,dependencies:new Set,peerNames:Ee===1?new Set:I.packagePeers,dependencyKind:Ee},m.set(ie,ae)}let De;if(de?De=2:U.linkType==="SOFT"?De=1:De=0,ae.hoistPriority=Math.max(ae.hoistPriority||0,De),te&&!de){let Ee=oA({name:N.identName,reference:N.reference}),he=a.get(Ee)||new Set;a.set(Ee,he),he.add(ae.name)}let we=new Map(I.packageDependencies);if(e.project){let Ee=e.project.workspacesByCwd.get(me.toPortablePath(I.packageLocation.slice(0,-1)));if(Ee){let he=new Set([...Array.from(Ee.manifest.peerDependencies.values(),$=>G.stringifyIdent($)),...Array.from(Ee.manifest.peerDependenciesMeta.keys())]);for(let $ of he)we.has($)||(we.set($,V.get($)||null),ae.peerNames.add($))}}let d=oA({name:R.name.replace(vg,""),reference:R.reference}),be=n.get(d);if(be)for(let Ee of be)we.set(`${Ee.name}${vg}`,Ee.reference);(I!==U||I.linkType!=="SOFT"||!de&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(ee)))&&N.dependencies.add(ae);let Ce=R!==f&&I.linkType==="SOFT"&&!R.name.endsWith(vg)&&!de;if(!ge&&!Ce){let Ee=new Map;for(let[he,$]of we)if($!==null){let Pe=t.getLocator(he,$),Te=t.getLocator(he.replace(vg,""),$),ot=t.getPackageInformation(Te);if(ot===null)throw new Error("Assertion failed: Expected the package to have been registered");let j=Vz(ot,Pe,t,h);if(e.validateExternalSoftLinks&&e.project&&j){ot.packageDependencies.size>0&&(s=!0);for(let[He,Qe]of ot.packageDependencies)if(Qe!==null){let ft=G.parseLocator(Array.isArray(Qe)?`${Qe[0]}@${Qe[1]}`:`${He}@${Qe}`);if(oA(ft)!==oA(Pe)){let Me=we.get(He);if(Me){let x=G.parseLocator(Array.isArray(Me)?`${Me[0]}@${Me[1]}`:`${He}@${Me}`);jPe(x,ft)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(Pe.name))} into ${G.pretLine truncated
`;for(let n=0,l=t.length;n<l;++n)a+=s+zL(String(n),t[n],e,s).replace(/^ +/,""),n+1<l&&(a+=","),a+=`
`;return a+=r,a+="]",a}function CBt(t,e,r){let s=Object.keys(t),a="";a+="{";for(let n=0,l=s.length,f=0;n<l;++n){let h=s[n],A=t[h];typeof A>"u"||(f!==0&&(a+=", "),a+=JSON.stringify(h),a+=": ",a+=zL(h,A,e,r).replace(/^ +/g,""),f+=1)}return a+="}",a}function BBt(t,e,r){let s=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{
`;let l=0;for(let f=0,h=s.length;f<h;++f){let A=s[f],m=t[A];typeof m>"u"||(l!==0&&(n+=",",n+=`
`),n+=a,n+=JSON.stringify(A),n+=": ",n+=zL(A,m,e,a).replace(/^ +/g,""),l+=1)}return l!==0&&(n+=`
`),n+=r,n+="}",n}function zL(t,e,r,s){let{next:a}=WPe[r],n=a[t]||a["*"];return YPe(e,n,s)}function YPe(t,e,r){let{collapsed:s}=WPe[e];return Array.isArray(t)?s?IBt(t,e,r):wBt(t,e,r):typeof t=="object"&&t!==null?s?CBt(t,e,r):BBt(t,e,r):JSON.stringify(t)}function KPe(t){return YPe(t,"TOP_LEVEL","")}function $P(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let s=[];for(let n of e)s.push(r.map(l=>n(l)));let a=r.map((n,l)=>l);return a.sort((n,l)=>{for(let f of s){let h=f[n]<f[l]?-1:f[n]>f[l]?1:0;if(h!==0)return h}return 0}),a.map(n=>r[n])}function vBt(t){let e=new Map,r=$P(t.fallbackExclusionList||[],[({name:s,reference:a})=>s,({name:s,reference:a})=>a]);for(let{name:s,reference:a}of r){let n=e.get(s);typeof n>"u"&&e.set(s,n=new Set),n.add(a)}return Array.from(e).map(([s,a])=>[s,Array.from(a)])}function SBt(t){return $P(t.fallbackPool||[],([e])=>e)}function bBt(t){let e=[],r=t.dependencyTreeRoots.find(s=>t.packageRegistry.get(s.name)?.get(s.reference)?.packageLocation==="./");for(let[s,a]of $P(t.packageRegistry,([n])=>n===null?"0":`1${n}`)){if(s===null)continue;let n=[];e.push([s,n]);for(let[l,{packageLocation:f,packageDependencies:h,packagePeers:A,linkType:m,discardFromLookup:w}]of $P(a,([B])=>B===null?"0":`1${B}`)){if(l===null)continue;let B=[];s!==null&&l!==null&&!h.has(s)&&B.push([s,l]);for(let[U,V]of h)B.push([U,V]);let D=$P(B,([U])=>U),I=A&&A.size>0?Array.from(A):void 0,N={packageLocation:f,packageDependencies:D,packagePeers:I,linkType:m,discardFromLookup:w||void 0};n.push([l,N]),r&&s===r.name&&l===r.reference&&e.unshift([null,[[null,N]]])}}return e}function ex(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,pnpZipBackend:t.pnpZipBackend,fallbackExclusionList:vBt(t),fallbackPool:SBt(t),packageRegistryData:bBt(t)}}var ZPe=st(JPe());function XPe(t,e){return[t?`${t}
`:"",`/* eslint-disable */
`,`// @ts-nocheck
`,`"use strict";
`,`
`,e,`
`,(0,ZPe.default)()].join("")}function DBt(t){return JSON.stringify(t,null,2)}function PBt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\
`)}'`}function xBt(t){return[`const RAW_RUNTIME_STATE =
`,`${PBt(KPe(t))};
`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) {
`,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname});
`,`}
`].join("")}function kBt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) {
`,` const fs = require('fs');
`,` const path = require('path');
`,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(Or.pnpData)});
`,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname});
`,`}
`].join("")}function $Pe(t){let e=ex(t),r=xBt(e);return XPe(t.shebang,r)}function exe(t){let e=ex(t),r=kBt(),s=XPe(t.shebang,r);return{dataFile:DBt(e),loaderFile:s}}Mt();function Jz(t,{basePath:e}){let r=me.toPortablePath(e),s=Y.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,l=new Map(t.packageRegistryData.map(([w,B])=>[w,new Map(B.map(([D,I])=>{if(w===null!=(D===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let R=I.discardFromLookup??!1,N={name:w,reference:D},U=n.get(I.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&R,R||(U.locator=N)):n.set(I.packageLocation,{locator:N,discardFromLookup:R});let V=null;return[D,{packageDependencies:new Map(I.packageDependencies),packagePeers:new Set(I.packagePeers),linkType:I.linkType,discardFromLookup:R,get packageLocation(){return V||(V=Y.join(s,I.packageLocation))}}]}))])),f=new Map(t.fallbackExclusionList.map(([w,B])=>[w,new Set(B)])),h=new Map(t.fallbackPool),A=t.dependencyTreeRoots,m=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:A,enableTopLevelFallback:m,fallbackExclusionList:f,pnpZipBackend:t.pnpZipBackend,fallbackPool:h,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:l}}Mt();Mt();var ad=Ae("module"),yE=Ae("url"),aJ=Ae("util");var Da=Ae("url");var ixe=st(Ae("assert"));var Zz=Array.isArray,tx=JSON.stringify,rx=Object.getOwnPropertyNames,mE=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Xz=(t,e)=>RegExp.prototype.exec.call(t,e),$z=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),Sg=(t,...e)=>String.prototype.endsWith.apply(t,e),eJ=(t,...e)=>String.prototype.includes.apply(t,e),tJ=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),nx=(t,...e)=>String.prototype.indexOf.apply(t,e),txe=(t,...e)=>String.prototype.replace.apply(t,e),bg=(t,...e)=>String.prototype.slice.apply(t,e),aA=(t,...e)=>String.prototype.startsWith.apply(t,e),rxe=Map,nxe=JSON.parse;function ix(t,e,r){return class extends r{constructor(...s){super(e(...s)),this.code=t,this.name=`${r.name} [${t}]`}}}var sxe=ix("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),rJ=ix("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),oxe=ix("ERR_INVALID_PACKAGE_TARGET",(t,e,r,s=!1,a=void 0)=>{let n=typeof r=="string"&&!s&&r.length&&!aA(r,"./");return e==="."?((0,ixe.default)(s===!1),`Invalid "exports" main target ${tx(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${s?"imports":"exports"}" target ${tx(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),sx=ix("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),axe=ix("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var ZL=Ae("url");function cxe(t,e){let r=Object.create(null);for(let s=0;s<e.length;s++){let a=e[s];mE(t,a)&&(r[a]=t[a])}return r}var JL=new rxe;function RBt(t,e,r,s){let a=JL.get(t);if(a!==void 0)return a;let n=s(t);if(n===void 0){let D={pjsonPath:t,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return JL.set(t,D),D}let l;try{l=nxe(n)}catch(D){throw new sx(t,(r?`"${e}" from `:"")+(0,ZL.fileURLToPath)(r||e),D.message)}let{imports:f,main:h,name:A,type:m}=cxe(l,["imports","main","name","type"]),w=mE(l,"exports")?l.exports:void 0;(typeof f!="object"||f===null)&&(f=void 0),typeof h!="string"&&(h=void 0),typeof A!="string"&&(A=void 0),m!=="module"&&m!=="commonjs"&&(m="none");let B={pjsonPath:t,exists:!0,main:h,name:A,type:m,exports:w,imports:f};return JL.set(t,B),B}function lxe(t,e){let r=new URL("./package.json",t);for(;;){let n=r.pathname;if(Sg(n,"node_modules/package.json"))break;let l=RBt((0,ZL.fileURLToPath)(r),t,void 0,e);if(l.exists)return l;let f=r;if(r=new URL("../package.json",r),r.pathname===f.pathname)break}let s=(0,ZL.fileURLToPath)(r),a={pjsonPath:s,exists:!1,main:void 0,name:void 0,type:"none",exports:void 0,imports:void 0};return JL.set(s,a),a}function TBt(t,e,r){throw new sxe(t,e&&(0,Da.fileURLToPath)(new URL(".",e)),(0,Da.fileURLToPath)(r))}function QBt(t,e,r,s){let a=`request is not a valid subpath for the "${r?"imports":"exports"}" resolution of ${(0,Da.fileURLToPath)(e)}`;throw new rJ(t,a,s&&(0,Da.fileURLToPath)(s))}function ox(t,e,r,s,a){throw typeof e=="object"&&e!==null?e=tx(e,null,""):e=`${e}`,new oxe((0,Da.fileURLToPath)(new URL(".",r)),t,e,s,a&&(0,Da.fileURLToPath)(a))}var uxe=/(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f Line truncated
`),r;l=t[++n]}else if(l===" "&&!s){a=!0;continue}else if(l==='"'){s=!s;continue}a?(r.push(l),a=!1):r[r.length-1]+=l}return s&&e.push(`invalid value for NODE_OPTIONS (unterminated string)
`),r}Mt();var[vo,Xc,jBt]=process.versions.node.split(".").map(t=>parseInt(t,10)),wxe=vo>19||vo===19&&Xc>=2||vo===18&&Xc>=13,Dgr=vo===20&&Xc<6||vo===19&&Xc>=3,Pgr=vo>19||vo===19&&Xc>=6,xgr=vo>=21||vo===20&&Xc>=10||vo===18&&Xc>=19,kgr=vo>=21||vo===20&&Xc>=10||vo===18&&Xc>=20,Rgr=vo>=22,Tgr=vo===26&&Xc<1||vo===25&&Xc>=7||vo===24&&Xc===15||vo===22&&(Xc>22||Xc===22&&jBt>=3);function oJ(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send){let e=t.map(r=>me.fromPortablePath(Mo.resolveVirtual(r)));if(wxe)process.send({"watch:require":e});else for(let r of e)process.send({"watch:require":r})}}function cJ(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,s=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,l=/\/$/,f=/^\.{0,2}\//,h={name:null,reference:null},A=[],m=new Set;if(t.enableTopLevelFallback===!0&&A.push(h),e.compatibilityMode!==!1)for(let Ne of["react-scripts","gatsby"]){let Fe=t.packageRegistry.get(Ne);if(Fe)for(let xe of Fe.keys()){if(xe===null)throw new Error("Assertion failed: This reference shouldn't be null");A.push({name:Ne,reference:xe})}}let{ignorePattern:w,packageRegistry:B,packageLocatorsByLocations:D}=t;function I(Ne,Fe){return{fn:Ne,args:Fe,error:null,result:null}}function R(Ne){let Fe=process.stderr?.hasColors?.()??process.stdout.isTTY,xe=(ft,Me)=>`\x1B[${ft}m${Me}\x1B[0m`,He=Ne.error;console.error(He?xe("31;1",`\u2716 ${Ne.error?.message.replace(/\n.*/s,"")}`):xe("33;1","\u203C Resolution")),Ne.args.length>0&&console.error();for(let ft of Ne.args)console.error(` ${xe("37;1","In \u2190")} ${(0,aJ.inspect)(ft,{colors:Fe,compact:!0})}`);Ne.result&&(console.error(),console.error(` ${xe("37;1","Out \u2192")} ${(0,aJ.inspect)(Ne.result,{colors:Fe,compact:!0})}`));let Qe=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(Qe.length>0){console.error();for(let ft of Qe)console.error(` ${xe("38;5;244",ft)}`)}console.error()}function N(Ne,Fe){if(e.allowDebug===!1)return Fe;if(Number.isFinite(s)){if(s>=2)return(...xe)=>{let He=I(Ne,xe);try{return He.result=Fe(...xe)}catch(Qe){throw He.error=Qe}finally{R(He)}};if(s>=1)return(...xe)=>{try{return Fe(...xe)}catch(He){let Qe=I(Ne,xe);throw Qe.error=He,R(Qe),He}}}return Fe}function U(Ne){let Fe=d(Ne);if(!Fe)throw Gs("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Fe}function V(Ne){if(Ne.name===null)return!0;for(let Fe of t.dependencyTreeRoots)if(Fe.name===Ne.name&&Fe.reference===Ne.reference)return!0;return!1}let ee=new Set(["node","require",...Ixe("--conditions")]);function te(Ne,Fe=ee,xe){let He=Ee(Y.join(Ne,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(He===null)throw Gs("INTERNAL",`The locator that owns the "${Ne}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:Qe}=U(He),ft=Y.join(Qe,Or.manifest);if(!e.fakeFs.existsSync(ft))return null;let Me=JSON.parse(e.fakeFs.readFileSync(ft,"utf8"));if(Me.exports==null)return null;let x=Y.contains(Qe,Ne);if(x===null)throw Gs("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");x!=="."&&!f.test(x)&&(x=`./${x}`);try{let C=pxe({packageJSONUrl:(0,yE.pathToFileURL)(me.fromPortablePath(ft)),packageSubpath:x,exports:Me.exports,base:xe?(0,yE.pathToFileURL)(me.fromPortablePath(xe)):null,conditions:Fe});return me.toPortablePath((0,yE.fileURLToPath)(C))}catch(C){throw Gs("EXPORTS_RESOLUTION_FAILED",C.message,{unqualifiedPath:Xf(Ne),locator:He,pkgJson:Me,subpath:Xf(x),conditions:Fe},C.code)}}function ie(Ne,Fe,{extensions:xe}){let He;try{Fe.push(Ne),He=e.fakeFs.statSync(Ne)}catch{}if(He&&!He.isDirectory())return e.fakeFs.realpathSync(Ne);if(He&&He.isDirectory()){let Qe;try{Qe=JSON.parse(e.fakeFs.readFileSync(Y.join(Ne,Or.manifest),"utf8"))}catch{}let ft;if(Qe&&Qe.main&&(ft=Y.resolve(Ne,Qe.main)),ft&&ft!==Ne){let Me=ie(ft,Fe,{extensions:xe});if(Me!==null)return Me}}for(let Qe=0,ft=xe.length;Qe<ft;Qe++){let Me=`${Ne}${xe[Qe]}`;if(Fe.push(Me),e.fakeFs.existsSync(Me))return Me}if(He&&He.isDirectory())for(let Qe=0,ft=xe.length;Qe<ft;Qe++){let Me=Y.format({dir:Ne,name:"index",ext:xe[Qe]});if(Fe.push(Me),e.fakeFs.existsSync(Me))return Me}return null}function ae(Ne){let Fe=new ad.Module(Ne,null);return Fe.filename=Ne,Fe.paths=ad.Module._nodeModulePaths(Ne),Fe}function ge(Ne,Fe){return Fe.endsWith("/")&&(Fe=Y.join(Fe,"internal.js")),ad.Module._resolveFilename(me.fromPortablePath(Ne),ae(me.fromPortablePath(Fe)),!1,{plugnplay:!1})}function de(Ne){if(w===null)return!1;let Fe=Y.contains(t.basePath,Ne);return Fe===null?!1:!!w.test(Fe.replace(/\/$/,""))}let De={std:3,resolveVirtual:1,getAllLocators:1},we=h;function d({name:Ne,reference:Fe}){let xe=B.get(Ne);if(!xe)return null;let He=xe.get(Fe);return He||null}function be({name:Ne,reference:Fe}){let xe=[];for(let[He,Qe]of B)if(He!==null)for(let[ft,Me]of Qe)ft===nulLine truncated
Require request: "${He}"
Required by: ${Qe}
`,{request:He,issuer:Qe});return me.toPortablePath(x)}let ft,Me=Ne.match(a);if(Me){if(!Fe)throw Gs("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:He,issuer:Qe});let[,x,C]=Me,P=Ee(Fe);if(!P){let Le=ge(Ne,Fe);if(Le===!1)throw Gs("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree).
Require path: "${He}"
Required by: ${Qe}
`,{request:He,issuer:Qe});return me.toPortablePath(Le)}let F=U(P).packageDependencies.get(x),Z=null;if(F==null&&P.name!==null){let Le=t.fallbackExclusionList.get(P.name);if(!Le||!Le.has(P.reference)){for(let St=0,er=A.length;St<er;++St){let Ht=U(A[St]).packageDependencies.get(x);if(Ht!=null){r?Z=Ht:F=Ht;break}}if(t.enableTopLevelFallback&&F==null&&Z===null){let St=t.fallbackPool.get(x);St!=null&&(Z=St)}}}let X=null;if(F===null)if(V(P))X=Gs("MISSING_PEER_DEPENDENCY",`Your application tried to access ${x} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed.
Required package: ${x}${x!==He?` (via "${He}")`:""}
Required by: ${Qe}
`,{request:He,issuer:Qe,dependencyName:x});else{let Le=Ce(x,P);Le.every(pt=>V(pt))?X=Gs("MISSING_PEER_DEPENDENCY",`${P.name} tried to access ${x} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound.
Required package: ${x}${x!==He?` (via "${He}")`:""}
Required by: ${P.name}@${P.reference} (via ${Qe})
${Le.map(pt=>`Ancestor breaking the chain: ${pt.name}@${pt.reference}
`).join("")}
`,{request:He,issuer:Qe,issuerLocator:Object.assign({},P),dependencyName:x,brokenAncestors:Le}):X=Gs("MISSING_PEER_DEPENDENCY",`${P.name} tried to access ${x} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound.
Required package: ${x}${x!==He?` (via "${He}")`:""}
Required by: ${P.name}@${P.reference} (via ${Qe})
${Le.map(pt=>`Ancestor breaking the chain: ${pt.name}@${pt.reference}
`).join("")}
`,{request:He,issuer:Qe,issuerLocator:Object.assign({},P),dependencyName:x,brokenAncestors:Le})}else F===void 0&&(!xe&&(0,ad.isBuiltin)(Ne)?V(P)?X=Gs("UNDECLARED_DEPENDENCY",`Your application tried to access ${x}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${x} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound.
Required package: ${x}${x!==He?` (via "${He}")`:""}
Required by: ${Qe}
`,{request:He,issuer:Qe,dependencyName:x}):X=Gs("UNDECLARED_DEPENDENCY",`${P.name} tried to access ${x}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${x} isn't otherwise declared in ${P.name}'s dependencies, this makes the require call ambiguous and unsound.
Required package: ${x}${x!==He?` (via "${He}")`:""}
Required by: ${Qe}
`,{request:He,issuer:Qe,issuerLocator:Object.assign({},P),dependencyName:x}):V(P)?X=Gs("UNDECLARED_DEPENDENCY",`Your application tried to access ${x}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound.
Required package: ${x}${x!==He?` (via "${He}")`:""}
Required by: ${Qe}
`,{request:He,issuer:Qe,dependencyName:x}):X=Gs("UNDECLARED_DEPENDENCY",`${P.name} tried to access ${x}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.
Required package: ${x}${x!==He?` (via "${He}")`:""}
Required by: ${P.name}@${P.reference} (via ${Qe})
`,{request:He,issuer:Qe,issuerLocator:Object.assign({},P),dependencyName:x}));if(F==null){if(Z===null||X===null)throw X||new Error("Assertion failed: Expected an error to have been set");F=Z;let Le=X.message.replace(/\n.*/g,"");X.message=Le,!m.has(Le)&&s!==0&&(m.add(Le),process.emitWarning(X))}let re=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:x,reference:F},ce=U(re);if(!ce.packageLocation)throw Gs("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod.
Required package: ${re.name}@${re.reference}${re.name!==He?` (via "${He}")`:""}
Required by: ${P.name}@${P.reference} (via ${Qe})
`,{request:He,issuer:Qe,dependencyLocator:Object.assign({},re)});let ke=ce.packageLocation;C?ft=Y.join(ke,C):ft=ke}else if(Y.isAbsolute(Ne))ft=Y.normalize(Ne);else{if(!Fe)throw Gs("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:He,issuer:Qe});let x=Y.resolve(Fe);Fe.match(l)?ft=Y.normalize(Y.join(x,Ne)):ft=Y.normalize(Y.join(Y.dirname(x),Ne))}return Y.normalize(ft)}function Pe(Ne,Fe,xe=ee,He){if(n.test(Ne))return Fe;let Qe=te(Fe,xe,He);return Qe?Y.normalize(Qe):Fe}function Te(Ne,{extensions:Fe=Object.keys(ad.Module._extensions)}={}){let xe=[],He=ie(Ne,xe,{extensions:Fe});if(He)return oJ([He]),Y.normalize(He);{oJ(xe);let Qe=Xf(Ne),ft=Ee(Ne);if(ft){let{packageLocation:Me}=U(ft),x=!0;try{e.fakeFs.accessSync(Me)}catch(C){if(C?.code==="ENOENT")x=!1;else{let P=(C?.message??C??"empty exception thrown").replace(/^[A-Z]/,E=>E.toLowerCase());throw Gs("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${P}).
Missing package: ${ft.name}@${ft.reference}
Expected package location: ${Xf(Me)}
`,{unqualifiedPath:Qe,extensions:Fe})}}if(!x){let C=Me.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw Gs("QUALIFIED_PATH_RESOLUTION_FAILED",`${C}
Missing package: ${ft.name}@${ft.reference}
Expected package location: ${Xf(Me)}
`,{unqualifiedPath:Qe,extensions:Fe})}}throw Gs("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed.
Source path: ${Qe}
${xe.map(Me=>`Not found: ${Xf(Me)}
`).join("")}`,{unqualifiedPath:Qe,extensions:Fe})}}function ot(Ne,Fe,xe){if(!Fe)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let He=dxe({name:Ne,base:(0,yE.pathToFileURL)(me.fromPortablePath(Fe)),conditions:xe.conditions??ee,readFileSyncFn:he});if(He instanceof URL)return Te(me.toPortablePath((0,yE.fileURLToPath)(He)),{extensions:xe.extensions});if(He.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return j(He,Fe,xe)}function j(Ne,Fe,xe={}){try{if(Ne.startsWith("#"))return ot(Ne,Fe,xe);let{considerBuiltins:He,extensions:Qe,conditions:ft}=xe,Me=$(Ne,Fe,{considerBuiltins:He});if(Ne==="pnpapi")return Me;if(Me===null)return null;let x=()=>Fe!==null?de(Fe):!1,C=(!He||!(0,ad.isBuiltin)(Ne))&&!x()?Pe(Ne,Me,ft,Fe):Me;return Te(C,{extensions:Qe})}catch(He){throw Object.hasOwn(He,"pnpCode")&&Object.assign(He.data,{request:Xf(Ne),issuer:Fe&&Xf(Fe)}),He}}function rt(Ne){let Fe=Y.normalize(Ne),xe=Mo.resolveVirtual(Fe);return xe!==Fe?xe:null}return{VERSIONS:De,topLevel:we,getLocator:(Ne,Fe)=>Array.isArray(Fe)?{name:Fe[0],reference:Fe[1]}:{name:Ne,reference:Fe},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Ne=[];for(let[Fe,xe]of B)for(let He of xe.keys())Fe!==null&&He!==null&&Ne.push({name:Fe,reference:He});return Ne},getPackageInformation:Ne=>{let Fe=d(Ne);if(Fe===null)return null;let xe=me.fromPortablePath(Fe.packageLocation);return{...Fe,packageLocation:xe}},findPackageLocator:Ne=>Ee(me.toPortablePath(Ne)),resolveToUnqualified:N("resolveToUnqualified",(Ne,Fe,xe)=>{let He=Fe!==null?me.toPortablePath(Fe):null,Qe=$(me.toPortablePath(Ne),He,xe);return Qe===null?null:me.fromPortablePath(Qe)}),resolveUnqualified:N("resolveUnqualified",(Ne,Fe)=>me.fromPortablePath(Te(me.toPortablePath(Ne),Fe))),resolveRequest:N("resolveRequest",(Ne,Fe,xe)=>{let He=Fe!==null?me.toPortablePath(Fe):null,Qe=j(me.toPortablePath(Ne),He,xe);return Qe===null?null:me.fromPortablePath(Qe)}),resolveVirtual:N("resolveVirtual",Ne=>{let Fe=rt(me.toPortablePath(Ne));return Fe!==null?me.fromPortablePath(Fe):null})}}Mt();var Cxe=(t,e,r)=>{let s=ex(t),a=Jz(s,{basePath:e}),n=me.join(e,Or.pnpCjs);return cJ(a,{fakeFs:r,pnpapiResolution:n})};var uJ=st(vxe());sr();var cA={};lr(cA,{checkManifestCompatibility:()=>Sxe,extractBuildRequest:()=>XL,getExtractHint:()=>fJ,hasBindingGyp:()=>hJ});We();Mt();function Sxe(t){return G.isPackageCompatible(t,us.getArchitectureSet())}function XL(t,e,r,{configuration:s}){let a=[];for(let n of["preinstall","install","postinstall"])e.manifest.scripts.has(n)&&a.push({type:0,script:n});return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&a.push({type:1,script:"node-gyp rebuild"}),a.length===0?null:t.linkType!=="HARD"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${G.prettyLocator(s,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:n=>n.reportInfoOnce(5,`${G.prettyLocator(s,t)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!s.get("enableScripts")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${G.prettyLocator(s,t)} lists build scripts, but all build scripts have been disabled.`)}:Sxe(t)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${G.prettyLocator(s,t)} The ${us.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var qBt=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function fJ(t){return t.packageFs.getExtractHint({relevantExtensions:qBt})}function hJ(t){let e=Y.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var lx={};lr(lx,{getUnpluggedPath:()=>cx});We();Mt();function cx(t,{configuration:e}){return Y.resolve(e.get("pnpUnpluggedFolder"),G.slugifyLocator(t))}var VBt=new Set([G.makeIdent(null,"open").identHash,G.makeIdent(null,"opn").identHash]),Dg=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let s=Pg(r.project).cjs;if(!fe.existsSync(s))throw new ht(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=Ye.getFactoryWithDefault(this.pnpCache,s,()=>Ye.dynamicRequire(s,{cachingStrategy:Ye.CachingStrategy.FsTime})),n={name:G.stringifyIdent(e),reference:e.reference},l=a.getPackageInformation(n);if(!l)throw new ht(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return me.toPortablePath(l.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return nullLine truncated
`,n+=`# cause your node_modules installation to become invalidated.
`,n+=`
`,n+=`__metadata:
`,n+=` version: ${_xe}
`,n+=` nmMode: ${s.value}
`;let l=Array.from(e.keys()).sort(),f=G.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let m of l){let w=e.get(m);n+=`
`,n+=`${JSON.stringify(m)}:
`,n+=` locations:
`;for(let B of w.locations){let D=Y.contains(t.cwd,B);if(D===null)throw new Error(`Assertion failed: Expected the path to be within the project (${B})`);n+=` - ${JSON.stringify(D)}
`}if(w.aliases.length>0){n+=` aliases:
`;for(let B of w.aliases)n+=` - ${JSON.stringify(B)}
`}if(m===f&&r.size>0){n+=` bin:
`;for(let[B,D]of r){let I=Y.contains(t.cwd,B);if(I===null)throw new Error(`Assertion failed: Expected the path to be within the project (${B})`);n+=` ${JSON.stringify(I)}:
`;for(let[R,N]of D){let U=Y.relative(Y.join(B,Vi),N);n+=` ${JSON.stringify(R)}: ${JSON.stringify(U)}
`}}}}let h=t.cwd,A=Y.join(h,Vi,BJ);try{a&&await fe.removePromise(A),await fe.changeFilePromise(A,n,{automaticNewlines:!0})}finally{dvt(t)}}async function yvt(t){let e=t.cwd,r=Y.join(e,Vi,BJ);try{let s=await fe.statPromise(r);return`${s.mtimeMs}:${s.size}`}catch{return null}}async function Mxe(t,{unrollAliases:e=!1}={}){let r=t.cwd,s=Y.join(r,Vi,BJ),a;try{a=await fe.statPromise(s)}catch{}if(!a)return null;let n=Fs(await fe.readFilePromise(s,"utf8"));if(n.__metadata.version>_xe)return null;let l=n.__metadata.nmMode||"classic",f=new Map,h=new Map;delete n.__metadata;for(let[A,m]of Object.entries(n)){let w=m.locations.map(D=>Y.join(r,D)),B=m.bin;if(B)for(let[D,I]of Object.entries(B)){let R=Y.join(r,me.toPortablePath(D)),N=Ye.getMapWithDefault(h,R);for(let[U,V]of Object.entries(I))N.set(U,me.toPortablePath([R,Vi,V].join(Y.sep)))}if(f.set(A,{target:Rt.dot,linkType:"HARD",locations:w,aliases:m.aliases||[]}),e&&m.aliases)for(let D of m.aliases){let{scope:I,name:R}=G.parseLocator(A),N=G.makeLocator(G.makeIdent(I,R),D),U=G.stringifyLocator(N);f.set(U,{target:Rt.dot,linkType:"HARD",locations:w,aliases:[]})}}return{locatorMap:f,binSymlinks:h,locationTree:Uxe(f,{skipPrefix:t.cwd}),nmMode:l,mtimeMs:a.mtimeMs}}var a2=async(t,e)=>{if(t.split(Y.sep).indexOf(Vi)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{let r;if(!e.innerLoop&&(r=await fe.lstatPromise(t),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!e.isWorkspaceDir)){await fe.unlinkPromise(t);return}let s=await fe.readdirPromise(t,{withFileTypes:!0});for(let n of s){let l=Y.join(t,n.name);n.isDirectory()?(n.name!==Vi||e&&e.innerLoop)&&await a2(l,{innerLoop:!0,contentsOnly:!1}):await fe.unlinkPromise(l)}let a=!e.innerLoop&&e.isWorkspaceDir&&r?.isSymbolicLink();!e.contentsOnly&&!a&&await fe.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},Fxe=4,r_=(t,{skipPrefix:e})=>{let r=Y.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let s=r.split(Y.sep).filter(h=>h!==""),a=s.indexOf(Vi),n=s.slice(0,a).join(Y.sep),l=Y.join(e,n),f=s.slice(a);return{locationRoot:l,segments:f}},Uxe=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let s=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&Y.contains(e,n.target)!==null){let f=Ye.getFactoryWithDefault(r,n.target,s);f.locator=a,f.linkType=n.linkType}for(let l of n.locations){let{locationRoot:f,segments:h}=r_(l,{skipPrefix:e}),A=Ye.getFactoryWithDefault(r,f,s);for(let m=0;m<h.length;++m){let w=h[m];if(w!=="."){let B=Ye.getFactoryWithDefault(A.children,w,s);A.children.set(w,B),A=B}m===h.length-1&&(A.locator=a,A.linkType=n.linkType)}}}return r},SJ=async(t,e,r)=>{if(process.platform==="win32"&&r==="junctions"){let s;try{s=await fe.lstatPromise(t)}catch{}if(!s||s.isDirectory()){await fe.symlinkPromise(t,e,"junction");return}}await fe.symlinkPromise(Y.relative(Y.dirname(e),t),e)};async function Hxe(t,e,r){let s=Y.join(t,`${CJ.default.randomBytes(16).toString("hex")}.tmp`);try{await fe.writeFilePromise(s,r);try{await fe.linkPromise(s,e)}catch{}}finally{await fe.unlinkPromise(s)}}async function Evt({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:s,baseFs:a,nmMode:n}){if(r.kind==="file"){if(n.value==="hardlinks-global"&&s&&r.digest){let f=Y.join(s,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),h;try{let A=await fe.statPromise(f);if(A&&(!r.mtimeMs||A.mtimeMs>r.mtimeMs||A.mtimeMs<r.mtimeMs-pvt))if(await si.checksumFile(f,{baseFs:fe,algorithm:"sha1"})!==r.digest){let w=Y.join(s,`${CJ.default.randomBytes(16).toString("hex")}.tmp`);await fe.renamePromise(f,w);let B=await a.readFilePromise(t);await fe.writeFilePromise(w,B);try{await fe.linkPromise(w,f),r.mtimeMs=new Date().getTime(),await fe.unlinkPromise(w)}catch{}}else r.mtimeMs||(r.mtimeMs=Math.ceil(A.mtimeMs));await fe.linkPromise(f,e),h=!0}catch{h=!1}if(!h){let A=await a.readFilePromise(t);await Hxe(s,f,A),r.mtimeMs=new Date().getTime();try{await fe.linkPromise(f,e)}catch(m){m&&m.code&&m.code=="EXDEV"&&(n.value="hardlinks-local",await a.copyFilePromise(t,e))}}}else await a.copyFilePromise(t,e);let l=r.mode&511;l!==420&&await fe.chmodPromise(e,l)}}var Ivt=async(t,e,{baseFs:r,globalHardlinksStore:s,nmMode:a,windowsLinkType:n,packageChecksum:l})=>{await fe.mkdirPromise(t,{recursive:!0});let f=async(m=Rt.dot)=>{let w=Y.join(e,m),B=await r.readdirPromise(w,{withFileTypes:!0}),D=new Map;for(let I of B){let R=Y.join(m,I.name),N,U=Y.join(w,I.name);if(I.isFile()){if(N={kind:"file",mode:(await r.lstatPromise(U)).mode},a.value==="hardlinks-global"){let V=await si.checksumFile(U,{baseFs:r,algorithm:"sha1"});N.digest=V}}else if(I.isDirectory())N={kind:"directory"};else if(I.isSymbolicLink())N={kind:"symlink",symlinkTo:await r.readlinkPromise(U)};else throw new Error(`Unsupported file type (file: ${U}, mode: 0o${await r.statSync(U).mode.toString(8).padStart(6,"0")})`);if(D. Line truncated
`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";if(!process.stdin.isTTY)throw new Zt(33,"The registry requires additional authentication, but Yarn is not running in an interactive terminal");let{otp:s}=await(0,kJ.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(`
`),s}function s_(t){if(t.originalError?.name!=="HTTPError")return!1;try{return(t.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function u2(t){return{"npm-otp":t}}async function Yvt(t,{configuration:e,ident:r}){let s=null;if(process.env.GITLAB_CI)s=process.env.NPM_ID_TOKEN||null;else if(process.env.CIRCLECI)s=process.env.NPM_ID_TOKEN||null;else if(process.env.GITHUB_ACTIONS){if(!(process.env.ACTIONS_ID_TOKEN_REQUEST_URL&&process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN))return null;let a=`npm:${new URL(t).host.replace("registry.yarnpkg.com","registry.npmjs.org").replace("yarn.npmjs.org","registry.npmjs.org")}`,n=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);n.searchParams.append("audience",a),s=(await Sn.get(n.href,{configuration:e,jsonResponse:!0,headers:{Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).value}if(!s)return null;try{return(await Sn.post(`${t}/-/npm/v1/oidc/token/exchange/package${Ax(r)}`,null,{configuration:e,jsonResponse:!0,headers:{Authorization:`Bearer ${s}`}})).token||null}catch{}return null}var dx=class{supports(e,r){if(!e.reference.startsWith(Ci))return!1;let{selector:s,params:a}=G.parseRange(e.reference);return!(!Zxe.default.valid(s)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,l]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:l}}async fetchFromNetwork(e,r){let{params:s}=G.parseRange(e.reference);if(s===null||typeof s.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await wE(s.__archiveUrl,{customErrorMessage:IE,configuration:r.project.configuration,ident:e});return await Hs.convertToZip(a,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};We();var gx=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Ci)||!G.tryParseDescriptor(e.range.slice(Ci.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,s){return e}getResolutionDependencies(e,r){let s=r.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Ci.length),!0));return r.resolver.getResolutionDependencies(s,r)}async getCandidates(e,r,s){let a=s.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Ci.length),!0));return await s.resolver.getCandidates(a,r,s)}async getSatisfying(e,r,s,a){let n=a.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Ci.length),!0));return a.resolver.getSatisfying(n,r,s,a)}resolve(e,r){throw new Error("Unreachable")}};We();We();var Xxe=st(Di());var cd=class t{supports(e,r){if(!e.reference.startsWith(Ci))return!1;let s=new URL(e.reference);return!(!Xxe.default.valid(s.pathname)||s.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,l]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:l}}async fetchFromNetwork(e,r){let s;try{s=await wE(t.getLocatorUrl(e),{customErrorMessage:IE,configuration:r.project.configuration,ident:e})}catch{s=await wE(t.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:IE,configuration:r.project.configuration,ident:e})}return await Hs.convertToZip(s,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:s}){let a=c2(e.scope,{configuration:s}),n=t.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=zr.clean(e.reference.slice(Ci.length));if(r===null)throw new Zt(10,"The npm semver resolver got selected, but the version isn't semver");let s=encodeURIComponent(e.name),a=encodeURIComponent(r);return`${Ax(e)}/-/${s}-${a}.tgz`}};We();We();We();var a_=st(Di());var o_=G.makeIdent(null,"node-gyp"),Kvt=/\b(node-gyp|prebuild-install)\b/;function $xe(t,e){let r=a=>Ye.mapAndFilter(e,n=>{try{let l=new zr.SemVer(n);if(a.test(l))return l}catch{}return Ye.mapAndFilter.skip}),sLine truncated
https://docs.gitlab.com/ee/ci/secrets/id_token_authentication.html`);r={_type:n5t,subject:t,predicateType:s5t,predicate:{buildType:`${l5t}/${u5t}`,builder:{id:`${Ot.CI_PROJECT_URL}/-/runners/${Ot.CI_RUNNER_ID}`},invocation:{configSource:{uri:`git+${Ot.CI_PROJECT_URL}`,digest:{sha1:Ot.CI_COMMIT_SHA},entryPoint:Ot.CI_JOB_NAME},parameters:{CI:Ot.CI,CI_API_GRAPHQL_URL:Ot.CI_API_GRAPHQL_URL,CI_API_V4_URL:Ot.CI_API_V4_URL,CI_BUILD_BEFORE_SHA:Ot.CI_BUILD_BEFORE_SHA,CI_BUILD_ID:Ot.CI_BUILD_ID,CI_BUILD_NAME:Ot.CI_BUILD_NAME,CI_BUILD_REF:Ot.CI_BUILD_REF,CI_BUILD_REF_NAME:Ot.CI_BUILD_REF_NAME,CI_BUILD_REF_SLUG:Ot.CI_BUILD_REF_SLUG,CI_BUILD_STAGE:Ot.CI_BUILD_STAGE,CI_COMMIT_BEFORE_SHA:Ot.CI_COMMIT_BEFORE_SHA,CI_COMMIT_BRANCH:Ot.CI_COMMIT_BRANCH,CI_COMMIT_REF_NAME:Ot.CI_COMMIT_REF_NAME,CI_COMMIT_REF_PROTECTED:Ot.CI_COMMIT_REF_PROTECTED,CI_COMMIT_REF_SLUG:Ot.CI_COMMIT_REF_SLUG,CI_COMMIT_SHA:Ot.CI_COMMIT_SHA,CI_COMMIT_SHORT_SHA:Ot.CI_COMMIT_SHORT_SHA,CI_COMMIT_TIMESTAMP:Ot.CI_COMMIT_TIMESTAMP,CI_COMMIT_TITLE:Ot.CI_COMMIT_TITLE,CI_CONFIG_PATH:Ot.CI_CONFIG_PATH,CI_DEFAULT_BRANCH:Ot.CI_DEFAULT_BRANCH,CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX:Ot.CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX:Ot.CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_SERVER:Ot.CI_DEPENDENCY_PROXY_SERVER,CI_DEPENDENCY_PROXY_USER:Ot.CI_DEPENDENCY_PROXY_USER,CI_JOB_ID:Ot.CI_JOB_ID,CI_JOB_NAME:Ot.CI_JOB_NAME,CI_JOB_NAME_SLUG:Ot.CI_JOB_NAME_SLUG,CI_JOB_STAGE:Ot.CI_JOB_STAGE,CI_JOB_STARTED_AT:Ot.CI_JOB_STARTED_AT,CI_JOB_URL:Ot.CI_JOB_URL,CI_NODE_TOTAL:Ot.CI_NODE_TOTAL,CI_PAGES_DOMAIN:Ot.CI_PAGES_DOMAIN,CI_PAGES_URL:Ot.CI_PAGES_URL,CI_PIPELINE_CREATED_AT:Ot.CI_PIPELINE_CREATED_AT,CI_PIPELINE_ID:Ot.CI_PIPELINE_ID,CI_PIPELINE_IID:Ot.CI_PIPELINE_IID,CI_PIPELINE_SOURCE:Ot.CI_PIPELINE_SOURCE,CI_PIPELINE_URL:Ot.CI_PIPELINE_URL,CI_PROJECT_CLASSIFICATION_LABEL:Ot.CI_PROJECT_CLASSIFICATION_LABEL,CI_PROJECT_DESCRIPTION:Ot.CI_PROJECT_DESCRIPTION,CI_PROJECT_ID:Ot.CI_PROJECT_ID,CI_PROJECT_NAME:Ot.CI_PROJECT_NAME,CI_PROJECT_NAMESPACE:Ot.CI_PROJECT_NAMESPACE,CI_PROJECT_NAMESPACE_ID:Ot.CI_PROJECT_NAMESPACE_ID,CI_PROJECT_PATH:Ot.CI_PROJECT_PATH,CI_PROJECT_PATH_SLUG:Ot.CI_PROJECT_PATH_SLUG,CI_PROJECT_REPOSITORY_LANGUAGES:Ot.CI_PROJECT_REPOSITORY_LANGUAGES,CI_PROJECT_ROOT_NAMESPACE:Ot.CI_PROJECT_ROOT_NAMESPACE,CI_PROJECT_TITLE:Ot.CI_PROJECT_TITLE,CI_PROJECT_URL:Ot.CI_PROJECT_URL,CI_PROJECT_VISIBILITY:Ot.CI_PROJECT_VISIBILITY,CI_REGISTRY:Ot.CI_REGISTRY,CI_REGISTRY_IMAGE:Ot.CI_REGISTRY_IMAGE,CI_REGISTRY_USER:Ot.CI_REGISTRY_USER,CI_RUNNER_DESCRIPTION:Ot.CI_RUNNER_DESCRIPTION,CI_RUNNER_ID:Ot.CI_RUNNER_ID,CI_RUNNER_TAGS:Ot.CI_RUNNER_TAGS,CI_SERVER_HOST:Ot.CI_SERVER_HOST,CI_SERVER_NAME:Ot.CI_SERVER_NAME,CI_SERVER_PORT:Ot.CI_SERVER_PORT,CI_SERVER_PROTOCOL:Ot.CI_SERVER_PROTOCOL,CI_SERVER_REVISION:Ot.CI_SERVER_REVISION,CI_SERVER_SHELL_SSH_HOST:Ot.CI_SERVER_SHELL_SSH_HOST,CI_SERVER_SHELL_SSH_PORT:Ot.CI_SERVER_SHELL_SSH_PORT,CI_SERVER_URL:Ot.CI_SERVER_URL,CI_SERVER_VERSION:Ot.CI_SERVER_VERSION,CI_SERVER_VERSION_MAJOR:Ot.CI_SERVER_VERSION_MAJOR,CI_SERVER_VERSION_MINOR:Ot.CI_SERVER_VERSION_MINOR,CI_SERVER_VERSION_PATCH:Ot.CI_SERVER_VERSION_PATCH,CI_TEMPLATE_REGISTRY_HOST:Ot.CI_TEMPLATE_REGISTRY_HOST,GITLAB_CI:Ot.GITLAB_CI,GITLAB_FEATURES:Ot.GITLAB_FEATURES,GITLAB_USER_ID:Ot.GITLAB_USER_ID,GITLAB_USER_LOGIN:Ot.GITLAB_USER_LOGIN,RUNNER_GENERATE_ARTIFACTS_METADATA:Ot.RUNNER_GENERATE_ARTIFACTS_METADATA},environment:{name:Ot.CI_RUNNER_DESCRIPTION,architecture:Ot.CI_RUNNER_EXECUTABLE_ARCH,server:Ot.CI_SERVER_URL,project:Ot.CI_PROJECT_PATH,job:{id:Ot.CI_JOB_ID},pipeline:{id:Ot.CI_PIPELINE_ID,ref:Ot.CI_CONFIG_PATH}}},metadata:{buildInvocationId:`${Ot.CI_JOB_URL}`,completeness:{parameters:!0,environment:!0,materials:!1},reproducible:!1},materials:[{uri:`git+${Ot.CI_PROJECT_URL}`,digest:{sha1:Ot.CI_COMMIT_SHA}}]}}}else throw new Zt(91,"Provenance generation is only supported in GitHub Actions and GitLab CI");return HUe.attest(Buffer.from(JSON.stringify(r)),r5t,e)};async function f5t(t,e,{access:r,tag:s,registry:a,gitHead:n,provenance:l}){let f=t.manifest.name,h=t.manifest.version,A=G.stringifyIdent(f),m=GUe.default.fromData(e,{algorithms:["sha1","sha512"]}),w=r??qUe(t,f),B=await VUe(t),D=await fA.genPackageManifest(t),I=`${A}-${h}.tgz`,R=new URL(`${ku(a)}/${A}/-/${I}`),N={[I]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}};if(l){let U={name:`pkg:npm/${A.replace(/^@/,"%40")}@${h}`,digest:{sha512:m.sha512[0].hexDigest()}},V=await jUe([U]),ee=JSON.stringify(V);N[`${A}-${h}.sigstore`]={content_type:V.mediaType,data:ee,length:ee.length}}return{_id:A,_attachments:N,name:A,access:w,"dist-tags":{[s]:h},versions:{[h]:{...D,_id:`${A}@${h}`,name:A,version:h,gitHead:n,dist:{shasum:m.sha1[0].hexDigest(),integrity:m.sha512[0].toString(),tarball:R.toString()}}},readme:B}}async function h5t(t){try{let{stdout:e}=await un.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return} Line truncated
`;try{a=await fe.readFilePromise(e,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var Aie={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},WUe={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},YUe={npmMinimalAgeGate:{description:"Minimum age of a package version according to the publish date on the npm registry to be considered for installation",type:"DURATION",unit:"m",default:"1d"}},A5t={npmPreapprovedPackages:{description:"Array of package descriptors or package name glob patterns to exclude from the minimum release age check",type:"STRING",isArray:!0,default:[]}},p5t={configuration:{...Aie,...WUe,...YUe,...A5t,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...Aie,...WUe,...YUe}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:ku,valueDefinition:{description:"",type:"SHAPE",properties:{...Aie}}}},fetchers:[dx,cd],resolvers:[gx,mx,yx]},d5t=p5t;var vie={};lr(vie,{NpmAuditCommand:()=>VB,NpmInfoCommand:()=>WB,NpmLoginCommand:()=>YB,NpmLogoutCommand:()=>zB,NpmPublishCommand:()=>JB,NpmStageApproveCommand:()=>ZB,NpmStageListCommand:()=>XB,NpmStageRejectCommand:()=>$B,NpmTagAddCommand:()=>tv,NpmTagListCommand:()=>ev,NpmTagRemoveCommand:()=>rv,NpmWhoamiCommand:()=>nv,default:()=>P5t,npmAuditTypes:()=>AR,npmAuditUtils:()=>D8});We();We();sr();var Eie=st(ma());ga();var AR={};lr(AR,{Environment:()=>fR,Severity:()=>hR});var fR=(s=>(s.All="all",s.Production="production",s.Development="development",s))(fR||{}),hR=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(hR||{});var D8={};lr(D8,{allSeverities:()=>qB,getPackages:()=>yie,getReportTree:()=>gie,getSeverityInclusions:()=>die,getTopLevelDependencies:()=>mie});We();var KUe=st(Di());var qB=["info","low","moderate","high","critical"];function die(t){if(typeof t>"u")return new Set(qB);let e=qB.indexOf(t),r=qB.slice(e);return new Set(r)}function gie(t){let e={},r={children:e};for(let[s,a]of Ye.sortMap(Object.entries(t),n=>n[0]))for(let n of Ye.sortMap(a,l=>`${l.id}`))e[`${s}/${n.id}`]={value:pe.tuple(pe.Type.IDENT,G.parseIdent(s)),children:{ID:typeof n.id<"u"&&{label:"ID",value:pe.tuple(pe.Type.ID,n.id)},Issue:{label:"Issue",value:pe.tuple(pe.Type.NO_HINT,n.title)},URL:typeof n.url<"u"&&{label:"URL",value:pe.tuple(pe.Type.URL,n.url)},Severity:{label:"Severity",value:pe.tuple(pe.Type.NO_HINT,n.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:pe.tuple(pe.Type.RANGE,n.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...n.versions].sort(KUe.default.compare).map(l=>({value:pe.tuple(pe.Type.REFERENCE,l)}))},Dependents:{label:"Dependents",children:Ye.sortMap(n.dependents,l=>G.stringifyLocator(l)).map(l=>({value:pe.tuple(pe.Type.LOCATOR,l)}))}}};return r}function mie(t,e,{all:r,environment:s}){let a=[],n=r?t.workspaces:[e],l=["all","production"].includes(s),f=["all","development"].includes(s);for(let h of n)for(let A of h.anchoredPackage.dependencies.values())(h.manifest.devDependencies.has(A.identHash)?!f:!l)||a.push({workspace:h,dependency:A});return a}function yie(t,e,{recursive:r}){let s=new Map,a=new Set,n=[],l=t.configuration.makeResolver(),f={project:t,resolver:l},h=(A,m)=>{let w=t.storedResolutions.get(m.descriptorHash);if(typeof w>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(w))a.add(w);else return;let B=t.storedPackages.get(w);if(typeof B>"u")throw new Error("Assertion failed: The package should have been registered");let D=G.ensureDevirtualizedDescriptor(m);if(l.supportsDescriptor(D,f)){let R=l.getResolutionDependencies(D,f);if(Object.keys(R).length>0)for(let N of Object.values(R))h(A,N)}if(G.ensureDevirtualizedLocator(B).reference.startsWith("npm:")&&B.version!==null){let R=G.stringifyIdent(B),N=Ye.getMapWithDefault(s,R);Ye.getArrayWithDefault(N,B.version).push(A)}if(r)for(let R of B.dependencies.values())n.push([B,R])};for(let{workspace:A,dependency:m}of e)n.push([A.anchoredLocator,m]);for(;n.length>0;){let[A,m]=n.shift();h(A,m)}return s}var VB=class extends mt{constructor(){super(...arguments);this.all=ye.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=ye.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environm Line truncated
This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths).
For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`.
Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${qB.map(r=>`\`${r}\``).join(", ")}.
If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages.
If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option.
If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option.
To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why package\` to get more information as to who depends on them.
`,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd);if(!a)throw new Dr(s.cwd,this.context.cwd);await s.restoreInstallState();let n=mie(s,a,{all:this.all,environment:this.environment}),l=yie(s,n,{recursive:this.recursive}),f=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes])),h=Object.create(null);for(let[N,U]of l)f.some(V=>Eie.default.isMatch(N,V))||(h[N]=[...U.keys()]);let A=_n.getAuditRegistry({configuration:r}),m,w=await tA.start({configuration:r,stdout:this.context.stdout},async()=>{let N=Jr.post("/-/npm/v1/security/advisories/bulk",h,{authType:Jr.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:A}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(h),async([ee,te])=>{let ie=await Jr.getPackageMetadata(G.parseIdent(ee),{project:s});return Ye.mapAndFilter(te,ae=>{let{deprecated:ge}=ie.versions[ae];return ge?[ee,ae,ge]:Ye.mapAndFilter.skip})})),V=await N;for(let[ee,te,ie]of U.flat(1))Object.hasOwn(V,ee)&&V[ee].some(ae=>zr.satisfiesWithPrereleases(te,ae.vulnerable_versions))||(V[ee]??=[],V[ee].push({id:`${ee} (deprecation)`,title:(typeof ie=="string"?ie:"").trim()||"This package has been deprecated.",severity:"moderate",vulnerable_versions:te}));m=V});if(w.hasErrors())return w.exitCode();let B=die(this.severity),D=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores])),I=Object.create(null);for(let[N,U]of Object.entries(m)){let V=U.filter(ee=>!Eie.default.isMatch(`${ee.id}`,D)&&B.has(ee.severity));V.length>0&&(I[N]=V.map(ee=>{let te=l.get(N);if(typeof te>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let ie=[...te.keys()].filter(ge=>zr.satisfiesWithPrereleases(ge,ee.vulnerable_versions)),ae=new Map;for(let ge of ie)for(let de of te.get(ge))ae.set(de.locatorHash,de);return{...ee,versions:ie,dependents:[...ae.values()]}}))}let R=Object.keys(I).length>0;return R?(bs.emitTree(gie(I),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Wt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async N=>{N.reportInfo(1,"No audit suggestions")}),R?1:0)}};We();We();Mt();sr();var Iie=st(Di()),wie=Ae("util"),WB=class extends mt{constructor(){super(...arguments);this.fields=ye.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=ye.Rest()}static{this.paths=[["npm","info"]]}static{this.usage=At.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@<range>` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm in Line truncated
`),this.context.stdout.write(`${(0,wie.inspect)(h,{depth:1/0,colors:!0,compact:!1})}
`);return f.exitCode()}};function Cie(t){if(Array.isArray(t)){let e=[];for(let r of t)r=Cie(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let s=Cie(t[r]);s&&(e[r]=s)}return e}else return t||null}We();We();sr();var Bie=st(gD()),YB=class extends mt{constructor(){super(...arguments);this.scope=ye.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=ye.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=ye.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"});this.webLogin=ye.Boolean("--web-login",{description:"Enable web login"})}static{this.paths=[["npm","login"]]}static{this.usage=At.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),s=await P8({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Wt.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let l=await I5t({registry:s,configuration:r,report:n,webLogin:this.webLogin,stdin:this.context.stdin,stdout:this.context.stdout});return await C5t(s,l,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};async function P8({scope:t,publish:e,configuration:r,cwd:s}){return t&&e?_n.getScopeRegistry(t,{configuration:r,type:_n.RegistryType.PUBLISH_REGISTRY}):t?_n.getScopeRegistry(t,{configuration:r}):e?_n.getPublishRegistry((await TC(r,s)).manifest,{configuration:r}):_n.getDefaultRegistry({configuration:r})}async function g5t(t,e){let r;try{r=await Jr.post("/-/v1/login",null,{configuration:e,registry:t,authType:Jr.AuthType.NO_AUTH,jsonResponse:!0,headers:{"npm-auth-type":"web"}})}catch{return null}return r}async function m5t(t,e){let r=await Sn.request(t,null,{configuration:e,jsonResponse:!0});if(r.statusCode===202){let s=r.headers["retry-after"]??"1";return{type:"waiting",sleep:parseInt(s,10)}}return r.statusCode===200?{type:"success",token:r.body.token}:null}async function y5t({registry:t,configuration:e,report:r}){let s=await g5t(t,e);if(!s)return null;if(us.openUrl){r.reportInfo(0,"Starting the web login process..."),r.reportSeparator();let{openNow:a}=await(0,Bie.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open your browser now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});r.reportSeparator(),(!a||!await us.openUrl(s.loginUrl))&&(r.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice:"),r.reportWarning(0,pe.pretty(e,s.loginUrl,pe.Type.URL)),r.reportSeparator())}for(;;){let a=await m5t(s.doneUrl,e);if(a===null)return null;if(a.type==="waiting")await new Promise(n=>setTimeout(n,a.sleep*1e3));else return a.token}}var E5t=["https://registry.yarnpkg.com","https://registry.npmjs.org"];async function I5t(t){if(t.webLogin??E5t.includes(t.registry)){let e=await y5t(t);if(e!==null)return e}return await w5t(t)}async function w5t({registry:t,configuration:e,report:r,stdin:s,stdout:a}){let n=await B5t({configuration:e,registry:t,report:r,stdin:s,stdout:a}),l=`/-/user/org.couchdb.user:${encodeURIComponent(n.name)}`,f={_id:`org.couchdb.user:${n.name}`,name:n.name,password:n.password,type:"user",roles:[],date:new Date().toISOString()},h={attemptedAs:n.name,configuration:e,registry:t,jsonResponse:!0,authType:Jr.AuthType.NO_AUTH};try{return(await Jr.put(l,f,h)).token}catch(D){if(!(D.originalError?.name==="HTTPError"&&D.originalError?.response.statusCode===409))throw D}let A={...h,authType:Jr.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${n.name}:${n.password}`).toString("base64")}`}},m=await Jr.get(l,A);for(let[D,I]of Object.entries(m))(!f[D]||D==="roles")&&(f[D]=I);let w=`${l}/-rev/${f._rev}`;return(await Jr.put(w,f,A)).token}async function C5t(t,e,{alwaysAuth:r,scope:s}){let a=l=>f=>{let h=Ye.isIndexableObject(f)?f:{},A=h[l],m=Ye.isIndexableObject(A)?A:{};return{...h,[l]:{...m,...r!==void Line truncated
This command will list all staged package versions awaiting approval on the npm registry.
If a package name is provided, only staged versions of that package will be listed.
`,examples:[["List all staged packages","yarn npm stage list"],["List staged versions of a specific package","yarn npm stage list my-pkg"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),s=_n.getDefaultRegistry({configuration:r,type:_n.RegistryType.PUBLISH_REGISTRY}),a=await b5t(r,s,this.package??void 0);if(await Wt.start({configuration:r,stdout:this.context.stdout,json:this.json,includeFooter:!1,includePrefix:!1},async l=>{a.length>0?(l.reportInfo(0,`The following packages are awaiting approval. Use ${pe.pretty(r,"yarn npm stage approve <stageId>",pe.Type.CODE)} to approve them.`),l.reportSeparator()):this.package?l.reportInfo(0,`No staged versions found for package ${this.package}`):l.reportInfo(0,"No staged packages found")}),a.length===0)return;let n={children:a.map(l=>{let f=G.parseIdent(l.packageName);return{value:pe.tuple(pe.Type.RESOLUTION,{descriptor:G.makeDescriptor(f,l.tag),locator:G.makeLocator(f,l.version)}),children:{ID:{label:"ID",value:pe.tuple(pe.Type.CODE,l.id)},Staged:{label:"Staged on",value:pe.tuple(pe.Type.NO_HINT,l.createdAt)}}}})};bs.emitTree(n,{configuration:r,json:this.json,stdout:this.context.stdout,separators:1})}};async function b5t(t,e,r){let s=[],a=0,n=100;for(;;){let l={page:String(a),perPage:String(n)};r&&(l.package=r);let f=new URLSearchParams(l).toString(),h=await Jr.get(`/-/stage?${f}`,{configuration:t,registry:e,jsonResponse:!0,authType:Jr.AuthType.ALWAYS_AUTH});if(s.push(...h.items),s.length>=h.total||h.items.length<n)break;a++}return s}We();sr();ga();var $B=class extends mt{constructor(){super(...arguments);this.stageId=ye.String({validator:P0(_h(),[xp(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i)])});this.otp=ye.String("--otp",{description:"The OTP token to use with the command"})}static{this.paths=[["npm","stage","reject"]]}static{this.usage=At.Usage({category:"Npm-related commands",description:"reject a staged package version",details:"\n This command will reject a staged package version, permanently removing it from the registry staging area. This operation requires 2FA and will prompt for an OTP token if one is not provided via the `--otp` flag.\n ",examples:[["Reject a staged package","yarn npm stage reject 1de6f3db-2ed9-4d72-b3dd-8f0e2b474a2f"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),s=_n.getDefaultRegistry({configuration:r,type:_n.RegistryType.PUBLISH_REGISTRY});return(await Wt.start({configuration:r,stdout:this.context.stdout},async n=>{let l=pe.pretty(r,this.stageId,pe.Type.CODE);n.reportInfo(0,`Rejecting staged package ${pe.pretty(r,l,pe.Type.CODE)}...`),n.reportSeparator(),await Jr.del(`/-/stage/${this.stageId}`,{configuration:r,registry:s,otp:this.otp,authType:Jr.AuthType.ALWAYS_AUTH}),n.reportInfo(0,`Staged package ${pe.pretty(r,l,pe.Type.CODE)} has been rejected.`)})).exitCode()}};We();sr();var JUe=st(Di());We();Mt();sr();var ev=class extends mt{constructor(){super(...arguments);this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ye.String({required:!1})}static{this.paths=[["npm","tag","list"]]}static{this.usage=At.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:`
This command will list all tags of a package from the npm registry.
If the package is not specified, Yarn will default to the current workspace.
`,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=G.parseIdent(this.package);else{if(!a)throw new Dr(s.cwd,this.context.cwd);if(!a.manifest.name)throw new ht(`Missing 'name' field in ${me.fromPortablePath(Y.join(a.cwd,Or.manifest))}`);n=a.manifest.name}let l=await pR(n,r),h={children:Ye.sortMap(Object.entries(l),([A])=>A).map(([A,m])=>({value:pe.tuple(pe.Type.RESOLUTION,{descriptor:G.makeDescriptor(n,A),locator:G.makeLocator(n,m)})}))};return bs.emitTree(h,{configuration:r,json:this.json,stdout:this.context.stdout})}};async function pR(t,e){let r=`/-/package${Jr.getIdentUrl(t)}/dist-tags`;return Jr.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:Jr.customPackageError})}var tv=class extends mt{constructor(){super(...arguments);this.package=ye.String();this.tag=ye.String()}static{this.paths=[["npm","tag","add"]]}static{this.usage=At.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:`
This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten.
`,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd);if(!a)throw new Dr(s.cwd,this.context.cwd);let n=G.parseDescriptor(this.package,!0),l=n.range;if(!JUe.default.valid(l))throw new ht(`The range ${pe.pretty(r,n.range,pe.Type.RANGE)} must be a valid semver version`);let f=_n.getPublishRegistry(a.manifest,{configuration:r}),h=pe.pretty(r,n,pe.Type.IDENT),A=pe.pretty(r,l,pe.Type.RANGE),m=pe.pretty(r,this.tag,pe.Type.CODE);return(await Wt.start({configuration:r,stdout:this.context.stdout},async B=>{let D=await pR(n,r);Object.hasOwn(D,this.tag)&&D[this.tag]===l&&B.reportWarning(0,`Tag ${m} is already set to version ${A}`);let I=`/-/package${Jr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Jr.put(I,l,{configuration:r,registry:f,ident:n,jsonRequest:!0,jsonResponse:!0}),B.reportInfo(0,`Tag ${m} added to version ${A} of package ${h}`)})).exitCode()}};We();sr();var rv=class extends mt{constructor(){super(...arguments);this.package=ye.String();this.tag=ye.String()}static{this.paths=[["npm","tag","remove"]]}static{this.usage=At.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:`
This command will remove a tag from a package from the npm registry.
`,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]})}async execute(){if(this.tag==="latest")throw new ht("The 'latest' tag cannot be removed.");let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd);if(!a)throw new Dr(s.cwd,this.context.cwd);let n=G.parseIdent(this.package),l=_n.getPublishRegistry(a.manifest,{configuration:r}),f=pe.pretty(r,this.tag,pe.Type.CODE),h=pe.pretty(r,n,pe.Type.IDENT),A=await pR(n,r);if(!Object.hasOwn(A,this.tag))throw new ht(`${f} is not a tag of package ${h}`);return(await Wt.start({configuration:r,stdout:this.context.stdout},async w=>{let B=`/-/package${Jr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Jr.del(B,{configuration:r,registry:l,ident:n,jsonResponse:!0}),w.reportInfo(0,`Tag ${f} removed from package ${h}`)})).exitCode()}};We();We();sr();var nv=class extends mt{constructor(){super(...arguments);this.scope=ye.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=ye.Boolean("--publish",!1,{description:"Print username for the publish registry"})}static{this.paths=[["npm","whoami"]]}static{this.usage=At.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),s;return this.scope&&this.publish?s=_n.getScopeRegistry(this.scope,{configuration:r,type:_n.RegistryType.PUBLISH_REGISTRY}):this.scope?s=_n.getScopeRegistry(this.scope,{configuration:r}):this.publish?s=_n.getPublishRegistry((await TC(r,this.context.cwd)).manifest,{configuration:r}):s=_n.getDefaultRegistry({configuration:r}),(await Wt.start({configuration:r,stdout:this.context.stdout},async n=>{let l;try{l=await Jr.get("/-/whoami",{configuration:r,registry:s,authType:Jr.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?G.makeIdent(this.scope,""):void 0})}catch(f){if(f.response?.statusCode===401||f.response?.statusCode===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw f}n.reportInfo(0,l.username)})).exitCode()}};var D5t={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmPublishProvenance:{description:"Whether to generate provenance for the published packages",type:"BOOLEAN",default:!1},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[VB,WB,YB,zB,JB,ZB,XB,$B,tv,ev,rv,nv]},P5t=D5t;var Rie={};lr(Rie,{PatchCommand:()=>lv,PatchCommitCommand:()=>cv,PatchFetcher:()=>ER,PatchResolver:()=>IR,default:()=>Y5t,patchUtils:()=>dI});We();We();Mt();Kh();var dI={};lr(dI,{applyPatchFile:()=>k8,diffFolders:()=>xie,ensureUnpatchedDescriptor:()=>Sie,ensureUnpatchedLocator:()=>T8,extractPackageToDisk:()=>Pie,extractPatchFlags:()=>n8e,isParentRequired:()=>Die,isPatchDescriptor:()=>R8,isPatchLocator:()=>dm,loadPatchFiles:()=>yR,makeDescriptor:()=>Q8,makeLocator:()=>bie,makePatchHash:()=>kie,parseDescriptor:()=>gR,parseLocator:()=>mR,parsePatchFile:()=>dR,unpatchDescriptor:()=>G5t,unpatchLocator:()=>q5t});We();Mt();We();Mt();var x5t=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function iv(t){return Y.relative(Rt.root,Y.resolve(Rt.root,me.toPortablePath(t)))}function k5t(t){let e=t.trim().match(x5t);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var R5t=420,T5t=493;var ZUe=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),Q5t=t=>({header:k5t(t),parts:[]}),F5t={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function NLine truncated
`)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":`
`):"";await e.mkdirpPromise(Y.dirname(a.path),{chmod:493,utimes:[Oi.SAFE_TIME,Oi.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,Oi.SAFE_TIME,Oi.SAFE_TIME)}break;case"patch":await ov(e,a.path,async()=>{await U5t(a,{baseFs:e,dryRun:r})});break;case"mode change":{let l=(await e.statPromise(a.path)).mode;if(XUe(a.newMode)!==XUe(l))continue;await ov(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:Ye.assertNever(a);break}}function XUe(t){return(t&64)>0}function $Ue(t){return t.replace(/\s+$/,"")}function M5t(t,e){return $Ue(t)===$Ue(e)}async function U5t({hunks:t,path:e},{baseFs:r,dryRun:s=!1}){let a=await r.statSync(e).mode,l=(await r.readFileSync(e,"utf8")).split(/\n/),f=[],h=0,A=0;for(let w of t){let B=Math.max(A,w.header.patched.start+h),D=Math.max(0,B-A),I=Math.max(0,l.length-B-w.header.original.length),R=Math.max(D,I),N=0,U=0,V=null;for(;N<=R;){if(N<=D&&(U=B-N,V=e8e(w,l,U),V!==null)){N=-N;break}if(N<=I&&(U=B+N,V=e8e(w,l,U),V!==null))break;N+=1}if(V===null)throw new sv(t.indexOf(w),w);f.push(V),h+=N,A=U+w.header.original.length}if(s)return;let m=0;for(let w of f)for(let B of w)switch(B.type){case"splice":{let D=B.index+m;l.splice(D,B.numToDelete,...B.linesToInsert),m+=B.linesToInsert.length-B.numToDelete}break;case"pop":l.pop();break;case"push":l.push(B.line);break;default:Ye.assertNever(B);break}await r.writeFilePromise(e,l.join(`
`),{mode:a})}function e8e(t,e,r){let s=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let l=e[r];if(l==null||!M5t(l,n))return null;r+=1}a.type==="deletion"&&(s.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&s.push({type:"push",line:""}))}break;case"insertion":s.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&s.push({type:"pop"});break;default:Ye.assertNever(a.type);break}return s}var j5t=/^builtin<([^>]+)>$/;function av(t,e){let{protocol:r,source:s,selector:a,params:n}=G.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(s===null)throw new Error("Patch locators must explicitly define their source");let l=a?a.split(/&/).map(m=>me.toPortablePath(m)):[],f=n&&typeof n.locator=="string"?G.parseLocator(n.locator):null,h=n&&typeof n.version=="string"?n.version:null,A=e(s);return{parentLocator:f,sourceItem:A,patchPaths:l,sourceVersion:h}}function R8(t){return t.range.startsWith("patch:")}function dm(t){return t.reference.startsWith("patch:")}function gR(t){let{sourceItem:e,...r}=av(t.range,G.parseDescriptor);return{...r,sourceDescriptor:e}}function mR(t){let{sourceItem:e,...r}=av(t.reference,G.parseLocator);return{...r,sourceLocator:e}}function G5t(t){let{sourceItem:e}=av(t.range,G.parseDescriptor);return e}function q5t(t){let{sourceItem:e}=av(t.reference,G.parseLocator);return e}function Sie(t){if(!R8(t))return t;let{sourceItem:e}=av(t.range,G.parseDescriptor);return e}function T8(t){if(!dm(t))return t;let{sourceItem:e}=av(t.reference,G.parseLocator);return e}function t8e({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:s,patchHash:a},n){let l=t!==null?{locator:G.stringifyLocator(t)}:{},f=typeof s<"u"?{version:s}:{},h=typeof a<"u"?{hash:a}:{};return G.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...f,...h,...l}})}function Q8(t,{parentLocator:e,sourceDescriptor:r,patchPaths:s}){return G.makeDescriptor(t,t8e({parentLocator:e,sourceItem:r,patchPaths:s},G.stringifyDescriptor))}function bie(t,{parentLocator:e,sourcePackage:r,patchPaths:s,patchHash:a}){return G.makeLocator(t,t8e({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:s,patchHash:a},G.stringifyLocator))}function r8e({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:s},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let l=a.match(j5t);return l!==null?s(l[1]):a.startsWith("~/")?r(a.slice(2)):Y.isAbsolute(a)?t(a):e(a)}function n8e(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function Die(t){return r8e({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function yR(t,e,r){let s=t!==null?await r.fetcher.fetch(t,r):null,a=s&&s.localPath?{packageFs:new Jn(Rt.root),prefixPath:Y.relative(Rt.root,s.localPath)}:s;s&&s!==a&&s.releaseFs&&s.releaseFs();let n=await Ye.releaseAfterUseAsync(async()=>await Promise.all(e.map(async l=>{let f=n8e(l),h=await r8e({onAbsolute:async A=>await fe.readFilePromise(A,"utf8"),onRelative:async A=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(Y.join(a.prefixPath,A),"utf8")},onProject:async A=>await fe.readFilePromise(Y.join(r.project.cwd,A),"utf8"),onBuiltin:async A=>await r.project.configuration.firstHook(m=>m.getBuiltinPatch,r.project,A)},l);return{...f,source:h}})));for(let l of n)typeof l.source=="string"&&(l.source=l.source.replace(/\r\n?/g,`
`));return n}async function Pie(t,{cache:e,project:r}){let s=r.storedPackages.get(t.locatorHash);if(typeof s>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=T8(t),n=r.storedChecksums,l=new rs,f=await fe.mktempPromise(),h=Y.join(f,"source"),A=Y.join(f,"user"),m=Y.join(f,".yarn-patch.json"),w=r.configuration.makeFetcher(),B=[];try{let D,I;if(t.locatorHash===a.locatorHash){let R=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:l});B.push(()=>R.releaseFs?.()),D=R,I=R}else D=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:l}),B.push(()=>D.releaseFs?.()),I=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:l}),B.push(()=>I.releaseFs?.());await Promise.all([fe.copyPromise(h,D.prefixPath,{baseFs:D.packageFs}),fe.copyPromise(A,I.prefixPath,{baseFs:I.packageFs}),fe.writeJsonPromise(m,{locator:G.stringifyLocator(t),version:s.version})])}finally{for(let D of B)D()}return fe.detachTemp(f),A}async function xie(t,e){let r=me.fromPortablePath(t).replace(/\\/g,"/"),s=me.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await un.execvp("git",["-c","core.safecrlf=false","-c","core.quotePath=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,s],{cwd:me.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH.
The following error was reported by 'git':
${n}`);let l=r.startsWith("/")?f=>f.slice(1):f=>f;return a.replace(new RegExp(`(a|b)(${Ye.escapeRegExp(`/${l(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${Ye.escapeRegExp(`/${l(s)}/`)}`,"g"),"$1/").replace(new RegExp(Ye.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(Ye.escapeRegExp(`${s}/`),"g"),"")}function kie(t,e){let r=[];for(let{source:s}of t){if(s===null)continue;let a=dR(s);for(let n of a){let{semverExclusivity:l,...f}=n;l!==null&&e!==null&&!zr.satisfiesWithPrereleases(e,l)||r.push(JSON.stringify(f))}}return si.makeHash(`${3}`,...r).slice(0,6)}We();function i8e(t,{configuration:e,report:r}){for(let s of t.parts)for(let a of s.lines)switch(s.type){case"context":r.reportInfo(null,` ${pe.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${pe.pretty(e,a,pe.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${pe.pretty(e,a,pe.Type.ADDED)}`);break;default:Ye.assertNever(s.type)}}function V5t(t){return t instanceof Error&&"code"in t&&t.code==="ENOENT"}var ER=class{supports(e,r){return!!dm(e)}getLocalPath(e,r){return null}async fetch(e,r){let s=r.checksums.get(e.locatorHash)||null,[a,n,l]=await r.cache.fetchPackageFromCache(e,s,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:l}}async patchPackage(e,r){let{parentLocator:s,sourceLocator:a,sourceVersion:n,patchPaths:l}=mR(e),f=await yR(s,l,r),h=await fe.mktempPromise(),A=Y.join(h,"current.zip"),m=await r.fetcher.fetch(a,r),w=G.getIdentVendorPath(e),B=new _s(A,{create:!0,level:r.project.configuration.get("compressionLevel")});await Ye.releaseAfterUseAsync(async()=>{await B.copyPromise(w,m.prefixPath,{baseFs:m.packageFs,stableSort:!0})},m.releaseFs),B.saveAndClose();for(let{source:D,optional:I}of f){if(D===null)continue;let R=new _s(A,{level:r.project.configuration.get("compressionLevel")}),N=new Jn(Y.resolve(Rt.root,w),{baseFs:R});try{await k8(dR(D),{baseFs:N,version:n})}catch(U){let V=U instanceof sv?U:null;if(!(V!==null||I&&V5t(U)))throw U;let te=r.project.configuration.get("enableInlineHunks"),ie=V!==null&&!te&&!I?" (set enableInlineHunks for details)":"",ae=`${G.prettyLocator(r.project.configuration,e)}: ${U.message}${ie}`,ge=de=>{V===null||!te||i8e(V.hunk,{configuration:r.project.configuration,report:de})};if(R.discardAndClose(),I){r.report.reportWarningOnce(66,ae,{reportExtra:ge});continue}else throw new Zt(66,ae,ge)}R.saveAndClose()}return new _s(A,{level:r.project.configuration.get("compressionLevel")})}};We();var IR=class{supportsDescriptor(e,r){return!!R8(e)}supportsLocator(e,r){return!!dm(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,s){let{patchPaths:a}=gR(e);return a.every(n=>!Die(n))?e:G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:s}=gR(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(s)}}async getCandidates(e,r,s){if(!s.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=gR(e),l=await yR(a,n,s.fetchOptions),f=r.sourceDescriptor;if(typeof f>"u")throw new Error("Assertion failed: The dependency should have been resolved");let h=kie(l,f.version);return[bie(e,{parentLocator:a,sourcePackage:f,patchPaths:n,patchHash:h})]}async getSatisfying(e,r,s,a){let[n]=await this.getCandidates(e,r,a);return{locators:s.filter(l=>l.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:s}=mR(e);return{...await r.resolver.resolve(s,r),...e}}};We();Mt();sr();var cv=class extends mt{constructor(){super(...arguments);this.save=ye.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=ye.String()}static{this.paths=[["patch-commit"]]}static{this.usage=At.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s,workspace:a}=await Yt.find(r,this.context.cwd);if(!a)throw new Dr(s.cwd,this.context.cwd);await s.restoreInstallState();let n=Y.Line truncated
${f.map(h=>`
- ${G.prettyLocator(r,h)}`).join("")}`);l=f[0]}if(!s.storedPackages.has(l.locatorHash))throw new ht("No package found in the project for the given locator");await Wt.start({configuration:r,json:this.json,stdout:this.context.stdout},async f=>{let h=T8(l),A=await Pie(l,{cache:n,project:s});f.reportJson({locator:G.stringifyLocator(h),path:me.fromPortablePath(A)});let m=this.update?" along with its current modifications":"";f.reportInfo(0,`Package ${G.prettyLocator(r,h)} got extracted with success${m}!`),f.reportInfo(0,`You can now edit the following folder: ${pe.pretty(r,me.fromPortablePath(A),"magenta")}`),f.reportInfo(0,`Once you are done run ${pe.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${me.fromPortablePath(A)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};var W5t={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[cv,lv],fetchers:[ER],resolvers:[IR]},Y5t=W5t;var Fie={};lr(Fie,{PnpmLinker:()=>CR,default:()=>ejt});We();Mt();sr();var s8e=".package-map.json",CR=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let s=this.getCustomDataKey(),a=r.project.linkersCustomData.get(s);if(!a)throw new ht(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new ht(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let s=this.getCustomDataKey(),a=r.project.linkersCustomData.get(s);if(!a)throw new ht(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let h=a.locatorByPath.get(n[1]);if(h)return h}let l=e,f=e;do{f=l,l=Y.dirname(f);let h=a.locatorByPath.get(f);if(h)return h}while(l!==f);return null}makeInstaller(e){return new Tie(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},Tie=class{constructor(e){this.opts=e;this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.packageMapNodesByLocator=new Map;this.asyncActions=new Ye.AsyncActions(e.project.configuration.get("pnpmInstallConcurrency")),this.indexFolderPromise=gT(fe,{indexPath:Y.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}registerPackageMapNode(e,{packageLocation:r}){let s=l8e(r);this.packageMapNodesByLocator.has(e)||this.packageMapNodesByLocator.set(e,{packageLocation:s,dependencies:new Map})}registerPackageMapDependency(e,r,s){if(!this.packageMapNodesByLocator.has(s.locatorHash))throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(s)})`);e.dependencies.set(r,s.locatorHash)}async installPackage(e,r,s){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,s);case"HARD":return this.installPackageHard(e,r,s)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,s){let a=Y.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?Y.join(a,Or.nodeModules):null,l={packageLocation:a,dependenciesLocation:n};return this.customData.pathsByLocator.set(e.locatorHash,l),this.registerPackageMapNode(e.locatorHash,l),{packageLocation:a,buildRequest:null}}async installPackageHard(e,r,s){let a=K5t(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,G.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),this.registerPackageMapNode(e.locatorHash,a),s.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await fe.mkdirPromise(n,{recursive:!0}),await fe.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let f=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e,h={manifest:await nr.tryFind(r.prefixPath,{baseFs:r.packageFs})??new nr,misc:{hasBindingGyp:cA.hasBindingGyp(r)}},A=this.opts.project.getDependencyMeta(f,e.version),m=cA.extractBuildRequest(e,h,A,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:m}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!a8e(e,{project:this.opts.project}))return;let s=Line truncated
${rjt}
`,"--",...s],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(s=>me.fromPortablePath(s.path));await un.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var ajt=[h8e],uv=class extends mt{constructor(){super(...arguments);this.commit=ye.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=ye.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=ye.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=ye.Boolean("-u,--update",!1,{hidden:!0})}static{this.paths=[["stage"]]}static{this.usage=At.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]})}async execute(){let r=await $e.find(this.context.cwd,this.context.plugins),{project:s}=await Yt.find(r,this.context.cwd),{driver:a,root:n}=await cjt(s.cwd),l=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(w=>w.populateYarnPaths,s,w=>{l.push(w)});let f=new Set;for(let w of l)for(let B of ljt(n,w))f.add(B);let h=new Set([r.get("rcFilename"),Or.lockfile,Or.manifest]),A=await a.filterChanges(n,f,h),m=await a.genCommitMessage(n,A);if(this.dryRun)if(this.commit)this.context.stdout.write(`${m}
`);else for(let w of A)this.context.stdout.write(`${me.fromPortablePath(w.path)}
`);else if(this.reset){let w=await a.filterChanges(n,f,h,{staged:!0});w.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,w)}else A.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,A,m):(await a.makeStage(n,A),this.context.stdout.write(m))}};async function cjt(t){let e=null,r=null;for(let s of ajt)if((r=await s.findRoot(t))!==null){e=s;break}if(e===null||r===null)throw new ht("No stage driver has been found for your current project");return{driver:e,root:r}}function ljt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let s;try{s=fe.statSync(e)}catch{break}if(s.isSymbolicLink())e=Y.resolve(Y.dirname(e),fe.readlinkSync(e));else break}return r}var ujt={commands:[uv]},fjt=ujt;var jie={};lr(jie,{default:()=>Ejt});We();We();Mt();var d8e=st(Di());We();var A8e=st(iK()),hjt="e8e1bd300d860104bb8c58453ffa1eb4",Ajt="OFCNCOG2CU",p8e=async(t,e)=>{let r=G.stringifyIdent(t),a=pjt(e).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}},pjt=t=>(0,A8e.default)(Ajt,hjt,{requester:{async send(r){try{let s=await Sn.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:s.body,isTimedOut:!1,status:s.statusCode}}catch(s){return{content:s.response.body,isTimedOut:!1,status:s.response.statusCode}}}}});var g8e=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,djt=async(t,e,r,s)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??(fe.existsSync(Y.join(t.cwd,"tsconfig.json"))||fe.existsSync(Y.join(a.cwd,"tsconfig.json")))))return;let f=n.makeResolver(),h={project:a,resolver:f,report:new rs};if(!await p8e(r,n))return;let m=g8e(r),w=G.parseRange(r.range).selector;if(!zr.validRange(w)){let N=n.normalizeDependency(r),U=await f.getCandidates(N,{},h);w=G.parseRange(U[0].reference).selector}let B=d8e.default.coerce(w);if(B===null)return;let D=`${jf.Modifier.CARET}${B.major}`,I=G.makeDescriptor(G.makeIdent("types",m),D),R=Ye.mapAndFind(a.workspaces,N=>{let U=N.manifest.dependencies.get(r.identHash)?.descriptorHash,V=N.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&V!==r.descriptorHash)return Ye.mapAndFind.skip;let ee=[];for(let te of nr.allDependencies){let ie=N.manifest[te].get(I.identHash);typeof ie>"u"||ee.push([te,ie])}return ee.length===0?Ye.mapAndFind.skip:ee});if(typeof R<"u")for(let[N,U]of R)t.manifest[N].set(U.identHash,U);else{try{let N=n.normalizeDependency(I);if((await f.getCandidates(N,{},h)).length===0)return}catch{return}t.manifest[jf.Target.DEVELOPMENT].set(I.identHash,I)}},gjt=async(t,e,r)=>{if(r.scope==="types")return;let{project:s}=t,{configuration:a}=s;if(!(a.get("tsEnableAutoTypes")??(fe.existsSync(Y.join(t.cwd,"tsconfig.json"))||fe.existsSync(Y.join(s.cwd,"tsconfig.json")))))return;let l=g8e(r),f=G.makeIdent("types",l);for(let h of nr.allDependencies)typeof t.manifest[h].get(f.identHash)>"u"||t.manifest[h].delete(f.identHash)},mjt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},yjt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:djt,afterWorkspaceDependencyRemoval:gjt,beforeWorkspacePacking:mjt}},Ejt=yjt;var Kie={};lr(Kie,{VersionApplyCommand:()=>fv,VersionCheckCommand:()=>dv,VersionCommand:()=>gv,default:()=>bjt,versionUtils:()=>vR});sr();var fv=class extends mt{constructor(){super(...arguments);this.all=ye.Boolean("--all",!1,{description:"Bump the version of all workspaces"});this.recursive=ye.Boolean("-R,--recursive",{description:"Bump the version of dependent workspaces as well"});this.exact=ye.Boolean("--exact",!1,{description:"When updating parent workspaces' dependencies, use exact versions of bumped workspaces, removing any range."});this.prerelease=ye.String("--prerelease",{description:"Specify a prerelease pattern to use when working with prerelease versions",tolerateBoolean:!0});this.dryRun=ye.Boolean("--dry-run",!1,{description:"Print version(s)/record(s) without actually bumping versions or recording deferred releases"});this.force=ye.Boolean("--force",!1,{description:"Bypass check for bumping to a lower version than the current/deferred one"});this.json=ye.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["version","apply"]]}static{this.usage=At.Usage({category:"Release-related commands",description:"apply deferred records to workspaces",details:`
This command will apply the deferred version changes to workspaces. The applied records are removed from the project.
For more information on the options, see the \`yarn version\` command. For more information on the deferred versioning workflow, see our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).
`,examples:[["Apply deferred records of current workspace","yarn version apply"],["Apply deferred records of all the workspaces in the local workspace","yarn version apply --all"]]})}async execute(){let r=["version","decline","--immediate"];return this.all&&r.push("--all"),this.recursive&&r.push("--recursive"),this.exact&&r.push("--exact"),this.prerelease===!0?r.push("--prerelease"):typeof this.prerelease=="string"&&r.push(`--prerelease=${this.prerelease}`),this.dryRun&&r.push("--dry-run"),this.force&&r.push("--force"),this.json&&r.push("--json"),await this.cli.run(r)}};We();Mt();sr();var Yie=st(Di());var vR={};lr(vR,{Decision:()=>Av,applyPrerelease:()=>m8e,applyReleases:()=>Wie,applyStrategy:()=>_8,clearVersionFiles:()=>qie,getUndecidedDependentWorkspaces:()=>BR,getUndecidedWorkspaces:()=>L8,openVersionFile:()=>pv,requireMoreDecisions:()=>Cjt,resolveVersionFiles:()=>Gie,suggestStrategy:()=>Bjt,updateVersionFiles:()=>Vie,validateReleaseDecision:()=>hv});We();Mt();au();sr();xl();var Oa=st(Di()),Ijt=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,Av=(A=>(A.UNDECIDED="undecided",A.DECLINE="decline",A.MAJOR="major",A.MINOR="minor",A.PATCH="patch",A.PREMAJOR="premajor",A.PREMINOR="preminor",A.PREPATCH="prepatch",A.PRERELEASE="prerelease",A))(Av||{});function hv(t){let e=Oa.default.valid(t);if(e)return e;let r=Object.values(j5(Av,"UNDECIDED"));if(r.includes(t))return t;let s=Oa.default.valid(t,{loose:!0})?` Did you mean to use "${Oa.default.valid(t,{loose:!0})}"?`:"";throw new ht(`Invalid strategy: "${t}". Expected a valid semver or one of ${r.map(a=>JSON.stringify(a)).join(", ")}.${s}`)}function wjt(t){return t==="premajor"||t==="preminor"||t==="prepatch"||t==="prerelease"}async function Gie(t,{prerelease:e=null}={}){let r=new Map,s=t.configuration.get("deferredVersionFolder");if(!fe.existsSync(s))return r;let a=await fe.readdirPromise(s);for(let n of a){if(!n.endsWith(".yml"))continue;let l=Y.join(s,n),f=await fe.readFilePromise(l,"utf8"),h=Fs(f);for(let[A,m]of Object.entries(h.releases||{})){if(m==="decline")continue;let w=G.parseIdent(A),B=t.tryWorkspaceByIdent(w);if(B===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${Y.basename(l)} references ${A})`);if(B.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${G.prettyLocator(t.configuration,B.anchoredLocator)})`);let D=r.get(B),I=_8(B.manifest.version,hv(m),e);if(I===null)throw new Error(`Assertion failed: Expected ${B.manifest.version} to support being bumped via strategy ${m}`);let R=typeof D<"u"?Oa.default.gt(I,D)?I:D:I;r.set(B,R)}}return r}async function qie(t){let e=t.configuration.get("deferredVersionFolder");fe.existsSync(e)&&await fe.removePromise(e)}async function Vie(t,e){let r=new Set(e),s=t.configuration.get("deferredVersionFolder");if(!fe.existsSync(s))return;let a=await fe.readdirPromise(s);for(let n of a){if(!n.endsWith(".yml"))continue;let l=Y.join(s,n),f=await fe.readFilePromise(l,"utf8"),h=Fs(f),A=h?.releases;if(A){for(let m of Object.keys(A)){let w=G.parseIdent(m),B=t.tryWorkspaceByIdent(w);(B===null||r.has(B))&&delete h.releases[m]}Object.keys(h.releases).length>0?await fe.changeFilePromise(l,Uc(new Uc.PreserveOrdering(h))):await fe.unlinkPromise(l)}}}async function pv(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new ht("This command can only be run from within a Yarn project");let s=await fc.fetchRoot(r.projectCwd),a=s!==null?await fc.fetchBase(s,{baseRefs:r.get("changesetBaseRefs")}):null,n=s!==null?await fc.fetchChangedFiles(s,{base:a.hash,project:t}):[],l=r.get("deferredVersionFolder"),f=n.filter(D=>Y.contains(l,D)!==null);if(f.length>1)throw new ht(`Your current branch contains multiple versioning files; this isn't supported:
- ${f.map(D=>me.fromPortablePath(D)).join(`
- `)}`);let h=new Set(Ye.mapAndFilter(n,D=>{let I=t.tryWorkspaceByFilePath(D);return I===null?Ye.mapAndFilter.skip:I}));if(f.length===0&&h.size===0&&!e)return null;let A=f.length===1?f[0]:Y.join(l,`${si.makeHash(Math.random().toString()).slice(0,8)}.yml`),m=fe.existsSync(A)?await fe.readFilePromise(A,"utf8"):"{}",w=Fs(m),B=new Map;for(let D of w.declined||[]){let I=G.parseIdent(D),R=t.getWorkspaceByIdent(I);B.set(R,"decline")}for(let[D,I]of Object.entries(w.releases||{})){let R=G.parseIdent(D),N=t.getWorkspaceByIdent(R);B.set(N,hv(I))}return{project:t,root:s,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:h,releaseRoots:new Set([...h].filter(D=>D.manifest.version!==null)),releases:B,async saveAll(){let D={},I=[],R=[];for(let N of t.workspaces){if(N.manifest.version===null)continue;let U=G.stringifyIdent(N.anchoredLocator),V=B.get(N);V==="decline"?I.push(U):typeof V<"u"?D[U]=hv(V):h.has(N)&&R.push(U)}await fe.mkdirPromise(Y.dirname(A),{recursive:!0}),await fe.changeFilePromise(A,Uc(new Uc.PreserveOrdering({releases:Object.keys(D).length>0?D:void 0,declined:I.length>0?I:void 0,undecided:R.length>0?R:void 0})))}}}function Cjt(t){return L8(t).size>0||BR(t).length>0}function L8(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function BR(t,{include:e=new Set}={}){let r=[],s=new Map(Ye.mapAndFilter([...t.releases],([n,l])=>l==="decline"?Ye.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(Ye.mapAndFilter([...t.releases],([n,l])=>l!=="decline"?Ye.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||s.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let l of nr.hardDependencies)for(let f of n.manifest.getForScope(l).values()){let h=t.project.tryWorkspaceByDescriptor(f);h!==null&&s.has(h.anchoredLocator.locatorHash)&&r.push([n,h])}return r}function Bjt(t,e){let r=Oa.default.clean(e);for(let s of Object.values(Av))if(s!=="undecided"&&s!=="decline"&&Oa.default.inc(t,s)===r)return s;return null}function _8(t,e,r=null){if(Oa.default.valid(e))return e;if(t===null)throw new ht(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!Oa.default.valid(t))throw new ht(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);if(wjt(e)){let a=Oa.default.inc(t,e==="prerelease"?"patch":e.slice(3));if(a===null)throw new ht(`Cannot apply the release strategy "${e.slice(3)}" on the specified version (${t}) while trying to determine the base of the prerelease bump`);return r?m8e(a,{current:t,prerelease:r}):a===Oa.default.truncate(t,"patch")?Oa.default.inc(t,"prerelease"):`${a}-0`}let s=Oa.default.inc(t,e);if(s===null)throw new ht(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return s}function Wie(t,e,{report:r,exact:s}){let a=new Map;for(let n of t.workspaces)for(let l of nr.allDependencies)for(let f of n.manifest[l].values()){let h=t.tryWorkspaceByDescriptor(f);if(h===null||!e.has(h))continue;Ye.getArrayWithDefault(a,h).push([n,l,f.identHash])}for(let[n,l]of e){let f=n.manifest.version;n.manifest.version=l,delete n.manifest.raw.stableVersion;let h=n.manifest.name!==null?G.stringifyIdent(n.manifest.name):null;r.reportInfo(0,`${G.prettyLocator(t.configuration,n.anchoredLocator)}: Bumped to ${l}`),r.reportJson({cwd:me.fromPortablePath(n.cwd),ident:h,deferred:!1,oldVersion:f,newVersion:l});let A=a.get(n);if(!(typeof A>"u"))for(let[m,w,B]of A){let D=m.manifest[w].get(B);if(typeof D>"u")throw new Error("Assertion failed: The dependency should have existed");let I=D.range,R=!1;if(I.startsWith(Gi.protocol)&&(I=I.slice(Gi.protocol.length),R=!0,I===n.relativeCwd))continue;let N=I.match(Ijt);if(!N){r.reportWarning(0,`Couldn't auto-upgrade range ${I} (in ${G.prettyLocator(t.configuration,m.anchoredLocator)})`);continue}let U=s?`${l}`:`${N[1]}${l}`;R&&(U=`${Gi.protocol}${U}`);let V=G.makeDescriptor(D,U);m.manifest[w].set(B,V)}}}var vjt=new Map([["%n",t=>t.length>0&&typeof t[0]=="number"?{increment:t.shift()+1,reset:1}:{increment:null,reset:1}]]);function m8e(t,{current:e,prerelease:r}){let s=new Oa.default.SemVer(e),a=Oa.default.truncate(t,"patch");if(a===null)throw new Error(`Assertion failed: Expected the version to be a valid semver version (${t})`);let n=s.prerelease.slice(),l=Oa.default.truncate(s,"patch")===a,f=[];for(let A of r.split(/\./g)){let m=vjt.get(A);if(typeof m>"u")f.push(A),n[0]===A?n.shift():l=!1;else{let w=m(n);l&&w.increment!==null?f.push(w):(f.push(w.reset),l=!1)}}l&&=n.length===0;let h=f.map(A=>typeof A=="object"?l?A.increment:A.reset:A);return`${a}-${h.join(".")}`}var dv=class extends mt{constructor(){super(...arguments);this.interactive=ye.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}static{this.paths=[["version","check"]]}static{this.usaLine truncated
`)},h=()=>{let we=this.from.map(d=>yv.default.matcher(d));return s.workspaces.filter(d=>{let be=G.stringifyIdent(d.anchoredLocator),Ce=d.relativeCwd;return we.some(Ee=>Ee(be)||Ee(Ce))})},A=[];if(this.since?(f("Option --since is set; selecting the changed workspaces as root for workspace selection"),A=Array.from(await fc.fetchChangedWorkspaces({ref:this.since,project:s}))):this.from?(f("Option --from is set; selecting the specified workspaces"),A=[...h()]):this.worktree?(f("Option --worktree is set; selecting the current workspace"),A=[a]):this.recursive?(f("Option --recursive is set; selecting the current workspace"),A=[a]):this.all&&(f("Option --all is set; selecting all workspaces"),A=[...s.workspaces]),this.dryRun&&!this.all){for(let we of A)f(`
- ${we.relativeCwd}
${G.prettyLocator(r,we.anchoredLocator)}`);A.length>0&&f("")}let m;if(this.recursive?this.since?(f("Option --recursive --since is set; recursively selecting all dependent workspaces"),m=new Set(A.map(we=>[...we.getRecursiveWorkspaceDependents()]).flat())):(f("Option --recursive is set; recursively selecting all transitive dependencies"),m=new Set(A.map(we=>[...we.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(f("Option --worktree is set; recursively selecting all nested workspaces"),m=new Set(A.map(we=>[...we.getRecursiveWorkspaceChildren()]).flat())):m=null,m!==null&&(A=[...new Set([...A,...m])],this.dryRun))for(let we of m)f(`
- ${we.relativeCwd}
${G.prettyLocator(r,we.anchoredLocator)}`);let w=[],B=!1;if(l?.includes(":")){for(let we of s.workspaces)if(we.manifest.scripts.has(l)&&(B=!B,B===!1))break}for(let we of A){if(l&&!we.manifest.scripts.has(l)&&!B&&!(await qn.getWorkspaceAccessibleBinaries(we)).has(l)){f(`Excluding ${we.relativeCwd} because it doesn't have a "${l}" script`);continue}if(!(l===r.env.npm_lifecycle_event&&we.cwd===a.cwd)){if(this.include.length>0&&!yv.default.isMatch(G.stringifyIdent(we.anchoredLocator),this.include)&&!yv.default.isMatch(we.relativeCwd,this.include)){f(`Excluding ${we.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(yv.default.isMatch(G.stringifyIdent(we.anchoredLocator),this.exclude)||yv.default.isMatch(we.relativeCwd,this.exclude))){f(`Excluding ${we.relativeCwd} because it matches the --exclude filter`);continue}if(this.publicOnly&&we.manifest.private===!0){f(`Excluding ${we.relativeCwd} because it's a private workspace and --no-private was set`);continue}w.push(we)}}if(w.sort((we,d)=>G.stringifyIdent(we.anchoredLocator).localeCompare(G.stringifyIdent(d.anchoredLocator))),this.dryRun)return 0;let D=this.verbose??(this.context.stdout.isTTY?1/0:0),I=D>0,R=D>1,N=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(us.availableParallelism()/2):1,U=N===1?!1:this.parallel,V=U?this.interlaced:!0,ee=(0,E8e.default)(N),te=new Map,ie=new Set,ae=0,ge=null,de=!1,De=await Wt.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async we=>{let d=async(be,{commandIndex:Ce})=>{if(de)return-1;!U&&R&&Ce>1&&we.reportSeparator();let Ee=Djt(be,{configuration:r,label:I,commandIndex:Ce}),[he,$]=y8e(we,{prefix:Ee,interlaced:V}),[Pe,Te]=y8e(we,{prefix:Ee,interlaced:V});try{R&&we.reportInfo(null,`${Ee?`${Ee} `:""}Process started`);let ot=Date.now(),j=await this.cli.run([this.commandName,...this.args],{cwd:be.cwd,stdout:he,stderr:Pe})||0;he.end(),Pe.end(),await $,await Te;let rt=Date.now();if(R){let Ne=r.get("enableTimers")?`, completed in ${pe.pretty(r,rt-ot,pe.Type.DURATION)}`:"";we.reportInfo(null,`${Ee?`${Ee} `:""}Process exited (exit code ${j})${Ne}`)}return j===130&&(de=!0,ge=j),j}catch(ot){throw he.end(),Pe.end(),await $,await Te,ot}};for(let be of w)te.set(be.anchoredLocator.locatorHash,be);for(;te.size>0&&!we.hasErrors();){let be=[];for(let[$,Pe]of te){if(ie.has(Pe.anchoredDescriptor.descriptorHash))continue;let Te=!0;if(this.topological||this.topologicalDev){let ot=this.topologicalDev?new Map([...Pe.manifest.dependencies,...Pe.manifest.devDependencies]):Pe.manifest.dependencies;for(let j of ot.values()){let rt=s.tryWorkspaceByDescriptor(j);if(Te=rt===null||!te.has(rt.anchoredLocator.locatorHash),!Te)break}}if(Te&&(ie.add(Pe.anchoredDescriptor.descriptorHash),be.push(ee(async()=>{let ot=await d(Pe,{commandIndex:++ae});return te.delete($),ie.delete(Pe.anchoredDescriptor.descriptorHash),{workspace:Pe,exitCode:ot}})),!U))break}if(be.length===0){let $=Array.from(te.values()).map(Pe=>G.prettyLocator(r,Pe.anchoredLocator)).join(", ");we.reportError(3,`Dependency cycle detected (${$})`);return}let Ce=await Promise.all(be);Ce.forEach(({workspace:$,exitCode:Pe})=>{Pe!==0&&we.reportError(0,`The command failed in workspace ${G.prettyLocator(r,$.anchoredLocator)} with exit code ${Pe}`)});let he=Ce.map($=>$.exitCode).find($=>$!==0);(this.topological||this.topologicalDev)&&typeof he<"u"&&we.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return ge!==null?ge:De.exitCode()}};function y8e(t,{prefix:e,interlaced:r}){let s=t.createStreamReporter(e),a=new Ye.DefaultStream;a.pipe(s,{end:!1}),a.on("finish",()=>{s.end()});let n=new Promise(f=>{s.on("finish",()=>{f(a.active)})});if(r)return[a,n];let l=new Ye.BufferStream;return l.pipe(a,{end:!1}),l.on("finish",()=>{a.end()}),[l,n]}function Djt(t,{configuration:e,commandIndex:r,label:s}){if(!s)return null;let n=`[${G.stringifyIdent(t.anchoredLocator)}]:`,l=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],f=l[r%l.length];return pe.pretty(e,n,f)}var Pjt={commands:[mv,Ev]},xjt=Pjt;var QC=()=>({modules:new Map([["@yarnpkg/cli",hD],["@yarnpkg/core",fD],["@yarnpkg/fslib",cS],["@yarnpkg/libzip",bb],["@yarnpkg/parsers",hS],["@yarnpkg/shell",Tb],["clipanion",BS],["semver",kjt],["typanion",ho],["@yarnpkg/plugin-essentials",nY],["@yarnpkg/plugin-catalog",aY],["@yarnpkg/plugin-compat",hY],["@yarnpkg/plugin-constraints",xY],["@yarnpkg/plugin-dlx",kY],["@yarnpkg/plugin-exec",QY],["@yarnpkg/plugin-file",NY],["@yarnpkg/plugin-git",rY],["@yarnpkg/plugin-github",_Y],["@yarnpkg/plugin-http",MY],["@yarnpkg/plugin-init",UY],["@yarnpkg/plugin-interactive-tools",Lz],["@yarnpkg/plugin-jsr",Mz],["@yarnpkg/plugin-link",Uz],["@yarnpkg/plugin-nm",PJ],["@yarnpkg/plugin-npm",pie],["@yarnpkg/plugin-npm-cli",vie],["@yarnpkg/plugin-pack",EZ],["@yarnpkg/plugin-patch",Rie],["@yarnpkg/plugin-pnp",dJ],["@yarnpkg/plugin-pnpm",Fie],["@yarnpkg/plugin-stage",Hie],["@yarnpkg/pLine truncated
Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",n);try{process.exitCode=42,process.exitCode=await Njt(a,t,{selfPath:r,pluginConfiguration:s})}catch(l){ec.defaultContext.stdout.write(a.error(l)),process.exitCode=1}finally{process.off("beforeExit",n),await fe.rmtempPromise()}}_O(process.argv.slice(2),{cwd:Y.cwd(),selfPath:me.toPortablePath(me.resolve(process.argv[1])),pluginConfiguration:QC()});})();
/**
@license
Copyright (c) 2015, Rebecca Turner
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
*/
/**
@license
Copyright Node.js contributors. All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
*/
/**
@license
The MIT License (MIT)
Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
/**
@license
Copyright Joyent, Inc. and other Node contributors.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the
following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
/*! Bundled license information:
is-number/index.js:
(*!
* is-number <https://github.com/jonschlinkert/is-number>
*
* Copyright (c) 2014-present, Jon Schlinkert.
* Released under the MIT License.
*)
to-regex-range/index.js:
(*!
* to-regex-range <https://github.com/micromatch/to-regex-range>
*
* Copyright (c) 2015-present, Jon Schlinkert.
* Released under the MIT License.
*)
fill-range/index.js:
(*!
* fill-range <https://github.com/jonschlinkert/fill-range>
*
* Copyright (c) 2014-present, Jon Schlinkert.
* Licensed under the MIT License.
*)
is-extglob/index.js:
(*!
* is-extglob <https://github.com/jonschlinkert/is-extglob>
*
* Copyright (c) 2014-2016, Jon Schlinkert.
* Licensed under the MIT License.
*)
is-glob/index.js:
(*!
* is-glob <https://github.com/jonschlinkert/is-glob>
*
* Copyright (c) 2014-2017, Jon Schlinkert.
* Released under the MIT License.
*)
queue-microtask/index.js:
(*! queue-microtask. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
run-parallel/index.js:
(*! run-parallel. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> *)
git-url-parse/lib/index.js:
(*!
* buildToken
* Builds OAuth token prefix (helper function)
*
* @name buildToken
* @function
* @param {GitUrl} obj The parsed Git url object.
* @return {String} token prefix
*)
object-assign/index.js:
(*
object-assign
(c) Sindre Sorhus
@license MIT
*)
react/cjs/react.production.min.js:
(** @license React v17.0.2
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
scheduler/cjs/scheduler.production.min.js:
(** @license React v0.20.2
* scheduler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
react-reconciler/cjs/react-reconciler.production.min.js:
(** @license React v0.26.2
* react-reconciler.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
is-windows/index.js:
(*!
* is-windows <https://github.com/jonschlinkert/is-windows>
*
* Copyright © 2015-2018, Jon Schlinkert.
* Released under the MIT License.
*)
negotiator/index.js:
(*!
* negotiator
* Copyright(c) 2012 Federico Romero
* Copyright(c) 2012-2014 Isaac Z. Schlueter
* Copyright(c) 2015 Douglas Christopher Wilson
* MIT Licensed
*)
imurmurhash/imurmurhash.js:
(**
* @preserve
* JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)
*
* @author <a href="mailto:jensyt@gmail.com">Jens Taylor</a>
* @see http://github.com/homebrewing/brauhaus-diff
* @author <a href="mailto:gary.court@gmail.com">Gary Court</a>
* @see http://github.com/garycourt/murmurhash-js
* @author <a href="mailto:aappleby@gmail.com">Austin Appleby</a>
* @see http://sites.google.com/site/murmurhash/
*)
make-fetch-happen/lib/fetch.js:
(**
* @license
* Copyright (c) 2010-2012 Mikeal Rogers
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an "AS
* IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*)
*/
-5
View File
@@ -1,5 +0,0 @@
enableTelemetry: false
nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-4.18.1.cjs
+28 -67
View File
@@ -1,76 +1,37 @@
# Lint phase. The linter is invoked directly rather than through `make
# lint` or `script/lint`, which are themselves a docker build and would
# recurse into a daemon that does not exist in a build step.
#
# In every stage, ARG CACHEBUST comes right after the step that installs
# system packages. script/ passes a new value on every build. That value
# reruns every RUN step below the ARG line, and the install step keeps
# its layer. node and yarn come from the distribution, which is trusted,
# so they need no version and no hash. That yarn only starts the release
# file in .yarn/releases/, so every stage copies that file and
# .yarnrc.yml before it runs script/bootstrap.
#
# alpine 3.24.3, 2026-11-04
FROM alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a AS lint
RUN apk add --no-cache git make nodejs-current yarn
ARG CACHEBUST
# node 22-alpine, 2026-02-22
FROM node@sha256:e4bf2a82ad0a4037d28035ae71529873c069b13eb0455466ae0bc13363826e34
WORKDIR /app
# script/bootstrap installs all prerequisites (make via apk here; node
# and yarn are already in the base image, so those steps are skipped).
# Dependency manifests are copied first so the bootstrap layer is
# cached until they change.
COPY script/ script/
COPY package.json yarn.lock .yarnrc.yml ./
COPY .yarn/releases/ .yarn/releases/
COPY package.json yarn.lock ./
RUN script/bootstrap
COPY . .
RUN yarn run prettier --check '**/*.md' --tab-width 4 --prose-wrap always
# CHECK_EPOCH is a per-invocation nonce supplied by script/cibuild and
# script/docker. Without it an unchanged tree serves this layer from
# cache and the build reports a green it never ran. ARG is stage-scoped,
# so it must be redeclared in every stage that runs checks. The guard
# makes a bare `docker build .` fail loudly instead of silently reusing
# the empty (and therefore stable) cache key. Expand the value into the
# command so the cache miss does not depend on BuildKit's handling of an
# unreferenced ARG. Both the guard and the check RUN reference the value,
# so both are value-keyed: there are two independent invalidation points
# here, not one. Keep both.
ARG CHECK_EPOCH
RUN [ -n "$CHECK_EPOCH" ] || exit 1
# Test phase, same shape and for the same reason.
#
# alpine 3.24.3, 2026-11-04
FROM alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a AS test
RUN apk add --no-cache git make nodejs-current yarn
ARG CACHEBUST
WORKDIR /app
COPY script/ script/
COPY package.json yarn.lock .yarnrc.yml ./
COPY .yarn/releases/ .yarn/releases/
RUN script/bootstrap
COPY . .
RUN echo "No tests defined."
# Development environment, and the last stage: a plain `docker build .`
# names no target and so builds this one. Nothing is wanted from the two
# phases above; the copies are what make BuildKit build them first, so
# this image cannot be produced unless lint and test passed. A stage
# appended after this one would drop all three out of a plain build.
#
# alpine 3.24.3, 2026-11-04
FROM alpine@sha256:be2656061b536c1883c4034790e21d0a09c5aaaf51968b89368a3c0371ea2c9a
RUN apk add --no-cache git make nodejs-current yarn
ARG CACHEBUST
WORKDIR /app
COPY --from=lint /app/package.json /dev/null
COPY --from=test /app/package.json /dev/null
# script/bootstrap finds the system packages above and installs the node
# packages.
COPY script/ script/
COPY package.json yarn.lock .yarnrc.yml ./
COPY .yarn/releases/ .yarn/releases/
RUN script/bootstrap
COPY . .
# Nothing here is compiled and a LABEL cannot run git, so the version is
# the VERSION build argument that script/docker and script/cibuild pass;
# a plain `docker build .` leaves it empty.
ARG VERSION
LABEL org.opencontainers.image.version="${VERSION}"
# The individual non-lint checks, NOT `make check`. Lint is deliberately
# absent here: `script/lint` is itself a `docker build` (of
# Dockerfile.lint), so running `make check` in this image would attempt
# a docker build inside a build step, where there is no daemon. Putting
# `make check` back reintroduces exactly that recursion. Lint is not
# skipped — script/cibuild runs script/lint first, in its own container,
# before this build starts.
RUN echo "check epoch: ${CHECK_EPOCH}" && script/test
RUN script/fmt-check
+41
View File
@@ -0,0 +1,41 @@
# Lint-only image. `script/lint` builds this file and nothing else: the
# linter runs as a build step, so a successful build IS a clean lint.
# Building rather than bind-mounting is what makes it work where the
# docker daemon is remote and bind mounts are impossible.
#
# The linter is invoked directly below rather than through `make lint`.
# That is not a style choice: `script/lint` IS this build, so calling it
# from inside would recurse into a docker build with no daemon.
#
# This repo's linter is prettier over markdown. A Go repo's version of
# this file differs only in the base image and the two lint commands;
# see the containerised-lint rule in prompts/REPO_POLICIES.md.
#
# node 22-alpine, 2026-02-22
FROM node@sha256:e4bf2a82ad0a4037d28035ae71529873c069b13eb0455466ae0bc13363826e34
WORKDIR /app
# Dependency layer first, and deliberately above the ARG below, so it
# stays cached and only the lint steps re-run on every invocation.
# Without that ordering the cache-bust would reinstall dependencies on
# every lint and make linting network-dependent.
COPY script/ script/
COPY package.json yarn.lock ./
RUN script/bootstrap
COPY . .
# CHECK_EPOCH is a per-invocation nonce supplied by script/lint. Without
# it an unchanged tree serves the lint layer from cache and the build
# reports a lint it never ran — a green that proves nothing, which is
# the whole failure mode this file exists to avoid reintroducing. The
# guard makes a bare `docker build -f Dockerfile.lint .` fail loudly
# instead of silently reusing the empty (and therefore stable) cache
# key. The value is expanded into the lint command as well, so the cache
# miss does not depend on BuildKit's handling of an unreferenced ARG and
# the epoch is visible in the build log. Keep both references.
ARG CHECK_EPOCH
RUN [ -n "$CHECK_EPOCH" ] || exit 1
RUN echo "lint epoch: ${CHECK_EPOCH}" && \
yarn run prettier --check '**/*.md' --tab-width 4 --prose-wrap always
+26 -44
View File
@@ -37,9 +37,9 @@ new repo file added, etc.)."
**Code style and conventions:**
```bash
claude "Read $TD/prompts/CODE_STYLEGUIDE.md and whichever other
documents in $TD/prompts/ apply to this repo (API_POLICIES.md,
CODE_STYLEGUIDE_GO.md, CODE_STYLEGUIDE_JS.md, CODE_STYLEGUIDE_PYTHON.md,
claude "Read $TD/prompts/CODE_STYLEGUIDE.md and whichever
language-specific styleguides in $TD/prompts/ apply to this repo
(CODE_STYLEGUIDE_GO.md, CODE_STYLEGUIDE_JS.md, CODE_STYLEGUIDE_PYTHON.md,
GO_HTTP_SERVER_CONVENTIONS.md). Then review the application code in this
repo and bring it into compliance with those coding standards. Your scope
is application code structure and style: naming, patterns, error
@@ -79,9 +79,9 @@ one for linter fixes, one for README, one for each new repo file, etc.)."
**Code style and conventions:**
```bash
claude "Read $TD/prompts/CODE_STYLEGUIDE.md and whichever other
documents in $TD/prompts/ apply to this repo (API_POLICIES.md,
CODE_STYLEGUIDE_GO.md, CODE_STYLEGUIDE_JS.md, CODE_STYLEGUIDE_PYTHON.md,
claude "Read $TD/prompts/CODE_STYLEGUIDE.md and whichever
language-specific styleguides in $TD/prompts/ apply to this repo
(CODE_STYLEGUIDE_GO.md, CODE_STYLEGUIDE_JS.md, CODE_STYLEGUIDE_PYTHON.md,
GO_HTTP_SERVER_CONVENTIONS.md). Then review the application code in this
repo and bring it into compliance with those coding standards. Your scope
is application code structure and style: naming, patterns, error
@@ -111,32 +111,31 @@ development workflow, and the Makefile targets are thin shims that call them.
The scripts are POSIX sh (not bash) so they run in minimal containers such as
alpine. We provide:
- `script/bootstrap` — install all dependencies (`yarn install --immutable`)
- `script/bootstrap` — install all dependencies (yarn install)
- `script/setup` — set up the repo for development after a fresh clone: runs
`script/bootstrap`, then `script/install-precommit`
- `script/projectname` — output the project name (our own extension); used by
`script/docker` for the image tag
- `script/test` —
`docker build --build-arg CACHEBUST="$(date +%s)-$$" --target test --output type=cacheonly .`,
building the `test` phase of the `Dockerfile` without writing an image (no
tests defined here)
- `script/lint` —
`docker build --build-arg CACHEBUST="$(date +%s)-$$" --target lint --output type=cacheonly .`,
building the `lint` phase, which runs prettier over the markdown files,
without writing an image
- `script/fmt` — format all markdown files with prettier (writes; native, not in
a container)
- `script/fmt-check` — check formatting (read-only; native)
- `script/test` — run the test suite (no tests defined here)
- `script/lint` — lint the markdown files, by building `Dockerfile.lint`. The
linter runs in a container, always: it is never installed on the host and
never invoked there. Linting happens as a build step, so a successful build is
a clean lint, and the same per-invocation `CHECK_EPOCH` nonce used elsewhere
is what stops Docker serving that lint from cache on an unchanged tree
- `script/fmt` — format all markdown files with prettier (writes)
- `script/fmt-check` — check formatting (read-only)
- `script/check` — run all checks: `test`, `lint`, `fmt-check` (our own
extension); builds no image of its own
- `script/docker` —
`docker build --build-arg CACHEBUST="$(date +%s)-$$" --build-arg VERSION="$version" -t prompts .`,
the tag coming from `script/projectname` (byte-identical across repos)
- `script/cibuild` — cd to the repo root, run `script/bootstrap`, run
`script/check`, compute `version` from `git describe`, then
`docker build --build-arg CACHEBUST="$(date +%s)-$$" --build-arg VERSION="$version" -t prompts .`
(what CI runs; it bootstraps because CI checks out and runs this alone while
`script/fmt-check` is native)
extension). Needs a docker daemon, since `script/lint` is a container build
- `script/docker` — build the Docker image, tagged via `script/projectname`
(byte-identical across repos); passes the same `CHECK_EPOCH` nonce as
`script/cibuild`
- `script/cibuild` — cd to the repo root, run `script/lint` first, then assign
`epoch="$(date +%s%N)$$"` and
`docker build --build-arg CHECK_EPOCH="$epoch" .` (what CI runs). Two
container builds: the lint image, then the main image, which runs
`script/test` and `script/fmt-check` but deliberately not `make check` — that
would nest a docker build inside a build step. A bare `docker build .` fails
closed on purpose
- `script/precommit` — run by the git pre-commit hook (our own extension); calls
`script/check`
- `script/install-precommit` — installs the git pre-commit hook (our own
@@ -144,23 +143,6 @@ alpine. We provide:
`make hooks` installs the pre-commit hook that runs `script/precommit`.
In every stage of a `Dockerfile`, every step that lints, tests or compiles comes
after `ARG CACHEBUST`. `ARG CACHEBUST` comes right after these steps:
- the steps that install system packages
- the steps that download Go's modules
- the step that runs `script/bootstrap` to install a Python `test` phase's
packages from `Pipfile.lock`
A stage with none of these steps declares `ARG CACHEBUST` right after `FROM`.
The `script/` builds pass a new `CACHEBUST` value on every build, which reruns
every `RUN` step after that line and leaves the layers above it and the cache
mounts in place; `--no-cache` would build those layers again and empty the
mounts. This repo's own `Dockerfile` installs git, make, node and yarn right
after `FROM` in every stage, above `ARG CACHEBUST`. `script/bootstrap` installs
the node packages below that line, because check builds keep system packages but
not node packages.
## Rationale
LLM prompts, especially development policies, benefit from version control and a
+134 -396
View File
@@ -21,402 +21,140 @@ fmt-check, and commit.
# Completed Steps
- 2026-11-07: Go code is now formatted with `gofmt` and then `golines -m 77`
(https://git.eeqj.de/sneak/prompts/issues/160). `prompts/REPO_POLICIES.md`
says how `script/fmt`, `script/fmt-check` and `script/bootstrap` do it and
pins `golines`. The Go style guide and both checklists say the same. `lll`
stays at 88, since `golines` leaves long strings and comments as they are.
- 2026-11-06: The pinning rule in `prompts/REPO_POLICIES.md` now opens with its
scope: what we download and install ourselves in scripts and Dockerfiles
(https://git.eeqj.de/sneak/prompts/issues/154). Distribution packages are
outside the rule, and updating and upgrading them is allowed. Both checklists
say the same.
- 2026-11-04: Each repository now commits yarn 4 and installs with
`yarn install --immutable` (https://git.eeqj.de/sneak/prompts/issues/149), on
sneak's ruling at
https://git.eeqj.de/sneak/prompts/issues/149#issuecomment-167558. Product
repositories convert when they next have work. These changed:
- This repository carries `.yarn/releases/yarn-4.18.1.cjs`, and its
`yarn.lock` is in yarn 4's format.
- `script/bootstrap` no longer stops on yarn's major version.
- Node comes from the distribution's newest Node package, which on Alpine
3.24 is `nodejs-current`.
- A `Dockerfile` stage that needs yarn also copies `.yarnrc.yml` and
`.yarn/releases/`, and may start from any distribution that packages node
and yarn.
- Both checklists give the steps, and the ignore files keep yarn's install
state out of git and the build context.
- 2026-11-04: An agent whose work is confined to one package may run `go test`
directly on that package's suite, or on individual tests in it, while
iterating (https://git.eeqj.de/sneak/prompts/issues/51), on sneak's ruling at
https://git.eeqj.de/sneak/prompts/issues/51#issuecomment-167600. The full
`make check` is still required before every push, and the `Makefile` gains
nothing. The rule on Docker now names the lint and test gates, because a run
while iterating is not one.
- 2026-11-04: node, yarn, npm, python, pip and venv now come from the
distribution with no version and no hash
(https://git.eeqj.de/sneak/prompts/issues/146), on sneak's ruling at
https://git.eeqj.de/sneak/prompts/issues/146#issuecomment-166033. Third-party
packages stay pinned by hash. These changed:
- `script/bootstrap` no longer uses nvm or corepack, and stops when yarn's
major version is not 1.
- `script/bootstrap` installs node, yarn and the node packages only when
`yarn.lock` is in the tree.
- `script/bootstrap`, `script/fmt` and `script/fmt-check` run `yarn` or
`yarnpkg`, whichever is present.
- This repository's `Dockerfile` starts from Alpine 3.24.
- The Python `test` phase example starts from `debian:trixie-slim`.
- A Python repository's `script/bootstrap` creates its virtual environment
at `$HOME/.pipenv`, so it works on a host and in a `Dockerfile`.
- `PIP_ONLY_BINARY=:all:` stops a package with no wheel, so pip downloads no
build tools without a hash check.
- 2026-11-04: Rewrote `prompts/REPO_POLICIES.md` sentence by sentence
(https://git.eeqj.de/sneak/prompts/issues/136), on sneak's yes at
https://git.eeqj.de/sneak/prompts/issues/136#issuecomment-165193. Every rule
keeps its meaning and its place, and `must` and `should` stay as they were.
Long sentences are split, comma-chained lists are now bulleted lists, and
every reason stays. Code blocks, digests, URLs, file names, commands and
quoted strings are unchanged.
- 2026-11-03: The canonical golangci-lint is now v2.15.0, still built with
go1.27.0, so the `go` directive rule is unchanged (issue 142). Repositories
pick this up on their next re-vendor. Each item in the canonical
`.golangci.yml` was tried on a scratch module. These changed:
- `canonicalheader` is enabled again, because v2.15.0 fixes the random
misses behind issue 105.
- The `depguard` exemption covers only the files directly inside a directory
whose name ends in `test`. It used to reach every directory below that one
too. The name of the directory a repository is cloned into no longer
counts.
- `gomodguard_v2` also blocks `github.com/go-redis/redis/v9`, whose
pre-releases can still be imported under that path.
- `uniq-by-line` is now `false`, so a line that trips two linters reports
both findings.
- Three comments are corrected:
- `exhaustruct` is listed as deprecated.
- The test double is named `github.com/go-redis/redismock/v9`.
- The claim that every blocked module is in the Go package defaults is
gone.
- A comment says the file has no `formatters` section, so
`golangci-lint run` does not run `gofmt`.
- 2026-11-03: A package from the distribution's own package index now needs no
version and no hash, and pulling that index is allowed
(https://git.eeqj.de/sneak/prompts/issues/72), on sneak's answer at
https://git.eeqj.de/sneak/prompts/issues/72#issuecomment-165196. The
distribution is the pinned base image's in a `Dockerfile` and the host's on a
host. It is trusted, and everything else stays pinned by hash. A package
source that a `Dockerfile` adds itself does not get the exception. The pinning
rule of `REPO_POLICIES.md` and both checklists say so, and the canonical Go
`Dockerfile`'s `apk add` line has a comment saying why it is allowed.
- 2026-11-03: A first test run that timed out now gets no verbose rerun
(https://git.eeqj.de/sneak/prompts/issues/61), on sneak's approval at
https://git.eeqj.de/sneak/prompts/issues/61#issuecomment-165195. The Go recipe
in `REPO_POLICIES.md` looks in the first run's output for
`panic: test timed out` or `*** Test killed`, and exits 1 when either is
there. The Python `make test` example takes the same `timeout 90 sh -c`
wrapper as its `Dockerfile` example. The 60 and 90 second rule and the
5-minute rule now say a hung package uses the backstop once. The Go item in
both repo checklists now asks for this, so a repository with the old recipe
fails it.
- 2026-10-27: Added `prompts/API_POLICIES.md`
(https://git.eeqj.de/sneak/prompts/issues/137). It holds sneak's rule from
https://git.eeqj.de/sneak/routewatch/issues/199 that a value in an API
response is never a string with a label or unit in it. `REPO_POLICIES.md` and
the code style commands in the README name the new file.
- 2026-10-21: Check builds may now also keep the Python packages a `test` phase
installs from `Pipfile.lock` (issue 133), on sneak's ruling in
https://git.eeqj.de/sneak/rfscan/issues/80#issuecomment-153437. The install
comes before `ARG CACHEBUST`: `COPY script/ script/`,
`COPY Pipfile Pipfile.lock ./`, then `RUN script/bootstrap`. In that step
`script/bootstrap` installs nothing beyond system packages, pipenv and its
dependencies by hash, and the packages from the lockfile. It installs no
Python, because the tests use the base image's. `--deploy` installs only what
the lockfile names, checks every package against its hashes, and fails when
the lockfile is out of date with `Pipfile`. A kept layer holds nothing a new
install would refuse. A package built from source and the system packages may
differ in a new install. As with Go's modules, the packages are kept in a
layer, not a cache mount. The tests still run after `ARG CACHEBUST`, and every
other stage still installs its Python packages after it. `REPO_POLICIES.md`
gains a short Python `test` phase example, and both checklists and the README
state the rule the same way. rfscan picks this up on its next re-vendor.
- 2026-10-21: The canonical `.golangci.yml` now accepts a local `replace` of
`github.com/grafana/sobek` in a repository's root `go.mod` (issue 134), for
homoicon, which keeps a local copy of sobek on sneak's decision in
https://git.eeqj.de/sneak/homoicon/issues/1759#issuecomment-153261. Every
other local `replace` is still refused. It is an exclusion rather than a
`replace-allow-list` entry because gomoddirectives does not check that list
for a `replace` that points at a local path. homoicon picks this up on its
next re-vendor.
- 2026-10-18: Check builds may now also keep Go's downloaded modules,
golangci-lint's cache and the layers that install system packages (issue 130),
on sneak's ruling there. In each stage of the canonical Go `Dockerfile`, the
system-package install and the module download (`COPY go.mod go.sum ./`,
`RUN go mod download`) come before `ARG CACHEBUST`, so Docker keeps them until
the base image, the install line, `go.mod` or `go.sum` changes. The modules
are kept as a layer, not a cache mount, because Go does not check the files in
a cache mount again. `golangci-lint run` also mounts golangci-lint's cache,
`/root/.cache/golangci-lint`. Every step that lints, tests or compiles still
comes after `ARG CACHEBUST` and runs on every check build, and both `go test`
runs keep `-count=1`. `REPO_POLICIES.md`, both checklists, the Go style guide,
the README and the script comments state the rule the same way. This repo's
own `Dockerfile` is unchanged: its `script/bootstrap` step also installs node
packages, which the ruling does not cover. Repositories pick this up on their
next re-vendor.
- 2026-10-15: Check builds now keep Go's build cache between runs (issue 113),
on sneak's ruling there that Go's compile cache may survive. `script/lint`,
`script/test`, `script/cibuild` and `script/docker` pass a new `CACHEBUST`
build argument on every build in place of `--no-cache`, which also emptied the
cache mounts. Every `Dockerfile` stage declares `ARG CACHEBUST` first, so
every `RUN` step still runs on every check build. The canonical Go
`Dockerfile` mounts Go's build cache on the steps that compile and runs both
`go test` runs with `-count=1`, so no test result is reused. A stage without
the `ARG` line is served from cache, so repositories re-vendor the scripts and
the `ARG` lines in one commit. Not yet tried on the shared runner.
- 2026-10-08: The canonical `script/bootstrap` now uses the installed node only
when its major version is the pinned one (issue 118). Otherwise, as when node
is missing, it installs the pinned node under nvm and installs yarn and the
packages under it. It prints the version of the node it uses either way. The
CI runner image ships node 24, under which the pinned yarn 1.22.22 printed the
deprecation warning DEP0169 on every bootstrap. Only the major is compared
because the `Dockerfile` stages start from a node 22 alpine image whose exact
version is not the pin, and nvm cannot install a prebuilt node on alpine; the
version-comparison rule in `REPO_POLICIES.md` names node as its exception.
`script/fmt` and `script/fmt-check` pick their yarn with the same test: the
`yarn` on `PATH` when the installed node is the pinned major, and otherwise
yarn under the pinned node through nvm. `REPO_POLICIES.md` and both checklists
say so, and the checklists' final `script/cibuild` check names what the CI
runner image has: node 24 and no yarn. Not yet tried on the shared runner.
Repositories pick this up on their next re-vendor.
- 2026-10-07: The `script/cibuild` item in `NEW_REPO_CHECKLIST.md` now matches
the canonical `script/cibuild` (issue 125). Its image build carries the tag,
`-t "$tag"`, and the item says that `$version` comes from
`git describe --tags --always --dirty` (`unknown` if empty) and `$tag` from
`script/projectname`, each assigned on its own line before the build. A
repository written from the checklist got an untagged build, which leaves a
dangling image behind on every run, and was never told where `$version` comes
from. The other `docker build` commands the checklists and `REPO_POLICIES.md`
give for `script/` already matched their scripts.
- 2026-10-07: `script/lint` and `script/test` now build with
`--output type=cacheonly` in place of a tag (issue 123), so they still run
their phase uncached and fail on a failing step but write no image. Nothing
used those images, and writing one out cost about 16 seconds of a Go
repository's test build. `script/cibuild` and `script/docker` keep their tags.
`REPO_POLICIES.md`, both checklists and the README no longer say the gate
builds are tagged. Not yet tried on the shared runner. Repositories pick this
up on their next re-vendor.
- 2026-10-07: The canonical `.gitea/workflows/check.yml` now sets
`timeout-minutes: 20` on its `check` job (issue 120), so a hung build frees
the shared runner instead of holding it until the runner's own limit.
`script/cibuild` runs three Docker builds, each held to the 5-minute Docker
build limit, plus the bootstrap; if that limit changes (issue 113), the value
follows it. `REPO_POLICIES.md` and both checklists name the limit among what
the workflow sets. Not yet tried on the shared runner. Repositories pick this
up on their next re-vendor.
- 2026-10-07: The canonical `package.json` now has `"private": true` in place of
`"license": "MIT"` (issue 119), so a repository that copies it no longer
declares MIT whatever its own licence is. yarn does not print "No license
field" for a private package. This repository's own licence is unchanged.
- 2026-10-06: The canonical `.gitea/workflows/check.yml` now sets
`fetch-depth: 0` on its checkout step (issue 110), so CI fetches the history
and tags that `git describe --tags --always` needs, and a tagged repository
stamps the same version in CI as in a local build. `REPO_POLICIES.md` and both
checklists name `fetch-depth: 0` among what the workflow does, next to
`persist-credentials: false` and the `concurrency` block, instead of asking
each tagged repository to add it. Not yet tried on the shared runner, which is
out of disk space. Repositories pick this up on their next re-vendor.
- 2026-10-06: The canonical `script/bootstrap` now runs `apt-get update` once,
before the first `apt-get install` of a run (issue 115). The Gitea runner
image starts with empty package lists, so installing anything it lacks, such
as Go, failed with `Unable to locate package`. A repository's own section no
longer needs a refresh of its own; `sneak/bsfirehose` and `sneak/dnswatcher`
drop theirs at their next re-vendor.
- 2026-10-06: `REPO_POLICIES.md` and both checklists now say that a checkout
whose `.git` is a file, a linked worktree or a repository checked out as a
submodule, is the exception to a plain `docker build .` succeeding (issue
111): that file points to a git directory outside the build context, so the
build cannot read the version and the version check in the canonical
`Dockerfile` stops it. Such a build is given its version with
`--build-arg VERSION=...`, as `script/docker` and `script/cibuild` already do.
The check itself is unchanged.
- 2026-10-06: The canonical `.gitea/workflows/check.yml` now has a `concurrency`
block, so a new push cancels the older run on the same branch and no other,
and its checkout step sets `persist-credentials: false`, so the job's token is
not left in `.git/config` (issue 107). `REPO_POLICIES.md` and both checklists
describe the workflow as it now is. Not yet tried on the shared runner, which
is out of disk space. Repositories pick this up on their next re-vendor.
- 2026-10-06: The canonical `.golangci.yml` now disables `canonicalheader`
(issue 105). In golangci-lint v2.14.0 it misses findings at random in a
package that also calls `ResponseWriter.Header()`, so the same tree can fail
lint on one run and pass on the next. It comes back once a pinned
golangci-lint release fixes it.
- 2026-10-06: The canonical `.gitignore` and `.editorconfig` now each end with a
comment saying the repository's own entries go below it and a re-vendor keeps
them (issue 103, which took in issue 104), as `.dockerignore`'s header already
does. `.editorconfig` gains a `[*.go]` section with tabs, since `gofmt`
decides Go indentation everywhere. `REPO_POLICIES.md` and both checklists say
that each of these two files is the canonical content followed by the
repository's own entries, which a re-vendor keeps, and the Go styleguide puts
`*.log`, `*.out`, `*.test` and binaries among those entries. Common outputs
stay out of the canonical `.gitignore`; each repository lists its own.
- 2026-10-05: `script/cibuild`, `script/docker`, `script/lint` and `script/test`
now assign the image tag from `script/projectname` on its own line before the
`docker build` (issue 101), so `set -e` stops the script where
`script/projectname` fails instead of running `docker build` with a broken
tag. The comment above it in each script says why, and the snippets in
`REPO_POLICIES.md` show the same form. Repositories pick this up on their next
re-vendor.
- 2026-10-04: Went through the fleet findings recorded on 2026-08-09 (issue 62)
and added the two rules `REPO_POLICIES.md` did not yet state: a new or changed
check is proven by planting a defect it must catch; and a change to a separate
workflow limited to `main` is first run from the feature branch, added to that
workflow's `branches` list and removed again before merging. The other
findings were already stated, replaced by `--no-cache`, about git worktrees,
or about how agents work together. The warning against
`golangci-lint config verify` is dropped because sneak ruled on
https://git.eeqj.de/sneak/prompts/issues/40 (2026-08-10) that there is no
config check step and the config is assumed valid; a vendored `.golangci.yml`
stays byte-identical to the canonical copy. The issue gives each reason.
- 2026-10-04: `REPO_POLICIES.md` now says which `Dockerfile` stages run
`script/bootstrap` (issue 90). The gate phases and the build stage start from
their pinned base images and install what those images lack either inline, as
the canonical Go `Dockerfile` does for `git`, or by running
`script/bootstrap`, as this repo's own `Dockerfile` does for its yarn
packages. The development environment stage, the final stage of a non-server
repo, runs `script/bootstrap`. The new repo checklist says the same.
- 2026-10-04: Added a root `.gitattributes` that merges `TODO.md` with git's
union merge (issue 98), so two branches that each add an entry at the top of
Completed Steps merge without a conflict. Git now never reports a conflict in
`TODO.md`: a real conflict elsewhere keeps both versions of the line, and when
two new entries share an identical line, one is inserted into the middle of
the other, which a rebase can do to an entry already on `next`. Read the
merged entries after every merge or rebase. This applies to this repository
only; no canonical file changed.
- 2026-10-04: The canonical `.dockerignore` now also keeps out the git `config`
of a submodule that keeps its own `.git` directory, which still reached the
image (issue 88): both git patterns now carry the `**/` prefix. A submodule
whose name has a `config` segment (`config`, `deploy/config`, `config/lib`)
still loses its whole git directory, so Go's version stamping fails the build;
the file records this as a `KNOWN GAP:` with the remedy,
`git submodule add --name`. Closing it would take a wildcard re-include, which
makes BuildKit walk every excluded directory, such as `node_modules`, on every
build. `REPO_POLICIES.md` and both checklists say so in the same words.
- 2026-10-04: The note under the canonical Go `Dockerfile` example in
`REPO_POLICIES.md` now installs lint-phase system libraries with `apt-get`
under their Debian package names (issue 83). The `golangci/golangci-lint`
image is Debian-based and has no `apk`, so the old `apk add` instruction
failed as written. Nothing is pinned or unpinned; that is still open on
issue 72.
- 2026-10-04: Fixed the server lifecycle example in
`prompts/GO_HTTP_SERVER_CONVENTIONS.md` (issue 86). Only fx handles SIGINT and
SIGTERM, and `Run()` in `main` exits with the shutdown's exit code. A listen
error asks fx to shut down with exit code 1 through `fx.Shutdowner`; a Sentry
start failure is returned from the server's start hook instead of calling
`os.Exit` from a goroutine, so the stop hooks of what had started still run.
The server's stop hook shuts the HTTP server down within 5 seconds and fails
when requests are still running. A new paragraph says who owns signals and the
exit code.
- 2026-10-04: `REPO_POLICIES.md` now says how a Go tool a repo needs on the host
is pinned (issue 37): installed with `go install` pinned to a commit hash,
never tracked as a `go.mod` tool dependency or through a `tools.go` file.
golangci-lint is unaffected, since no repo installs it on the host.
- 2026-10-04: The canonical `.gitignore` and `.dockerignore` now also keep out
`id_ecdsa_sk` and `id_ed25519_sk`, the private key files `ssh-keygen` writes
for keys backed by a hardware security key (issue 81). Their `.pub` halves
stay trackable.
- 2026-10-04: `package.json` now has `"license": "MIT"`, matching `LICENSE`, so
yarn no longer prints "No license field" when `script/bootstrap` runs it
inside the Docker phases (issue 76). That was the only yarn warning there.
- 2026-10-04: `REPO_POLICIES.md` now states that guidance for coding agents
lives in one `AGENTS.md` at the repository root, never under a file or
directory named after one agent tool and never in separate memory files (issue
31). This retires the rule, still present in older vendored copies, that kept
agent memory as committed files under `.claude/memory/`. `AGENTS.md` joins the
list of files allowed in the root, and both checklists say so.
- 2026-10-04: Rewrote the note under the canonical Go `make test` example in
`REPO_POLICIES.md` (issue 77), which still named the cache-busting build
argument that `--no-cache` replaced. It now says where Go's test result cache
can replay a pass: on a developer's machine, where the Makefile target runs,
and not in the `test` phase of the `Dockerfile`, whose base image and earlier
steps hold no result for the repo's tests.
- 2026-10-04: The Makefile examples in the Go styleguide and the HTTP server
conventions now fall back to `dev` when `git describe` prints nothing (outside
a git checkout, or where git is missing or refuses the checkout), instead of
stamping an empty version (issue 74). The canonical `Dockerfile` already fails
on a `dev` version when `.git` is in the build context.
- 2026-10-04: The canonical `.dockerignore` now also keeps out each submodule's
`config` (issue 75). A submodule's git directory lives under `.git/modules/`,
nested again for its own submodules, and its `config` can hold a credential
just like `.git/config`. The pattern `.git/modules/**/config` covers every
depth and leaves the top-level `.git` that `git describe` reads untouched.
`REPO_POLICIES.md` and both checklists say so in the same words.
- 2026-10-03: Fixed two defects in the canonical Go `Dockerfile` example (issue
73). The test phase now uses the Debian Go image, since `-race` needs cgo and
the alpine image has no C compiler, so the phase failed before running a test.
The stage that compiles runs `git config --system --add safe.directory /src`,
because a context sent as a tar stream keeps the sender's file owners and git
refuses that checkout, leaving the version empty. Both checklists state that
step in the same words.
- 2026-10-03: Moved the canonical golangci-lint to v2.14.0, built with go1.27,
because v2.12.2 refuses to lint a module whose `go` directive is 1.27 (issue
65). Releases from v2.13.0 deprecate `exhaustruct` in favour of
`exhaustruct_v5`, which `default: all` switches on, so the canonical
`.golangci.yml` now disables `exhaustruct_v5` beside `exhaustruct`. v2.12.2
rejects that file, so `REPO_POLICIES.md` and both repo checklists now say a
repo sets the lint phase digest and re-vendors `.golangci.yml` in one commit.
- 2026-10-03: Brought the canonical `.gitignore` level with `.dockerignore` on
secrets (issue 38): it now also ignores `prod.env`-style `*.env` files,
`.envrc`, `*.p12`, `*.pfx` and the extensionless SSH private keys, written to
`.gitignore`'s own rules (no `**/` prefix) and case-folded with character
ranges. `example.env` and `sample.env` stay trackable through negations.
- 2026-10-02: The image version now comes from git inside the build (issues 69
and 71), superseding the 2026-09-08 entry that excluded `.git`. The canonical
`.dockerignore` sends `.git` but keeps out `.git/config`, which can hold a
credential. The Dockerfile example in `REPO_POLICIES.md` installs `git`, takes
the `VERSION` build argument when one is given and otherwise
`git describe --tags --always`, and fails when `.git` exists but the version
is empty, `dev` or `unknown`; a plain `docker build .` with no build arguments
must succeed. This repo's `script/docker` and `script/cibuild` still pass
`--build-arg VERSION`, since its own `Dockerfile` compiles nothing.
- 2026-09-08: Moved linting and testing into Docker as phases of the main
`Dockerfile`, per the owner ruling on issue 40. `script/lint` and
`script/test` build one phase each by name with `--no-cache` — the same answer
issue 26 got, so no separate cache-busting mechanism survives — and the final
stage copies a harmless file from both, so the image cannot be built unless
they pass. This also closes issue 30: a container has its own result cache and
its own lock, so a lint verdict can no longer belong to another checkout. No
separate lint Dockerfile, and no `golangci-lint config verify` step.
`script/check` runs the gates and nothing else, and `script/cibuild`
bootstraps first, since it is all CI runs and `script/fmt-check` is native.
- 2026-09-08: Kept in-repo agent scratch out of the Docker build context and out
of version control: `.claude/` is one full checkout of the repo per in-flight
agent, and under `COPY . .` all of it was reaching the image. Also closed the
consequence of excluding `.git` — `git describe` yields an empty version
inside a build stage without failing, so `script/docker` and `script/cibuild`
now compute the version on the host and pass `--build-arg VERSION`.
- 2026-09-08: Closed the secret exposure in the canonical `.dockerignore`: a
local `.env`, `*.pem` or `*.key` was reaching the build context under
`COPY . .`, invisible to every git-based check. The patterns are now written
to `.dockerignore`'s own semantics — `**/`-prefixed so they hold at every
depth, case-folded with character ranges — and `REPO_POLICIES.md` requires
verifying by enumerating the image rather than by reading the file.
- 2026-09-08: Made a pinned tool in `script/bootstrap` actually reach the host.
`REPO_POLICIES.md` now requires comparing the installed version against the
pin rather than testing `PATH` presence, and re-resolving the binary through
`PATH` after installing, so a version bump cannot be a silent no-op and a
shadowed install cannot report success.
- 2026-09-08: Closed the false green in the canonical CI gate: `script/cibuild`
and `script/docker` now build with `--no-cache`, so the Dockerfile's check
layers cannot be served from cache on an unchanged tree, and the text claiming
a bare `docker build .` proves the checks ran is corrected in
`REPO_POLICIES.md`, both checklists and the Go styleguide.
- 2026-09-03: Added `-count=1` to both `go test` invocations in the canonical Go
`make test` example in `REPO_POLICIES.md`, so the target cannot report a
cached pass it did not earn, and documented that Go's test-result cache is a
second, independent cache stacked below the Docker layer cache.
- 2026-08-31: Migrated the canonical `.golangci.yml` from the deprecated
`gomodguard` to `gomodguard_v2`: the old linter is disabled by name (which is
what silences the deprecation warning), the successor is named explicitly in
`linters.enable`, and it carries a `blocked` module list drawn only from
decisions already recorded in the Go package defaults.
- 2026-08-10: Closed three gaps the containerised-lint rule left between the
canonical text and the first repos to implement it. `.dockerignore` excluding
the agent scratch directory is now stated as a correctness precondition of
that rule rather than a context-size measure: the lint image lints whatever
`COPY . .` copies, and toolchains discover files by walking the tree instead
of reading `.gitignore`, so a nested worktree puts the foreign-tree false reds
back inside the container — `sneak/quak` measured the same discovery mechanism
taking a test count from 210 to 1050. The cache-bust arg is fixed at
`CHECK_EPOCH` in `Dockerfile.lint` as well, because a per-file name is
invisible to the grep that proves every build is busted, making a renamed
guard indistinguishable from a missing one. And the formatting check is now
required to run in exactly one of the two images, with either placement
allowed: splitting lint out of the `Dockerfile` is precisely when `fmt-check`
gets dropped from both, and running the formatter beside the linters is the
better shape where it is the same pinned dependency.
- 2026-08-10: Moved every lint run into a container, on the owner's ruling, and
made this repo do it rather than merely document it. `script/lint` is now
`docker build -f Dockerfile.lint .` and nothing else; the linter is never
installed on the host and never invoked there, so a run cannot inherit another
checkout's content-keyed result cache, the host-global
`$TMPDIR/golangci-lint.lock`, or a host toolchain that differs from the pinned
one — the three mechanisms behind a confirmed false green, a string of
findings reported against other agents' checkouts, and a container that saw
thirteen findings the host missed. Linting runs as a build step, so a
successful build is a clean lint, which also works where the docker daemon is
remote and bind mounts are impossible. The recursion this creates is resolved
by direction rather than by detection: the main `Dockerfile` runs the
individual non-lint checks instead of `make check`, and `script/cibuild` runs
`script/lint` first, so no build ever nests a build. `Dockerfile.lint` carries
the same `CHECK_EPOCH` guard as the main image, with the `ARG` below the
dependency layer so only the lint steps re-run — blanket `--no-cache` was
rejected because it makes every lint reinstall its dependencies over the
network. Two canonical forms were superseded rather than left standing beside
the new one, since consuming repos read this document literally: the
`script/bootstrap` golangci-lint install (nothing runs a host linter now, so
it can only reintroduce skew; the version-enforcement principle stays
documented for other pinned host tools) and the per-checkout
cache/lock/`.lint-cache` wrapper (its whole subject was making a host run
trustworthy). The Go multistage lint stage goes with them: it ran `make lint`,
which is now a docker build. `golangci-lint config verify` was kept on
measurement, not preference — a bogus config key passes `golangci-lint run`
with `0 issues` and fails `config verify`, and every case reproduced
byte-identically under `docker run --network none`, so the schema is embedded
in the pinned binary and the line costs no network. Verified with two
consecutive runs on an unchanged tree both executing the linter, a planted
violation caught and reverted, the bare-build guard firing, and the main image
building without attempting a nested build.
- 2026-08-09: Made a golangci-lint result belong to the tree that asked for it.
REPO_POLICIES.md now carries the canonical Go `script/lint`, which gives the
linter per-checkout `GOLANGCI_LINT_CACHE` and per-checkout `TMPDIR`. The two
are separate defects and the second is the one that gets dropped: the result
cache is keyed on file content rather than location, so checkouts holding
identical files serve each other's findings under the other's path, while the
concurrency lock is `$TMPDIR/golangci-lint.lock` — host-global, independent of
the cache, and unaffected by isolating it. Moving workers from worktrees to
their own clones does not help either half; it only removes the foreign-path
artefact that made the defect visible. The lock error is retried rather than
surfaced, because it is not a result: it exits non-zero exactly as findings
do, and reporting it as findings sends a correct branch back for rework.
Detection is on the stderr stream and never on exit status, so a finding
quoting the lock message in source cannot be retried away, and exhaustion
exits 75 with a VOID message rather than passing or failing quietly.
`--allow-serial-runners` (which keeps the guard and queues) covers the
same-checkout overlap that `TMPDIR` scoping cannot; `--allow-parallel-runners`
is rejected outright. The stdout and stderr capture files are per invocation
rather than per checkout, because serialising the linter does not serialise
the shell's redirections: two runs in one checkout — the overlap the flag
exists to support — would otherwise truncate and read each other's output,
which is the same defect one layer above where it was fixed. Both checklists
gained the corresponding items, since a half-fix that sets only the cache
reads as complete. `GOCACHE` was measured and does not need isolating.
Verified with the snippet extracted from the committed document and executed
as a consuming repo would adopt it, against paired controls: contamination
reproduced on the pre-fix form and absent on the adopted one, retry engaged,
exhaustion loud, a genuine finding still reported, and a held host lock
failing the pre-fix script while leaving the adopted one untouched.
- 2026-08-09: Kept in-repo agent scratch out of the Docker build context and out
of version control. `.claude/` holds one worktree — an entire additional
checkout of the repo — per in-flight agent, and under `COPY . .` all of it was
reaching the image: another session's unreviewed, sometimes uncommitted work,
inflating the context by a multiple of the repo and invalidating `COPY` for
reasons unrelated to the repo's own content. The `.dockerignore` entry is
root-anchored, because the directory occurs exactly once where agents run at
the repo root and the `**/` form additionally deletes any nested directory of
that name — with the residual gap that follows from anchoring (a monorepo
running agents in subdirectories still ships `services/api/.claude/`) stated
in the canonical `.dockerignore`, the policy and the existing-repo checklist,
since consuming repos receive the files rather than the tracker; the
`.gitignore` entry is unanchored, because `.gitignore` patterns already match
at every depth, and each file is written to its own semantics rather than
derived from the other. Also closed the consequence that ships broken
silently: excluding `.git` means `git describe` cannot run in any build stage
and yields an empty version without erroring, so `script/docker` and
`script/cibuild` now compute the version on the host and pass
`--build-arg VERSION`, and `REPO_POLICIES.md` states where `VERSION` comes
from instead of leaving the reader to fill the gap with `git describe` inside
the build. The two Go documents that carry the `GOLDFLAGS` pattern were
corrected in the same pass, from `:=` to `?=`, since a `$(shell git describe)`
evaluated inside a build stage is exactly the empty version this closes.
Verified by enumerating a probe image before, after, and against the
`**/`-prefixed form, with a positive control and the `CHECK_EPOCH` cache
verification re-run under the changed build context.
- 2026-08-09: Closed the secret exposure in the canonical `.dockerignore`: a
developer's local `.env`, `*.pem` or `*.key` was reaching the Docker build
context under `COPY . .`, invisible to every git-based check because
`.gitignore` covers it. The patterns are written to `.dockerignore`'s own
`moby/patternmatcher` semantics — `**/`-prefixed so they hold at every depth,
which also fixes nested `node_modules` — rather than transplanted from
`.gitignore`, whose unprefixed form protects only the repository root while
reading as solved. Coverage extends past the `.env`/`.pem`/`.key` trio to the
`prod.env` convention, `.envrc`, PKCS#12 bundles and extensionless SSH keys,
every one of them case-folded with character ranges because matching is
case-sensitive and an ALL-CAPS twin per pattern still misses `Server.Key`.
`REPO_POLICIES.md` and both repo checklists now state that asymmetry and
require verification by enumerating the image rather than by reading the
patterns. Verified with a probe image before, against three naive forms
(unprefixed, lowercase-only, ALL-CAPS-doubled), and after.
- 2026-08-09: Made the pinned golangci-lint actually propagate: REPO_POLICIES.md
now carries the canonical `script/bootstrap` snippet for Go repos, which
installs when the installed version does not match the pin (the old
`if missing` guard tested PATH presence only, so pins were inert on any
provisioned machine and CI silently disagreed with local) and then re-resolves
the binary through `PATH` and fails loudly, naming the shadowing path, when
the install did not take effect — the failure mode the naive
compare-then-install fix leaves behind while reporting success.
- 2026-08-09: Fixed the false green in the canonical CI gate: `script/cibuild`
and `script/docker` now pass a per-invocation `CHECK_EPOCH` nonce, and the
`Dockerfile` (plus the Go multistage template in REPO_POLICIES.md, in both its
lint and builder stages) declares `ARG CHECK_EPOCH` with a guard that makes a
bare `docker build .` fail closed. Corrected the org-canonical text that
asserted a successful build implies all checks pass, across every document
carrying it: `REPO_POLICIES.md`, both repo checklists (which still told agents
to write the pre-fix `script/cibuild` and ended on an acceptance item the
guard makes unsatisfiable), and the Go styleguide.
- 2026-08-07: Set the canonical `.golangci.yml` to the org-standard v2-schema
config already deployed byte-identical across the org's Go repos (settings
under `linters.settings` so thresholds like lll/funlen/cyclop/dupl actually
+1 -3
View File
@@ -1,7 +1,5 @@
{
"private": true,
"devDependencies": {
"prettier": "3.8.1"
},
"packageManager": "yarn@4.18.1"
}
}
-20
View File
@@ -1,20 +0,0 @@
---
title: API Policies
last_modified: 2026-10-27
---
A value in an API response is never a string with a label or unit in it. A value
of a native type is sent as that type, and its unit goes in the field name, for
example `_ms`.
Wrong:
```json
{ "execution_time": "0 ms" }
```
Right:
```json
{ "execution_time_ms": 0 }
```
+52 -47
View File
@@ -1,16 +1,13 @@
---
title: Code Styleguide — Go
last_modified: 2026-11-07
last_modified: 2026-08-10
---
1. Format Go code with `gofmt` and then `golines -m 77`, through `make fmt`.
Don't commit anything `make fmt` would change. The only exception is when
committing things that aren't yet syntactically valid, which should only
happen pre-v0.0.1 or on a non-`main` branch.
1. Try to hard wrap long lines at 77 characters or less.
1. Hard wrap long lines at 77 characters or less. `golines` does this for code.
Wrap comments and long string literals by hand, since `golines` leaves them
as they are.
1. Don't commit anything that hasn't been `go fmt`'d. The only exception is
when committing things that aren't yet syntactically valid, which should
only happen pre-v0.0.1 or on a non-`main` branch.
1. Even if you are planning to deal with only positive integers, use
`int`/`int64` types instead of `uint`/`uint64` types. This is for
@@ -27,8 +24,7 @@ last_modified: 2026-11-07
1. Embed the git commit hash into the binary and include it in startup logs and
in health check output. This is to make it easier to correlate running
instances with their code. Do not include build time or build user, as these
will make the build nondeterministic. The architecture is not passed in at
build time; a program that reports it reads `runtime.GOARCH` at run time.
will make the build nondeterministic.
Example relevant Makefile sections:
@@ -39,27 +35,38 @@ last_modified: 2026-11-07
import (
"fmt"
"runtime"
)
var Version string
var (
Version string
Buildarch string
)
func main() {
fmt.Printf("Version: %s\n", Version)
fmt.Printf("Arch: %s\n", runtime.GOARCH)
fmt.Printf("Buildarch: %s\n", Buildarch)
}
```
```make
# ?= rather than := so that a `VERSION` build argument takes precedence:
# where a build stage invokes make, `ARG VERSION` puts it in the
# environment and `?=` defers to it. Otherwise `git describe` runs, in a
# build stage on the `.git` the build context carries. When it prints
# nothing (outside a git checkout, or where git is missing or refuses the
# checkout), the version falls back to `dev`.
VERSION ?= $(or $(shell git describe --tags --always 2>/dev/null),dev)
# ?= rather than := because this `$(shell git describe ...)` is only
# correct on the host. `.dockerignore` excludes `.git`, so evaluated
# inside a build stage it expands to the empty string without failing
# and the binary reports no version at all. The version is computed on
# the host by `script/docker` / `script/cibuild` and passed with
# `--build-arg VERSION=...`. If this repo's Dockerfile compiles by
# invoking make (`RUN make build`), `ARG VERSION` in that stage puts the
# value in the environment and `?=` defers to it. The canonical Go
# template in REPO_POLICIES.md instead runs `go build` directly with
# `-ldflags "... -X main.Version=${VERSION}"`, so there this Makefile is
# a host-only path — but it is still `?=`, because a repo that later
# moves the build behind make must not silently start shipping an empty
# version. See the git-describe rule in REPO_POLICIES.md.
VERSION ?= $(shell git describe --always --dirty)
BUILDARCH := $(shell uname -m)
GOLDFLAGS += -X main.Version=$(VERSION)
GOLDFLAGS += -X main.Buildarch=$(BUILDARCH)
# osx can't statically link apparently?!
ifeq ($(UNAME_S),Darwin)
@@ -104,22 +111,26 @@ last_modified: 2026-11-07
1. For anything beyond a simple script or tool, or anything that is going to
run in any sort of "production" anywhere, make sure it passes
`golangci-lint`. Run it with `make lint`, never by invoking the binary: the
linter runs as a phase of the `Dockerfile` and is not installed on the host
by any repo. Invoked directly on a shared host it reads a result cache keyed
on file content rather than location, and a host-global lock, so its answer
may belong to another checkout entirely.
`golangci-lint`. Run it with `make lint`, which builds `Dockerfile.lint`:
the linter runs in a container, always, and is never installed on the host.
A `golangci-lint` invoked directly on a shared host reads a result cache
keyed on file content rather than location and a host-global lock, so its
answer may belong to another checkout entirely.
1. Write a `Dockerfile` for every repo, even if it only runs the tests and
linting. It carries the lint and test phases, and the final stage depends on
both, so a build makes sure the code is in an able-to-be-compiled state,
linted, and its tests run. Go through `script/cibuild` or `script/docker`
rather than a bare `docker build .`: they pass a new `CACHEBUST` value on
every build, which reruns every step that lints, tests or compiles and keeps
the system packages, Go's modules and build cache, and golangci-lint's
cache; `--no-cache` would throw all of them away. Without a new value an
unchanged tree serves the gate layers from cache and the build reports a
green it never ran.
1. Write a `Dockerfile` for every repo, even if it only runs the tests. It runs
the non-lint checks; linting lives in `Dockerfile.lint` and is run by
`script/cibuild` before the main build, because `script/lint` is itself a
`docker build` and cannot run inside one. So `script/cibuild` is what
guarantees the code is in an able-to-be-compiled state, linted, and tested —
**a successful `docker build .` on its own does not, because it never
lints.** That guarantee holds only because each build passes a
per-invocation `CHECK_EPOCH` build arg that busts its check layers out of
the Docker cache; without it an unchanged tree serves those layers from
cache and the build reports a green it never ran. A bare `docker build .`
fails closed by design, on the `[ -n "$CHECK_EPOCH" ]` guard — always go
through `script/cibuild`, `script/docker` or `script/lint`. See
[Repository Policies](https://git.eeqj.de/sneak/prompts/raw/branch/main/prompts/REPO_POLICIES.md)
for the canonical form.
1. Every repo must have a `Makefile`. See
[Repository Policies](https://git.eeqj.de/sneak/prompts/raw/branch/main/prompts/REPO_POLICIES.md)
@@ -140,23 +151,17 @@ last_modified: 2026-11-07
1. Keep the `main()` function as small as possible.
1. Keep the `main` package as small as possible. Each `cmd/<name>/` directory
contains a single `main.go` whose body is one call into library code (for
example `os.Exit(cli.Main())` calling `internal/cli`). All CLI logic — flag
parsing, subcommand dispatch, argument handling, output formatting — lives
in `internal/` or `pkg/`, not in `cmd/`. `main` is just an entrypoint to
your code, not a place for implementations. Exception: single-file scripts.
1. No project logic outside `internal/` or `pkg/`. Anything in `cmd/` is a thin
entrypoint only.
1. Keep the `main` package as small as possible. Move as much code as is
feasible to a library package, even if it's an internal one. `main` is just
an entrypoint to your code, not a place for implementations. Exception:
single-file scripts.
1. HTTP HandleFuncs should be returned from methods or functions that need to
handle HTTP requests. Don't use methods or your top level functions as
handlers.
1. The repository's own entries at the end of `.gitignore`, which a re-vendor
keeps, ignore at least `*.log`, `*.out`, and `*.test` files, as well as any
binaries.
1. Provide a .gitignore file that ignores at least `*.log`, `*.out`, and
`*.test` files, as well as any binaries.
1. Constructors **must** be called `New()`. `modulename.New()` works great if
you name the packages properly. If the constructor creates an instance from
+2 -3
View File
@@ -1,6 +1,6 @@
---
title: Code Styleguide — JavaScript
last_modified: 2026-11-04
last_modified: 2026-02-22
---
1. Use `const` for everything. If you need to reassign, use `let`. Never use
@@ -8,8 +8,7 @@ last_modified: 2026-11-04
1. Use yarn for package management, avoid using npm.
1. Install node from the distribution. If its version is too old, use a newer
distribution.
1. Use LTS node versions.
1. Use `prettier` for code formatting, with four spaces for indentation.
+102 -239
View File
@@ -1,6 +1,6 @@
---
title: Existing Repo Checklist
last_modified: 2026-11-07
last_modified: 2026-08-10
---
Use this checklist when beginning work in a repo that may not yet conform to our
@@ -24,179 +24,88 @@ with your task.
- [ ] `LICENSE` file exists and matches the README
- [ ] `REPO_POLICIES.md` exists and version date is current — fetch from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/prompts/REPO_POLICIES.md`
- [ ] Guidance for coding agents, if the repo has any, is one `AGENTS.md` at the
root — never a file or directory named after one agent tool, such as
`CLAUDE.md` or `.claude/`, and never separate memory files. Move what any
such committed file says into `AGENTS.md` and delete it.
- [ ] `.gitignore` is comprehensive (OS, editor, agent scratch, secrets, the
repo's own build outputs) — fetch from
- [ ] `.gitignore` is comprehensive (OS, editor, agent scratch, language
artifacts, secrets) — fetch from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.gitignore` if missing.
An existing repo usually has a hand-written one that is never re-fetched,
so check the entries rather than the file's presence. The file is the
canonical content followed by the repo's own entries, such as its
binaries; a re-vendor replaces the canonical part and keeps those entries.
so check the entries rather than the file's presence: `.claude/` in
particular, unanchored, so agent worktrees cannot be committed by
accident. Do not give it a `**/` prefix — that is a `.dockerignore` form
and is wrong here.
- [ ] `.editorconfig` exists — fetch from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.editorconfig`. The
file is the canonical content followed by the repo's own sections, such as
one for another language it uses; a re-vendor replaces the canonical part
and keeps those sections.
- [ ] `Dockerfile` and `.dockerignore` exist; the Dockerfile carries a `lint`
phase and a `test` phase, and the final stage carries a `COPY --from=` of
a harmless file from each — fetch `.dockerignore` from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.dockerignore`
- [ ] Nothing has been appended after the final stage, and the gate phases are
reachable from it. A stage nothing depends on is built only when
`--target` names it, so a lost `COPY --from=` edge leaves `docker build .`
passing while the gate never runs. Confirm by planting a violation, not by
reading the file.
- [ ] In every stage, every step that lints, tests or compiles comes after
`ARG CACHEBUST`. `ARG CACHEBUST` comes right after these steps:
- the steps that install system packages
- the steps that download Go's modules
- the step that runs `script/bootstrap` to install a Python `test` phase's
packages from `Pipfile.lock`
- [ ] A stage with none of these steps declares `ARG CACHEBUST` right after
`FROM`. A step that also installs anything else comes after
`ARG CACHEBUST` too. A `script/bootstrap` that also installs node packages
is one. The `script/` builds pass a new `CACHEBUST` value on every build,
which reruns every `RUN` step after that line and leaves the layers above
it and the cache mounts in place; `--no-cache` would build those layers
again and empty the mounts. A stage without the `ARG` line is served from
cache on an unchanged tree, so the scripts and the `ARG` lines are
re-vendored in one commit.
- [ ] Go: each Go stage downloads the modules (`COPY go.mod go.sum ./`,
`RUN go mod download`) above `ARG CACHEBUST`; the steps that compile
(`golangci-lint run`, `go test`, `go build`) mount Go's build cache
(`--mount=type=cache,target=/root/.cache/go-build`), `golangci-lint run`
also mounts golangci-lint's
(`--mount=type=cache,target=/root/.cache/golangci-lint`), and no step
mounts anything else; both `go test` runs carry `-count=1`; a first run
that timed out gets no rerun, as in the canonical Go `Dockerfile` in
`REPO_POLICIES.md`
- [ ] Python: a `test` phase that installs its packages from `Pipfile.lock` does
it above `ARG CACHEBUST`, with `COPY script/ script/`,
`COPY Pipfile Pipfile.lock ./` and `RUN script/bootstrap`. When
`script/bootstrap` runs in that step, it installs nothing beyond these:
- system packages
- pipenv and its dependencies
- the packages from `Pipfile.lock`
It creates a virtual environment at `$HOME/.pipenv` with `python3 -m venv`
when it is missing, then uses that environment's `pip` and `pipenv`. On a
host, it first installs the distribution's python and venv packages when
they are missing. It installs pipenv and its dependencies by hash, with
`pip install --require-hashes`. It installs the packages from `Pipfile.lock`
with `pipenv install --deploy`, plus `--dev` when the tests need the
development packages. It sets `PIP_ONLY_BINARY=:all:` for both installs, so
a package with no wheel for the image stops the install. In that step it
installs no Python, because a step above it already did. `Pipfile` names no
`python_version`, because `--deploy` stops when the distribution's Python
differs from it. The tests run after `ARG CACHEBUST`, and every other stage
installs its Python packages after it, as in the Python `test` phase example
in `REPO_POLICIES.md`
- [ ] The gate phases invoke their tools directly, never through `make lint` or
`script/test` — those are themselves a `docker build` and would recurse
inside a build step
- [ ] Every depth-independent pattern in `.dockerignore` carries a `**/` prefix,
only genuinely root-anchored entries such as `.claude` are unprefixed, and
`.gitignore`'s patterns have not been transplanted unmodified — the
transplanted form leaves `config/.env` and `certs/server.key` in the build
context while reading as solved
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.editorconfig`
- [ ] `Dockerfile` and `.dockerignore` exist (fetch `.dockerignore` from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.dockerignore`);
Dockerfile runs the **non-lint** checks as build steps (`script/test`,
`script/fmt-check`), and every stage containing a check-running `RUN`
declares `ARG CHECK_EPOCH` with the `RUN [ -n "$CHECK_EPOCH" ] || exit 1`
guard immediately below it — see the `CHECK_EPOCH` rule in
`REPO_POLICIES.md`. Without them the check layer is served from cache on
an unchanged tree and the build reports a green it never ran.
- [ ] The `Dockerfile` no longer runs `make check`, and no longer has a `lint`
stage or a `COPY --from=lint ... /dev/null` ordering line. This is the
item an existing repo most often fails: `script/lint` is now a
`docker build`, so both of those nest a docker build inside a build step.
Delete the stage; `script/cibuild` running `script/lint` first is what
replaces its fail-fast purpose.
- [ ] `Dockerfile.lint` exists and `script/lint` builds it — see the
containerised-lint rule in `REPO_POLICIES.md` for the canonical file. Its
base image is pinned by sha256 with a version/date comment, it carries
`ARG CHECK_EPOCH` **after** the dependency layer with the guard below it,
and it invokes the linter directly rather than through `make lint`. The
arg is named `CHECK_EPOCH` in this file too — a repo that calls it
`LINT_EPOCH` here is missed by the grep that checks every build is
cache-busted.
- [ ] The formatting check runs in exactly one of the two images — either
`script/fmt-check` in the `Dockerfile` or the formatter beside the linters
in `Dockerfile.lint`, whichever puts it on the pinned toolchain. Neither
image running it is the failure to look for here, since moving lint out of
the `Dockerfile` is exactly when it gets dropped.
- [ ] `.dockerignore` excludes the repo's own host-built artifacts (compiled
binaries, test binaries, coverage output), written root-anchored —
`/myapp`, never `**/myapp`. An existing repo is where such a binary is
likeliest to already be sitting in the build context, invisible to git.
- [ ] `.claude/` is in `.gitignore` (unanchored) and `.claude` in
`.dockerignore` (anchored, no `**/` prefix). Agent worktrees are entire
checkouts of the repo, so they inflate the context by a multiple of it and
can copy another session's unreviewed work into an image layer. If agents
here run anywhere other than the repo root, the anchored entry misses
`services/api/.claude/`: add anchored entries for those directories.
- [ ] If the repo embeds a version in a binary: `.dockerignore` lets `.git` into
the build context. It keeps out every git `config` at any depth
(`**/.git/config`, `**/.git/modules/**/config`):
- the repository's own
- each submodule's under `.git/modules/`
- that of a submodule keeping its own `.git` directory
`git describe` does not need them, and each can hold a credential: a
password in a remote URL, or the token the CI checkout step stores there.
Some submodule names have a `config` segment, as in `config`,
`deploy/config` or `config/lib`. Such a submodule loses its whole git
directory to `**/.git/modules/**/config`, and Go's version stamping then
fails the build. Give it a name without that segment
(`git submodule add --name`). The stage that compiles has `git`: the Debian
Go image has it, and an alpine one needs `apk add --no-cache git`. That
stage takes the version from the `VERSION` build argument when one is given,
otherwise from `git describe --tags --always`. That gives:
- the tag, on a tagged commit
- the tag, the number of commits since it and the short commit
(`v1.2.3-4-gabc1234`), on a later commit
- the short commit, when no tag is reachable
The stage that compiles also marks its working directory safe for git
(`git config --system --add safe.directory /src`). A context sent as a tar
stream keeps the sender's file owners, and git refuses a checkout owned by
another user, so the version would come out empty. `ARG VERSION` has no
default. The build fails if the context carries `.git` and the version still
comes out empty, `dev` or `unknown`. A plain `docker build .` with no build
arguments must succeed; a Dockerfile that refuses an empty build argument
drops that refusal and keeps the argument. A checkout whose `.git` is a file
is the exception: a linked worktree, or a repository checked out as a
submodule. That file points to a git directory outside the build context, so
the build cannot read the version and a plain `docker build .` fails. Pass
the version with `--build-arg VERSION=...`. `script/docker` and
`script/cibuild` already pass the version they compute on the host; it takes
precedence. The canonical `.gitea/workflows/check.yml` sets `fetch-depth: 0`
on its checkout step, which otherwise clones shallow and fetches no tags, so
a CI build finds the tag too.
`/myapp`, never `**/myapp`, which would also match `cmd/myapp/`. An
existing repo is where such a binary is likeliest to already be sitting in
the build context, invisible to git.
- [ ] `.dockerignore` excludes `.claude`, root-anchored and with no `**/`
prefix. Agent worktrees are entire checkouts of the repo, so they inflate
the context by a multiple of it and can copy another session's unreviewed
work into an image layer — and `Dockerfile.lint` then lints that checkout
as though it were this one, because toolchains discover files by walking
the tree and never read `.gitignore` (`sneak/quak`: 210 discovered tests
became 1050). Confirm by enumerating the image, not by reading the file —
`.gitignore` hides these from `git status` too.
- [ ] **Do agents in this repo run anywhere other than the repo root?** The
scratch directory is created in the agent's working directory, so the
canonical anchored entry misses `services/api/.claude/` in a monorepo with
a per-service agent — it still reaches the build context and the image. An
existing repo is where such a layout already exists, so check it here
rather than assuming the canonical entry covers you: add anchored entries
for the subdirectories that have one (`/services/api/.claude`), or
`**/.claude` once you have confirmed no legitimately named nested
directory would be caught.
- [ ] If the repo embeds a version in a binary, that version is computed on the
host and passed with `--build-arg VERSION=...` by `script/docker` and
`script/cibuild`. No stage calls `git describe`: `.dockerignore` excludes
`.git`, so it yields an empty version without failing the build. A
tag-derived version additionally needs `fetch-depth: 0` on the CI checkout
step, which clones shallow and fetches no tags by default.
- [ ] Every depth-independent pattern in `.dockerignore` carries a `**/` prefix;
only genuinely root-anchored entries such as `.git` are unprefixed, and
`.gitignore`'s patterns have not been transplanted unmodified.
`.dockerignore` anchors an unprefixed pattern at the context root, so the
transplanted form leaves `config/.env` and `certs/server.key` in the build
context while reading as solved — see the `.dockerignore` rule in
`REPO_POLICIES.md`.
- [ ] Gitea Actions workflow in `.gitea/workflows/` runs `script/cibuild` on
push, checks out with `persist-credentials: false` and with
`fetch-depth: 0` (which fetches the tags `git describe` needs), carries
the `concurrency` block that lets a new push cancel only the same branch's
older run, and sets `timeout-minutes: 20` on the `check` job so a hung
build frees the shared runner — reference
push — reference
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.gitea/workflows/check.yml`
- [ ] Language-specific config:
- [ ] Go: `go.mod`, `go.sum`, `.golangci.yml` (fetch from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.golangci.yml` and,
in the same commit, set the lint phase digest to the one named in the
`.golangci.yml` paragraph of `REPO_POLICIES.md`)
- [ ] JS: `package.json`, `yarn.lock`, `.yarnrc.yml`, `.yarn/releases/`,
`.gitattributes`, `.prettierrc`, `.prettierignore` (fetch the last two
from `https://git.eeqj.de/sneak/prompts/raw/branch/main/.prettierrc`
and
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.prettierignore`).
- [ ] Any repository with `yarn.lock`: that file is in yarn 4's format. If
its second line says `yarn lockfile v1`, convert it with the steps
below. Do them in one commit with the re-vendored scripts, because
yarn 1 ignores `--immutable` and exits 0 on a tree with no
`.yarnrc.yml`. Run them with any distribution's node and yarn, and use
`yarnpkg` on Debian and Ubuntu.
1. Read the version from `yarnPath` in
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.yarnrc.yml`.
2. Run `yarn set version <version>`. It writes
`.yarn/releases/yarn-<version>.cjs`, `yarnPath` in `.yarnrc.yml`, and
`packageManager` in `package.json`.
3. Add `nodeLinker: node-modules` and `enableTelemetry: false` to
`.yarnrc.yml`.
4. Run `yarn install` once. It converts `yarn.lock`, and each package
keeps its version and gains a `checksum`.
5. Delete `approvedGitRepositories`, `enableScripts` and
`npmMinimalAgeGate` from `.yarnrc.yml`. The conversion wrote them.
They allow install scripts, any git repository and packages of any
age, which yarn otherwise refuses.
6. In `package.json`, name any package that must run its install script,
as `"dependenciesMeta": { "<name>": { "built": true } }`, and run
`yarn install` again.
7. Add `.yarn/*` and `!.yarn/releases` above the secret patterns in
`.gitignore` and `.dockerignore`. Docker obeys the last matching
line, and the secret patterns must win. Add `.yarn/` to
`.prettierignore`, and `.yarn/releases/** binary` to
`.gitattributes`.
8. Run `yarn install --immutable`. It must pass and change nothing.
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.golangci.yml`)
- [ ] JS: `package.json`, `yarn.lock`, `.prettierrc`, `.prettierignore`
(fetch from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.prettierrc` and
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.prettierignore`)
- [ ] Python: `pyproject.toml`
- [ ] Docs/writing: `.prettierrc`, `.prettierignore` (same URLs as above)
@@ -213,80 +122,42 @@ with your task.
`script/install-precommit`, shimmed by `make hooks`) runs it
- [ ] README has an **Entrypoints** section documenting the `script/`
entrypoints and linking the standard
- [ ] `script/lint` and `script/test` each run
`docker build --build-arg CACHEBUST="$(date +%s)-$$" --target <phase> --output type=cacheonly .`,
which builds their phase by name and writes no image, and no host
invocation anywhere in the repo can produce a lint verdict — grep for the
linter's own name across `script/`, the `Makefile` and CI config, not just
`script/lint`. A second path is likeliest here: a `make lint-fast`, an
older host-versus-container branch, or a CI step calling the binary
directly. `script/fmt` and `script/fmt-check` are expected hits and stay
on the host.
- [ ] No `docker build` in `script/` leaves a dangling image behind:
`script/lint` and `script/test` write no image, and `script/docker` and
`script/cibuild` tag theirs. A build that writes an untagged image leaves
one behind on every run, on every host and CI runner.
- [ ] `script/cibuild` runs `script/bootstrap` before `script/check`, and builds
the image with a new `CACHEBUST` value on every build, like every
`docker build` in `script/`. Without the bootstrap the CI run dies in
`script/fmt-check`, which runs the formatter on the host and finds nothing
installed.
- [ ] `script/bootstrap` installs node, yarn and the node packages only when
`yarn.lock` is in the tree. node and yarn come from the distribution when
they are missing. It installs the node packages with
`yarn install --immutable`. The distribution's yarn only starts the
release file that `yarnPath` in `.yarnrc.yml` names, and that file does
the work.
- [ ] A `Dockerfile` stage that needs yarn may start from any distribution that
packages node and yarn. It copies `package.json`, `yarn.lock`,
`.yarnrc.yml` and `.yarn/releases/` before it runs `script/bootstrap`. A
stage that needs no yarn copies none of them.
- [ ] `script/bootstrap`, `script/fmt` and `script/fmt-check` run yarn by
whichever name is present: `yarn`, or `yarnpkg` on Debian and Ubuntu. With
neither name on `PATH`, `script/fmt` and `script/fmt-check` print one line
saying to run `script/bootstrap`, and exit 1.
- [ ] `script/bootstrap` installs no linter of its own — delete the block, its
version variables and its call site. A JS repo's `yarn install` stays; it
brings a linter along with every other dependency, and no verdict is taken
from it.
- [ ] `script/lint` is the canonical container build and nothing else. No host
linter invocation survives anywhere in the repo — grep for the linter's
own name in `script/`, the `Makefile` and CI config, not just in
`script/lint`. An existing repo is where a second path to the linter is
likeliest to exist: a `make lint-fast`, a container-versus-host branch, or
a CI step that calls the binary directly.
- [ ] `script/bootstrap` installs no linter. Delete the golangci-lint install
block, its version and ref variables, and its call site: nothing invokes a
host linter any more, so all it can still do is put a differently
versioned binary where somebody runs it by hand and believes the result.
- [ ] The per-checkout lint state is gone: no `GOLANGCI_LINT_CACHE` or `TMPDIR`
exports, no `--allow-serial-runners`, and `.lint-cache/` removed from
`.gitignore` and `.dockerignore`. A container has its own cache and its
own lock, so keeping the wrapper leaves two contradictory `script/lint`
forms in the fleet.
- [ ] `script/cibuild` runs `script/lint` before the main `docker build`.
Without that line CI never lints at all, because the main image
deliberately does not.
- [ ] `make check` does not modify any files in the repo
- [ ] `make test` has a 90-second timeout and completes within the 60-second
hard cap (over 20 seconds is green but must be filed as an improvement
bug)
- [ ] `make test` has a 30-second timeout
- [ ] `make test` runs real tests, not a no-op (at minimum, import/compile
check)
- [ ] `make check` passes on current branch
# Formatting
- [ ] Platform-standard formatter is configured (`black`, `prettier`, and for Go
`gofmt` then `golines -m 77`)
- [ ] Default formatter config, except four-space indents (not Go),
`proseWrap: always` for Markdown, and the Go 77-column limit
- [ ] Go: `script/bootstrap` installs `golines` with `go install` pinned to a
commit hash; `script/fmt-check` fails when `gofmt` or `golines -m 77`
would change a file
- [ ] Platform-standard formatter is configured (`black`, `prettier`, `go fmt`)
- [ ] Default formatter config, only exception: four-space indents (except Go)
- [ ] All files pass `make fmt-check`
# Git Hygiene
- [ ] Pre-commit hook is installed (`make hooks`)
- [ ] No secrets in the repo (`.env`, keys, credentials)
- [ ] No mutable references (tags, `@latest`) to what the repo downloads and
installs itself in scripts and Dockerfiles — all pinned by cryptographic
hash with version/date comment. Distribution packages are outside this
rule. They need no version and no hash, and updating and upgrading them is
fine too. In a `Dockerfile`, the distribution is the pinned base image's.
On a host, it is the host's, and the host's package manager stands for it,
nix and brew included. A package source that a `Dockerfile` adds itself is
not the distribution's own, so its packages are pinned
- [ ] node, yarn, npm, python, pip and venv come from the distribution wherever
possible, never from nvm, pyenv, corepack or `npm install -g yarn`. If the
distribution's version is too old, use a newer distribution. node means
the distribution's newest Node package, such as `nodejs-current` on Alpine
3.24
- [ ] yarn's release file is in git under `.yarn/releases/`, written once by
`yarn set version` with an exact version (repositories with `yarn.lock`)
- [ ] No mutable references in Dockerfiles or scripts (tags, `@latest`) — all
pinned by cryptographic hash with version/date comment
- [ ] Using `yarn`, not `npm` (JS projects)
# Directory Structure
@@ -315,17 +186,9 @@ with your task.
# Final
- [ ] `make check` passes
- [ ] `script/cibuild` succeeds in a fresh clone on a host carrying what CI has.
That host is the runner image
`docker.gitea.com/runner-images:ubuntu-latest`, which has docker, git and
node 24. Take any yarn off `PATH` first. The run must show that the checks
executed. A sub-second build means nothing ran. So does `CACHED` on a step
that lints or tests, one of the `RUN` steps below `ARG CACHEBUST`. Above
that line, these steps are expected to show `CACHED`:
- the steps that install system packages
- the steps that download Go's modules
- the step that runs `script/bootstrap` to install a Python `test` phase's
packages from `Pipfile.lock`
- [ ] A planted lint violation fails both `make lint` and a plain
`docker build .`; revert it afterwards
- [ ] `make lint` runs twice on an unchanged tree with the lint layer `DONE`
both times, never `CACHED` and never sub-second
- [ ] `script/cibuild` succeeds and runs both container builds (a bare
`docker build .` or `docker build -f Dockerfile.lint .` fails closed by
design, on the `CHECK_EPOCH` guard)
- [ ] Commit and merge fixes before starting your actual task
+86 -75
View File
@@ -1,6 +1,6 @@
---
title: Go HTTP Server Conventions
last_modified: 2026-10-04
last_modified: 2026-08-09
---
This document defines the architectural patterns, design decisions, and
@@ -106,9 +106,6 @@ project-root/
package main
import (
"os/signal"
"syscall"
"yourproject/internal/config"
"yourproject/internal/database"
"yourproject/internal/globals"
@@ -121,16 +118,15 @@ import (
)
var (
Appname string = "CHANGEME"
Version string
Appname string = "CHANGEME"
Version string
Buildarch string
)
func main() {
globals.Appname = Appname
globals.Version = Version
// A write to a closed stdout or stderr must not end the process.
signal.Ignore(syscall.SIGPIPE)
globals.Buildarch = Buildarch
fx.New(
fx.Provide(
@@ -204,8 +200,7 @@ Providers are resolved automatically by fx, but conceptually follow this order:
Database)
6. `middleware.New` - Middleware (depends on Logger, Globals, Config)
7. `handlers.New` - Handlers (depends on Logger, Globals, Database, Healthcheck)
8. `server.New` - Server (depends on all above, and on `fx.Shutdowner`, which fx
provides itself)
8. `server.New` - Server (depends on all above)
---
@@ -224,14 +219,16 @@ type ServerParams struct {
Config *config.Config
Middleware *middleware.Middleware
Handlers *handlers.Handlers
Shutdowner fx.Shutdowner
}
type Server struct {
startupTime time.Time
port int
exitCode int
sentryEnabled bool
log *slog.Logger
ctx context.Context
cancelFunc context.CancelFunc
httpServer *http.Server
router *chi.Mux
params ServerParams
@@ -253,15 +250,13 @@ func New(lc fx.Lifecycle, params ServerParams) (*Server, error) {
lc.Append(fx.Hook{
OnStart: func(ctx context.Context) error {
s.startupTime = time.Now()
if err := s.enableSentry(); err != nil {
return err
}
s.SetupRoutes()
s.httpServer = s.newHTTPServer()
go s.serveUntilShutdown()
go s.Run()
return nil
},
OnStop: func(ctx context.Context) error {
// Server shutdown logic
return nil
},
OnStop: s.cleanShutdown,
})
return s, nil
}
@@ -271,25 +266,23 @@ func New(lc fx.Lifecycle, params ServerParams) (*Server, error) {
```go
// internal/server/http.go
func (s *Server) newHTTPServer() *http.Server {
return &http.Server{
Addr: fmt.Sprintf(":%d", s.params.Config.Port),
func (s *Server) serveUntilShutdown() {
listenAddr := fmt.Sprintf(":%d", s.params.Config.Port)
s.httpServer = &http.Server{
Addr: listenAddr,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
Handler: s,
}
}
// serveUntilShutdown returns when the stop hook shuts the HTTP server down.
// If it stops for any other reason, such as its port being taken, it asks fx
// to shut down with exit code 1.
func (s *Server) serveUntilShutdown() {
s.log.Info("http begin listen", "listenaddr", s.httpServer.Addr)
s.SetupRoutes()
s.log.Info("http begin listen", "listenaddr", listenAddr)
if err := s.httpServer.ListenAndServe(); err != nil && err != http.ErrServerClosed {
s.log.Error("listen error", "error", err)
if err := s.params.Shutdowner.Shutdown(fx.ExitCode(1)); err != nil {
s.log.Error("shutdown request failed", "error", err)
if s.cancelFunc != nil {
s.cancelFunc()
}
}
}
@@ -301,30 +294,43 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
## Signal Handling and Graceful Shutdown
fx owns SIGINT, SIGTERM and the exit code. `Run()` in `main` waits for one of
those signals or for a call to `Shutdown()` on `fx.Shutdowner`, runs the stop
hooks, and exits 0 after a signal, or with the code the call gave in
`fx.ExitCode`. It exits 1 instead when a start hook or a stop hook returns an
error; when a start hook fails, fx first runs the stop hooks of everything
already started. No other code calls `signal.Notify` or `os.Exit`: the listen
error above asks fx to shut down with `fx.ExitCode(1)`, and a Sentry start
failure is returned from the start hook. Each component releases its own
resources in its own stop hook, which fx runs in the reverse order of start.
```go
// cleanShutdown is the server's stop hook. It fails when requests are still
// running after 5 seconds.
func (s *Server) cleanShutdown(ctx context.Context) error {
ctxShutdown, shutdownCancel := context.WithTimeout(ctx, 5*time.Second)
defer shutdownCancel()
err := s.httpServer.Shutdown(ctxShutdown)
func (s *Server) serve() int {
s.ctx, s.cancelFunc = context.WithCancel(context.Background())
// Signal watcher
go func() {
c := make(chan os.Signal, 1)
signal.Ignore(syscall.SIGPIPE)
signal.Notify(c, os.Interrupt, syscall.SIGTERM)
sig := <-c
s.log.Info("signal received", "signal", sig)
if s.cancelFunc != nil {
s.cancelFunc()
}
}()
go s.serveUntilShutdown()
for range s.ctx.Done() {
}
s.cleanShutdown()
return s.exitCode
}
func (s *Server) cleanShutdown() {
s.exitCode = 0
ctxShutdown, shutdownCancel := context.WithTimeout(context.Background(), 5*time.Second)
if err := s.httpServer.Shutdown(ctxShutdown); err != nil {
s.log.Error("server clean shutdown failed", "error", err)
}
if shutdownCancel != nil {
shutdownCancel()
}
s.cleanupForExit()
if s.sentryEnabled {
sentry.Flush(2 * time.Second)
}
if err != nil {
return fmt.Errorf("http server shutdown: %w", err)
}
return nil
}
```
@@ -820,7 +826,7 @@ func (l *Logger) Identify() {
l.log.Info("starting",
"appname", l.params.Globals.Appname,
"version", l.params.Globals.Version,
"arch", runtime.GOARCH,
"buildarch", l.params.Globals.Buildarch,
)
}
```
@@ -940,20 +946,23 @@ import "go.uber.org/fx"
// Package-level variables (set from main)
var (
Appname string
Version string
Appname string
Version string
Buildarch string
)
// Struct for DI
type Globals struct {
Appname string
Version string
Appname string
Version string
Buildarch string
}
func New(lc fx.Lifecycle) (*Globals, error) {
n := &Globals{
Appname: Appname,
Version: Version,
Appname: Appname,
Buildarch: Buildarch,
Version: Version,
}
return n, nil
}
@@ -964,13 +973,15 @@ func New(lc fx.Lifecycle) (*Globals, error) {
```go
// cmd/httpd/main.go
var (
Appname string = "CHANGEME" // Default, overridden by build
Version string // Set at build time
Appname string = "CHANGEME" // Default, overridden by build
Version string // Set at build time
Buildarch string // Set at build time
)
func main() {
globals.Appname = Appname
globals.Version = Version
globals.Buildarch = Buildarch
// ...
}
```
@@ -980,16 +991,18 @@ func main() {
Use ldflags to inject version information at build time:
```makefile
# ?= rather than := so that a `VERSION` build argument takes precedence:
# where a build stage invokes make, `ARG VERSION` puts it in the
# environment and `?=` defers to it. Otherwise `git describe` runs, in a
# build stage on the `.git` the build context carries. When it prints
# nothing (outside a git checkout, or where git is missing or refuses the
# checkout), the version falls back to `dev`.
VERSION ?= $(or $(shell git describe --tags --always 2>/dev/null),dev)
# ?= rather than := because this `$(shell git describe ...)` is only correct
# on the host: `.dockerignore` excludes `.git`, so evaluated inside a build
# stage it expands to the empty string without failing and the binary reports
# no version. The version is computed on the host by `script/docker` /
# `script/cibuild` and passed with `--build-arg VERSION=...`; where the build
# stage invokes make, `ARG VERSION` puts it in the environment and `?=` defers
# to it. See the git-describe rule in REPO_POLICIES.md.
VERSION ?= $(shell git describe --tags --always)
BUILDARCH := $(shell go env GOARCH)
build:
go build -ldflags "-X main.Version=$(VERSION)" ./cmd/httpd
go build -ldflags "-X main.Version=$(VERSION) -X main.Buildarch=$(BUILDARCH)" ./cmd/httpd
```
---
@@ -1156,11 +1169,11 @@ s.router.Get("/.well-known/healthcheck", s.h.HandleHealthCheck())
Sentry is conditionally enabled based on `SENTRY_DSN` environment variable:
```go
func (s *Server) enableSentry() error {
func (s *Server) enableSentry() {
s.sentryEnabled = false
if s.params.Config.SentryDSN == "" {
return nil
return
}
err := sentry.Init(sentry.ClientOptions{
@@ -1168,17 +1181,15 @@ func (s *Server) enableSentry() error {
Release: fmt.Sprintf("%s-%s", s.params.Globals.Appname, s.params.Globals.Version),
})
if err != nil {
return fmt.Errorf("sentry init failure: %w", err)
s.log.Error("sentry init failure", "error", err)
os.Exit(1)
return
}
s.log.Info("sentry error reporting activated")
s.sentryEnabled = true
return nil
}
```
The server's start hook calls `enableSentry()` and returns its error, so a DSN
Sentry rejects stops startup and fx exits 1.
Sentry middleware with repanic (bubbles panics to chi's Recoverer):
```go
@@ -1190,7 +1201,7 @@ if s.sentryEnabled {
}
```
Flush Sentry in the server's stop hook, `cleanShutdown()`:
Flush Sentry on shutdown:
```go
if s.sentryEnabled {
+102 -214
View File
@@ -1,6 +1,6 @@
---
title: New Repo Checklist
last_modified: 2026-11-07
last_modified: 2026-08-10
---
Use this checklist when creating a new repository from scratch. Follow the steps
@@ -34,17 +34,14 @@ Template files can be fetched from:
## Fetch Template Files
- [ ] `.gitignore` — fetch from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.gitignore`, then add
the repo's own build outputs, such as its binaries, at the end of the
file, where a re-vendor keeps them. Extensions are written to
`.gitignore`'s own semantics, where an unanchored pattern already matches
at every depth: never add a `**/` prefix here, which is a `.dockerignore`
form. The canonical file already carries `.claude/` so agent worktrees
cannot be committed by accident.
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.gitignore`, extend for
language-specific artifacts. Extensions are written to `.gitignore`'s own
semantics, where an unanchored pattern already matches at every depth:
never add a `**/` prefix here, which is a `.dockerignore` form. The
canonical file already carries `.claude/` so agent worktrees cannot be
committed by accident.
- [ ] `.editorconfig` — fetch from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.editorconfig`, then
add the repo's own sections, such as one for another language it uses, at
the end of the file, where a re-vendor keeps them.
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.editorconfig`
- [ ] `Makefile` — fetch from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/Makefile`, adapt
targets for the project's language and tools
@@ -57,9 +54,6 @@ Template files can be fetched from:
- [ ] `LICENSE` file matching the chosen license
- [ ] `REPO_POLICIES.md` — fetch from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/prompts/REPO_POLICIES.md`
- [ ] Guidance for coding agents, if the repo has any, is one `AGENTS.md` at the
root — never a file or directory named after one agent tool, such as
`CLAUDE.md` or `.claude/`, and never separate memory files
- [ ] `Dockerfile` and `.dockerignore` — fetch `.dockerignore` from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.dockerignore`
- Extend `.dockerignore` with the repo's own host-built artifacts, giving
@@ -68,133 +62,54 @@ Template files can be fetched from:
`cmd/myapp/` and delete the package directory. Do not transplant
`.gitignore`'s patterns: `.dockerignore` anchors an unprefixed pattern at
the context root, so the copied form leaves `config/.env` in the build
context while reading as solved. The canonical file's `.claude` entry is
anchored for the same reason as a repo-root binary; leave it that way, but
note that it only covers agents running at the repo root — if this repo
will run them in subdirectories, `services/api/.claude/` needs its own
context while reading as solved. See the `.dockerignore` rule in
`REPO_POLICIES.md`. The canonical file's `.claude` entry is anchored for
the same reason as a repo-root binary; leave it that way, but note it only
covers agents running at the repo root — if this repo will run them in
subdirectories, `services/api/.claude/` is not excluded and needs its own
anchored entry.
- If the image embeds a version in a binary: `.dockerignore` lets `.git`
into the build context. It keeps out every git `config` at any depth
(`**/.git/config`, `**/.git/modules/**/config`):
- the repository's own
- each submodule's under `.git/modules/`
- that of a submodule keeping its own `.git` directory
`git describe` does not need them, and each can hold a credential: a
password in a remote URL, or the token the CI checkout step stores
there. Some submodule names have a `config` segment, as in `config`,
`deploy/config` or `config/lib`. Such a submodule loses its whole git
directory to `**/.git/modules/**/config`, and Go's version stamping then
fails the build. Give it a name without that segment
(`git submodule add --name`). The stage that compiles has `git`: the
Debian Go image has it, and an alpine one needs
`apk add --no-cache git`. That stage takes the version from the
`VERSION` build argument when one is given, otherwise from
`git describe --tags --always`. That gives:
- the tag, on a tagged commit
- the tag, the number of commits since it and the short commit
(`v1.2.3-4-gabc1234`), on a later commit
- the short commit, when no tag is reachable
The stage that compiles also marks its working directory safe for git
(`git config --system --add safe.directory /src`). A context sent as a
tar stream keeps the sender's file owners, and git refuses a checkout
owned by another user, so the version would come out empty.
`ARG VERSION` has no default. The build fails if the context carries
`.git` and the version still comes out empty, `dev` or `unknown`. A
plain `docker build .` with no build arguments must succeed; a
Dockerfile that refuses an empty build argument drops that refusal and
keeps the argument. A checkout whose `.git` is a file is the exception:
a linked worktree, or a repository checked out as a submodule. That file
points to a git directory outside the build context, so the build cannot
read the version and a plain `docker build .` fails. Pass the version
with `--build-arg VERSION=...`, as `script/docker` and `script/cibuild`
already do.
- The Dockerfile carries a `lint` phase and a `test` phase, each invoking
its tool directly rather than through `make` or `script/`, and the final
stage carries a `COPY --from=` of a harmless file from each so the image
cannot be built unless both passed. Keep the final stage last: a stage
nothing depends on is built only when `--target` names it.
- In every stage, every step that lints, tests or compiles comes after
`ARG CACHEBUST`. `ARG CACHEBUST` comes right after these steps:
- the steps that install system packages
- the steps that download Go's modules
- the step that runs `script/bootstrap` to install a Python `test`
phase's packages from `Pipfile.lock`
- A stage with none of these steps declares `ARG CACHEBUST` right after
`FROM`. A step that also installs anything else comes after
`ARG CACHEBUST` too. A `script/bootstrap` that also installs node packages
is one. The `script/` builds pass a new `CACHEBUST` value on every build,
which reruns every `RUN` step after that line and leaves the layers above
it and the cache mounts in place; `--no-cache` would build those layers
again and empty the mounts. A stage without the `ARG` line is served from
cache on an unchanged tree, so the scripts and every stage's
`ARG CACHEBUST` line are added in the same commit.
- Go: each Go stage downloads the modules (`COPY go.mod go.sum ./`,
`RUN go mod download`) above `ARG CACHEBUST`; the steps that compile
(`golangci-lint run`, `go test`, `go build`) mount Go's build cache
(`--mount=type=cache,target=/root/.cache/go-build`), `golangci-lint run`
also mounts golangci-lint's
(`--mount=type=cache,target=/root/.cache/golangci-lint`), and no step
mounts anything else; both `go test` runs carry `-count=1`; a first run
that timed out gets no rerun, as in the canonical Go `Dockerfile` in
`REPO_POLICIES.md`
- Python: a `test` phase that installs its packages from `Pipfile.lock` does
it above `ARG CACHEBUST`, with `COPY script/ script/`,
`COPY Pipfile Pipfile.lock ./` and `RUN script/bootstrap`. When
`script/bootstrap` runs in that step, it installs nothing beyond these:
- system packages
- pipenv and its dependencies
- the packages from `Pipfile.lock`
It creates a virtual environment at `$HOME/.pipenv` with
`python3 -m venv` when it is missing, then uses that environment's `pip`
and `pipenv`. On a host, it first installs the distribution's python and
venv packages when they are missing. It installs pipenv and its
dependencies by hash, with `pip install --require-hashes`. It installs
the packages from `Pipfile.lock` with `pipenv install --deploy`, plus
`--dev` when the tests need the development packages. It sets
`PIP_ONLY_BINARY=:all:` for both installs, so a package with no wheel
for the image stops the install. In that step it installs no Python,
because a step above it already did. `Pipfile` names no
`python_version`, because `--deploy` stops when the distribution's
Python differs from it. The tests run after `ARG CACHEBUST`, and every
other stage installs its Python packages after it, as in the Python
`test` phase example in `REPO_POLICIES.md`
- Server: the final stage builds and runs the application
- Non-server: the final stage brings up the dev environment
- If the image embeds a version in a binary, the version is computed on the
host and passed with `--build-arg VERSION=...`. `ARG VERSION=dev` is
declared in the stage that compiles, and **no stage calls `git describe`**
— `.dockerignore` excludes `.git`, so it yields an empty version without
failing the build.
- The `Dockerfile` runs the **non-lint** checks as build steps —
`script/test` and `script/fmt-check`, never `make check`. `script/lint` is
a `docker build` of `Dockerfile.lint`, so `make check` here nests a build
inside a build step, where there is no daemon. Put a comment above those
`RUN` lines saying so. Every stage containing a check-running `RUN` must
declare `ARG CHECK_EPOCH` with the `RUN [ -n "$CHECK_EPOCH" ] || exit 1`
guard immediately below it — see the `CHECK_EPOCH` rule in
`REPO_POLICIES.md`. Without them the check layer is served from cache on
an unchanged tree and the build reports a green it never ran.
- Server: also builds and runs the application
- Non-server: brings up dev environment and runs those checks
- Image pinned by sha256 hash with version/date comment
- [ ] `Dockerfile.lint` — the lint-only image that `script/lint` builds. Same
`ARG CHECK_EPOCH` + guard + expanded-value discipline as above, with the
`ARG` placed **after** the dependency layer so only the lint steps re-run.
Base image pinned by sha256 with a version/date comment. Go repos use
`golangci/golangci-lint` and run both `golangci-lint config verify` and
`golangci-lint run`; other repos use the same pattern around their own
linter (eslint, ruff, prettier). Copy the canonical file from
`REPO_POLICIES.md`. The linter is invoked directly there, never via
`make lint`, which would recurse. The arg keeps the name `CHECK_EPOCH` in
this file as well, so one grep covers both builds.
- The formatting check runs in exactly one of the two images: either
`script/fmt-check` in the `Dockerfile`, or the formatter beside the
linters in `Dockerfile.lint` where that is the same pinned dependency.
Never neither, never both.
- `.dockerignore` must exclude the agent scratch directory before this image
is trusted: it lints whatever is in the build context, and toolchains walk
the tree rather than reading `.gitignore`, so an agent worktree that
reaches the context is linted as though it were the repo.
- [ ] Gitea Actions workflow at `.gitea/workflows/check.yml` that runs
`script/cibuild` on push, checks out with `persist-credentials: false` and
with `fetch-depth: 0` (which fetches the tags `git describe` needs),
carries the `concurrency` block that lets a new push cancel only the same
branch's older run, and sets `timeout-minutes: 20` on the `check` job so a
hung build frees the shared runner — reference
`script/cibuild` on push — reference
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.gitea/workflows/check.yml`
- [ ] Language-specific:
- [ ] Go: `go mod init sneak.berlin/go/<name>`, `.golangci.yml` (fetch from
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.golangci.yml` and,
in the same commit, set the lint phase digest to the one named in the
`.golangci.yml` paragraph of `REPO_POLICIES.md`)
- [ ] JS, or any repository that runs prettier through yarn: make the first
`yarn.lock` with the steps below. `script/bootstrap` installs no yarn
until `yarn.lock` exists, so run them with any distribution's node and
yarn, such as Alpine's (`apk add nodejs-current yarn`). Use `yarnpkg`
on Debian and Ubuntu.
1. Read the version from `yarnPath` in
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.yarnrc.yml`.
2. Run `yarn set version <version>`. It writes
`.yarn/releases/yarn-<version>.cjs`, `.yarnrc.yml` and
`package.json`.
3. Add `nodeLinker: node-modules` and `enableTelemetry: false` to
`.yarnrc.yml`.
4. Add `"private": true` to `package.json`.
5. Run `yarn add --dev prettier`. It writes `yarn.lock`.
6. Add `.yarn/releases/** binary` to `.gitattributes`.
7. Run `yarn install --immutable`. It must pass and change nothing.
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.golangci.yml`)
- [ ] JS: `yarn init`, `yarn add --dev prettier`
- [ ] Python: `pyproject.toml`
## Configure script/ Entrypoints and Makefile
@@ -205,61 +120,58 @@ are thin shims calling them. Model scripts:
- [ ] scripts are POSIX sh (`#!/bin/sh`, `set -eu`, no bashisms) so they run on
alpine images without bash
- [ ] `script/bootstrap` / `make bootstrap` installs all dependencies,
idempotently, and assumes nothing is present:
- It detects the package manager: nix, apt, brew or apk.
- It installs node, yarn and the node packages only when `yarn.lock` is in
the tree. node and yarn come from that package manager when they are
missing.
- It installs the node packages with `yarn install --immutable`. The
distribution's yarn only starts the release file that `yarnPath` in
`.yarnrc.yml` names, and that file does the work.
- A non-server repo's development environment stage runs it, with only
system packages installed inline above it.
- A gate phase or the build stage installs what its base image lacks, either
inline or by running it.
- [ ] A `Dockerfile` stage that needs yarn may start from any distribution that
packages node and yarn. It copies `package.json`, `yarn.lock`,
`.yarnrc.yml` and `.yarn/releases/` before it runs `script/bootstrap`. A
stage that needs no yarn copies none of them.
- [ ] `script/bootstrap` / `make bootstrap` — installs all dependencies,
idempotently, assuming nothing (pkg manager detection nix/apt/brew/apk;
node used if present, else pinned version via nvm from a hash-verified
archive; pinned yarn via corepack); Dockerfile runs it instead of inline
installs
- [ ] `script/setup` / `make setup` — readies a fresh clone: runs `bootstrap`,
then `install-precommit`, plus repo-specific init
- [ ] `script/test` / `make test` —
`docker build --build-arg CACHEBUST="$(date +%s)-$$" --target test --output type=cacheonly .`,
which writes no image; the phase runs real tests, not a no-op (90-second
timeout, 60-second hard cap on wall time)
- [ ] `script/lint` / `make lint` —
`docker build --build-arg CACHEBUST="$(date +%s)-$$" --target lint --output type=cacheonly .`,
which writes no image. No lint verdict may come from a host invocation of
the linter.
- [ ] `script/fmt` / `make fmt` — formats code (writes; native, never in a
container). Go code gets `gofmt`, then `golines -m 77`.
- [ ] `script/fmt-check` / `make fmt-check` — checks formatting (read-only;
native). Fails when `gofmt` or `golines -m 77` would change a Go file.
- [ ] Go: `script/bootstrap` installs `golines` with `go install` pinned to a
commit hash
- [ ] `script/test` / `make test` — runs real tests, not a no-op (30-second
timeout)
- [ ] `script/lint` / `make lint` — builds `Dockerfile.lint` and nothing else:
`epoch="$(date +%s%N)$$"` on its own line, then
`docker build --build-arg CHECK_EPOCH="$epoch" -f Dockerfile.lint .`. The
linter is never installed on the host and never invoked there. Copy the
canonical script from `REPO_POLICIES.md`; it is byte-identical across
repos. Without the nonce this script exits 0 on an unchanged tree having
linted nothing.
- [ ] `script/fmt` / `make fmt` — formats code (writes)
- [ ] `script/fmt-check` / `make fmt-check` — checks formatting (read-only)
- [ ] `script/check` / `make check` — runs `test`, `lint`, `fmt-check`; must not
modify files
modify files. It needs a docker daemon, because `script/lint` is a
container build, and it must never be called from inside a build stage
- [ ] `script/projectname` — outputs the project name (used by `script/docker`
for the image tag)
- [ ] `script/docker` / `make docker` — builds Docker image, tagged via
`script/projectname` (byte-identical across repos); a new `CACHEBUST`
value on every build, plus the version as a build arg
- [ ] `script/cibuild` — cd to repo root, run `script/bootstrap`, run
`script/check`, then
`docker build --build-arg CACHEBUST="$(date +%s)-$$" --build-arg VERSION="$version" -t "$tag" .`
(what CI runs), with `$version` from
`git describe --tags --always --dirty` (`unknown` if empty) and `$tag`
from `script/projectname`, each assigned on its own line before the build.
The bootstrap is required: CI checks out and runs this alone, and
`script/fmt-check` runs the formatter on the host.
- [ ] `script/bootstrap`, `script/fmt` and `script/fmt-check` run yarn by
whichever name is present: `yarn`, or `yarnpkg` on Debian and Ubuntu. With
neither name on `PATH`, `script/fmt` and `script/fmt-check` print one line
saying to run `script/bootstrap`, and exit 1.
- [ ] No `docker build` in `script/` leaves a dangling image behind:
`script/lint` and `script/test` write no image, and `script/docker` and
`script/cibuild` tag theirs
`script/projectname` (byte-identical across repos); carries the same three
version lines as `script/cibuild` below, and passes
`--build-arg CHECK_EPOCH="$epoch"` and `--build-arg VERSION="$version"`
- [ ] `script/cibuild` — cd to repo root, run `script/lint` **first** for
fail-fast feedback, then, each on its own line:
```sh
epoch="$(date +%s%N)$$"
version="$(git describe --tags --always --dirty 2>/dev/null || true)"
[ -n "$version" ] || version="unknown"
docker build \
--build-arg CHECK_EPOCH="$epoch" \
--build-arg VERSION="$version" \
.
```
(what CI runs). The `script/lint` call is not optional: the main image does
not lint, so without it CI never lints. Both build args are mandatory, and
both assignments must be on their own line: a failing command substitution
inside an argument does not trip `set -e`, so the inline form degrades
silently to an empty constant. The `[ -n "$version" ]` line is a live check
that fires on an export with no `.git` and on a repo with no commits — keep
it, and do not collapse it into `|| echo unknown`, which makes it
unreachable. See the `CHECK_EPOCH` and git-describe rules in
`REPO_POLICIES.md` for why each element is load-bearing. A bare
`docker build .` fails closed by design, and so does a bare
`docker build -f Dockerfile.lint .`.
- [ ] `script/precommit` — called by the pre-commit hook; runs `script/check`
- [ ] `script/install-precommit` — installs the pre-commit hook that runs
`script/precommit`
@@ -270,37 +182,13 @@ are thin shims calling them. Model scripts:
# 4. Verify
- [ ] `make check` passes
- [ ] `make lint` demonstrably runs the linter rather than returning a cached
build: run it twice on an unchanged tree and confirm the lint layer says
`DONE`, never `CACHED`, both times
- [ ] `make docker` succeeds
- [ ] `script/cibuild` succeeds in a fresh clone on a host carrying what CI has.
That host is the runner image
`docker.gitea.com/runner-images:ubuntu-latest`, which has docker, git and
node 24. Take any yarn off `PATH` first. The run must show that the checks
executed. A sub-second build means nothing ran. So does `CACHED` on a step
that lints or tests, one of the `RUN` steps below `ARG CACHEBUST`. Above
that line, these steps are expected to show `CACHED`:
- the steps that install system packages
- the steps that download Go's modules
- the step that runs `script/bootstrap` to install a Python `test` phase's
packages from `Pipfile.lock`
- [ ] Plant a lint violation and confirm both `make lint` and a plain
`docker build .` fail on it; revert. A plain build that passes proves the
final stage is missing its `COPY --from=` edge to the gate phases.
- [ ] No secrets in repo, and none in the build context: enumerate a probe image
rather than reading `.dockerignore`
- [ ] No mutable references to what the repo downloads and installs itself in
scripts and Dockerfiles. Distribution packages are outside this rule. They
need no version and no hash, and updating and upgrading them is fine too.
In a `Dockerfile`, the distribution is the pinned base image's. On a host,
it is the host's, and the host's package manager stands for it, nix and
brew included. A package source that a `Dockerfile` adds itself is not the
distribution's own, so its packages are pinned
- [ ] node, yarn, npm, python, pip and venv come from the distribution wherever
possible, never from nvm, pyenv, corepack or `npm install -g yarn`. If the
distribution's version is too old, use a newer distribution. node means
the distribution's newest Node package, such as `nodejs-current` on Alpine
3.24
- [ ] yarn's release file is in git under `.yarn/releases/`, written once by
`yarn set version` with an exact version (repositories with `yarn.lock`)
- [ ] `script/cibuild` succeeds and runs both container builds
- [ ] No secrets in repo
- [ ] No mutable image/package references
- [ ] No unnecessary files in repo root
- [ ] All dates written as YYYY-MM-DD
+696 -905
View File
File diff suppressed because it is too large. Load diff
+74 -32
View File
@@ -1,20 +1,24 @@
#!/bin/sh
# script/bootstrap: install all dependencies needed to build and develop
# this repo. Idempotent: every install is guarded by a check so already
# installed tools are skipped. Base tools, node and yarn come from nix,
# apt, brew, or apk (detected in that order), with no version and no
# hash, because the distribution is trusted. It installs node, yarn and
# the node packages only when yarn.lock is in the tree. The
# distribution's yarn only starts the release file that yarnPath in
# .yarnrc.yml names, and that file does the work. So git pins the yarn
# that runs. Assumes nothing is present.
# installed tools are skipped. Base tooling comes from nix, apt, brew,
# or apk (detected in that order); assumes nothing is present. Node is
# used directly if installed; otherwise it is installed at a pinned
# version via nvm (installing nvm itself first, from a hash-verified
# release archive, never curl | sh).
set -eu
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
# Pinned versions, 2026-07-06
NODE_VERSION="22.17.0"
NVM_VERSION="0.40.3"
# sha256 of https://github.com/nvm-sh/nvm/archive/refs/tags/v0.40.3.tar.gz
NVM_SHA256="5f4d6aaa04a177dc93c985e31dbc411ab6b8c6e1e21d8015dbc1372625fcd1d0"
YARN_VERSION="1.22.22"
PKGMGR=""
SUDO=""
APT_UPDATED=""
detect_pkgmgr() {
[ -n "$PKGMGR" ] && return 0
@@ -43,14 +47,7 @@ pkg_install() {
detect_pkgmgr
case "$PKGMGR" in
nix) nix-env -iA "nixpkgs.$1" ;;
apt)
# Package lists may be empty (fresh images); refresh once per run.
if [ -z "$APT_UPDATED" ]; then
$SUDO env DEBIAN_FRONTEND=noninteractive apt-get update
APT_UPDATED=1
fi
$SUDO env DEBIAN_FRONTEND=noninteractive apt-get install -y "$2"
;;
apt) $SUDO env DEBIAN_FRONTEND=noninteractive apt-get install -y "$2" ;;
brew) brew install "$3" ;;
apk) apk add --no-cache "$4" ;;
esac
@@ -60,33 +57,78 @@ missing() {
! command -v "$1" >/dev/null 2>&1
}
# Debian and Ubuntu name the yarn command yarnpkg.
run_yarn() {
if command -v yarn >/dev/null 2>&1; then
yarn "$@"
elif command -v yarnpkg >/dev/null 2>&1; then
yarnpkg "$@"
# verify_sha256 <file> <expected-hash>
verify_sha256() {
if command -v sha256sum >/dev/null 2>&1; then
actual="$(sha256sum "$1" | cut -d' ' -f1)"
else
echo "no yarn; run script/bootstrap first" >&2
actual="$(shasum -a 256 "$1" | cut -d' ' -f1)"
fi
if [ "$actual" != "$2" ]; then
echo "bootstrap: sha256 mismatch for $1" >&2
echo " expected: $2" >&2
echo " actual: $actual" >&2
exit 1
fi
}
# nvm is a bash script; run a command in a bash with nvm loaded
nvm_sh() {
bash -c ". \"\$HOME/.nvm/nvm.sh\" && $*"
}
ensure_nvm() {
[ -s "$HOME/.nvm/nvm.sh" ] && return 0
# nvm prerequisites; nvm itself requires bash
if missing bash; then pkg_install bash bash bash bash; fi
if missing curl; then pkg_install curl curl curl curl; fi
if missing git; then pkg_install git git git git; fi
tmp="$(mktemp -d)"
curl -fsSL -o "$tmp/nvm.tar.gz" \
"https://github.com/nvm-sh/nvm/archive/refs/tags/v${NVM_VERSION}.tar.gz"
verify_sha256 "$tmp/nvm.tar.gz" "$NVM_SHA256"
mkdir -p "$HOME/.nvm"
tar -xzf "$tmp/nvm.tar.gz" -C "$HOME/.nvm" --strip-components=1
rm -rf "$tmp"
}
ensure_node() {
if ! missing node; then return 0; fi
ensure_nvm
nvm_sh "nvm install $NODE_VERSION"
}
ensure_yarn() {
if ! missing yarn; then return 0; fi
if ! missing corepack; then
corepack enable
corepack prepare "yarn@$YARN_VERSION" --activate
elif [ -s "$HOME/.nvm/nvm.sh" ]; then
nvm_sh "nvm use $NODE_VERSION >/dev/null && corepack enable && \
corepack prepare yarn@$YARN_VERSION --activate"
else
npm install -g "yarn@$YARN_VERSION"
fi
}
install_js_deps() {
if missing yarn && [ -s "$HOME/.nvm/nvm.sh" ]; then
nvm_sh "nvm use $NODE_VERSION >/dev/null && cd \"$ROOT\" && \
yarn install --frozen-lockfile"
else
yarn install --frozen-lockfile
fi
}
main() {
cd "$ROOT"
if missing make; then pkg_install gnumake make make make; fi
if missing git; then pkg_install git git git git; fi
# A Dockerfile stage that needs no yarn copies no yarn.lock.
if [ -f yarn.lock ]; then
if missing node; then pkg_install nodejs_latest nodejs node nodejs-current; fi
if missing yarn && missing yarnpkg; then
pkg_install yarn yarnpkg yarn yarn
fi
run_yarn install --immutable
fi
ensure_node
ensure_yarn
install_js_deps
echo "bootstrap complete"
}
+8 -3
View File
@@ -1,8 +1,13 @@
#!/bin/sh
# script/check: run all checks (test, lint, fmt-check). Our own
# extension to scripts-to-rule-them-all. test and lint are Docker
# phases; fmt-check is native, because a formatter writes the working
# tree. Must not modify any files.
# extension to scripts-to-rule-them-all. Must not modify any files.
#
# script/lint is a docker build (see Dockerfile.lint), so this script
# requires a docker daemon. That is deliberate: it is the only way a
# developer and the pre-commit hook get the same linter CI gets. It also
# means this script must never be run from inside a build stage — see
# the comment in Dockerfile, which runs the individual non-lint checks
# for exactly that reason.
set -eu
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
+26 -19
View File
@@ -1,13 +1,10 @@
#!/bin/sh
# script/cibuild: run the CI build. It bootstraps first: a CI runner
# checks out and runs this and nothing else, and script/fmt-check runs
# the formatter on the host, which a pristine checkout cannot do.
# A new CACHEBUST value reruns every RUN step after the ARG CACHEBUST
# line, since a cached gate phase is a check that did not run; unlike
# --no-cache, it keeps the layers above that line and the cache mounts.
# This relies on every stage of the Dockerfile declaring ARG CACHEBUST
# before every step that lints, tests or compiles; a stage without that
# line is served from cache on an unchanged tree, with no warning.
# script/cibuild: run the CI build. Two container builds, in order:
# script/lint (Dockerfile.lint) and then the main image, which runs the
# non-lint checks. Both only prove anything because each passes its own
# fresh CHECK_EPOCH nonce: without it Docker serves the check layers
# from cache on an unchanged tree and the build exits 0 without running
# anything.
set -eu
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
@@ -15,19 +12,29 @@ ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)"
main() {
cd "$ROOT"
"$SCRIPT_DIR/bootstrap"
"$SCRIPT_DIR/check"
# The version and the tag each get their own line: a failing
# command substitution inside an argument does not trip `set -e`,
# so the inline form degrades silently to an empty constant. The
# VERSION build argument takes precedence over the version a build
# stage derives from the .git in the context.
# Lint first, for fail-fast feedback: it is its own container build
# and computes its own CHECK_EPOCH. It runs here rather than inside
# the main image because a docker build cannot run a docker build.
"$SCRIPT_DIR/lint"
# Assign on its own line: a failing command substitution inside an
# argument does not trip `set -e`, which would silently degrade the
# nonce to an empty constant. `$$` is required because busybox `date`
# drops %N without erroring.
epoch="$(date +%s%N)$$"
# VERSION must be computed here, on the host: .dockerignore excludes
# .git, so `git describe` cannot run in any build stage and fails
# quietly there rather than erroring. Same own-line discipline as the
# epoch. `|| true` keeps a failing describe from tripping `set -e`
# and leaves the value empty; the guard below is then the single
# place the fallback is applied, and it does fire — on an export with
# no .git, or a repo with no commits yet. `unknown` is visibly wrong
# in a binary in a way that an empty version is not.
version="$(git describe --tags --always --dirty 2>/dev/null || true)"
[ -n "$version" ] || version="unknown"
tag="$("$SCRIPT_DIR/projectname")"
docker build --build-arg CACHEBUST="$(date +%s)-$$" \
docker build \
--build-arg CHECK_EPOCH="$epoch" \
--build-arg VERSION="$version" \
-t "$tag" .
.
}
main "$@"
+20 -15
View File
@@ -1,12 +1,9 @@
#!/bin/sh
# script/docker: build the Docker image tagged with the project name.
# Identical in all repos; the tag comes from script/projectname.
# A new CACHEBUST value reruns every RUN step after the ARG CACHEBUST
# line, since a cached gate phase is a check that did not run; unlike
# --no-cache, it keeps the layers above that line and the cache mounts.
# This relies on every stage of the Dockerfile declaring ARG CACHEBUST
# before every step that lints, tests or compiles; a stage without that
# line is served from cache on an unchanged tree, with no warning.
# Identical in all repos; the tag comes from script/projectname. The
# Dockerfile's checks only actually run because CHECK_EPOCH is a fresh
# nonce on every invocation; without it a warm cache turns this into a
# green that proves nothing.
set -eu
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
@@ -14,17 +11,25 @@ ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)"
main() {
cd "$ROOT"
# The version and the tag each get their own line: a failing
# command substitution inside an argument does not trip `set -e`,
# so the inline form degrades silently to an empty constant. The
# VERSION build argument takes precedence over the version a build
# stage derives from the .git in the context.
# Assign on its own line: a failing command substitution inside an
# argument does not trip `set -e`, which would silently degrade the
# nonce to an empty constant. `$$` is required because busybox `date`
# drops %N without erroring.
epoch="$(date +%s%N)$$"
# VERSION must be computed here, on the host: .dockerignore excludes
# .git, so `git describe` cannot run in any build stage and fails
# quietly there rather than erroring. Same own-line discipline as the
# epoch. `|| true` keeps a failing describe from tripping `set -e`
# and leaves the value empty; the guard below is then the single
# place the fallback is applied, and it does fire — on an export with
# no .git, or a repo with no commits yet. `unknown` is visibly wrong
# in a binary in a way that an empty version is not.
version="$(git describe --tags --always --dirty 2>/dev/null || true)"
[ -n "$version" ] || version="unknown"
tag="$("$SCRIPT_DIR/projectname")"
docker build --build-arg CACHEBUST="$(date +%s)-$$" \
docker build \
--build-arg CHECK_EPOCH="$epoch" \
--build-arg VERSION="$version" \
-t "$tag" .
-t "$("$SCRIPT_DIR/projectname")" .
}
main "$@"
+1 -13
View File
@@ -4,21 +4,9 @@ set -eu
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
# Debian and Ubuntu name the yarn command yarnpkg.
run_yarn() {
if command -v yarn >/dev/null 2>&1; then
yarn "$@"
elif command -v yarnpkg >/dev/null 2>&1; then
yarnpkg "$@"
else
echo "no yarn; run script/bootstrap first" >&2
exit 1
fi
}
main() {
cd "$ROOT"
run_yarn run prettier --write '**/*.md' --tab-width 4 --prose-wrap always
yarn run prettier --write '**/*.md' --tab-width 4 --prose-wrap always
}
main "$@"
+1 -13
View File
@@ -4,21 +4,9 @@ set -eu
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
# Debian and Ubuntu name the yarn command yarnpkg.
run_yarn() {
if command -v yarn >/dev/null 2>&1; then
yarn "$@"
elif command -v yarnpkg >/dev/null 2>&1; then
yarnpkg "$@"
else
echo "no yarn; run script/bootstrap first" >&2
exit 1
fi
}
main() {
cd "$ROOT"
run_yarn run prettier --check '**/*.md' --tab-width 4 --prose-wrap always
yarn run prettier --check '**/*.md' --tab-width 4 --prose-wrap always
}
main "$@"
+18 -19
View File
@@ -1,28 +1,27 @@
#!/bin/sh
# script/lint: run the linter. Linting is a phase of the Dockerfile and
# this builds that phase alone; the linter is never installed or run on
# a developer host, where a shared result cache and a host-global lock
# make its answer untrustworthy.
#
# The phase is not the last stage in the file, so it is built only when
# --target names it. A new CACHEBUST value reruns every RUN step after
# the ARG CACHEBUST line, since a cached lint layer is a lint that did
# not run; unlike --no-cache, it keeps the layers above that line and
# the cache mounts. This relies on every stage of the Dockerfile
# declaring ARG CACHEBUST before every step that lints, tests or
# compiles; a stage without that line is served from cache on an
# unchanged tree, with no warning.
# --output type=cacheonly writes no image, since nothing uses one.
# script/lint: run the linter. The linter is never installed on the host
# and never invoked there — it runs in a container, one way, everywhere,
# so a run cannot inherit another checkout's cache, another process's
# lock, or a host toolchain that differs from the pinned one. Linting
# happens as a build step (see Dockerfile.lint), so a successful build
# is a clean lint, and it works where the docker daemon is remote and
# bind mounts are impossible.
set -eu
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)"
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
main() {
cd "$ROOT"
docker build --build-arg CACHEBUST="$(date +%s)-$$" \
--target lint \
--output type=cacheonly .
# Assign on its own line: a failing command substitution inside an
# argument does not trip `set -e`, which would silently degrade the
# nonce to an empty constant. `$$` is required because busybox `date`
# drops %N without erroring. Without a fresh nonce the lint layer is
# served from cache and this script exits 0 having linted nothing.
epoch="$(date +%s%N)$$"
docker build \
--build-arg CHECK_EPOCH="$epoch" \
-f Dockerfile.lint \
.
}
main "$@"
+3 -15
View File
@@ -1,24 +1,12 @@
#!/bin/sh
# script/test: run the test suite. Testing is a phase of the Dockerfile
# and this builds that phase alone, on the same terms as script/lint:
# --target because a phase that is not the last stage is built only when
# named, and a new CACHEBUST value because a cached test layer is a test
# that did not run; unlike --no-cache, it keeps the layers above the ARG
# CACHEBUST line and the cache mounts. This relies on every stage of the
# Dockerfile declaring ARG CACHEBUST before every step that lints, tests
# or compiles; a stage without that line is served from cache on an
# unchanged tree, with no warning. --output type=cacheonly writes no
# image, since nothing uses one.
# script/test: run the test suite.
set -eu
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)"
ROOT="$(cd "$SCRIPT_DIR/.." && pwd -P)"
ROOT="$(cd "$(dirname "$0")/.." && pwd -P)"
main() {
cd "$ROOT"
docker build --build-arg CACHEBUST="$(date +%s)-$$" \
--target test \
--output type=cacheonly .
echo "No tests defined."
}
main "$@"
+6 -21
View File
@@ -1,23 +1,8 @@
# This file is generated by running "yarn install" inside your project.
# Manual changes might be lost - proceed with caution!
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
__metadata:
version: 10
cacheKey: 10c0
"prettier@npm:3.8.1":
version: 3.8.1
resolution: "prettier@npm:3.8.1"
bin:
prettier: bin/prettier.cjs
checksum: 10c0/33169b594009e48f570471271be7eac7cdcf88a209eed39ac3b8d6d78984039bfa9132f82b7e6ba3b06711f3bfe0222a62a1bfb87c43f50c25a83df1b78a2c42
languageName: node
linkType: hard
"root-workspace-0b6124@workspace:.":
version: 0.0.0-use.local
resolution: "root-workspace-0b6124@workspace:."
dependencies:
prettier: "npm:3.8.1"
languageName: unknown
linkType: soft
prettier@3.8.1:
version "3.8.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.1.tgz#edf48977cf991558f4fcbd8a3ba6015ba2a3a173"
integrity sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==