@elaraai/e3-api-client 1.0.79 → 1.0.81
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 +19 -9
- package/dist/src/datasets-transfer.spec.js +21 -33
- package/dist/src/datasets-transfer.spec.js.map +1 -1
- package/dist/src/datasets.d.ts +77 -9
- package/dist/src/datasets.d.ts.map +1 -1
- package/dist/src/datasets.js +190 -34
- package/dist/src/datasets.js.map +1 -1
- package/dist/src/datasets.spec.js +131 -4
- package/dist/src/datasets.spec.js.map +1 -1
- package/dist/src/executions.d.ts +17 -6
- package/dist/src/executions.d.ts.map +1 -1
- package/dist/src/executions.js +21 -8
- package/dist/src/executions.js.map +1 -1
- package/dist/src/http.d.ts +19 -5
- package/dist/src/http.d.ts.map +1 -1
- package/dist/src/http.js +25 -14
- package/dist/src/http.js.map +1 -1
- package/dist/src/index.d.ts +8 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -9
- package/dist/src/index.js.map +1 -1
- package/dist/src/packages.d.ts +11 -1
- package/dist/src/packages.d.ts.map +1 -1
- package/dist/src/packages.js +16 -6
- package/dist/src/packages.js.map +1 -1
- package/dist/src/platform.d.ts +231 -34
- package/dist/src/platform.d.ts.map +1 -1
- package/dist/src/platform.js +2 -6
- package/dist/src/platform.js.map +1 -1
- package/dist/src/records.d.ts.map +1 -1
- package/dist/src/records.js +1 -1
- package/dist/src/records.js.map +1 -1
- package/dist/src/records.spec.d.ts +6 -0
- package/dist/src/records.spec.d.ts.map +1 -0
- package/dist/src/records.spec.js +73 -0
- package/dist/src/records.spec.js.map +1 -0
- package/dist/src/repository.d.ts +14 -0
- package/dist/src/repository.d.ts.map +1 -1
- package/dist/src/repository.js +16 -0
- package/dist/src/repository.js.map +1 -1
- package/dist/src/types.d.ts +534 -17
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +13 -3
- package/dist/src/types.js.map +1 -1
- package/dist/src/util.d.ts +9 -7
- package/dist/src/util.d.ts.map +1 -1
- package/dist/src/util.js +14 -8
- package/dist/src/util.js.map +1 -1
- package/dist/src/util.spec.d.ts +6 -0
- package/dist/src/util.spec.d.ts.map +1 -0
- package/dist/src/util.spec.js +34 -0
- package/dist/src/util.spec.js.map +1 -0
- package/dist/src/workspaces.d.ts +51 -4
- package/dist/src/workspaces.d.ts.map +1 -1
- package/dist/src/workspaces.js +57 -7
- package/dist/src/workspaces.js.map +1 -1
- package/package.json +5 -5
package/dist/src/datasets.js
CHANGED
|
@@ -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 } from '@elaraai/east';
|
|
6
|
-
import { BEAST2_CONTENT_TYPE, TRANSFER_PROTOCOL_VERSION, transferPartCount, transferPartRange } from '@elaraai/e3-types';
|
|
5
|
+
import { ArrayType, NullType, StringType, decodeBeast2For, encodeBeast2For, spliceBeast2Segments } from '@elaraai/east';
|
|
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, fetchWithAuth, fetchWithRetry, parseErrorBody, get } from './http.js';
|
|
8
|
+
import { ApiError, AuthError, DatasetHashMismatchError, fetchWithAuth, fetchWithRetry, parseErrorBody, get, } 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`;
|
|
@@ -51,16 +51,62 @@ export async function datasetListAt(url, repo, workspace, path, options) {
|
|
|
51
51
|
* The returned bytes are raw BEAST2 encoded data from the object store.
|
|
52
52
|
* Use decodeBeast2 or decodeBeast2For to decode with the appropriate type.
|
|
53
53
|
*
|
|
54
|
+
* The value is read through {@link datasetGetStream} and joined here, so a
|
|
55
|
+
* collection arrives as the segment objects its manifest names: no response
|
|
56
|
+
* carries more than one segment, so a server that cannot stream a response
|
|
57
|
+
* still serves a collection of any size.
|
|
58
|
+
*
|
|
54
59
|
* @param url - Base URL of the e3 API server
|
|
55
60
|
* @param repo - Repository name
|
|
56
61
|
* @param workspace - Workspace name
|
|
57
62
|
* @param path - Path to the dataset (e.g., ['inputs', 'config'])
|
|
58
63
|
* @param options - Request options including auth token
|
|
59
64
|
* @returns Raw BEAST2 bytes
|
|
65
|
+
* @throws {ApiError} On application-level errors
|
|
66
|
+
* @throws {AuthError} On 401 Unauthorized
|
|
60
67
|
*/
|
|
61
68
|
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 };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get a dataset value as raw BEAST2 bytes, a chunk at a time.
|
|
88
|
+
*
|
|
89
|
+
* @remarks
|
|
90
|
+
* For a caller that writes the value somewhere rather than holding it. A
|
|
91
|
+
* collection arrives as the segment objects its manifest names, fetched a few
|
|
92
|
+
* at a time ahead of the splice that takes them in order, each checked against
|
|
93
|
+
* its hash: the caller holds the segments in flight, never the value. Any
|
|
94
|
+
* other value arrives as the body the server sends. The dataset is asked for,
|
|
95
|
+
* and a collection's manifest read, before this returns, so a refusal throws
|
|
96
|
+
* here rather than from the chunks.
|
|
97
|
+
*
|
|
98
|
+
* @param url - Base URL of the e3 API server
|
|
99
|
+
* @param repo - Repository name
|
|
100
|
+
* @param workspace - Workspace name
|
|
101
|
+
* @param path - Path to the dataset (e.g., ['inputs', 'config'])
|
|
102
|
+
* @param options - Request options including auth token
|
|
103
|
+
* @returns The value's content hash, as the server names it, and its bytes in order
|
|
104
|
+
* @throws {ApiError} On application-level errors
|
|
105
|
+
* @throws {AuthError} On 401 Unauthorized
|
|
106
|
+
*/
|
|
107
|
+
export async function datasetGetStream(url, repo, workspace, path, options) {
|
|
62
108
|
const pathStr = path.map(p => encodeURIComponent(p.value)).join('/');
|
|
63
|
-
const response = await fetchWithAuth(`${url}/api/repos/${encodeURIComponent(repo)}/workspaces/${encodeURIComponent(workspace)}/datasets/${pathStr}`, {
|
|
109
|
+
const response = await fetchWithAuth(`${url}/api/repos/${encodeURIComponent(repo)}/workspaces/${encodeURIComponent(workspace)}/datasets/${pathStr}?segments=true`, {
|
|
64
110
|
method: 'GET',
|
|
65
111
|
headers: { 'Accept': BEAST2_CONTENT_TYPE },
|
|
66
112
|
}, options);
|
|
@@ -72,10 +118,15 @@ export async function datasetGet(url, repo, workspace, path, options) {
|
|
|
72
118
|
}
|
|
73
119
|
throw error;
|
|
74
120
|
}
|
|
75
|
-
//
|
|
121
|
+
// A JSON answer names a collection's manifest, or the URL a large value is
|
|
122
|
+
// downloaded from.
|
|
123
|
+
const hash = response.headers.get('X-Content-SHA256') ?? '';
|
|
76
124
|
const contentType = response.headers.get('Content-Type') ?? '';
|
|
77
125
|
if (contentType.includes('application/json')) {
|
|
78
126
|
const body = await response.json();
|
|
127
|
+
if ('manifest' in body) {
|
|
128
|
+
return { hash, chunks: await collectionChunks(url, repo, body.manifest, options) };
|
|
129
|
+
}
|
|
79
130
|
const redirectResponse = await fetch(body.url, {
|
|
80
131
|
method: 'GET',
|
|
81
132
|
headers: { 'Accept': BEAST2_CONTENT_TYPE },
|
|
@@ -83,17 +134,99 @@ export async function datasetGet(url, repo, workspace, path, options) {
|
|
|
83
134
|
if (!redirectResponse.ok) {
|
|
84
135
|
throw new Error(`Failed to get dataset (download): ${redirectResponse.status} ${redirectResponse.statusText}`);
|
|
85
136
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
137
|
+
return { hash: redirectResponse.headers.get('X-Content-SHA256') ?? hash, chunks: bodyChunks(redirectResponse) };
|
|
138
|
+
}
|
|
139
|
+
return { hash, chunks: bodyChunks(response) };
|
|
140
|
+
}
|
|
141
|
+
/** A response's body as it arrives; the rest is cancelled when the reader stops early. */
|
|
142
|
+
async function* bodyChunks(response) {
|
|
143
|
+
if (response.body === null) {
|
|
144
|
+
yield new Uint8Array(await response.arrayBuffer());
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const reader = response.body.getReader();
|
|
148
|
+
let ended = false;
|
|
149
|
+
try {
|
|
150
|
+
for (;;) {
|
|
151
|
+
const next = await reader.read();
|
|
152
|
+
if (next.done) {
|
|
153
|
+
ended = true;
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
yield next.value;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
finally {
|
|
160
|
+
if (!ended)
|
|
161
|
+
await reader.cancel();
|
|
91
162
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
163
|
+
}
|
|
164
|
+
/** How many of a collection's objects are fetched at a time. */
|
|
165
|
+
const SEGMENT_CONCURRENCY = 8;
|
|
166
|
+
/**
|
|
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.
|
|
171
|
+
*/
|
|
172
|
+
async function collectionChunks(url, repo, manifestHash, options) {
|
|
173
|
+
const manifest = decodeCollectionManifest(await objectGet(url, repo, manifestHash, options));
|
|
174
|
+
return (async function* () {
|
|
175
|
+
const pending = [];
|
|
176
|
+
let next = 0;
|
|
177
|
+
const fill = () => {
|
|
178
|
+
for (; next < manifest.entries.length && pending.length < SEGMENT_CONCURRENCY; next++) {
|
|
179
|
+
const fetched = objectGet(url, repo, manifest.entries[next].hash, options);
|
|
180
|
+
// A failure is raised when the splice reaches it, and must not be
|
|
181
|
+
// reported unhandled before then.
|
|
182
|
+
fetched.catch(() => { });
|
|
183
|
+
pending.push(fetched);
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
fill();
|
|
187
|
+
const head = await objectGet(url, repo, manifest.header, options);
|
|
188
|
+
yield* spliceBeast2Segments(head, (async function* () {
|
|
189
|
+
while (pending.length > 0) {
|
|
190
|
+
const segment = pending.shift();
|
|
191
|
+
fill();
|
|
192
|
+
yield await segment;
|
|
193
|
+
}
|
|
194
|
+
})());
|
|
195
|
+
})();
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
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.
|
|
201
|
+
*/
|
|
202
|
+
async function objectGet(url, repo, hash, options) {
|
|
203
|
+
const response = await fetchWithAuth(`${url}/api/repos/${encodeURIComponent(repo)}/objects/${hash}`, {
|
|
204
|
+
method: 'GET',
|
|
205
|
+
headers: { 'Accept': BEAST2_CONTENT_TYPE },
|
|
206
|
+
}, options);
|
|
207
|
+
if (!response.ok) {
|
|
208
|
+
throw parseErrorBody(await response.text(), `http_${response.status}`);
|
|
209
|
+
}
|
|
210
|
+
let bytes;
|
|
211
|
+
if ((response.headers.get('Content-Type') ?? '').includes('application/json')) {
|
|
212
|
+
const { url: download } = await response.json();
|
|
213
|
+
const downloaded = await fetchWithRetry(download, {
|
|
214
|
+
method: 'GET',
|
|
215
|
+
headers: { 'Accept': BEAST2_CONTENT_TYPE },
|
|
216
|
+
}, { idempotent: true, retry: options.retry });
|
|
217
|
+
if (!downloaded.ok) {
|
|
218
|
+
throw new Error(`Failed to get object ${hash} (download): ${downloaded.status} ${downloaded.statusText}`);
|
|
219
|
+
}
|
|
220
|
+
bytes = new Uint8Array(await downloaded.arrayBuffer());
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
bytes = new Uint8Array(await response.arrayBuffer());
|
|
224
|
+
}
|
|
225
|
+
const received = await computeHash(bytes);
|
|
226
|
+
if (received !== hash) {
|
|
227
|
+
throw new Error(`object ${hash} arrived as ${received}: the download was cut short or corrupted`);
|
|
228
|
+
}
|
|
229
|
+
return bytes;
|
|
97
230
|
}
|
|
98
231
|
/**
|
|
99
232
|
* Get one window of a collection (Array/Set/Dict) dataset.
|
|
@@ -110,6 +243,8 @@ export async function datasetGet(url, repo, workspace, path, options) {
|
|
|
110
243
|
* @param window - The window to read
|
|
111
244
|
* @param options - Request options including auth token
|
|
112
245
|
* @returns The page bytes plus totals and window placement
|
|
246
|
+
* @throws {DatasetHashMismatchError} When the window is pinned to a hash the
|
|
247
|
+
* dataset no longer holds; its `currentHash` names the one it does
|
|
113
248
|
* @throws {ApiError} On application-level errors (non-collection dataset, bad window)
|
|
114
249
|
* @throws {AuthError} On 401 Unauthorized
|
|
115
250
|
*/
|
|
@@ -126,6 +261,11 @@ export async function datasetGetPage(url, repo, workspace, path, window, options
|
|
|
126
261
|
if (window.hash !== undefined) {
|
|
127
262
|
params.set('hash', window.hash);
|
|
128
263
|
}
|
|
264
|
+
if (window.index !== undefined) {
|
|
265
|
+
params.set('index', window.index);
|
|
266
|
+
if (window.join === true)
|
|
267
|
+
params.set('join', 'true');
|
|
268
|
+
}
|
|
129
269
|
const response = await fetchWithAuth(`${url}/api/repos/${encodeURIComponent(repo)}/workspaces/${encodeURIComponent(workspace)}/datasets/${pathStr}?${params.toString()}`, {
|
|
130
270
|
method: 'GET',
|
|
131
271
|
headers: { 'Accept': BEAST2_CONTENT_TYPE },
|
|
@@ -136,6 +276,9 @@ export async function datasetGetPage(url, repo, workspace, path, window, options
|
|
|
136
276
|
if (response.status === 401) {
|
|
137
277
|
throw new AuthError(error.details ?? 'Authentication required');
|
|
138
278
|
}
|
|
279
|
+
if (error.code === 'dataset_hash_mismatch') {
|
|
280
|
+
throw new DatasetHashMismatchError(error.details, response.headers.get('X-Content-SHA256'));
|
|
281
|
+
}
|
|
139
282
|
throw error;
|
|
140
283
|
}
|
|
141
284
|
const buffer = await response.arrayBuffer();
|
|
@@ -172,8 +315,10 @@ export async function datasetGetPage(url, repo, workspace, path, window, options
|
|
|
172
315
|
* @param query - The key literal or string prefix to locate
|
|
173
316
|
* @param options - Request options including auth token
|
|
174
317
|
* @returns The match's row placement and count
|
|
318
|
+
* @throws {DatasetHashMismatchError} When the query is pinned to a hash the
|
|
319
|
+
* dataset no longer holds; its `currentHash` names the one it does
|
|
175
320
|
* @throws {ApiError} On application-level errors (non-keyed dataset,
|
|
176
|
-
* unparsable key literal,
|
|
321
|
+
* unparsable key literal, index-less blob)
|
|
177
322
|
* @throws {AuthError} On 401 Unauthorized
|
|
178
323
|
*/
|
|
179
324
|
export async function datasetFindKey(url, repo, workspace, path, query, options) {
|
|
@@ -190,12 +335,21 @@ export async function datasetFindKey(url, repo, workspace, path, query, options)
|
|
|
190
335
|
else if ('key' in query) {
|
|
191
336
|
params.set('key', query.key);
|
|
192
337
|
}
|
|
193
|
-
else {
|
|
338
|
+
else if ('prefix' in query) {
|
|
194
339
|
params.set('prefix', query.prefix);
|
|
195
340
|
}
|
|
341
|
+
else {
|
|
342
|
+
for (const literal of query.from ?? [])
|
|
343
|
+
params.append('from', literal);
|
|
344
|
+
for (const literal of query.to ?? [])
|
|
345
|
+
params.append('to', literal);
|
|
346
|
+
}
|
|
196
347
|
if (query.hash !== undefined) {
|
|
197
348
|
params.set('hash', query.hash);
|
|
198
349
|
}
|
|
350
|
+
if (query.index !== undefined) {
|
|
351
|
+
params.set('index', query.index);
|
|
352
|
+
}
|
|
199
353
|
const response = await fetchWithAuth(`${url}/api/repos/${encodeURIComponent(repo)}/workspaces/${encodeURIComponent(workspace)}/datasets/${pathStr}?${params.toString()}`, {
|
|
200
354
|
method: 'GET',
|
|
201
355
|
headers: { 'Accept': 'application/json' },
|
|
@@ -206,6 +360,9 @@ export async function datasetFindKey(url, repo, workspace, path, query, options)
|
|
|
206
360
|
if (response.status === 401) {
|
|
207
361
|
throw new AuthError(error.details ?? 'Authentication required');
|
|
208
362
|
}
|
|
363
|
+
if (error.code === 'dataset_hash_mismatch') {
|
|
364
|
+
throw new DatasetHashMismatchError(error.details, response.headers.get('X-Content-SHA256'));
|
|
365
|
+
}
|
|
209
366
|
throw error;
|
|
210
367
|
}
|
|
211
368
|
const body = await response.json();
|
|
@@ -262,20 +419,19 @@ export async function datasetSet(url, repo, workspace, path, data, options) {
|
|
|
262
419
|
* Set a large dataset using the transfer flow (init → upload → commit).
|
|
263
420
|
*
|
|
264
421
|
* @remarks
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
270
|
-
* verifies the bytes, and is polled until it finishes.
|
|
422
|
+
* The init answers `completed` (the object is stored already) or
|
|
423
|
+
* `upload_parts` (the parts the server planned, each sent to the URL and with
|
|
424
|
+
* the headers it names for that part, a few at a time). The commit may answer
|
|
425
|
+
* `processing` while the server verifies the bytes and takes them in, and is
|
|
426
|
+
* polled until it finishes.
|
|
271
427
|
*/
|
|
272
|
-
async function datasetSetTransfer(url, repo, workspace, path, source, options) {
|
|
428
|
+
async function datasetSetTransfer(url, repo, workspace, path, source, options, transfer = {}) {
|
|
273
429
|
const { hash } = source;
|
|
274
430
|
const pathStr = path.map(p => encodeURIComponent(p.value)).join('/');
|
|
275
431
|
const repoEncoded = encodeURIComponent(repo);
|
|
276
432
|
const wsEncoded = encodeURIComponent(workspace);
|
|
277
433
|
const uploadPath = `/repos/${repoEncoded}/workspaces/${wsEncoded}/datasets/${pathStr}/upload`;
|
|
278
|
-
const protocol = `protocol=${TRANSFER_PROTOCOL_VERSION}`;
|
|
434
|
+
const protocol = `protocol=${TRANSFER_PROTOCOL_VERSION}&release=${encodeURIComponent(E3_RELEASE)}`;
|
|
279
435
|
// 1. Init transfer (BEAST2 request/response)
|
|
280
436
|
const encodeInit = encodeBeast2For(TransferUploadRequestType);
|
|
281
437
|
const initRes = await fetchWithAuth(`${url}/api${uploadPath}?${protocol}`, {
|
|
@@ -300,16 +456,14 @@ async function datasetSetTransfer(url, repo, workspace, path, source, options) {
|
|
|
300
456
|
if (init.type === 'completed')
|
|
301
457
|
return;
|
|
302
458
|
// 2. Upload to staging (no auth — the URLs may be presigned S3 URLs)
|
|
303
|
-
|
|
304
|
-
await putRange(init.value.uploadUrl, {}, source, 0, source.size, options, 'Transfer upload failed');
|
|
305
|
-
}
|
|
306
|
-
else {
|
|
307
|
-
await putParts(url, `${uploadPath}/${init.value.id}`, Number(init.value.partBytes), source, options);
|
|
308
|
-
}
|
|
459
|
+
await putParts(url, `${uploadPath}/${init.value.id}`, Number(init.value.partBytes), source, options);
|
|
309
460
|
// 3. Commit — server verifies hash + updates ref (BEAST2 response), and
|
|
310
|
-
// answers `processing
|
|
461
|
+
// answers `processing`, with how far it has got, while that is still
|
|
462
|
+
// running
|
|
311
463
|
let done = await commitRequest(`${url}/api${uploadPath}/${init.value.id}?${protocol}`, 'POST', options);
|
|
312
464
|
for (let wait = COMMIT_POLL_MIN_MS; done.type === 'processing'; wait = Math.min(wait * 2, COMMIT_POLL_MAX_MS)) {
|
|
465
|
+
if (done.value.type === 'some')
|
|
466
|
+
transfer.onCommitProgress?.(done.value.value);
|
|
313
467
|
await new Promise(resolve => setTimeout(resolve, wait));
|
|
314
468
|
done = await commitRequest(`${url}/api${uploadPath}/${init.value.id}`, 'GET', options);
|
|
315
469
|
}
|
|
@@ -404,10 +558,12 @@ async function commitRequest(commitUrl, method, options) {
|
|
|
404
558
|
* @param path - Path to the dataset (e.g., ['inputs', 'table'])
|
|
405
559
|
* @param source - The file's size, digest and byte ranges
|
|
406
560
|
* @param options - Request options including auth token
|
|
561
|
+
* @param transfer - What to tell as it goes: how far the server's commit has
|
|
562
|
+
* taken the file in
|
|
407
563
|
* @throws {ApiError} On application-level errors, including a type mismatch
|
|
408
564
|
*/
|
|
409
|
-
export async function datasetSetStream(url, repo, workspace, path, source, options) {
|
|
410
|
-
return datasetSetTransfer(url, repo, workspace, path, source, options);
|
|
565
|
+
export async function datasetSetStream(url, repo, workspace, path, source, options, transfer = {}) {
|
|
566
|
+
return datasetSetTransfer(url, repo, workspace, path, source, options, transfer);
|
|
411
567
|
}
|
|
412
568
|
/**
|
|
413
569
|
* List all entries recursively under a path (flat list of datasets and trees).
|
package/dist/src/datasets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasets.js","sourceRoot":"","sources":["../../src/datasets.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAElG,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,EAAsC,MAAM,WAAW,CAAC;AACxI,OAAO,EACL,YAAY,EACZ,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,wBAAwB,GAKzB,MAAM,YAAY,CAAC;AAEpB,SAAS,eAAe,CAAC,IAAY,EAAE,SAAiB,EAAE,IAAc;IACtE,IAAI,QAAQ,GAAG,UAAU,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,SAAS,CAAC,WAAW,CAAC;IACzG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrE,QAAQ,GAAG,GAAG,QAAQ,IAAI,OAAO,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,IAAY,EAAE,SAAiB,EAAE,OAAuB;IACrG,OAAO,GAAG,CACR,GAAG,EACH,UAAU,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,SAAS,CAAC,WAAW,EACzF,SAAS,CAAC,UAAU,CAAC,EACrB,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,IAAc,EACd,OAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,OAAO,GAAG,CACR,GAAG,EACH,UAAU,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,SAAS,CAAC,aAAa,OAAO,YAAY,EAC9G,SAAS,CAAC,UAAU,CAAC,EACrB,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,IAAc,EACd,OAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,GAAG,GAAG,cAAc,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,SAAS,CAAC,aAAa,OAAO,EAAE,EAC9G;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE;KAC3C,EACD,OAAO,CACR,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,OAAiB,IAAI,yBAAyB,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,sFAAsF;IACtF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;IAC/D,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAqB,CAAC;QACtD,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;YAC7C,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE;SAC3C,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,qCAAqC,gBAAgB,CAAC,MAAM,IAAI,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC;QACjH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;QAChH,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7H,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IACzE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAkCD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,IAAc,EACd,MAAyB,EACzB,OAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,GAAG,GAAG,cAAc,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,SAAS,CAAC,aAAa,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,EACnI;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE;KAC3C,EACD,OAAO,CACR,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,OAAiB,IAAI,yBAAyB,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE;QACzC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC;IACF,OAAO;QACL,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC;QAC5B,aAAa,EAAE,SAAS,CAAC,kBAAkB,CAAC;QAC5C,UAAU,EAAE,SAAS,CAAC,eAAe,CAAC;QACtC,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,aAAa;QACvE,YAAY,EAAE,SAAS,CAAC,iBAAiB,CAAC;QAC1C,MAAM,EAAE,SAAS,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,SAAS,CAAC,cAAc,CAAC;QAChC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE;KACrD,CAAC;AACJ,CAAC;AA4BD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,IAAc,EACd,KAAuB,EACvB,OAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;SAAM,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,GAAG,GAAG,cAAc,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,SAAS,CAAC,aAAa,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,EACnI;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE;KAC1C,EACD,OAAO,CACR,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,OAAiB,IAAI,yBAAyB,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAoD,CAAC;IACrF,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC;AAC3E,CAAC;AAED,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAE/C,uDAAuD;AACvD,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,mFAAmF;AACnF,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,IAAc,EACd,IAAgB,EAChB,OAAuB;IAEvB,IAAI,IAAI,CAAC,UAAU,GAAG,cAAc,EAAE,CAAC;QACrC,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;YACpD,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,IAAI,EAAE,MAAM,WAAW,CAAC,IAAI,CAAC;YAC7B,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;SACjD,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,aAAa,CAClC,GAAG,GAAG,cAAc,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,SAAS,CAAC,aAAa,OAAO,EAAE,EAC9G;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,cAAc,EAAE,mBAAmB;YACnC,QAAQ,EAAE,mBAAmB;SAC9B;QACD,IAAI,EAAE,IAAI;KACX,EACD,OAAO,CACR,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,+DAA+D;IAC/D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAmB,CAAC;IAEhE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAuBD;;;;;;;;;;GAUG;AACH,KAAK,UAAU,kBAAkB,CAC/B,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,IAAc,EACd,MAA6B,EAC7B,OAAuB;IAEvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,UAAU,WAAW,eAAe,SAAS,aAAa,OAAO,SAAS,CAAC;IAC9F,MAAM,QAAQ,GAAG,YAAY,yBAAyB,EAAE,CAAC;IAEzD,6CAA6C;IAC7C,MAAM,UAAU,GAAG,eAAe,CAAC,yBAAyB,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,GAAG,GAAG,OAAO,UAAU,IAAI,QAAQ,EAAE,EAAE;QACzE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,mBAAmB;YACnC,QAAQ,EAAE,mBAAmB;SAC9B;QACD,IAAI,EAAE,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;KACtD,EAAE,OAAO,CAAC,CAAC;IAEZ,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAqC,CAAC;IAC9E,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC;IAE9B,6CAA6C;IAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO;IAEtC,qEAAqE;IACrE,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC;IACtG,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvG,CAAC;IAED,wEAAwE;IACxE,sDAAsD;IACtD,IAAI,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,GAAG,OAAO,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACxG,KAAK,IAAI,IAAI,GAAG,kBAAkB,EAAE,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC;QAC9G,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACxD,IAAI,GAAG,MAAM,aAAa,CAAC,GAAG,GAAG,OAAO,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,QAAQ,CACrB,GAAW,EACX,YAAoB,EACpB,SAAiB,EACjB,MAA6B,EAC7B,OAAuB;IAEvB,MAAM,KAAK,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACxD,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;QACvC,4EAA4E;QAC5E,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,EAAE,CAAC;YAChE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAE,CAAC;YACxE,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,YAAY,UAAU,IAAI,EAAE,EAAE,wBAAwB,EAAE,OAAO,CAAC,CAAC;gBAClG,MAAM,QAAQ,CACZ,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAC3E,gCAAgC,IAAI,OAAO,KAAK,EAAE,CACnD,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,IAAI,CAAC;gBACd,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AACvF,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,QAAQ,CACrB,SAAiB,EACjB,OAA+B,EAC/B,MAA6B,EAC7B,KAAa,EACb,GAAW,EACX,OAAuB,EACvB,OAAe;IAEf,6EAA6E;IAC7E,sEAAsE;IACtE,0EAA0E;IAC1E,0EAA0E;IAC1E,+DAA+D;IAC/D,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,OAAQ,IAAmC,CAAC,SAAS,KAAK,UAAU,CAAC;QACvF,OAAO;YACL,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,mBAAmB;gBACnC,QAAQ,EAAE,mBAAmB;gBAC7B,GAAG,OAAO;gBACV,gBAAgB,EAAE,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC;aACtC;YACD,GAAI,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAA8B;SACpE,CAAC;IACnB,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAE/C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,6EAA6E;AAC7E,KAAK,UAAU,aAAa,CAC1B,SAAiB,EACjB,MAAsB,EACtB,OAAuB;IAEvB,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,SAAS,EAAE;QACzC,MAAM;QACN,OAAO,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE;KAC3C,EAAE,OAAO,CAAC,CAAC;IAEZ,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAmC,CAAC;IACpE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,IAAc,EACd,MAA6B,EAC7B,OAAuB;IAEvB,OAAO,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,IAAc,EACd,OAAuB;IAEvB,MAAM,QAAQ,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,uCAAuC,CAAC;IAClG,OAAO,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,IAAc,EACd,OAAuB;IAEvB,MAAM,QAAQ,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,2BAA2B,CAAC;IACtF,OAAO,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,IAAc,EACd,OAAuB;IAEvB,MAAM,QAAQ,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,wBAAwB,CAAC;IACnF,OAAO,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAAW,EACX,IAAY,EACZ,SAAiB,EACjB,IAAc,EACd,OAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACrE,OAAO,GAAG,CACR,GAAG,EACH,UAAU,kBAAkB,CAAC,IAAI,CAAC,eAAe,kBAAkB,CAAC,SAAS,CAAC,aAAa,OAAO,cAAc,EAChH,uBAAuB,EACvB,OAAO,CACR,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"datasets.js","sourceRoot":"","sources":["../../src/datasets.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,19 +3,26 @@
|
|
|
3
3
|
* Licensed under BSL 1.1. See LICENSE for details.
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* Tests for the dataset key-search client call.
|
|
6
|
+
* Tests for the dataset key-search client call, and a collection's download.
|
|
7
7
|
*
|
|
8
8
|
* `datasetFindKey` is the client half of the fence-backed find endpoint:
|
|
9
9
|
* these tests pin the request shape (the `find` query and its exactly-one
|
|
10
10
|
* of key/prefix parameters, hash pinning), the JSON result decoding with
|
|
11
11
|
* the content hash lifted off the headers, and the error mapping the
|
|
12
12
|
* paged preview relies on (typed ApiError codes, AuthError on 401).
|
|
13
|
+
*
|
|
14
|
+
* `datasetGet` downloads a collection as the objects its manifest names and
|
|
15
|
+
* splices them: these tests pin that the splice is the value's blob, that an
|
|
16
|
+
* object answered by URL is fetched without the API's auth, and that an object
|
|
17
|
+
* which does not hash to its name is refused. `datasetGetStream`, which it is
|
|
18
|
+
* built on, hands the splice over as it goes, a few segments ahead.
|
|
13
19
|
*/
|
|
14
20
|
import { describe, it, afterEach } from 'node:test';
|
|
15
21
|
import assert from 'node:assert/strict';
|
|
16
|
-
import { variant } from '@elaraai/east';
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
22
|
+
import { Beast2ManifestWriter, DictType, IntegerType, SortedMap, StringType, compareFor, decodeCollectionManifest, encodeBeast2PagedFor, sha256Hex, variant, } from '@elaraai/east';
|
|
23
|
+
import { BEAST2_CONTENT_TYPE } from '@elaraai/e3-types';
|
|
24
|
+
import { datasetFindKey, datasetGet, datasetGetPage, datasetGetStream } from './datasets.js';
|
|
25
|
+
import { ApiError, AuthError, DatasetHashMismatchError } from './http.js';
|
|
19
26
|
const realFetch = globalThis.fetch;
|
|
20
27
|
afterEach(() => {
|
|
21
28
|
globalThis.fetch = realFetch;
|
|
@@ -91,5 +98,125 @@ describe('datasetFindKey', () => {
|
|
|
91
98
|
}));
|
|
92
99
|
await assert.rejects(datasetFindKey(BASE, 'r', 'ws', lookupPath, { key: '"a"' }, { token: null }), (err) => err instanceof AuthError);
|
|
93
100
|
});
|
|
101
|
+
it('names the hash the dataset moved on to when a pinned read is refused, for a search and a page', async () => {
|
|
102
|
+
const current = 'a'.repeat(64);
|
|
103
|
+
mockFetch(() => new Response(JSON.stringify({ error: { type: 'dataset_hash_mismatch', message: `Dataset content is ${current}, not ${HASH}` } }), {
|
|
104
|
+
status: 409,
|
|
105
|
+
headers: { 'Content-Type': 'application/json', 'X-Content-SHA256': current },
|
|
106
|
+
}));
|
|
107
|
+
const moved = (err) => {
|
|
108
|
+
assert.ok(err instanceof DatasetHashMismatchError, `expected DatasetHashMismatchError, got ${String(err)}`);
|
|
109
|
+
assert.ok(err instanceof ApiError, 'it is still an ApiError');
|
|
110
|
+
assert.equal(err.code, 'dataset_hash_mismatch');
|
|
111
|
+
assert.equal(err.currentHash, current);
|
|
112
|
+
return true;
|
|
113
|
+
};
|
|
114
|
+
await assert.rejects(datasetFindKey(BASE, 'r', 'ws', lookupPath, { key: '"a"', hash: HASH }, { token: null }), moved);
|
|
115
|
+
await assert.rejects(datasetGetPage(BASE, 'r', 'ws', lookupPath, { offset: 0, limit: 10, hash: HASH }, { token: null }), moved);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
/** A collection as a server stores it — every object by its hash, the
|
|
119
|
+
* manifest's own among them — and the blob its splice is. */
|
|
120
|
+
function storedCollection() {
|
|
121
|
+
const type = DictType(StringType, IntegerType);
|
|
122
|
+
const value = new SortedMap(Array.from({ length: 20_000 }, (_, i) => [`k${String(i).padStart(6, '0')}`, BigInt(i)]), compareFor(StringType));
|
|
123
|
+
const objects = new Map();
|
|
124
|
+
let manifest = '';
|
|
125
|
+
const writer = new Beast2ManifestWriter(type, {
|
|
126
|
+
object: (hash, bytes) => objects.set(hash, bytes),
|
|
127
|
+
manifest: (bytes) => {
|
|
128
|
+
manifest = sha256Hex(bytes);
|
|
129
|
+
objects.set(manifest, bytes);
|
|
130
|
+
},
|
|
131
|
+
});
|
|
132
|
+
for (const entry of value.entries())
|
|
133
|
+
writer.add(entry);
|
|
134
|
+
writer.finish();
|
|
135
|
+
const segments = decodeCollectionManifest(objects.get(manifest)).entries.map((entry) => entry.hash);
|
|
136
|
+
return { objects, manifest, segments, blob: encodeBeast2PagedFor(type)(value) };
|
|
137
|
+
}
|
|
138
|
+
/** Serves a dataset route naming `manifest`, and an objects route answering
|
|
139
|
+
* from `objects` — the `presigned` ones with a URL to fetch them from — and
|
|
140
|
+
* records each request, and whether it carried the API's auth. */
|
|
141
|
+
function mockServer(manifest, objects, presigned) {
|
|
142
|
+
const state = { requests: [] };
|
|
143
|
+
globalThis.fetch = (async (input, init) => {
|
|
144
|
+
const url = new URL(input instanceof Request ? input.url : String(input));
|
|
145
|
+
state.requests.push({ url: url.href, auth: new Headers(init?.headers).has('Authorization') });
|
|
146
|
+
if (url.pathname.includes('/datasets/')) {
|
|
147
|
+
return new Response(JSON.stringify({ manifest }), {
|
|
148
|
+
status: 200,
|
|
149
|
+
headers: { 'Content-Type': 'application/json', 'X-Content-SHA256': HASH },
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
const hash = url.pathname.slice(url.pathname.lastIndexOf('/') + 1);
|
|
153
|
+
if (url.host === 'example.test' && presigned.has(hash)) {
|
|
154
|
+
return new Response(JSON.stringify({ url: `https://bucket.test/${hash}` }), {
|
|
155
|
+
status: 200,
|
|
156
|
+
headers: { 'Content-Type': 'application/json' },
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
return new Response(objects.get(hash), { status: 200, headers: { 'Content-Type': BEAST2_CONTENT_TYPE } });
|
|
160
|
+
});
|
|
161
|
+
return state;
|
|
162
|
+
}
|
|
163
|
+
describe('datasetGet', () => {
|
|
164
|
+
it('downloads a collection as the objects its manifest names, spliced into the value\'s blob', async () => {
|
|
165
|
+
const { objects, manifest, segments, blob } = storedCollection();
|
|
166
|
+
assert.ok(segments.length > 3, `the value spans segments, got ${segments.length}`);
|
|
167
|
+
// One segment is large, as an object answered with a URL is.
|
|
168
|
+
const m = mockServer(manifest, objects, new Set([segments[1]]));
|
|
169
|
+
const result = await datasetGet(BASE, 'r', 'ws', lookupPath, { token: 'tok' });
|
|
170
|
+
assert.deepEqual(result.data, blob);
|
|
171
|
+
assert.equal(result.hash, HASH, 'the hash is the dataset\'s own');
|
|
172
|
+
assert.equal(result.size, blob.byteLength);
|
|
173
|
+
assert.equal(new URL(m.requests[0].url).searchParams.get('segments'), 'true');
|
|
174
|
+
const [presigned, api] = [
|
|
175
|
+
m.requests.filter((request) => request.url.startsWith('https://bucket.test/')),
|
|
176
|
+
m.requests.filter((request) => !request.url.startsWith('https://bucket.test/')),
|
|
177
|
+
];
|
|
178
|
+
assert.deepEqual(presigned, [{ url: `https://bucket.test/${segments[1]}`, auth: false }], 'a URL is fetched without the API\'s auth');
|
|
179
|
+
assert.equal(api.length, segments.length + 3, 'the dataset, the manifest, the header and each segment');
|
|
180
|
+
assert.ok(api.every((request) => request.auth));
|
|
181
|
+
});
|
|
182
|
+
it('streams a collection a few segments ahead of the reader, never the value', async () => {
|
|
183
|
+
const { objects, manifest, segments, blob } = storedCollection();
|
|
184
|
+
assert.ok(segments.length > 12, `the value spans many segments, got ${segments.length}`);
|
|
185
|
+
const m = mockServer(manifest, objects, new Set());
|
|
186
|
+
const { hash, chunks } = await datasetGetStream(BASE, 'r', 'ws', lookupPath, { token: null });
|
|
187
|
+
assert.equal(hash, HASH);
|
|
188
|
+
assert.equal(m.requests.length, 2, 'the dataset and its manifest are read before the chunks are taken');
|
|
189
|
+
const parts = [];
|
|
190
|
+
let fetchedByFirst = 0;
|
|
191
|
+
for await (const chunk of chunks) {
|
|
192
|
+
if (parts.length === 0)
|
|
193
|
+
fetchedByFirst = m.requests.length;
|
|
194
|
+
parts.push(chunk);
|
|
195
|
+
}
|
|
196
|
+
assert.ok(fetchedByFirst <= 2 + 1 + 8, `the first chunk came after ${fetchedByFirst} requests: the header and at most 8 segments ahead`);
|
|
197
|
+
assert.deepEqual(new Uint8Array(Buffer.concat(parts)), blob);
|
|
198
|
+
});
|
|
199
|
+
it('streams any other value as the body the server sends', async () => {
|
|
200
|
+
const body = new Uint8Array(300_000).map((_, i) => i % 251);
|
|
201
|
+
mockFetch(() => new Response(new Blob([body]).stream(), {
|
|
202
|
+
status: 200,
|
|
203
|
+
headers: { 'Content-Type': BEAST2_CONTENT_TYPE, 'X-Content-SHA256': HASH },
|
|
204
|
+
}));
|
|
205
|
+
const { hash, chunks } = await datasetGetStream(BASE, 'r', 'ws', lookupPath, { token: null });
|
|
206
|
+
const parts = [];
|
|
207
|
+
for await (const chunk of chunks)
|
|
208
|
+
parts.push(chunk);
|
|
209
|
+
assert.equal(hash, HASH);
|
|
210
|
+
assert.deepEqual(new Uint8Array(Buffer.concat(parts)), body);
|
|
211
|
+
});
|
|
212
|
+
it('refuses an object that does not hash to its name', async () => {
|
|
213
|
+
const { objects, manifest, segments } = storedCollection();
|
|
214
|
+
const cut = objects.get(segments[2]).subarray(0, 100);
|
|
215
|
+
objects.set(segments[2], cut);
|
|
216
|
+
mockServer(manifest, objects, new Set());
|
|
217
|
+
await assert.rejects(datasetGet(BASE, 'r', 'ws', lookupPath, { token: null }), {
|
|
218
|
+
message: `object ${segments[2]} arrived as ${sha256Hex(cut)}: the download was cut short or corrupted`,
|
|
219
|
+
});
|
|
220
|
+
});
|
|
94
221
|
});
|
|
95
222
|
//# sourceMappingURL=datasets.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datasets.spec.js","sourceRoot":"","sources":["../../src/datasets.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datasets.spec.js","sourceRoot":"","sources":["../../src/datasets.spec.ts"],"names":[],"mappings":"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"}
|