@ardrive/turbo-sdk 1.43.0-alpha.2 → 1.43.0-alpha.3

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.
@@ -41,13 +41,14 @@ const chunkingHeader = { 'x-chunking-version': '2' };
41
41
  * uploading them in parallel, and emitting progress/error events.
42
42
  */
43
43
  class ChunkedUploader {
44
- constructor({ http, token, maxChunkConcurrency = exports.defaultMaxChunkConcurrency, maxFinalizeMs, chunkByteCount = exports.defaultChunkByteCount, logger = logger_js_1.Logger.default, chunkingMode = 'auto', dataItemByteCount, x402, x402RefundIdentity, }) {
44
+ constructor({ http, token, maxChunkConcurrency = exports.defaultMaxChunkConcurrency, maxFinalizeMs, chunkByteCount = exports.defaultChunkByteCount, logger = logger_js_1.Logger.default, chunkingMode = 'auto', dataItemByteCount, x402, x402RefundIdentity, paidUploadId, }) {
45
45
  this.assertChunkParams({
46
46
  chunkByteCount,
47
47
  chunkingMode,
48
48
  maxChunkConcurrency,
49
49
  maxFinalizeMs,
50
50
  });
51
+ this.paidUploadId = paidUploadId;
51
52
  this.chunkByteCount = chunkByteCount;
52
53
  this.maxChunkConcurrency = maxChunkConcurrency;
53
54
  this.maxFinalizeMs = maxFinalizeMs;
@@ -145,6 +146,14 @@ class ChunkedUploader {
145
146
  this.paidUploadId = res.id;
146
147
  return res.id;
147
148
  }
149
+ /**
150
+ * The paid upload id, once one has been bought. `uploadFile` reads this after
151
+ * a failed attempt so the next attempt resumes the upload already paid for
152
+ * rather than buying a second one.
153
+ */
154
+ get currentPaidUploadId() {
155
+ return this.paidUploadId;
156
+ }
148
157
  async initUpload() {
149
158
  if (this.x402 !== undefined) {
150
159
  return this.initPaidUpload(this.x402);
@@ -228,6 +228,11 @@ class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUploadServ
228
228
  }
229
229
  this.logger.debug('Starting file upload', { params });
230
230
  let retries = 0;
231
+ // Carried ACROSS retry attempts. A paid chunked upload is bought before any
232
+ // chunk is accepted, so an attempt that fails after paying must hand its
233
+ // upload id to the next attempt. Rebuilding the uploader with no id is how
234
+ // a single upload gets billed once per retry.
235
+ let paidUploadId;
231
236
  const maxRetries = this.retryConfig.retries ?? 3;
232
237
  const retryDelay = this.retryConfig.retryDelay ??
233
238
  ((retryNumber) => retryNumber * 1000);
@@ -283,6 +288,7 @@ class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUploadServ
283
288
  dataItemByteCount: dataItemSizeFactory(),
284
289
  chunkingMode: params.chunkingMode,
285
290
  maxFinalizeMs: params.maxFinalizeMs,
291
+ paidUploadId,
286
292
  ...(x402Options ? { x402: x402Options } : {}),
287
293
  ...(x402Options
288
294
  ? {
@@ -294,14 +300,21 @@ class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUploadServ
294
300
  : {}),
295
301
  });
296
302
  if (chunkedUploader.shouldUseChunkUploader) {
297
- const response = await chunkedUploader.upload({
298
- dataItemStreamFactory,
299
- dataItemSizeFactory,
300
- dataItemOpts,
301
- signal,
302
- events,
303
- });
304
- return { ...response, cryptoFundResult };
303
+ try {
304
+ const response = await chunkedUploader.upload({
305
+ dataItemStreamFactory,
306
+ dataItemSizeFactory,
307
+ dataItemOpts,
308
+ signal,
309
+ events,
310
+ });
311
+ return { ...response, cryptoFundResult };
312
+ }
313
+ finally {
314
+ // Read on the way out, success or failure. On failure this is the
315
+ // whole point: the next attempt resumes what this one paid for.
316
+ paidUploadId = chunkedUploader.currentPaidUploadId ?? paidUploadId;
317
+ }
305
318
  }
306
319
  const response = await this.uploadSignedDataItem({
307
320
  dataItemStreamFactory,
@@ -35,13 +35,14 @@ const chunkingHeader = { 'x-chunking-version': '2' };
35
35
  * uploading them in parallel, and emitting progress/error events.
36
36
  */
37
37
  export class ChunkedUploader {
38
- constructor({ http, token, maxChunkConcurrency = defaultMaxChunkConcurrency, maxFinalizeMs, chunkByteCount = defaultChunkByteCount, logger = Logger.default, chunkingMode = 'auto', dataItemByteCount, x402, x402RefundIdentity, }) {
38
+ constructor({ http, token, maxChunkConcurrency = defaultMaxChunkConcurrency, maxFinalizeMs, chunkByteCount = defaultChunkByteCount, logger = Logger.default, chunkingMode = 'auto', dataItemByteCount, x402, x402RefundIdentity, paidUploadId, }) {
39
39
  this.assertChunkParams({
40
40
  chunkByteCount,
41
41
  chunkingMode,
42
42
  maxChunkConcurrency,
43
43
  maxFinalizeMs,
44
44
  });
45
+ this.paidUploadId = paidUploadId;
45
46
  this.chunkByteCount = chunkByteCount;
46
47
  this.maxChunkConcurrency = maxChunkConcurrency;
47
48
  this.maxFinalizeMs = maxFinalizeMs;
@@ -139,6 +140,14 @@ export class ChunkedUploader {
139
140
  this.paidUploadId = res.id;
140
141
  return res.id;
141
142
  }
143
+ /**
144
+ * The paid upload id, once one has been bought. `uploadFile` reads this after
145
+ * a failed attempt so the next attempt resumes the upload already paid for
146
+ * rather than buying a second one.
147
+ */
148
+ get currentPaidUploadId() {
149
+ return this.paidUploadId;
150
+ }
142
151
  async initUpload() {
143
152
  if (this.x402 !== undefined) {
144
153
  return this.initPaidUpload(this.x402);
@@ -224,6 +224,11 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
224
224
  }
225
225
  this.logger.debug('Starting file upload', { params });
226
226
  let retries = 0;
227
+ // Carried ACROSS retry attempts. A paid chunked upload is bought before any
228
+ // chunk is accepted, so an attempt that fails after paying must hand its
229
+ // upload id to the next attempt. Rebuilding the uploader with no id is how
230
+ // a single upload gets billed once per retry.
231
+ let paidUploadId;
227
232
  const maxRetries = this.retryConfig.retries ?? 3;
228
233
  const retryDelay = this.retryConfig.retryDelay ??
229
234
  ((retryNumber) => retryNumber * 1000);
@@ -279,6 +284,7 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
279
284
  dataItemByteCount: dataItemSizeFactory(),
280
285
  chunkingMode: params.chunkingMode,
281
286
  maxFinalizeMs: params.maxFinalizeMs,
287
+ paidUploadId,
282
288
  ...(x402Options ? { x402: x402Options } : {}),
283
289
  ...(x402Options
284
290
  ? {
@@ -290,14 +296,21 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
290
296
  : {}),
291
297
  });
292
298
  if (chunkedUploader.shouldUseChunkUploader) {
293
- const response = await chunkedUploader.upload({
294
- dataItemStreamFactory,
295
- dataItemSizeFactory,
296
- dataItemOpts,
297
- signal,
298
- events,
299
- });
300
- return { ...response, cryptoFundResult };
299
+ try {
300
+ const response = await chunkedUploader.upload({
301
+ dataItemStreamFactory,
302
+ dataItemSizeFactory,
303
+ dataItemOpts,
304
+ signal,
305
+ events,
306
+ });
307
+ return { ...response, cryptoFundResult };
308
+ }
309
+ finally {
310
+ // Read on the way out, success or failure. On failure this is the
311
+ // whole point: the next attempt resumes what this one paid for.
312
+ paidUploadId = chunkedUploader.currentPaidUploadId ?? paidUploadId;
313
+ }
301
314
  }
302
315
  const response = await this.uploadSignedDataItem({
303
316
  dataItemStreamFactory,
@@ -16,13 +16,18 @@ export declare class ChunkedUploader {
16
16
  /**
17
17
  * The upload id of an x402 upload we have ALREADY PAID FOR.
18
18
  *
19
- * `uploadFile` retries a failed upload up to 6 times, and a retry re-enters
20
- * `upload()` on this same instance. Without this memo each retry opens a
21
- * NEW paid upload, so one 12 MiB upload whose finalization timed out billed
22
- * the customer five times over observed, not theoretical. The payment is
23
- * bound to an upload id, so a retry must resume THAT upload, never buy
24
- * another. Deliberately not reset on failure: re-paying is never the right
25
- * recovery, and an upload that cannot be resumed is refunded server-side.
19
+ * `uploadFile` retries a failed upload up to 6 times. Without this memo each
20
+ * retry opens a NEW paid upload, so one 12 MiB upload whose finalization
21
+ * timed out billed the customer five times over observed, not theoretical.
22
+ * The payment is bound to an upload id, so a retry must resume THAT upload,
23
+ * never buy another. Deliberately not reset on failure: re-paying is never
24
+ * the right recovery, and an upload that cannot be resumed is refunded
25
+ * server-side.
26
+ *
27
+ * A retry does NOT re-enter `upload()` on this instance: `uploadFile`
28
+ * constructs a fresh uploader each attempt, so this memo only survives
29
+ * because that caller reads {@link currentPaidUploadId} and hands it back
30
+ * through the constructor.
26
31
  */
27
32
  private paidUploadId;
28
33
  private readonly http;
@@ -38,7 +43,7 @@ export declare class ChunkedUploader {
38
43
  * that actually arrive and penalises an under-declaration.
39
44
  */
40
45
  private dataItemByteCount;
41
- constructor({ http, token, maxChunkConcurrency, maxFinalizeMs, chunkByteCount, logger, chunkingMode, dataItemByteCount, x402, x402RefundIdentity, }: {
46
+ constructor({ http, token, maxChunkConcurrency, maxFinalizeMs, chunkByteCount, logger, chunkingMode, dataItemByteCount, x402, x402RefundIdentity, paidUploadId, }: {
42
47
  maxFinalizeMs?: number;
43
48
  http: TurboHTTPService;
44
49
  token: string;
@@ -60,6 +65,12 @@ export declare class ChunkedUploader {
60
65
  address: string;
61
66
  signatureType: number;
62
67
  };
68
+ /**
69
+ * An upload this caller has ALREADY PAID FOR. `uploadFile` builds a new
70
+ * uploader per retry attempt, so the in-instance memo below cannot survive
71
+ * a retry on its own: the id has to be handed back in.
72
+ */
73
+ paidUploadId?: string;
63
74
  });
64
75
  private shouldChunkUpload;
65
76
  private assertChunkParams;
@@ -78,6 +89,12 @@ export declare class ChunkedUploader {
78
89
  * spend cap behave identically on both paths.
79
90
  */
80
91
  private initPaidUpload;
92
+ /**
93
+ * The paid upload id, once one has been bought. `uploadFile` reads this after
94
+ * a failed attempt so the next attempt resumes the upload already paid for
95
+ * rather than buying a second one.
96
+ */
97
+ get currentPaidUploadId(): string | undefined;
81
98
  private initUpload;
82
99
  upload({ dataItemSizeFactory, dataItemStreamFactory, dataItemOpts, signal, events, }: UploadSignedDataItemParams): Promise<TurboUploadDataItemResponse>;
83
100
  private toGiB;
@@ -1 +1 @@
1
- {"version":3,"file":"chunked.d.ts","sourceRoot":"","sources":["../../../src/common/chunked.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EACL,SAAS,EAET,iBAAiB,EACjB,WAAW,EAEX,2BAA2B,EAC3B,0BAA0B,EAC1B,sBAAsB,EAGvB,MAAM,aAAa,CAAC;AAKrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAK7C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAK5C,eAAO,MAAM,iBAAiB,QAAiB,CAAC;AAChD,eAAO,MAAM,iBAAiB,QAAU,CAAC;AACzC,eAAO,MAAM,qBAAqB,QAAoB,CAAC;AAKvD;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IAErC,SAAgB,sBAAsB,EAAE,OAAO,CAAC;IAChD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,IAAI,CAAqC;IACjD,OAAO,CAAC,kBAAkB,CAEZ;IACd;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAY;gBAEzB,EACV,IAAI,EACJ,KAAK,EACL,mBAAgD,EAChD,aAAa,EACb,cAAsC,EACtC,MAAuB,EACvB,YAAqB,EACrB,iBAAiB,EACjB,IAAI,EACJ,kBAAkB,GACnB,EAAE;QACD,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,EAAE,gBAAgB,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,WAAW,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,YAAY,CAAC,EAAE,iBAAiB,CAAC;QACjC,iBAAiB,EAAE,SAAS,CAAC;QAC7B,8DAA8D;QAC9D,IAAI,CAAC,EAAE,sBAAsB,CAAC;QAC9B;;;;;;WAMG;QACH,kBAAkB,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC;KACjE;IAwBD,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,iBAAiB;IAwDzB;;OAEG;IACH;;;;;;;;;;OAUG;YACW,cAAc;YAwCd,UAAU;IAwBX,MAAM,CAAC,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,MAAM,EACN,MAAM,GACP,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAwHpE,OAAO,CAAC,KAAK;YAIC,cAAc;CAoG7B;AAED;;;GAGG;AACH,wBAAuB,eAAe,CACpC,MAAM,EAAE,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,EAC7C,cAAc,EAAE,MAAM,GACrB,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAMvC;AACD,wBAAuB,uBAAuB,CAC5C,MAAM,EAAE,QAAQ,EAChB,cAAc,EAAE,MAAM,GACrB,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAkDvC;AAED,wBAAuB,6BAA6B,CAClD,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,cAAc,EAAE,MAAM,GACrB,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAyDvC"}
1
+ {"version":3,"file":"chunked.d.ts","sourceRoot":"","sources":["../../../src/common/chunked.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/common/upload.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/common/upload.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ardrive/turbo-sdk",
3
- "version": "1.43.0-alpha.2",
3
+ "version": "1.43.0-alpha.3",
4
4
  "main": "./lib/cjs/node/index.js",
5
5
  "types": "./lib/types/node/index.d.ts",
6
6
  "module": "./lib/esm/node/index.js",
@@ -65,6 +65,7 @@
65
65
  "examples": "yarn example:esm & yarn example:cjs & yarn example:ts:esm & yarn example:ts:cjs",
66
66
  "example:vite": "cd examples/vite && yarn && yarn start",
67
67
  "example:esm": "cd examples/esm && yarn && node index.mjs",
68
+ "example:folder-index": "cd examples/folder-index && yarn && node index.mjs",
68
69
  "example:cjs": "cd examples/cjs && yarn && node index.cjs",
69
70
  "example:web": "http-server --port 8080 --host -o examples/web",
70
71
  "example:ts:esm": "cd examples/typescript/esm && yarn && yarn test",