@ardrive/turbo-sdk 1.26.0 → 1.27.0-alpha.2

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.
@@ -114609,7 +114609,7 @@ var require_wrapAsync = __commonJS({
114609
114609
  function isAsyncGenerator(fn2) {
114610
114610
  return fn2[Symbol.toStringTag] === "AsyncGenerator";
114611
114611
  }
114612
- function isAsyncIterable(obj) {
114612
+ function isAsyncIterable2(obj) {
114613
114613
  return typeof obj[Symbol.asyncIterator] === "function";
114614
114614
  }
114615
114615
  function wrapAsync(asyncFn) {
@@ -114620,7 +114620,7 @@ var require_wrapAsync = __commonJS({
114620
114620
  exports15.default = wrapAsync;
114621
114621
  exports15.isAsync = isAsync2;
114622
114622
  exports15.isAsyncGenerator = isAsyncGenerator;
114623
- exports15.isAsyncIterable = isAsyncIterable;
114623
+ exports15.isAsyncIterable = isAsyncIterable2;
114624
114624
  }
114625
114625
  });
114626
114626
 
@@ -313540,9 +313540,9 @@ var DataItem = class _DataItem {
313540
313540
  return false;
313541
313541
  }
313542
313542
  }
313543
- const Signer3 = indexToType[sigType];
313543
+ const Signer4 = indexToType[sigType];
313544
313544
  const signatureData = await ar_data_base_default(item);
313545
- return await Signer3.verify(item.rawOwner, signatureData, item.rawSignature);
313545
+ return await Signer4.verify(item.rawOwner, signatureData, item.rawSignature);
313546
313546
  }
313547
313547
  async getSignatureData() {
313548
313548
  return ar_data_base_default(this);
@@ -313953,8 +313953,8 @@ async function processStream(stream2) {
313953
313953
  transform.end();
313954
313954
  if (id3 !== (0, import_base64url11.default)(createHash("sha256").update(signature2).digest()))
313955
313955
  throw new Error("ID doesn't match signature");
313956
- const Signer3 = indexToType[signatureType];
313957
- if (!await Signer3.verify(owner, await signatureData, signature2))
313956
+ const Signer4 = indexToType[signatureType];
313957
+ if (!await Signer4.verify(owner, await signatureData, signature2))
313958
313958
  throw new Error("Invalid signature");
313959
313959
  items.push({
313960
313960
  id: id3,
@@ -314072,7 +314072,7 @@ var import_winston = __toESM(require_winston(), 1);
314072
314072
  init_dirname();
314073
314073
  init_buffer2();
314074
314074
  init_process2();
314075
- var version16 = "1.26.0-alpha.1";
314075
+ var version16 = "1.27.0-alpha.1";
314076
314076
 
314077
314077
  // src/common/logger.ts
314078
314078
  var TurboWinstonLogger = class _TurboWinstonLogger {
@@ -367315,7 +367315,9 @@ function createReadableStreamWithEvents({
367315
367315
  }) {
367316
367316
  const originalStream = data instanceof ReadableStream ? data : new ReadableStream({
367317
367317
  start: (controller) => {
367318
- controller.enqueue(data);
367318
+ controller.enqueue(
367319
+ new Uint8Array(data.buffer, data.byteOffset, data.byteLength)
367320
+ );
367319
367321
  controller.close();
367320
367322
  }
367321
367323
  });
@@ -367333,12 +367335,14 @@ function createReadableStreamWithEvents({
367333
367335
  controller.close();
367334
367336
  return;
367335
367337
  }
367336
- processedBytes += value.length;
367338
+ processedBytes += value.byteLength;
367337
367339
  emitter.emit(eventNamesMap["on-progress"], {
367338
367340
  processedBytes,
367339
367341
  totalBytes: dataSize
367340
367342
  });
367341
- controller.enqueue(value);
367343
+ controller.enqueue(
367344
+ new Uint8Array(value.buffer, value.byteOffset, value.byteLength)
367345
+ );
367342
367346
  } catch (error) {
367343
367347
  emitter.emit(eventNamesMap["on-error"], error);
367344
367348
  controller.error(error);
@@ -367366,7 +367370,7 @@ function createReadableWithEvents({
367366
367370
  let processedBytes = 0;
367367
367371
  existingStream.on("data", (chunk) => {
367368
367372
  eventingStream.write(chunk);
367369
- processedBytes += chunk.length;
367373
+ processedBytes += chunk.byteLength;
367370
367374
  emitter.emit(eventNamesMap["on-progress"], {
367371
367375
  processedBytes,
367372
367376
  totalBytes: dataSize
@@ -367495,6 +367499,22 @@ function createStreamWithUploadEvents({
367495
367499
  }
367496
367500
  });
367497
367501
  }
367502
+ function createStreamWithSigningEvents({
367503
+ data,
367504
+ dataSize,
367505
+ emitter = new TurboEventEmitter()
367506
+ }) {
367507
+ return createStreamWithEvents({
367508
+ data,
367509
+ dataSize,
367510
+ emitter,
367511
+ eventNamesMap: {
367512
+ "on-progress": "signing-progress",
367513
+ "on-error": "signing-error",
367514
+ "on-end": "signing-success"
367515
+ }
367516
+ });
367517
+ }
367498
367518
 
367499
367519
  // src/common/upload.ts
367500
367520
  var creditSharingTagNames = {
@@ -367528,17 +367548,17 @@ var TurboUnauthenticatedUploadService = class {
367528
367548
  signal,
367529
367549
  events = {}
367530
367550
  }) {
367531
- const fileSize = dataItemSizeFactory();
367551
+ const dataItemSize = dataItemSizeFactory();
367532
367552
  this.logger.debug("Uploading signed data item...");
367533
367553
  const emitter = new TurboEventEmitter(events);
367534
367554
  const { stream: streamWithUploadEvents, resume } = createStreamWithUploadEvents({
367535
367555
  data: dataItemStreamFactory(),
367536
- dataSize: fileSize,
367556
+ dataSize: dataItemSize,
367537
367557
  emitter
367538
367558
  });
367539
367559
  const headers = {
367540
367560
  "content-type": "application/octet-stream",
367541
- "content-length": `${fileSize}`
367561
+ "content-length": `${dataItemSize}`
367542
367562
  };
367543
367563
  if (dataItemOpts !== void 0 && dataItemOpts.paidBy !== void 0) {
367544
367564
  const paidBy = Array.isArray(dataItemOpts.paidBy) ? dataItemOpts.paidBy : [dataItemOpts.paidBy];
@@ -367627,7 +367647,6 @@ var TurboAuthenticatedBaseUploadService = class extends TurboUnauthenticatedUplo
367627
367647
  throw new CanceledError2();
367628
367648
  }
367629
367649
  try {
367630
- this.logger.debug("Uploading signed data item...");
367631
367650
  const response = await this.uploadSignedDataItem({
367632
367651
  dataItemStreamFactory,
367633
367652
  dataItemSizeFactory,
@@ -367747,6 +367766,7 @@ ${lastError instanceof Error ? lastError.message : lastError}`;
367747
367766
  };
367748
367767
  try {
367749
367768
  const result2 = await this.uploadFile({
367769
+ // TODO: can fix this type by passing a class generic and specifying in the node/web abstracts which stream type to use
367750
367770
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
367751
367771
  fileStreamFactory: () => this.getFileStreamForFile(file),
367752
367772
  fileSizeFactory: () => this.getFileSize(file),
@@ -367789,6 +367809,7 @@ ${lastError instanceof Error ? lastError.message : lastError}`;
367789
367809
  ];
367790
367810
  const manifestBuffer = Buffer.from(JSON.stringify(manifest));
367791
367811
  const manifestResponse = await this.uploadFile({
367812
+ // TODO: can fix this type by passing a class generic and specifying in the node/web abstracts which stream type to use
367792
367813
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
367793
367814
  fileStreamFactory: () => this.createManifestStream(manifestBuffer),
367794
367815
  fileSizeFactory: () => manifestBuffer.byteLength,
@@ -368124,15 +368145,24 @@ var TurboBaseFactory = class {
368124
368145
  token = token === "pol" ? "matic" : token;
368125
368146
  if (!token) {
368126
368147
  if (providedSigner) {
368127
- if (providedSigner instanceof EthereumSigner) {
368128
- token = "ethereum";
368129
- } else if (providedSigner instanceof HexSolanaSigner2) {
368130
- token = "solana";
368131
- } else {
368132
- token = "arweave";
368148
+ switch (providedSigner.signatureType) {
368149
+ case SignatureConfig.ETHEREUM:
368150
+ case SignatureConfig.TYPEDETHEREUM:
368151
+ token = "ethereum";
368152
+ break;
368153
+ case SignatureConfig.SOLANA:
368154
+ case SignatureConfig.ED25519:
368155
+ token = "solana";
368156
+ break;
368157
+ case SignatureConfig.ARWEAVE:
368158
+ token = "arweave";
368159
+ break;
368160
+ case SignatureConfig.KYVE:
368161
+ token = "kyve";
368162
+ break;
368163
+ default:
368164
+ break;
368133
368165
  }
368134
- } else {
368135
- token = "arweave";
368136
368166
  }
368137
368167
  }
368138
368168
  token ??= "arweave";
@@ -368345,23 +368375,87 @@ var TurboDataItemAbstractSigner = class {
368345
368375
  init_dirname();
368346
368376
  init_buffer2();
368347
368377
  init_process2();
368348
- async function readableStreamToBuffer({
368349
- stream: stream2,
368350
- size
368351
- }) {
368352
- const reader = stream2.getReader();
368353
- const buffer2 = Buffer.alloc(size);
368354
- let offset2 = 0;
368355
- let done = false;
368356
- while (!done) {
368357
- const { done: streamDone, value } = await reader.read();
368358
- done = streamDone;
368359
- if (!done) {
368360
- buffer2.set(value, offset2);
368361
- offset2 += value.byteLength;
368378
+ var DEFAULT_STREAM_CHUNK_SIZE = 20 * 1024 * 1024;
368379
+ function ensureChunkedStream(input, maxChunkSize = DEFAULT_STREAM_CHUNK_SIZE) {
368380
+ const reader = input.getReader();
368381
+ let leftover = null;
368382
+ return new ReadableStream({
368383
+ async pull(controller) {
368384
+ if (leftover) {
368385
+ const chunk = leftover.subarray(0, maxChunkSize);
368386
+ leftover = leftover.subarray(chunk.length);
368387
+ if (leftover.length === 0)
368388
+ leftover = null;
368389
+ controller.enqueue(chunk);
368390
+ return;
368391
+ }
368392
+ const { value, done } = await reader.read();
368393
+ if (done) {
368394
+ controller.close();
368395
+ return;
368396
+ }
368397
+ if (!(value instanceof Uint8Array)) {
368398
+ throw new TypeError("Expected Uint8Array from source stream");
368399
+ }
368400
+ if (value.byteLength <= maxChunkSize) {
368401
+ controller.enqueue(value);
368402
+ } else {
368403
+ controller.enqueue(value.subarray(0, maxChunkSize));
368404
+ leftover = value.subarray(maxChunkSize);
368405
+ }
368362
368406
  }
368407
+ });
368408
+ }
368409
+ function createUint8ArrayReadableStreamFactory({
368410
+ data,
368411
+ maxChunkSize = DEFAULT_STREAM_CHUNK_SIZE
368412
+ }) {
368413
+ if (data instanceof Blob) {
368414
+ return () => ensureChunkedStream(data.stream());
368363
368415
  }
368364
- return buffer2;
368416
+ if (data instanceof ReadableStream) {
368417
+ return () => {
368418
+ const reader = data.getReader();
368419
+ const stream2 = new ReadableStream({
368420
+ async pull(controller) {
368421
+ const { value, done } = await reader.read();
368422
+ if (done) {
368423
+ controller.close();
368424
+ return;
368425
+ }
368426
+ if (ArrayBuffer.isView(value)) {
368427
+ controller.enqueue(
368428
+ new Uint8Array(value.buffer, value.byteOffset, value.byteLength)
368429
+ );
368430
+ } else if (value instanceof ArrayBuffer || value instanceof SharedArrayBuffer) {
368431
+ controller.enqueue(new Uint8Array(value));
368432
+ } else {
368433
+ throw new TypeError("Unsupported chunk type in ReadableStream");
368434
+ }
368435
+ }
368436
+ });
368437
+ return ensureChunkedStream(stream2, maxChunkSize);
368438
+ };
368439
+ }
368440
+ return () => {
368441
+ let uint8;
368442
+ if (typeof data === "string") {
368443
+ uint8 = new TextEncoder().encode(data);
368444
+ } else if (ArrayBuffer.isView(data)) {
368445
+ uint8 = new Uint8Array(data.buffer, data.byteOffset, data.byteLength);
368446
+ } else if (data instanceof ArrayBuffer || data instanceof SharedArrayBuffer) {
368447
+ uint8 = new Uint8Array(data);
368448
+ } else {
368449
+ throw new TypeError("Unsupported input type for stream");
368450
+ }
368451
+ const stream2 = new ReadableStream({
368452
+ start(controller) {
368453
+ controller.enqueue(uint8);
368454
+ controller.close();
368455
+ }
368456
+ });
368457
+ return ensureChunkedStream(stream2, maxChunkSize);
368458
+ };
368365
368459
  }
368366
368460
 
368367
368461
  // src/web/signer.ts
@@ -368386,58 +368480,21 @@ var TurboWebArweaveSigner = class extends TurboDataItemAbstractSigner {
368386
368480
  }) {
368387
368481
  await this.setPublicKey();
368388
368482
  const fileSize = fileSizeFactory();
368389
- try {
368390
- const fileStream = fileStreamFactory();
368391
- emitter?.emit("signing-progress", {
368392
- processedBytes: 0,
368393
- totalBytes: fileSize
368394
- });
368395
- const buffer2 = fileStream instanceof Buffer ? fileStream : await readableStreamToBuffer({
368396
- stream: fileStream,
368397
- size: fileSize
368398
- });
368399
- emitter?.emit("signing-progress", {
368400
- processedBytes: Math.floor(fileSize / 2),
368401
- totalBytes: fileSize
368402
- });
368403
- let signedDataItem;
368404
- this.logger.debug("Signing data item...");
368405
- if (this.signer instanceof InjectedArweaveSigner) {
368406
- this.logger.debug(
368407
- "Arconnect signer detected, signing with Arconnect signData Item API..."
368408
- );
368409
- const sign6 = Buffer.from(
368410
- await this.signer["signer"].signDataItem({
368411
- data: Uint8Array.from(buffer2),
368412
- tags: dataItemOpts?.tags,
368413
- target: dataItemOpts?.target,
368414
- anchor: dataItemOpts?.anchor
368415
- })
368416
- );
368417
- signedDataItem = new DataItem(sign6);
368418
- } else {
368419
- signedDataItem = createData(
368420
- Uint8Array.from(buffer2),
368421
- this.signer,
368422
- dataItemOpts
368423
- );
368424
- await signedDataItem.sign(this.signer);
368425
- }
368426
- emitter?.emit("signing-progress", {
368427
- processedBytes: fileSize,
368428
- totalBytes: fileSize
368429
- });
368430
- emitter?.emit("signing-success");
368431
- this.logger.debug("Successfully signed data item...");
368432
- return {
368433
- // while this returns a Buffer - it needs to match our return type for uploading
368434
- dataItemStreamFactory: () => signedDataItem.getRaw(),
368435
- dataItemSizeFactory: () => signedDataItem.getRaw().length
368436
- };
368437
- } catch (error) {
368438
- emitter?.emit("signing-error", error);
368439
- throw error;
368440
- }
368483
+ this.logger.debug("Signing data item...");
368484
+ const { signedDataItemFactory, signedDataItemSize } = await streamSignerReadableStream({
368485
+ streamFactory: createUint8ArrayReadableStreamFactory({
368486
+ data: fileStreamFactory()
368487
+ }),
368488
+ signer: this.signer,
368489
+ dataItemOpts,
368490
+ fileSize,
368491
+ emitter
368492
+ });
368493
+ this.logger.debug("Successfully signed data item...");
368494
+ return {
368495
+ dataItemStreamFactory: signedDataItemFactory,
368496
+ dataItemSizeFactory: () => signedDataItemSize
368497
+ };
368441
368498
  }
368442
368499
  async generateSignedRequestHeaders() {
368443
368500
  await this.setPublicKey();
@@ -368448,6 +368505,113 @@ var TurboWebArweaveSigner = class extends TurboDataItemAbstractSigner {
368448
368505
  return super.signData(dataToSign);
368449
368506
  }
368450
368507
  };
368508
+ var readableStreamToAsyncIterable = (stream2) => ({
368509
+ async *[Symbol.asyncIterator]() {
368510
+ const reader = stream2.getReader();
368511
+ try {
368512
+ while (true) {
368513
+ const { done, value } = await reader.read();
368514
+ if (done)
368515
+ break;
368516
+ if (value !== void 0)
368517
+ yield Buffer.from(value);
368518
+ }
368519
+ } finally {
368520
+ reader.releaseLock();
368521
+ }
368522
+ }
368523
+ });
368524
+ async function streamSignerReadableStream({
368525
+ streamFactory,
368526
+ signer,
368527
+ dataItemOpts,
368528
+ fileSize,
368529
+ emitter
368530
+ }) {
368531
+ try {
368532
+ const header = createData("", signer, dataItemOpts);
368533
+ const headerSize = header.getRaw().byteLength;
368534
+ const totalDataItemSizeWithHeader = fileSize + headerSize;
368535
+ const [stream1, stream2] = streamFactory().tee();
368536
+ const reader1 = stream1.getReader();
368537
+ let bytesProcessed = 0;
368538
+ const eventingStream = new ReadableStream({
368539
+ start() {
368540
+ bytesProcessed = headerSize;
368541
+ emitter?.emit("signing-progress", {
368542
+ processedBytes: bytesProcessed,
368543
+ totalBytes: totalDataItemSizeWithHeader
368544
+ });
368545
+ },
368546
+ async pull(controller) {
368547
+ const { done, value } = await reader1.read();
368548
+ if (done) {
368549
+ controller.close();
368550
+ return;
368551
+ }
368552
+ bytesProcessed += value.byteLength;
368553
+ controller.enqueue(value);
368554
+ emitter?.emit("signing-progress", {
368555
+ processedBytes: bytesProcessed,
368556
+ totalBytes: totalDataItemSizeWithHeader
368557
+ });
368558
+ },
368559
+ cancel() {
368560
+ reader1.cancel();
368561
+ }
368562
+ });
368563
+ const asyncIterableReadableStream = readableStreamToAsyncIterable(eventingStream);
368564
+ const parts = [
368565
+ (0, import_utils.stringToBuffer)("dataitem"),
368566
+ (0, import_utils.stringToBuffer)("1"),
368567
+ (0, import_utils.stringToBuffer)(header.signatureType.toString()),
368568
+ Uint8Array.from(header.rawOwner),
368569
+ Uint8Array.from(header.rawTarget),
368570
+ Uint8Array.from(header.rawAnchor),
368571
+ Uint8Array.from(header.rawTags),
368572
+ asyncIterableReadableStream
368573
+ ];
368574
+ const hash6 = await deepHash(parts);
368575
+ const sigBytes = Buffer.from(await signer.sign(hash6));
368576
+ emitter?.emit("signing-success");
368577
+ header.setSignature(sigBytes);
368578
+ const headerBytes = header.getRaw();
368579
+ const signedDataItemFactory = () => {
368580
+ const reader = stream2.getReader();
368581
+ return new ReadableStream({
368582
+ start(controller) {
368583
+ controller.enqueue(Uint8Array.from(headerBytes));
368584
+ bytesProcessed += headerBytes.byteLength;
368585
+ },
368586
+ async pull(controller) {
368587
+ try {
368588
+ const { done, value } = await reader.read();
368589
+ if (done) {
368590
+ controller.close();
368591
+ return;
368592
+ }
368593
+ controller.enqueue(value);
368594
+ } catch (error) {
368595
+ controller.error(error);
368596
+ }
368597
+ },
368598
+ cancel() {
368599
+ reader.cancel();
368600
+ }
368601
+ });
368602
+ };
368603
+ return {
368604
+ signedDataItemSize: totalDataItemSizeWithHeader,
368605
+ signedDataItemFactory
368606
+ };
368607
+ } catch (error) {
368608
+ emitter?.emit("signing-error", error);
368609
+ throw error;
368610
+ }
368611
+ }
368612
+ function isAsyncIterable(data) {
368613
+ return typeof data[Symbol.asyncIterator] === "function";
368614
+ }
368451
368615
 
368452
368616
  // src/web/upload.ts
368453
368617
  init_dirname();
@@ -368649,6 +368813,7 @@ export {
368649
368813
  TurboAuthenticatedClient,
368650
368814
  TurboAuthenticatedPaymentService,
368651
368815
  TurboAuthenticatedUploadService,
368816
+ TurboEventEmitter,
368652
368817
  TurboFactory,
368653
368818
  TurboUnauthenticatedClient,
368654
368819
  TurboUnauthenticatedPaymentService,
@@ -368658,6 +368823,9 @@ export {
368658
368823
  USD,
368659
368824
  WinstonToTokenAmount,
368660
368825
  ZeroDecimalCurrency,
368826
+ createStreamWithEvents,
368827
+ createStreamWithSigningEvents,
368828
+ createStreamWithUploadEvents,
368661
368829
  creditSharingTagNames,
368662
368830
  currencyMap,
368663
368831
  defaultPaymentServiceURL,
@@ -368669,6 +368837,7 @@ export {
368669
368837
  developmentUploadServiceURL,
368670
368838
  exponentMap,
368671
368839
  fiatCurrencyTypes,
368840
+ isAsyncIterable,
368672
368841
  isCurrency,
368673
368842
  isEthPrivateKey,
368674
368843
  isEthereumWalletAdapter,
@@ -368681,8 +368850,10 @@ export {
368681
368850
  lamportToTokenAmount,
368682
368851
  mARIOToTokenAmount,
368683
368852
  privateKeyFromKyveMnemonic,
368853
+ readableStreamToAsyncIterable,
368684
368854
  signerFromKyveMnemonic,
368685
368855
  signerFromKyvePrivateKey2 as signerFromKyvePrivateKey,
368856
+ streamSignerReadableStream,
368686
368857
  tokenToBaseMap,
368687
368858
  tokenTypes,
368688
368859
  ukyveToTokenAmount,
@@ -46,7 +46,7 @@ function createReadableStreamWithEvents({ data, dataSize, emitter, eventNamesMap
46
46
  ? data
47
47
  : new ReadableStream({
48
48
  start: (controller) => {
49
- controller.enqueue(data);
49
+ controller.enqueue(new Uint8Array(data.buffer, data.byteOffset, data.byteLength));
50
50
  controller.close();
51
51
  },
52
52
  });
@@ -64,12 +64,12 @@ function createReadableStreamWithEvents({ data, dataSize, emitter, eventNamesMap
64
64
  controller.close();
65
65
  return;
66
66
  }
67
- processedBytes += value.length;
67
+ processedBytes += value.byteLength;
68
68
  emitter.emit(eventNamesMap['on-progress'], {
69
69
  processedBytes,
70
70
  totalBytes: dataSize,
71
71
  });
72
- controller.enqueue(value);
72
+ controller.enqueue(new Uint8Array(value.buffer, value.byteOffset, value.byteLength));
73
73
  }
74
74
  catch (error) {
75
75
  emitter.emit(eventNamesMap['on-error'], error);
@@ -125,7 +125,7 @@ function createReadableWithEvents({ data, dataSize, emitter, eventNamesMap, }) {
125
125
  let processedBytes = 0;
126
126
  existingStream.on('data', (chunk) => {
127
127
  eventingStream.write(chunk);
128
- processedBytes += chunk.length;
128
+ processedBytes += chunk.byteLength;
129
129
  emitter.emit(eventNamesMap['on-progress'], {
130
130
  processedBytes,
131
131
  totalBytes: dataSize,
@@ -55,18 +55,24 @@ class TurboBaseFactory {
55
55
  if (!token) {
56
56
  if (providedSigner) {
57
57
  // Derive token from signer if not provided
58
- if (providedSigner instanceof arbundles_1.EthereumSigner) {
59
- token = 'ethereum';
58
+ switch (providedSigner.signatureType) {
59
+ case arbundles_1.SignatureConfig.ETHEREUM:
60
+ case arbundles_1.SignatureConfig.TYPEDETHEREUM:
61
+ token = 'ethereum';
62
+ break;
63
+ case arbundles_1.SignatureConfig.SOLANA:
64
+ case arbundles_1.SignatureConfig.ED25519:
65
+ token = 'solana';
66
+ break;
67
+ case arbundles_1.SignatureConfig.ARWEAVE:
68
+ token = 'arweave';
69
+ break;
70
+ case arbundles_1.SignatureConfig.KYVE:
71
+ token = 'kyve';
72
+ break;
73
+ default:
74
+ break;
60
75
  }
61
- else if (providedSigner instanceof arbundles_1.HexSolanaSigner) {
62
- token = 'solana';
63
- }
64
- else {
65
- token = 'arweave';
66
- }
67
- }
68
- else {
69
- token = 'arweave';
70
76
  }
71
77
  }
72
78
  token ??= 'arweave'; // default to arweave if token is not provided
@@ -44,19 +44,19 @@ class TurboUnauthenticatedUploadService {
44
44
  this.retryConfig = retryConfig;
45
45
  }
46
46
  async uploadSignedDataItem({ dataItemStreamFactory, dataItemSizeFactory, dataItemOpts, signal, events = {}, }) {
47
- const fileSize = dataItemSizeFactory();
47
+ const dataItemSize = dataItemSizeFactory();
48
48
  this.logger.debug('Uploading signed data item...');
49
49
  // create the tapped stream with events
50
50
  const emitter = new events_js_1.TurboEventEmitter(events);
51
51
  // create the stream with upload events
52
52
  const { stream: streamWithUploadEvents, resume } = (0, events_js_1.createStreamWithUploadEvents)({
53
53
  data: dataItemStreamFactory(),
54
- dataSize: fileSize,
54
+ dataSize: dataItemSize,
55
55
  emitter,
56
56
  });
57
57
  const headers = {
58
58
  'content-type': 'application/octet-stream',
59
- 'content-length': `${fileSize}`,
59
+ 'content-length': `${dataItemSize}`,
60
60
  };
61
61
  if (dataItemOpts !== undefined && dataItemOpts.paidBy !== undefined) {
62
62
  const paidBy = Array.isArray(dataItemOpts.paidBy)
@@ -140,11 +140,10 @@ class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUploadServ
140
140
  if (signal?.aborted) {
141
141
  throw new axios_1.CanceledError();
142
142
  }
143
+ // Now that we have the signed data item, we can upload it using the uploadSignedDataItem method
144
+ // which will create a new emitter with upload events. We await
145
+ // this result due to the wrapped retry logic of this method.
143
146
  try {
144
- this.logger.debug('Uploading signed data item...');
145
- // Now that we have the signed data item, we can upload it using the uploadSignedDataItem method
146
- // which will create a new emitter with upload events. We await
147
- // this result due to the wrapped retry logic of this method.
148
147
  const response = await this.uploadSignedDataItem({
149
148
  dataItemStreamFactory,
150
149
  dataItemSizeFactory,
@@ -250,6 +249,7 @@ class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUploadServ
250
249
  };
251
250
  try {
252
251
  const result = await this.uploadFile({
252
+ // TODO: can fix this type by passing a class generic and specifying in the node/web abstracts which stream type to use
253
253
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
254
254
  fileStreamFactory: () => this.getFileStreamForFile(file),
255
255
  fileSizeFactory: () => this.getFileSize(file),
@@ -294,6 +294,7 @@ class TurboAuthenticatedBaseUploadService extends TurboUnauthenticatedUploadServ
294
294
  ];
295
295
  const manifestBuffer = Buffer.from(JSON.stringify(manifest));
296
296
  const manifestResponse = await this.uploadFile({
297
+ // TODO: can fix this type by passing a class generic and specifying in the node/web abstracts which stream type to use
297
298
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
298
299
  fileStreamFactory: () => this.createManifestStream(manifestBuffer),
299
300
  fileSizeFactory: () => manifestBuffer.byteLength,