@ardrive/turbo-sdk 1.9.1-alpha.1 → 1.10.0-alpha.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.
- package/README.md +58 -0
- package/bundles/web.bundle.min.js +25370 -12548
- package/lib/cjs/common/factory.js +19 -9
- package/lib/cjs/common/http.js +1 -1
- package/lib/cjs/common/logger.js +1 -1
- package/lib/cjs/common/token/arweave.js +2 -2
- package/lib/cjs/common/token/ethereum.js +2 -2
- package/lib/cjs/common/token/solana.js +2 -2
- package/lib/cjs/common/turbo.js +3 -0
- package/lib/cjs/common/upload.js +106 -3
- package/lib/cjs/node/index.js +1 -0
- package/lib/cjs/node/upload.js +72 -0
- package/lib/cjs/types.js +6 -2
- package/lib/cjs/utils/base64.js +6 -6
- package/lib/cjs/utils/common.js +5 -2
- package/lib/cjs/utils/readableStream.js +1 -2
- package/lib/cjs/version.js +1 -1
- package/lib/cjs/web/factory.js +2 -1
- package/lib/cjs/web/index.js +1 -0
- package/lib/cjs/web/upload.js +57 -0
- package/lib/esm/common/factory.js +18 -8
- package/lib/esm/common/http.js +1 -1
- package/lib/esm/common/logger.js +1 -1
- package/lib/esm/common/token/arweave.js +2 -2
- package/lib/esm/common/token/ethereum.js +2 -2
- package/lib/esm/common/token/solana.js +2 -2
- package/lib/esm/common/turbo.js +3 -0
- package/lib/esm/common/upload.js +104 -1
- package/lib/esm/node/index.js +1 -0
- package/lib/esm/node/upload.js +68 -0
- package/lib/esm/types.js +2 -0
- package/lib/esm/utils/common.js +3 -0
- package/lib/esm/version.js +1 -1
- package/lib/esm/web/factory.js +3 -2
- package/lib/esm/web/index.js +1 -0
- package/lib/esm/web/upload.js +53 -0
- package/lib/types/common/factory.d.ts.map +1 -1
- package/lib/types/common/http.d.ts +0 -3
- package/lib/types/common/http.d.ts.map +1 -1
- package/lib/types/common/logger.d.ts.map +1 -1
- package/lib/types/common/signer.d.ts +0 -1
- package/lib/types/common/signer.d.ts.map +1 -1
- package/lib/types/common/token/arweave.d.ts.map +1 -1
- package/lib/types/common/token/ethereum.d.ts.map +1 -1
- package/lib/types/common/token/solana.d.ts.map +1 -1
- package/lib/types/common/turbo.d.ts +2 -1
- package/lib/types/common/turbo.d.ts.map +1 -1
- package/lib/types/common/upload.d.ts +18 -2
- package/lib/types/common/upload.d.ts.map +1 -1
- package/lib/types/node/index.d.ts +1 -0
- package/lib/types/node/index.d.ts.map +1 -1
- package/lib/types/node/signer.d.ts +0 -1
- package/lib/types/node/signer.d.ts.map +1 -1
- package/lib/types/node/upload.d.ts +15 -0
- package/lib/types/node/upload.d.ts.map +1 -0
- package/lib/types/types.d.ts +40 -4
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/utils/base64.d.ts +0 -1
- package/lib/types/utils/base64.d.ts.map +1 -1
- package/lib/types/utils/common.d.ts +1 -0
- package/lib/types/utils/common.d.ts.map +1 -1
- package/lib/types/utils/readableStream.d.ts +0 -2
- package/lib/types/utils/readableStream.d.ts.map +1 -1
- package/lib/types/version.d.ts +1 -1
- package/lib/types/version.d.ts.map +1 -1
- package/lib/types/web/factory.d.ts.map +1 -1
- package/lib/types/web/index.d.ts +1 -0
- package/lib/types/web/index.d.ts.map +1 -1
- package/lib/types/web/signer.d.ts +0 -1
- package/lib/types/web/signer.d.ts.map +1 -1
- package/lib/types/web/upload.d.ts +29 -0
- package/lib/types/web/upload.d.ts.map +1 -0
- package/package.json +6 -2
package/README.md
CHANGED
@@ -49,6 +49,9 @@ Welcome to the `@ardrive/turbo-sdk`! This SDK provides functionality for interac
|
|
49
49
|
- [`getWincForFiat({ amount, promoCodes })`](#getwincforfiat-amount-promocodes-)
|
50
50
|
- [`createCheckoutSession({ amount, owner, promoCodes })`](#createcheckoutsession-amount-owner-promocodes-)
|
51
51
|
- [`uploadFile({ fileStreamFactory, fileSizeFactory, signal, dataItemOpts })`](#uploadfile-filestreamfactory-filesizefactory-signal-dataitemopts-)
|
52
|
+
- [`uploadFolder({ folderPath, files, dataItemOpts, signal, maxConcurrentUploads, throwOnFailure, manifestOptions })`](#uploadfolder-folderpath-files-dataitemopts-signal-maxconcurrentuploads-throwonfailure-manifestoptions-)
|
53
|
+
- [NodeJS Upload Folder](#nodejs-upload-folder)
|
54
|
+
- [Browser Upload Folder](#browser-upload-folder)
|
52
55
|
- [`topUpWithTokens({ tokenAmount, feeMultiplier })`](#topupwithtokens-tokenamount-feemultiplier-)
|
53
56
|
- [Ethereum (ETH)](#ethereum-eth-1)
|
54
57
|
- [Solana (SOL)](#solana-sol-1)
|
@@ -471,6 +474,61 @@ const uploadResult = await turbo.uploadFile({
|
|
471
474
|
});
|
472
475
|
```
|
473
476
|
|
477
|
+
#### `uploadFolder({ folderPath, files, dataItemOpts, signal, maxConcurrentUploads, throwOnFailure, manifestOptions })`
|
478
|
+
|
479
|
+
Signs and uploads a folder of files. For NodeJS, the `folderPath` of the folder to upload is required. For the browser, an array of `files` is required. The `dataItemOpts` is an optional object that can be used to configure tags, target, and anchor for the data item upload. The `signal` is an optional [AbortSignal] that can be used to cancel the upload or timeout the request. The `maxConcurrentUploads` is an optional number that can be used to limit the number of concurrent uploads. The `throwOnFailure` is an optional boolean that can be used to throw an error if any upload fails. The `manifestOptions` is an optional object that can be used to configure the manifest file, including a custom index file, fallback file, or whether to disable manifests altogether. Manifests are enabled by default.
|
480
|
+
|
481
|
+
##### NodeJS Upload Folder
|
482
|
+
|
483
|
+
```typescript
|
484
|
+
const folderPath = path.join(__dirname, './my-folder');
|
485
|
+
const { manifest, fileResponses, manifestResponse } = await turbo.uploadFolder({
|
486
|
+
folderPath,
|
487
|
+
dataItemOpts: {
|
488
|
+
// optional
|
489
|
+
tags: [
|
490
|
+
{
|
491
|
+
// User defined content type will overwrite file content type
|
492
|
+
name: 'Content-Type',
|
493
|
+
value: 'text/plain',
|
494
|
+
},
|
495
|
+
{
|
496
|
+
name: 'My-Custom-Tag',
|
497
|
+
value: 'my-custom-value',
|
498
|
+
},
|
499
|
+
],
|
500
|
+
// no timeout or AbortSignal provided
|
501
|
+
},
|
502
|
+
manifestOptions: {
|
503
|
+
// optional
|
504
|
+
indexFile: 'custom-index.html',
|
505
|
+
fallbackFile: 'custom-fallback.html',
|
506
|
+
disableManifests: false,
|
507
|
+
},
|
508
|
+
});
|
509
|
+
```
|
510
|
+
|
511
|
+
##### Browser Upload Folder
|
512
|
+
|
513
|
+
```html
|
514
|
+
<input type="file" id="folder" name="folder" webkitdirectory />
|
515
|
+
<script type="module">
|
516
|
+
const folderInput = document.getElementById('folder');
|
517
|
+
|
518
|
+
folderInput.addEventListener('change', async (event) => {
|
519
|
+
const selectedFiles = folderInput.files;
|
520
|
+
console.log('Folder selected:', selectedFiles);
|
521
|
+
|
522
|
+
const { manifest, fileResponses, manifestResponse } =
|
523
|
+
await turbo.uploadFolder({
|
524
|
+
files: Array.from(selectedFiles).map((file) => file),
|
525
|
+
});
|
526
|
+
|
527
|
+
console.log(manifest, fileResponses, manifestResponse);
|
528
|
+
});
|
529
|
+
</script>
|
530
|
+
```
|
531
|
+
|
474
532
|
#### `topUpWithTokens({ tokenAmount, feeMultiplier })`
|
475
533
|
|
476
534
|
Tops up the connected wallet with Credits by submitting a payment transaction for the token amount to the Turbo wallet and then submitting that transaction id to Turbo Payment Service for top up processing.
|