Skip to content

Commit

domains

syntaqxcommitted The first commitBrowse files
13 files+2825−00/13 viewed
+1−0
1+* text=auto eol=lf
+22−0
1+name: CI
2+
3+on:
4+ push:
5+ branches: [main]
6+ pull_request:
7+
8+permissions:
9+ contents: read
10+
11+jobs:
12+ check:
13+ runs-on: ubuntu-latest
14+ steps:
15+ - uses: actions/checkout@v7
16+ - uses: actions/setup-node@v7
17+ with:
18+ node-version-file: .nvmrc
19+ cache: npm
20+ - run: npm ci
21+ - run: npm run build
22+ - run: npm run format:check
+8−0
1+node_modules/
2+.pulumi/
3+bin/
4+
5+# Pulumi may write local state or credentials when a local backend is used.
6+*.stack.json
7+credentials.json
8+
+2−0
1+24
2+
+5−0
1+{
2+ "semi": true,
3+ "singleQuote": false,
4+ "trailingComma": "all"
5+}
+8−0
1+config:
2+ flagon-domains:cloudflareAccountId: 9ca15799355250a5fd55767ae2c9d763
3+ flagon-domains:targetUrl: https://flagon.io
4+ flagon-domains:domains:
5+ - flaggon.com
6+ - flaggon.io
7+ - flagin.io
8+ - flaggin.io
+7−0
1+config:
2+ flagon-domains:cloudflareAccountId: YOUR_CLOUDFLARE_ACCOUNT_ID
3+ flagon-domains:targetUrl: https://flagon.io
4+ flagon-domains:domains:
5+ - flagon.example
6+ - flagn.example
7+
+6−0
1+name: flagon-domains
2+runtime:
3+ name: nodejs
4+ options:
5+ packagemanager: npm
6+description: Cloudflare redirects for alternate Flagon domains
+64−0
1+# Flagon domains
2+
3+Pulumi infrastructure for redirecting alternate and commonly misspelled domains to
4+`https://flagon.io` through Cloudflare.
5+
6+For every configured domain, the stack creates:
7+
8+- a full Cloudflare zone;
9+- proxied apex and wildcard DNS records; and
10+- an entry in one account-level Bulk Redirect list.
11+
12+The Bulk Redirect rule sends every path and subdomain to the equivalent path on
13+`flagon.io` with a permanent `301`, preserving query strings.
14+
15+## Prerequisites
16+
17+- Node.js 24
18+- Pulumi CLI
19+- a Cloudflare API token exposed as `CLOUDFLARE_API_TOKEN`
20+- a Pulumi backend (Pulumi Cloud or a self-managed backend)
21+
22+The token needs `Zone:Read`, `Zone:Edit`, `DNS:Edit`, `Account Filter Lists:Edit`,
23+and `Account Rulesets:Edit` (called `Mass URL Redirects:Write` in some Cloudflare
24+interfaces) for the relevant account and zones.
25+
26+## Deploy
27+
28+```sh
29+npm install
30+pulumi stack init production
31+pulumi config set cloudflareAccountId YOUR_CLOUDFLARE_ACCOUNT_ID
32+pulumi config set targetUrl https://flagon.io
33+pulumi config set --path 'domains[0]' flagon.dev
34+pulumi config set --path 'domains[1]' flaggon.io
35+pulumi preview
36+pulumi up
37+```
38+
39+Add real domains only; the names above are examples. `domains` is deliberately
40+required so an empty or accidental deployment fails early.
41+
42+After the first deployment, point each registrar at the `zoneNameServers` shown in
43+the Pulumi outputs. Domains registered through Cloudflare already use Cloudflare's
44+nameservers. HTTPS redirects will begin working after the zone activates and
45+Cloudflare provisions its edge certificate.
46+
47+If a zone already exists in the account, import it before the first update:
48+
49+```sh
50+pulumi import cloudflare:index/zone:Zone example-com ZONE_ID
51+```
52+
53+The Pulumi resource name is the lowercase domain with punctuation changed to
54+hyphens (for example, `example.com` becomes `example-com`). Preview the import and
55+deployment carefully whenever adopting existing DNS, since the stack owns the
56+zone and its two redirect records after import.
57+
58+## Add a domain
59+
60+Append it to the stack's `domains` configuration and run `pulumi preview`, followed
61+by `pulumi up`. Do not add `flagon.io` itself; the program rejects redirect loops.
62+
63+Email aliases are intentionally not managed here yet. A future Google Workspace
64+provider can be added without changing the Cloudflare domain model.
+144−0
1+import * as cloudflare from "@pulumi/cloudflare";
2+import * as pulumi from "@pulumi/pulumi";
3+
4+const config = new pulumi.Config();
5+const accountId = config.require("cloudflareAccountId");
6+const targetUrl = normalizeTarget(
7+ config.get("targetUrl") ?? "https://flagon.io",
8+);
9+const domains = normalizeDomains(config.requireObject<string[]>("domains"));
10+
11+const redirectListName = "flagon_alternate_domains";
12+const redirectList = new cloudflare.List("alternate-domains", {
13+ accountId,
14+ name: redirectListName,
15+ description: "Alternate and commonly misspelled Flagon domains",
16+ kind: "redirect",
17+ items: domains.map((domain) => ({
18+ comment: `Redirect ${domain} and its subdomains to ${targetUrl}`,
19+ redirect: {
20+ sourceUrl: `${domain}/`,
21+ targetUrl,
22+ statusCode: 301,
23+ includeSubdomains: true,
24+ subpathMatching: true,
25+ preservePathSuffix: true,
26+ preserveQueryString: true,
27+ },
28+ })),
29+});
30+
31+const zones = domains.map((domain) => {
32+ const resourceName = toResourceName(domain);
33+ const zone = new cloudflare.Zone(resourceName, {
34+ account: { id: accountId },
35+ name: domain,
36+ type: "full",
37+ });
38+
39+ // Bulk Redirects only see traffic proxied by Cloudflare. These documentation
40+ // addresses must never be used as origins; the redirect executes first.
41+ for (const [label, name] of [
42+ ["apex", domain],
43+ ["wildcard", `*.${domain}`],
44+ ] as const) {
45+ new cloudflare.DnsRecord(`${resourceName}-${label}`, {
46+ zoneId: zone.id,
47+ name,
48+ type: "A",
49+ content: "192.0.2.1",
50+ ttl: 1,
51+ proxied: true,
52+ comment: "Proxied placeholder for the account-level Bulk Redirect",
53+ });
54+ }
55+
56+ return zone;
57+});
58+
59+new cloudflare.Ruleset(
60+ "alternate-domain-redirects",
61+ {
62+ accountId,
63+ name: "Flagon alternate domain redirects",
64+ description: "Enables the managed list of alternate Flagon domains",
65+ kind: "root",
66+ phase: "http_request_redirect",
67+ rules: [
68+ {
69+ ref: "redirect_flagon_alternate_domains",
70+ action: "redirect",
71+ actionParameters: {
72+ fromList: {
73+ key: "http.request.full_uri",
74+ name: redirectListName,
75+ },
76+ },
77+ description: "Redirect alternate Flagon domains",
78+ expression: `http.request.full_uri in $${redirectListName}`,
79+ enabled: true,
80+ },
81+ ],
82+ },
83+ { dependsOn: [redirectList] },
84+);
85+
86+export const configuredDomains = domains;
87+export const target = targetUrl;
88+export const zoneNameServers = Object.fromEntries(
89+ domains.map((domain, index) => [domain, zones[index]!.nameServers]),
90+);
91+
92+function normalizeDomains(values: string[]): string[] {
93+ if (values.length === 0) {
94+ throw new pulumi.RunError("The 'domains' configuration must not be empty.");
95+ }
96+
97+ const domains = values.map((value) =>
98+ value.trim().toLowerCase().replace(/\.$/, ""),
99+ );
100+ const invalid = domains.find(
101+ (domain) =>
102+ !/^(?=.{1,253}$)(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$/.test(
103+ domain,
104+ ),
105+ );
106+ if (invalid) {
107+ throw new pulumi.RunError(
108+ `Invalid domain in 'domains' configuration: ${invalid}`,
109+ );
110+ }
111+
112+ const unique = [...new Set(domains)].sort();
113+ if (unique.includes(new URL(targetUrl).hostname)) {
114+ throw new pulumi.RunError(
115+ "The redirect target must not also appear in 'domains'.",
116+ );
117+ }
118+ return unique;
119+}
120+
121+function normalizeTarget(value: string): string {
122+ let url: URL;
123+ try {
124+ url = new URL(value);
125+ } catch {
126+ throw new pulumi.RunError(`Invalid 'targetUrl' configuration: ${value}`);
127+ }
128+ if (
129+ url.protocol !== "https:" ||
130+ url.username ||
131+ url.password ||
132+ url.search ||
133+ url.hash
134+ ) {
135+ throw new pulumi.RunError(
136+ "The 'targetUrl' configuration must be an HTTPS URL without credentials, a query, or a fragment.",
137+ );
138+ }
139+ return url.toString().replace(/\/$/, "");
140+}
141+
142+function toResourceName(domain: string): string {
143+ return domain.replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
144+}
+2524−0
1+{
2+ "name": "flagon-domains",
3+ "version": "0.1.0",
4+ "lockfileVersion": 3,
5+ "requires": true,
6+ "packages": {
7+ "": {
8+ "name": "flagon-domains",
9+ "version": "0.1.0",
10+ "dependencies": {
11+ "@pulumi/cloudflare": "^6.17.0",
12+ "@pulumi/pulumi": "^3.0.0"
13+ },
14+ "devDependencies": {
15+ "@types/node": "^24.0.0",
16+ "prettier": "^3.0.0",
17+ "typescript": "^6.0.0"
18+ },
19+ "engines": {
20+ "node": ">=24"
21+ }
22+ },
23+ "node_modules/@gar/promise-retry": {
24+ "version": "1.0.3",
25+ "resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz",
26+ "integrity": "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==",
27+ "license": "MIT",
28+ "engines": {
29+ "node": "^20.17.0 || >=22.9.0"
30+ }
31+ },
32+ "node_modules/@grpc/grpc-js": {
33+ "version": "1.14.4",
34+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.4.tgz",
35+ "integrity": "sha512-k9Dj3DV/itK9D06Y8f190Qgop7/Ui+D0njFV3LHMPwPT75DpXLQohE9Wmz0QElrJnzsjB7KPWiKJbOl7IPDArQ==",
36+ "license": "Apache-2.0",
37+ "dependencies": {
38+ "@grpc/proto-loader": "^0.8.0",
39+ "@js-sdsl/ordered-map": "^4.4.2"
40+ },
41+ "engines": {
42+ "node": ">=12.10.0"
43+ }
44+ },
45+ "node_modules/@grpc/proto-loader": {
46+ "version": "0.8.1",
47+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.8.1.tgz",
48+ "integrity": "sha512-wtF6h+DY6M3YaDBPAmvuuA6jV8Sif9MjtOI5euKFWRgCDl5PeDpPsHR9u2l6St5ceY8AZgoNDww5+HvEsXFsGg==",
49+ "license": "Apache-2.0",
50+ "dependencies": {
51+ "lodash.camelcase": "^4.3.0",
52+ "long": "^5.0.0",
53+ "protobufjs": "^7.5.5",
54+ "yargs": "^17.7.2"
55+ },
56+ "bin": {
57+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
58+ },
59+ "engines": {
60+ "node": ">=6"
61+ }
62+ },
63+ "node_modules/@isaacs/fs-minipass": {
64+ "version": "4.0.1",
65+ "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
66+ "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
67+ "license": "ISC",
68+ "dependencies": {
69+ "minipass": "^7.0.4"
70+ },
71+ "engines": {
72+ "node": ">=18.0.0"
73+ }
74+ },
75+ "node_modules/@isaacs/string-locale-compare": {
76+ "version": "1.1.0",
77+ "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz",
78+ "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==",
79+ "license": "ISC"
80+ },
81+ "node_modules/@js-sdsl/ordered-map": {
82+ "version": "4.4.2",
83+ "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz",
84+ "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==",
85+ "license": "MIT",
86+ "funding": {
87+ "type": "opencollective",
88+ "url": "https://opencollective.com/js-sdsl"
89+ }
90+ },
91+ "node_modules/@logdna/tail-file": {
92+ "version": "2.2.0",
93+ "resolved": "https://registry.npmjs.org/@logdna/tail-file/-/tail-file-2.2.0.tgz",
94+ "integrity": "sha512-XGSsWDweP80Fks16lwkAUIr54ICyBs6PsI4mpfTLQaWgEJRtY9xEV+PeyDpJ+sJEGZxqINlpmAwe/6tS1pP8Ng==",
95+ "license": "SEE LICENSE IN LICENSE",
96+ "engines": {
97+ "node": ">=10.3.0"
98+ }
99+ },
100+ "node_modules/@npmcli/agent": {
101+ "version": "4.0.2",
102+ "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.2.tgz",
103+ "integrity": "sha512-EUEuWAxnL07Sp5/iC/1X6Xj+XThUvnbei9zfRWZdEXa7lss9RTHMhAHBeg+MZ5To9s/gGaSI+UwZTPdYMvKSeg==",
104+ "license": "ISC",
105+ "dependencies": {
106+ "agent-base": "^7.1.0",
107+ "http-proxy-agent": "^7.0.0",
108+ "https-proxy-agent": "^7.0.1",
109+ "lru-cache": "^11.2.1",
110+ "socks-proxy-agent": "^8.0.3"
111+ },
112+ "engines": {
113+ "node": "^20.17.0 || >=22.9.0"
114+ }
115+ },
116+ "node_modules/@npmcli/arborist": {
117+ "version": "9.9.0",
118+ "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-9.9.0.tgz",
119+ "integrity": "sha512-tzsb1R8mx0k0drlLDT/9ckEYaQHIaWnUti/ci2IaFoQqdqwfmYrc+90p1+QEZC/ocvqcxBep9P1xKw4FbAGofw==",
120+ "license": "ISC",
121+ "dependencies": {
122+ "@gar/promise-retry": "^1.0.0",
123+ "@isaacs/string-locale-compare": "^1.1.0",
124+ "@npmcli/fs": "^5.0.0",
125+ "@npmcli/installed-package-contents": "^4.0.0",
126+ "@npmcli/map-workspaces": "^5.0.0",
127+ "@npmcli/metavuln-calculator": "^9.0.2",
128+ "@npmcli/name-from-folder": "^4.0.0",
129+ "@npmcli/node-gyp": "^5.0.0",
130+ "@npmcli/package-json": "^7.0.0",
131+ "@npmcli/query": "^5.0.0",
132+ "@npmcli/redact": "^4.0.0",
133+ "@npmcli/run-script": "^10.0.0",
134+ "bin-links": "^6.0.0",
135+ "cacache": "^20.0.1",
136+ "common-ancestor-path": "^2.0.0",
137+ "hosted-git-info": "^9.0.0",
138+ "json-stringify-nice": "^1.1.4",
139+ "lru-cache": "^11.2.1",
140+ "minimatch": "^10.0.3",
141+ "nopt": "^9.0.0",
142+ "npm-install-checks": "^8.0.0",
143+ "npm-package-arg": "^13.0.0",
144+ "npm-pick-manifest": "^11.0.1",
145+ "npm-registry-fetch": "^19.0.0",
146+ "pacote": "^21.0.2",
147+ "parse-conflict-json": "^5.0.1",
148+ "proc-log": "^6.0.0",
149+ "proggy": "^4.0.0",
150+ "promise-all-reject-late": "^1.0.0",
151+ "promise-call-limit": "^3.0.1",
152+ "semver": "^7.3.7",
153+ "ssri": "^13.0.0",
154+ "treeverse": "^3.0.0",
155+ "walk-up-path": "^4.0.0"
156+ },
157+ "bin": {
158+ "arborist": "bin/index.js"
159+ },
160+ "engines": {
161+ "node": "^20.17.0 || >=22.9.0"
162+ }
163+ },
164+ "node_modules/@npmcli/fs": {
165+ "version": "5.0.0",
166+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz",
167+ "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==",
168+ "license": "ISC",
169+ "dependencies": {
170+ "semver": "^7.3.5"
171+ },
172+ "engines": {
173+ "node": "^20.17.0 || >=22.9.0"
174+ }
175+ },
176+ "node_modules/@npmcli/git": {
177+ "version": "7.0.2",
178+ "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.2.tgz",
179+ "integrity": "sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==",
180+ "license": "ISC",
181+ "dependencies": {
182+ "@gar/promise-retry": "^1.0.0",
183+ "@npmcli/promise-spawn": "^9.0.0",
184+ "ini": "^6.0.0",
185+ "lru-cache": "^11.2.1",
186+ "npm-pick-manifest": "^11.0.1",
187+ "proc-log": "^6.0.0",
188+ "semver": "^7.3.5",
189+ "which": "^6.0.0"
190+ },
191+ "engines": {
192+ "node": "^20.17.0 || >=22.9.0"
193+ }
194+ },
195+ "node_modules/@npmcli/git/node_modules/ini": {
196+ "version": "6.0.0",
197+ "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz",
198+ "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==",
199+ "license": "ISC",
200+ "engines": {
201+ "node": "^20.17.0 || >=22.9.0"
202+ }
203+ },
204+ "node_modules/@npmcli/installed-package-contents": {
205+ "version": "4.0.0",
206+ "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz",
207+ "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==",
208+ "license": "ISC",
209+ "dependencies": {
210+ "npm-bundled": "^5.0.0",
211+ "npm-normalize-package-bin": "^5.0.0"
212+ },
213+ "bin": {
214+ "installed-package-contents": "bin/index.js"
215+ },
216+ "engines": {
217+ "node": "^20.17.0 || >=22.9.0"
218+ }
219+ },
220+ "node_modules/@npmcli/map-workspaces": {
221+ "version": "5.0.3",
222+ "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-5.0.3.tgz",
223+ "integrity": "sha512-o2grssXo1e774E5OtEwwrgoszYRh0lqkJH+Pb9r78UcqdGJRDRfhpM8DvZPjzNLLNYeD/rNbjOKM3Ss5UABROw==",
224+ "license": "ISC",
225+ "dependencies": {
226+ "@npmcli/name-from-folder": "^4.0.0",
227+ "@npmcli/package-json": "^7.0.0",
228+ "glob": "^13.0.0",
229+ "minimatch": "^10.0.3"
230+ },
231+ "engines": {
232+ "node": "^20.17.0 || >=22.9.0"
233+ }
234+ },
235+ "node_modules/@npmcli/metavuln-calculator": {
236+ "version": "9.0.3",
237+ "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-9.0.3.tgz",
238+ "integrity": "sha512-94GLSYhLXF2t2LAC7pDwLaM4uCARzxShyAQKsirmlNcpidH89VA4/+K1LbJmRMgz5gy65E/QBBWQdUvGLe2Frg==",
239+ "license": "ISC",
240+ "dependencies": {
241+ "cacache": "^20.0.0",
242+ "json-parse-even-better-errors": "^5.0.0",
243+ "pacote": "^21.0.0",
244+ "proc-log": "^6.0.0",
245+ "semver": "^7.3.5"
246+ },
247+ "engines": {
248+ "node": "^20.17.0 || >=22.9.0"
249+ }
250+ },
251+ "node_modules/@npmcli/name-from-folder": {
252+ "version": "4.0.0",
253+ "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-4.0.0.tgz",
254+ "integrity": "sha512-qfrhVlOSqmKM8i6rkNdZzABj8MKEITGFAY+4teqBziksCQAOLutiAxM1wY2BKEd8KjUSpWmWCYxvXr0y4VTlPg==",
255+ "license": "ISC",
256+ "engines": {
257+ "node": "^20.17.0 || >=22.9.0"
258+ }
259+ },
260+ "node_modules/@npmcli/node-gyp": {
261+ "version": "5.0.0",
262+ "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-5.0.0.tgz",
263+ "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==",
264+ "license": "ISC",
265+ "engines": {
266+ "node": "^20.17.0 || >=22.9.0"
267+ }
268+ },
269+ "node_modules/@npmcli/package-json": {
270+ "version": "7.0.5",
271+ "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.5.tgz",
272+ "integrity": "sha512-iVuTlG3ORq2iaVa1IWUxAO/jIp77tUKBhoMjuzYW2kL4MLN1bi/ofqkZ7D7OOwh8coAx1/S2ge0rMdGv8sLSOQ==",
273+ "license": "ISC",
274+ "dependencies": {
275+ "@npmcli/git": "^7.0.0",
276+ "glob": "^13.0.0",
277+ "hosted-git-info": "^9.0.0",
278+ "json-parse-even-better-errors": "^5.0.0",
279+ "proc-log": "^6.0.0",
280+ "semver": "^7.5.3",
281+ "spdx-expression-parse": "^4.0.0"
282+ },
283+ "engines": {
284+ "node": "^20.17.0 || >=22.9.0"
285+ }
286+ },
287+ "node_modules/@npmcli/promise-spawn": {
288+ "version": "9.0.1",
289+ "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz",
290+ "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==",
291+ "license": "ISC",
292+ "dependencies": {
293+ "which": "^6.0.0"
294+ },
295+ "engines": {
296+ "node": "^20.17.0 || >=22.9.0"
297+ }
298+ },
299+ "node_modules/@npmcli/query": {
300+ "version": "5.0.0",
301+ "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-5.0.0.tgz",
302+ "integrity": "sha512-8TZWfTQOsODpLqo9SVhVjHovmKXNpevHU0gO9e+y4V4fRIOneiXy0u0sMP9LmS71XivrEWfZWg50ReH4WRT4aQ==",
303+ "license": "ISC",
304+ "dependencies": {
305+ "postcss-selector-parser": "^7.0.0"
306+ },
307+ "engines": {
308+ "node": "^20.17.0 || >=22.9.0"
309+ }
310+ },
311+ "node_modules/@npmcli/redact": {
312+ "version": "4.0.0",
313+ "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz",
314+ "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==",
315+ "license": "ISC",
316+ "engines": {
317+ "node": "^20.17.0 || >=22.9.0"
318+ }
319+ },
320+ "node_modules/@npmcli/run-script": {
321+ "version": "10.0.4",
322+ "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.4.tgz",
323+ "integrity": "sha512-mGUWr1uMnf0le2TwfOZY4SFxZGXGfm4Jtay/nwAa2FLNAKXUoUwaGwBMNH36UHPtinWfTSJ3nqFQr0091CxVGg==",
324+ "license": "ISC",
325+ "dependencies": {
326+ "@npmcli/node-gyp": "^5.0.0",
327+ "@npmcli/package-json": "^7.0.0",
328+ "@npmcli/promise-spawn": "^9.0.0",
329+ "node-gyp": "^12.1.0",
330+ "proc-log": "^6.0.0"
331+ },
332+ "engines": {
333+ "node": "^20.17.0 || >=22.9.0"
334+ }
335+ },
336+ "node_modules/@opentelemetry/api": {
337+ "version": "1.9.1",
338+ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.1.tgz",
339+ "integrity": "sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==",
340+ "license": "Apache-2.0",
341+ "engines": {
342+ "node": ">=8.0.0"
343+ }
344+ },
345+ "node_modules/@opentelemetry/api-logs": {
346+ "version": "0.220.0",
347+ "resolved": "https://registry.npmjs.org/@opentelemetry/api-logs/-/api-logs-0.220.0.tgz",
348+ "integrity": "sha512-CmVa4ImJ+ynfrPMNaAXHET6Bhb44SwzmfyVJFq9ni2jgXJR/l7C6gfVFddNmHP+ZOkP9cf4f9DBe68qVLTHc9w==",
349+ "license": "Apache-2.0",
350+ "dependencies": {
351+ "@opentelemetry/api": "^1.3.0"
352+ },
353+ "engines": {
354+ "node": ">=8.0.0"
355+ }
356+ },
357+ "node_modules/@opentelemetry/context-async-hooks": {
358+ "version": "2.9.0",
359+ "resolved": "https://registry.npmjs.org/@opentelemetry/context-async-hooks/-/context-async-hooks-2.9.0.tgz",
360+ "integrity": "sha512-OQ0vzvbZBiUhjqLnUaoNfYmP8553Crr3aggB4y0ZUi815mZ7idpdJXQmoKdeBKJelYttoBlLSSHubmyw3wvX4w==",
361+ "license": "Apache-2.0",
362+ "engines": {
363+ "node": "^18.19.0 || >=20.6.0"
364+ },
365+ "peerDependencies": {
366+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
367+ }
368+ },
369+ "node_modules/@opentelemetry/core": {
370+ "version": "2.9.0",
371+ "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-2.9.0.tgz",
372+ "integrity": "sha512-m2nckMT80NnmjTYSPjJQObBJ+8dgkoajEOUbznL8AHZ3T3yHRk2P7gI1PhEBc1+lOnrYE9UWrWHqJDsmqjmNbw==",
373+ "license": "Apache-2.0",
374+ "dependencies": {
375+ "@opentelemetry/semantic-conventions": "^1.29.0"
376+ },
377+ "engines": {
378+ "node": "^18.19.0 || >=20.6.0"
379+ },
380+ "peerDependencies": {
381+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
382+ }
383+ },
384+ "node_modules/@opentelemetry/exporter-trace-otlp-grpc": {
385+ "version": "0.220.0",
386+ "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.220.0.tgz",
387+ "integrity": "sha512-bv1xmNhmNwIM6MdUBw4yYuJeVcEViVLk3uD69vOQMwueHBnfyl/u0HnBlB1FNY/Te0UOzJzvcbyR8wN6b+iGbA==",
388+ "license": "Apache-2.0",
389+ "dependencies": {
390+ "@grpc/grpc-js": "^1.14.3",
391+ "@opentelemetry/otlp-exporter-base": "0.220.0",
392+ "@opentelemetry/otlp-grpc-exporter-base": "0.220.0",
393+ "@opentelemetry/otlp-transformer": "0.220.0",
394+ "@opentelemetry/sdk-trace": "2.9.0"
395+ },
396+ "engines": {
397+ "node": "^18.19.0 || >=20.6.0"
398+ },
399+ "peerDependencies": {
400+ "@opentelemetry/api": "^1.3.0"
401+ }
402+ },
403+ "node_modules/@opentelemetry/exporter-zipkin": {
404+ "version": "2.9.0",
405+ "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-2.9.0.tgz",
406+ "integrity": "sha512-RwINoce2BH8T4obT5pMcAla2sWma1YZvYuaktWmTluQ0PkQdvv5D060rWI1+kawX+J2qBRcMbwrZJJNcMJUauQ==",
407+ "license": "Apache-2.0",
408+ "dependencies": {
409+ "@opentelemetry/core": "2.9.0",
410+ "@opentelemetry/resources": "2.9.0",
411+ "@opentelemetry/sdk-trace": "2.9.0",
412+ "@opentelemetry/semantic-conventions": "^1.29.0"
413+ },
414+ "engines": {
415+ "node": "^18.19.0 || >=20.6.0"
416+ },
417+ "peerDependencies": {
418+ "@opentelemetry/api": "^1.0.0"
419+ }
420+ },
421+ "node_modules/@opentelemetry/instrumentation": {
422+ "version": "0.220.0",
423+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation/-/instrumentation-0.220.0.tgz",
424+ "integrity": "sha512-xQx3E2WxP1mDvKzxLxX+CTCtNLa560YJZ3087qYHerl2YmiKpv7AH+dAy7vmx+eVrZ5BwhfWUAVoKOoxCNHcpw==",
425+ "license": "Apache-2.0",
426+ "dependencies": {
427+ "@opentelemetry/api-logs": "0.220.0",
428+ "import-in-the-middle": "^3.0.0",
429+ "require-in-the-middle": "^8.0.0"
430+ },
431+ "engines": {
432+ "node": "^18.19.0 || >=20.6.0"
433+ },
434+ "peerDependencies": {
435+ "@opentelemetry/api": "^1.3.0"
436+ }
437+ },
438+ "node_modules/@opentelemetry/instrumentation-grpc": {
439+ "version": "0.220.0",
440+ "resolved": "https://registry.npmjs.org/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.220.0.tgz",
441+ "integrity": "sha512-U1EF8KKu52XwH2ybUkjVDmaVQZGf3mXirRSw1KJQrOV5aymgJgkPJV7+kRPqawZe0rpVc/BK+pPSyMWuQoyJJQ==",
442+ "license": "Apache-2.0",
443+ "dependencies": {
444+ "@opentelemetry/instrumentation": "0.220.0",
445+ "@opentelemetry/semantic-conventions": "^1.29.0"
446+ },
447+ "engines": {
448+ "node": "^18.19.0 || >=20.6.0"
449+ },
450+ "peerDependencies": {
451+ "@opentelemetry/api": "^1.3.0"
452+ }
453+ },
454+ "node_modules/@opentelemetry/otlp-exporter-base": {
455+ "version": "0.220.0",
456+ "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.220.0.tgz",
457+ "integrity": "sha512-CXYo8UD5Mn9YbgebO2EL4wejtA+gxLmLiu6HCk2KH2BR7XhFN6/6p1UlCb23DYCjeYkndevLHuejCCN1yx4+OQ==",
458+ "license": "Apache-2.0",
459+ "dependencies": {
460+ "@opentelemetry/core": "2.9.0",
461+ "@opentelemetry/otlp-transformer": "0.220.0"
462+ },
463+ "engines": {
464+ "node": "^18.19.0 || >=20.6.0"
465+ },
466+ "peerDependencies": {
467+ "@opentelemetry/api": "^1.3.0"
468+ }
469+ },
470+ "node_modules/@opentelemetry/otlp-grpc-exporter-base": {
471+ "version": "0.220.0",
472+ "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.220.0.tgz",
473+ "integrity": "sha512-/eIkBPMBTIvM3x/0mDX4aJeSkYifYClnBPr68PL1h5LV4VQv4+SV6CGrpiZ4fIWDnobVmhTWCm1J/QRdAWUfvA==",
474+ "license": "Apache-2.0",
475+ "dependencies": {
476+ "@grpc/grpc-js": "^1.14.3",
477+ "@opentelemetry/core": "2.9.0",
478+ "@opentelemetry/otlp-exporter-base": "0.220.0",
479+ "@opentelemetry/otlp-transformer": "0.220.0"
480+ },
481+ "engines": {
482+ "node": "^18.19.0 || >=20.6.0"
483+ },
484+ "peerDependencies": {
485+ "@opentelemetry/api": "^1.3.0"
486+ }
487+ },
488+ "node_modules/@opentelemetry/otlp-transformer": {
489+ "version": "0.220.0",
490+ "resolved": "https://registry.npmjs.org/@opentelemetry/otlp-transformer/-/otlp-transformer-0.220.0.tgz",
491+ "integrity": "sha512-lXGrv7KXZ0gNH9SVNUaa6vv6phVYGvJxfXAlMbzbakiXru75f5MZl8Z7oqiMMQD77riVHJCFlQvbZs/VVN2/4A==",
492+ "license": "Apache-2.0",
493+ "dependencies": {
494+ "@opentelemetry/api-logs": "0.220.0",
495+ "@opentelemetry/core": "2.9.0",
496+ "@opentelemetry/resources": "2.9.0",
497+ "@opentelemetry/sdk-logs": "0.220.0",
498+ "@opentelemetry/sdk-metrics": "2.9.0",
499+ "@opentelemetry/sdk-trace": "2.9.0"
500+ },
501+ "engines": {
502+ "node": "^18.19.0 || >=20.6.0"
503+ },
504+ "peerDependencies": {
505+ "@opentelemetry/api": "^1.3.0"
506+ }
507+ },
508+ "node_modules/@opentelemetry/resources": {
509+ "version": "2.9.0",
510+ "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-2.9.0.tgz",
511+ "integrity": "sha512-jyA5MBLQ+Dkl3+JsZkUoUvL7yHvU64kLsvpXKarWm6347Sl1t1bXFTFykUePNpT5WH5pm9a2Qtt03iIYQhZ1Fg==",
512+ "license": "Apache-2.0",
513+ "dependencies": {
514+ "@opentelemetry/core": "2.9.0",
515+ "@opentelemetry/semantic-conventions": "^1.29.0"
516+ },
517+ "engines": {
518+ "node": "^18.19.0 || >=20.6.0"
519+ },
520+ "peerDependencies": {
521+ "@opentelemetry/api": ">=1.3.0 <1.10.0"
522+ }
523+ },
524+ "node_modules/@opentelemetry/sdk-logs": {
525+ "version": "0.220.0",
526+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-logs/-/sdk-logs-0.220.0.tgz",
527+ "integrity": "sha512-WywcTkQtv2iNmt+6y5Kcd4rzvx9bLVsBa2Nwcmg01IUaBTkTow3W4d9KE5vNBpEDtb9tp21WcRBY/lANRrApYA==",
528+ "license": "Apache-2.0",
529+ "dependencies": {
530+ "@opentelemetry/api-logs": "0.220.0",
531+ "@opentelemetry/core": "2.9.0",
532+ "@opentelemetry/resources": "2.9.0",
533+ "@opentelemetry/semantic-conventions": "^1.29.0"
534+ },
535+ "engines": {
536+ "node": "^18.19.0 || >=20.6.0"
537+ },
538+ "peerDependencies": {
539+ "@opentelemetry/api": ">=1.4.0 <1.10.0"
540+ }
541+ },
542+ "node_modules/@opentelemetry/sdk-metrics": {
543+ "version": "2.9.0",
544+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-2.9.0.tgz",
545+ "integrity": "sha512-Xx8RGS4H5XEBl01WuCreMIpiah9cCXMbSkeuIePPdD2cUpq/vUzYmj8E/MK1OsbOc93FuAD4jfn2WOacKwLn7Q==",
546+ "license": "Apache-2.0",
547+ "dependencies": {
548+ "@opentelemetry/core": "2.9.0",
549+ "@opentelemetry/resources": "2.9.0"
550+ },
551+ "engines": {
552+ "node": "^18.19.0 || >=20.6.0"
553+ },
554+ "peerDependencies": {
555+ "@opentelemetry/api": ">=1.9.0 <1.10.0"
556+ }
557+ },
558+ "node_modules/@opentelemetry/sdk-trace": {
559+ "version": "2.9.0",
560+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace/-/sdk-trace-2.9.0.tgz",
561+ "integrity": "sha512-sGA19HvtrrSKYsseHphluH6j3p6Xa3fqc7c7y8f/7mYWejc1lyDFcpSdD1kYa50HCLUeEo4zA5bW0pniaPszuw==",
562+ "license": "Apache-2.0",
563+ "dependencies": {
564+ "@opentelemetry/core": "2.9.0",
565+ "@opentelemetry/resources": "2.9.0",
566+ "@opentelemetry/semantic-conventions": "^1.29.0"
567+ },
568+ "engines": {
569+ "node": "^18.19.0 || >=20.6.0"
570+ },
571+ "peerDependencies": {
572+ "@opentelemetry/api": ">=1.3.0 <1.10.0"
573+ }
574+ },
575+ "node_modules/@opentelemetry/sdk-trace-base": {
576+ "version": "2.9.0",
577+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.9.0.tgz",
578+ "integrity": "sha512-cp9zmTl62R8PJrpvFcmc8N2JQU/xfa0S+61q511Nji+QxCfZ8Ifvg7H27G8cANe4crg4RTrWsVvanHiXjSp6ag==",
579+ "license": "Apache-2.0",
580+ "dependencies": {
581+ "@opentelemetry/core": "2.9.0",
582+ "@opentelemetry/resources": "2.9.0",
583+ "@opentelemetry/sdk-trace": "2.9.0",
584+ "@opentelemetry/semantic-conventions": "^1.29.0"
585+ },
586+ "engines": {
587+ "node": "^18.19.0 || >=20.6.0"
588+ },
589+ "peerDependencies": {
590+ "@opentelemetry/api": ">=1.3.0 <1.10.0"
591+ }
592+ },
593+ "node_modules/@opentelemetry/sdk-trace-node": {
594+ "version": "2.9.0",
595+ "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-node/-/sdk-trace-node-2.9.0.tgz",
596+ "integrity": "sha512-ec9a7ps37huy5itYk0MalaZdSLlM6AXWp/FhtEjgMpp5leEGojBDvAl/UWttQnkMZOvFHKzRESn8TD3yKTF5nQ==",
597+ "license": "Apache-2.0",
598+ "dependencies": {
599+ "@opentelemetry/context-async-hooks": "2.9.0",
600+ "@opentelemetry/core": "2.9.0",
601+ "@opentelemetry/sdk-trace-base": "2.9.0"
602+ },
603+ "engines": {
604+ "node": "^18.19.0 || >=20.6.0"
605+ },
606+ "peerDependencies": {
607+ "@opentelemetry/api": ">=1.0.0 <1.10.0"
608+ }
609+ },
610+ "node_modules/@opentelemetry/semantic-conventions": {
611+ "version": "1.43.0",
612+ "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.43.0.tgz",
613+ "integrity": "sha512-eSYWTm620tTk45EKSedaUL8MFYI8hW164hIXsgIHyxu3VobUB3fFCu5t0hQby6OoWRPsG1KkKUG2M5UadiLiVg==",
614+ "license": "Apache-2.0",
615+ "engines": {
616+ "node": ">=14"
617+ }
618+ },
619+ "node_modules/@protobufjs/aspromise": {
620+ "version": "1.1.2",
621+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
622+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
623+ "license": "BSD-3-Clause"
624+ },
625+ "node_modules/@protobufjs/base64": {
626+ "version": "1.1.2",
627+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
628+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
629+ "license": "BSD-3-Clause"
630+ },
631+ "node_modules/@protobufjs/codegen": {
632+ "version": "2.0.5",
633+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz",
634+ "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==",
635+ "license": "BSD-3-Clause"
636+ },
637+ "node_modules/@protobufjs/eventemitter": {
638+ "version": "1.1.1",
639+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.1.tgz",
640+ "integrity": "sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==",
641+ "license": "BSD-3-Clause"
642+ },
643+ "node_modules/@protobufjs/fetch": {
644+ "version": "1.1.1",
645+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.1.tgz",
646+ "integrity": "sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==",
647+ "license": "BSD-3-Clause",
648+ "dependencies": {
649+ "@protobufjs/aspromise": "^1.1.1"
650+ }
651+ },
652+ "node_modules/@protobufjs/float": {
653+ "version": "1.0.2",
654+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
655+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
656+ "license": "BSD-3-Clause"
657+ },
658+ "node_modules/@protobufjs/path": {
659+ "version": "1.1.2",
660+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
661+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
662+ "license": "BSD-3-Clause"
663+ },
664+ "node_modules/@protobufjs/pool": {
665+ "version": "1.1.0",
666+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
667+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
668+ "license": "BSD-3-Clause"
669+ },
670+ "node_modules/@protobufjs/utf8": {
671+ "version": "1.1.2",
672+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.2.tgz",
673+ "integrity": "sha512-b1UQwcEZ4yCnMCD8DAL1VlbvBJE9/IX4FTIp7BG1xYpf29SLazLSrqUkj4w7Y5y7cCVP6E5tcqqcI0xemPkHug==",
674+ "license": "BSD-3-Clause"
675+ },
676+ "node_modules/@pulumi/cloudflare": {
677+ "version": "6.18.0",
678+ "resolved": "https://registry.npmjs.org/@pulumi/cloudflare/-/cloudflare-6.18.0.tgz",
679+ "integrity": "sha512-L49neVgL7crzUKr+lfNYAmooqnmSGPg6TN8+PXouxyjojjwMdRM3WLNPkUxYu3vqr0WhD86afqdujee1Kz4R9w==",
680+ "license": "Apache-2.0",
681+ "dependencies": {
682+ "@pulumi/pulumi": "^3.142.0"
683+ }
684+ },
685+ "node_modules/@pulumi/pulumi": {
686+ "version": "3.253.0",
687+ "resolved": "https://registry.npmjs.org/@pulumi/pulumi/-/pulumi-3.253.0.tgz",
688+ "integrity": "sha512-riKRPh6hNCA/NRxVSOLx08c0rqgWYnKGOTgPZzCXi5TglVEERiXHW4U2DaTpP978FI1Xo1iqCa41vmd5i/PNHw==",
689+ "license": "Apache-2.0",
690+ "dependencies": {
691+ "@grpc/grpc-js": "^1.10.1",
692+ "@logdna/tail-file": "^2.0.6",
693+ "@npmcli/arborist": "^9.0.0",
694+ "@opentelemetry/api": "^1.9",
695+ "@opentelemetry/core": "^2.9",
696+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.220",
697+ "@opentelemetry/exporter-zipkin": "^2.9",
698+ "@opentelemetry/instrumentation": "^0.220",
699+ "@opentelemetry/instrumentation-grpc": "^0.220",
700+ "@opentelemetry/resources": "^2.9",
701+ "@opentelemetry/sdk-trace-base": "^2.9",
702+ "@opentelemetry/sdk-trace-node": "^2.9",
703+ "@opentelemetry/semantic-conventions": "^1.42",
704+ "@types/google-protobuf": "^3.15.5",
705+ "@types/semver": "^7.5.6",
706+ "execa": "^5.1.0",
707+ "google-protobuf": "^3.21.4",
708+ "ini": "^2.0.0",
709+ "js-yaml": "^4.0.0",
710+ "minimist": "^1.2.6",
711+ "normalize-package-data": "^6.0.0",
712+ "require-from-string": "^2.0.1",
713+ "semver": "^7.5.2",
714+ "source-map-support": "^0.5.6",
715+ "upath": "^1.1.0"
716+ },
717+ "engines": {
718+ "node": ">=22"
719+ },
720+ "peerDependencies": {
721+ "ts-node": ">= 7.0.1 < 12",
722+ "typescript": ">= 3.8.3 < 7"
723+ },
724+ "peerDependenciesMeta": {
725+ "ts-node": {
726+ "optional": true
727+ },
728+ "typescript": {
729+ "optional": true
730+ }
731+ }
732+ },
733+ "node_modules/@sigstore/bundle": {
734+ "version": "4.0.0",
735+ "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz",
736+ "integrity": "sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==",
737+ "license": "Apache-2.0",
738+ "dependencies": {
739+ "@sigstore/protobuf-specs": "^0.5.0"
740+ },
741+ "engines": {
742+ "node": "^20.17.0 || >=22.9.0"
743+ }
744+ },
745+ "node_modules/@sigstore/core": {
746+ "version": "3.2.1",
747+ "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.1.tgz",
748+ "integrity": "sha512-qRsxPnCrbC/puegGxKuynfnxgLiHqWStrSjxkoB4YKqq3Z3s4cyZyj42ZdWFAEblNP65C+rBH8EuREHIXoi83g==",
749+ "license": "Apache-2.0",
750+ "engines": {
751+ "node": "^20.17.0 || >=22.9.0"
752+ }
753+ },
754+ "node_modules/@sigstore/protobuf-specs": {
755+ "version": "0.5.1",
756+ "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.1.tgz",
757+ "integrity": "sha512-/ScWUhhoFasJsSRGTVBwId1loQjjnjAfE4djL6ZhrXRpNCmPTnUKF5Jokd58ILseOMjzET3UrMOtJPS9sYeI0g==",
758+ "license": "Apache-2.0",
759+ "engines": {
760+ "node": "^18.17.0 || >=20.5.0"
761+ }
762+ },
763+ "node_modules/@sigstore/sign": {
764+ "version": "4.1.1",
765+ "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.1.tgz",
766+ "integrity": "sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==",
767+ "license": "Apache-2.0",
768+ "dependencies": {
769+ "@gar/promise-retry": "^1.0.2",
770+ "@sigstore/bundle": "^4.0.0",
771+ "@sigstore/core": "^3.2.0",
772+ "@sigstore/protobuf-specs": "^0.5.0",
773+ "make-fetch-happen": "^15.0.4",
774+ "proc-log": "^6.1.0"
775+ },
776+ "engines": {
777+ "node": "^20.17.0 || >=22.9.0"
778+ }
779+ },
780+ "node_modules/@sigstore/tuf": {
781+ "version": "4.0.2",
782+ "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz",
783+ "integrity": "sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==",
784+ "license": "Apache-2.0",
785+ "dependencies": {
786+ "@sigstore/protobuf-specs": "^0.5.0",
787+ "tuf-js": "^4.1.0"
788+ },
789+ "engines": {
790+ "node": "^20.17.0 || >=22.9.0"
791+ }
792+ },
793+ "node_modules/@sigstore/verify": {
794+ "version": "3.1.1",
795+ "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.1.tgz",
796+ "integrity": "sha512-qv7+G3J2cc6wwFj3yKvXOamzqhMwSk1ogPGmhpS8iXllcPrJaIIBA+4HbttlHVu1pqWTdmaCH/WE7UOC51kdoA==",
797+ "license": "Apache-2.0",
798+ "dependencies": {
799+ "@sigstore/bundle": "^4.0.0",
800+ "@sigstore/core": "^3.2.1",
801+ "@sigstore/protobuf-specs": "^0.5.0"
802+ },
803+ "engines": {
804+ "node": "^20.17.0 || >=22.9.0"
805+ }
806+ },
807+ "node_modules/@tufjs/canonical-json": {
808+ "version": "2.0.0",
809+ "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz",
810+ "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==",
811+ "license": "MIT",
812+ "engines": {
813+ "node": "^16.14.0 || >=18.0.0"
814+ }
815+ },
816+ "node_modules/@tufjs/models": {
817+ "version": "4.1.0",
818+ "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz",
819+ "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==",
820+ "license": "MIT",
821+ "dependencies": {
822+ "@tufjs/canonical-json": "2.0.0",
823+ "minimatch": "^10.1.1"
824+ },
825+ "engines": {
826+ "node": "^20.17.0 || >=22.9.0"
827+ }
828+ },
829+ "node_modules/@types/google-protobuf": {
830+ "version": "3.15.12",
831+ "resolved": "https://registry.npmjs.org/@types/google-protobuf/-/google-protobuf-3.15.12.tgz",
832+ "integrity": "sha512-40um9QqwHjRS92qnOaDpL7RmDK15NuZYo9HihiJRbYkMQZlWnuH8AdvbMy8/o6lgLmKbDUKa+OALCltHdbOTpQ==",
833+ "license": "MIT"
834+ },
835+ "node_modules/@types/node": {
836+ "version": "24.13.3",
837+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.3.tgz",
838+ "integrity": "sha512-Dh8vAsV36ig5wa9OX4pXvMc9D3Veibfw2wix0CUwYODLD8nkj9UsLjASr49nPg+2eKzxhBV+v7L8pXvT4e639Q==",
839+ "license": "MIT",
840+ "dependencies": {
841+ "undici-types": "~7.18.0"
842+ }
843+ },
844+ "node_modules/@types/semver": {
845+ "version": "7.7.1",
846+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz",
847+ "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==",
848+ "license": "MIT"
849+ },
850+ "node_modules/abbrev": {
851+ "version": "4.0.0",
852+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz",
853+ "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==",
854+ "license": "ISC",
855+ "engines": {
856+ "node": "^20.17.0 || >=22.9.0"
857+ }
858+ },
859+ "node_modules/agent-base": {
860+ "version": "7.1.4",
861+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz",
862+ "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==",
863+ "license": "MIT",
864+ "engines": {
865+ "node": ">= 14"
866+ }
867+ },
868+ "node_modules/ansi-regex": {
869+ "version": "5.0.1",
870+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
871+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
872+ "license": "MIT",
873+ "engines": {
874+ "node": ">=8"
875+ }
876+ },
877+ "node_modules/ansi-styles": {
878+ "version": "4.3.0",
879+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
880+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
881+ "license": "MIT",
882+ "dependencies": {
883+ "color-convert": "^2.0.1"
884+ },
885+ "engines": {
886+ "node": ">=8"
887+ },
888+ "funding": {
889+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
890+ }
891+ },
892+ "node_modules/argparse": {
893+ "version": "2.0.1",
894+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
895+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
896+ "license": "Python-2.0"
897+ },
898+ "node_modules/balanced-match": {
899+ "version": "4.0.4",
900+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
901+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
902+ "license": "MIT",
903+ "engines": {
904+ "node": "18 || 20 || >=22"
905+ }
906+ },
907+ "node_modules/bin-links": {
908+ "version": "6.0.2",
909+ "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-6.0.2.tgz",
910+ "integrity": "sha512-frE1t78WOwJ45PKV2cF2tNPjTcs9L1J9s6VkrV59wanRP4GlaomuxYPVma7BwthMg8WnfSory4w5PTE6FZZ81w==",
911+ "license": "ISC",
912+ "dependencies": {
913+ "cmd-shim": "^8.0.0",
914+ "npm-normalize-package-bin": "^5.0.0",
915+ "proc-log": "^6.0.0",
916+ "read-cmd-shim": "^6.0.0",
917+ "write-file-atomic": "^7.0.0"
918+ },
919+ "engines": {
920+ "node": "^20.17.0 || >=22.9.0"
921+ }
922+ },
923+ "node_modules/brace-expansion": {
924+ "version": "5.0.7",
925+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz",
926+ "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==",
927+ "license": "MIT",
928+ "dependencies": {
929+ "balanced-match": "^4.0.2"
930+ },
931+ "engines": {
932+ "node": "18 || 20 || >=22"
933+ }
934+ },
935+ "node_modules/buffer-from": {
936+ "version": "1.1.2",
937+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
938+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
939+ "license": "MIT"
940+ },
941+ "node_modules/cacache": {
942+ "version": "20.0.4",
943+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.4.tgz",
944+ "integrity": "sha512-M3Lab8NPYlZU2exsL3bMVvMrMqgwCnMWfdZbK28bn3pK6APT/Te/I8hjRPNu1uwORY9a1eEQoifXbKPQMfMTOA==",
945+ "license": "ISC",
946+ "dependencies": {
947+ "@npmcli/fs": "^5.0.0",
948+ "fs-minipass": "^3.0.0",
949+ "glob": "^13.0.0",
950+ "lru-cache": "^11.1.0",
951+ "minipass": "^7.0.3",
952+ "minipass-collect": "^2.0.1",
953+ "minipass-flush": "^1.0.5",
954+ "minipass-pipeline": "^1.2.4",
955+ "p-map": "^7.0.2",
956+ "ssri": "^13.0.0"
957+ },
958+ "engines": {
959+ "node": "^20.17.0 || >=22.9.0"
960+ }
961+ },
962+ "node_modules/chownr": {
963+ "version": "3.0.0",
964+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
965+ "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
966+ "license": "BlueOak-1.0.0",
967+ "engines": {
968+ "node": ">=18"
969+ }
970+ },
971+ "node_modules/cjs-module-lexer": {
972+ "version": "2.2.0",
973+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz",
974+ "integrity": "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==",
975+ "license": "MIT"
976+ },
977+ "node_modules/cliui": {
978+ "version": "8.0.1",
979+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
980+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
981+ "license": "ISC",
982+ "dependencies": {
983+ "string-width": "^4.2.0",
984+ "strip-ansi": "^6.0.1",
985+ "wrap-ansi": "^7.0.0"
986+ },
987+ "engines": {
988+ "node": ">=12"
989+ }
990+ },
991+ "node_modules/cmd-shim": {
992+ "version": "8.0.0",
993+ "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-8.0.0.tgz",
994+ "integrity": "sha512-Jk/BK6NCapZ58BKUxlSI+ouKRbjH1NLZCgJkYoab+vEHUY3f6OzpNBN9u7HFSv9J6TRDGs4PLOHezoKGaFRSCA==",
995+ "license": "ISC",
996+ "engines": {
997+ "node": "^20.17.0 || >=22.9.0"
998+ }
999+ },
1000+ "node_modules/color-convert": {
1001+ "version": "2.0.1",
1002+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1003+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1004+ "license": "MIT",
1005+ "dependencies": {
1006+ "color-name": "~1.1.4"
1007+ },
1008+ "engines": {
1009+ "node": ">=7.0.0"
1010+ }
1011+ },
1012+ "node_modules/color-name": {
1013+ "version": "1.1.4",
1014+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1015+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1016+ "license": "MIT"
1017+ },
1018+ "node_modules/common-ancestor-path": {
1019+ "version": "2.0.0",
1020+ "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-2.0.0.tgz",
1021+ "integrity": "sha512-dnN3ibLeoRf2HNC+OlCiNc5d2zxbLJXOtiZUudNFSXZrNSydxcCsSpRzXwfu7BBWCIfHPw+xTayeBvJCP/D8Ng==",
1022+ "license": "BlueOak-1.0.0",
1023+ "engines": {
1024+ "node": ">= 18"
1025+ }
1026+ },
1027+ "node_modules/cross-spawn": {
1028+ "version": "7.0.6",
1029+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
1030+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
1031+ "license": "MIT",
1032+ "dependencies": {
1033+ "path-key": "^3.1.0",
1034+ "shebang-command": "^2.0.0",
1035+ "which": "^2.0.1"
1036+ },
1037+ "engines": {
1038+ "node": ">= 8"
1039+ }
1040+ },
1041+ "node_modules/cross-spawn/node_modules/isexe": {
1042+ "version": "2.0.0",
1043+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
1044+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
1045+ "license": "ISC"
1046+ },
1047+ "node_modules/cross-spawn/node_modules/which": {
1048+ "version": "2.0.2",
1049+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1050+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1051+ "license": "ISC",
1052+ "dependencies": {
1053+ "isexe": "^2.0.0"
1054+ },
1055+ "bin": {
1056+ "node-which": "bin/node-which"
1057+ },
1058+ "engines": {
1059+ "node": ">= 8"
1060+ }
1061+ },
1062+ "node_modules/cssesc": {
1063+ "version": "3.0.0",
1064+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
1065+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
1066+ "license": "MIT",
1067+ "bin": {
1068+ "cssesc": "bin/cssesc"
1069+ },
1070+ "engines": {
1071+ "node": ">=4"
1072+ }
1073+ },
1074+ "node_modules/debug": {
1075+ "version": "4.4.3",
1076+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
1077+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
1078+ "license": "MIT",
1079+ "dependencies": {
1080+ "ms": "^2.1.3"
1081+ },
1082+ "engines": {
1083+ "node": ">=6.0"
1084+ },
1085+ "peerDependenciesMeta": {
1086+ "supports-color": {
1087+ "optional": true
1088+ }
1089+ }
1090+ },
1091+ "node_modules/emoji-regex": {
1092+ "version": "8.0.0",
1093+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1094+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1095+ "license": "MIT"
1096+ },
1097+ "node_modules/env-paths": {
1098+ "version": "2.2.1",
1099+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
1100+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
1101+ "license": "MIT",
1102+ "engines": {
1103+ "node": ">=6"
1104+ }
1105+ },
1106+ "node_modules/es-module-lexer": {
1107+ "version": "2.3.1",
1108+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.1.tgz",
1109+ "integrity": "sha512-shc1dbU90Yl/xq1QrC7QRtfcwURZuVRfPhZbDoldJ1cn1gzDvBaBWlv0eFolj5+0znnPJz5TXLxsN77X/12KTA==",
1110+ "license": "MIT"
1111+ },
1112+ "node_modules/escalade": {
1113+ "version": "3.2.0",
1114+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
1115+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
1116+ "license": "MIT",
1117+ "engines": {
1118+ "node": ">=6"
1119+ }
1120+ },
1121+ "node_modules/execa": {
1122+ "version": "5.1.1",
1123+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
1124+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
1125+ "license": "MIT",
1126+ "dependencies": {
1127+ "cross-spawn": "^7.0.3",
1128+ "get-stream": "^6.0.0",
1129+ "human-signals": "^2.1.0",
1130+ "is-stream": "^2.0.0",
1131+ "merge-stream": "^2.0.0",
1132+ "npm-run-path": "^4.0.1",
1133+ "onetime": "^5.1.2",
1134+ "signal-exit": "^3.0.3",
1135+ "strip-final-newline": "^2.0.0"
1136+ },
1137+ "engines": {
1138+ "node": ">=10"
1139+ },
1140+ "funding": {
1141+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
1142+ }
1143+ },
1144+ "node_modules/exponential-backoff": {
1145+ "version": "3.1.3",
1146+ "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz",
1147+ "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==",
1148+ "license": "Apache-2.0"
1149+ },
1150+ "node_modules/fdir": {
1151+ "version": "6.5.0",
1152+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
1153+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
1154+ "license": "MIT",
1155+ "engines": {
1156+ "node": ">=12.0.0"
1157+ },
1158+ "peerDependencies": {
1159+ "picomatch": "^3 || ^4"
1160+ },
1161+ "peerDependenciesMeta": {
1162+ "picomatch": {
1163+ "optional": true
1164+ }
1165+ }
1166+ },
1167+ "node_modules/fs-minipass": {
1168+ "version": "3.0.3",
1169+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz",
1170+ "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==",
1171+ "license": "ISC",
1172+ "dependencies": {
1173+ "minipass": "^7.0.3"
1174+ },
1175+ "engines": {
1176+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
1177+ }
1178+ },
1179+ "node_modules/get-caller-file": {
1180+ "version": "2.0.5",
1181+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
1182+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
1183+ "license": "ISC",
1184+ "engines": {
1185+ "node": "6.* || 8.* || >= 10.*"
1186+ }
1187+ },
1188+ "node_modules/get-stream": {
1189+ "version": "6.0.1",
1190+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
1191+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
1192+ "license": "MIT",
1193+ "engines": {
1194+ "node": ">=10"
1195+ },
1196+ "funding": {
1197+ "url": "https://github.com/sponsors/sindresorhus"
1198+ }
1199+ },
1200+ "node_modules/glob": {
1201+ "version": "13.0.6",
1202+ "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz",
1203+ "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==",
1204+ "license": "BlueOak-1.0.0",
1205+ "dependencies": {
1206+ "minimatch": "^10.2.2",
1207+ "minipass": "^7.1.3",
1208+ "path-scurry": "^2.0.2"
1209+ },
1210+ "engines": {
1211+ "node": "18 || 20 || >=22"
1212+ },
1213+ "funding": {
1214+ "url": "https://github.com/sponsors/isaacs"
1215+ }
1216+ },
1217+ "node_modules/google-protobuf": {
1218+ "version": "3.21.4",
1219+ "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.4.tgz",
1220+ "integrity": "sha512-MnG7N936zcKTco4Jd2PX2U96Kf9PxygAPKBug+74LHzmHXmceN16MmRcdgZv+DGef/S9YvQAfRsNCn4cjf9yyQ==",
1221+ "license": "(BSD-3-Clause AND Apache-2.0)"
1222+ },
1223+ "node_modules/graceful-fs": {
1224+ "version": "4.2.11",
1225+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
1226+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
1227+ "license": "ISC"
1228+ },
1229+ "node_modules/hosted-git-info": {
1230+ "version": "9.0.3",
1231+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.3.tgz",
1232+ "integrity": "sha512-Hc+ghLoSt6QaYZUv0WBiIvmMDZuZZ7oaDvdH8MbfOO4lOsxdXLEvuC6ePoGs9H1X9oCLyq6+NVN0MKqD+ydxyg==",
1233+ "license": "ISC",
1234+ "dependencies": {
1235+ "lru-cache": "^11.1.0"
1236+ },
1237+ "engines": {
1238+ "node": "^20.17.0 || >=22.9.0"
1239+ }
1240+ },
1241+ "node_modules/http-cache-semantics": {
1242+ "version": "4.2.0",
1243+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz",
1244+ "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==",
1245+ "license": "BSD-2-Clause"
1246+ },
1247+ "node_modules/http-proxy-agent": {
1248+ "version": "7.0.2",
1249+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
1250+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
1251+ "license": "MIT",
1252+ "dependencies": {
1253+ "agent-base": "^7.1.0",
1254+ "debug": "^4.3.4"
1255+ },
1256+ "engines": {
1257+ "node": ">= 14"
1258+ }
1259+ },
1260+ "node_modules/https-proxy-agent": {
1261+ "version": "7.0.6",
1262+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz",
1263+ "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==",
1264+ "license": "MIT",
1265+ "dependencies": {
1266+ "agent-base": "^7.1.2",
1267+ "debug": "4"
1268+ },
1269+ "engines": {
1270+ "node": ">= 14"
1271+ }
1272+ },
1273+ "node_modules/human-signals": {
1274+ "version": "2.1.0",
1275+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
1276+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
1277+ "license": "Apache-2.0",
1278+ "engines": {
1279+ "node": ">=10.17.0"
1280+ }
1281+ },
1282+ "node_modules/iconv-lite": {
1283+ "version": "0.7.3",
1284+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz",
1285+ "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==",
1286+ "license": "MIT",
1287+ "optional": true,
1288+ "dependencies": {
1289+ "safer-buffer": ">= 2.1.2 < 3.0.0"
1290+ },
1291+ "engines": {
1292+ "node": ">=0.10.0"
1293+ },
1294+ "funding": {
1295+ "type": "opencollective",
1296+ "url": "https://opencollective.com/express"
1297+ }
1298+ },
1299+ "node_modules/ignore-walk": {
1300+ "version": "8.0.0",
1301+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-8.0.0.tgz",
1302+ "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==",
1303+ "license": "ISC",
1304+ "dependencies": {
1305+ "minimatch": "^10.0.3"
1306+ },
1307+ "engines": {
1308+ "node": "^20.17.0 || >=22.9.0"
1309+ }
1310+ },
1311+ "node_modules/import-in-the-middle": {
1312+ "version": "3.3.2",
1313+ "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-3.3.2.tgz",
1314+ "integrity": "sha512-jTd2FfOgOWOdgjkHuk/1Ms8VKFXkPs15ymYBETw1sAOrO/dY3XeGVRWir9qBbw7pXr0T2eTFwfCZ+N02HmiNGA==",
1315+ "license": "Apache-2.0",
1316+ "dependencies": {
1317+ "cjs-module-lexer": "^2.2.0",
1318+ "es-module-lexer": "^2.2.0",
1319+ "module-details-from-path": "^1.0.4"
1320+ },
1321+ "engines": {
1322+ "node": ">=18"
1323+ }
1324+ },
1325+ "node_modules/ini": {
1326+ "version": "2.0.0",
1327+ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
1328+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
1329+ "license": "ISC",
1330+ "engines": {
1331+ "node": ">=10"
1332+ }
1333+ },
1334+ "node_modules/ip-address": {
1335+ "version": "10.2.0",
1336+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz",
1337+ "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==",
1338+ "license": "MIT",
1339+ "engines": {
1340+ "node": ">= 12"
1341+ }
1342+ },
1343+ "node_modules/is-fullwidth-code-point": {
1344+ "version": "3.0.0",
1345+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
1346+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
1347+ "license": "MIT",
1348+ "engines": {
1349+ "node": ">=8"
1350+ }
1351+ },
1352+ "node_modules/is-stream": {
1353+ "version": "2.0.1",
1354+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
1355+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
1356+ "license": "MIT",
1357+ "engines": {
1358+ "node": ">=8"
1359+ },
1360+ "funding": {
1361+ "url": "https://github.com/sponsors/sindresorhus"
1362+ }
1363+ },
1364+ "node_modules/isexe": {
1365+ "version": "4.0.0",
1366+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz",
1367+ "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==",
1368+ "license": "BlueOak-1.0.0",
1369+ "engines": {
1370+ "node": ">=20"
1371+ }
1372+ },
1373+ "node_modules/js-yaml": {
1374+ "version": "4.3.0",
1375+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.3.0.tgz",
1376+ "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==",
1377+ "funding": [
1378+ {
1379+ "type": "github",
1380+ "url": "https://github.com/sponsors/puzrin"
1381+ },
1382+ {
1383+ "type": "github",
1384+ "url": "https://github.com/sponsors/nodeca"
1385+ }
1386+ ],
1387+ "license": "MIT",
1388+ "dependencies": {
1389+ "argparse": "^2.0.1"
1390+ },
1391+ "bin": {
1392+ "js-yaml": "bin/js-yaml.js"
1393+ }
1394+ },
1395+ "node_modules/json-parse-even-better-errors": {
1396+ "version": "5.0.0",
1397+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz",
1398+ "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==",
1399+ "license": "MIT",
1400+ "engines": {
1401+ "node": "^20.17.0 || >=22.9.0"
1402+ }
1403+ },
1404+ "node_modules/json-stringify-nice": {
1405+ "version": "1.1.4",
1406+ "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz",
1407+ "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==",
1408+ "license": "ISC",
1409+ "funding": {
1410+ "url": "https://github.com/sponsors/isaacs"
1411+ }
1412+ },
1413+ "node_modules/jsonparse": {
1414+ "version": "1.3.1",
1415+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
1416+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
1417+ "engines": [
1418+ "node >= 0.2.0"
1419+ ],
1420+ "license": "MIT"
1421+ },
1422+ "node_modules/just-diff": {
1423+ "version": "6.0.2",
1424+ "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz",
1425+ "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==",
1426+ "license": "MIT"
1427+ },
1428+ "node_modules/just-diff-apply": {
1429+ "version": "5.5.0",
1430+ "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz",
1431+ "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==",
1432+ "license": "MIT"
1433+ },
1434+ "node_modules/lodash.camelcase": {
1435+ "version": "4.3.0",
1436+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
1437+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
1438+ "license": "MIT"
1439+ },
1440+ "node_modules/long": {
1441+ "version": "5.3.2",
1442+ "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
1443+ "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
1444+ "license": "Apache-2.0"
1445+ },
1446+ "node_modules/lru-cache": {
1447+ "version": "11.5.2",
1448+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.2.tgz",
1449+ "integrity": "sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==",
1450+ "license": "BlueOak-1.0.0",
1451+ "engines": {
1452+ "node": "20 || >=22"
1453+ }
1454+ },
1455+ "node_modules/make-fetch-happen": {
1456+ "version": "15.0.6",
1457+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.6.tgz",
1458+ "integrity": "sha512-Je0fLJ0F5atA7F+eIlLzk+Wkcl57JDf4kf+EW8xiP5E31xOQxkIxTbgf1Oi1Lw9tRI9UEMRdI5Vz2xTzoNU1Jw==",
1459+ "license": "ISC",
1460+ "dependencies": {
1461+ "@gar/promise-retry": "^1.0.0",
1462+ "@npmcli/agent": "^4.0.0",
1463+ "@npmcli/redact": "^4.0.0",
1464+ "cacache": "^20.0.1",
1465+ "http-cache-semantics": "^4.1.1",
1466+ "minipass": "^7.0.2",
1467+ "minipass-fetch": "^5.0.0",
1468+ "minipass-flush": "^1.0.5",
1469+ "minipass-pipeline": "^1.2.4",
1470+ "negotiator": "^1.0.0",
1471+ "proc-log": "^6.0.0",
1472+ "ssri": "^13.0.0"
1473+ },
1474+ "engines": {
1475+ "node": "^20.17.0 || >=22.9.0"
1476+ }
1477+ },
1478+ "node_modules/merge-stream": {
1479+ "version": "2.0.0",
1480+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
1481+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
1482+ "license": "MIT"
1483+ },
1484+ "node_modules/mimic-fn": {
1485+ "version": "2.1.0",
1486+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
1487+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
1488+ "license": "MIT",
1489+ "engines": {
1490+ "node": ">=6"
1491+ }
1492+ },
1493+ "node_modules/minimatch": {
1494+ "version": "10.2.5",
1495+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
1496+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
1497+ "license": "BlueOak-1.0.0",
1498+ "dependencies": {
1499+ "brace-expansion": "^5.0.5"
1500+ },
1501+ "engines": {
1502+ "node": "18 || 20 || >=22"
1503+ },
1504+ "funding": {
1505+ "url": "https://github.com/sponsors/isaacs"
1506+ }
1507+ },
1508+ "node_modules/minimist": {
1509+ "version": "1.2.8",
1510+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
1511+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
1512+ "license": "MIT",
1513+ "funding": {
1514+ "url": "https://github.com/sponsors/ljharb"
1515+ }
1516+ },
1517+ "node_modules/minipass": {
1518+ "version": "7.1.3",
1519+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
1520+ "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
1521+ "license": "BlueOak-1.0.0",
1522+ "engines": {
1523+ "node": ">=16 || 14 >=14.17"
1524+ }
1525+ },
1526+ "node_modules/minipass-collect": {
1527+ "version": "2.0.1",
1528+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz",
1529+ "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==",
1530+ "license": "ISC",
1531+ "dependencies": {
1532+ "minipass": "^7.0.3"
1533+ },
1534+ "engines": {
1535+ "node": ">=16 || 14 >=14.17"
1536+ }
1537+ },
1538+ "node_modules/minipass-fetch": {
1539+ "version": "5.0.2",
1540+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.2.tgz",
1541+ "integrity": "sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==",
1542+ "license": "MIT",
1543+ "dependencies": {
1544+ "minipass": "^7.0.3",
1545+ "minipass-sized": "^2.0.0",
1546+ "minizlib": "^3.0.1"
1547+ },
1548+ "engines": {
1549+ "node": "^20.17.0 || >=22.9.0"
1550+ },
1551+ "optionalDependencies": {
1552+ "iconv-lite": "^0.7.2"
1553+ }
1554+ },
1555+ "node_modules/minipass-flush": {
1556+ "version": "1.0.7",
1557+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.7.tgz",
1558+ "integrity": "sha512-TbqTz9cUwWyHS2Dy89P3ocAGUGxKjjLuR9z8w4WUTGAVgEj17/4nhgo2Du56i0Fm3Pm30g4iA8Lcqctc76jCzA==",
1559+ "license": "BlueOak-1.0.0",
1560+ "dependencies": {
1561+ "minipass": "^3.0.0"
1562+ },
1563+ "engines": {
1564+ "node": ">= 8"
1565+ }
1566+ },
1567+ "node_modules/minipass-flush/node_modules/minipass": {
1568+ "version": "3.3.6",
1569+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
1570+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
1571+ "license": "ISC",
1572+ "dependencies": {
1573+ "yallist": "^4.0.0"
1574+ },
1575+ "engines": {
1576+ "node": ">=8"
1577+ }
1578+ },
1579+ "node_modules/minipass-flush/node_modules/yallist": {
1580+ "version": "4.0.0",
1581+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1582+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1583+ "license": "ISC"
1584+ },
1585+ "node_modules/minipass-pipeline": {
1586+ "version": "1.2.4",
1587+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
1588+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
1589+ "license": "ISC",
1590+ "dependencies": {
1591+ "minipass": "^3.0.0"
1592+ },
1593+ "engines": {
1594+ "node": ">=8"
1595+ }
1596+ },
1597+ "node_modules/minipass-pipeline/node_modules/minipass": {
1598+ "version": "3.3.6",
1599+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
1600+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
1601+ "license": "ISC",
1602+ "dependencies": {
1603+ "yallist": "^4.0.0"
1604+ },
1605+ "engines": {
1606+ "node": ">=8"
1607+ }
1608+ },
1609+ "node_modules/minipass-pipeline/node_modules/yallist": {
1610+ "version": "4.0.0",
1611+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1612+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1613+ "license": "ISC"
1614+ },
1615+ "node_modules/minipass-sized": {
1616+ "version": "2.0.0",
1617+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-2.0.0.tgz",
1618+ "integrity": "sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==",
1619+ "license": "ISC",
1620+ "dependencies": {
1621+ "minipass": "^7.1.2"
1622+ },
1623+ "engines": {
1624+ "node": ">=8"
1625+ }
1626+ },
1627+ "node_modules/minizlib": {
1628+ "version": "3.1.0",
1629+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
1630+ "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
1631+ "license": "MIT",
1632+ "dependencies": {
1633+ "minipass": "^7.1.2"
1634+ },
1635+ "engines": {
1636+ "node": ">= 18"
1637+ }
1638+ },
1639+ "node_modules/module-details-from-path": {
1640+ "version": "1.0.4",
1641+ "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.4.tgz",
1642+ "integrity": "sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==",
1643+ "license": "MIT"
1644+ },
1645+ "node_modules/ms": {
1646+ "version": "2.1.3",
1647+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1648+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1649+ "license": "MIT"
1650+ },
1651+ "node_modules/negotiator": {
1652+ "version": "1.0.0",
1653+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
1654+ "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
1655+ "license": "MIT",
1656+ "engines": {
1657+ "node": ">= 0.6"
1658+ }
1659+ },
1660+ "node_modules/node-gyp": {
1661+ "version": "12.4.0",
1662+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.4.0.tgz",
1663+ "integrity": "sha512-OMcPNvqTCFUnNaBlmdgq+lfNqY7gTiSmNRDjY3uAXRyudeKZEZxu3CLtjMQrx4zZxCX2b/mpNqTtwuCJgXhHkw==",
1664+ "license": "MIT",
1665+ "dependencies": {
1666+ "env-paths": "^2.2.0",
1667+ "exponential-backoff": "^3.1.1",
1668+ "graceful-fs": "^4.2.6",
1669+ "nopt": "^9.0.0",
1670+ "proc-log": "^6.0.0",
1671+ "semver": "^7.3.5",
1672+ "tar": "^7.5.4",
1673+ "tinyglobby": "^0.2.12",
1674+ "undici": "^6.25.0",
1675+ "which": "^6.0.0"
1676+ },
1677+ "bin": {
1678+ "node-gyp": "bin/node-gyp.js"
1679+ },
1680+ "engines": {
1681+ "node": "^20.17.0 || >=22.9.0"
1682+ }
1683+ },
1684+ "node_modules/nopt": {
1685+ "version": "9.0.0",
1686+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz",
1687+ "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==",
1688+ "license": "ISC",
1689+ "dependencies": {
1690+ "abbrev": "^4.0.0"
1691+ },
1692+ "bin": {
1693+ "nopt": "bin/nopt.js"
1694+ },
1695+ "engines": {
1696+ "node": "^20.17.0 || >=22.9.0"
1697+ }
1698+ },
1699+ "node_modules/normalize-package-data": {
1700+ "version": "6.0.2",
1701+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz",
1702+ "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==",
1703+ "license": "BSD-2-Clause",
1704+ "dependencies": {
1705+ "hosted-git-info": "^7.0.0",
1706+ "semver": "^7.3.5",
1707+ "validate-npm-package-license": "^3.0.4"
1708+ },
1709+ "engines": {
1710+ "node": "^16.14.0 || >=18.0.0"
1711+ }
1712+ },
1713+ "node_modules/normalize-package-data/node_modules/hosted-git-info": {
1714+ "version": "7.0.2",
1715+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz",
1716+ "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==",
1717+ "license": "ISC",
1718+ "dependencies": {
1719+ "lru-cache": "^10.0.1"
1720+ },
1721+ "engines": {
1722+ "node": "^16.14.0 || >=18.0.0"
1723+ }
1724+ },
1725+ "node_modules/normalize-package-data/node_modules/lru-cache": {
1726+ "version": "10.4.3",
1727+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
1728+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
1729+ "license": "ISC"
1730+ },
1731+ "node_modules/npm-bundled": {
1732+ "version": "5.0.0",
1733+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz",
1734+ "integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==",
1735+ "license": "ISC",
1736+ "dependencies": {
1737+ "npm-normalize-package-bin": "^5.0.0"
1738+ },
1739+ "engines": {
1740+ "node": "^20.17.0 || >=22.9.0"
1741+ }
1742+ },
1743+ "node_modules/npm-install-checks": {
1744+ "version": "8.0.0",
1745+ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz",
1746+ "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==",
1747+ "license": "BSD-2-Clause",
1748+ "dependencies": {
1749+ "semver": "^7.1.1"
1750+ },
1751+ "engines": {
1752+ "node": "^20.17.0 || >=22.9.0"
1753+ }
1754+ },
1755+ "node_modules/npm-normalize-package-bin": {
1756+ "version": "5.0.0",
1757+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz",
1758+ "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==",
1759+ "license": "ISC",
1760+ "engines": {
1761+ "node": "^20.17.0 || >=22.9.0"
1762+ }
1763+ },
1764+ "node_modules/npm-package-arg": {
1765+ "version": "13.0.2",
1766+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.2.tgz",
1767+ "integrity": "sha512-IciCE3SY3uE84Ld8WZU23gAPPV9rIYod4F+rc+vJ7h7cwAJt9Vk6TVsK60ry7Uj3SRS3bqRRIGuTp9YVlk6WNA==",
1768+ "license": "ISC",
1769+ "dependencies": {
1770+ "hosted-git-info": "^9.0.0",
1771+ "proc-log": "^6.0.0",
1772+ "semver": "^7.3.5",
1773+ "validate-npm-package-name": "^7.0.0"
1774+ },
1775+ "engines": {
1776+ "node": "^20.17.0 || >=22.9.0"
1777+ }
1778+ },
1779+ "node_modules/npm-packlist": {
1780+ "version": "10.0.4",
1781+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.4.tgz",
1782+ "integrity": "sha512-uMW73iajD8hiH4ZBxEV3HC+eTnppIqwakjOYuvgddnalIw2lJguKviK1pcUJDlIWm1wSJkchpDZDSVVsZEYRng==",
1783+ "license": "ISC",
1784+ "dependencies": {
1785+ "ignore-walk": "^8.0.0",
1786+ "proc-log": "^6.0.0"
1787+ },
1788+ "engines": {
1789+ "node": "^20.17.0 || >=22.9.0"
1790+ }
1791+ },
1792+ "node_modules/npm-pick-manifest": {
1793+ "version": "11.0.3",
1794+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz",
1795+ "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==",
1796+ "license": "ISC",
1797+ "dependencies": {
1798+ "npm-install-checks": "^8.0.0",
1799+ "npm-normalize-package-bin": "^5.0.0",
1800+ "npm-package-arg": "^13.0.0",
1801+ "semver": "^7.3.5"
1802+ },
1803+ "engines": {
1804+ "node": "^20.17.0 || >=22.9.0"
1805+ }
1806+ },
1807+ "node_modules/npm-registry-fetch": {
1808+ "version": "19.1.1",
1809+ "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.1.tgz",
1810+ "integrity": "sha512-TakBap6OM1w0H73VZVDf44iFXsOS3h+L4wVMXmbWOQroZgFhMch0juN6XSzBNlD965yIKvWg2dfu7NSiaYLxtw==",
1811+ "license": "ISC",
1812+ "dependencies": {
1813+ "@npmcli/redact": "^4.0.0",
1814+ "jsonparse": "^1.3.1",
1815+ "make-fetch-happen": "^15.0.0",
1816+ "minipass": "^7.0.2",
1817+ "minipass-fetch": "^5.0.0",
1818+ "minizlib": "^3.0.1",
1819+ "npm-package-arg": "^13.0.0",
1820+ "proc-log": "^6.0.0"
1821+ },
1822+ "engines": {
1823+ "node": "^20.17.0 || >=22.9.0"
1824+ }
1825+ },
1826+ "node_modules/npm-run-path": {
1827+ "version": "4.0.1",
1828+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
1829+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
1830+ "license": "MIT",
1831+ "dependencies": {
1832+ "path-key": "^3.0.0"
1833+ },
1834+ "engines": {
1835+ "node": ">=8"
1836+ }
1837+ },
1838+ "node_modules/onetime": {
1839+ "version": "5.1.2",
1840+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
1841+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
1842+ "license": "MIT",
1843+ "dependencies": {
1844+ "mimic-fn": "^2.1.0"
1845+ },
1846+ "engines": {
1847+ "node": ">=6"
1848+ },
1849+ "funding": {
1850+ "url": "https://github.com/sponsors/sindresorhus"
1851+ }
1852+ },
1853+ "node_modules/p-map": {
1854+ "version": "7.0.6",
1855+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.6.tgz",
1856+ "integrity": "sha512-I4Prw6ivkd6p8PiYR1tXASOAOBzIJwu0TB7fqaX0c/8c3QAehNYmX57EijyGGGBt3c/BIowGwV03RVBtXvHEVg==",
1857+ "license": "MIT",
1858+ "engines": {
1859+ "node": ">=18"
1860+ },
1861+ "funding": {
1862+ "url": "https://github.com/sponsors/sindresorhus"
1863+ }
1864+ },
1865+ "node_modules/pacote": {
1866+ "version": "21.5.1",
1867+ "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.5.1.tgz",
1868+ "integrity": "sha512-KvcJ9iy3crysCsgqc4+PknH/w6jkrp8JN36mpZBPwNaDRwTfMZD37YzRazNstiZUOhuF5pno9f78n9mEJBavwg==",
1869+ "license": "ISC",
1870+ "dependencies": {
1871+ "@gar/promise-retry": "^1.0.0",
1872+ "@npmcli/git": "^7.0.0",
1873+ "@npmcli/installed-package-contents": "^4.0.0",
1874+ "@npmcli/package-json": "^7.0.0",
1875+ "@npmcli/promise-spawn": "^9.0.0",
1876+ "@npmcli/run-script": "^10.0.0",
1877+ "cacache": "^20.0.0",
1878+ "fs-minipass": "^3.0.0",
1879+ "minipass": "^7.0.2",
1880+ "npm-package-arg": "^13.0.0",
1881+ "npm-packlist": "^10.0.1",
1882+ "npm-pick-manifest": "^11.0.1",
1883+ "npm-registry-fetch": "^19.0.0",
1884+ "proc-log": "^6.0.0",
1885+ "sigstore": "^4.0.0",
1886+ "ssri": "^13.0.0",
1887+ "tar": "^7.4.3"
1888+ },
1889+ "bin": {
1890+ "pacote": "bin/index.js"
1891+ },
1892+ "engines": {
1893+ "node": "^20.17.0 || >=22.9.0"
1894+ }
1895+ },
1896+ "node_modules/parse-conflict-json": {
1897+ "version": "5.0.1",
1898+ "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-5.0.1.tgz",
1899+ "integrity": "sha512-ZHEmNKMq1wyJXNwLxyHnluPfRAFSIliBvbK/UiOceROt4Xh9Pz0fq49NytIaeaCUf5VR86hwQ/34FCcNU5/LKQ==",
1900+ "license": "ISC",
1901+ "dependencies": {
1902+ "json-parse-even-better-errors": "^5.0.0",
1903+ "just-diff": "^6.0.0",
1904+ "just-diff-apply": "^5.2.0"
1905+ },
1906+ "engines": {
1907+ "node": "^20.17.0 || >=22.9.0"
1908+ }
1909+ },
1910+ "node_modules/path-key": {
1911+ "version": "3.1.1",
1912+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
1913+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
1914+ "license": "MIT",
1915+ "engines": {
1916+ "node": ">=8"
1917+ }
1918+ },
1919+ "node_modules/path-scurry": {
1920+ "version": "2.0.2",
1921+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz",
1922+ "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==",
1923+ "license": "BlueOak-1.0.0",
1924+ "dependencies": {
1925+ "lru-cache": "^11.0.0",
1926+ "minipass": "^7.1.2"
1927+ },
1928+ "engines": {
1929+ "node": "18 || 20 || >=22"
1930+ },
1931+ "funding": {
1932+ "url": "https://github.com/sponsors/isaacs"
1933+ }
1934+ },
1935+ "node_modules/picomatch": {
1936+ "version": "4.0.5",
1937+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz",
1938+ "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==",
1939+ "license": "MIT",
1940+ "engines": {
1941+ "node": ">=12"
1942+ },
1943+ "funding": {
1944+ "url": "https://github.com/sponsors/jonschlinkert"
1945+ }
1946+ },
1947+ "node_modules/postcss-selector-parser": {
1948+ "version": "7.1.4",
1949+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz",
1950+ "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==",
1951+ "license": "MIT",
1952+ "dependencies": {
1953+ "cssesc": "^3.0.0",
1954+ "util-deprecate": "^1.0.2"
1955+ },
1956+ "engines": {
1957+ "node": ">=4"
1958+ }
1959+ },
1960+ "node_modules/prettier": {
1961+ "version": "3.9.6",
1962+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz",
1963+ "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==",
1964+ "dev": true,
1965+ "license": "MIT",
1966+ "bin": {
1967+ "prettier": "bin/prettier.cjs"
1968+ },
1969+ "engines": {
1970+ "node": ">=14"
1971+ },
1972+ "funding": {
1973+ "url": "https://github.com/prettier/prettier?sponsor=1"
1974+ }
1975+ },
1976+ "node_modules/proc-log": {
1977+ "version": "6.1.0",
1978+ "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz",
1979+ "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==",
1980+ "license": "ISC",
1981+ "engines": {
1982+ "node": "^20.17.0 || >=22.9.0"
1983+ }
1984+ },
1985+ "node_modules/proggy": {
1986+ "version": "4.0.0",
1987+ "resolved": "https://registry.npmjs.org/proggy/-/proggy-4.0.0.tgz",
1988+ "integrity": "sha512-MbA4R+WQT76ZBm/5JUpV9yqcJt92175+Y0Bodg3HgiXzrmKu7Ggq+bpn6y6wHH+gN9NcyKn3yg1+d47VaKwNAQ==",
1989+ "license": "ISC",
1990+ "engines": {
1991+ "node": "^20.17.0 || >=22.9.0"
1992+ }
1993+ },
1994+ "node_modules/promise-all-reject-late": {
1995+ "version": "1.0.1",
1996+ "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz",
1997+ "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==",
1998+ "license": "ISC",
1999+ "funding": {
2000+ "url": "https://github.com/sponsors/isaacs"
2001+ }
2002+ },
2003+ "node_modules/promise-call-limit": {
2004+ "version": "3.0.2",
2005+ "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-3.0.2.tgz",
2006+ "integrity": "sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==",
2007+ "license": "ISC",
2008+ "funding": {
2009+ "url": "https://github.com/sponsors/isaacs"
2010+ }
2011+ },
2012+ "node_modules/protobufjs": {
2013+ "version": "7.6.5",
2014+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.6.5.tgz",
2015+ "integrity": "sha512-/FPD0nUc9jH6rfFjji9IBqOz4pcSE3CsT1m7Ep6Mdb0LxSUMj8hgl6GomOvZzpNpAqqGaXA0P3VSrZLFzIhQrw==",
2016+ "hasInstallScript": true,
2017+ "license": "BSD-3-Clause",
2018+ "dependencies": {
2019+ "@protobufjs/aspromise": "^1.1.2",
2020+ "@protobufjs/base64": "^1.1.2",
2021+ "@protobufjs/codegen": "^2.0.5",
2022+ "@protobufjs/eventemitter": "^1.1.1",
2023+ "@protobufjs/fetch": "^1.1.1",
2024+ "@protobufjs/float": "^1.0.2",
2025+ "@protobufjs/path": "^1.1.2",
2026+ "@protobufjs/pool": "^1.1.0",
2027+ "@protobufjs/utf8": "^1.1.1",
2028+ "@types/node": ">=13.7.0",
2029+ "long": "^5.3.2"
2030+ },
2031+ "engines": {
2032+ "node": ">=12.0.0"
2033+ }
2034+ },
2035+ "node_modules/read-cmd-shim": {
2036+ "version": "6.0.0",
2037+ "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-6.0.0.tgz",
2038+ "integrity": "sha512-1zM5HuOfagXCBWMN83fuFI/x+T/UhZ7k+KIzhrHXcQoeX5+7gmaDYjELQHmmzIodumBHeByBJT4QYS7ufAgs7A==",
2039+ "license": "ISC",
2040+ "engines": {
2041+ "node": "^20.17.0 || >=22.9.0"
2042+ }
2043+ },
2044+ "node_modules/require-directory": {
2045+ "version": "2.1.1",
2046+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
2047+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
2048+ "license": "MIT",
2049+ "engines": {
2050+ "node": ">=0.10.0"
2051+ }
2052+ },
2053+ "node_modules/require-from-string": {
2054+ "version": "2.0.2",
2055+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
2056+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
2057+ "license": "MIT",
2058+ "engines": {
2059+ "node": ">=0.10.0"
2060+ }
2061+ },
2062+ "node_modules/require-in-the-middle": {
2063+ "version": "8.0.1",
2064+ "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-8.0.1.tgz",
2065+ "integrity": "sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==",
2066+ "license": "MIT",
2067+ "dependencies": {
2068+ "debug": "^4.3.5",
2069+ "module-details-from-path": "^1.0.3"
2070+ },
2071+ "engines": {
2072+ "node": ">=9.3.0 || >=8.10.0 <9.0.0"
2073+ }
2074+ },
2075+ "node_modules/safer-buffer": {
2076+ "version": "2.1.2",
2077+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
2078+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
2079+ "license": "MIT",
2080+ "optional": true
2081+ },
2082+ "node_modules/semver": {
2083+ "version": "7.8.5",
2084+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz",
2085+ "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==",
2086+ "license": "ISC",
2087+ "bin": {
2088+ "semver": "bin/semver.js"
2089+ },
2090+ "engines": {
2091+ "node": ">=10"
2092+ }
2093+ },
2094+ "node_modules/shebang-command": {
2095+ "version": "2.0.0",
2096+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
2097+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
2098+ "license": "MIT",
2099+ "dependencies": {
2100+ "shebang-regex": "^3.0.0"
2101+ },
2102+ "engines": {
2103+ "node": ">=8"
2104+ }
2105+ },
2106+ "node_modules/shebang-regex": {
2107+ "version": "3.0.0",
2108+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
2109+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
2110+ "license": "MIT",
2111+ "engines": {
2112+ "node": ">=8"
2113+ }
2114+ },
2115+ "node_modules/signal-exit": {
2116+ "version": "3.0.7",
2117+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
2118+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
2119+ "license": "ISC"
2120+ },
2121+ "node_modules/sigstore": {
2122+ "version": "4.1.1",
2123+ "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.1.tgz",
2124+ "integrity": "sha512-endqECJkfhozrXMK5ngu/UAA0xVcVEFdnHJCElGaExypjW+HK5i6zu3NteLoaX/iFbRUbC3+DjttQs0GARr+5w==",
2125+ "license": "Apache-2.0",
2126+ "dependencies": {
2127+ "@sigstore/bundle": "^4.0.0",
2128+ "@sigstore/core": "^3.2.1",
2129+ "@sigstore/protobuf-specs": "^0.5.0",
2130+ "@sigstore/sign": "^4.1.1",
2131+ "@sigstore/tuf": "^4.0.2",
2132+ "@sigstore/verify": "^3.1.1"
2133+ },
2134+ "engines": {
2135+ "node": "^20.17.0 || >=22.9.0"
2136+ }
2137+ },
2138+ "node_modules/smart-buffer": {
2139+ "version": "4.2.0",
2140+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
2141+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
2142+ "license": "MIT",
2143+ "engines": {
2144+ "node": ">= 6.0.0",
2145+ "npm": ">= 3.0.0"
2146+ }
2147+ },
2148+ "node_modules/socks": {
2149+ "version": "2.8.9",
2150+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.9.tgz",
2151+ "integrity": "sha512-LJhUYUvItdQ0LkJTmPeaEObWXAqFyfmP85x0tch/ez9cahmhlBBLbIqDFnvBnUJGagb0JbIQrkBs1wJ+yRYpEw==",
2152+ "license": "MIT",
2153+ "dependencies": {
2154+ "ip-address": "^10.1.1",
2155+ "smart-buffer": "^4.2.0"
2156+ },
2157+ "engines": {
2158+ "node": ">= 10.0.0",
2159+ "npm": ">= 3.0.0"
2160+ }
2161+ },
2162+ "node_modules/socks-proxy-agent": {
2163+ "version": "8.0.5",
2164+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz",
2165+ "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==",
2166+ "license": "MIT",
2167+ "dependencies": {
2168+ "agent-base": "^7.1.2",
2169+ "debug": "^4.3.4",
2170+ "socks": "^2.8.3"
2171+ },
2172+ "engines": {
2173+ "node": ">= 14"
2174+ }
2175+ },
2176+ "node_modules/source-map": {
2177+ "version": "0.6.1",
2178+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
2179+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
2180+ "license": "BSD-3-Clause",
2181+ "engines": {
2182+ "node": ">=0.10.0"
2183+ }
2184+ },
2185+ "node_modules/source-map-support": {
2186+ "version": "0.5.21",
2187+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
2188+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
2189+ "license": "MIT",
2190+ "dependencies": {
2191+ "buffer-from": "^1.0.0",
2192+ "source-map": "^0.6.0"
2193+ }
2194+ },
2195+ "node_modules/spdx-correct": {
2196+ "version": "3.2.0",
2197+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
2198+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
2199+ "license": "Apache-2.0",
2200+ "dependencies": {
2201+ "spdx-expression-parse": "^3.0.0",
2202+ "spdx-license-ids": "^3.0.0"
2203+ }
2204+ },
2205+ "node_modules/spdx-correct/node_modules/spdx-expression-parse": {
2206+ "version": "3.0.1",
2207+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
2208+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
2209+ "license": "MIT",
2210+ "dependencies": {
2211+ "spdx-exceptions": "^2.1.0",
2212+ "spdx-license-ids": "^3.0.0"
2213+ }
2214+ },
2215+ "node_modules/spdx-exceptions": {
2216+ "version": "2.5.0",
2217+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
2218+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
2219+ "license": "CC-BY-3.0"
2220+ },
2221+ "node_modules/spdx-expression-parse": {
2222+ "version": "4.0.0",
2223+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz",
2224+ "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==",
2225+ "license": "MIT",
2226+ "dependencies": {
2227+ "spdx-exceptions": "^2.1.0",
2228+ "spdx-license-ids": "^3.0.0"
2229+ }
2230+ },
2231+ "node_modules/spdx-license-ids": {
2232+ "version": "3.0.23",
2233+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz",
2234+ "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==",
2235+ "license": "CC0-1.0"
2236+ },
2237+ "node_modules/ssri": {
2238+ "version": "13.0.1",
2239+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz",
2240+ "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==",
2241+ "license": "ISC",
2242+ "dependencies": {
2243+ "minipass": "^7.0.3"
2244+ },
2245+ "engines": {
2246+ "node": "^20.17.0 || >=22.9.0"
2247+ }
2248+ },
2249+ "node_modules/string-width": {
2250+ "version": "4.2.3",
2251+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
2252+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
2253+ "license": "MIT",
2254+ "dependencies": {
2255+ "emoji-regex": "^8.0.0",
2256+ "is-fullwidth-code-point": "^3.0.0",
2257+ "strip-ansi": "^6.0.1"
2258+ },
2259+ "engines": {
2260+ "node": ">=8"
2261+ }
2262+ },
2263+ "node_modules/strip-ansi": {
2264+ "version": "6.0.1",
2265+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
2266+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
2267+ "license": "MIT",
2268+ "dependencies": {
2269+ "ansi-regex": "^5.0.1"
2270+ },
2271+ "engines": {
2272+ "node": ">=8"
2273+ }
2274+ },
2275+ "node_modules/strip-final-newline": {
2276+ "version": "2.0.0",
2277+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
2278+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
2279+ "license": "MIT",
2280+ "engines": {
2281+ "node": ">=6"
2282+ }
2283+ },
2284+ "node_modules/tar": {
2285+ "version": "7.5.20",
2286+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.20.tgz",
2287+ "integrity": "sha512-9FcyK4PA6+WbzlTM9WhQm6vB5W7cP7dUiPsv1g7YDwEQnQ1CGpK3MGlKk/ITVWMk05kHZuBhmVhiv8LZoy/PFQ==",
2288+ "license": "BlueOak-1.0.0",
2289+ "dependencies": {
2290+ "@isaacs/fs-minipass": "^4.0.0",
2291+ "chownr": "^3.0.0",
2292+ "minipass": "^7.1.2",
2293+ "minizlib": "^3.1.0",
2294+ "yallist": "^5.0.0"
2295+ },
2296+ "engines": {
2297+ "node": ">=18"
2298+ }
2299+ },
2300+ "node_modules/tinyglobby": {
2301+ "version": "0.2.17",
2302+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
2303+ "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
2304+ "license": "MIT",
2305+ "dependencies": {
2306+ "fdir": "^6.5.0",
2307+ "picomatch": "^4.0.4"
2308+ },
2309+ "engines": {
2310+ "node": ">=12.0.0"
2311+ },
2312+ "funding": {
2313+ "url": "https://github.com/sponsors/SuperchupuDev"
2314+ }
2315+ },
2316+ "node_modules/treeverse": {
2317+ "version": "3.0.0",
2318+ "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz",
2319+ "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==",
2320+ "license": "ISC",
2321+ "engines": {
2322+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
2323+ }
2324+ },
2325+ "node_modules/tuf-js": {
2326+ "version": "4.1.0",
2327+ "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz",
2328+ "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==",
2329+ "license": "MIT",
2330+ "dependencies": {
2331+ "@tufjs/models": "4.1.0",
2332+ "debug": "^4.4.3",
2333+ "make-fetch-happen": "^15.0.1"
2334+ },
2335+ "engines": {
2336+ "node": "^20.17.0 || >=22.9.0"
2337+ }
2338+ },
2339+ "node_modules/typescript": {
2340+ "version": "6.0.3",
2341+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
2342+ "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
2343+ "devOptional": true,
2344+ "license": "Apache-2.0",
2345+ "bin": {
2346+ "tsc": "bin/tsc",
2347+ "tsserver": "bin/tsserver"
2348+ },
2349+ "engines": {
2350+ "node": ">=14.17"
2351+ }
2352+ },
2353+ "node_modules/undici": {
2354+ "version": "6.27.0",
2355+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz",
2356+ "integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==",
2357+ "license": "MIT",
2358+ "engines": {
2359+ "node": ">=18.17"
2360+ }
2361+ },
2362+ "node_modules/undici-types": {
2363+ "version": "7.18.2",
2364+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
2365+ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
2366+ "license": "MIT"
2367+ },
2368+ "node_modules/upath": {
2369+ "version": "1.2.0",
2370+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
2371+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
2372+ "license": "MIT",
2373+ "engines": {
2374+ "node": ">=4",
2375+ "yarn": "*"
2376+ }
2377+ },
2378+ "node_modules/util-deprecate": {
2379+ "version": "1.0.2",
2380+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2381+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
2382+ "license": "MIT"
2383+ },
2384+ "node_modules/validate-npm-package-license": {
2385+ "version": "3.0.4",
2386+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
2387+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
2388+ "license": "Apache-2.0",
2389+ "dependencies": {
2390+ "spdx-correct": "^3.0.0",
2391+ "spdx-expression-parse": "^3.0.0"
2392+ }
2393+ },
2394+ "node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": {
2395+ "version": "3.0.1",
2396+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
2397+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
2398+ "license": "MIT",
2399+ "dependencies": {
2400+ "spdx-exceptions": "^2.1.0",
2401+ "spdx-license-ids": "^3.0.0"
2402+ }
2403+ },
2404+ "node_modules/validate-npm-package-name": {
2405+ "version": "7.0.2",
2406+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-7.0.2.tgz",
2407+ "integrity": "sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==",
2408+ "license": "ISC",
2409+ "engines": {
2410+ "node": "^20.17.0 || >=22.9.0"
2411+ }
2412+ },
2413+ "node_modules/walk-up-path": {
2414+ "version": "4.0.0",
2415+ "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz",
2416+ "integrity": "sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==",
2417+ "license": "ISC",
2418+ "engines": {
2419+ "node": "20 || >=22"
2420+ }
2421+ },
2422+ "node_modules/which": {
2423+ "version": "6.0.1",
2424+ "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz",
2425+ "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==",
2426+ "license": "ISC",
2427+ "dependencies": {
2428+ "isexe": "^4.0.0"
2429+ },
2430+ "bin": {
2431+ "node-which": "bin/which.js"
2432+ },
2433+ "engines": {
2434+ "node": "^20.17.0 || >=22.9.0"
2435+ }
2436+ },
2437+ "node_modules/wrap-ansi": {
2438+ "version": "7.0.0",
2439+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
2440+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
2441+ "license": "MIT",
2442+ "dependencies": {
2443+ "ansi-styles": "^4.0.0",
2444+ "string-width": "^4.1.0",
2445+ "strip-ansi": "^6.0.0"
2446+ },
2447+ "engines": {
2448+ "node": ">=10"
2449+ },
2450+ "funding": {
2451+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
2452+ }
2453+ },
2454+ "node_modules/write-file-atomic": {
2455+ "version": "7.0.1",
2456+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-7.0.1.tgz",
2457+ "integrity": "sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==",
2458+ "license": "ISC",
2459+ "dependencies": {
2460+ "signal-exit": "^4.0.1"
2461+ },
2462+ "engines": {
2463+ "node": "^20.17.0 || >=22.9.0"
2464+ }
2465+ },
2466+ "node_modules/write-file-atomic/node_modules/signal-exit": {
2467+ "version": "4.1.0",
2468+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
2469+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
2470+ "license": "ISC",
2471+ "engines": {
2472+ "node": ">=14"
2473+ },
2474+ "funding": {
2475+ "url": "https://github.com/sponsors/isaacs"
2476+ }
2477+ },
2478+ "node_modules/y18n": {
2479+ "version": "5.0.8",
2480+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
2481+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
2482+ "license": "ISC",
2483+ "engines": {
2484+ "node": ">=10"
2485+ }
2486+ },
2487+ "node_modules/yallist": {
2488+ "version": "5.0.0",
2489+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
2490+ "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
2491+ "license": "BlueOak-1.0.0",
2492+ "engines": {
2493+ "node": ">=18"
2494+ }
2495+ },
2496+ "node_modules/yargs": {
2497+ "version": "17.7.3",
2498+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz",
2499+ "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==",
2500+ "license": "MIT",
2501+ "dependencies": {
2502+ "cliui": "^8.0.1",
2503+ "escalade": "^3.1.1",
2504+ "get-caller-file": "^2.0.5",
2505+ "require-directory": "^2.1.1",
2506+ "string-width": "^4.2.3",
2507+ "y18n": "^5.0.5",
2508+ "yargs-parser": "^21.1.1"
2509+ },
2510+ "engines": {
2511+ "node": ">=12"
2512+ }
2513+ },
2514+ "node_modules/yargs-parser": {
2515+ "version": "21.1.1",
2516+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
2517+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
2518+ "license": "ISC",
2519+ "engines": {
2520+ "node": ">=12"
2521+ }
2522+ }
2523+ }
2524+}
+23−0
1+{
2+ "name": "flagon-domains",
3+ "version": "0.1.0",
4+ "private": true,
5+ "type": "module",
6+ "scripts": {
7+ "build": "tsc --noEmit",
8+ "format": "prettier --write .",
9+ "format:check": "prettier --check ."
10+ },
11+ "engines": {
12+ "node": ">=24"
13+ },
14+ "dependencies": {
15+ "@pulumi/cloudflare": "^6.17.0",
16+ "@pulumi/pulumi": "^3.0.0"
17+ },
18+ "devDependencies": {
19+ "@types/node": "^24.0.0",
20+ "prettier": "^3.0.0",
21+ "typescript": "^6.0.0"
22+ }
23+}
+11−0
1+{
2+ "compilerOptions": {
3+ "target": "ES2022",
4+ "module": "NodeNext",
5+ "moduleResolution": "NodeNext",
6+ "strict": true,
7+ "noUncheckedIndexedAccess": true,
8+ "skipLibCheck": true
9+ },
10+ "include": ["index.ts"]
11+}