@heyditto/cli 2.34.0 → 2.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,391 @@
1
+ import { spawn } from "node:child_process";
2
+ import { link, lstat, mkdir, readFile, readdir, realpath, rename, rm, writeFile } from "node:fs/promises";
3
+ import path from "node:path";
4
+ import { randomUUID } from "node:crypto";
5
+ import { fileURLToPath } from "node:url";
6
+ import { satisfies } from "semver";
7
+ import { configDir, packageName, packageVersion } from "./config.js";
8
+ export const UPDATE_INTERVAL_MS = 6 * 60 * 60 * 1000;
9
+ export const updateResultExitCode = (result) => ["current", "activated", "pinned"].includes(result.status) ? 0 : result.status === "busy" ? 75 : 1;
10
+ export const updateLeaseSlot = (now = Date.now()) => `${Math.floor(now / UPDATE_INTERVAL_MS)}.json`;
11
+ export function updateTarget(platform = process.platform, arch = process.arch, libc) {
12
+ const family = platform === "linux" ? libc ?? (process.report.getReport().header?.glibcVersionRuntime ? "glibc" : "musl") : "none";
13
+ if (!/^[a-z0-9]+$/.test(platform) || !/^[a-z0-9]+$/.test(arch) || !["none", "glibc", "musl"].includes(family))
14
+ throw new Error("unsupported update target");
15
+ return `${platform}-${arch}-${family}`;
16
+ }
17
+ export const updateRoot = (target = updateTarget()) => {
18
+ if (!/^[a-z0-9]+-[a-z0-9]+-(none|glibc|musl)$/.test(target))
19
+ throw new Error("invalid update target");
20
+ return path.resolve(configDir(), "updates", target);
21
+ };
22
+ export function updatePreferenceFiles(cache, target = updateTarget()) {
23
+ const base = path.basename(cache) === target && path.basename(path.dirname(cache)) === "updates" ? path.dirname(cache) : cache;
24
+ return { enabled: path.join(base, "enabled.json"), pin: path.join(base, "pins", `${target}.json`), legacy: path.join(base, "settings.json") };
25
+ }
26
+ export async function effectiveUpdatePolicy(cache, target = updateTarget()) {
27
+ const files = updatePreferenceFiles(cache, target);
28
+ let enabled = await readUpdateJSON(files.enabled, 4096);
29
+ let pin = await readUpdateJSON(files.pin, 4096);
30
+ const legacy = enabled === undefined || pin === undefined ? await readUpdateJSON(files.legacy, 4096) ?? {} : {};
31
+ // A current control may appear while the legacy fallback is being read.
32
+ enabled ??= await readUpdateJSON(files.enabled, 4096);
33
+ pin ??= await readUpdateJSON(files.pin, 4096);
34
+ if (enabled !== undefined && typeof enabled?.enabled !== "boolean")
35
+ throw new Error("invalid updater enable preference");
36
+ if (pin !== undefined && pin?.version !== null && !stableVersion(pin?.version))
37
+ throw new Error("invalid updater pin preference");
38
+ return { enabled: enabled?.enabled ?? legacy.enabled, pinnedVersion: pin !== undefined ? pin.version ?? undefined : legacy.pins?.[target] ?? legacy.pinnedVersion };
39
+ }
40
+ export const stableVersion = (value) => typeof value === "string" && /^\d{1,6}\.\d{1,6}\.\d{1,6}$/.test(value);
41
+ export function newerVersion(a, b) {
42
+ if (!stableVersion(a) || !stableVersion(b))
43
+ return false;
44
+ const left = a.split(".").map(Number), right = b.split(".").map(Number);
45
+ for (let i = 0; i < 3; i++)
46
+ if (left[i] !== right[i])
47
+ return left[i] > right[i];
48
+ return false;
49
+ }
50
+ export function supportsNode(range, version = process.versions.node) {
51
+ return typeof range === "string" && range.length <= 256 && stableVersion(version) && satisfies(version, range);
52
+ }
53
+ /** No auth file, npmrc, repository, shell, or credential environment is read. */
54
+ export function cleanUpdateEnvironment(env = process.env) {
55
+ const clean = {};
56
+ for (const key of ["SYSTEMROOT", "WINDIR", "TEMP", "TMP", "TMPDIR", "LANG", "LC_ALL"])
57
+ if (env[key])
58
+ clean[key] = env[key];
59
+ return clean;
60
+ }
61
+ export async function privateDirectory(directory) {
62
+ const absolute = path.resolve(directory);
63
+ let cursor = path.parse(absolute).root;
64
+ for (const part of absolute.slice(cursor.length).split(path.sep)) {
65
+ cursor = path.join(cursor, part);
66
+ try {
67
+ if ((await lstat(cursor)).isSymbolicLink())
68
+ throw new Error("updater paths cannot traverse symlinks");
69
+ }
70
+ catch (error) {
71
+ if (error.code === "ENOENT")
72
+ break;
73
+ throw error;
74
+ }
75
+ }
76
+ await mkdir(directory, { recursive: true, mode: 0o700 });
77
+ const stat = await lstat(directory);
78
+ if (!stat.isDirectory() || stat.isSymbolicLink() || await realpath(directory) !== absolute || (typeof process.getuid === "function" && stat.uid !== process.getuid()) || (process.platform !== "win32" && (stat.mode & 0o022) !== 0))
79
+ throw new Error("updater directory is not privately owned");
80
+ }
81
+ export async function readUpdateJSON(file, max = 65536) {
82
+ try {
83
+ const stat = await lstat(file);
84
+ if (!stat.isFile() || stat.isSymbolicLink() || stat.size > max)
85
+ throw new Error("invalid updater metadata");
86
+ return JSON.parse(await readFile(file, "utf8"));
87
+ }
88
+ catch (error) {
89
+ if (error.code === "ENOENT")
90
+ return undefined;
91
+ throw error;
92
+ }
93
+ }
94
+ export async function writeUpdateJSON(file, data, beforePublish) {
95
+ await privateDirectory(path.dirname(file));
96
+ const temporary = `${file}.${randomUUID()}.tmp`;
97
+ try {
98
+ await writeFile(temporary, JSON.stringify(data) + "\n", { flag: "wx", mode: 0o600 });
99
+ await beforePublish?.();
100
+ await rename(temporary, file);
101
+ }
102
+ finally {
103
+ await rm(temporary, { force: true }).catch(() => undefined);
104
+ }
105
+ }
106
+ export function updateEligibility(root, env = process.env, args = process.argv.slice(2)) {
107
+ const normalized = root.replaceAll("\\", "/");
108
+ if (env.DITTO_CLI_PINNED === "1")
109
+ return "explicit installed-version pin";
110
+ if (env.CI || env.GITHUB_ACTIONS || env.GITLAB_CI || env.BUILD_NUMBER)
111
+ return "CI execution";
112
+ if (env.npm_lifecycle_event || env.npm_command === "exec" || env.npm_config_package || /\/(?:_npx|\.pnpm|\.yarn)\//.test(normalized))
113
+ return "ephemeral or package-script execution";
114
+ if (/\/(?:Cellar|Caskroom|nix\/store|snap)\//i.test(normalized) || /^\/(?:usr\/(?:share|lib)|nix|snap)\//.test(normalized))
115
+ return "package-manager-owned installation";
116
+ const windowsGlobal = process.platform === "win32" && env.APPDATA && normalized === path.join(env.APPDATA, "npm/node_modules/@heyditto/cli").replaceAll("\\", "/");
117
+ if (!normalized.endsWith("/lib/node_modules/@heyditto/cli") && !windowsGlobal)
118
+ return "project or unmanaged installation";
119
+ // Disabling checks does not grant ownership or permission to delegate. Only
120
+ // an otherwise eligible installation may retain its selected cached version.
121
+ if (env.DITTO_CLI_AUTO_UPDATE === "0" || env.DISABLE_AUTOUPDATER === "1" || args.includes("--no-auto-update"))
122
+ return "disabled for this invocation";
123
+ return undefined;
124
+ }
125
+ export async function selectCachedRelease(cache, bundledVersion, policy, nodeVersion = process.versions.node, target = updateTarget()) {
126
+ cache = path.resolve(cache);
127
+ const pointer = policy.pinnedVersion ? { version: policy.pinnedVersion } : await readUpdateJSON(path.join(cache, "current.json"), 4096);
128
+ if (!pointer || !stableVersion(pointer.version) || (!newerVersion(pointer.version, bundledVersion) && pointer.version !== policy.pinnedVersion) || (policy.pinnedVersion && pointer.version !== policy.pinnedVersion))
129
+ return undefined;
130
+ if ("target" in pointer && pointer.target !== target)
131
+ return undefined;
132
+ try {
133
+ await lstat(path.join(cache, "quarantine", `${pointer.version}.json`));
134
+ return undefined;
135
+ }
136
+ catch (error) {
137
+ if (error.code !== "ENOENT")
138
+ return undefined;
139
+ }
140
+ const root = path.join(cache, "versions", pointer.version, "package");
141
+ for (const directory of [cache, path.join(cache, "versions"), path.dirname(root), root]) {
142
+ const stat = await lstat(directory);
143
+ if (!stat.isDirectory() || stat.isSymbolicLink() || (typeof process.getuid === "function" && stat.uid !== process.getuid()) || (process.platform !== "win32" && (stat.mode & 0o022)))
144
+ return undefined;
145
+ }
146
+ if (await realpath(root) !== root)
147
+ return undefined;
148
+ const pkg = await readUpdateJSON(path.join(root, "package.json"));
149
+ const lock = await readUpdateJSON(path.join(root, "dist/update-lock.json"), 1024 * 1024);
150
+ const receipt = await readUpdateJSON(path.join(path.dirname(root), "verified.json"), 65536);
151
+ if (pkg?.name !== packageName || pkg.version !== pointer.version || pkg.bin?.heyditto !== "dist/entry.js" || !supportsNode(pkg.engines?.node, nodeVersion) || lock?.bootstrap !== 1 || lock.packageVersion !== pointer.version || receipt?.version !== pointer.version || receipt.target !== target || !Array.isArray(receipt.nodeRanges) || receipt.nodeRanges.length > 257 || !receipt.nodeRanges.every(range => supportsNode(range, nodeVersion)) || !/^sha512-[A-Za-z0-9+/]{86}==$/.test(receipt?.rootIntegrity ?? ""))
152
+ return undefined;
153
+ for (const file of ["dist/cli.js", "dist/entry.js", "dist/update-worker.js"]) {
154
+ const absolute = path.join(root, file), stat = await lstat(absolute);
155
+ if (!stat.isFile() || stat.isSymbolicLink() || await realpath(absolute) !== absolute)
156
+ return undefined;
157
+ }
158
+ return { root, version: pointer.version };
159
+ }
160
+ /** Only a validated startup selection or an explicit manual check activates a
161
+ * version. Background workers publish candidates, never these markers. */
162
+ export async function recordCachedActivation(cache, version, target = updateTarget()) {
163
+ if (!stableVersion(version))
164
+ throw new Error("invalid activation version");
165
+ const directory = path.join(path.resolve(cache), "activated"), file = path.join(directory, `${version}.json`);
166
+ await privateDirectory(directory);
167
+ const existing = await readUpdateJSON(file, 4096);
168
+ if (existing) {
169
+ if (existing.version !== version || existing.target !== target)
170
+ throw new Error("invalid cached activation");
171
+ return;
172
+ }
173
+ if ((await readdir(directory)).length >= 4096)
174
+ throw new Error("activation metadata requires manual cleanup");
175
+ const pending = path.join(directory, `.pending-${randomUUID()}`);
176
+ await writeFile(pending, JSON.stringify({ version, target }) + "\n", { flag: "wx", mode: 0o600 });
177
+ try {
178
+ await link(pending, file);
179
+ }
180
+ catch (error) {
181
+ if (error.code !== "EEXIST")
182
+ throw error;
183
+ const winner = await readUpdateJSON(file, 4096);
184
+ if (winner?.version !== version || winner.target !== target)
185
+ throw new Error("invalid concurrent cached activation");
186
+ }
187
+ finally {
188
+ await rm(pending, { force: true }).catch(() => undefined);
189
+ }
190
+ }
191
+ export async function selectActivatedRelease(cache, bundledVersion, nodeVersion = process.versions.node, target = updateTarget()) {
192
+ cache = path.resolve(cache);
193
+ const directory = path.join(cache, "activated");
194
+ try {
195
+ const stat = await lstat(directory);
196
+ if (!stat.isDirectory() || stat.isSymbolicLink() || await realpath(directory) !== directory || (typeof process.getuid === "function" && stat.uid !== process.getuid()) || (process.platform !== "win32" && (stat.mode & 0o022)))
197
+ return undefined;
198
+ const files = await readdir(directory);
199
+ if (files.length > 4096)
200
+ return undefined;
201
+ const versions = files.filter(name => name.endsWith(".json") && stableVersion(name.slice(0, -5))).map(name => name.slice(0, -5)).filter(version => newerVersion(version, bundledVersion)).sort((a, b) => newerVersion(a, b) ? -1 : newerVersion(b, a) ? 1 : 0);
202
+ for (const version of versions.slice(0, 16)) {
203
+ try {
204
+ const marker = await readUpdateJSON(path.join(directory, `${version}.json`), 4096);
205
+ if (marker?.version !== version || marker.target !== target)
206
+ continue;
207
+ const selected = await selectCachedRelease(cache, bundledVersion, { pinnedVersion: version }, nodeVersion, target);
208
+ if (selected)
209
+ return selected;
210
+ }
211
+ catch { /* invalid activation cannot grant execution permission */ }
212
+ }
213
+ }
214
+ catch (error) {
215
+ if (error.code !== "ENOENT")
216
+ throw error;
217
+ }
218
+ return undefined;
219
+ }
220
+ export async function quarantineCachedRelease(root, cache = updateRoot()) {
221
+ const relative = path.relative(cache, root).split(path.sep);
222
+ if (relative.length !== 3 || relative[0] !== "versions" || !stableVersion(relative[1]) || relative[2] !== "package")
223
+ return;
224
+ await writeUpdateJSON(path.join(cache, "quarantine", `${relative[1]}.json`), { failedAt: Date.now(), reason: "CLI execution failed; this invocation was not retried" });
225
+ }
226
+ export async function startupUpdate(bundledRoot) {
227
+ const root = await realpath(bundledRoot);
228
+ // Explicit pins, manager ownership and ephemeral launches also suppress cache
229
+ // delegation, so an npx/package-manager version remains the version invoked.
230
+ const eligibility = updateEligibility(root);
231
+ if (eligibility && eligibility !== "disabled for this invocation")
232
+ return root;
233
+ const cache = updateRoot();
234
+ const args = process.argv.slice(2);
235
+ // Controls operate on the already active version. In particular status must
236
+ // inspect, and disable/pin must freeze, without first adopting staged code.
237
+ const control = args.find(arg => !arg.startsWith("-")) === "self-update";
238
+ const [candidate, activated, health] = await Promise.all([
239
+ control ? undefined : selectCachedRelease(cache, packageVersion, {}).catch(() => undefined),
240
+ selectActivatedRelease(cache, packageVersion).catch(() => undefined),
241
+ readUpdateJSON(path.join(cache, "health.json"), 4096).catch(() => undefined),
242
+ ]);
243
+ let policy;
244
+ try {
245
+ // Validate the staged candidate BEFORE the final policy read. A candidate
246
+ // published after an acknowledged disable cannot become this selection.
247
+ policy = await effectiveUpdatePolicy(cache);
248
+ }
249
+ catch {
250
+ return root;
251
+ }
252
+ let selected;
253
+ if (policy.pinnedVersion) {
254
+ try {
255
+ selected = await selectCachedRelease(cache, packageVersion, policy);
256
+ }
257
+ catch { /* invalid pin falls back */ }
258
+ }
259
+ else if (control || eligibility || policy.enabled === false)
260
+ selected = activated;
261
+ else {
262
+ selected = candidate && (!activated || newerVersion(candidate.version, activated.version)) ? candidate : activated;
263
+ if (selected) {
264
+ try {
265
+ await recordCachedActivation(cache, selected.version);
266
+ }
267
+ catch {
268
+ selected = activated;
269
+ } // Never select a new version we cannot retain.
270
+ }
271
+ }
272
+ const active = selected ?? { root, version: packageVersion };
273
+ if (control || eligibility || policy.enabled === false || policy.pinnedVersion || !stableVersion(active.version) || !args.length || args[0] === "help" || args.some(a => ["--preview", "--offline", "--help", "-h", "--version", "-v"].includes(a)))
274
+ return active.root;
275
+ const last = health?.lastAttemptAt;
276
+ if (typeof last === "number" && Number.isFinite(last) && Date.now() - last < UPDATE_INTERVAL_MS)
277
+ return active.root;
278
+ try {
279
+ await privateDirectory(cache);
280
+ // Each time window has one immutable lease. Crashes cannot permanently
281
+ // block later windows, and active leases are never deleted or stolen.
282
+ try {
283
+ await lstat(path.join(cache, "leases", updateLeaseSlot()));
284
+ return active.root;
285
+ }
286
+ catch (error) {
287
+ if (error.code !== "ENOENT")
288
+ return active.root;
289
+ }
290
+ const child = spawn(process.execPath, [path.join(active.root, "dist/update-worker.js"), cache, active.version], { cwd: cache, detached: true, stdio: "ignore", env: cleanUpdateEnvironment() });
291
+ child.on("error", () => undefined);
292
+ child.unref();
293
+ }
294
+ catch { /* optional background update cannot affect command output */ }
295
+ return active.root;
296
+ }
297
+ async function manualUpdate(cache) {
298
+ await privateDirectory(cache);
299
+ return new Promise((resolve, reject) => {
300
+ const child = spawn(process.execPath, [fileURLToPath(new URL("./update-worker.js", import.meta.url)), cache, packageVersion, "--manual"], { cwd: cache, stdio: ["ignore", "ignore", "ignore", "ipc"], env: cleanUpdateEnvironment() });
301
+ let result;
302
+ child.on("message", message => {
303
+ const data = message;
304
+ const value = data?.result;
305
+ if (!result && data?.type === "manual-update-result" && value && typeof value.status === "string" && ["current", "staged", "activated", "pinned", "busy", "incomplete", "failed"].includes(value.status) && (value.detail === undefined || typeof value.detail === "string" && value.detail.length <= 180))
306
+ result = { status: value.status, ...(value.detail === undefined ? {} : { detail: value.detail }) };
307
+ });
308
+ const stop = () => { process.exitCode = 130; child.kill("SIGTERM"); };
309
+ const terminate = () => { process.exitCode = 143; child.kill("SIGTERM"); };
310
+ process.on("SIGINT", stop);
311
+ process.on("SIGTERM", terminate);
312
+ const timer = setTimeout(() => child.kill("SIGKILL"), 70000);
313
+ const cleanup = () => { clearTimeout(timer); process.removeListener("SIGINT", stop); process.removeListener("SIGTERM", terminate); };
314
+ child.once("error", error => { cleanup(); reject(error); });
315
+ child.once("close", code => {
316
+ cleanup();
317
+ const ownResult = result ?? { status: "incomplete", detail: "manual worker ended without reporting its result" };
318
+ resolve({ exitCode: code === null ? 1 : code || updateResultExitCode(ownResult), result: ownResult });
319
+ });
320
+ });
321
+ }
322
+ export function registerSelfUpdateCommands(program, outputOption) {
323
+ const group = program.command("self-update").description("inspect, disable or pin occasional background CLI updates");
324
+ const action = (kind) => async (options) => {
325
+ const cache = updateRoot();
326
+ const target = updateTarget(), preferences = updatePreferenceFiles(cache, target);
327
+ const invalidMetadata = [];
328
+ const safeRead = async (file, limit = 4096) => {
329
+ try {
330
+ return await readUpdateJSON(path.join(cache, file), limit);
331
+ }
332
+ catch {
333
+ invalidMetadata.push(file);
334
+ return undefined;
335
+ }
336
+ };
337
+ // Each command writes only its own intent. A stale reader cannot clobber
338
+ // another target's pin or an acknowledged global enable/disable.
339
+ if (kind === "enable" || kind === "disable")
340
+ await writeUpdateJSON(preferences.enabled, { enabled: kind === "enable" });
341
+ if (kind === "pin" || kind === "unpin")
342
+ await writeUpdateJSON(preferences.pin, { version: kind === "pin" ? packageVersion : null });
343
+ let invokedRoot = fileURLToPath(new URL("../", import.meta.url));
344
+ if (process.argv[1])
345
+ invokedRoot = await realpath(process.argv[1]).then(file => path.dirname(path.dirname(file))).catch(() => invokedRoot);
346
+ const eligibilityReason = updateEligibility(invokedRoot, process.env, []);
347
+ let manual;
348
+ if (kind === "check" && (!eligibilityReason || eligibilityReason === "disabled for this invocation")) {
349
+ manual = await manualUpdate(cache);
350
+ }
351
+ let settings;
352
+ try {
353
+ settings = await effectiveUpdatePolicy(cache, target);
354
+ }
355
+ catch {
356
+ invalidMetadata.push("preferences");
357
+ settings = { enabled: false };
358
+ }
359
+ const health = await safeRead("health.json") ?? {};
360
+ const leaseName = typeof health.lease === "string" && /^\d+(?:-manual-[0-9a-f-]{36})?\.json$/.test(health.lease) ? health.lease : updateLeaseSlot();
361
+ const lease = await safeRead(path.join("leases", leaseName));
362
+ let worker;
363
+ if (lease) {
364
+ worker = health.lease === leaseName && health.status && health.status !== "checking" ? "finished" : "unknown";
365
+ if (worker !== "finished" && Number.isSafeInteger(lease.pid) && lease.pid > 0) {
366
+ try {
367
+ process.kill(lease.pid, 0);
368
+ worker = "active";
369
+ }
370
+ catch (error) {
371
+ if (error.code === "ESRCH")
372
+ worker = "interrupted";
373
+ }
374
+ }
375
+ }
376
+ const bundled = await readUpdateJSON(path.join(invokedRoot, "package.json"), 65536).catch(() => undefined);
377
+ const pointer = await safeRead("current.json");
378
+ const activated = await selectActivatedRelease(cache, bundled?.version ?? packageVersion).catch(() => undefined);
379
+ const checkAllowed = !eligibilityReason || eligibilityReason === "disabled for this invocation";
380
+ const state = { version: packageVersion, bundledVersion: bundled?.version ?? packageVersion, selectedVersion: packageVersion, cachedVersion: stableVersion(pointer?.version) ? pointer.version : null, stagedVersion: stableVersion(pointer?.version) ? pointer.version : null, activatedVersion: activated?.version ?? null, target, policyFile: preferences.enabled, pinFile: preferences.pin, policyScope: "user", pinScope: "runtime_target", eligible: !eligibilityReason, eligibilityReason: eligibilityReason ?? null, checkRequested: kind === "check", checkAllowed: kind === "check" ? checkAllowed : null, manualExitCode: manual?.exitCode ?? null, manualResult: manual?.result ?? null, enabled: settings.enabled !== false, pinnedVersion: settings.pinnedVersion ?? null, checkIntervalHours: 6, health, worker: worker ?? null, cache, historicalNpmPinDetectable: false, invalidMetadata };
381
+ if (options.output === "json")
382
+ process.stdout.write(JSON.stringify(state) + "\n");
383
+ else
384
+ process.stdout.write(`CLI ${state.selectedVersion} (bundled ${state.bundledVersion}, staged ${state.stagedVersion ?? "none"}, activated ${state.activatedVersion ?? "none"}): background updates ${state.enabled ? "enabled" : "disabled"}${state.pinnedVersion ? `, pinned to ${state.pinnedVersion}` : ""}${eligibilityReason ? `\nLaunch: ${eligibilityReason}` : ""}${manual ? `\nManual check: ${manual.result.status}${manual.result.detail ? ` (${manual.result.detail})` : ""}` : ""}\nLast shared attempt: ${health.status ?? "none"}${health.detail ? ` (${health.detail})` : ""}${worker ? `\nWorker lease: ${worker} (leases are never stolen)` : ""}\n`);
385
+ if (kind === "check" && (!checkAllowed || manual?.exitCode))
386
+ process.exitCode ||= manual?.exitCode || 1;
387
+ };
388
+ for (const [kind, description] of [["status", "show update policy, installation eligibility and last attempt"], ["check", "check now and activate a verified update for the next invocation"], ["enable", "enable occasional updates for eligible global installations"], ["disable", "disable background downloads and new automatic activations"], ["pin", "keep the currently selected CLI version"], ["unpin", "resume updates after a version pin"]])
389
+ group.command(kind).description(description).addOption(outputOption()).action(action(kind));
390
+ }
391
+ //# sourceMappingURL=self-update.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"self-update.js","sourceRoot":"","sources":["../src/self-update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":1,"bootstrap":1,"name":"@heyditto/cli","packageVersion":"2.35.0","packages":[{"path":"node_modules/@hono/node-server","name":"@hono/node-server","version":"1.19.14","resolved":"https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.14.tgz","integrity":"sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw=="},{"path":"node_modules/@isaacs/fs-minipass","name":"@isaacs/fs-minipass","version":"4.0.1","resolved":"https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz","integrity":"sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w=="},{"path":"node_modules/@lydell/node-pty","name":"@lydell/node-pty","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty/-/node-pty-1.2.0-beta.15.tgz","integrity":"sha512-Br8wBxzbxFwdWgk9uQ+rdzE0xfoxOK4QuGH54swhRwc5IxP6H9Y1/bcyazRGvNUs6XkB5qNVkezuKSRxUwZe7A==","optional":true},{"path":"node_modules/@lydell/node-pty-darwin-arm64","name":"@lydell/node-pty-darwin-arm64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-darwin-arm64/-/node-pty-darwin-arm64-1.2.0-beta.15.tgz","integrity":"sha512-6TSBbzdcLiNTHl1mTuzflqXrkmcC36USVGvERoDgvHk2ItEDaMaFZuAJ1CqPmwYj0DyhCS16TVS8OGK9xZnjyQ==","optional":true,"os":["darwin"],"cpu":["arm64"]},{"path":"node_modules/@lydell/node-pty-darwin-x64","name":"@lydell/node-pty-darwin-x64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-darwin-x64/-/node-pty-darwin-x64-1.2.0-beta.15.tgz","integrity":"sha512-yDT2oqPqYMBScyuk1U9Rg5VKcrbMOD9o9jWYYamDADA3NSbUISroPChrqYRQ74Y7BQtNH4gqYAiWOZRi5uQZ0Q==","optional":true,"os":["darwin"],"cpu":["x64"]},{"path":"node_modules/@lydell/node-pty-linux-arm64","name":"@lydell/node-pty-linux-arm64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-linux-arm64/-/node-pty-linux-arm64-1.2.0-beta.15.tgz","integrity":"sha512-wkbNF7dYAmtJv+o2+iztVlNwnUB4B0uX0wh/UD+mwMcmE2gNMnW9GChXO7fEE5XJokD0vB5idiHpGegaN+G/sg==","optional":true,"os":["linux"],"cpu":["arm64"]},{"path":"node_modules/@lydell/node-pty-linux-x64","name":"@lydell/node-pty-linux-x64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-linux-x64/-/node-pty-linux-x64-1.2.0-beta.15.tgz","integrity":"sha512-+U/5AVvHT6W+8OCYcnJgN0Qgc0ycO3TfD6aaFJHK+WHij797f8gsi5dV1HEO9l6YQmWCD+VL5gaLDhx3mxHwCA==","optional":true,"os":["linux"],"cpu":["x64"]},{"path":"node_modules/@lydell/node-pty-win32-arm64","name":"@lydell/node-pty-win32-arm64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-win32-arm64/-/node-pty-win32-arm64-1.2.0-beta.15.tgz","integrity":"sha512-pyAk91w7wnnKrD4mrHXtIXRfmzSWV5bEzvRhurXcMCtCc2TJ424ciUskIgWMhAPP6y3KyUnqElj+U6kY3iOt0A==","optional":true,"os":["win32"],"cpu":["arm64"]},{"path":"node_modules/@lydell/node-pty-win32-x64","name":"@lydell/node-pty-win32-x64","version":"1.2.0-beta.15","resolved":"https://registry.npmjs.org/@lydell/node-pty-win32-x64/-/node-pty-win32-x64-1.2.0-beta.15.tgz","integrity":"sha512-2f8twEmDVxZ7drchAXjtevpmSPhFok0avAnzXro4t5gmz0xsPNKkoZvymwtuIS3xo7PzQqZOPQ/YzwEMb7oIzQ==","optional":true,"os":["win32"],"cpu":["x64"]},{"path":"node_modules/@modelcontextprotocol/sdk","name":"@modelcontextprotocol/sdk","version":"1.29.0","resolved":"https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz","integrity":"sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ=="},{"path":"node_modules/accepts","name":"accepts","version":"2.0.0","resolved":"https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz","integrity":"sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="},{"path":"node_modules/ajv","name":"ajv","version":"8.20.0","resolved":"https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz","integrity":"sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA=="},{"path":"node_modules/ajv-formats","name":"ajv-formats","version":"3.0.1","resolved":"https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz","integrity":"sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ=="},{"path":"node_modules/body-parser","name":"body-parser","version":"2.2.2","resolved":"https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz","integrity":"sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA=="},{"path":"node_modules/bytes","name":"bytes","version":"3.1.2","resolved":"https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz","integrity":"sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="},{"path":"node_modules/call-bind-apply-helpers","name":"call-bind-apply-helpers","version":"1.0.2","resolved":"https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz","integrity":"sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="},{"path":"node_modules/call-bound","name":"call-bound","version":"1.0.4","resolved":"https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz","integrity":"sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="},{"path":"node_modules/chownr","name":"chownr","version":"3.0.0","resolved":"https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz","integrity":"sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g=="},{"path":"node_modules/commander","name":"commander","version":"15.0.0","resolved":"https://registry.npmjs.org/commander/-/commander-15.0.0.tgz","integrity":"sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg=="},{"path":"node_modules/content-disposition","name":"content-disposition","version":"1.1.0","resolved":"https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz","integrity":"sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g=="},{"path":"node_modules/content-type","name":"content-type","version":"1.0.5","resolved":"https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz","integrity":"sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="},{"path":"node_modules/cookie","name":"cookie","version":"0.7.2","resolved":"https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz","integrity":"sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w=="},{"path":"node_modules/cookie-signature","name":"cookie-signature","version":"1.2.2","resolved":"https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz","integrity":"sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg=="},{"path":"node_modules/cors","name":"cors","version":"2.8.6","resolved":"https://registry.npmjs.org/cors/-/cors-2.8.6.tgz","integrity":"sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw=="},{"path":"node_modules/cross-spawn","name":"cross-spawn","version":"7.0.6","resolved":"https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz","integrity":"sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="},{"path":"node_modules/debug","name":"debug","version":"4.4.3","resolved":"https://registry.npmjs.org/debug/-/debug-4.4.3.tgz","integrity":"sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="},{"path":"node_modules/depd","name":"depd","version":"2.0.0","resolved":"https://registry.npmjs.org/depd/-/depd-2.0.0.tgz","integrity":"sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="},{"path":"node_modules/dunder-proto","name":"dunder-proto","version":"1.0.1","resolved":"https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz","integrity":"sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="},{"path":"node_modules/ee-first","name":"ee-first","version":"1.1.1","resolved":"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz","integrity":"sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="},{"path":"node_modules/encodeurl","name":"encodeurl","version":"2.0.0","resolved":"https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz","integrity":"sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg=="},{"path":"node_modules/es-define-property","name":"es-define-property","version":"1.0.1","resolved":"https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz","integrity":"sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="},{"path":"node_modules/es-errors","name":"es-errors","version":"1.3.0","resolved":"https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz","integrity":"sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="},{"path":"node_modules/es-object-atoms","name":"es-object-atoms","version":"1.1.2","resolved":"https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz","integrity":"sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw=="},{"path":"node_modules/escape-html","name":"escape-html","version":"1.0.3","resolved":"https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz","integrity":"sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="},{"path":"node_modules/etag","name":"etag","version":"1.8.1","resolved":"https://registry.npmjs.org/etag/-/etag-1.8.1.tgz","integrity":"sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="},{"path":"node_modules/eventsource","name":"eventsource","version":"3.0.7","resolved":"https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz","integrity":"sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA=="},{"path":"node_modules/eventsource-parser","name":"eventsource-parser","version":"3.0.8","resolved":"https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.8.tgz","integrity":"sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ=="},{"path":"node_modules/express","name":"express","version":"5.2.1","resolved":"https://registry.npmjs.org/express/-/express-5.2.1.tgz","integrity":"sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw=="},{"path":"node_modules/express-rate-limit","name":"express-rate-limit","version":"8.5.1","resolved":"https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.5.1.tgz","integrity":"sha512-5O6KYmyJEpuPJV5hNTXKbAHWRqrzyu+OI3vUnSd2kXFubIVpG7ezpgxQy76Zo5GQZtrQBg86hF+CM/NX+cioiQ=="},{"path":"node_modules/fast-deep-equal","name":"fast-deep-equal","version":"3.1.3","resolved":"https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz","integrity":"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="},{"path":"node_modules/fast-uri","name":"fast-uri","version":"3.1.2","resolved":"https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz","integrity":"sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ=="},{"path":"node_modules/finalhandler","name":"finalhandler","version":"2.1.1","resolved":"https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz","integrity":"sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA=="},{"path":"node_modules/forwarded","name":"forwarded","version":"0.2.0","resolved":"https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz","integrity":"sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="},{"path":"node_modules/fresh","name":"fresh","version":"2.0.0","resolved":"https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz","integrity":"sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A=="},{"path":"node_modules/function-bind","name":"function-bind","version":"1.1.2","resolved":"https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz","integrity":"sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="},{"path":"node_modules/get-intrinsic","name":"get-intrinsic","version":"1.3.0","resolved":"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz","integrity":"sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="},{"path":"node_modules/get-proto","name":"get-proto","version":"1.0.1","resolved":"https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz","integrity":"sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="},{"path":"node_modules/gopd","name":"gopd","version":"1.2.0","resolved":"https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz","integrity":"sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="},{"path":"node_modules/has-symbols","name":"has-symbols","version":"1.1.0","resolved":"https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz","integrity":"sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="},{"path":"node_modules/hasown","name":"hasown","version":"2.0.4","resolved":"https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz","integrity":"sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="},{"path":"node_modules/hono","name":"hono","version":"4.12.28","resolved":"https://registry.npmjs.org/hono/-/hono-4.12.28.tgz","integrity":"sha512-YwUvVpSF7m1yOblFPrU3Hbo8XhPheBoiyfGuII6z19LnOr6JpDnyyp7LFNrfV56wS8tpvtBFGRISHN02pDdLOA=="},{"path":"node_modules/http-errors","name":"http-errors","version":"2.0.1","resolved":"https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz","integrity":"sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ=="},{"path":"node_modules/iconv-lite","name":"iconv-lite","version":"0.7.2","resolved":"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz","integrity":"sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="},{"path":"node_modules/inherits","name":"inherits","version":"2.0.4","resolved":"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz","integrity":"sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="},{"path":"node_modules/ip-address","name":"ip-address","version":"10.2.0","resolved":"https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz","integrity":"sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA=="},{"path":"node_modules/ipaddr.js","name":"ipaddr.js","version":"1.9.1","resolved":"https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz","integrity":"sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="},{"path":"node_modules/is-promise","name":"is-promise","version":"4.0.0","resolved":"https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz","integrity":"sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="},{"path":"node_modules/isexe","name":"isexe","version":"2.0.0","resolved":"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz","integrity":"sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="},{"path":"node_modules/jose","name":"jose","version":"6.2.3","resolved":"https://registry.npmjs.org/jose/-/jose-6.2.3.tgz","integrity":"sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw=="},{"path":"node_modules/json-schema-traverse","name":"json-schema-traverse","version":"1.0.0","resolved":"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz","integrity":"sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="},{"path":"node_modules/json-schema-typed","name":"json-schema-typed","version":"8.0.2","resolved":"https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz","integrity":"sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA=="},{"path":"node_modules/math-intrinsics","name":"math-intrinsics","version":"1.1.0","resolved":"https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz","integrity":"sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="},{"path":"node_modules/media-typer","name":"media-typer","version":"1.1.0","resolved":"https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz","integrity":"sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw=="},{"path":"node_modules/merge-descriptors","name":"merge-descriptors","version":"2.0.0","resolved":"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz","integrity":"sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g=="},{"path":"node_modules/mime-db","name":"mime-db","version":"1.54.0","resolved":"https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz","integrity":"sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="},{"path":"node_modules/mime-types","name":"mime-types","version":"3.0.2","resolved":"https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz","integrity":"sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="},{"path":"node_modules/minipass","name":"minipass","version":"7.1.3","resolved":"https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz","integrity":"sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A=="},{"path":"node_modules/minizlib","name":"minizlib","version":"3.1.0","resolved":"https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz","integrity":"sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw=="},{"path":"node_modules/ms","name":"ms","version":"2.1.3","resolved":"https://registry.npmjs.org/ms/-/ms-2.1.3.tgz","integrity":"sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="},{"path":"node_modules/negotiator","name":"negotiator","version":"1.0.0","resolved":"https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz","integrity":"sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg=="},{"path":"node_modules/object-assign","name":"object-assign","version":"4.1.1","resolved":"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz","integrity":"sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="},{"path":"node_modules/object-inspect","name":"object-inspect","version":"1.13.4","resolved":"https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz","integrity":"sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="},{"path":"node_modules/on-finished","name":"on-finished","version":"2.4.1","resolved":"https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz","integrity":"sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg=="},{"path":"node_modules/once","name":"once","version":"1.4.0","resolved":"https://registry.npmjs.org/once/-/once-1.4.0.tgz","integrity":"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="},{"path":"node_modules/parseurl","name":"parseurl","version":"1.3.3","resolved":"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz","integrity":"sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="},{"path":"node_modules/path-key","name":"path-key","version":"3.1.1","resolved":"https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz","integrity":"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="},{"path":"node_modules/path-to-regexp","name":"path-to-regexp","version":"8.4.2","resolved":"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz","integrity":"sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA=="},{"path":"node_modules/pkce-challenge","name":"pkce-challenge","version":"5.0.1","resolved":"https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz","integrity":"sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ=="},{"path":"node_modules/proxy-addr","name":"proxy-addr","version":"2.0.7","resolved":"https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz","integrity":"sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="},{"path":"node_modules/qs","name":"qs","version":"6.15.3","resolved":"https://registry.npmjs.org/qs/-/qs-6.15.3.tgz","integrity":"sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A=="},{"path":"node_modules/range-parser","name":"range-parser","version":"1.2.1","resolved":"https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz","integrity":"sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="},{"path":"node_modules/raw-body","name":"raw-body","version":"3.0.2","resolved":"https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz","integrity":"sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA=="},{"path":"node_modules/require-from-string","name":"require-from-string","version":"2.0.2","resolved":"https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz","integrity":"sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="},{"path":"node_modules/router","name":"router","version":"2.2.0","resolved":"https://registry.npmjs.org/router/-/router-2.2.0.tgz","integrity":"sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ=="},{"path":"node_modules/safer-buffer","name":"safer-buffer","version":"2.1.2","resolved":"https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz","integrity":"sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="},{"path":"node_modules/semver","name":"semver","version":"7.8.5","resolved":"https://registry.npmjs.org/semver/-/semver-7.8.5.tgz","integrity":"sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA=="},{"path":"node_modules/send","name":"send","version":"1.2.1","resolved":"https://registry.npmjs.org/send/-/send-1.2.1.tgz","integrity":"sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ=="},{"path":"node_modules/serve-static","name":"serve-static","version":"2.2.1","resolved":"https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz","integrity":"sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw=="},{"path":"node_modules/setprototypeof","name":"setprototypeof","version":"1.2.0","resolved":"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz","integrity":"sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="},{"path":"node_modules/shebang-command","name":"shebang-command","version":"2.0.0","resolved":"https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz","integrity":"sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="},{"path":"node_modules/shebang-regex","name":"shebang-regex","version":"3.0.0","resolved":"https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz","integrity":"sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="},{"path":"node_modules/side-channel","name":"side-channel","version":"1.1.1","resolved":"https://registry.npmjs.org/side-channel/-/side-channel-1.1.1.tgz","integrity":"sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ=="},{"path":"node_modules/side-channel-list","name":"side-channel-list","version":"1.0.1","resolved":"https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz","integrity":"sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w=="},{"path":"node_modules/side-channel-map","name":"side-channel-map","version":"1.0.1","resolved":"https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz","integrity":"sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="},{"path":"node_modules/side-channel-weakmap","name":"side-channel-weakmap","version":"1.0.2","resolved":"https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz","integrity":"sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="},{"path":"node_modules/smol-toml","name":"smol-toml","version":"1.8.0","resolved":"https://registry.npmjs.org/smol-toml/-/smol-toml-1.8.0.tgz","integrity":"sha512-kCZr2V3ch9i00x8zXRhjUNVcjG9ijES5dDudkXvUVCT5QlJNQWElSJdZqyPemffHoLNUYwOcou0Fy+ojN0uHSQ=="},{"path":"node_modules/statuses","name":"statuses","version":"2.0.2","resolved":"https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz","integrity":"sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="},{"path":"node_modules/tar","name":"tar","version":"7.5.22","resolved":"https://registry.npmjs.org/tar/-/tar-7.5.22.tgz","integrity":"sha512-MFO/QzvtAOmJbkhOaCTvbGcFN9L9b+JunIsDwaKljSOdcLMea3NJ1k9Usz/rjdfSXTq4dfzfeS7W4p4YOAAHeA=="},{"path":"node_modules/toidentifier","name":"toidentifier","version":"1.0.1","resolved":"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz","integrity":"sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="},{"path":"node_modules/type-is","name":"type-is","version":"2.0.1","resolved":"https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz","integrity":"sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw=="},{"path":"node_modules/unpipe","name":"unpipe","version":"1.0.0","resolved":"https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz","integrity":"sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="},{"path":"node_modules/vary","name":"vary","version":"1.1.2","resolved":"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz","integrity":"sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="},{"path":"node_modules/which","name":"which","version":"2.0.2","resolved":"https://registry.npmjs.org/which/-/which-2.0.2.tgz","integrity":"sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="},{"path":"node_modules/wrappy","name":"wrappy","version":"1.0.2","resolved":"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz","integrity":"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="},{"path":"node_modules/yallist","name":"yallist","version":"5.0.0","resolved":"https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz","integrity":"sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw=="},{"path":"node_modules/zod","name":"zod","version":"4.4.3","resolved":"https://registry.npmjs.org/zod/-/zod-4.4.3.tgz","integrity":"sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="},{"path":"node_modules/zod-to-json-schema","name":"zod-to-json-schema","version":"3.25.2","resolved":"https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz","integrity":"sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA=="}]}
@@ -0,0 +1,45 @@
1
+ import { type UpdateResult } from "./self-update.js";
2
+ export declare const UPDATE_LIMITS: {
3
+ timeoutMs: number;
4
+ metadataBytes: number;
5
+ archiveBytes: number;
6
+ downloadBytes: number;
7
+ unpackedBytes: number;
8
+ archiveUnpackedBytes: number;
9
+ cacheBytes: number;
10
+ files: number;
11
+ packages: number;
12
+ };
13
+ interface ArchiveFile {
14
+ data: Buffer;
15
+ mode: number;
16
+ }
17
+ export interface WorkerOptions {
18
+ cache: string;
19
+ currentVersion: string;
20
+ /** Dependency injection is available to tests, never a CLI/env registry override. */
21
+ fetch?: typeof fetch;
22
+ platform?: string;
23
+ arch?: string;
24
+ libc?: string;
25
+ nodeVersion?: string;
26
+ now?: () => number;
27
+ manual?: boolean;
28
+ limits?: Partial<typeof UPDATE_LIMITS>;
29
+ }
30
+ export declare function registryURL(value: unknown): string;
31
+ /** Parse into bounded memory BEFORE making any filesystem writes. No links or
32
+ * special files are extracted, and mode bits are reduced to 0644/0755. */
33
+ export declare function unpackArchive(bytes: Buffer, limits?: {
34
+ timeoutMs: number;
35
+ metadataBytes: number;
36
+ archiveBytes: number;
37
+ downloadBytes: number;
38
+ unpackedBytes: number;
39
+ archiveUnpackedBytes: number;
40
+ cacheBytes: number;
41
+ files: number;
42
+ packages: number;
43
+ }): Promise<Map<string, ArchiveFile>>;
44
+ export declare function runUpdate(options: WorkerOptions): Promise<UpdateResult>;
45
+ export {};