@teepin/sdk 0.2.0 → 0.3.0-rc.1

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 (134) hide show
  1. package/README.md +181 -396
  2. package/dist/cjs/client.js +42 -4
  3. package/dist/cjs/client.js.map +1 -1
  4. package/dist/cjs/direct/bytes.js +50 -0
  5. package/dist/cjs/direct/bytes.js.map +1 -0
  6. package/dist/cjs/direct/common.js +167 -0
  7. package/dist/cjs/direct/common.js.map +1 -0
  8. package/dist/cjs/direct/downloads-plan.js +127 -0
  9. package/dist/cjs/direct/downloads-plan.js.map +1 -0
  10. package/dist/cjs/direct/engine.js +405 -0
  11. package/dist/cjs/direct/engine.js.map +1 -0
  12. package/dist/cjs/direct/formats.js +44 -0
  13. package/dist/cjs/direct/formats.js.map +1 -0
  14. package/dist/cjs/direct/hpke.js +275 -0
  15. package/dist/cjs/direct/hpke.js.map +1 -0
  16. package/dist/cjs/direct/journal.js +80 -0
  17. package/dist/cjs/direct/journal.js.map +1 -0
  18. package/dist/cjs/direct/large.js +850 -0
  19. package/dist/cjs/direct/large.js.map +1 -0
  20. package/dist/cjs/direct/reads.js +1314 -0
  21. package/dist/cjs/direct/reads.js.map +1 -0
  22. package/dist/cjs/direct/sha256.js +122 -0
  23. package/dist/cjs/direct/sha256.js.map +1 -0
  24. package/dist/cjs/direct/tws1.js +480 -0
  25. package/dist/cjs/direct/tws1.js.map +1 -0
  26. package/dist/cjs/direct/uploads.js +1706 -0
  27. package/dist/cjs/direct/uploads.js.map +1 -0
  28. package/dist/cjs/errors.js +70 -13
  29. package/dist/cjs/errors.js.map +1 -1
  30. package/dist/cjs/index.js +5 -1
  31. package/dist/cjs/index.js.map +1 -1
  32. package/dist/cjs/links.js +195 -0
  33. package/dist/cjs/links.js.map +1 -0
  34. package/dist/cjs/node/downloads.js +835 -0
  35. package/dist/cjs/node/downloads.js.map +1 -0
  36. package/dist/cjs/node/journal.js +841 -0
  37. package/dist/cjs/node/journal.js.map +1 -0
  38. package/dist/cjs/node/uploads.js +219 -0
  39. package/dist/cjs/node/uploads.js.map +1 -0
  40. package/dist/cjs/node.js +26 -39
  41. package/dist/cjs/node.js.map +1 -1
  42. package/dist/cjs/storage.js +214 -184
  43. package/dist/cjs/storage.js.map +1 -1
  44. package/dist/cjs/transfer.js +18 -351
  45. package/dist/cjs/transfer.js.map +1 -1
  46. package/dist/esm/client.js +42 -4
  47. package/dist/esm/client.js.map +1 -1
  48. package/dist/esm/direct/bytes.js +42 -0
  49. package/dist/esm/direct/bytes.js.map +1 -0
  50. package/dist/esm/direct/common.js +155 -0
  51. package/dist/esm/direct/common.js.map +1 -0
  52. package/dist/esm/direct/downloads-plan.js +117 -0
  53. package/dist/esm/direct/downloads-plan.js.map +1 -0
  54. package/dist/esm/direct/engine.js +385 -0
  55. package/dist/esm/direct/engine.js.map +1 -0
  56. package/dist/esm/direct/formats.js +40 -0
  57. package/dist/esm/direct/formats.js.map +1 -0
  58. package/dist/esm/direct/hpke.js +262 -0
  59. package/dist/esm/direct/hpke.js.map +1 -0
  60. package/dist/esm/direct/journal.js +75 -0
  61. package/dist/esm/direct/journal.js.map +1 -0
  62. package/dist/esm/direct/large.js +816 -0
  63. package/dist/esm/direct/large.js.map +1 -0
  64. package/dist/esm/direct/reads.js +1275 -0
  65. package/dist/esm/direct/reads.js.map +1 -0
  66. package/dist/esm/direct/sha256.js +118 -0
  67. package/dist/esm/direct/sha256.js.map +1 -0
  68. package/dist/esm/direct/tws1.js +460 -0
  69. package/dist/esm/direct/tws1.js.map +1 -0
  70. package/dist/esm/direct/uploads.js +1660 -0
  71. package/dist/esm/direct/uploads.js.map +1 -0
  72. package/dist/esm/errors.js +64 -11
  73. package/dist/esm/errors.js.map +1 -1
  74. package/dist/esm/index.js +1 -0
  75. package/dist/esm/index.js.map +1 -1
  76. package/dist/esm/links.js +189 -0
  77. package/dist/esm/links.js.map +1 -0
  78. package/dist/esm/node/downloads.js +829 -0
  79. package/dist/esm/node/downloads.js.map +1 -0
  80. package/dist/esm/node/journal.js +824 -0
  81. package/dist/esm/node/journal.js.map +1 -0
  82. package/dist/esm/node/uploads.js +187 -0
  83. package/dist/esm/node/uploads.js.map +1 -0
  84. package/dist/esm/node.js +17 -14
  85. package/dist/esm/node.js.map +1 -1
  86. package/dist/esm/storage.js +214 -184
  87. package/dist/esm/storage.js.map +1 -1
  88. package/dist/esm/transfer.js +19 -349
  89. package/dist/esm/transfer.js.map +1 -1
  90. package/dist/types/client.d.ts +45 -4
  91. package/dist/types/client.d.ts.map +1 -1
  92. package/dist/types/direct/bytes.d.ts +11 -0
  93. package/dist/types/direct/bytes.d.ts.map +1 -0
  94. package/dist/types/direct/common.d.ts +47 -0
  95. package/dist/types/direct/common.d.ts.map +1 -0
  96. package/dist/types/direct/downloads-plan.d.ts +75 -0
  97. package/dist/types/direct/downloads-plan.d.ts.map +1 -0
  98. package/dist/types/direct/engine.d.ts +191 -0
  99. package/dist/types/direct/engine.d.ts.map +1 -0
  100. package/dist/types/direct/formats.d.ts +9 -0
  101. package/dist/types/direct/formats.d.ts.map +1 -0
  102. package/dist/types/direct/hpke.d.ts +55 -0
  103. package/dist/types/direct/hpke.d.ts.map +1 -0
  104. package/dist/types/direct/journal.d.ts +55 -0
  105. package/dist/types/direct/journal.d.ts.map +1 -0
  106. package/dist/types/direct/large.d.ts +170 -0
  107. package/dist/types/direct/large.d.ts.map +1 -0
  108. package/dist/types/direct/reads.d.ts +306 -0
  109. package/dist/types/direct/reads.d.ts.map +1 -0
  110. package/dist/types/direct/sha256.d.ts +16 -0
  111. package/dist/types/direct/sha256.d.ts.map +1 -0
  112. package/dist/types/direct/tws1.d.ts +157 -0
  113. package/dist/types/direct/tws1.d.ts.map +1 -0
  114. package/dist/types/direct/uploads.d.ts +461 -0
  115. package/dist/types/direct/uploads.d.ts.map +1 -0
  116. package/dist/types/errors.d.ts +47 -8
  117. package/dist/types/errors.d.ts.map +1 -1
  118. package/dist/types/index.d.ts +1 -0
  119. package/dist/types/index.d.ts.map +1 -1
  120. package/dist/types/links.d.ts +86 -0
  121. package/dist/types/links.d.ts.map +1 -0
  122. package/dist/types/node/downloads.d.ts +73 -0
  123. package/dist/types/node/downloads.d.ts.map +1 -0
  124. package/dist/types/node/journal.d.ts +162 -0
  125. package/dist/types/node/journal.d.ts.map +1 -0
  126. package/dist/types/node/uploads.d.ts +86 -0
  127. package/dist/types/node/uploads.d.ts.map +1 -0
  128. package/dist/types/node.d.ts +4 -2
  129. package/dist/types/node.d.ts.map +1 -1
  130. package/dist/types/storage.d.ts +107 -64
  131. package/dist/types/storage.d.ts.map +1 -1
  132. package/dist/types/transfer.d.ts +14 -23
  133. package/dist/types/transfer.d.ts.map +1 -1
  134. package/package.json +8 -5
@@ -2,20 +2,22 @@
2
2
  // Copyright 2026 TEEPIN Project
3
3
  // Licensed under the Apache License, Version 2.0
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.downloadTo = exports.download = exports.upload = exports.sourceOf = exports.computeETag = exports.sha256Hex = exports.partSize = exports.DEFAULT_CONCURRENCY = exports.MULTIPART_THRESHOLD = exports.DEFAULT_PART_SIZE = void 0;
6
- const client_js_1 = require("./client.js");
5
+ exports.sourceOf = exports.computeETag = exports.sha256Hex = exports.partSize = exports.DEFAULT_CONCURRENCY = exports.MULTIPART_THRESHOLD = exports.DEFAULT_PART_SIZE = void 0;
6
+ const sha256_js_1 = require("./direct/sha256.js");
7
7
  const errors_js_1 = require("./errors.js");
8
- const md5_js_1 = require("./md5.js");
9
8
  const storage_js_1 = require("./storage.js");
10
- /** The part size of uploads in parts and of parallel download ranges. */
9
+ /** computeETag hashes a whole source in reads of this size, so a file of any size is never held in memory at once. */
10
+ const ETAG_READ = 8 * 2 ** 20;
11
+ /** The part size of uploads in parts, unless asked for. */
11
12
  exports.DEFAULT_PART_SIZE = 16 * 2 ** 20;
12
13
  /** upload sends larger data in parts. */
13
14
  exports.MULTIPART_THRESHOLD = 16 * 2 ** 20;
14
15
  /** How many parts or ranges move at once. */
15
16
  exports.DEFAULT_CONCURRENCY = 8;
16
17
  /**
17
- * The part size an upload of size bytes uses when want is asked for: at
18
- * least MIN_PART_SIZE, doubled until the parts fit in MAX_PARTS.
18
+ * The part size earlier releases' uploads in parts used for size bytes when want was asked for: at least
19
+ * MIN_PART_SIZE, doubled until the parts fit in MAX_PARTS. With computeETag it matches the ETag of an object uploaded
20
+ * in parts before the direct path (one ending in "-<parts>"); objects uploaded now have their SHA-256 as their ETag.
19
21
  */
20
22
  function partSize(size, want = 0) {
21
23
  let p = Math.max(want || exports.DEFAULT_PART_SIZE, storage_js_1.MIN_PART_SIZE);
@@ -39,14 +41,18 @@ async function composite(parts) {
39
41
  return `${await sha256Hex(all)}-${parts.length}`;
40
42
  }
41
43
  /**
42
- * The ETag Teepin gives source: the SHA-256 when parts is 0, or for an
43
- * upload in parts of partBytes the SHA-256 of the parts' SHA-256s with
44
- * "-<parts>". Compare with StorageObject.etag to tell whether local data and
45
- * an object hold the same bytes.
44
+ * The ETag Teepin gives source: its SHA-256 when parts is 0, which is every object uploaded now however it was sent.
45
+ * An object uploaded in parts by an earlier release has the SHA-256 of its parts' SHA-256s with "-<parts>": pass the
46
+ * part size it used (partSize) and its part count. Compare with StorageObject.etag to tell whether local data and an
47
+ * object hold the same bytes.
46
48
  */
47
49
  async function computeETag(source, partBytes, parts) {
48
- if (parts === 0)
49
- return sha256Hex(await source.read(0, source.size));
50
+ if (parts === 0) {
51
+ const h = new sha256_js_1.Sha256();
52
+ for (let off = 0; off < source.size; off += ETAG_READ)
53
+ h.update(await source.read(off, Math.min(ETAG_READ, source.size - off)));
54
+ return h.hexDigest();
55
+ }
50
56
  if (Math.ceil(source.size / partBytes) !== parts)
51
57
  throw new errors_js_1.TeepinError(`${source.size} bytes in parts of ${partBytes} is not ${parts} parts`);
52
58
  const sums = [];
@@ -72,343 +78,4 @@ function sourceOf(body) {
72
78
  return body;
73
79
  }
74
80
  exports.sourceOf = sourceOf;
75
- function isStream(body) {
76
- if (typeof ReadableStream !== 'undefined' && body instanceof ReadableStream)
77
- return true;
78
- return typeof body === 'object' && body !== null && Symbol.asyncIterator in body && !('read' in body && 'size' in body);
79
- }
80
- class Progress {
81
- total;
82
- fn;
83
- done = 0;
84
- constructor(total, fn) {
85
- this.total = total;
86
- this.fn = fn;
87
- }
88
- add(n) {
89
- if (!this.fn || n === 0)
90
- return;
91
- this.done += n;
92
- this.fn(this.done, this.total);
93
- }
94
- }
95
- /** Runs fn for each item, n at a time, stopping at the first error, which it throws. */
96
- async function parallel(items, n, signal, fn) {
97
- const ctl = new AbortController();
98
- const onAbort = () => ctl.abort(signal?.reason);
99
- signal?.addEventListener('abort', onAbort, { once: true });
100
- let next = 0;
101
- let failure;
102
- const worker = async () => {
103
- while (next < items.length && failure === undefined && !ctl.signal.aborted) {
104
- const item = items[next++];
105
- try {
106
- await fn(item, ctl.signal);
107
- }
108
- catch (err) {
109
- if (failure === undefined)
110
- failure = err;
111
- ctl.abort(err);
112
- }
113
- }
114
- };
115
- try {
116
- await Promise.all(Array.from({ length: Math.min(n, items.length) }, worker));
117
- }
118
- finally {
119
- signal?.removeEventListener('abort', onAbort);
120
- }
121
- if (failure !== undefined)
122
- throw failure;
123
- if (signal?.aborted)
124
- throw signal.reason;
125
- }
126
- async function upload(s, bucket, key, body, opts = {}) {
127
- if (isStream(body))
128
- return uploadStream(s, bucket, key, body, opts);
129
- const src = sourceOf(body);
130
- const contentType = opts.contentType || src.type;
131
- if (src.size > storage_js_1.MAX_OBJECT_SIZE)
132
- throw new errors_js_1.TeepinError(`${src.size} bytes is over the 5 TiB an object may hold`);
133
- if (src.size <= exports.MULTIPART_THRESHOLD) {
134
- const bytes = await src.read(0, src.size);
135
- return putVerified(s, bucket, key, bytes, contentType, opts);
136
- }
137
- return uploadParts(s, bucket, key, src, contentType, opts);
138
- }
139
- exports.upload = upload;
140
- async function putVerified(s, bucket, key, bytes, contentType, opts) {
141
- const want = await sha256Hex(bytes);
142
- const obj = await s.putObject(bucket, key, bytes, { contentType, metadata: opts.metadata, signal: opts.signal });
143
- if (obj.etag && obj.etag !== want)
144
- throw new errors_js_1.ChecksumMismatchError(`stored ${obj.etag}, sent ${want}`);
145
- opts.onProgress?.(bytes.length, bytes.length);
146
- return obj;
147
- }
148
- async function uploadParts(s, bucket, key, src, contentType, opts) {
149
- const size = partSize(src.size, opts.partSize);
150
- const n = Math.ceil(src.size / size);
151
- const span = (num) => {
152
- const off = (num - 1) * size;
153
- return [off, Math.min(size, src.size - off)];
154
- };
155
- const progress = new Progress(src.size, opts.onProgress);
156
- const sums = new Array(n + 1);
157
- let up;
158
- if (opts.resume)
159
- up = await resumable(s, bucket, key, contentType, src, n, span, sums, progress, opts.signal);
160
- up ??= await s.createUpload(bucket, key, { contentType, metadata: opts.metadata, signal: opts.signal });
161
- const id = up.id;
162
- const todo = [];
163
- for (let num = 1; num <= n; num++)
164
- if (!sums[num])
165
- todo.push(num);
166
- try {
167
- await parallel(todo, opts.concurrency ?? exports.DEFAULT_CONCURRENCY, opts.signal, async (num, signal) => {
168
- const [off, len] = span(num);
169
- const bytes = await src.read(off, len);
170
- const md5 = (0, md5_js_1.md5Hex)(bytes);
171
- const part = await s.uploadPart(bucket, id, num, bytes, signal);
172
- if (part.etag !== md5)
173
- throw new errors_js_1.ChecksumMismatchError(`part ${num}: the server received MD5 ${part.etag}, sent ${md5}`);
174
- sums[num] = { md5, sha256: await sha256Raw(bytes) };
175
- progress.add(len);
176
- });
177
- }
178
- catch (err) {
179
- throw await failUpload(s, bucket, id, !!opts.resume, err);
180
- }
181
- const parts = [];
182
- const shas = [];
183
- for (let num = 1; num <= n; num++) {
184
- parts.push({ number: num, etag: sums[num].md5 });
185
- shas.push(sums[num].sha256);
186
- }
187
- return complete(s, bucket, key, id, parts, await composite(shas), !!opts.resume, opts.signal);
188
- }
189
- async function complete(s, bucket, key, id, parts, want, keep, signal) {
190
- let obj;
191
- try {
192
- obj = await s.completeUpload(bucket, id, parts, signal);
193
- }
194
- catch (err) {
195
- if ((0, errors_js_1.isRetryable)(err) || (0, errors_js_1.errorCode)(err) === 'upload_not_found') {
196
- // The answer may have been lost after the object was made.
197
- const got = await s.statObject(bucket, key, signal).catch(() => null);
198
- if (got && got.etag === want)
199
- return got;
200
- }
201
- throw await failUpload(s, bucket, id, keep, err);
202
- }
203
- if (obj.etag !== want)
204
- throw new errors_js_1.ChecksumMismatchError(`stored ${obj.etag}, sent ${want}`);
205
- return obj;
206
- }
207
- async function failUpload(s, bucket, id, keep, err) {
208
- if (!keep)
209
- await s.abortUpload(bucket, id).catch(() => undefined);
210
- return new errors_js_1.UploadError(id, err);
211
- }
212
- /** The newest open upload of key this data can continue, with sums filled for parts it already holds with the same bytes. */
213
- async function resumable(s, bucket, key, contentType, src, n, span, sums, progress, signal) {
214
- const ups = await s.listUploads(bucket, key, signal);
215
- for (let i = ups.length - 1; i >= 0; i--) {
216
- if (ups[i].key !== key || (contentType && ups[i].contentType !== contentType))
217
- continue;
218
- let up;
219
- try {
220
- up = await s.listParts(bucket, ups[i].id, signal);
221
- }
222
- catch (err) {
223
- if ((0, errors_js_1.errorCode)(err) === 'upload_not_found')
224
- continue; // completed, cancelled or expired meanwhile
225
- throw err;
226
- }
227
- for (const p of up.parts) {
228
- if (p.number < 1 || p.number > n)
229
- continue;
230
- const [off, len] = span(p.number);
231
- if (p.size !== len)
232
- continue; // another part size: sent again
233
- const bytes = await src.read(off, len);
234
- if ((0, md5_js_1.md5Hex)(bytes) === p.etag) {
235
- sums[p.number] = { md5: p.etag, sha256: await sha256Raw(bytes) };
236
- progress.add(len);
237
- }
238
- }
239
- return up;
240
- }
241
- return undefined;
242
- }
243
- async function* chunksOf(body) {
244
- if (typeof ReadableStream !== 'undefined' && body instanceof ReadableStream) {
245
- const reader = body.getReader();
246
- try {
247
- for (;;) {
248
- const { done, value } = await reader.read();
249
- if (done)
250
- return;
251
- if (value?.length)
252
- yield value;
253
- }
254
- }
255
- finally {
256
- reader.releaseLock();
257
- }
258
- }
259
- else {
260
- for await (const c of body)
261
- if (c?.length)
262
- yield c;
263
- }
264
- }
265
- /** Reads a stream into parts of size bytes (the last may be shorter). */
266
- async function* partsOf(body, size) {
267
- let buf = new Uint8Array(size);
268
- let filled = 0;
269
- for await (let chunk of chunksOf(body)) {
270
- while (chunk.length) {
271
- const take = Math.min(size - filled, chunk.length);
272
- buf.set(chunk.subarray(0, take), filled);
273
- filled += take;
274
- chunk = chunk.subarray(take);
275
- if (filled === size) {
276
- yield buf;
277
- buf = new Uint8Array(size);
278
- filled = 0;
279
- }
280
- }
281
- }
282
- if (filled)
283
- yield buf.subarray(0, filled);
284
- }
285
- /** Sends a stream of unknown size: what fits in one part in one request, the rest in parts, concurrency at a time. */
286
- async function uploadStream(s, bucket, key, body, opts) {
287
- const size = Math.max(opts.partSize || exports.DEFAULT_PART_SIZE, storage_js_1.MIN_PART_SIZE);
288
- const parts = partsOf(body, size);
289
- const first = await parts.next();
290
- const firstBytes = first.done ? new Uint8Array() : first.value;
291
- const second = firstBytes.length === size ? await parts.next() : { done: true, value: undefined };
292
- if (second.done)
293
- return putVerified(s, bucket, key, firstBytes, opts.contentType, opts);
294
- const progress = new Progress(-1, opts.onProgress);
295
- const up = await s.createUpload(bucket, key, { contentType: opts.contentType, metadata: opts.metadata, signal: opts.signal });
296
- const sums = [];
297
- const inflight = new Set();
298
- let failure;
299
- const ctl = new AbortController();
300
- opts.signal?.addEventListener('abort', () => ctl.abort(opts.signal?.reason), { once: true });
301
- const send = (num, bytes) => {
302
- const p = (async () => {
303
- const md5 = (0, md5_js_1.md5Hex)(bytes);
304
- const part = await s.uploadPart(bucket, up.id, num, bytes, ctl.signal);
305
- if (part.etag !== md5)
306
- throw new errors_js_1.ChecksumMismatchError(`part ${num}`);
307
- sums[num - 1] = { md5, sha256: await sha256Raw(bytes) };
308
- progress.add(bytes.length);
309
- })().catch((err) => {
310
- failure ??= err;
311
- ctl.abort(err);
312
- });
313
- inflight.add(p);
314
- p.finally(() => inflight.delete(p));
315
- };
316
- try {
317
- let num = 0;
318
- const queue = async (bytes) => {
319
- if (++num > storage_js_1.MAX_PARTS)
320
- throw new errors_js_1.TeepinError(`the stream is over ${storage_js_1.MAX_PARTS} parts of ${size} bytes; raise partSize`);
321
- while (inflight.size >= (opts.concurrency ?? exports.DEFAULT_CONCURRENCY))
322
- await Promise.race(inflight);
323
- if (failure !== undefined)
324
- throw failure;
325
- send(num, bytes);
326
- };
327
- await queue(firstBytes);
328
- await queue(second.value);
329
- for await (const bytes of { [Symbol.asyncIterator]: () => parts }) {
330
- if (failure !== undefined)
331
- break;
332
- await queue(bytes);
333
- }
334
- await Promise.all(inflight);
335
- if (failure !== undefined)
336
- throw failure;
337
- }
338
- catch (err) {
339
- await Promise.allSettled(inflight);
340
- throw await failUpload(s, bucket, up.id, false, failure ?? err);
341
- }
342
- const list = sums.map((x, i) => ({ number: i + 1, etag: x.md5 }));
343
- return complete(s, bucket, key, up.id, list, await composite(sums.map((x) => x.sha256)), false, opts.signal);
344
- }
345
- /** Copies length bytes of obj from start into write, continuing where it broke off after a passing failure. */
346
- async function fetchRange(s, bucket, key, obj, start, length, write, progress, signal) {
347
- let done = 0;
348
- for (let attempt = 0; length > 0; attempt++) {
349
- try {
350
- const r = await s.getObject(bucket, key, { range: { start: start + done, end: start + length - 1 }, ifMatch: obj.etag, signal });
351
- const reader = r.body.getReader();
352
- try {
353
- for (;;) {
354
- let chunk;
355
- try {
356
- chunk = await reader.read();
357
- }
358
- catch (err) {
359
- if (signal?.aborted)
360
- throw signal.reason;
361
- throw new errors_js_1.ConnectionError('the download broke off', err);
362
- }
363
- if (chunk.done)
364
- break;
365
- await write(start + done, chunk.value);
366
- done += chunk.value.length;
367
- progress.add(chunk.value.length);
368
- }
369
- }
370
- finally {
371
- reader.releaseLock();
372
- }
373
- if (done < length)
374
- throw new errors_js_1.ConnectionError('the download ended early');
375
- return;
376
- }
377
- catch (err) {
378
- if (err instanceof errors_js_1.ObjectChangedError || !(0, errors_js_1.isRetryable)(err) || attempt >= s.client.maxRetries || signal?.aborted)
379
- throw err;
380
- await s.client.sleep((0, client_js_1.backoff)(attempt, err), signal);
381
- }
382
- }
383
- }
384
- /** Stats the object, opens a writer for it, and fetches it as ranges, concurrency at a time. */
385
- async function fetchAll(s, bucket, key, open, opts) {
386
- const obj = await s.statObject(bucket, key, opts.signal);
387
- const write = open(obj);
388
- const size = opts.partSize || exports.DEFAULT_PART_SIZE;
389
- const progress = new Progress(obj.size, opts.onProgress);
390
- const ranges = [];
391
- for (let off = 0; off < obj.size; off += size)
392
- ranges.push(off);
393
- await parallel(ranges, opts.concurrency ?? exports.DEFAULT_CONCURRENCY, opts.signal, (off, signal) => fetchRange(s, bucket, key, obj, off, Math.min(size, obj.size - off), write, progress, signal));
394
- return obj;
395
- }
396
- /** Downloads into memory and checks objects stored in one request against their SHA-256. For large files use downloadTo. */
397
- async function download(s, bucket, key, opts = {}) {
398
- let data = new Uint8Array();
399
- const object = await fetchAll(s, bucket, key, (obj) => {
400
- data = new Uint8Array(obj.size);
401
- return (off, chunk) => data.set(chunk, off);
402
- }, opts);
403
- if (!opts.skipVerify && object.partCount === 0 && object.checksumSha256 && (await sha256Hex(data)) !== object.checksumSha256) {
404
- throw new errors_js_1.ChecksumMismatchError();
405
- }
406
- return { object, data };
407
- }
408
- exports.download = download;
409
- /** Downloads into sink, as parallel ranges pinned to one version of the object. Does not check the checksum; @teepin/sdk/node's downloadFile does. */
410
- async function downloadTo(s, bucket, key, sink, opts = {}) {
411
- return fetchAll(s, bucket, key, () => (off, chunk) => sink.write(off, chunk), opts);
412
- }
413
- exports.downloadTo = downloadTo;
414
81
  //# sourceMappingURL=transfer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/transfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../src/transfer.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  // Copyright 2026 TEEPIN Project
2
2
  // Licensed under the Apache License, Version 2.0
3
+ import { CONCURRENCY_ENV, DEFAULT_UPLOAD_WAIT_MS, envNumber, MAX_CONCURRENCY, UPLOAD_WAIT_ENV } from './direct/engine.js';
3
4
  import { apiError, APIError, ConnectionError, TeepinError } from './errors.js';
4
5
  import { InferenceService } from './inference.js';
5
6
  import { InstancesService } from './instances.js';
6
7
  import { StorageService } from './storage.js';
7
8
  /** This SDK's version, sent in the User-Agent where the runtime allows it. */
8
- export const VERSION = '0.2.0';
9
+ export const VERSION = '0.3.0-rc.1';
9
10
  /** The public API. */
10
11
  export const DEFAULT_BASE_URL = 'https://api.teepin.com';
11
12
  /** An environment variable, where there is an environment (Node, Deno, Bun;
@@ -34,8 +35,17 @@ export class TeepinClient {
34
35
  inference;
35
36
  apiKey;
36
37
  projectId;
38
+ /** Milliseconds one call that is not a transfer may take; also how long a storage read waits for its next bytes. */
37
39
  timeout;
38
40
  maxRetries;
41
+ /** Milliseconds a read keeps a data key (ClientConfig.keyCacheTtl); 0 keeps none. */
42
+ keyCacheTtl;
43
+ /** Milliseconds an upload waits for storage to come back (ClientConfig.uploadWait); 0 fails at once. */
44
+ uploadWait;
45
+ /** The most packs or parts in flight at once (ClientConfig.uploadConcurrency). */
46
+ uploadConcurrency;
47
+ /** Where upload runs keep their journals (ClientConfig.stateDir); undefined for the default. */
48
+ stateDir;
39
49
  fetchImpl;
40
50
  /** Waits between retries; replaced in tests. */
41
51
  sleep = sleep;
@@ -45,6 +55,12 @@ export class TeepinClient {
45
55
  this.projectId = config.projectId;
46
56
  this.timeout = config.timeout ?? 60000;
47
57
  this.maxRetries = Math.max(0, config.maxRetries ?? 4);
58
+ // 0 turns the cache off (every read fetches its key); undefined is the default. NaN keeps none.
59
+ this.keyCacheTtl = config.keyCacheTtl === undefined ? 600000 : Math.max(0, config.keyCacheTtl) || 0;
60
+ // 0 is a real choice (don't wait out an outage); only undefined takes the environment's or the default. NaN is 0.
61
+ this.uploadWait = config.uploadWait === undefined ? envNumber(UPLOAD_WAIT_ENV, DEFAULT_UPLOAD_WAIT_MS / 1000) * 1000 : Math.max(0, config.uploadWait) || 0;
62
+ this.uploadConcurrency = Math.max(1, Math.floor(config.uploadConcurrency || envNumber(CONCURRENCY_ENV, MAX_CONCURRENCY)));
63
+ this.stateDir = config.stateDir || undefined;
48
64
  const f = config.fetch ?? globalThis.fetch;
49
65
  if (!f)
50
66
  throw new TeepinError('no fetch: use Node 20 or later, or pass config.fetch');
@@ -84,9 +100,28 @@ export class TeepinClient {
84
100
  const mode = method === 'GET' || method === 'DELETE' ? 'safe' : 'unsent';
85
101
  return (await this.call({ method, path, json, mode })).data;
86
102
  }
87
- /** An API path as an absolute URL. */
88
- absolute(path) {
89
- return /^https?:\/\//.test(path) ? path : this.baseUrl + path;
103
+ /**
104
+ * Sends a request the control plane signed for the storage network, once: without the API key, and with no retries
105
+ * (the direct engine decides). Resolves once the answer's headers are in, its body then bounded by signal; throws
106
+ * ConnectionError when no answer came (an abort throws the signal's reason) and APIError for an error answer.
107
+ */
108
+ async sendSigned(req) {
109
+ let response;
110
+ try {
111
+ response = await this.fetchImpl(req.url, { method: req.method, headers: req.headers, body: req.body, signal: req.signal });
112
+ }
113
+ catch (err) {
114
+ if (req.signal?.aborted)
115
+ throw req.signal.reason ?? err;
116
+ throw new ConnectionError(`${req.method} to the storage network: ${err instanceof Error ? err.message : String(err)}`, err);
117
+ }
118
+ if (response.status >= 400)
119
+ throw await decodeError(response);
120
+ return response;
121
+ }
122
+ /** Zeroes the data keys storage reads keep in memory. The client still works: later reads fetch their keys again. */
123
+ close() {
124
+ this.storage.close();
90
125
  }
91
126
  async sendOnce(req, payload) {
92
127
  let url = this.baseUrl + req.path;
@@ -150,6 +185,7 @@ async function decodeError(response) {
150
185
  let code;
151
186
  let type;
152
187
  let deleteAfter;
188
+ let details;
153
189
  const text = await response.text().catch(() => '');
154
190
  try {
155
191
  const body = JSON.parse(text);
@@ -164,6 +200,7 @@ async function decodeError(response) {
164
200
  code = body.code;
165
201
  if (body.delete_after)
166
202
  deleteAfter = new Date(body.delete_after);
203
+ details = body;
167
204
  }
168
205
  }
169
206
  catch {
@@ -178,6 +215,7 @@ async function decodeError(response) {
178
215
  requestId: response.headers.get('X-Request-ID') ?? undefined,
179
216
  retryAfterMs: retry > 0 ? retry * 1000 : undefined,
180
217
  deleteAfter,
218
+ details,
181
219
  });
182
220
  }
183
221
  /** Teepin's own answers that say a billed call was refused before it ran, by status. */
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,iDAAiD;AAEjD,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1H,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,8EAA8E;AAC9E,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;AAEpC,sBAAsB;AACtB,MAAM,CAAC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAmGzD;2BAC2B;AAC3B,SAAS,GAAG,CAAC,IAAY;IACvB,MAAM,IAAI,GAAI,UAAyE,CAAC,OAAO,CAAC;IAChG,OAAO,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;AACxC,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAY;IACd,OAAO,CAAS;IACzB,2BAA2B;IAClB,SAAS,CAAmB;IACrC,sDAAsD;IAC7C,OAAO,CAAiB;IACjC,oFAAoF;IAC3E,SAAS,CAAmB;IAEpB,MAAM,CAAU;IAChB,SAAS,CAAU;IACpC,oHAAoH;IAC3G,OAAO,CAAS;IAChB,UAAU,CAAS;IAC5B,qFAAqF;IAC5E,WAAW,CAAS;IAC7B,wGAAwG;IAC/F,UAAU,CAAS;IAC5B,kFAAkF;IACzE,iBAAiB,CAAS;IACnC,gGAAgG;IACvF,QAAQ,CAAU;IACV,SAAS,CAAe;IACzC,gDAAgD;IAChD,KAAK,GAAwD,KAAK,CAAC;IAEnE,YAAY,SAAuB,EAAE;QACnC,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC,iBAAiB,CAAC,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAClG,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAM,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;QACtD,gGAAgG;QAChG,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,MAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACrG,kHAAkH;QAClH,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,EAAE,sBAAsB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3J,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,IAAI,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1H,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC;QAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,sDAAsD,CAAC,CAAC;QACtF,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,oHAAoH;IACpH,KAAK,CAAC,IAAI,CAAC,GAAY;QACrB,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE;YACjC,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAChE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;aACrD;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,GAAG,YAAY,WAAW;oBAAE,GAAG,CAAC,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC;gBAC3D,IAAI,OAAO,IAAI,UAAU,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO;oBAAE,MAAM,GAAG,CAAC;gBACpF,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;aACtE;SACF;IACH,CAAC;IAED,0GAA0G;IAC1G,KAAK,CAAC,IAAI,CAAI,GAAY;QACxB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,EAAE,IAAI,EAAE,SAAc,EAAE,QAAQ,EAAE,CAAC;QACvE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAM,EAAE,QAAQ,EAAE,CAAC;IACxE,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,OAAO,CAAc,MAAc,EAAE,IAAY,EAAE,IAAc;QACrE,MAAM,IAAI,GAAc,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpF,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,GAAkB;QACjC,IAAI,QAAkB,CAAC;QACvB,IAAI;YACF,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;SAC5H;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO;gBAAE,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;YACxD,MAAM,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC,MAAM,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;SAC7H;QACD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;YAAE,MAAM,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC9D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qHAAqH;IACrH,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,GAAY,EAAE,OAAgB;QACnD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QAClC,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,CAAC,MAAM;YAAE,GAAG,IAAI,GAAG,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE7F,MAAM,OAAO,GAA2B,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3D,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,EAAE,CAAC;QACpE,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7D,IAAI,IAA0B,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,EAAE;YACZ,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,cAAc,CAAC,KAAK,0BAA0B,CAAC;SACxD;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE;YAChC,IAAI,GAAG,OAAO,CAAC;YACf,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;SAC9C;QACD,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,YAAY,CAAC,GAAG,eAAe,OAAO,EAAE,CAAC;QAEpF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5G,IAAI,QAAkB,CAAC;QACvB,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI;YACF,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACpF,IAAI,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE;gBACvC,6FAA6F;gBAC7F,SAAS,GAAG,IAAI,CAAC;gBACjB,SAAS,EAAE,CAAC;aACb;iBAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;gBACvC,8DAA8D;gBAC9D,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC3C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;gBACjE,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;oBAC5C,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;iBAC1B,CAAC,CAAC;aACJ;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO;gBAAE,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;YACxD,MAAM,IAAI,eAAe,CAAC,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;SAClH;gBAAS;YACR,IAAI,CAAC,SAAS;gBAAE,IAAI,EAAE,CAAC;SACxB;QACD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;YAAE,MAAM,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC9D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;CACF;AAED,KAAK,UAAU,WAAW,CAAC,QAAkB;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAC1D,IAAI,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC/D,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAAwB,CAAC;IAC7B,IAAI,WAA6B,CAAC;IAClC,IAAI,OAA4C,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IACnD,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAI3B,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAChD,yEAAyE;YACzE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC;YACxC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;YACpC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SACxB;aAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE;YAClC,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC;YAChC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjB,IAAI,IAAI,CAAC,YAAY;gBAAE,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjE,OAAO,GAAG,IAA+B,CAAC;SAC3C;KACF;IAAC,MAAM;QACN,IAAI,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;KACtD;IACD,OAAO,QAAQ,CAAC;QACd,UAAU,EAAE,QAAQ,CAAC,MAAM;QAC3B,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS;QAC5D,YAAY,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS;QAClD,WAAW;QACX,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,wFAAwF;AACxF,MAAM,aAAa,GAA6B;IAC9C,GAAG,EAAE,CAAC,gBAAgB,CAAC;IACvB,GAAG,EAAE,CAAC,gBAAgB,CAAC;IACvB,GAAG,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;CAClD,CAAC;AAEF,oGAAoG;AACpG,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAExE;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY,EAAE,KAAK,GAAG,CAAC;IACrD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/D,MAAM,CAAC,GAAG,GAA4D,CAAC;IACvE,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpH,OAAO,eAAe,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,SAAS,CAAC,GAAY,EAAE,GAAY;IAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;QACzB,IAAI,GAAG,YAAY,eAAe;YAAE,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,CAAC,GAAG,YAAY,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7C,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACxC,2GAA2G;QAC3G,OAAO,GAAG,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACpF;IACD,IAAI,GAAG,YAAY,eAAe,EAAE;QAClC,4EAA4E;QAC5E,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,MAAM,CAAC;KACxC;IACD,IAAI,CAAC,CAAC,GAAG,YAAY,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,QAAQ,GAAG,CAAC,UAAU,EAAE;QACtB,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC,CAAC,yDAAyD;QACnE,KAAK,GAAG,EAAE,8DAA8D;YACtE,OAAO,IAAI,CAAC;QACd,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,MAAM,CAAC;KAC1C;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,GAAY;IACnD,IAAI,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,KAAM,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,OAAO,EAAE,KAAM,CAAC,CAAC;IACrD,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,GAAG,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,EAAE,OAAO;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;YACxB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC;QACF,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAClB,MAA+B,EAC/B,EAAU;IAEV,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IACxE,MAAM,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,MAAM,EAAE,OAAO;QAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,EAAE;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;KACrC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,42 @@
1
+ // Copyright 2026 TEEPIN Project
2
+ // Licensed under the Apache License, Version 2.0
3
+ // Byte helpers the direct-storage formats share.
4
+ /** The bytes of parts, joined into one new array. */
5
+ export function concat(parts) {
6
+ let n = 0;
7
+ for (const p of parts)
8
+ n += p.length;
9
+ const out = new Uint8Array(n);
10
+ let off = 0;
11
+ for (const p of parts) {
12
+ out.set(p, off);
13
+ off += p.length;
14
+ }
15
+ return out;
16
+ }
17
+ /** Whether a and b hold the same bytes, in time that depends only on their lengths. */
18
+ export function constantTimeEqual(a, b) {
19
+ if (a.length !== b.length)
20
+ return false;
21
+ let d = 0;
22
+ for (let i = 0; i < a.length; i++)
23
+ d |= a[i] ^ b[i];
24
+ return d === 0;
25
+ }
26
+ /** A string's UTF-8 bytes. */
27
+ export function utf8(s) {
28
+ return new TextEncoder().encode(s);
29
+ }
30
+ /** The bytes of a base64 string (atob is in Node 16+ and every browser). */
31
+ export function fromBase64(s) {
32
+ const bin = atob(s);
33
+ const out = new Uint8Array(bin.length);
34
+ for (let i = 0; i < bin.length; i++)
35
+ out[i] = bin.charCodeAt(i);
36
+ return out;
37
+ }
38
+ /** Whether n is a whole number JavaScript holds exactly. */
39
+ export function isInt(n) {
40
+ return Number.isSafeInteger(n);
41
+ }
42
+ //# sourceMappingURL=bytes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../../src/direct/bytes.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,iDAAiD;AAEjD,iDAAiD;AAEjD,qDAAqD;AACrD,MAAM,UAAU,MAAM,CAAC,KAAmB;IACxC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACrC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;QACrB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAChB,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC;KACjB;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,CAAa,EAAE,CAAa;IAC5D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,IAAI,CAAC,CAAS;IAC5B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,CAAS;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,KAAK,CAAC,CAAS;IAC7B,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC"}