@telorun/cli 0.89.0 → 0.90.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.
Files changed (57) hide show
  1. package/dist/bundle/built-layers.d.ts +36 -0
  2. package/dist/bundle/built-layers.d.ts.map +1 -0
  3. package/dist/bundle/built-layers.js +84 -0
  4. package/dist/bundle/built-layers.js.map +1 -0
  5. package/dist/bundle/module-payload.d.ts +14 -10
  6. package/dist/bundle/module-payload.d.ts.map +1 -1
  7. package/dist/bundle/module-payload.js +76 -14
  8. package/dist/bundle/module-payload.js.map +1 -1
  9. package/dist/bundle/partition-layers.d.ts +13 -6
  10. package/dist/bundle/partition-layers.d.ts.map +1 -1
  11. package/dist/bundle/partition-layers.js +49 -7
  12. package/dist/bundle/partition-layers.js.map +1 -1
  13. package/dist/bundle/payload-drift.d.ts +1 -1
  14. package/dist/bundle/payload-drift.d.ts.map +1 -1
  15. package/dist/bundle/select-files.d.ts +11 -2
  16. package/dist/bundle/select-files.d.ts.map +1 -1
  17. package/dist/bundle/select-files.js +23 -8
  18. package/dist/bundle/select-files.js.map +1 -1
  19. package/dist/bundle/staged-files.d.ts +43 -0
  20. package/dist/bundle/staged-files.d.ts.map +1 -0
  21. package/dist/bundle/staged-files.js +158 -0
  22. package/dist/bundle/staged-files.js.map +1 -0
  23. package/dist/bundle/warm-layers.d.ts +11 -6
  24. package/dist/bundle/warm-layers.d.ts.map +1 -1
  25. package/dist/bundle/warm-layers.js +26 -10
  26. package/dist/bundle/warm-layers.js.map +1 -1
  27. package/dist/commands/install.d.ts +1 -0
  28. package/dist/commands/install.d.ts.map +1 -1
  29. package/dist/commands/install.js +7 -1
  30. package/dist/commands/install.js.map +1 -1
  31. package/dist/commands/module.d.ts.map +1 -1
  32. package/dist/commands/module.js +11 -5
  33. package/dist/commands/module.js.map +1 -1
  34. package/dist/commands/publish.d.ts.map +1 -1
  35. package/dist/commands/publish.js +5 -1
  36. package/dist/commands/publish.js.map +1 -1
  37. package/dist/commands/release.d.ts +2 -1
  38. package/dist/commands/release.d.ts.map +1 -1
  39. package/dist/commands/release.js +65 -5
  40. package/dist/commands/release.js.map +1 -1
  41. package/dist/controller-runtime.d.ts +25 -3
  42. package/dist/controller-runtime.d.ts.map +1 -1
  43. package/dist/controller-runtime.js +39 -9
  44. package/dist/controller-runtime.js.map +1 -1
  45. package/dist/release/cargo-toml.d.ts +17 -0
  46. package/dist/release/cargo-toml.d.ts.map +1 -0
  47. package/dist/release/cargo-toml.js +253 -0
  48. package/dist/release/cargo-toml.js.map +1 -0
  49. package/dist/release/crate-inputs.d.ts +41 -0
  50. package/dist/release/crate-inputs.d.ts.map +1 -0
  51. package/dist/release/crate-inputs.js +407 -0
  52. package/dist/release/crate-inputs.js.map +1 -0
  53. package/dist/release/stage.d.ts +61 -0
  54. package/dist/release/stage.d.ts.map +1 -0
  55. package/dist/release/stage.js +506 -0
  56. package/dist/release/stage.js.map +1 -0
  57. package/package.json +6 -6
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The layers a payload build produces, before anything is framed: what may be
3
+ * pushed, the index entry of a layer known by pins, and the entry rules a runtime
4
+ * enforces at extraction, checked here first.
5
+ */
6
+ import { type ArtifactSelector, type LayerRole } from "@telorun/analyzer";
7
+ import { type LayerEntry, type PayloadLayer } from "@telorun/kernel";
8
+ /** A layer built from a working copy: what publish pushes and what the release
9
+ * ledger digests. Mutable-shaped because the transport's own `PayloadLayer` is,
10
+ * and the two are handed straight across. */
11
+ export interface BuiltLayer {
12
+ role: LayerRole;
13
+ selector?: ArtifactSelector;
14
+ /** A pinned entry appears only when the builder reads staged files from their
15
+ * pins, which publish never does. */
16
+ files: LayerEntry[];
17
+ }
18
+ /** The layers a transport can push: every entry carries its bytes. Throws for a
19
+ * payload built from pins, which has none to push. */
20
+ export declare function pushableLayers(layers: readonly BuiltLayer[]): PayloadLayer[];
21
+ /**
22
+ * The `blob` that stands in for a layer holding pinned entries, which has no
23
+ * framed bytes to address: `sha256:` plus the hex form of the layer's integrity
24
+ * digest — a digest over its pinned entries, deterministic across trees and
25
+ * forks. It addresses nothing a registry holds, so only a digest of the manifest
26
+ * that carries it may ever see it; publish frames the staged bytes instead.
27
+ */
28
+ export declare function pinnedLayerBlob(files: readonly LayerEntry[]): Promise<string>;
29
+ /**
30
+ * Refuse a payload with a layer extraction would refuse — a symbolic link that
31
+ * does not name a file of its own layer, an entry path that is repeated or runs
32
+ * through another entry — caught before anything is framed. A link to a
33
+ * directory gets its own reason, since the link rule would call it dangling.
34
+ */
35
+ export declare function assertLayerEntries(manifestDir: string, layers: readonly BuiltLayer[]): void;
36
+ //# sourceMappingURL=built-layers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"built-layers.d.ts","sourceRoot":"","sources":["../../src/bundle/built-layers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAML,KAAK,UAAU,EAEf,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAIzB;;8CAE8C;AAC9C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B;0CACsC;IACtC,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;uDACuD;AACvD,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,YAAY,EAAE,CAW5E;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAGnF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI,CAqC3F"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * The layers a payload build produces, before anything is framed: what may be
3
+ * pushed, the index entry of a layer known by pins, and the entry rules a runtime
4
+ * enforces at extraction, checked here first.
5
+ */
6
+ import { describeSelector, } from "@telorun/analyzer";
7
+ import { computeFilesIntegrity, describeLayerViolations, findLayerViolations, isPayloadLink, isPinnedFile, } from "@telorun/kernel";
8
+ import * as fs from "node:fs";
9
+ import * as path from "node:path";
10
+ /** The layers a transport can push: every entry carries its bytes. Throws for a
11
+ * payload built from pins, which has none to push. */
12
+ export function pushableLayers(layers) {
13
+ for (const layer of layers) {
14
+ const pinned = layer.files.find(isPinnedFile);
15
+ if (pinned) {
16
+ throw new Error(`'${pinned.name}' is known only by its sources: pin, so its layer cannot be pushed — ` +
17
+ `build the payload from staged files (\`stagedFiles: "disk"\`) to publish it.`);
18
+ }
19
+ }
20
+ return layers;
21
+ }
22
+ /**
23
+ * The `blob` that stands in for a layer holding pinned entries, which has no
24
+ * framed bytes to address: `sha256:` plus the hex form of the layer's integrity
25
+ * digest — a digest over its pinned entries, deterministic across trees and
26
+ * forks. It addresses nothing a registry holds, so only a digest of the manifest
27
+ * that carries it may ever see it; publish frames the staged bytes instead.
28
+ */
29
+ export async function pinnedLayerBlob(files) {
30
+ const integrity = await computeFilesIntegrity(files);
31
+ return `sha256:${Buffer.from(integrity.slice("sha256-".length), "base64url").toString("hex")}`;
32
+ }
33
+ /**
34
+ * Refuse a payload with a layer extraction would refuse — a symbolic link that
35
+ * does not name a file of its own layer, an entry path that is repeated or runs
36
+ * through another entry — caught before anything is framed. A link to a
37
+ * directory gets its own reason, since the link rule would call it dangling.
38
+ */
39
+ export function assertLayerEntries(manifestDir, layers) {
40
+ const problems = [];
41
+ for (const layer of layers) {
42
+ const elsewhere = new Set(layers.filter((other) => other !== layer).flatMap((other) => other.files.map((f) => f.name)));
43
+ const directoryLinks = layer.files.flatMap((file) => isPayloadLink(file) && linksToDirectory(path.resolve(manifestDir, file.name))
44
+ ? [
45
+ {
46
+ path: file.name,
47
+ target: file.link,
48
+ reason: "points at a directory; only a link to a file can ship",
49
+ },
50
+ ]
51
+ : []);
52
+ const pointsAtDirectory = new Set(directoryLinks.map((v) => v.path));
53
+ const violations = [
54
+ ...directoryLinks,
55
+ ...findLayerViolations(layer.files, elsewhere).filter((v) => v.target === undefined || !pointsAtDirectory.has(v.path)),
56
+ ];
57
+ if (violations.length === 0)
58
+ continue;
59
+ const label = layer.selector ? `${layer.role} (${describeSelector(layer.selector)})` : layer.role;
60
+ problems.push(`the ${label} layer:\n${describeLayerViolations(violations)}`);
61
+ }
62
+ if (problems.length === 0)
63
+ return;
64
+ throw new Error(`Module '${path.basename(manifestDir)}' ships entries a runtime would refuse to extract, in ` +
65
+ `${problems.join("\nand ")}\n` +
66
+ `A link ships as a link, and a runtime extracts only the layers it needs, so its target ` +
67
+ `must be a file in the same layer and inside the module directory. Claim the target ` +
68
+ `through the same declaration as the link, point the link at a file that ships beside it, ` +
69
+ `or ship the file itself in place of the link.`);
70
+ }
71
+ /** Whether the symbolic link at `abs` resolves to a directory. A link that
72
+ * resolves to nothing is the link rule's to report. */
73
+ function linksToDirectory(abs) {
74
+ try {
75
+ return fs.statSync(abs).isDirectory();
76
+ }
77
+ catch (err) {
78
+ const code = err.code;
79
+ if (code === "ENOENT" || code === "ENOTDIR" || code === "ELOOP")
80
+ return false;
81
+ throw err;
82
+ }
83
+ }
84
+ //# sourceMappingURL=built-layers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"built-layers.js","sourceRoot":"","sources":["../../src/bundle/built-layers.ts"],"names":[],"mappings":"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"}
@@ -33,17 +33,8 @@
33
33
  * into the manifest. It is not derivable, so the ledger records which base its
34
34
  * digests were taken against.
35
35
  */
36
- import { type ArtifactSelector, type LayerRole } from "@telorun/analyzer";
37
- import { type PayloadFile } from "@telorun/kernel";
36
+ import { type BuiltLayer } from "./built-layers.js";
38
37
  import { type Partition } from "./partition-layers.js";
39
- /** A layer built from a working copy: what publish pushes and what the release
40
- * ledger digests. Mutable-shaped because the transport's own `PayloadLayer` is,
41
- * and the two are handed straight across. */
42
- export interface BuiltLayer {
43
- role: LayerRole;
44
- selector?: ArtifactSelector;
45
- files: PayloadFile[];
46
- }
47
38
  export interface ModulePayload {
48
39
  /** The `telo.yaml` that ships, byte for byte: canonicalized, pinned, includes
49
40
  * inlined, `layers:` index written. A dependent's import pin is a hash of
@@ -94,6 +85,19 @@ export interface ModulePayload {
94
85
  export interface PayloadBuilderOptions {
95
86
  /** Where the controller build cache lives. */
96
87
  readonly cacheRoot: string;
88
+ /**
89
+ * Where the entry of a file a `sources:` entry stages comes from.
90
+ *
91
+ * `pins` (the default, every release command): the pin, whether or not the
92
+ * file is staged, so every layer's `integrity` is what publish derives from
93
+ * the bytes and a cold tree digests exactly as a staged one. A layer holding a
94
+ * pinned file takes a stand-in `blob`, which only the `manifest` ledger digest
95
+ * sees.
96
+ *
97
+ * `disk` (publish): the staged bytes, each verified against its pin, so every
98
+ * `blob` is real and every sibling pin names the text the registry serves.
99
+ */
100
+ readonly stagedFiles?: "pins" | "disk";
97
101
  }
98
102
  /**
99
103
  * One module's payload, memoized across a batch.
@@ -1 +1 @@
1
- {"version":3,"file":"module-payload.d.ts","sourceRoot":"","sources":["../../src/bundle/module-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAKL,KAAK,WAAW,EAEjB,MAAM,iBAAiB,CAAC;AAOzB,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGxE;;8CAE8C;AAC9C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B;;wBAEoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,SAAS;QACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,EAAE,CAAC;IACJ;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS;QAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,yEAAyE;QACzE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,qCAAqC;QACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,EAAE,CAAC;CACL;AAED,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IA0BnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAzBpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE;2EACuE;IACvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAE9C;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;gBAE7B,OAAO,EAAE,qBAAqB;IAErD,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAehF;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,iBAAiB,CACrB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,SAAS;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IA6B5D;;;;;;;;OAQG;IACG,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9D,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,aAAa;IAQrB;;iFAE6E;IAC7E,OAAO,CAAC,YAAY;IASpB;;;OAGG;YACW,iBAAiB;YAkEjB,WAAW;YAKX,YAAY;CAyF3B"}
1
+ {"version":3,"file":"module-payload.d.ts","sourceRoot":"","sources":["../../src/bundle/module-payload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AA4BH,OAAO,EAAuC,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIxE,MAAM,WAAW,aAAa;IAC5B;;wBAEoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,SAAS;QACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,EAAE,CAAC;IACJ;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,YAAY,EAAE,SAAS;QAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,yEAAyE;QACzE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,qCAAqC;QACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;KAC5B,EAAE,CAAC;CACL;AAED,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAoB;IA0BnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAzBpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE;2EACuE;IACvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAE9C;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;gBAE7B,OAAO,EAAE,qBAAqB;IAErD,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAehF;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,iBAAiB,CACrB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,SAAS;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IA6B5D;;;;;;;;OAQG;IACG,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK9D,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,aAAa;IAQrB;;iFAE6E;IAC7E,OAAO,CAAC,YAAY;IASpB;;;OAGG;YACW,iBAAiB;YA0EjB,WAAW;YAKX,YAAY;CA2I3B"}
@@ -34,15 +34,17 @@
34
34
  * digests were taken against.
35
35
  */
36
36
  import { collectModuleFileClaims, DEFAULT_MANIFEST_FILENAME, sha256Base64Url, splitIntegrity, } from "@telorun/analyzer";
37
- import { buildControllerBundle, defaultTransportRegistry, injectLayerIndex, readOwnerManifest, } from "@telorun/kernel";
37
+ import { buildControllerBundle, computeFilesIntegrity, defaultTransportRegistry, injectLayerIndex, isPayloadLink, isPinnedFile, readOwnerManifest, readPayloadFile, } from "@telorun/kernel";
38
38
  import { defaultCustomTags } from "@telorun/templating";
39
39
  import * as fs from "node:fs";
40
40
  import * as path from "node:path";
41
41
  import { parseAllDocuments } from "yaml";
42
42
  import { findModuleDoc, importSourceRefs } from "../commands/manifest-imports.js";
43
+ import { assertLayerEntries, pinnedLayerBlob } from "./built-layers.js";
43
44
  import { expandAndInlineIncludes, readAssetPatterns, readFilesPatterns } from "./manifest-text.js";
44
45
  import { partitionLayers } from "./partition-layers.js";
45
46
  import { assertWithinModule, selectFiles } from "./select-files.js";
47
+ import { assertNamedFiles, readNativeFiles, readSources, stagedEntriesOf } from "./staged-files.js";
46
48
  /**
47
49
  * One module's payload, memoized across a batch.
48
50
  *
@@ -203,6 +205,7 @@ export class ModulePayloadBuilder {
203
205
  const moduleDoc = findModuleDoc(docs);
204
206
  const relativeImports = [];
205
207
  const authoredPins = [];
208
+ const sources = readSources(moduleDoc?.toJSON(), manifestDir);
206
209
  if (moduleDoc) {
207
210
  const destination = this.destinationOf(manifestPath);
208
211
  const transport = this.transportFor(manifestPath);
@@ -238,6 +241,10 @@ export class ModulePayloadBuilder {
238
241
  moduleDoc.setIn(entry.path, `${ref}#${hash}`);
239
242
  }
240
243
  }
244
+ // `sources:` is authoring input no consumer reads. Removed here, in the text
245
+ // every dependent's pin hashes, so an upstream URL that moved with unchanged
246
+ // bytes changes no published manifest.
247
+ moduleDoc?.delete("sources");
241
248
  // Unconditional. Whether a manifest was rewritten is a property of its own
242
249
  // content, and letting it decide the serializer meant one commit produced two
243
250
  // different byte sequences for the same document.
@@ -246,6 +253,7 @@ export class ModulePayloadBuilder {
246
253
  text: expandAndInlineIncludes(canonical, manifestDir),
247
254
  relativeImports,
248
255
  authoredPins,
256
+ sources,
249
257
  };
250
258
  }
251
259
  async siblingHash(siblingManifest) {
@@ -254,9 +262,20 @@ export class ModulePayloadBuilder {
254
262
  }
255
263
  async buildPayload(manifestPath) {
256
264
  const manifestDir = path.dirname(manifestPath);
257
- const { text: manifest, relativeImports, authoredPins } = await this.transformManifest(manifestPath);
265
+ const { text: manifest, relativeImports, authoredPins, sources } = await this.transformManifest(manifestPath);
266
+ const fromPins = (this.options.stagedFiles ?? "pins") === "pins";
258
267
  const claims = collectModuleFileClaims(manifest);
259
- const partition = partitionLayers(claims, selectFiles(manifestDir, readFilesPatterns(manifest)), readAssetPatterns(manifest));
268
+ const native = readNativeFiles(manifest, manifestDir);
269
+ const staged = stagedEntriesOf(sources);
270
+ await assertNamedFiles(manifestDir, native, claims, sources, staged, fromPins);
271
+ // A notice ships because its source names it, as if `files:` selected it.
272
+ const notices = sources.flatMap((source) => source.notices);
273
+ const partition = partitionLayers(claims, [
274
+ ...new Set([
275
+ ...selectFiles(manifestDir, readFilesPatterns(manifest), { links: true }),
276
+ ...notices,
277
+ ]),
278
+ ].sort(), readAssetPatterns(manifest), native);
260
279
  // Every code entry point is BUILT, not read: `path=` names a gitignored
261
280
  // artifact that may not exist at all on a fresh clone, and reading a stale
262
281
  // one would digest and ship bytes other than the source the manifest says
@@ -290,15 +309,43 @@ export class ModulePayloadBuilder {
290
309
  for (const input of bundle.inputs)
291
310
  buildInputs.add(input);
292
311
  }
293
- assertWithinModule(manifestDir, partition.layers.flatMap((layer) => layer.files), new Set(built.keys()));
294
- const layers = partition.layers.map((layer) => ({
295
- role: layer.role,
296
- ...(layer.selector ? { selector: layer.selector } : {}),
297
- files: layer.files.map((rel) => ({
298
- name: rel,
299
- content: built.get(rel) ?? fs.readFileSync(path.resolve(manifestDir, rel)),
300
- })),
301
- }));
312
+ // Built entry points exist once built; staged files, when read from their
313
+ // pins, need not be on disk at all.
314
+ assertWithinModule(manifestDir, partition.layers.flatMap((layer) => layer.files), new Set([...built.keys(), ...(fromPins ? staged.keys() : [])]));
315
+ // Read as the kind each file is on disk: a link ships as a link, a file with
316
+ // an execute bit as executable, and both are in the layer's integrity. A
317
+ // staged file read from its pin contributes exactly that line.
318
+ const layers = [];
319
+ for (const layer of partition.layers) {
320
+ const files = [];
321
+ for (const rel of layer.files) {
322
+ const content = built.get(rel);
323
+ const stagedEntry = staged.get(rel)?.entry;
324
+ if (content) {
325
+ files.push({ name: rel, content });
326
+ }
327
+ else if (fromPins && stagedEntry?.kind === "link") {
328
+ files.push({ name: rel, link: stagedEntry.target });
329
+ }
330
+ else if (fromPins && stagedEntry?.kind === "file") {
331
+ // `assertNamedFiles` refused an unpinned one.
332
+ files.push({ name: rel, sha256: stagedEntry.pin.sha256, executable: stagedEntry.pin.executable });
333
+ }
334
+ else if (stagedEntry?.kind === "file") {
335
+ // `assertNamedFiles` verified the bytes against the pin, and the pin is
336
+ // what declares the execute bit — a Windows checkout has none to read.
337
+ const file = await readPayloadFile(manifestDir, rel);
338
+ if (isPayloadLink(file))
339
+ throw new Error(`'${rel}' is staged as a file, but is a link on disk.`);
340
+ files.push(stagedEntry.pin.executable ? { name: rel, content: file.content, executable: true } : { name: rel, content: file.content });
341
+ }
342
+ else {
343
+ files.push(await readPayloadFile(manifestDir, rel));
344
+ }
345
+ }
346
+ layers.push({ role: layer.role, ...(layer.selector ? { selector: layer.selector } : {}), files });
347
+ }
348
+ assertLayerEntries(manifestDir, layers);
302
349
  // The `layers:` index is part of the published manifest, so it is written
303
350
  // HERE and not by the transport at push time.
304
351
  //
@@ -313,8 +360,23 @@ export class ModulePayloadBuilder {
313
360
  //
314
361
  // The transport still owns the framing a `blob` digest covers, so the index
315
362
  // comes from it; publish re-frames the same layers and hard-fails if a
316
- // digest moved.
317
- const index = await this.transportFor(manifestPath).layerIndex(layers);
363
+ // digest moved. A layer holding a pinned entry has no bytes to frame and
364
+ // takes the stand-in `blob`; publish reads the staged bytes instead, so a
365
+ // stand-in never reaches a registry.
366
+ const transport = this.transportFor(manifestPath);
367
+ const index = [];
368
+ for (const layer of layers) {
369
+ if (!layer.files.some(isPinnedFile)) {
370
+ index.push(...(await transport.layerIndex([layer])));
371
+ continue;
372
+ }
373
+ index.push({
374
+ role: layer.role,
375
+ ...(layer.selector ? { selector: layer.selector } : {}),
376
+ blob: await pinnedLayerBlob(layer.files),
377
+ integrity: await computeFilesIntegrity(layer.files),
378
+ });
379
+ }
318
380
  return {
319
381
  manifest: index.length > 0 ? injectLayerIndex(manifest, index) : manifest,
320
382
  layers,
@@ -1 +1 @@
1
- {"version":3,"file":"module-payload.js","sourceRoot":"","sources":["../../src/bundle/module-payload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-payload.js","sourceRoot":"","sources":["../../src/bundle/module-payload.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type ArtifactSelector, type ModuleFileClaim } from "@telorun/analyzer";
1
+ import { type ArtifactSelector, type ModuleFileClaim, type NativeEntry } from "@telorun/analyzer";
2
2
  import type { PayloadLayer } from "@telorun/kernel";
3
3
  /** Manifest-relative POSIX path of a selected file, grouped into the layer it
4
4
  * belongs to. Content is read by the caller — this module decides membership
@@ -27,9 +27,12 @@ export interface Partition {
27
27
  * Partition the selected payload into the layers a module artifact ships.
28
28
  *
29
29
  * A **controller layer** per distinct selector, holding its entry points plus
30
- * whatever their sibling qualifiers claim. The **assets** layer holds what
31
- * `assets:` claims it is fetched lazily, on first module-relative access. The
32
- * **common** layer holds everything left over.
30
+ * whatever their sibling qualifiers claim. A **native layer** per distinct
31
+ * selector of the module's `native:` entries, holding their files a claim that
32
+ * outranks `files:`, `assets:` and a sibling pattern selecting the same file, so
33
+ * a platform's binary never ships to another platform. The **assets** layer
34
+ * holds what `assets:` claims — it is fetched lazily, on first module-relative
35
+ * access. The **common** layer holds everything left over.
33
36
  *
34
37
  * The sink runs toward correctness: an unclaimed file joins `common`, which is
35
38
  * materialized alongside *any* controller layer, so a sidecar nobody declared is
@@ -43,9 +46,13 @@ export interface Partition {
43
46
  * `assetPatterns` is the author's `assets:` list. A claimed file joins the
44
47
  * payload whether or not `files:` selected it — the manifest already names it,
45
48
  * so restating it would be pure duplication. Layers with no files are dropped,
46
- * so a controller-only module publishes exactly one payload layer.
49
+ * so a controller-only module publishes exactly one payload layer. `native` is
50
+ * what `readNativeEntries` read off the module doc.
51
+ *
52
+ * Throws when a `native:` entry names a file the manifest also names as code or
53
+ * as an embed: a file extracts from exactly one layer.
47
54
  */
48
- export declare function partitionLayers(claims: readonly ModuleFileClaim[], files: string[], assetPatterns: string[]): Partition;
55
+ export declare function partitionLayers(claims: readonly ModuleFileClaim[], files: string[], assetPatterns: string[], native?: readonly NativeEntry[]): Partition;
49
56
  /**
50
57
  * One line per layer for the publish output, so an author can see that a file they
51
58
  * meant as a sidecar or an asset landed in `common` instead.
@@ -1 +1 @@
1
- {"version":3,"file":"partition-layers.d.ts","sourceRoot":"","sources":["../../src/bundle/partition-layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;uDAEuD;AACvD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;uEAEuE;AACvE,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB;yDACqD;IACrD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;oBACgB;IAChB,iBAAiB,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,GACtB,SAAS,CAuGX;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,CAYhE"}
1
+ {"version":3,"file":"partition-layers.d.ts","sourceRoot":"","sources":["../../src/bundle/partition-layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;uDAEuD;AACvD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC3B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;uEAEuE;AACvE,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB;yDACqD;IACrD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;oBACgB;IAChB,iBAAiB,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,KAAK,EAAE,MAAM,EAAE,EACf,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,GAAE,SAAS,WAAW,EAAO,GAClC,SAAS,CA8HX;AAyBD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,CAYhE"}
@@ -1,12 +1,15 @@
1
- import { describeSelector, selectorKey, } from "@telorun/analyzer";
1
+ import { describeClaim, describeSelector, nativeClaimConflicts, selectorKey, } from "@telorun/analyzer";
2
2
  import { selectByPatterns } from "@telorun/glob";
3
3
  /**
4
4
  * Partition the selected payload into the layers a module artifact ships.
5
5
  *
6
6
  * A **controller layer** per distinct selector, holding its entry points plus
7
- * whatever their sibling qualifiers claim. The **assets** layer holds what
8
- * `assets:` claims it is fetched lazily, on first module-relative access. The
9
- * **common** layer holds everything left over.
7
+ * whatever their sibling qualifiers claim. A **native layer** per distinct
8
+ * selector of the module's `native:` entries, holding their files a claim that
9
+ * outranks `files:`, `assets:` and a sibling pattern selecting the same file, so
10
+ * a platform's binary never ships to another platform. The **assets** layer
11
+ * holds what `assets:` claims — it is fetched lazily, on first module-relative
12
+ * access. The **common** layer holds everything left over.
10
13
  *
11
14
  * The sink runs toward correctness: an unclaimed file joins `common`, which is
12
15
  * materialized alongside *any* controller layer, so a sidecar nobody declared is
@@ -20,9 +23,15 @@ import { selectByPatterns } from "@telorun/glob";
20
23
  * `assetPatterns` is the author's `assets:` list. A claimed file joins the
21
24
  * payload whether or not `files:` selected it — the manifest already names it,
22
25
  * so restating it would be pure duplication. Layers with no files are dropped,
23
- * so a controller-only module publishes exactly one payload layer.
26
+ * so a controller-only module publishes exactly one payload layer. `native` is
27
+ * what `readNativeEntries` read off the module doc.
28
+ *
29
+ * Throws when a `native:` entry names a file the manifest also names as code or
30
+ * as an embed: a file extracts from exactly one layer.
24
31
  */
25
- export function partitionLayers(claims, files, assetPatterns) {
32
+ export function partitionLayers(claims, files, assetPatterns, native = []) {
33
+ const nativeFiles = new Set(native.map((entry) => entry.path));
34
+ assertNativeFilesUnclaimed(native, claims);
26
35
  // Narrowing predicates, so the controller branch reaches `selector` and
27
36
  // `siblings` as declared fields rather than through a non-null assertion —
28
37
  // the claim type is a discriminated union precisely so this is checked.
@@ -43,7 +52,11 @@ export function partitionLayers(claims, files, assetPatterns) {
43
52
  // Sibling patterns are still matched against `files:` alone: a sibling is a
44
53
  // glob over the payload, so a pattern that selects nothing there means the
45
54
  // author forgot to include the file, which `unmatchedSiblings` reports.
46
- const selected = new Set([...files, ...claims.map((claim) => claim.path)]);
55
+ const selected = new Set([
56
+ ...files,
57
+ ...claims.map((claim) => claim.path),
58
+ ...nativeFiles,
59
+ ]);
47
60
  const unclaimed = new Set([...files, ...claimedAssets.map((claim) => claim.path)]);
48
61
  // Controller layers first: a file an entry point or sibling claims belongs to
49
62
  // that selector, never to assets or common, so the layer a kernel skips is
@@ -81,6 +94,10 @@ export function partitionLayers(claims, files, assetPatterns) {
81
94
  }
82
95
  }
83
96
  for (const file of [claim.path, ...siblings]) {
97
+ // A native file a sibling pattern also matches belongs to its platform's
98
+ // native layer; copying it here would ship it to every host of this format.
99
+ if (nativeFiles.has(file))
100
+ continue;
84
101
  unclaimed.delete(file);
85
102
  // A controller entry point that is also this module's library entry point
86
103
  // ships once, in the library layer; the controller layer would be a second
@@ -91,6 +108,19 @@ export function partitionLayers(claims, files, assetPatterns) {
91
108
  plan.files.push(file);
92
109
  }
93
110
  }
111
+ // Names sharing a selector share its layer; one path declared under several
112
+ // names is one file.
113
+ for (const entry of native) {
114
+ const key = `native\0${selectorKey(entry.selector)}`;
115
+ let plan = bySelector.get(key);
116
+ if (!plan) {
117
+ plan = { role: "native", selector: entry.selector, files: [] };
118
+ bySelector.set(key, plan);
119
+ }
120
+ unclaimed.delete(entry.path);
121
+ if (!plan.files.includes(entry.path))
122
+ plan.files.push(entry.path);
123
+ }
94
124
  // A file a tag embeds is an asset by declaration, so it needs no `assets:`
95
125
  // pattern to be lazy — the manifest already said what it is. A pattern can
96
126
  // still claim more, and a file claimed both ways is one file.
@@ -115,6 +145,18 @@ export function partitionLayers(claims, files, assetPatterns) {
115
145
  unmatchedSiblings,
116
146
  };
117
147
  }
148
+ /** Refuse a file both a `native:` entry and another manifest declaration name —
149
+ * the rule `telo check` reports as `NATIVE_PATH_CLAIMED`. */
150
+ function assertNativeFilesUnclaimed(native, claims) {
151
+ const conflicts = nativeClaimConflicts(native, claims.map((claim) => ({ claim }))).map(({ entry, claim }) => ` '${entry.path}': ${entry.origin} for ${describeSelector(entry.selector)}, and ` +
152
+ describeClaim(claim));
153
+ if (conflicts.length === 0)
154
+ return;
155
+ throw new Error(`The manifest names ${conflicts.length === 1 ? "a file" : "files"} both as a native file ` +
156
+ `and through another declaration:\n${conflicts.join("\n")}\n` +
157
+ `A native file ships only in its platform's native layer, and a file extracts from ` +
158
+ `exactly one layer. Give the native entry its own file, or drop the other declaration.`);
159
+ }
118
160
  /**
119
161
  * One line per layer for the publish output, so an author can see that a file they
120
162
  * meant as a sidecar or an asset landed in `common` instead.
@@ -1 +1 @@
1
- {"version":3,"file":"partition-layers.js","sourceRoot":"","sources":["../../src/bundle/partition-layers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,WAAW,GAGZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAyBjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAkC,EAClC,KAAe,EACf,aAAuB;IAEvB,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAC/B,CAAC,KAAK,EAA6D,EAAE,CACnE,KAAK,CAAC,IAAI,KAAK,YAAY,CAC9B,CAAC;IACF,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAC7B,CAAC,KAAK,EAA0D,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAC5F,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACxE;;;;+EAI2E;IAC3E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnE,2EAA2E;IAC3E,2EAA2E;IAC3E,8EAA8E;IAC9E,8DAA8D;IAC9D,EAAE;IACF,4EAA4E;IAC5E,2EAA2E;IAC3E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnF,8EAA8E;IAC9E,2EAA2E;IAC3E,8EAA8E;IAC9E,2EAA2E;IAC3E,+EAA+E;IAC/E,qEAAqE;IACrE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAC;IAChD,MAAM,iBAAiB,GAA+C,EAAE,CAAC;IAEzE,4EAA4E;IAC5E,6DAA6D;IAC7D,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,YAAY,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAChE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,eAAe,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzD,IAAI,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACnE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,gBAAgB,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3F,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC7C,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvB,0EAA0E;YAC1E,2EAA2E;YAC3E,mDAAmD;YACnD,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACrC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,8DAA8D;IAC9D,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjF,GAAG,gBAAgB,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,aAAa,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC;SAClF,CAAC;KACH,CAAC,IAAI,EAAE,CAAC;IACT,KAAK,MAAM,IAAI,IAAI,UAAU;QAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,OAAO,EAAE,EAAE,CACV,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;QACxB,gBAAgB,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CACzF,CAAC;IAEF,MAAM,MAAM,GAAgB;QAC1B,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClF,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,UAAU,EAAE;QAC9C,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;KAC1D,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,eAAe;QACf,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAoB;IACpD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAChG,OAAO,GAAG,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,UAAU,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,mBAAmB,CAAC,CAAC;IAC5D,CAAC;IACD,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,qBAAqB,OAAO,2BAA2B,MAAM,GAAG,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"partition-layers.js","sourceRoot":"","sources":["../../src/bundle/partition-layers.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@ export interface LayerDrift {
26
26
  * the build no longer produces this layer. */
27
27
  built?: string;
28
28
  }
29
- import type { BuiltLayer } from "./module-payload.js";
29
+ import type { BuiltLayer } from "./built-layers.js";
30
30
  export type { BuiltLayer };
31
31
  /**
32
32
  * The per-layer integrity the registry serves at `<destination>@<version>`, or
@@ -1 +1 @@
1
- {"version":3,"file":"payload-drift.d.ts","sourceRoot":"","sources":["../../src/bundle/payload-drift.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;+EAC2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;mDAC+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,YAAY,EAAE,UAAU,EAAE,CAAC;AAwD3B;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAQ9B;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,UAAU,EAAE,GAC3B,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CA6B9B;AAED;;kDAEkD;AAClD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAe7F"}
1
+ {"version":3,"file":"payload-drift.d.ts","sourceRoot":"","sources":["../../src/bundle/payload-drift.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAI3B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;+EAC2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;mDAC+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,CAAC;AAwD3B;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAQ9B;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,SAAS,UAAU,EAAE,GAC3B,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,CA6B9B;AAED;;kDAEkD;AAClD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,CAe7F"}
@@ -9,14 +9,23 @@
9
9
  * `include:` resolution, which may reach any co-located partial); the hard tier
10
10
  * (`node_modules`/`.git`/`.telo`) is always denied regardless.
11
11
  *
12
- * Throws if a selected file resolves (via a symlink) outside `manifestDir`.
12
+ * `links: true` selects symbolic links as entries of their own, never followed —
13
+ * the payload ships a link as a link, and where it points is the layer link
14
+ * rule's to judge. Without it a link is skipped, since `include:` resolution
15
+ * reads contents and must not reach through one.
16
+ *
17
+ * Throws if a selected path resolves (via a symlinked directory, or via the file
18
+ * itself when links are not selected) outside `manifestDir`.
13
19
  */
14
20
  export declare function selectFiles(manifestDir: string, patterns: string[], opts?: {
15
21
  applyDefaultIgnore?: boolean;
22
+ links?: boolean;
16
23
  }): string[];
17
24
  /**
18
25
  * Reject any payload path that does not exist, or that resolves — via a symlink
19
- * — outside `manifestDir`.
26
+ * — outside `manifestDir`. A path that is itself a symbolic link ships as a
27
+ * link, so only the directory holding it is confined here; its target is
28
+ * judged by the layer link rule.
20
29
  *
21
30
  * Separate from {@link selectFiles} because a `files:` pattern is no longer the
22
31
  * only route into the payload: a bundled controller's `path=` entry joins it
@@ -1 +1 @@
1
- {"version":3,"file":"select-files.d.ts","sourceRoot":"","sources":["../../src/bundle/select-files.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,GAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,MAAM,EAAE,CAoBV;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtB,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAa,GACxC,IAAI,CAyBN"}
1
+ {"version":3,"file":"select-files.d.ts","sourceRoot":"","sources":["../../src/bundle/select-files.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CACzB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,IAAI,GAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC3D,MAAM,EAAE,CAuBV;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EACtB,QAAQ,GAAE,WAAW,CAAC,MAAM,CAAa,GACxC,IAAI,CA4BN"}