@actana/sdk 0.2.2 → 0.3.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.
- package/README.md +54 -0
- package/dist/core-client.d.ts +99 -1
- package/dist/core-client.d.ts.map +1 -1
- package/dist/core-client.js +138 -2
- package/dist/core-client.js.map +1 -1
- package/dist/core-files-http.d.ts +94 -0
- package/dist/core-files-http.d.ts.map +1 -0
- package/dist/core-files-http.js +198 -0
- package/dist/core-files-http.js.map +1 -0
- package/dist/core-files.d.ts +227 -0
- package/dist/core-files.d.ts.map +1 -0
- package/dist/core-files.js +410 -0
- package/dist/core-files.js.map +1 -0
- package/dist/core-link-frames.d.ts +59 -0
- package/dist/core-link-frames.d.ts.map +1 -1
- package/dist/core-link-frames.js +35 -0
- package/dist/core-link-frames.js.map +1 -1
- package/dist/core-link-transport.d.ts.map +1 -1
- package/dist/core-link-transport.js +6 -0
- package/dist/core-link-transport.js.map +1 -1
- package/dist/core-project.d.ts +19 -0
- package/dist/core-project.d.ts.map +1 -0
- package/dist/core-project.js +38 -0
- package/dist/core-project.js.map +1 -0
- package/dist/core-registration-blob.d.ts +11 -0
- package/dist/core-registration-blob.d.ts.map +1 -1
- package/dist/core-registration-blob.js +5 -1
- package/dist/core-registration-blob.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
// `project.files.list / upload / download` — the SDK half of #129 F12 (#167).
|
|
2
|
+
//
|
|
3
|
+
// A Project's files are reached over the Core's `/v1/…` HTTPS routes, never
|
|
4
|
+
// over the core link (ADR 0028). What this module adds on top of those routes
|
|
5
|
+
// is the shape a caller should actually hold:
|
|
6
|
+
//
|
|
7
|
+
// const project = client.project(projectId);
|
|
8
|
+
// for await (const entry of project.files.list()) …
|
|
9
|
+
// for await (const line of project.files.upload({ path, body })) …
|
|
10
|
+
// const { stream } = await project.files.download({ path });
|
|
11
|
+
//
|
|
12
|
+
// ## Everything here streams, and streams *lazily*
|
|
13
|
+
//
|
|
14
|
+
// The three methods have one property in common and it is the reason the module
|
|
15
|
+
// exists rather than four `fetch` calls at a call site: **nothing runs ahead of
|
|
16
|
+
// its consumer.** Each is a pull-driven async generator or a stream handed
|
|
17
|
+
// straight through — no background pump, no queue that fills while the caller is
|
|
18
|
+
// busy, no `await res.arrayBuffer()` anywhere on a success path.
|
|
19
|
+
//
|
|
20
|
+
// This is a correctness property, not a tidiness one. An async iterable that
|
|
21
|
+
// eagerly drains its source has *defeated the streaming it appears to offer*:
|
|
22
|
+
// the bytes are all in memory, the only thing being paced is the handing-out.
|
|
23
|
+
// A caller writing each downloaded chunk to a slow disk, or posting each upload
|
|
24
|
+
// progress line to a webhook, is the ordinary case — and it is exactly the case
|
|
25
|
+
// an eager implementation turns into unbounded memory growth. `for await` over
|
|
26
|
+
// a generator suspends it at the `yield` until the consumer asks again, and the
|
|
27
|
+
// Core's own `res.write` backpressures once the socket buffer fills, so a slow
|
|
28
|
+
// consumer here becomes a slow reader on the socket and eventually a paused
|
|
29
|
+
// writer on the Core. That chain is what `core-files-backpressure.test.ts`
|
|
30
|
+
// pins, with a consumer that deliberately dawdles.
|
|
31
|
+
//
|
|
32
|
+
// ## What this module does not do
|
|
33
|
+
//
|
|
34
|
+
// **It does not build tar archives.** A folder crosses as one streamed tar
|
|
35
|
+
// (ADR 0029) and the packing lives on the Core, which is the side with the
|
|
36
|
+
// files. `upload` takes whatever stream it is given and labels it; a caller
|
|
37
|
+
// uploading a folder hands it a tar stream and says `kind: "tar"`.
|
|
38
|
+
//
|
|
39
|
+
// **It does not retry.** See {@link CoreFilesConflictError} — the one-write-
|
|
40
|
+
// per-Project rule (F8) is a conflict for a human to resolve, and a silent
|
|
41
|
+
// retry loop would turn the Core's immediate, well-worded refusal into a hang.
|
|
42
|
+
import { CoreFilesStreamError, CoreFilesUnavailableError, refusalFrom, } from "./core-files-http.js";
|
|
43
|
+
/**
|
|
44
|
+
* A Project's files, over the Core's HTTPS routes.
|
|
45
|
+
*
|
|
46
|
+
* Reached as `client.project(id).files` rather than constructed directly.
|
|
47
|
+
*/
|
|
48
|
+
export class CoreFiles {
|
|
49
|
+
opts;
|
|
50
|
+
constructor(opts) {
|
|
51
|
+
this.opts = opts;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The Project's tree, one entry at a time.
|
|
55
|
+
*
|
|
56
|
+
* Reads the Core's real listing route — `GET …/files/list`, see
|
|
57
|
+
* {@link listUrl} — which streams `{path, kind, size, mtime, mode, sha256}`
|
|
58
|
+
* per entry as NDJSON. `core-files-list-contract.test.ts` drives this method
|
|
59
|
+
* against that route in process and runs in **both** packages' suites, so the
|
|
60
|
+
* two halves of the URL cannot drift apart again without a red test (#218).
|
|
61
|
+
*
|
|
62
|
+
* Both line shapes are accepted — a bare manifest entry and one wrapped as
|
|
63
|
+
* `{type: "entry", …}`, which is what the Core's listing and its write route
|
|
64
|
+
* both emit. `skipped` lines are passed over: a path the walk could not read
|
|
65
|
+
* is a fact about the tree, not an entry in it, and not a reason to stop.
|
|
66
|
+
*/
|
|
67
|
+
async *list(opts = {}) {
|
|
68
|
+
this.requireAvailable("listing a Project's files");
|
|
69
|
+
const res = await this.opts.fetch({
|
|
70
|
+
method: "GET",
|
|
71
|
+
url: this.listUrl(opts),
|
|
72
|
+
headers: { ...this.authHeaders(), accept: "application/x-ndjson" },
|
|
73
|
+
...(opts.signal ? { signal: opts.signal } : {}),
|
|
74
|
+
});
|
|
75
|
+
if (!res.ok)
|
|
76
|
+
throw await refusalFrom(res, "listing this Project");
|
|
77
|
+
if (!res.body)
|
|
78
|
+
return;
|
|
79
|
+
for await (const line of ndjsonLines(res.body)) {
|
|
80
|
+
const record = line;
|
|
81
|
+
const type = typeof record.type === "string" ? record.type : "entry";
|
|
82
|
+
if (type === "done")
|
|
83
|
+
return;
|
|
84
|
+
if (type === "error") {
|
|
85
|
+
throw new CoreFilesStreamError(typeof record.code === "string" ? record.code : "read-failed", typeof record.message === "string" ? record.message : "the listing failed part-way through");
|
|
86
|
+
}
|
|
87
|
+
if (type !== "entry")
|
|
88
|
+
continue;
|
|
89
|
+
const entry = readEntry(record);
|
|
90
|
+
if (entry)
|
|
91
|
+
yield entry;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Write a stream into the Project, and watch it land.
|
|
96
|
+
*
|
|
97
|
+
* The returned iterable is the Core's NDJSON progress stream, parsed: one
|
|
98
|
+
* `entry` line per file — each carrying `result: "written" | "overwritten"`,
|
|
99
|
+
* so **every overwrite is named** rather than inferred — then one `done` line
|
|
100
|
+
* with the totals.
|
|
101
|
+
*
|
|
102
|
+
* **Lazy, like everything else here.** Calling `upload` sends nothing; the
|
|
103
|
+
* request goes out on the first `next()`. A caller who does not care about
|
|
104
|
+
* progress still has to drain the iterable, and that is the honest shape: the
|
|
105
|
+
* alternative is a method that returns a promise and quietly buffers a
|
|
106
|
+
* gigabyte of progress nobody read.
|
|
107
|
+
*
|
|
108
|
+
* Throws {@link CoreFilesConflictError} when another write already holds this
|
|
109
|
+
* Project's lease (F8) — immediately, and without retrying. Throws
|
|
110
|
+
* {@link CoreFilesStreamError} when the write fails part-way through, which
|
|
111
|
+
* arrives as the stream's last line rather than as a status code, the `200`
|
|
112
|
+
* having been spent on the first entry.
|
|
113
|
+
*/
|
|
114
|
+
async *upload(opts) {
|
|
115
|
+
this.requireAvailable("writing files to a Project");
|
|
116
|
+
const headers = {
|
|
117
|
+
...this.authHeaders(),
|
|
118
|
+
// `application/x-tar` is what tells the Core to unpack rather than to
|
|
119
|
+
// write one file — the route branches on this header and nothing else.
|
|
120
|
+
"content-type": opts.kind === "tar" ? "application/x-tar" : "application/octet-stream",
|
|
121
|
+
accept: "application/x-ndjson",
|
|
122
|
+
};
|
|
123
|
+
if (opts.mode !== undefined)
|
|
124
|
+
headers["x-actana-file-mode"] = String(opts.mode & 0o777);
|
|
125
|
+
if (opts.mtime !== undefined)
|
|
126
|
+
headers["x-actana-file-mtime"] = String(Math.floor(opts.mtime));
|
|
127
|
+
if (opts.contentLength !== undefined)
|
|
128
|
+
headers["content-length"] = String(opts.contentLength);
|
|
129
|
+
const res = await this.opts.fetch({
|
|
130
|
+
method: "PUT",
|
|
131
|
+
url: this.fileUrl(opts.path),
|
|
132
|
+
headers,
|
|
133
|
+
body: sourceStream(opts.body),
|
|
134
|
+
...(opts.signal ? { signal: opts.signal } : {}),
|
|
135
|
+
});
|
|
136
|
+
// The refusal a large upload cares about arrives here, while the body is
|
|
137
|
+
// still going out: the Core takes the write lease before it reads a byte,
|
|
138
|
+
// so `409 transfer-in-progress` is answered from the status line rather
|
|
139
|
+
// than after a gigabyte has crossed.
|
|
140
|
+
if (!res.ok)
|
|
141
|
+
throw await refusalFrom(res, `writing ${opts.path || "this Project"}`);
|
|
142
|
+
if (!res.body)
|
|
143
|
+
return;
|
|
144
|
+
for await (const line of ndjsonLines(res.body)) {
|
|
145
|
+
const record = line;
|
|
146
|
+
if (record.type === "error") {
|
|
147
|
+
throw new CoreFilesStreamError(typeof record.code === "string" ? record.code : "write-failed", typeof record.message === "string" ? record.message : "the write failed part-way through");
|
|
148
|
+
}
|
|
149
|
+
if (record.type === "done") {
|
|
150
|
+
yield {
|
|
151
|
+
type: "done",
|
|
152
|
+
entries: numberOr(record.entries, 0),
|
|
153
|
+
bytes: numberOr(record.bytes, 0),
|
|
154
|
+
};
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
const entry = readEntry(record);
|
|
158
|
+
if (entry) {
|
|
159
|
+
yield {
|
|
160
|
+
type: "entry",
|
|
161
|
+
...entry,
|
|
162
|
+
result: record.result === "overwritten" ? "overwritten" : "written",
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Read a file — or a folder, as one streamed tar — **as a stream**.
|
|
169
|
+
*
|
|
170
|
+
* The response body is handed through untouched. Nothing on this path calls
|
|
171
|
+
* `arrayBuffer`, `text` or `blob`, so a gigabyte file crosses in whatever
|
|
172
|
+
* chunks the socket delivers and only ever occupies what the consumer has not
|
|
173
|
+
* yet read. `core-files-streaming.test.ts` holds that claim to a real
|
|
174
|
+
* gigabyte and watches the heap while it crosses.
|
|
175
|
+
*
|
|
176
|
+
* The metadata comes off headers the Core already had — `stat` on the file it
|
|
177
|
+
* was about to open — so nothing is read twice to produce it.
|
|
178
|
+
*/
|
|
179
|
+
async download(opts) {
|
|
180
|
+
this.requireAvailable("reading a Project's files");
|
|
181
|
+
const res = await this.opts.fetch({
|
|
182
|
+
method: "GET",
|
|
183
|
+
url: this.fileUrl(opts.path),
|
|
184
|
+
headers: this.authHeaders(),
|
|
185
|
+
...(opts.signal ? { signal: opts.signal } : {}),
|
|
186
|
+
});
|
|
187
|
+
if (!res.ok)
|
|
188
|
+
throw await refusalFrom(res, `reading ${opts.path || "this Project"}`);
|
|
189
|
+
if (!res.body) {
|
|
190
|
+
throw new CoreFilesStreamError("read-failed", `the Core answered ${opts.path} with no body`);
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
kind: res.headers.get("x-actana-transfer-kind") === "tar" ? "tar" : "file",
|
|
194
|
+
size: headerNumber(res, "x-actana-file-size") ?? headerNumber(res, "content-length"),
|
|
195
|
+
mode: headerNumber(res, "x-actana-file-mode"),
|
|
196
|
+
mtime: headerNumber(res, "x-actana-file-mtime"),
|
|
197
|
+
stream: res.body,
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* `…/v1/projects/:projectId/files/list?path=<relative>` — a route of its own.
|
|
202
|
+
*
|
|
203
|
+
* This module used to send `?list=1` on the read route instead, and argued for
|
|
204
|
+
* it on cost: the Core's `parseRoute` matched `/v1/projects/:id/files` on an
|
|
205
|
+
* exact four-segment split, so a `…/files/list` leaf was a change to that
|
|
206
|
+
* parser and a query parameter was not. That cost is now paid — #216 shipped a
|
|
207
|
+
* parser that reads the fifth segment — and what is left is the Core's
|
|
208
|
+
* argument, which was never about cost: a listing and a read of the same
|
|
209
|
+
* folder answer with completely different things, one a manifest and one a
|
|
210
|
+
* tar. A query parameter that a proxy, a redirect or a hand-edited URL can
|
|
211
|
+
* drop turns "list this folder" into "download this folder", which for a
|
|
212
|
+
* `node_modules` is a mistake measured in gigabytes rather than in a 400. A
|
|
213
|
+
* path segment cannot be dropped silently. See issue 218.
|
|
214
|
+
*
|
|
215
|
+
* Still `protected`: a caller pinned to an older Core can subclass rather than
|
|
216
|
+
* wait for a release.
|
|
217
|
+
*/
|
|
218
|
+
listUrl(opts) {
|
|
219
|
+
const url = this.routeUrl("files/list");
|
|
220
|
+
url.searchParams.set("path", opts.path ?? "");
|
|
221
|
+
if (opts.depth !== undefined)
|
|
222
|
+
url.searchParams.set("depth", String(opts.depth));
|
|
223
|
+
// Off unless asked for, which is the Core's default too: a digest means
|
|
224
|
+
// reading every byte under the path, and a listing never has them in hand.
|
|
225
|
+
if (opts.sha256)
|
|
226
|
+
url.searchParams.set("sha256", "1");
|
|
227
|
+
return url.toString();
|
|
228
|
+
}
|
|
229
|
+
/** `…/v1/projects/:projectId/files?path=<relative>` — the read and write route. */
|
|
230
|
+
fileUrl(filePath) {
|
|
231
|
+
const url = this.routeUrl("files");
|
|
232
|
+
url.searchParams.set("path", filePath);
|
|
233
|
+
return url.toString();
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* `<baseUrl>/v1/projects/:projectId/<leaf>`, with the Project id escaped.
|
|
237
|
+
*
|
|
238
|
+
* The two routes above differ by their leaf and by nothing else, and that is
|
|
239
|
+
* worth having in one place: the day this surface gains a third, the origin,
|
|
240
|
+
* the version prefix and the escaping should not be a third opportunity to get
|
|
241
|
+
* one of them subtly wrong.
|
|
242
|
+
*/
|
|
243
|
+
routeUrl(leaf) {
|
|
244
|
+
const base = this.opts.baseUrl.replace(/\/+$/, "");
|
|
245
|
+
return new URL(`${base}/v1/projects/${encodeURIComponent(this.opts.projectId)}/${leaf}`);
|
|
246
|
+
}
|
|
247
|
+
authHeaders() {
|
|
248
|
+
// mTLS is not the gate on its own and is not treated as if it were: the
|
|
249
|
+
// client certificate says a Panel talked to this Core once, the bearer says
|
|
250
|
+
// the pairing is still current. A loopback rig configures no bearer, and
|
|
251
|
+
// the Core with no `authVerifier` asks for none.
|
|
252
|
+
return this.opts.bearer ? { authorization: `Bearer ${this.opts.bearer}` } : {};
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* The F9 gate, checked before every call and *before any byte leaves*.
|
|
256
|
+
*
|
|
257
|
+
* The reason is carried into the error rather than flattened to a boolean,
|
|
258
|
+
* because the two ways this fails want different actions from an operator: a
|
|
259
|
+
* Core that has not finished connecting is a wait, and a Core that announced
|
|
260
|
+
* no `files` capability is a Core that predates the surface — which is a
|
|
261
|
+
* supported state, not a fault and not a needs-update.
|
|
262
|
+
*/
|
|
263
|
+
requireAvailable(what) {
|
|
264
|
+
const availability = this.opts.availability();
|
|
265
|
+
if (availability.available)
|
|
266
|
+
return;
|
|
267
|
+
throw new CoreFilesUnavailableError(`${what} is unavailable on this Core: ${availability.reason}`);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* NDJSON, one parsed line at a time, **pulled**.
|
|
272
|
+
*
|
|
273
|
+
* The generator reads from the socket only when its buffer holds no complete
|
|
274
|
+
* line *and* the consumer has asked for another value. Between those two
|
|
275
|
+
* conditions sits the whole backpressure story: suspended at a `yield`, this
|
|
276
|
+
* function is not reading, so the response body's queue fills, so the TCP window
|
|
277
|
+
* closes, so the Core's `res.write` returns false and its handler parks in
|
|
278
|
+
* `drained`. A background pump feeding an array — the obvious alternative —
|
|
279
|
+
* would break that chain at the first link and read the entire stream into
|
|
280
|
+
* memory while the consumer worked through line one.
|
|
281
|
+
*/
|
|
282
|
+
async function* ndjsonLines(body) {
|
|
283
|
+
const reader = body.getReader();
|
|
284
|
+
const decoder = new TextDecoder();
|
|
285
|
+
let buffered = "";
|
|
286
|
+
try {
|
|
287
|
+
for (;;) {
|
|
288
|
+
const newline = buffered.indexOf("\n");
|
|
289
|
+
if (newline >= 0) {
|
|
290
|
+
const line = buffered.slice(0, newline).trim();
|
|
291
|
+
buffered = buffered.slice(newline + 1);
|
|
292
|
+
// Yield before looking for the next line, and before reading: this is
|
|
293
|
+
// the suspension point that makes the consumer set the pace.
|
|
294
|
+
if (line.length > 0)
|
|
295
|
+
yield parseLine(line);
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
const chunk = await reader.read();
|
|
299
|
+
if (chunk.done)
|
|
300
|
+
break;
|
|
301
|
+
buffered += decoder.decode(chunk.value, { stream: true });
|
|
302
|
+
}
|
|
303
|
+
// A final line with no trailing newline is still a line. The Core always
|
|
304
|
+
// sends one, but a stream that ended mid-write may not have.
|
|
305
|
+
const rest = (buffered + decoder.decode()).trim();
|
|
306
|
+
if (rest.length > 0)
|
|
307
|
+
yield parseLine(rest);
|
|
308
|
+
}
|
|
309
|
+
finally {
|
|
310
|
+
// Runs on an early `break` out of the caller's `for await` too, which is
|
|
311
|
+
// what tells the Core the reader walked away — without it an abandoned
|
|
312
|
+
// upload would leave the Core's handler parked in `drained` until its
|
|
313
|
+
// socket timed out, still holding the Project's write lease.
|
|
314
|
+
await reader.cancel().catch(() => { });
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* One NDJSON line, parsed **into this module's error taxonomy**.
|
|
319
|
+
*
|
|
320
|
+
* The comment above the last-line case anticipates exactly this shape: a stream
|
|
321
|
+
* that ended mid-write leaves a fragment of JSON behind, and `JSON.parse` on it
|
|
322
|
+
* throws a bare `SyntaxError`. That escapes {@link CoreFilesError} entirely, so
|
|
323
|
+
* a caller who had correctly written one `catch (e) { e instanceof
|
|
324
|
+
* CoreFilesError }` around the surface would see the one failure the module
|
|
325
|
+
* itself predicted come out as an unrelated language error, with no `code` and
|
|
326
|
+
* a message about a character position. Wrapping it here is what makes that
|
|
327
|
+
* single `catch` sufficient, which is the whole point of having a taxonomy.
|
|
328
|
+
*
|
|
329
|
+
* `read-failed` rather than `write-failed` because the failure is in reading
|
|
330
|
+
* this stream — whatever the Core was doing when it stopped, what is known here
|
|
331
|
+
* is that the progress line did not arrive whole.
|
|
332
|
+
*/
|
|
333
|
+
function parseLine(line) {
|
|
334
|
+
try {
|
|
335
|
+
return JSON.parse(line);
|
|
336
|
+
}
|
|
337
|
+
catch {
|
|
338
|
+
throw new CoreFilesStreamError("read-failed", `the Core's progress stream ended mid-line — ${truncate(line)} is not a complete NDJSON record, ` +
|
|
339
|
+
"which is what a transfer that died part-way through leaves behind");
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
/** Enough of a bad line to recognise it, never a megabyte of it in an error message. */
|
|
343
|
+
function truncate(line) {
|
|
344
|
+
return line.length <= 120 ? JSON.stringify(line) : `${JSON.stringify(line.slice(0, 120))}…`;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* A caller's source as a `ReadableStream`, **one chunk per pull**.
|
|
348
|
+
*
|
|
349
|
+
* The upload side of the same property the reader above keeps. `pull` is called
|
|
350
|
+
* by the stream only when the consumer — here, `fetch` writing to the socket —
|
|
351
|
+
* has room, so a slow network reads slowly from the caller's file rather than
|
|
352
|
+
* racing a gigabyte off the disk into a queue.
|
|
353
|
+
*/
|
|
354
|
+
function sourceStream(source) {
|
|
355
|
+
if (isReadableStream(source))
|
|
356
|
+
return source;
|
|
357
|
+
const iterator = source[Symbol.asyncIterator]();
|
|
358
|
+
const encoder = new TextEncoder();
|
|
359
|
+
return new ReadableStream({
|
|
360
|
+
async pull(controller) {
|
|
361
|
+
const next = await iterator.next();
|
|
362
|
+
if (next.done) {
|
|
363
|
+
controller.close();
|
|
364
|
+
return;
|
|
365
|
+
}
|
|
366
|
+
const value = next.value;
|
|
367
|
+
controller.enqueue(typeof value === "string" ? encoder.encode(value) : value);
|
|
368
|
+
},
|
|
369
|
+
async cancel(reason) {
|
|
370
|
+
// An aborted upload has to reach the caller's stream, or a file handle
|
|
371
|
+
// stays open for the life of the process.
|
|
372
|
+
await iterator.return?.(reason);
|
|
373
|
+
},
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
function isReadableStream(source) {
|
|
377
|
+
return typeof source.getReader === "function";
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* A manifest entry off the wire, or null when the line is not one.
|
|
381
|
+
*
|
|
382
|
+
* `path` is the only field worth refusing a line over — an entry with no path
|
|
383
|
+
* names nothing and is unusable. The rest default, because a listing that
|
|
384
|
+
* computes `sha256` only on request — which is what the Core settled on — or
|
|
385
|
+
* that gives a directory no meaningful size is still a listing.
|
|
386
|
+
*/
|
|
387
|
+
function readEntry(record) {
|
|
388
|
+
if (typeof record.path !== "string")
|
|
389
|
+
return null;
|
|
390
|
+
const kind = record.kind;
|
|
391
|
+
return {
|
|
392
|
+
path: record.path,
|
|
393
|
+
size: numberOr(record.size, 0),
|
|
394
|
+
mtime: numberOr(record.mtime, 0),
|
|
395
|
+
mode: numberOr(record.mode, 0),
|
|
396
|
+
sha256: typeof record.sha256 === "string" ? record.sha256 : null,
|
|
397
|
+
...(kind === "file" || kind === "directory" || kind === "symlink" ? { kind } : {}),
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
function numberOr(value, fallback) {
|
|
401
|
+
return typeof value === "number" && Number.isFinite(value) ? value : fallback;
|
|
402
|
+
}
|
|
403
|
+
function headerNumber(res, name) {
|
|
404
|
+
const raw = res.headers.get(name);
|
|
405
|
+
if (raw === null)
|
|
406
|
+
return null;
|
|
407
|
+
const value = Number(raw);
|
|
408
|
+
return Number.isFinite(value) ? value : null;
|
|
409
|
+
}
|
|
410
|
+
//# sourceMappingURL=core-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-files.js","sourceRoot":"","sources":["../src/core-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -643,6 +643,22 @@ export type CoreLinkEventsReplayedFrame = {
|
|
|
643
643
|
export type CoreLinkMultiConnectionCapability = {
|
|
644
644
|
version: 1;
|
|
645
645
|
};
|
|
646
|
+
/**
|
|
647
|
+
* The `files` capability, announced on `ready` (#165 F9, ADR 0024 D11).
|
|
648
|
+
*
|
|
649
|
+
* Says that this Core answers the `/v1/projects/:projectId/files` routes on its
|
|
650
|
+
* **HTTPS origin** — the same server this WebSocket is mounted on, reachable at
|
|
651
|
+
* {@link CoreConnection.httpsBaseUrl}. Nothing about the capability changes the
|
|
652
|
+
* core link itself: no frame is added, none changes meaning, and not one byte
|
|
653
|
+
* of a file transfer crosses this socket (ADR 0028).
|
|
654
|
+
*
|
|
655
|
+
* `version` is the capability's own number, independent of
|
|
656
|
+
* {@link CORE_LINK_PROTOCOL_VERSION} — it moves when the file surface changes
|
|
657
|
+
* shape, and nothing about it marks a Core stale.
|
|
658
|
+
*/
|
|
659
|
+
export type CoreLinkFilesCapability = {
|
|
660
|
+
version: 1;
|
|
661
|
+
};
|
|
646
662
|
/** Response frame — correlates to a request via `reqId`. */
|
|
647
663
|
export type CoreLinkResponseFrame = {
|
|
648
664
|
type: "ready";
|
|
@@ -660,6 +676,19 @@ export type CoreLinkResponseFrame = {
|
|
|
660
676
|
* such a Core is connected and fully usable, never "needs update".
|
|
661
677
|
*/
|
|
662
678
|
multiConnection?: CoreLinkMultiConnectionCapability;
|
|
679
|
+
/**
|
|
680
|
+
* Present on a Core that answers the `/v1/…` file routes over HTTPS
|
|
681
|
+
* (#165 F9). Absent means a Core with no file surface — every core-link
|
|
682
|
+
* frame behaves identically, because none of them was ever about files.
|
|
683
|
+
*
|
|
684
|
+
* Absence is a supported state and not a fault, on exactly the terms
|
|
685
|
+
* `multiConnection` set: a newer Panel reads the absence and does not
|
|
686
|
+
* offer the affordance, an older Panel never looks at the field, and
|
|
687
|
+
* neither is "needs update". The gate is a client-side capability check
|
|
688
|
+
* before an HTTPS call, not a withheld frame, because there is no frame
|
|
689
|
+
* to withhold.
|
|
690
|
+
*/
|
|
691
|
+
files?: CoreLinkFilesCapability;
|
|
663
692
|
} | {
|
|
664
693
|
type: "spawned";
|
|
665
694
|
reqId: string;
|
|
@@ -1087,6 +1116,23 @@ export type CoreLinkServerFrame = CoreLinkStreamFrame | CoreLinkEventFrame | Cor
|
|
|
1087
1116
|
* is slower rather than lesser, which is the rule. `clientId` is not identity
|
|
1088
1117
|
* and carries no authority a connection did not already have (D10), so there is
|
|
1089
1118
|
* nothing here for an older client to be missing.
|
|
1119
|
+
*
|
|
1120
|
+
* Issue 165 adds the optional `files` capability to the `ready` frame — and
|
|
1121
|
+
* does NOT move this version either (ADR 0024 D11), for the sixth time and, for
|
|
1122
|
+
* the first time, on a surface that is not the core link at all. The file
|
|
1123
|
+
* routes live on the Core's HTTPS origin (ADR 0028), so there is no frame here
|
|
1124
|
+
* to add, none to gate, and no existing frame whose meaning changes: the
|
|
1125
|
+
* capability is a pointer at a second protocol on the same socket's server.
|
|
1126
|
+
* That makes the "absence yields exactly today's behaviour" test trivially
|
|
1127
|
+
* true — a Core without it is a Core that has no file surface, which is every
|
|
1128
|
+
* Core that has ever shipped, and its core link is byte-for-byte what it was.
|
|
1129
|
+
* Both mismatch directions are therefore ordinary: an older Panel against a
|
|
1130
|
+
* Core that announces `files` never reads the field and drives that Core
|
|
1131
|
+
* exactly as it does today, and a newer Panel against a Core that omits it
|
|
1132
|
+
* reads the absence and withholds the affordance rather than calling a route
|
|
1133
|
+
* that would 404. Neither is "needs update", which is the whole point of D11 —
|
|
1134
|
+
* and it is why `CORE_LINK_PROTOCOL_VERSION` staying at 0.15.0 is a decision
|
|
1135
|
+
* rather than an oversight.
|
|
1090
1136
|
*/
|
|
1091
1137
|
export declare const CORE_LINK_PROTOCOL_VERSION = "0.15.0";
|
|
1092
1138
|
/**
|
|
@@ -1116,6 +1162,19 @@ export declare function coreLinkProtocolCompatible(reported: string | null | und
|
|
|
1116
1162
|
* incompatible — a null answer withholds frames, it does not fail a Core.
|
|
1117
1163
|
*/
|
|
1118
1164
|
export declare function readMultiConnectionCapability(raw: unknown): CoreLinkMultiConnectionCapability | null;
|
|
1165
|
+
/**
|
|
1166
|
+
* Read the `files` capability off a raw `ready` frame, or null (#165 F9).
|
|
1167
|
+
*
|
|
1168
|
+
* The same rule as {@link readMultiConnectionCapability}, for the same reason:
|
|
1169
|
+
* null for every shape that is not exactly `{ version: 1 }` — absent, a
|
|
1170
|
+
* non-object, or a version this build does not know. **An unrecognised future
|
|
1171
|
+
* version reads as absent on purpose.** A Core announcing `{ version: 2 }` is
|
|
1172
|
+
* telling a client built against version 1 that its file surface is a shape
|
|
1173
|
+
* this client has never seen, and the safe answer is the no-file-surface
|
|
1174
|
+
* behaviour that predates the capability, never a guess that version 2 is a
|
|
1175
|
+
* superset. Nothing here can mark a Core incompatible.
|
|
1176
|
+
*/
|
|
1177
|
+
export declare function readFilesCapability(raw: unknown): CoreLinkFilesCapability | null;
|
|
1119
1178
|
/** Parse and validate a raw WS message into a known request frame, or null. */
|
|
1120
1179
|
export declare function parseCoreLinkRequestFrame(raw: string): CoreLinkRequestFrame | null;
|
|
1121
1180
|
/** Serialize a server frame for sending over the WebSocket. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-link-frames.d.ts","sourceRoot":"","sources":["../src/core-link-frames.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core-link-frames.d.ts","sourceRoot":"","sources":["../src/core-link-frames.ts"],"names":[],"mappings":"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"}
|
package/dist/core-link-frames.js
CHANGED
|
@@ -247,6 +247,23 @@ export const SESSION_LOCK_CHANGED_EVENT_KIND = "session:lockChanged";
|
|
|
247
247
|
* is slower rather than lesser, which is the rule. `clientId` is not identity
|
|
248
248
|
* and carries no authority a connection did not already have (D10), so there is
|
|
249
249
|
* nothing here for an older client to be missing.
|
|
250
|
+
*
|
|
251
|
+
* Issue 165 adds the optional `files` capability to the `ready` frame — and
|
|
252
|
+
* does NOT move this version either (ADR 0024 D11), for the sixth time and, for
|
|
253
|
+
* the first time, on a surface that is not the core link at all. The file
|
|
254
|
+
* routes live on the Core's HTTPS origin (ADR 0028), so there is no frame here
|
|
255
|
+
* to add, none to gate, and no existing frame whose meaning changes: the
|
|
256
|
+
* capability is a pointer at a second protocol on the same socket's server.
|
|
257
|
+
* That makes the "absence yields exactly today's behaviour" test trivially
|
|
258
|
+
* true — a Core without it is a Core that has no file surface, which is every
|
|
259
|
+
* Core that has ever shipped, and its core link is byte-for-byte what it was.
|
|
260
|
+
* Both mismatch directions are therefore ordinary: an older Panel against a
|
|
261
|
+
* Core that announces `files` never reads the field and drives that Core
|
|
262
|
+
* exactly as it does today, and a newer Panel against a Core that omits it
|
|
263
|
+
* reads the absence and withholds the affordance rather than calling a route
|
|
264
|
+
* that would 404. Neither is "needs update", which is the whole point of D11 —
|
|
265
|
+
* and it is why `CORE_LINK_PROTOCOL_VERSION` staying at 0.15.0 is a decision
|
|
266
|
+
* rather than an oversight.
|
|
250
267
|
*/
|
|
251
268
|
export const CORE_LINK_PROTOCOL_VERSION = "0.15.0";
|
|
252
269
|
/**
|
|
@@ -289,6 +306,24 @@ export function readMultiConnectionCapability(raw) {
|
|
|
289
306
|
const version = raw.version;
|
|
290
307
|
return version === 1 ? { version: 1 } : null;
|
|
291
308
|
}
|
|
309
|
+
/**
|
|
310
|
+
* Read the `files` capability off a raw `ready` frame, or null (#165 F9).
|
|
311
|
+
*
|
|
312
|
+
* The same rule as {@link readMultiConnectionCapability}, for the same reason:
|
|
313
|
+
* null for every shape that is not exactly `{ version: 1 }` — absent, a
|
|
314
|
+
* non-object, or a version this build does not know. **An unrecognised future
|
|
315
|
+
* version reads as absent on purpose.** A Core announcing `{ version: 2 }` is
|
|
316
|
+
* telling a client built against version 1 that its file surface is a shape
|
|
317
|
+
* this client has never seen, and the safe answer is the no-file-surface
|
|
318
|
+
* behaviour that predates the capability, never a guess that version 2 is a
|
|
319
|
+
* superset. Nothing here can mark a Core incompatible.
|
|
320
|
+
*/
|
|
321
|
+
export function readFilesCapability(raw) {
|
|
322
|
+
if (!raw || typeof raw !== "object")
|
|
323
|
+
return null;
|
|
324
|
+
const version = raw.version;
|
|
325
|
+
return version === 1 ? { version: 1 } : null;
|
|
326
|
+
}
|
|
292
327
|
function parseMajorMinor(version) {
|
|
293
328
|
if (typeof version !== "string")
|
|
294
329
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-link-frames.js","sourceRoot":"","sources":["../src/core-link-frames.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,iBAAiB;AACjB,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,0EAA0E;AAC1E,6EAA6E;AAC7E,2EAA2E;AAC3E,yCAAyC;AACzC,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,gDAAgD;AAChD,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,4EAA4E;AAC5E,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,gEAAgE;AAChE,2EAA2E;AAC3E,kEAAkE;AAClE,0EAA0E;AAC1E,oEAAoE;AACpE,EAAE;AACF,8EAA8E;AAC9E,oDAAoD;AA0TpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,4BAA4B,CAAC;AAgC9E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,uBAAuB,CAAC;AAgDzE,+EAA+E;AAC/E,EAAE;AACF,qEAAqE;AACrE,8EAA8E;AAC9E,2EAA2E;AAC3E,qEAAqE;AACrE,4EAA4E;AAC5E,+EAA+E;AAC/E,yBAAyB;AACzB,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,+EAA+E;AAC/E,sEAAsE;AACtE,gDAAgD;AAChD,EAAE;AACF,4EAA4E;AAC5E,kEAAkE;AAClE,iFAAiF;AACjF,gFAAgF;AAChF,0DAA0D;AAC1D,EAAE;AACF,+EAA+E;AAC/E,2EAA2E;AAC3E,EAAE;AACF,+EAA+E;AAC/E,iFAAiF;AACjF,oEAAoE;AAEpE;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,gBAAgB,CAAC;AA8E1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"core-link-frames.js","sourceRoot":"","sources":["../src/core-link-frames.ts"],"names":[],"mappings":"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"}
|