@wavehouse/chtypes 2.0.0-dev.6 → 2.0.0-dev.7

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.
Files changed (72) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/abi2/buildinfo.d.ts +1 -1
  3. package/dist/abi2/buildinfo.js +3 -3
  4. package/dist/abi2/buildinfo.js.map +1 -1
  5. package/dist/abi2/errors.d.ts +16 -38
  6. package/dist/abi2/errors.d.ts.map +1 -1
  7. package/dist/abi2/errors.js +16 -42
  8. package/dist/abi2/errors.js.map +1 -1
  9. package/dist/abi2/index.d.ts +1 -1
  10. package/dist/abi2/index.d.ts.map +1 -1
  11. package/dist/abi2/index.js +1 -1
  12. package/dist/abi2/index.js.map +1 -1
  13. package/dist/abi2/libc.gen.d.ts +2 -0
  14. package/dist/abi2/libc.gen.d.ts.map +1 -1
  15. package/dist/abi2/libc.gen.js +10 -0
  16. package/dist/abi2/libc.gen.js.map +1 -1
  17. package/dist/abi2/loader.js +2 -2
  18. package/dist/abi2/loader.js.map +1 -1
  19. package/dist/cli.d.ts +8 -3
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/cli.js +94 -11
  22. package/dist/cli.js.map +1 -1
  23. package/dist/env.d.ts +8 -1
  24. package/dist/env.d.ts.map +1 -1
  25. package/dist/env.js +17 -8
  26. package/dist/env.js.map +1 -1
  27. package/dist/index.d.ts +5 -4
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +5 -4
  30. package/dist/index.js.map +1 -1
  31. package/dist/ocifetch/constants.gen.d.ts +14 -0
  32. package/dist/ocifetch/constants.gen.d.ts.map +1 -1
  33. package/dist/ocifetch/constants.gen.js +13 -0
  34. package/dist/ocifetch/constants.gen.js.map +1 -1
  35. package/dist/ocifetch/ensure.d.ts +42 -8
  36. package/dist/ocifetch/ensure.d.ts.map +1 -1
  37. package/dist/ocifetch/ensure.js +111 -41
  38. package/dist/ocifetch/ensure.js.map +1 -1
  39. package/dist/ocifetch/errors.d.ts +51 -27
  40. package/dist/ocifetch/errors.d.ts.map +1 -1
  41. package/dist/ocifetch/errors.js +49 -38
  42. package/dist/ocifetch/errors.js.map +1 -1
  43. package/dist/ocifetch/hold.d.ts +66 -0
  44. package/dist/ocifetch/hold.d.ts.map +1 -0
  45. package/dist/ocifetch/hold.js +150 -0
  46. package/dist/ocifetch/hold.js.map +1 -0
  47. package/dist/ocifetch/http.d.ts.map +1 -1
  48. package/dist/ocifetch/http.js +1 -1
  49. package/dist/ocifetch/http.js.map +1 -1
  50. package/dist/ocifetch/index.d.ts +6 -2
  51. package/dist/ocifetch/index.d.ts.map +1 -1
  52. package/dist/ocifetch/index.js +5 -1
  53. package/dist/ocifetch/index.js.map +1 -1
  54. package/dist/ocifetch/oci.d.ts +38 -6
  55. package/dist/ocifetch/oci.d.ts.map +1 -1
  56. package/dist/ocifetch/oci.js +48 -12
  57. package/dist/ocifetch/oci.js.map +1 -1
  58. package/dist/ocifetch/prune.d.ts +48 -0
  59. package/dist/ocifetch/prune.d.ts.map +1 -0
  60. package/dist/ocifetch/prune.js +383 -0
  61. package/dist/ocifetch/prune.js.map +1 -0
  62. package/dist/ocifetch/resolve.d.ts +37 -0
  63. package/dist/ocifetch/resolve.d.ts.map +1 -0
  64. package/dist/ocifetch/resolve.js +90 -0
  65. package/dist/ocifetch/resolve.js.map +1 -0
  66. package/dist/ocifetch/types.d.ts +1 -1
  67. package/dist/ocifetch/types.d.ts.map +1 -1
  68. package/dist/registry.d.ts +64 -3
  69. package/dist/registry.d.ts.map +1 -1
  70. package/dist/registry.js +141 -10
  71. package/dist/registry.js.map +1 -1
  72. package/package.json +1 -1
@@ -18,6 +18,17 @@ import { MANIFEST_MAX_BYTES, MAX_UNPACKED_BYTES, MEDIA_TYPE_INDEX, MEDIA_TYPE_MA
18
18
  import { ArtifactCorruptError, ArtifactUnpublishedError, SourceIncompatibleError, SourceUnreachableError } from './errors.js';
19
19
  import { readFileUrl, requestBuffered, requestToSink } from './http.js';
20
20
  import { digestOfHex, endpointUrl, hexOfDigest, MANIFEST_ACCEPT_HEADER, platformInfo } from './types.js';
21
+ /**
22
+ * A version spelling `checkSpelling` refuses before any network call (guide
23
+ * §3): the caller's misuse, never a fetch error, so the `chtypes` command
24
+ * exits with the usage status for it, as Go's does.
25
+ */
26
+ export class SpellingRefusedError extends Error {
27
+ constructor(message) {
28
+ super(message);
29
+ this.name = new.target.name;
30
+ }
31
+ }
21
32
  /**
22
33
  * Refuses the two documented spelling mistakes (a `v` prefix, a
23
34
  * `-lts`/`-stable` channel suffix) before any network call (guide §3). A
@@ -30,7 +41,7 @@ import { digestOfHex, endpointUrl, hexOfDigest, MANIFEST_ACCEPT_HEADER, platform
30
41
  */
31
42
  export function checkSpelling(spelling) {
32
43
  if (new RegExp(SPELLING_REFUSE_HINT_REGEX).test(spelling)) {
33
- throw new Error(`chtypes: ${JSON.stringify(spelling)} is not a v1 version spelling (no "v" prefix, no "-lts"/"-stable" suffix); ` +
44
+ throw new SpellingRefusedError(`chtypes: ${JSON.stringify(spelling)} is not a v1 version spelling (no "v" prefix, no "-lts"/"-stable" suffix); ` +
34
45
  'use the bare version, e.g. "26.8" or "26.8.15.10"');
35
46
  }
36
47
  }
@@ -286,18 +297,14 @@ async function indexAcrossBases(bases, ref, options, triedBases, alias) {
286
297
  /**
287
298
  * `GET manifests/<spelling>` across `bases` in order (guide §3, §7 A5's tag
288
299
  * rule: a tag 404 moves to the next base, and every base 404ing is
289
- * `UNPUBLISHED`), then the platform's manifest by digest across every base
290
- * (mirrors may carry the same tag pointing at the same digest, so a base
291
- * that served the index is not the only one asked for its blobs). Under the
292
- * dev channel a version spelling resolves its own fingerprint's alias first
293
- * (`aliasTag`, guide §3), and the tag only when every base 404'd the alias;
294
- * what the alias names is then checked exactly as the tag's answer would be.
300
+ * `UNPUBLISHED`), and the index's own shape. Under the dev channel a version
301
+ * spelling resolves its own fingerprint's alias first (`aliasTag`, guide §3),
302
+ * and the tag only when every base 404'd the alias.
295
303
  */
296
- export async function resolveTag(bases, spelling, platform, options) {
304
+ export async function resolveIndex(bases, spelling, options) {
297
305
  checkSpelling(spelling);
298
306
  if (bases.length === 0)
299
307
  throw new Error('chtypes: no base URLs configured');
300
- const info = platformInfo(platform);
301
308
  const triedBases = [];
302
309
  const alias = aliasTag(spelling);
303
310
  let found = alias === undefined ? undefined : await indexAcrossBases(bases, alias, options, [], true);
@@ -315,7 +322,18 @@ export async function resolveTag(bases, spelling, platform, options) {
315
322
  if (mediaType !== '' && mediaType !== MEDIA_TYPE_INDEX) {
316
323
  throw new SourceIncompatibleError(`chtypes: ${url} has mediaType ${JSON.stringify(mediaType)}, not ${MEDIA_TYPE_INDEX}`);
317
324
  }
318
- const manifests = items(field(json, 'manifests'));
325
+ return { repositoryRoot: base, url, body, json, aliasAbsent };
326
+ }
327
+ /**
328
+ * The descriptor of `platform`'s manifest in a resolved index. An index that
329
+ * offers no manifest for it is `ArtifactUnpublishedError` (the one outcome
330
+ * `chtypes resolve` passes over); one that names it twice is
331
+ * `ArtifactCorruptError`, and one of the wrong media type
332
+ * `SourceIncompatibleError`.
333
+ */
334
+ export function selectPlatformDescriptor(index, spelling, platform) {
335
+ const info = platformInfo(platform);
336
+ const manifests = items(field(index.json, 'manifests'));
319
337
  const matches = manifests.filter((m) => {
320
338
  const p = field(m, 'platform');
321
339
  return asString(field(p, 'os')) === info.os && asString(field(p, 'architecture')) === info.architecture;
@@ -347,8 +365,26 @@ export async function resolveTag(bases, spelling, platform, options) {
347
365
  if (manifestDescriptor.mediaType !== MEDIA_TYPE_MANIFEST) {
348
366
  throw new SourceIncompatibleError(`chtypes: ${spelling}'s ${platform} descriptor has mediaType ${JSON.stringify(manifestDescriptor.mediaType)}, not ${MEDIA_TYPE_MANIFEST}`);
349
367
  }
368
+ return manifestDescriptor;
369
+ }
370
+ /**
371
+ * The tag's index (`resolveIndex`), then the platform's manifest by digest
372
+ * across every base (`selectPlatformDescriptor`; mirrors may carry the same
373
+ * tag pointing at the same digest, so a base that served the index is not the
374
+ * only one asked for its blobs). What the dev channel's alias names is checked
375
+ * exactly as the tag's answer would be.
376
+ */
377
+ export async function resolveTag(bases, spelling, platform, options) {
378
+ const index = await resolveIndex(bases, spelling, options);
379
+ const manifestDescriptor = selectPlatformDescriptor(index, spelling, platform);
350
380
  const manifestBytes = await fetchManifestBytesByDigest(bases, manifestDescriptor, options);
351
- const manifest = parseManifest(manifestDigest, manifestBytes);
352
- return { repositoryRoot: base, indexDigest: digestOfHex(sha256Hex(body)), indexBytes: body, manifest, aliasAbsent };
381
+ const manifest = parseManifest(manifestDescriptor.digest, manifestBytes);
382
+ return {
383
+ repositoryRoot: index.repositoryRoot,
384
+ indexDigest: digestOfHex(sha256Hex(index.body)),
385
+ indexBytes: index.body,
386
+ manifest,
387
+ aliasAbsent: index.aliasAbsent,
388
+ };
353
389
  }
354
390
  //# sourceMappingURL=oci.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oci.js","sourceRoot":"","sources":["../../src/ocifetch/oci.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oci.js","sourceRoot":"","sources":["../../src/ocifetch/oci.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * `chtypes prune` (`docs/guides/fetch-v1.md` §1, "Pruning"; public issue
3
+ * #494): remove the installed builds of a line that newer installed builds of
4
+ * the same line and platform supersede, keeping the newest N, and never one a
5
+ * live process holds (`./hold.ts`). It reads and writes the cache only, never
6
+ * a system directory, and never another fingerprint's records (§3: the dev
7
+ * channel's own-fingerprint rule).
8
+ */
9
+ import { type FetchV1Options, type PlatformKey } from './types.js';
10
+ /** Whether `s` is a two-part line spelling, such as `26.8`. */
11
+ export declare function isLine(s: string): boolean;
12
+ /** The two-part line of a version: `26.8` for `26.8.15.10`, or `''` for anything shorter. */
13
+ export declare function lineOf(version: string): string;
14
+ /** What a prune removes. */
15
+ export interface PruneOptions {
16
+ /** A two-part line (`26.8`); unset or `''` is every line. */
17
+ readonly line?: string | undefined;
18
+ /** How many of each line's newest builds stay, per platform: at least 1. */
19
+ readonly keep: number;
20
+ /** Decide and report exactly what would go, and remove nothing. */
21
+ readonly dryRun?: boolean | undefined;
22
+ }
23
+ /** One installed build a prune found superseded: removed (or, in a dry run, to be removed), or kept because it is in use. */
24
+ export interface Superseded {
25
+ readonly platform: PlatformKey;
26
+ readonly version: string;
27
+ readonly build: string;
28
+ /** The entry's own name, `sha256:<hex>` of `unpacked/sha256/<hex>`. */
29
+ readonly manifest: string;
30
+ readonly dir: string;
31
+ /** The build was kept: a live process holds it (or its record cannot be locked at all, so nothing can tell). */
32
+ readonly inUse: boolean;
33
+ }
34
+ /**
35
+ * Removes, from the cache, every installed build that at least `keep` newer
36
+ * installed builds of its own line and platform supersede, oldest first.
37
+ * Builds are ordered by (version, build), then the manifest digest, and the
38
+ * report by platform (the constants' order), then oldest first. A superseded
39
+ * build a live process holds is reported `inUse` and kept. For each build it
40
+ * removes the unpacked entry with its record, then its `index.json` entries,
41
+ * then its blobs (the manifest, its config and layer, and every referrer
42
+ * manifest of it the layout holds, with that referrer's layers), never a blob
43
+ * a remaining build names. A `keep` below 1 or a `line` that is not a two-part
44
+ * line is the caller's misuse. A write that fails under the cache is a
45
+ * `CacheUnusableError` (reason `unwritable`).
46
+ */
47
+ export declare function prune(options: FetchV1Options, request: PruneOptions): Promise<readonly Superseded[]>;
48
+ //# sourceMappingURL=prune.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prune.d.ts","sourceRoot":"","sources":["../../src/ocifetch/prune.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAWH,OAAO,EAAE,KAAK,cAAc,EAAe,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAUhF,+DAA+D;AAC/D,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAEzC;AAED,6FAA6F;AAC7F,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,4BAA4B;AAC5B,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACvC;AAED,6HAA6H;AAC7H,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,gHAAgH;IAChH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAe1G"}
@@ -0,0 +1,383 @@
1
+ /**
2
+ * `chtypes prune` (`docs/guides/fetch-v1.md` §1, "Pruning"; public issue
3
+ * #494): remove the installed builds of a line that newer installed builds of
4
+ * the same line and platform supersede, keeping the newest N, and never one a
5
+ * live process holds (`./hold.ts`). It reads and writes the cache only, never
6
+ * a system directory, and never another fingerprint's records (§3: the dev
7
+ * channel's own-fingerprint rule).
8
+ */
9
+ import { randomBytes } from 'node:crypto';
10
+ import { mkdirSync, renameSync, rmdirSync } from 'node:fs';
11
+ import { lstat, readdir, readFile, rename, rm, unlink, writeFile } from 'node:fs/promises';
12
+ import path from 'node:path';
13
+ import { noteIgnoredOverrides, visibleToChannel } from './channel.js';
14
+ import { CACHE_UNPACKED_DIR, MANIFEST_MAX_BYTES, PLATFORMS } from './constants.gen.js';
15
+ import { probeRoots, strictMode, unwritable } from './faults.js';
16
+ import { claim } from './hold.js';
17
+ import { blobsDir, cacheRoot, listVerified } from './layout.js';
18
+ import { hexOfDigest } from './types.js';
19
+ /** A two-part line spelling, `26.8`. */
20
+ const LINE = /^(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$/;
21
+ const HEX64 = /^[0-9a-f]{64}$/;
22
+ const DIGEST = /^sha256:[0-9a-f]{64}$/;
23
+ /** How many times a fresh aside directory, or an `index.json` rewrite, is tried before the failure stands. */
24
+ const ATTEMPTS = 8;
25
+ /** Whether `s` is a two-part line spelling, such as `26.8`. */
26
+ export function isLine(s) {
27
+ return LINE.test(s);
28
+ }
29
+ /** The two-part line of a version: `26.8` for `26.8.15.10`, or `''` for anything shorter. */
30
+ export function lineOf(version) {
31
+ const parts = version.split('.');
32
+ return parts.length < 2 ? '' : parts.slice(0, 2).join('.');
33
+ }
34
+ /**
35
+ * Removes, from the cache, every installed build that at least `keep` newer
36
+ * installed builds of its own line and platform supersede, oldest first.
37
+ * Builds are ordered by (version, build), then the manifest digest, and the
38
+ * report by platform (the constants' order), then oldest first. A superseded
39
+ * build a live process holds is reported `inUse` and kept. For each build it
40
+ * removes the unpacked entry with its record, then its `index.json` entries,
41
+ * then its blobs (the manifest, its config and layer, and every referrer
42
+ * manifest of it the layout holds, with that referrer's layers), never a blob
43
+ * a remaining build names. A `keep` below 1 or a `line` that is not a two-part
44
+ * line is the caller's misuse. A write that fails under the cache is a
45
+ * `CacheUnusableError` (reason `unwritable`).
46
+ */
47
+ export async function prune(options, request) {
48
+ if (!Number.isInteger(request.keep) || request.keep < 1) {
49
+ throw new RangeError(`chtypes: --keep is at least 1 (the newest build of a line is never superseded), not ${request.keep}`);
50
+ }
51
+ const line = request.line ?? '';
52
+ if (line !== '' && !isLine(line)) {
53
+ throw new RangeError(`chtypes: --line takes a two-part line such as 26.8, not ${JSON.stringify(line)}`);
54
+ }
55
+ noteIgnoredOverrides(options);
56
+ const root = cacheRoot(options.cacheDir);
57
+ try {
58
+ return await pruneIn(root, options, line, request.keep, request.dryRun === true);
59
+ }
60
+ catch (err) {
61
+ throw await unwritable(err, root);
62
+ }
63
+ }
64
+ async function pruneIn(root, options, line, keep, dryRun) {
65
+ // Only the cache is pruned: a system directory is read-only. An unreadable
66
+ // cache holds nothing this call can prune; the default mode's warning names
67
+ // it (`missingNotes`), and strict mode's `CacheUnusableError` is thrown here.
68
+ await probeRoots([root], strictMode(options.strictCache));
69
+ const groups = new Map();
70
+ for (const { dir, record } of await listVerified(root)) {
71
+ // Another fingerprint's build: its own SDK keeps or prunes it.
72
+ if (!visibleToChannel(record.predicate))
73
+ continue;
74
+ const entryLine = lineOf(record.version);
75
+ if (line !== '' && entryLine !== line)
76
+ continue;
77
+ const key = `${record.platform} ${entryLine}`;
78
+ const entry = { dir, record, manifest: entryManifest(dir) };
79
+ const group = groups.get(key);
80
+ if (group === undefined)
81
+ groups.set(key, [entry]);
82
+ else
83
+ group.push(entry);
84
+ }
85
+ const superseded = [];
86
+ for (const members of groups.values()) {
87
+ members.sort((a, b) => compareAge(b, a)); // newest first
88
+ superseded.push(...members.slice(keep));
89
+ }
90
+ superseded.sort((a, b) => platformRank(a.record.platform) - platformRank(b.record.platform) || compareAge(a, b));
91
+ const unpackedRoot = path.join(root, CACHE_UNPACKED_DIR);
92
+ const out = [];
93
+ const removed = [];
94
+ for (const e of superseded) {
95
+ const s = {
96
+ platform: e.record.platform,
97
+ version: e.record.version,
98
+ build: e.record.build,
99
+ manifest: e.manifest,
100
+ dir: e.dir,
101
+ };
102
+ const claimed = claim(e.dir);
103
+ if (claimed.state === 'gone')
104
+ continue; // another prune removed it, or an install replaced it
105
+ if (claimed.state === 'in-use') {
106
+ out.push({ ...s, inUse: true });
107
+ continue;
108
+ }
109
+ if (dryRun) {
110
+ claimed.release();
111
+ out.push({ ...s, inUse: false });
112
+ continue;
113
+ }
114
+ // Moved aside while the exclusive lock is held, synchronously, so nothing
115
+ // else in this process runs meanwhile: once the lock drops, no lookup
116
+ // lists the entry, and a hold taken on it finds it gone.
117
+ const aside = releasing(claimed.release, () => moveAside(unpackedRoot, e.dir));
118
+ removed.push({ entry: e, aside });
119
+ out.push({ ...s, inUse: false });
120
+ }
121
+ if (removed.length === 0)
122
+ return out;
123
+ const blobs = await blobsOf(root, new Set(removed.map((r) => r.entry.manifest)));
124
+ for (const { entry } of removed) {
125
+ for (const d of [entry.record.layerDigest, entry.record.bundleDigest, entry.record.bundleManifestDigest]) {
126
+ if (d !== null && DIGEST.test(d))
127
+ blobs.add(d);
128
+ }
129
+ }
130
+ // Never a blob a remaining build names, whatever its fingerprint.
131
+ for (const { dir, record } of await listVerified(root)) {
132
+ const named = [...(await ownBlobs(root, entryManifest(dir))), record.manifestDigest, record.layerDigest, record.bundleDigest, record.bundleManifestDigest];
133
+ for (const d of named)
134
+ if (d !== null)
135
+ blobs.delete(d);
136
+ }
137
+ await removeIndexEntries(root, blobs);
138
+ for (const d of blobs) {
139
+ try {
140
+ await unlink(path.join(blobsDir(root), hexOfDigest(d)));
141
+ }
142
+ catch (err) {
143
+ if (err.code !== 'ENOENT')
144
+ throw err;
145
+ }
146
+ }
147
+ for (const { aside } of removed)
148
+ await rm(aside, { recursive: true, force: true });
149
+ return out;
150
+ }
151
+ /** `f()`, then `release()` however `f` ended. */
152
+ function releasing(release, f) {
153
+ try {
154
+ return f();
155
+ }
156
+ finally {
157
+ release();
158
+ }
159
+ }
160
+ /** Renames the entry `dir` into a fresh `unpacked/sha256/.prune-<random>` directory, as `entry`, and returns that directory. */
161
+ function moveAside(unpackedRoot, dir) {
162
+ const aside = freshPruneDir(unpackedRoot);
163
+ try {
164
+ renameSync(dir, path.join(aside, 'entry'));
165
+ }
166
+ catch (err) {
167
+ try {
168
+ rmdirSync(aside);
169
+ }
170
+ catch {
171
+ // Left empty beside the entries; no lookup reads a `.prune-` name.
172
+ }
173
+ throw err;
174
+ }
175
+ return aside;
176
+ }
177
+ /** A fresh, empty `.prune-<random>` directory under `unpackedRoot` (mode 0777 less the umask), its random bits this process's own. */
178
+ function freshPruneDir(unpackedRoot) {
179
+ for (let attempt = 1;; attempt++) {
180
+ const dir = path.join(unpackedRoot, `.prune-${process.pid}-${randomBytes(6).toString('hex')}`);
181
+ try {
182
+ mkdirSync(dir, { mode: 0o777 });
183
+ return dir;
184
+ }
185
+ catch (err) {
186
+ if (err.code !== 'EEXIST' || attempt >= ATTEMPTS)
187
+ throw err;
188
+ }
189
+ }
190
+ }
191
+ /** An installed entry's own manifest digest: its directory's name. */
192
+ function entryManifest(dir) {
193
+ return `sha256:${path.basename(dir)}`;
194
+ }
195
+ /** Orders installed builds by age: (version, numerically, part by part), then the build, then the manifest digest, so the order is total. */
196
+ function compareAge(a, b) {
197
+ if (a.record.version !== b.record.version) {
198
+ const av = a.record.version.split('.');
199
+ const bv = b.record.version.split('.');
200
+ for (let i = 0; i < Math.min(av.length, bv.length); i++) {
201
+ if (av[i] !== bv[i])
202
+ return Number(av[i]) - Number(bv[i]);
203
+ }
204
+ return av.length - bv.length;
205
+ }
206
+ if (a.record.build !== b.record.build)
207
+ return a.record.build < b.record.build ? -1 : 1;
208
+ if (a.manifest !== b.manifest)
209
+ return a.manifest < b.manifest ? -1 : 1;
210
+ return 0;
211
+ }
212
+ /** A platform key's place in the constants' platform list. */
213
+ function platformRank(key) {
214
+ const i = PLATFORMS.findIndex((p) => p.key === key);
215
+ return i < 0 ? PLATFORMS.length : i;
216
+ }
217
+ function isObject(v) {
218
+ return typeof v === 'object' && v !== null && !Array.isArray(v);
219
+ }
220
+ /** A descriptor member's digest: `''` when absent or null, `undefined` when the member is not a descriptor. */
221
+ function descriptorDigest(v) {
222
+ if (v === undefined || v === null)
223
+ return '';
224
+ if (!isObject(v))
225
+ return undefined;
226
+ const digest = v['digest'];
227
+ if (digest === undefined || digest === null)
228
+ return '';
229
+ return typeof digest === 'string' ? digest : undefined;
230
+ }
231
+ /** A manifest blob's descriptors, or `undefined` for bytes that are not one (not JSON, not an object, or a descriptor member of the wrong shape). */
232
+ function manifestDoc(bytes) {
233
+ let doc;
234
+ try {
235
+ doc = JSON.parse(bytes.toString('utf8'));
236
+ }
237
+ catch {
238
+ return undefined;
239
+ }
240
+ if (!isObject(doc))
241
+ return undefined;
242
+ const config = descriptorDigest(doc['config']);
243
+ const subject = descriptorDigest(doc['subject']);
244
+ if (config === undefined || subject === undefined)
245
+ return undefined;
246
+ const rawLayers = doc['layers'];
247
+ const layers = [];
248
+ if (rawLayers !== undefined && rawLayers !== null) {
249
+ if (!Array.isArray(rawLayers))
250
+ return undefined;
251
+ for (const layer of rawLayers) {
252
+ const digest = descriptorDigest(layer);
253
+ if (digest === undefined)
254
+ return undefined;
255
+ if (DIGEST.test(digest))
256
+ layers.push(digest);
257
+ }
258
+ }
259
+ return {
260
+ config: DIGEST.test(config) ? config : undefined,
261
+ layers,
262
+ subject: subject === '' ? undefined : subject,
263
+ };
264
+ }
265
+ /** The blobs a manifest names itself: the manifest, its config and its layers (only the manifest when its blob is absent or unreadable). */
266
+ async function ownBlobs(root, manifest) {
267
+ const out = [manifest];
268
+ let bytes;
269
+ try {
270
+ bytes = await readFile(path.join(blobsDir(root), hexOfDigest(manifest)));
271
+ }
272
+ catch {
273
+ return out;
274
+ }
275
+ const doc = manifestDoc(bytes);
276
+ if (doc === undefined)
277
+ return out;
278
+ if (doc.config !== undefined)
279
+ out.push(doc.config);
280
+ out.push(...doc.layers);
281
+ return out;
282
+ }
283
+ /**
284
+ * The blobs a prune removes with `manifests`: each one's own (`ownBlobs`), and
285
+ * every referrer manifest the layout holds whose subject is one of them (a
286
+ * signature, a goldens document), with that referrer's layers. A referrer's
287
+ * config, the empty `{}` every referrer shares, is never among them.
288
+ */
289
+ async function blobsOf(root, manifests) {
290
+ const out = new Set();
291
+ for (const d of manifests)
292
+ for (const x of await ownBlobs(root, d))
293
+ out.add(x);
294
+ const dir = blobsDir(root);
295
+ const names = await readdir(dir, { withFileTypes: true }).catch(() => undefined);
296
+ if (names === undefined)
297
+ return out;
298
+ for (const e of names) {
299
+ if (e.isDirectory() || !HEX64.test(e.name))
300
+ continue;
301
+ const file = path.join(dir, e.name);
302
+ let bytes;
303
+ try {
304
+ if ((await lstat(file)).size > MANIFEST_MAX_BYTES)
305
+ continue;
306
+ bytes = await readFile(file);
307
+ }
308
+ catch {
309
+ continue;
310
+ }
311
+ const doc = manifestDoc(bytes);
312
+ if (doc === undefined || doc.subject === undefined || !manifests.has(doc.subject))
313
+ continue;
314
+ out.add(`sha256:${e.name}`);
315
+ for (const layer of doc.layers)
316
+ out.add(layer);
317
+ }
318
+ return out;
319
+ }
320
+ /**
321
+ * Drops every `index.json` entry whose digest is in `drop`, by the same
322
+ * read, write-temp, re-read, rename loop `upsertIndexEntry` uses, so an entry
323
+ * another process adds meanwhile survives; the other entries keep their order.
324
+ * An absent or unparsable `index.json` is left as it is.
325
+ */
326
+ async function removeIndexEntries(root, drop) {
327
+ const indexPath = path.join(root, 'index.json');
328
+ for (let attempt = 0; attempt < ATTEMPTS; attempt++) {
329
+ let before;
330
+ try {
331
+ before = await readFile(indexPath, 'utf8');
332
+ }
333
+ catch (err) {
334
+ if (err.code === 'ENOENT')
335
+ return;
336
+ throw err;
337
+ }
338
+ let doc;
339
+ try {
340
+ doc = JSON.parse(before);
341
+ }
342
+ catch {
343
+ return;
344
+ }
345
+ if (!isObject(doc))
346
+ return;
347
+ const manifests = doc['manifests'];
348
+ if (!Array.isArray(manifests))
349
+ return;
350
+ const kept = manifests.filter((m) => {
351
+ if (!isObject(m))
352
+ return true;
353
+ const digest = m['digest'];
354
+ return typeof digest !== 'string' || !drop.has(digest);
355
+ });
356
+ if (kept.length === manifests.length)
357
+ return;
358
+ const tmp = `${indexPath}.tmp-${process.pid}-${randomBytes(6).toString('hex')}`;
359
+ await writeFile(tmp, JSON.stringify({ ...doc, manifests: kept }));
360
+ let current;
361
+ try {
362
+ current = await readFile(indexPath, 'utf8');
363
+ }
364
+ catch {
365
+ current = undefined;
366
+ }
367
+ if (current !== before) {
368
+ // Another process wrote it meanwhile: drop from theirs.
369
+ await unlink(tmp).catch(() => { });
370
+ continue;
371
+ }
372
+ try {
373
+ await rename(tmp, indexPath);
374
+ }
375
+ catch (err) {
376
+ await unlink(tmp).catch(() => { });
377
+ throw err;
378
+ }
379
+ return;
380
+ }
381
+ throw new Error(`chtypes: index.json at ${indexPath} would not settle after ${ATTEMPTS} attempts (sustained concurrent writers)`);
382
+ }
383
+ //# sourceMappingURL=prune.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prune.js","sourceRoot":"","sources":["../../src/ocifetch/prune.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * `chtypes resolve` (`docs/guides/fetch-v1.md` §3, "What a request resolves
3
+ * to"; public issue #493): what a line, a patch or an exact version resolves
4
+ * to on every platform the registry offers, each verified exactly as a fetch
5
+ * verifies it (§4), and never a layer downloaded. Offline it is the cache's
6
+ * answer instead, the lookup an open makes.
7
+ */
8
+ import type { FetchV1Options, PlatformKey } from './types.js';
9
+ /** What a request resolves to on one platform. */
10
+ export interface Resolution {
11
+ readonly platform: PlatformKey;
12
+ /** The signed `clickhouse_version`. */
13
+ readonly version: string;
14
+ /** The signed build id. */
15
+ readonly build: string;
16
+ /** The platform manifest's digest, `sha256:<hex>`. */
17
+ readonly manifest: string;
18
+ }
19
+ /** `resolveBuilds`' answer: one resolution per platform, in the constants' platform order, and allow-unsigned's warnings. */
20
+ export interface ResolveBuildsResult {
21
+ readonly resolutions: readonly Resolution[];
22
+ readonly warnings: readonly string[];
23
+ }
24
+ /**
25
+ * What `spelling` resolves to, one `Resolution` per platform, in the
26
+ * constants' platform order. Online it resolves the index (through the dev
27
+ * channel's alias first, §3), and for each platform the index offers it
28
+ * fetches the manifest by digest and verifies its signed statement against the
29
+ * request (§4), exactly as `ensure` does; no layer is requested and nothing is
30
+ * written. A platform the index does not offer is left out, and an index that
31
+ * offers none of them is `ArtifactUnpublishedError`. Offline it answers from
32
+ * the cache: each platform's `resolveInstalled`, and `ArtifactMissingError`
33
+ * when no platform has an installed build. A refused spelling is refused
34
+ * first, before anything is read (`SpellingRefusedError`).
35
+ */
36
+ export declare function resolveBuilds(spelling: string, options?: FetchV1Options): Promise<ResolveBuildsResult>;
37
+ //# sourceMappingURL=resolve.d.ts.map