@ardrive/turbo-sdk 1.31.0-alpha.1 → 1.31.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.
Files changed (44) hide show
  1. package/README.md +36 -2
  2. package/bundles/web.bundle.min.js +342 -475
  3. package/lib/cjs/cli/commands/uploadFolder.js +2 -1
  4. package/lib/cjs/cli/options.js +5 -0
  5. package/lib/cjs/cli/utils.js +1 -0
  6. package/lib/cjs/common/chunked.js +88 -27
  7. package/lib/cjs/common/http.js +39 -4
  8. package/lib/cjs/common/payment.js +2 -1
  9. package/lib/cjs/common/upload.js +5 -6
  10. package/lib/cjs/types.js +13 -1
  11. package/lib/cjs/utils/axiosClient.js +3 -37
  12. package/lib/cjs/version.js +1 -1
  13. package/lib/esm/cli/commands/uploadFolder.js +2 -1
  14. package/lib/esm/cli/options.js +5 -0
  15. package/lib/esm/cli/utils.js +1 -0
  16. package/lib/esm/common/chunked.js +89 -28
  17. package/lib/esm/common/http.js +40 -5
  18. package/lib/esm/common/payment.js +2 -1
  19. package/lib/esm/common/upload.js +5 -6
  20. package/lib/esm/types.js +12 -0
  21. package/lib/esm/utils/axiosClient.js +3 -14
  22. package/lib/esm/version.js +1 -1
  23. package/lib/types/cli/commands/uploadFolder.d.ts.map +1 -1
  24. package/lib/types/cli/options.d.ts +13 -0
  25. package/lib/types/cli/options.d.ts.map +1 -1
  26. package/lib/types/cli/types.d.ts +1 -0
  27. package/lib/types/cli/types.d.ts.map +1 -1
  28. package/lib/types/cli/utils.d.ts +3 -10
  29. package/lib/types/cli/utils.d.ts.map +1 -1
  30. package/lib/types/common/chunked.d.ts +5 -1
  31. package/lib/types/common/chunked.d.ts.map +1 -1
  32. package/lib/types/common/http.d.ts +5 -3
  33. package/lib/types/common/http.d.ts.map +1 -1
  34. package/lib/types/common/payment.d.ts +1 -1
  35. package/lib/types/common/payment.d.ts.map +1 -1
  36. package/lib/types/common/upload.d.ts +2 -2
  37. package/lib/types/common/upload.d.ts.map +1 -1
  38. package/lib/types/types.d.ts +34 -2
  39. package/lib/types/types.d.ts.map +1 -1
  40. package/lib/types/utils/axiosClient.d.ts +8 -4
  41. package/lib/types/utils/axiosClient.d.ts.map +1 -1
  42. package/lib/types/version.d.ts +1 -1
  43. package/lib/types/version.d.ts.map +1 -1
  44. package/package.json +9 -10
@@ -15,12 +15,16 @@
15
15
  */
16
16
  import { CanceledError } from 'axios';
17
17
  import { pLimit } from 'plimit-lit';
18
- import { validChunkingModes, } from '../types.js';
18
+ import { multipartFailedStatus, validChunkingModes, } from '../types.js';
19
+ import { sleep } from '../utils/common.js';
20
+ import { FailedRequestError } from '../utils/errors.js';
19
21
  import { TurboEventEmitter, createStreamWithUploadEvents } from './events.js';
20
22
  import { TurboWinstonLogger } from './logger.js';
21
23
  const fiveMiB = 5 * 1024 * 1024; // 5 MiB
22
24
  const fiveHundredMiB = fiveMiB * 100; // 500 MiB
23
25
  export const defaultMaxChunkConcurrency = 5;
26
+ // Limit uploaders to protect server
27
+ const absoluteMaxChunkConcurrency = 256;
24
28
  export const maxChunkByteCount = fiveHundredMiB;
25
29
  export const minChunkByteCount = fiveMiB;
26
30
  export const defaultChunkByteCount = minChunkByteCount;
@@ -31,17 +35,19 @@ const chunkingHeader = { 'x-chunking-version': '2' };
31
35
  * uploading them in parallel, and emitting progress/error events.
32
36
  */
33
37
  export class ChunkedUploader {
34
- constructor({ http, token, maxChunkConcurrency = defaultMaxChunkConcurrency, chunkByteCount = defaultChunkByteCount, logger = TurboWinstonLogger.default, chunkingMode = 'auto', dataItemByteCount, }) {
35
- this.chunkByteCount = chunkByteCount;
36
- this.maxChunkConcurrency = maxChunkConcurrency;
37
- this.http = http;
38
- this.token = token;
39
- this.logger = logger;
38
+ constructor({ http, token, maxChunkConcurrency = defaultMaxChunkConcurrency, maxFinalizeMs, chunkByteCount = defaultChunkByteCount, logger = TurboWinstonLogger.default, chunkingMode = 'auto', dataItemByteCount, }) {
40
39
  this.assertChunkParams({
41
40
  chunkByteCount,
42
41
  chunkingMode,
43
42
  maxChunkConcurrency,
43
+ maxFinalizeMs,
44
44
  });
45
+ this.chunkByteCount = chunkByteCount;
46
+ this.maxChunkConcurrency = maxChunkConcurrency;
47
+ this.maxFinalizeMs = maxFinalizeMs;
48
+ this.http = http;
49
+ this.token = token;
50
+ this.logger = logger;
45
51
  this.shouldUseChunkUploader = this.shouldChunkUpload({
46
52
  chunkByteCount,
47
53
  chunkingMode,
@@ -59,11 +65,18 @@ export class ChunkedUploader {
59
65
  const isMoreThanTwoChunksOfData = dataItemByteCount > chunkByteCount * 2;
60
66
  return isMoreThanTwoChunksOfData;
61
67
  }
62
- assertChunkParams({ chunkByteCount, chunkingMode, maxChunkConcurrency, }) {
68
+ assertChunkParams({ chunkByteCount, chunkingMode, maxChunkConcurrency, maxFinalizeMs, }) {
69
+ if (maxFinalizeMs !== undefined &&
70
+ (Number.isNaN(maxFinalizeMs) ||
71
+ !Number.isInteger(maxFinalizeMs) ||
72
+ maxFinalizeMs < 0)) {
73
+ throw new Error('Invalid max finalization wait time. Must be a non-negative integer.');
74
+ }
63
75
  if (Number.isNaN(maxChunkConcurrency) ||
64
76
  !Number.isInteger(maxChunkConcurrency) ||
65
- maxChunkConcurrency < 1) {
66
- throw new Error('Invalid max chunk concurrency. Must be an integer of at least 1.');
77
+ maxChunkConcurrency < 1 ||
78
+ maxChunkConcurrency > absoluteMaxChunkConcurrency) {
79
+ throw new Error('Invalid max chunk concurrency. Must be an integer of at least 1 and at most 256.');
67
80
  }
68
81
  if (Number.isNaN(chunkByteCount) ||
69
82
  !Number.isInteger(chunkByteCount) ||
@@ -86,8 +99,8 @@ export class ChunkedUploader {
86
99
  });
87
100
  if (res.chunkSize !== this.chunkByteCount) {
88
101
  this.logger.warn('Chunk size mismatch! Overriding with server value.', {
89
- expected: this.chunkByteCount,
90
- actual: res.chunkSize,
102
+ clientExpected: this.chunkByteCount,
103
+ serverReturned: res.chunkSize,
91
104
  });
92
105
  this.chunkByteCount = res.chunkSize;
93
106
  }
@@ -131,11 +144,6 @@ export class ChunkedUploader {
131
144
  const chunkByteCount = chunk.length;
132
145
  const chunkOffset = currentOffset;
133
146
  currentOffset += chunkByteCount;
134
- this.logger.debug('Queueing chunk', {
135
- chunkPartNumber,
136
- chunkOffset,
137
- chunkByteCount,
138
- });
139
147
  const promise = limit(async () => {
140
148
  if (firstError !== undefined) {
141
149
  return;
@@ -191,26 +199,79 @@ export class ChunkedUploader {
191
199
  if (firstError !== undefined) {
192
200
  throw firstError;
193
201
  }
202
+ const finalizeResponse = await this.finalizeUpload(uploadId, dataItemByteCount, dataItemOpts?.paidBy, combinedSignal);
203
+ emitter.emit('upload-success');
204
+ return finalizeResponse;
205
+ }
206
+ toGiB(bytes) {
207
+ return bytes / 1024 ** 3;
208
+ }
209
+ async finalizeUpload(uploadId, dataItemByteCount, paidBy, signal) {
210
+ // Wait up to 1 minute per GiB of data for the upload to finalize
211
+ const fileSizeInGiB = Math.ceil(this.toGiB(dataItemByteCount));
212
+ const defaultMaxWaitTimeMins = fileSizeInGiB;
213
+ const maxWaitTimeMs = this.maxFinalizeMs ?? defaultMaxWaitTimeMins * 60 * 1000;
214
+ const minimumWaitPerStepMs =
215
+ // Per step, files smaller than 100MB will wait 2 second,
216
+ dataItemByteCount < 1024 * 1024 * 100
217
+ ? 2000
218
+ : // files smaller than 3 GiB will wait 3 seconds,
219
+ dataItemByteCount < 1024 * 1024 * 1024 * 3
220
+ ? 3000
221
+ : // and larger files will wait 1 second per GiB with max of 10 seconds
222
+ Math.max(1000 * fileSizeInGiB, 10000);
194
223
  const paidByHeader = {};
195
- if (dataItemOpts?.paidBy !== undefined) {
196
- paidByHeader['x-paid-by'] = Array.isArray(dataItemOpts.paidBy)
197
- ? dataItemOpts.paidBy.join(',')
198
- : dataItemOpts.paidBy;
224
+ if (paidBy !== undefined) {
225
+ paidByHeader['x-paid-by'] = Array.isArray(paidBy)
226
+ ? paidBy.join(',')
227
+ : paidBy;
199
228
  }
200
- // TODO: Async Finalize
201
- // Finalize and reconstruct server-side
202
- const finalizeResponse = await this.http.post({
203
- endpoint: `/chunks/${this.token}/${uploadId}/-1`,
229
+ await this.http.post({
230
+ endpoint: `/chunks/${this.token}/${uploadId}/finalize`,
204
231
  data: Buffer.alloc(0),
205
232
  headers: {
206
233
  'Content-Type': 'application/octet-stream',
207
234
  ...paidByHeader,
208
235
  ...chunkingHeader,
209
236
  },
210
- signal: combinedSignal,
237
+ signal,
211
238
  });
212
- emitter.emit('upload-success');
213
- return finalizeResponse;
239
+ this.logger.debug(`Confirming upload to Turbo with uploadId ${uploadId} for up to ${defaultMaxWaitTimeMins} minutes.`);
240
+ const startTime = Date.now();
241
+ const cutoffTime = startTime + maxWaitTimeMs;
242
+ let attempts = 0;
243
+ while (Date.now() < cutoffTime) {
244
+ // Wait for 3/4 of the time remaining per attempt or minimum step
245
+ const waitTimeMs = Math.min(Math.floor((cutoffTime - Date.now()) * (3 / 4)), minimumWaitPerStepMs);
246
+ await sleep(waitTimeMs);
247
+ if (signal?.aborted) {
248
+ this.logger.warn(`Upload finalization aborted by signal.`);
249
+ throw new CanceledError();
250
+ }
251
+ const response = await this.http.get({
252
+ endpoint: `/chunks/${this.token}/${uploadId}/status`,
253
+ signal,
254
+ });
255
+ this.logger.debug(`Upload status found: ${response.status}`, {
256
+ status: response.status,
257
+ attempts: attempts++,
258
+ maxWaitTimeMs,
259
+ minimumWaitPerStepMs,
260
+ waitTimeMs,
261
+ elapsedMs: Date.now() - startTime,
262
+ });
263
+ if (response.status === 'FINALIZED') {
264
+ this.logger.debug(`Upload finalized successfully.`);
265
+ return response.receipt;
266
+ }
267
+ if (response.status === 'UNDERFUNDED') {
268
+ throw new FailedRequestError(`Insufficient balance`, 402);
269
+ }
270
+ if (multipartFailedStatus.includes(response.status)) {
271
+ throw new FailedRequestError(`Upload failed with multi-part status ${response.status}`);
272
+ }
273
+ }
274
+ throw new Error(`Upload multi-part finalization has timed out for Upload ID ${uploadId}`);
214
275
  }
215
276
  }
216
277
  /**
@@ -14,27 +14,34 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { AxiosError, CanceledError } from 'axios';
17
- import { createAxiosInstance } from '../utils/axiosClient.js';
17
+ import { Readable } from 'node:stream';
18
+ import { createAxiosInstance, defaultRetryConfig, } from '../utils/axiosClient.js';
19
+ import { sleep } from '../utils/common.js';
18
20
  import { FailedRequestError } from '../utils/errors.js';
19
21
  export class TurboHTTPService {
20
- constructor({ url, retryConfig, logger, }) {
22
+ constructor({ url, logger, retryConfig = defaultRetryConfig(logger), }) {
21
23
  this.logger = logger;
22
24
  this.axios = createAxiosInstance({
23
25
  axiosConfig: {
24
26
  baseURL: url,
25
27
  maxRedirects: 0, // prevents backpressure issues when uploading larger streams via https
26
28
  },
27
- retryConfig,
28
29
  logger: this.logger,
29
30
  });
31
+ this.retryConfig = retryConfig;
30
32
  }
31
33
  async get({ endpoint, signal, allowedStatuses = [200, 202], headers, }) {
32
- return this.tryRequest(() => this.axios.get(endpoint, { headers, signal }), allowedStatuses);
34
+ return this.retryRequest(() => this.axios.get(endpoint, { headers, signal }), allowedStatuses);
33
35
  }
34
36
  async post({ endpoint, signal, allowedStatuses = [200, 202], headers, data, }) {
35
37
  // Buffer and Readable → keep Axios (streams work fine there)
36
38
  if (!(data instanceof ReadableStream)) {
37
- return this.tryRequest(() => this.axios.post(endpoint, data, { headers, signal }), allowedStatuses);
39
+ if (data instanceof Readable) {
40
+ return this.tryRequest(
41
+ // Can't retry a Readable stream that has already been partially consumed
42
+ () => this.axios.post(endpoint, data, { headers, signal }), allowedStatuses);
43
+ }
44
+ return this.retryRequest(() => this.axios.post(endpoint, data, { headers, signal }), allowedStatuses);
38
45
  }
39
46
  // Browser ReadableStream → use fetch with progressive enhancement of duplex
40
47
  // Note: fetch does not support streams in Safari and Firefox, so we convert to Blob
@@ -92,6 +99,34 @@ export class TurboHTTPService {
92
99
  throw error;
93
100
  }
94
101
  }
102
+ async retryRequest(request, allowedStatuses) {
103
+ let attempt = 0;
104
+ let lastError;
105
+ while (attempt < this.retryConfig.retries) {
106
+ try {
107
+ const resp = await this.tryRequest(request, allowedStatuses);
108
+ return resp;
109
+ }
110
+ catch (error) {
111
+ if (error instanceof FailedRequestError) {
112
+ lastError = error;
113
+ this.retryConfig.onRetry(attempt + 1, error);
114
+ if (error.status !== undefined &&
115
+ error.status >= 400 &&
116
+ error.status < 500) {
117
+ // If it's a client error, we can stop retrying
118
+ throw error;
119
+ }
120
+ await sleep(this.retryConfig.retryDelay(attempt + 1));
121
+ attempt++;
122
+ }
123
+ else {
124
+ throw error;
125
+ }
126
+ }
127
+ }
128
+ throw new FailedRequestError('Max retries reached - ' + lastError?.message, lastError?.status);
129
+ }
95
130
  }
96
131
  async function toFetchBody(data) {
97
132
  if (!navigator.userAgent.includes('Firefox') &&
@@ -14,13 +14,14 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { BigNumber } from 'bignumber.js';
17
+ import { defaultRetryConfig } from '../utils/axiosClient.js';
17
18
  import { TurboHTTPService } from './http.js';
18
19
  import { TurboWinstonLogger } from './logger.js';
19
20
  import { exponentMap, tokenToBaseMap } from './token/index.js';
20
21
  export const developmentPaymentServiceURL = 'https://payment.ardrive.dev';
21
22
  export const defaultPaymentServiceURL = 'https://payment.ardrive.io';
22
23
  export class TurboUnauthenticatedPaymentService {
23
- constructor({ url = defaultPaymentServiceURL, retryConfig, logger = TurboWinstonLogger.default, token = 'arweave', }) {
24
+ constructor({ url = defaultPaymentServiceURL, logger = TurboWinstonLogger.default, retryConfig = defaultRetryConfig(logger), token = 'arweave', }) {
24
25
  this.logger = logger;
25
26
  this.httpService = new TurboHTTPService({
26
27
  url: `${url}/v1`,
@@ -188,6 +188,7 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
188
188
  logger: this.logger,
189
189
  dataItemByteCount: dataItemSizeFactory(),
190
190
  chunkingMode: params.chunkingMode,
191
+ maxFinalizeMs: params.maxFinalizeMs,
191
192
  });
192
193
  if (chunkedUploader.shouldUseChunkUploader) {
193
194
  const response = await chunkedUploader.upload({
@@ -230,13 +231,10 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
230
231
  resolve();
231
232
  });
232
233
  });
233
- await Promise.race([
234
- sleep(retryDelay(retries, error)),
235
- abortEventPromise,
236
- ]);
234
+ await Promise.race([sleep(retryDelay(retries)), abortEventPromise]);
237
235
  }
238
236
  }
239
- const msg = `Failed to upload file after ${maxRetries + 1} attempts\n${lastError instanceof Error ? lastError.message : lastError}`;
237
+ const msg = `Failed to upload file after ${retries + 1} attempts\n${lastError instanceof Error ? lastError.message : lastError}`;
240
238
  // After all retries, throw the last error for catching
241
239
  if (lastError instanceof FailedRequestError) {
242
240
  lastError.message = msg;
@@ -287,7 +285,7 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
287
285
  */
288
286
  async uploadFolder(params) {
289
287
  this.logger.debug('Uploading folder...', { params });
290
- const { dataItemOpts, signal, manifestOptions = {}, maxConcurrentUploads = 1, throwOnFailure = true, maxChunkConcurrency, chunkByteCount, chunkingMode, } = params;
288
+ const { dataItemOpts, signal, manifestOptions = {}, maxConcurrentUploads = 1, throwOnFailure = true, maxChunkConcurrency, chunkByteCount, chunkingMode, maxFinalizeMs, } = params;
291
289
  const { disableManifest, indexFile, fallbackFile } = manifestOptions;
292
290
  const paths = {};
293
291
  const response = {
@@ -361,6 +359,7 @@ export class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUpl
361
359
  dataItemOpts: { ...dataItemOpts, tags: tagsWithManifestContentType },
362
360
  chunkByteCount,
363
361
  maxChunkConcurrency,
362
+ maxFinalizeMs,
364
363
  chunkingMode,
365
364
  });
366
365
  return {
package/lib/esm/types.js CHANGED
@@ -23,6 +23,18 @@ export const tokenTypes = [
23
23
  'pol',
24
24
  'base-eth',
25
25
  ];
26
+ export const multipartPendingStatus = [
27
+ 'ASSEMBLING',
28
+ 'VALIDATING',
29
+ 'FINALIZING',
30
+ ];
31
+ export const multipartFailedStatus = [
32
+ 'UNDERFUNDED',
33
+ 'INVALID',
34
+ 'APPROVAL_FAILED',
35
+ 'REVOKE_FAILED',
36
+ ];
37
+ export const multipartFinalizedStatus = ['FINALIZED'];
26
38
  export const isNodeUploadFolderParams = (p) => p.folderPath !== undefined;
27
39
  export const isWebUploadFolderParams = (p) => p.files !== undefined;
28
40
  export function isKyvePrivateKey(wallet) {
@@ -13,8 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import axios, { CanceledError } from 'axios';
17
- import axiosRetry from 'axios-retry';
16
+ import axios from 'axios';
18
17
  import { TurboWinstonLogger } from '../common/logger.js';
19
18
  import { version } from '../version.js';
20
19
  export const defaultRequestHeaders = {
@@ -22,18 +21,13 @@ export const defaultRequestHeaders = {
22
21
  'x-turbo-source-identifier': 'turbo-sdk',
23
22
  };
24
23
  export const defaultRetryConfig = (logger = TurboWinstonLogger.default) => ({
25
- retryDelay: axiosRetry.exponentialDelay,
24
+ retryDelay: (retryCount) => Math.min(1000 * 2 ** (retryCount - 1), 30 * 1000), // exponential backoff up to 30s
26
25
  retries: 5,
27
- retryCondition: (error) => {
28
- return (!(error instanceof CanceledError) &&
29
- axiosRetry.isIdempotentRequestError(error) &&
30
- axiosRetry.isNetworkError(error));
31
- },
32
26
  onRetry: (retryCount, error) => {
33
27
  logger.debug(`Request failed, ${error}. Retry attempt #${retryCount}...`);
34
28
  },
35
29
  });
36
- export const createAxiosInstance = ({ logger = TurboWinstonLogger.default, axiosConfig = {}, retryConfig = defaultRetryConfig(logger), } = {}) => {
30
+ export const createAxiosInstance = ({ axiosConfig = {}, } = {}) => {
37
31
  const axiosInstance = axios.create({
38
32
  ...axiosConfig,
39
33
  headers: {
@@ -43,10 +37,5 @@ export const createAxiosInstance = ({ logger = TurboWinstonLogger.default, axios
43
37
  adapter: 'fetch',
44
38
  validateStatus: () => true, // don't throw on non-200 status codes
45
39
  });
46
- if (retryConfig.retries !== undefined && retryConfig.retries > 0) {
47
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
48
- // @ts-ignore
49
- axiosRetry(axiosInstance, retryConfig);
50
- }
51
40
  return axiosInstance;
52
41
  };
@@ -14,4 +14,4 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  // AUTOMATICALLY GENERATED FILE - DO NOT TOUCH
17
- export const version = '1.31.0-alpha.1';
17
+ export const version = '1.31.0-alpha.3';
@@ -1 +1 @@
1
- {"version":3,"file":"uploadFolder.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/uploadFolder.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAQlD,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAgCf"}
1
+ {"version":3,"file":"uploadFolder.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/uploadFolder.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAQlD,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAkCf"}
@@ -160,6 +160,10 @@ export declare const optionMap: {
160
160
  readonly alias: "--max-chunk-concurrency <maxChunkConcurrency>";
161
161
  readonly description: "Maximum number of concurrent chunks to upload per file";
162
162
  };
163
+ readonly maxFinalizeMs: {
164
+ readonly alias: "--max-finalize-ms <maxFinalizeMs>";
165
+ readonly description: "Maximum time in milliseconds to wait for the finalization of all chunks after the last chunk is uploaded. Defaults to 1 minute per GiB of the total file size.";
166
+ };
163
167
  readonly chunkByteCount: {
164
168
  readonly alias: "--chunk-byte-count <chunkByteCount>";
165
169
  readonly description: "Size of each chunk in bytes";
@@ -245,6 +249,9 @@ export declare const uploadOptions: ({
245
249
  } | {
246
250
  readonly alias: "--max-chunk-concurrency <maxChunkConcurrency>";
247
251
  readonly description: "Maximum number of concurrent chunks to upload per file";
252
+ } | {
253
+ readonly alias: "--max-finalize-ms <maxFinalizeMs>";
254
+ readonly description: "Maximum time in milliseconds to wait for the finalization of all chunks after the last chunk is uploaded. Defaults to 1 minute per GiB of the total file size.";
248
255
  } | {
249
256
  readonly alias: "--chunk-byte-count <chunkByteCount>";
250
257
  readonly description: "Size of each chunk in bytes";
@@ -297,6 +304,9 @@ export declare const uploadFolderOptions: ({
297
304
  } | {
298
305
  readonly alias: "--max-chunk-concurrency <maxChunkConcurrency>";
299
306
  readonly description: "Maximum number of concurrent chunks to upload per file";
307
+ } | {
308
+ readonly alias: "--max-finalize-ms <maxFinalizeMs>";
309
+ readonly description: "Maximum time in milliseconds to wait for the finalization of all chunks after the last chunk is uploaded. Defaults to 1 minute per GiB of the total file size.";
300
310
  } | {
301
311
  readonly alias: "--chunk-byte-count <chunkByteCount>";
302
312
  readonly description: "Size of each chunk in bytes";
@@ -336,6 +346,9 @@ export declare const uploadFileOptions: ({
336
346
  } | {
337
347
  readonly alias: "--max-chunk-concurrency <maxChunkConcurrency>";
338
348
  readonly description: "Maximum number of concurrent chunks to upload per file";
349
+ } | {
350
+ readonly alias: "--max-finalize-ms <maxFinalizeMs>";
351
+ readonly description: "Maximum time in milliseconds to wait for the finalization of all chunks after the last chunk is uploaded. Defaults to 1 minute per GiB of the total file size.";
339
352
  } | {
340
353
  readonly alias: "--chunk-byte-count <chunkByteCount>";
341
354
  readonly description: "Size of each chunk in bytes";
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/cli/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoKZ,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;IAIzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASzB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAO/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAyC,CAAC;AAExE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;IAK/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;IAAwC,CAAC;AAE1E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;IAAuB,CAAC"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/cli/options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyKZ,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;;;IAIzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUzB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUzB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAO/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAyC,CAAC;AAExE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;IAK/B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;IAAwC,CAAC;AAE1E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;IAAuB,CAAC"}
@@ -45,6 +45,7 @@ export type UploadOptions = WalletOptions & {
45
45
  useSignerBalanceFirst: boolean;
46
46
  tags: string[] | undefined;
47
47
  maxChunkConcurrency: string | undefined;
48
+ maxFinalizeMs: string | undefined;
48
49
  chunkByteCount: string | undefined;
49
50
  chunkingMode: TurboChunkingMode | undefined;
50
51
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Command, OptionValues } from 'commander';
2
- import { Currency, TokenType, TurboAuthenticatedClient, TurboChunkingMode, TurboUnauthenticatedConfiguration } from '../node/index.js';
2
+ import { Currency, TokenType, TurboAuthenticatedClient, TurboChunkingParams, TurboUnauthenticatedConfiguration } from '../node/index.js';
3
3
  import { AddressOptions, GlobalOptions, TokenPriceOptions, UploadFolderOptions, UploadOptions, WalletOptions } from './types.js';
4
4
  export declare function exitWithErrorLog(error: unknown): void;
5
5
  export declare function runCommand<T extends OptionValues>(command: Command, action: (options: T) => Promise<void>): Promise<void>;
@@ -27,10 +27,7 @@ export declare function getUploadFolderOptions(options: UploadFolderOptions): {
27
27
  fallbackFile: string | undefined;
28
28
  disableManifest: boolean;
29
29
  maxConcurrentUploads: number;
30
- maxChunkConcurrency?: number;
31
- chunkByteCount?: number;
32
- chunkingMode?: TurboChunkingMode;
33
- };
30
+ } & Partial<TurboChunkingParams>;
34
31
  /**
35
32
  * Parse tags array from CLI input into Tag array
36
33
  * Accepts format: ["name1", "value1", "name2", "value2"]
@@ -49,10 +46,6 @@ export declare function currencyFromOptions<T extends GlobalOptions & {
49
46
  currency?: string;
50
47
  }>(options: T): Currency | undefined;
51
48
  export declare function requiredByteCountFromOptions({ byteCount, }: TokenPriceOptions): number;
52
- export declare function getChunkingOptions<O extends UploadOptions>(options: O): {
53
- chunkingMode?: TurboChunkingMode;
54
- chunkByteCount?: number;
55
- maxChunkConcurrency?: number;
56
- };
49
+ export declare function getChunkingOptions<O extends UploadOptions>(options: O): Partial<TurboChunkingParams>;
57
50
  export {};
58
51
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/cli/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/cli/utils.ts"],"names":[],"mappings":"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"}
@@ -12,12 +12,14 @@ export declare const defaultChunkByteCount: number;
12
12
  export declare class ChunkedUploader {
13
13
  private chunkByteCount;
14
14
  private readonly maxChunkConcurrency;
15
+ private readonly maxFinalizeMs;
15
16
  private readonly http;
16
17
  private readonly token;
17
18
  private readonly logger;
18
19
  readonly shouldUseChunkUploader: boolean;
19
20
  private maxBacklogQueue;
20
- constructor({ http, token, maxChunkConcurrency, chunkByteCount, logger, chunkingMode, dataItemByteCount, }: {
21
+ constructor({ http, token, maxChunkConcurrency, maxFinalizeMs, chunkByteCount, logger, chunkingMode, dataItemByteCount, }: {
22
+ maxFinalizeMs?: number;
21
23
  http: TurboHTTPService;
22
24
  token: string;
23
25
  logger: TurboLogger;
@@ -33,6 +35,8 @@ export declare class ChunkedUploader {
33
35
  */
34
36
  private initUpload;
35
37
  upload({ dataItemSizeFactory, dataItemStreamFactory, dataItemOpts, signal, events, }: UploadSignedDataItemParams): Promise<TurboUploadDataItemResponse>;
38
+ private toGiB;
39
+ private finalizeUpload;
36
40
  }
37
41
  /**
38
42
  * Yield Buffers of up to `chunkByteCount`, coalescing whatever small pieces
@@ -1 +1 @@
1
- {"version":3,"file":"chunked.d.ts","sourceRoot":"","sources":["../../../src/common/chunked.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,2BAA2B,EAC3B,0BAA0B,EAE3B,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAK7C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,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,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;gBAEpB,EACV,IAAI,EACJ,KAAK,EACL,mBAAgD,EAChD,cAAsC,EACtC,MAAmC,EACnC,YAAqB,EACrB,iBAAiB,GAClB,EAAE;QACD,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;KAC9B;IAmBD,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,iBAAiB;IA0CzB;;OAEG;YACW,UAAU;IAqBX,MAAM,CAAC,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,MAAM,EACN,MAAM,GACP,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;CA0IrE;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":"AAiBA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EACL,SAAS,EAET,iBAAiB,EACjB,WAAW,EAEX,2BAA2B,EAC3B,0BAA0B,EAG3B,MAAM,aAAa,CAAC;AAIrB,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;IACnD,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;gBAEpB,EACV,IAAI,EACJ,KAAK,EACL,mBAAgD,EAChD,aAAa,EACb,cAAsC,EACtC,MAAmC,EACnC,YAAqB,EACrB,iBAAiB,GAClB,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;KAC9B;IAqBD,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,iBAAiB;IAwDzB;;OAEG;YACW,UAAU;IAqBX,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;CAkG7B;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"}
@@ -14,15 +14,16 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { AxiosInstance } from 'axios';
17
- import { IAxiosRetryConfig } from 'axios-retry';
18
17
  import { Readable } from 'node:stream';
19
18
  import { TurboHTTPServiceInterface, TurboLogger, TurboSignedRequestHeaders } from '../types.js';
19
+ import { RetryConfig } from '../utils/axiosClient.js';
20
20
  export declare class TurboHTTPService implements TurboHTTPServiceInterface {
21
21
  protected axios: AxiosInstance;
22
22
  protected logger: TurboLogger;
23
- constructor({ url, retryConfig, logger, }: {
23
+ protected retryConfig: RetryConfig;
24
+ constructor({ url, logger, retryConfig, }: {
24
25
  url: string;
25
- retryConfig?: IAxiosRetryConfig;
26
+ retryConfig: RetryConfig;
26
27
  logger: TurboLogger;
27
28
  });
28
29
  get<T>({ endpoint, signal, allowedStatuses, headers, }: {
@@ -39,5 +40,6 @@ export declare class TurboHTTPService implements TurboHTTPServiceInterface {
39
40
  data: Readable | Buffer | ReadableStream | Uint8Array;
40
41
  }): Promise<T>;
41
42
  private tryRequest;
43
+ private retryRequest;
42
44
  }
43
45
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/common/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAc,aAAa,EAAgC,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAIrB,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;gBAElB,EACV,GAAG,EACH,WAAW,EACX,MAAM,GACP,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,CAAC,EAAE,iBAAiB,CAAC;QAChC,MAAM,EAAE,WAAW,CAAC;KACrB;IAYK,GAAG,CAAC,CAAC,EAAE,EACX,QAAQ,EACR,MAAM,EACN,eAA4B,EAC5B,OAAO,GACR,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvE,GAAG,OAAO,CAAC,CAAC,CAAC;IAOR,IAAI,CAAC,CAAC,EAAE,EACZ,QAAQ,EACR,MAAM,EACN,eAA4B,EAC5B,OAAO,EACP,IAAI,GACL,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,UAAU,CAAC;KACvD,GAAG,OAAO,CAAC,CAAC,CAAC;YAoDA,UAAU;CA0BzB"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/common/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAc,aAAa,EAAgC,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EAGZ,MAAM,yBAAyB,CAAC;AAIjC,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC;IAC/B,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC;IAC9B,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEvB,EACV,GAAG,EACH,MAAM,EACN,WAAwC,GACzC,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,WAAW,CAAC;QACzB,MAAM,EAAE,WAAW,CAAC;KACrB;IAYK,GAAG,CAAC,CAAC,EAAE,EACX,QAAQ,EACR,MAAM,EACN,eAA4B,EAC5B,OAAO,GACR,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACvE,GAAG,OAAO,CAAC,CAAC,CAAC;IAOR,IAAI,CAAC,CAAC,EAAE,EACZ,QAAQ,EACR,MAAM,EACN,eAA4B,EAC5B,OAAO,EACP,IAAI,GACL,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,UAAU,CAAC;KACvD,GAAG,OAAO,CAAC,CAAC,CAAC;YA2DA,UAAU;YA2BV,YAAY;CAqC3B"}
@@ -6,7 +6,7 @@ export declare class TurboUnauthenticatedPaymentService implements TurboUnauthen
6
6
  protected readonly httpService: TurboHTTPService;
7
7
  protected logger: TurboLogger;
8
8
  protected readonly token: TokenType;
9
- constructor({ url, retryConfig, logger, token, }: TurboUnauthenticatedPaymentServiceConfiguration);
9
+ constructor({ url, logger, retryConfig, token, }: TurboUnauthenticatedPaymentServiceConfiguration);
10
10
  getBalance(address: string): Promise<TurboBalanceResponse>;
11
11
  getFiatRates(): Promise<TurboRatesResponse>;
12
12
  getFiatToAR({ currency, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/common/payment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../../src/common/payment.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { IAxiosRetryConfig } from 'axios-retry';
2
1
  import { Readable } from 'node:stream';
3
2
  import { ArweaveManifest, CreditShareApproval, TokenType, TurboAbortSignal, TurboAuthenticatedUploadServiceConfiguration, TurboAuthenticatedUploadServiceInterface, TurboChunkingParams, TurboCreateCreditShareApprovalParams, TurboDataItemSigner, TurboFileFactory, TurboLogger, TurboRevokeCreditsParams, TurboUnauthenticatedUploadServiceConfiguration, TurboUnauthenticatedUploadServiceInterface, TurboUploadAndSigningEmitterEvents, TurboUploadDataItemResponse, TurboUploadEmitterEvents, TurboUploadFileParams, TurboUploadFolderParams, TurboUploadFolderResponse, UploadDataInput, UploadSignedDataItemParams } from '../types.js';
3
+ import { RetryConfig } from '../utils/axiosClient.js';
4
4
  import { TurboHTTPService } from './http.js';
5
5
  export type TurboUploadConfig = TurboFileFactory & TurboAbortSignal & TurboUploadEmitterEvents;
6
6
  export declare const creditSharingTagNames: {
@@ -15,7 +15,7 @@ export declare class TurboUnauthenticatedUploadService implements TurboUnauthent
15
15
  protected httpService: TurboHTTPService;
16
16
  protected logger: TurboLogger;
17
17
  protected token: TokenType;
18
- protected retryConfig: IAxiosRetryConfig;
18
+ protected retryConfig: RetryConfig;
19
19
  constructor({ url, logger, retryConfig, token, }: TurboUnauthenticatedUploadServiceConfiguration);
20
20
  uploadSignedDataItem({ dataItemStreamFactory, dataItemSizeFactory, dataItemOpts, signal, events, }: UploadSignedDataItemParams): Promise<TurboUploadDataItemResponse>;
21
21
  }