@elaraai/e3-api-client 1.0.84 → 1.0.86

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 (65) hide show
  1. package/README.md +25 -3
  2. package/dist/src/datasets-transfer.spec.js +40 -5
  3. package/dist/src/datasets-transfer.spec.js.map +1 -1
  4. package/dist/src/datasets.d.ts +83 -1
  5. package/dist/src/datasets.d.ts.map +1 -1
  6. package/dist/src/datasets.js +213 -37
  7. package/dist/src/datasets.js.map +1 -1
  8. package/dist/src/datasets.spec.js +273 -13
  9. package/dist/src/datasets.spec.js.map +1 -1
  10. package/dist/src/executions.d.ts +50 -15
  11. package/dist/src/executions.d.ts.map +1 -1
  12. package/dist/src/executions.js +57 -16
  13. package/dist/src/executions.js.map +1 -1
  14. package/dist/src/executions.spec.d.ts +6 -0
  15. package/dist/src/executions.spec.d.ts.map +1 -0
  16. package/dist/src/executions.spec.js +81 -0
  17. package/dist/src/executions.spec.js.map +1 -0
  18. package/dist/src/functions.d.ts +39 -8
  19. package/dist/src/functions.d.ts.map +1 -1
  20. package/dist/src/functions.js +39 -8
  21. package/dist/src/functions.js.map +1 -1
  22. package/dist/src/http.d.ts +65 -7
  23. package/dist/src/http.d.ts.map +1 -1
  24. package/dist/src/http.js +54 -14
  25. package/dist/src/http.js.map +1 -1
  26. package/dist/src/http.spec.js +106 -5
  27. package/dist/src/http.spec.js.map +1 -1
  28. package/dist/src/index.d.ts +7 -7
  29. package/dist/src/index.d.ts.map +1 -1
  30. package/dist/src/index.js +5 -5
  31. package/dist/src/index.js.map +1 -1
  32. package/dist/src/packages.d.ts.map +1 -1
  33. package/dist/src/packages.js +3 -3
  34. package/dist/src/packages.js.map +1 -1
  35. package/dist/src/packages.spec.d.ts +6 -0
  36. package/dist/src/packages.spec.d.ts.map +1 -0
  37. package/dist/src/packages.spec.js +118 -0
  38. package/dist/src/packages.spec.js.map +1 -0
  39. package/dist/src/platform.d.ts +103 -9
  40. package/dist/src/platform.d.ts.map +1 -1
  41. package/dist/src/platform.js +335 -315
  42. package/dist/src/platform.js.map +1 -1
  43. package/dist/src/platform.spec.d.ts +6 -0
  44. package/dist/src/platform.spec.d.ts.map +1 -0
  45. package/dist/src/platform.spec.js +85 -0
  46. package/dist/src/platform.spec.js.map +1 -0
  47. package/dist/src/records.spec.js +15 -5
  48. package/dist/src/records.spec.js.map +1 -1
  49. package/dist/src/repository.d.ts +8 -1
  50. package/dist/src/repository.d.ts.map +1 -1
  51. package/dist/src/repository.js +8 -1
  52. package/dist/src/repository.js.map +1 -1
  53. package/dist/src/tasks.d.ts +11 -7
  54. package/dist/src/tasks.d.ts.map +1 -1
  55. package/dist/src/tasks.js +16 -8
  56. package/dist/src/tasks.js.map +1 -1
  57. package/dist/src/types.d.ts +63 -5
  58. package/dist/src/types.d.ts.map +1 -1
  59. package/dist/src/types.js +7 -5
  60. package/dist/src/types.js.map +1 -1
  61. package/dist/src/workspaces.d.ts +16 -2
  62. package/dist/src/workspaces.d.ts.map +1 -1
  63. package/dist/src/workspaces.js +11 -4
  64. package/dist/src/workspaces.js.map +1 -1
  65. package/package.json +4 -4
@@ -2,10 +2,10 @@
2
2
  * Copyright (c) 2025 Elara AI Pty Ltd
3
3
  * Licensed under BSL 1.1. See LICENSE for details.
4
4
  */
5
- import { ArrayType, NullType, StringType, decodeBeast2For, encodeBeast2For, spliceBeast2Segments } from '@elaraai/east';
5
+ import { ArrayType, IntegerType, NullType, StringType, decodeBeast2For, encodeBeast2For, equalFor, printFor, spliceBeast2Segments } from '@elaraai/east';
6
6
  import { BEAST2_CONTENT_TYPE, E3_RELEASE, TRANSFER_PROTOCOL_VERSION, decodeCollectionManifest, transferPartCount, transferPartRange } from '@elaraai/e3-types';
7
7
  import { computeHash } from './util.js';
8
- import { ApiError, AuthError, DatasetHashMismatchError, fetchWithAuth, fetchWithRetry, parseErrorBody, get, } from './http.js';
8
+ import { ApiError, AuthError, DatasetHashMismatchError, fetchWithAuth, fetchWithRetry, parseErrorBody, get, requestFetch, } from './http.js';
9
9
  import { ResponseType, DatasetStatusDetailType, ListEntryType, TransferUploadRequestType, TransferUploadResponseType, TransferPartResponseType, TransferDoneResponseType, } from './types.js';
10
10
  function datasetEndpoint(repo, workspace, path) {
11
11
  let endpoint = `/repos/${encodeURIComponent(repo)}/workspaces/${encodeURIComponent(workspace)}/datasets`;
@@ -56,32 +56,51 @@ export async function datasetListAt(url, repo, workspace, path, options) {
56
56
  * carries more than one segment, so a server that cannot stream a response
57
57
  * still serves a collection of any size.
58
58
  *
59
+ * A dataset that moves while it is read, so that the old value's objects can
60
+ * no longer be fetched, is read again from its new content, up to 3 times.
61
+ * The hash returned is the content the bytes are.
62
+ *
59
63
  * @param url - Base URL of the e3 API server
60
64
  * @param repo - Repository name
61
65
  * @param workspace - Workspace name
62
66
  * @param path - Path to the dataset (e.g., ['inputs', 'config'])
63
67
  * @param options - Request options including auth token
64
- * @returns Raw BEAST2 bytes
68
+ * @returns Raw BEAST2 bytes, the content hash they are, and their size
69
+ * @throws {DatasetHashMismatchError} When the dataset is still moving after
70
+ * the restarts; its `currentHash` names the content it holds now
65
71
  * @throws {ApiError} On application-level errors
66
72
  * @throws {AuthError} On 401 Unauthorized
67
73
  */
68
74
  export async function datasetGet(url, repo, workspace, path, options) {
69
- const { hash, chunks } = await datasetGetStream(url, repo, workspace, path, options);
70
- const parts = [];
71
- let size = 0;
72
- for await (const chunk of chunks) {
73
- parts.push(chunk);
74
- size += chunk.length;
75
- }
76
- if (parts.length === 1)
77
- return { data: parts[0], hash, size };
78
- const data = new Uint8Array(size);
79
- let at = 0;
80
- for (const part of parts) {
81
- data.set(part, at);
82
- at += part.length;
83
- }
84
- return { data, hash, size };
75
+ const restarts = { left: MOVED_RESTARTS };
76
+ for (;;) {
77
+ const { hash, chunks } = await openDataset(url, repo, workspace, path, options, restarts);
78
+ const parts = [];
79
+ let size = 0;
80
+ try {
81
+ for await (const chunk of chunks) {
82
+ parts.push(chunk);
83
+ size += chunk.length;
84
+ }
85
+ }
86
+ catch (err) {
87
+ // The chunks raise a move once they have given bytes out; this read
88
+ // holds those alone, so it starts over from the new content.
89
+ if (!(err instanceof DatasetHashMismatchError) || restarts.left === 0)
90
+ throw err;
91
+ restarts.left--;
92
+ continue;
93
+ }
94
+ if (parts.length === 1)
95
+ return { data: parts[0], hash, size };
96
+ const data = new Uint8Array(size);
97
+ let at = 0;
98
+ for (const part of parts) {
99
+ data.set(part, at);
100
+ at += part.length;
101
+ }
102
+ return { data, hash, size };
103
+ }
85
104
  }
86
105
  /**
87
106
  * Get a dataset value as raw BEAST2 bytes, a chunk at a time.
@@ -95,16 +114,66 @@ export async function datasetGet(url, repo, workspace, path, options) {
95
114
  * and a collection's manifest read, before this returns, so a refusal throws
96
115
  * here rather than from the chunks.
97
116
  *
117
+ * The chunks are always the content of the hash returned. A read that fails
118
+ * asks for the dataset again, and a dataset that has moved (a run wrote a new
119
+ * value, and the old one's objects can no longer be fetched) is treated by
120
+ * where the read had got to:
121
+ * - before this returns, the read starts over from the new content, up to 3
122
+ * times;
123
+ * - once it has returned, the chunks throw a {@link DatasetHashMismatchError}
124
+ * naming the content the dataset holds now, as a pinned page does, and the
125
+ * caller starts over.
126
+ *
127
+ * A dataset that has not moved raises the read's own error.
128
+ *
98
129
  * @param url - Base URL of the e3 API server
99
130
  * @param repo - Repository name
100
131
  * @param workspace - Workspace name
101
132
  * @param path - Path to the dataset (e.g., ['inputs', 'config'])
102
133
  * @param options - Request options including auth token
103
134
  * @returns The value's content hash, as the server names it, and its bytes in order
135
+ * @throws {DatasetHashMismatchError} When the dataset is still moving after
136
+ * the restarts, and from the chunks when it moves once this has returned;
137
+ * its `currentHash` names the content the dataset holds now
104
138
  * @throws {ApiError} On application-level errors
105
139
  * @throws {AuthError} On 401 Unauthorized
106
140
  */
107
141
  export async function datasetGetStream(url, repo, workspace, path, options) {
142
+ return openDataset(url, repo, workspace, path, options, { left: MOVED_RESTARTS });
143
+ }
144
+ /** How many times a read of a dataset starts over when the dataset moves
145
+ * while it is read. */
146
+ const MOVED_RESTARTS = 3;
147
+ /**
148
+ * Open a dataset's value for reading, as {@link datasetGetStream} does. A read
149
+ * that meets a moved dataset before this returns starts over, taking one of
150
+ * `restarts`, which a caller that starts over itself shares.
151
+ */
152
+ async function openDataset(url, repo, workspace, path, options, restarts) {
153
+ let answer = await requestDataset(url, repo, workspace, path, options);
154
+ for (;;) {
155
+ const hash = answer.headers.get('X-Content-SHA256') ?? '';
156
+ const moved = () => movedFrom(url, repo, workspace, path, hash, options);
157
+ try {
158
+ const opened = await answerChunks(url, repo, answer, hash, options);
159
+ return { hash: opened.hash, chunks: raiseMoves(opened.chunks, hash, moved) };
160
+ }
161
+ catch (err) {
162
+ const current = await moved();
163
+ if (current === null)
164
+ throw err;
165
+ if (restarts.left === 0) {
166
+ await discard(current);
167
+ throw movedError(hash, current);
168
+ }
169
+ restarts.left--;
170
+ answer = current;
171
+ }
172
+ }
173
+ }
174
+ /** Ask for a dataset's value as a read by segments does: answered with a
175
+ * collection's manifest, a large value's URL, or any other value's bytes. */
176
+ async function requestDataset(url, repo, workspace, path, options) {
108
177
  const pathStr = path.map(p => encodeURIComponent(p.value)).join('/');
109
178
  const response = await fetchWithAuth(`${url}/api/repos/${encodeURIComponent(repo)}/workspaces/${encodeURIComponent(workspace)}/datasets/${pathStr}?segments=true`, {
110
179
  method: 'GET',
@@ -118,16 +187,23 @@ export async function datasetGetStream(url, repo, workspace, path, options) {
118
187
  }
119
188
  throw error;
120
189
  }
190
+ return response;
191
+ }
192
+ /**
193
+ * The bytes a dataset's answer names, and the content hash they are: a
194
+ * collection's segments, read through the objects route and spliced; a large
195
+ * value's download; or the answer's own body. A collection's manifest, and a
196
+ * large value's download, are fetched before this returns.
197
+ */
198
+ async function answerChunks(url, repo, answer, hash, options) {
121
199
  // A JSON answer names a collection's manifest, or the URL a large value is
122
200
  // downloaded from.
123
- const hash = response.headers.get('X-Content-SHA256') ?? '';
124
- const contentType = response.headers.get('Content-Type') ?? '';
125
- if (contentType.includes('application/json')) {
126
- const body = await response.json();
201
+ if ((answer.headers.get('Content-Type') ?? '').includes('application/json')) {
202
+ const body = await answer.json();
127
203
  if ('manifest' in body) {
128
- return { hash, chunks: await collectionChunks(url, repo, body.manifest, options) };
204
+ return { hash, chunks: await collectionGetStream(url, repo, body.manifest, options) };
129
205
  }
130
- const redirectResponse = await fetch(body.url, {
206
+ const redirectResponse = await requestFetch(options)(body.url, {
131
207
  method: 'GET',
132
208
  headers: { 'Accept': BEAST2_CONTENT_TYPE },
133
209
  });
@@ -136,7 +212,51 @@ export async function datasetGetStream(url, repo, workspace, path, options) {
136
212
  }
137
213
  return { hash: redirectResponse.headers.get('X-Content-SHA256') ?? hash, chunks: bodyChunks(redirectResponse) };
138
214
  }
139
- return { hash, chunks: bodyChunks(response) };
215
+ return { hash, chunks: bodyChunks(answer) };
216
+ }
217
+ /**
218
+ * Ask for a dataset again after a read of it failed.
219
+ *
220
+ * @returns The new answer when the dataset names content other than `hash`.
221
+ * `null` when it does not, or when it cannot be asked for: the read's own
222
+ * error is the one to raise then.
223
+ */
224
+ async function movedFrom(url, repo, workspace, path, hash, options) {
225
+ let answer;
226
+ try {
227
+ answer = await requestDataset(url, repo, workspace, path, options);
228
+ }
229
+ catch {
230
+ return null;
231
+ }
232
+ if ((answer.headers.get('X-Content-SHA256') ?? '') !== hash)
233
+ return answer;
234
+ await discard(answer);
235
+ return null;
236
+ }
237
+ /** A read's chunks, a failure among them raised as a move when `moved` finds
238
+ * the dataset holds other content than `hash` now. */
239
+ async function* raiseMoves(chunks, hash, moved) {
240
+ try {
241
+ yield* chunks;
242
+ }
243
+ catch (err) {
244
+ const current = await moved();
245
+ if (current === null)
246
+ throw err;
247
+ await discard(current);
248
+ throw movedError(hash, current);
249
+ }
250
+ }
251
+ /** The error a read raises when the dataset it reads has moved on from `hash`
252
+ * to the content its new answer names. */
253
+ function movedError(hash, current) {
254
+ const now = current.headers.get('X-Content-SHA256');
255
+ return new DatasetHashMismatchError(`the dataset moved from ${hash} to ${now ?? 'content it names no hash of'} while it was read`, now);
256
+ }
257
+ /** Release an answer whose body is not read. */
258
+ async function discard(answer) {
259
+ await answer.body?.cancel().catch(() => { });
140
260
  }
141
261
  /** A response's body as it arrives; the rest is cancelled when the reader stops early. */
142
262
  async function* bodyChunks(response) {
@@ -163,14 +283,42 @@ async function* bodyChunks(response) {
163
283
  }
164
284
  /** How many of a collection's objects are fetched at a time. */
165
285
  const SEGMENT_CONCURRENCY = 8;
286
+ const integerEqual = equalFor(IntegerType);
287
+ const printInteger = printFor(IntegerType);
166
288
  /**
167
- * A collection's value, a chunk at a time: the objects its manifest names,
168
- * fetched a few at a time ahead of a splice that takes them in order, into the
169
- * blob the dataset route would stream. The manifest is read before this
170
- * returns; the segments as the chunks are taken.
289
+ * Get a stored collection by its manifest's hash, as raw BEAST2 bytes, a chunk
290
+ * at a time: what {@link datasetGetStream} streams a collection dataset as, of
291
+ * a value a caller names by hash — a record's state at a past commit, say.
292
+ *
293
+ * @remarks
294
+ * The objects the manifest names are fetched through the objects route a few
295
+ * at a time, each checked against its hash ({@link objectGet}), ahead of a
296
+ * splice that takes them in order into the blob the dataset route would
297
+ * stream. The manifest is read before this returns, so a refusal throws here;
298
+ * the segments are read as the chunks are taken. A value that is not a
299
+ * collection is one object: read it with {@link objectGet}. The caller tells
300
+ * the two apart by the value's type.
301
+ *
302
+ * A manifest above level 0, whose entries name other manifests rather than
303
+ * segments, is refused before a segment is read. Only a newer e3 writes one,
304
+ * and splicing its child manifests as segments would hand out bytes that are
305
+ * no value.
306
+ *
307
+ * @param url - Base URL of the e3 API server
308
+ * @param repo - Repository name
309
+ * @param manifestHash - The hash of the collection's segment manifest
310
+ * @param options - Request options including auth token
311
+ * @returns The collection's bytes in order
312
+ * @throws {ApiError} On application-level errors
313
+ * @throws {AuthError} On 401 Unauthorized
314
+ * @throws {Error} When the manifest is above level 0
171
315
  */
172
- async function collectionChunks(url, repo, manifestHash, options) {
316
+ export async function collectionGetStream(url, repo, manifestHash, options) {
173
317
  const manifest = decodeCollectionManifest(await objectGet(url, repo, manifestHash, options));
318
+ if (!integerEqual(manifest.level, 0n)) {
319
+ throw new Error(`the collection ${manifestHash} is a level ${printInteger(manifest.level)} manifest, whose entries name manifests, not segments: ` +
320
+ 'a newer e3 wrote it, which this client does not read — update @elaraai/e3-api-client');
321
+ }
174
322
  return (async function* () {
175
323
  const pending = [];
176
324
  let next = 0;
@@ -195,11 +343,25 @@ async function collectionChunks(url, repo, manifestHash, options) {
195
343
  })();
196
344
  }
197
345
  /**
198
- * An object's bytes, read through the objects route and checked against the
199
- * hash they were asked by. A large object is answered with a URL, fetched
200
- * without the API's auth: it may be presigned.
346
+ * Get an object by its hash: its bytes, read through the objects route and
347
+ * checked against the hash they were asked by.
348
+ *
349
+ * @remarks
350
+ * A large object is answered with a URL, which is fetched without the API's
351
+ * auth, since it may be presigned. A stored collection is many objects: read
352
+ * it with {@link collectionGetStream}.
353
+ *
354
+ * @param url - Base URL of the e3 API server
355
+ * @param repo - Repository name
356
+ * @param hash - The object's hash
357
+ * @param options - Request options including auth token
358
+ * @returns The object's bytes
359
+ * @throws {ApiError} On application-level errors, such as an object the
360
+ * repository does not hold
361
+ * @throws {AuthError} On 401 Unauthorized
362
+ * @throws {Error} When the bytes that arrive do not hash to `hash`
201
363
  */
202
- async function objectGet(url, repo, hash, options) {
364
+ export async function objectGet(url, repo, hash, options) {
203
365
  const response = await fetchWithAuth(`${url}/api/repos/${encodeURIComponent(repo)}/objects/${hash}`, {
204
366
  method: 'GET',
205
367
  headers: { 'Accept': BEAST2_CONTENT_TYPE },
@@ -213,7 +375,7 @@ async function objectGet(url, repo, hash, options) {
213
375
  const downloaded = await fetchWithRetry(download, {
214
376
  method: 'GET',
215
377
  headers: { 'Accept': BEAST2_CONTENT_TYPE },
216
- }, { idempotent: true, retry: options.retry });
378
+ }, { idempotent: true, retry: options.retry, fetch: options.fetch });
217
379
  if (!downloaded.ok) {
218
380
  throw new Error(`Failed to get object ${hash} (download): ${downloaded.status} ${downloaded.statusText}`);
219
381
  }
@@ -281,6 +443,20 @@ export async function datasetGetPage(url, repo, workspace, path, window, options
281
443
  }
282
444
  throw error;
283
445
  }
446
+ return parsePage(response);
447
+ }
448
+ /**
449
+ * Read a page answer: its bytes, and its window as its `X-*` headers place it.
450
+ *
451
+ * @remarks
452
+ * What {@link datasetGetPage} reads its answer with, and what a client of a
453
+ * host's own route reads a page of a value it serves with, as e3-api-server's
454
+ * `getValuePage` answers it.
455
+ *
456
+ * @param response - A successful page answer
457
+ * @returns The page
458
+ */
459
+ export async function parsePage(response) {
284
460
  const buffer = await response.arrayBuffer();
285
461
  const intHeader = (name) => {
286
462
  const value = response.headers.get(name);
@@ -518,7 +694,7 @@ async function putRange(uploadUrl, headers, source, start, end, options, failure
518
694
  },
519
695
  ...{ body, ...(streaming ? { duplex: 'half' } : {}) },
520
696
  };
521
- }, { idempotent: true, retry: options.retry });
697
+ }, { idempotent: true, retry: options.retry, fetch: options.fetch });
522
698
  if (!res.ok) {
523
699
  throw new Error(`${failure}: ${res.status} ${res.statusText}`);
524
700
  }
@@ -1 +1 @@
1
- {"version":3,"file":"datasets.js","sourceRoot":"","sources":["../../src/datasets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"datasets.js","sourceRoot":"","sources":["../../src/datasets.ts"],"names":[],"mappings":"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"}