@telorun/cli 0.88.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 (80) 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 +30 -15
  6. package/dist/bundle/module-payload.d.ts.map +1 -1
  7. package/dist/bundle/module-payload.js +118 -21
  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 +21 -7
  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 +8 -6
  38. package/dist/commands/release.d.ts.map +1 -1
  39. package/dist/commands/release.js +168 -69
  40. package/dist/commands/release.js.map +1 -1
  41. package/dist/commands/run.d.ts.map +1 -1
  42. package/dist/commands/run.js +14 -6
  43. package/dist/commands/run.js.map +1 -1
  44. package/dist/controller-runtime.d.ts +25 -3
  45. package/dist/controller-runtime.d.ts.map +1 -1
  46. package/dist/controller-runtime.js +39 -9
  47. package/dist/controller-runtime.js.map +1 -1
  48. package/dist/env-files.d.ts +23 -8
  49. package/dist/env-files.d.ts.map +1 -1
  50. package/dist/env-files.js +77 -17
  51. package/dist/env-files.js.map +1 -1
  52. package/dist/release/apply-plan.d.ts +2 -1
  53. package/dist/release/apply-plan.d.ts.map +1 -1
  54. package/dist/release/apply-plan.js +8 -4
  55. package/dist/release/apply-plan.js.map +1 -1
  56. package/dist/release/cargo-toml.d.ts +17 -0
  57. package/dist/release/cargo-toml.d.ts.map +1 -0
  58. package/dist/release/cargo-toml.js +253 -0
  59. package/dist/release/cargo-toml.js.map +1 -0
  60. package/dist/release/crate-inputs.d.ts +41 -0
  61. package/dist/release/crate-inputs.d.ts.map +1 -0
  62. package/dist/release/crate-inputs.js +407 -0
  63. package/dist/release/crate-inputs.js.map +1 -0
  64. package/dist/release/evidence.d.ts +13 -17
  65. package/dist/release/evidence.d.ts.map +1 -1
  66. package/dist/release/evidence.js +26 -30
  67. package/dist/release/evidence.js.map +1 -1
  68. package/dist/release/stage.d.ts +61 -0
  69. package/dist/release/stage.d.ts.map +1 -0
  70. package/dist/release/stage.js +506 -0
  71. package/dist/release/stage.js.map +1 -0
  72. package/dist/release/targets.d.ts +60 -0
  73. package/dist/release/targets.d.ts.map +1 -0
  74. package/dist/release/targets.js +94 -0
  75. package/dist/release/targets.js.map +1 -0
  76. package/dist/release/workspace.d.ts +17 -5
  77. package/dist/release/workspace.d.ts.map +1 -1
  78. package/dist/release/workspace.js +89 -13
  79. package/dist/release/workspace.js.map +1 -1
  80. package/package.json +7 -7
@@ -0,0 +1,253 @@
1
+ /**
2
+ * Reading a `Cargo.toml` into plain data, for the build-input digest of a
3
+ * crate-built source.
4
+ *
5
+ * A strict reader of the TOML cargo manifests are written in — tables, arrays of
6
+ * tables, dotted and quoted keys, strings of all four kinds, arrays, inline
7
+ * tables, booleans, and other scalars kept as their text. Anything else is a
8
+ * refusal naming the line, never a skip: a dependency table read wrongly would
9
+ * drop a path dependency from the digest, and a prebuild would then outlive a
10
+ * change to code it links without anything reporting it.
11
+ */
12
+ export function parseCargoToml(text, where) {
13
+ return new Reader(text, where).document();
14
+ }
15
+ const BARE_KEY = /[A-Za-z0-9_-]/;
16
+ class Reader {
17
+ text;
18
+ where;
19
+ pos = 0;
20
+ constructor(text, where) {
21
+ this.text = text;
22
+ this.where = where;
23
+ }
24
+ document() {
25
+ const root = {};
26
+ let current = root;
27
+ for (;;) {
28
+ this.skipBlank(true);
29
+ if (this.pos >= this.text.length)
30
+ return root;
31
+ if (this.text.startsWith("[[", this.pos)) {
32
+ this.pos += 2;
33
+ const keys = this.keyPath("]]");
34
+ const parent = this.tableAt(root, keys.slice(0, -1));
35
+ const last = keys[keys.length - 1];
36
+ const list = parent[last] ?? [];
37
+ if (!Array.isArray(list))
38
+ this.fail(`'${keys.join(".")}' is not an array of tables`);
39
+ const table = {};
40
+ list.push(table);
41
+ parent[last] = list;
42
+ current = table;
43
+ }
44
+ else if (this.text[this.pos] === "[") {
45
+ this.pos += 1;
46
+ current = this.tableAt(root, this.keyPath("]"));
47
+ }
48
+ else {
49
+ const keys = this.keyPath("=");
50
+ this.skipInline();
51
+ this.assign(current, keys, this.value());
52
+ }
53
+ this.endOfLine();
54
+ }
55
+ }
56
+ keyPath(terminator) {
57
+ const keys = [];
58
+ for (;;) {
59
+ this.skipInline();
60
+ const quote = this.text[this.pos];
61
+ if (quote === '"' || quote === "'") {
62
+ keys.push(this.singleLineString());
63
+ }
64
+ else {
65
+ const start = this.pos;
66
+ while (this.pos < this.text.length && BARE_KEY.test(this.text[this.pos]))
67
+ this.pos++;
68
+ if (start === this.pos)
69
+ this.fail("expected a key");
70
+ keys.push(this.text.slice(start, this.pos));
71
+ }
72
+ this.skipInline();
73
+ if (this.text.startsWith(terminator, this.pos)) {
74
+ this.pos += terminator.length;
75
+ return keys;
76
+ }
77
+ if (this.text[this.pos] !== ".")
78
+ this.fail(`expected '.' or '${terminator}' after a key`);
79
+ this.pos += 1;
80
+ }
81
+ }
82
+ value() {
83
+ const ch = this.text[this.pos];
84
+ if (this.text.startsWith('"""', this.pos) || this.text.startsWith("'''", this.pos)) {
85
+ return this.multiLineString();
86
+ }
87
+ if (ch === '"' || ch === "'")
88
+ return this.singleLineString();
89
+ if (ch === "[")
90
+ return this.array();
91
+ if (ch === "{")
92
+ return this.inlineTable();
93
+ const start = this.pos;
94
+ while (this.pos < this.text.length && !/[,\]}#\r\n]/.test(this.text[this.pos]))
95
+ this.pos++;
96
+ const token = this.text.slice(start, this.pos).trim();
97
+ if (token === "")
98
+ this.fail("expected a value");
99
+ if (token === "true")
100
+ return true;
101
+ if (token === "false")
102
+ return false;
103
+ return token;
104
+ }
105
+ array() {
106
+ this.pos += 1;
107
+ const out = [];
108
+ for (;;) {
109
+ this.skipBlank(true);
110
+ if (this.text[this.pos] === "]") {
111
+ this.pos += 1;
112
+ return out;
113
+ }
114
+ out.push(this.value());
115
+ this.skipBlank(true);
116
+ if (this.text[this.pos] === ",") {
117
+ this.pos += 1;
118
+ }
119
+ else if (this.text[this.pos] !== "]") {
120
+ this.fail("expected ',' or ']' in an array");
121
+ }
122
+ }
123
+ }
124
+ inlineTable() {
125
+ this.pos += 1;
126
+ const out = {};
127
+ this.skipInline();
128
+ if (this.text[this.pos] === "}") {
129
+ this.pos += 1;
130
+ return out;
131
+ }
132
+ for (;;) {
133
+ const keys = this.keyPath("=");
134
+ this.skipInline();
135
+ this.assign(out, keys, this.value());
136
+ this.skipInline();
137
+ if (this.text[this.pos] === "}") {
138
+ this.pos += 1;
139
+ return out;
140
+ }
141
+ if (this.text[this.pos] !== ",")
142
+ this.fail("expected ',' or '}' in an inline table");
143
+ this.pos += 1;
144
+ }
145
+ }
146
+ singleLineString() {
147
+ const quote = this.text[this.pos];
148
+ this.pos += 1;
149
+ let out = "";
150
+ for (;;) {
151
+ const ch = this.text[this.pos];
152
+ if (ch === undefined || ch === "\n")
153
+ this.fail("unterminated string");
154
+ this.pos += 1;
155
+ if (ch === quote)
156
+ return out;
157
+ out += quote === '"' && ch === "\\" ? this.escape() : ch;
158
+ }
159
+ }
160
+ multiLineString() {
161
+ const delimiter = this.text.slice(this.pos, this.pos + 3);
162
+ this.pos += 3;
163
+ if (this.text[this.pos] === "\n")
164
+ this.pos += 1;
165
+ else if (this.text.startsWith("\r\n", this.pos))
166
+ this.pos += 2;
167
+ const end = this.text.indexOf(delimiter, this.pos);
168
+ if (end < 0)
169
+ this.fail("unterminated multi-line string");
170
+ const body = this.text.slice(this.pos, end);
171
+ this.pos = end + 3;
172
+ // Content matters to no key this reader serves (descriptions), so escapes in
173
+ // a basic multi-line string are kept as written.
174
+ return body;
175
+ }
176
+ escape() {
177
+ const ch = this.text[this.pos];
178
+ this.pos += 1;
179
+ const simple = { b: "\b", t: "\t", n: "\n", f: "\f", r: "\r", '"': '"', "\\": "\\" };
180
+ if (ch !== undefined && ch in simple)
181
+ return simple[ch];
182
+ if (ch === "u" || ch === "U") {
183
+ const length = ch === "u" ? 4 : 8;
184
+ const hex = this.text.slice(this.pos, this.pos + length);
185
+ if (!/^[0-9a-fA-F]+$/.test(hex) || hex.length !== length)
186
+ this.fail("invalid unicode escape");
187
+ this.pos += length;
188
+ return String.fromCodePoint(parseInt(hex, 16));
189
+ }
190
+ return this.fail(`invalid escape '\\${ch ?? ""}'`);
191
+ }
192
+ tableAt(root, keys) {
193
+ let table = root;
194
+ for (const key of keys) {
195
+ let next = table[key];
196
+ if (next === undefined) {
197
+ next = {};
198
+ table[key] = next;
199
+ }
200
+ if (Array.isArray(next))
201
+ next = next[next.length - 1];
202
+ if (typeof next !== "object" || next === null || Array.isArray(next)) {
203
+ this.fail(`'${keys.join(".")}' is not a table`);
204
+ }
205
+ table = next;
206
+ }
207
+ return table;
208
+ }
209
+ assign(table, keys, value) {
210
+ const parent = this.tableAt(table, keys.slice(0, -1));
211
+ const last = keys[keys.length - 1];
212
+ if (last in parent)
213
+ this.fail(`'${keys.join(".")}' is defined twice`);
214
+ parent[last] = value;
215
+ }
216
+ skipInline() {
217
+ while (this.text[this.pos] === " " || this.text[this.pos] === "\t")
218
+ this.pos++;
219
+ }
220
+ /** Whitespace and comments, across newlines when `lines`. */
221
+ skipBlank(lines) {
222
+ for (;;) {
223
+ this.skipInline();
224
+ const ch = this.text[this.pos];
225
+ if (ch === "#") {
226
+ while (this.pos < this.text.length && this.text[this.pos] !== "\n")
227
+ this.pos++;
228
+ }
229
+ else if (lines && (ch === "\n" || ch === "\r")) {
230
+ this.pos++;
231
+ }
232
+ else {
233
+ return;
234
+ }
235
+ }
236
+ }
237
+ endOfLine() {
238
+ this.skipBlank(false);
239
+ if (this.pos >= this.text.length)
240
+ return;
241
+ if (this.text.startsWith("\r\n", this.pos))
242
+ this.pos += 2;
243
+ else if (this.text[this.pos] === "\n")
244
+ this.pos += 1;
245
+ else
246
+ this.fail("unexpected text after a value");
247
+ }
248
+ fail(message) {
249
+ const line = this.text.slice(0, this.pos).split("\n").length;
250
+ throw new Error(`${this.where}:${line}: ${message}`);
251
+ }
252
+ }
253
+ //# sourceMappingURL=cargo-toml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cargo-toml.js","sourceRoot":"","sources":["../../src/release/cargo-toml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The build inputs of a crate-built source, as one digest.
3
+ *
4
+ * A source whose files are prebuilt from a crate in this repository names that
5
+ * crate (`build: { cargo: <dir> }`), and `telo release stage --pin` records what
6
+ * built them (`build.inputs`): the committed files of the crate and of every
7
+ * path crate it reaches transitively — through a path dependency or a `[patch]`
8
+ * entry — the `Cargo.lock` packages those crates reach, the cargo configuration
9
+ * and toolchain files that apply where the crate is built, and what the
10
+ * workspace root's `Cargo.toml` passes down. A lock entry nothing here depends
11
+ * on is not an input, so an unrelated crate's new dependency trips no source.
12
+ * `telo release check` recomputes the same digest and fails when it moved, so a
13
+ * module never ships binaries older than the code they were built from — and an
14
+ * edit to a crate every controller depends on (the SDK, the controller ABI)
15
+ * trips every source built on it.
16
+ *
17
+ * Files are what git tracks, read from the working tree: build output, ignored
18
+ * files and a scratch file nobody added are not inputs, wherever they sit.
19
+ * Cargo is never invoked, so the check needs no toolchain and builds nothing.
20
+ */
21
+ import type { DiscoveredModule } from "./workspace.js";
22
+ /**
23
+ * The digest of a crate's build inputs, `sha256-<base64url>`: one line per input,
24
+ * sorted — each tracked file of the crate and of every path crate it reaches
25
+ * (workspace-root-relative path and content digest), each `Cargo.lock` package
26
+ * those crates reach, each cargo configuration or toolchain file from the crate's
27
+ * directory up to the repository root, and from the workspace root's
28
+ * `Cargo.toml` the inherited `[workspace.dependencies]` entries plus `[patch]`,
29
+ * `[replace]`, `[profile]` and `[workspace]`'s `resolver`, `package` and `lints`.
30
+ */
31
+ export declare function crateInputsDigest(crateDir: string): Promise<string>;
32
+ /** A crate-built source whose recorded inputs no longer describe its crate. */
33
+ export interface CrateInputsFailure {
34
+ readonly module: string;
35
+ readonly source: string;
36
+ readonly message: string;
37
+ }
38
+ /** Recompute every crate-built source's inputs across `modules` and report each
39
+ * one that is unrecorded or has moved. */
40
+ export declare function checkCrateInputs(modules: readonly DiscoveredModule[]): Promise<CrateInputsFailure[]>;
41
+ //# sourceMappingURL=crate-inputs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crate-inputs.d.ts","sourceRoot":"","sources":["../../src/release/crate-inputs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAcH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAoQvD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsFzE;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;2CAC2C;AAC3C,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAmC/B"}