@visulima/storage-client 1.0.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/CHANGELOG.md +10 -0
- package/LICENSE.md +27 -0
- package/README.md +71 -0
- package/dist/core/chunked-rest-adapter.d.ts +43 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/multipart-adapter.d.ts +34 -0
- package/dist/core/query-client.d.ts +57 -0
- package/dist/core/query-keys.d.ts +34 -0
- package/dist/core/tus-adapter.d.ts +43 -0
- package/dist/core/uploader.d.ts +183 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/packem_shared/createAbortAll-B5vFFliA.js +1 -0
- package/dist/packem_shared/createAbortAll-D-x-LWNg.js +1 -0
- package/dist/packem_shared/createAbortBatch-CYtSbWfz.js +1 -0
- package/dist/packem_shared/createAbortBatch-zA0PTnOB.js +1 -0
- package/dist/packem_shared/createAbortItem-0f0bigbq.js +1 -0
- package/dist/packem_shared/createAbortItem-CIRlRD4X.js +1 -0
- package/dist/packem_shared/createAllAbortListener-CDrnG87k.js +1 -0
- package/dist/packem_shared/createAllAbortListener-CYLEWan0.js +1 -0
- package/dist/packem_shared/createBatchCancelledListener-Deq8lrIn.js +1 -0
- package/dist/packem_shared/createBatchCancelledListener-l9c0mi15.js +1 -0
- package/dist/packem_shared/createBatchDeleteFiles-B0SYSdYj.js +1 -0
- package/dist/packem_shared/createBatchDeleteFiles-Z4S-30eN.js +1 -0
- package/dist/packem_shared/createBatchErrorListener-CGJPEngL.js +1 -0
- package/dist/packem_shared/createBatchErrorListener-CJQFdXW2.js +1 -0
- package/dist/packem_shared/createBatchFinalizeListener-B2rEps7g.js +1 -0
- package/dist/packem_shared/createBatchFinalizeListener-Og0rELSL.js +1 -0
- package/dist/packem_shared/createBatchFinishListener-BeE6-b6E.js +1 -0
- package/dist/packem_shared/createBatchFinishListener-D9AOd6Cl.js +1 -0
- package/dist/packem_shared/createBatchProgressListener-1KpCpw7e.js +1 -0
- package/dist/packem_shared/createBatchProgressListener-BWW_tnse.js +1 -0
- package/dist/packem_shared/createBatchRetry-6E_Ivzh4.js +1 -0
- package/dist/packem_shared/createBatchRetry-D_F4v9oA.js +1 -0
- package/dist/packem_shared/createBatchStartListener-CkcMX3tq.js +1 -0
- package/dist/packem_shared/createBatchStartListener-DBHjoANG.js +1 -0
- package/dist/packem_shared/createBatchUpload-8yahZiID.js +1 -0
- package/dist/packem_shared/createBatchUpload-DWcVWF9h.js +1 -0
- package/dist/packem_shared/createChunkedRestAdapter-Df1E_Adn.js +1 -0
- package/dist/packem_shared/createChunkedRestUpload-CJNQp68Z.js +1 -0
- package/dist/packem_shared/createChunkedRestUpload-DZIOry7M.js +1 -0
- package/dist/packem_shared/createDeleteFile-DsUMoSxn.js +1 -0
- package/dist/packem_shared/createDeleteFile-_Znrnika.js +1 -0
- package/dist/packem_shared/createFileInput-B7WPz_-r.js +1 -0
- package/dist/packem_shared/createFileInput-TTI-EsSq.js +1 -0
- package/dist/packem_shared/createGetFile-BOV5S7mX.js +1 -0
- package/dist/packem_shared/createGetFile-CY2ohQF-.js +1 -0
- package/dist/packem_shared/createGetFileList-DGZQymc5.js +1 -0
- package/dist/packem_shared/createGetFileList-ZF0Luf6h.js +1 -0
- package/dist/packem_shared/createGetFileMeta-50LymNvf.js +1 -0
- package/dist/packem_shared/createGetFileMeta-DmC_OvP4.js +1 -0
- package/dist/packem_shared/createHeadFile-CGD6bHDS.js +1 -0
- package/dist/packem_shared/createHeadFile-DYb9FeQ1.js +1 -0
- package/dist/packem_shared/createMultipartAdapter-CoJpvX9z.js +1 -0
- package/dist/packem_shared/createMultipartUpload-CTats5BN.js +1 -0
- package/dist/packem_shared/createMultipartUpload-DF3XyOX3.js +1 -0
- package/dist/packem_shared/createPasteUpload-BS7pMOvb.js +1 -0
- package/dist/packem_shared/createPasteUpload-DemCREgp.js +1 -0
- package/dist/packem_shared/createPatchChunk-DqCMbHjI.js +1 -0
- package/dist/packem_shared/createPatchChunk-Zy6I60LN.js +1 -0
- package/dist/packem_shared/createPutFile-D8hN-9Ai.js +1 -0
- package/dist/packem_shared/createPutFile-DJraow7z.js +1 -0
- package/dist/packem_shared/createRetry-DPaN9i_a.js +1 -0
- package/dist/packem_shared/createRetry-D_fXIQUj.js +1 -0
- package/dist/packem_shared/createRetryListener-DonB2P-g.js +1 -0
- package/dist/packem_shared/createRetryListener-bMqMm13Y.js +1 -0
- package/dist/packem_shared/createTransformFile-C2fVfiwL.js +1 -0
- package/dist/packem_shared/createTransformFile-CJXLJEfg.js +1 -0
- package/dist/packem_shared/createTransformMetadata-BImjFF_i.js +1 -0
- package/dist/packem_shared/createTransformMetadata-zyl5UymO.js +1 -0
- package/dist/packem_shared/createTusAdapter-DM31lujI.js +1 -0
- package/dist/packem_shared/createTusUpload-BoM0S0Or.js +1 -0
- package/dist/packem_shared/createTusUpload-ClmXqmcz.js +1 -0
- package/dist/packem_shared/createUpload-CuZqq0nu.js +1 -0
- package/dist/packem_shared/createUpload-LRQ4N_cF.js +1 -0
- package/dist/packem_shared/createUploader-B_IjjBxw.js +1 -0
- package/dist/packem_shared/parseApiError-CUagSahh.js +1 -0
- package/dist/packem_shared/storageQueryKeys-cD4rL4b1.js +1 -0
- package/dist/packem_shared/useAbortAll-DeTTc8gX.js +1 -0
- package/dist/packem_shared/useAbortAll-DrHBz3kQ.js +1 -0
- package/dist/packem_shared/useAbortBatch-BoXLZH9d.js +1 -0
- package/dist/packem_shared/useAbortBatch-gVI48Gqa.js +1 -0
- package/dist/packem_shared/useAbortItem-Blw0eI13.js +1 -0
- package/dist/packem_shared/useAbortItem-DOVDiZFG.js +1 -0
- package/dist/packem_shared/useAllAbortListener-CadZ6Ohd.js +1 -0
- package/dist/packem_shared/useAllAbortListener-DiliYPra.js +1 -0
- package/dist/packem_shared/useBatchCancelledListener-CADhAnT8.js +1 -0
- package/dist/packem_shared/useBatchCancelledListener-CD0CULd_.js +1 -0
- package/dist/packem_shared/useBatchDeleteFiles-ASYuAVXn.js +1 -0
- package/dist/packem_shared/useBatchDeleteFiles-KthW4bon.js +1 -0
- package/dist/packem_shared/useBatchErrorListener-C3KwlH_D.js +1 -0
- package/dist/packem_shared/useBatchErrorListener-D-M1xGbQ.js +1 -0
- package/dist/packem_shared/useBatchFinalizeListener-BjnW3Lst.js +1 -0
- package/dist/packem_shared/useBatchFinalizeListener-CuVe9PGl.js +1 -0
- package/dist/packem_shared/useBatchFinishListener-4RjAPVhl.js +1 -0
- package/dist/packem_shared/useBatchFinishListener-DedP4Rm_.js +1 -0
- package/dist/packem_shared/useBatchProgressListener-CBAjGzmu.js +1 -0
- package/dist/packem_shared/useBatchProgressListener-CoYeF3Zj.js +1 -0
- package/dist/packem_shared/useBatchRetry-C53msBuL.js +1 -0
- package/dist/packem_shared/useBatchRetry-CAqFm7V8.js +1 -0
- package/dist/packem_shared/useBatchStartListener-BAOxxo1Y.js +1 -0
- package/dist/packem_shared/useBatchStartListener-DwAzFph7.js +1 -0
- package/dist/packem_shared/useBatchUpload-DLQNW410.js +1 -0
- package/dist/packem_shared/useBatchUpload-xPQlYOIK.js +1 -0
- package/dist/packem_shared/useChunkedRestUpload-DmXiSpyb.js +1 -0
- package/dist/packem_shared/useChunkedRestUpload-cKHvYQN3.js +1 -0
- package/dist/packem_shared/useDeleteFile-CND-6aNW.js +1 -0
- package/dist/packem_shared/useDeleteFile-CZUMjbYV.js +1 -0
- package/dist/packem_shared/useFileInput-Dvy2fNU7.js +1 -0
- package/dist/packem_shared/useFileInput-hIbzJ_JN.js +1 -0
- package/dist/packem_shared/useGetFile-CuST4rUN.js +1 -0
- package/dist/packem_shared/useGetFile-DvgluPgA.js +1 -0
- package/dist/packem_shared/useGetFileList-BiYDlEAl.js +1 -0
- package/dist/packem_shared/useGetFileList-D0tKDYAc.js +1 -0
- package/dist/packem_shared/useGetFileMeta-C2U1PExr.js +1 -0
- package/dist/packem_shared/useGetFileMeta-Ekre98Sg.js +1 -0
- package/dist/packem_shared/useHeadFile-CCu61b-B.js +1 -0
- package/dist/packem_shared/useHeadFile-DBQdkWZG.js +1 -0
- package/dist/packem_shared/useMultipartUpload-B9Vi7f5z.js +1 -0
- package/dist/packem_shared/useMultipartUpload-CIp4NLzf.js +1 -0
- package/dist/packem_shared/usePasteUpload-COdUC9xU.js +1 -0
- package/dist/packem_shared/usePasteUpload-_YqkCkrL.js +1 -0
- package/dist/packem_shared/usePatchChunk-BO3S0Tx4.js +1 -0
- package/dist/packem_shared/usePatchChunk-DoKsCbBH.js +1 -0
- package/dist/packem_shared/usePutFile-B6cFjClD.js +1 -0
- package/dist/packem_shared/usePutFile-bQl10v42.js +1 -0
- package/dist/packem_shared/useRetry-Dsq4jvkt.js +1 -0
- package/dist/packem_shared/useRetry-mkTUERYR.js +1 -0
- package/dist/packem_shared/useRetryListener-B45dL00Q.js +1 -0
- package/dist/packem_shared/useRetryListener-BEONt1sx.js +1 -0
- package/dist/packem_shared/useTransformFile-DmfsqTjp.js +1 -0
- package/dist/packem_shared/useTransformFile-sIkJLAwo.js +1 -0
- package/dist/packem_shared/useTransformMetadata-B0JbX1Ni.js +1 -0
- package/dist/packem_shared/useTransformMetadata-DK1561-K.js +1 -0
- package/dist/packem_shared/useTusUpload-CDRjQl0e.js +1 -0
- package/dist/packem_shared/useTusUpload-Cn1UeWo4.js +1 -0
- package/dist/packem_shared/useUpload-B_RxNnHC.js +1 -0
- package/dist/packem_shared/useUpload-CjLWLpyn.js +1 -0
- package/dist/react/index.d.ts +61 -0
- package/dist/react/index.js +1 -0
- package/dist/react/types.d.ts +65 -0
- package/dist/react/use-abort-all.d.ts +16 -0
- package/dist/react/use-abort-batch.d.ts +16 -0
- package/dist/react/use-abort-item.d.ts +16 -0
- package/dist/react/use-all-abort-listener.d.ts +14 -0
- package/dist/react/use-batch-cancelled-listener.d.ts +14 -0
- package/dist/react/use-batch-delete-files.d.ts +32 -0
- package/dist/react/use-batch-error-listener.d.ts +14 -0
- package/dist/react/use-batch-finalize-listener.d.ts +15 -0
- package/dist/react/use-batch-finish-listener.d.ts +14 -0
- package/dist/react/use-batch-progress-listener.d.ts +14 -0
- package/dist/react/use-batch-retry.d.ts +16 -0
- package/dist/react/use-batch-start-listener.d.ts +14 -0
- package/dist/react/use-batch-upload.d.ts +42 -0
- package/dist/react/use-chunked-rest-upload.d.ts +55 -0
- package/dist/react/use-delete-file.d.ts +25 -0
- package/dist/react/use-file-input.d.ts +32 -0
- package/dist/react/use-get-file-list.d.ts +46 -0
- package/dist/react/use-get-file-meta.d.ts +29 -0
- package/dist/react/use-get-file.d.ts +34 -0
- package/dist/react/use-head-file.d.ts +49 -0
- package/dist/react/use-multipart-upload.d.ts +35 -0
- package/dist/react/use-paste-upload.d.ts +20 -0
- package/dist/react/use-patch-chunk.d.ts +29 -0
- package/dist/react/use-put-file.d.ts +32 -0
- package/dist/react/use-retry-listener.d.ts +15 -0
- package/dist/react/use-retry.d.ts +16 -0
- package/dist/react/use-transform-file.d.ts +48 -0
- package/dist/react/use-transform-metadata.d.ts +33 -0
- package/dist/react/use-tus-upload.d.ts +55 -0
- package/dist/react/use-upload.d.ts +69 -0
- package/dist/solid/create-abort-all.d.ts +8 -0
- package/dist/solid/create-abort-batch.d.ts +8 -0
- package/dist/solid/create-abort-item.d.ts +8 -0
- package/dist/solid/create-all-abort-listener.d.ts +7 -0
- package/dist/solid/create-batch-cancelled-listener.d.ts +7 -0
- package/dist/solid/create-batch-delete-files.d.ts +29 -0
- package/dist/solid/create-batch-error-listener.d.ts +7 -0
- package/dist/solid/create-batch-finalize-listener.d.ts +7 -0
- package/dist/solid/create-batch-finish-listener.d.ts +7 -0
- package/dist/solid/create-batch-progress-listener.d.ts +7 -0
- package/dist/solid/create-batch-retry.d.ts +8 -0
- package/dist/solid/create-batch-start-listener.d.ts +7 -0
- package/dist/solid/create-batch-upload.d.ts +43 -0
- package/dist/solid/create-chunked-rest-upload.d.ts +56 -0
- package/dist/solid/create-delete-file.d.ts +22 -0
- package/dist/solid/create-file-input.d.ts +20 -0
- package/dist/solid/create-get-file-list.d.ts +46 -0
- package/dist/solid/create-get-file-meta.d.ts +29 -0
- package/dist/solid/create-get-file.d.ts +38 -0
- package/dist/solid/create-head-file.d.ts +46 -0
- package/dist/solid/create-multipart-upload.d.ts +36 -0
- package/dist/solid/create-paste-upload.d.ts +11 -0
- package/dist/solid/create-patch-chunk.d.ts +26 -0
- package/dist/solid/create-put-file.d.ts +29 -0
- package/dist/solid/create-retry-listener.d.ts +7 -0
- package/dist/solid/create-retry.d.ts +8 -0
- package/dist/solid/create-transform-file.d.ts +45 -0
- package/dist/solid/create-transform-metadata.d.ts +30 -0
- package/dist/solid/create-tus-upload.d.ts +56 -0
- package/dist/solid/create-upload.d.ts +70 -0
- package/dist/solid/index.d.ts +60 -0
- package/dist/solid/index.js +1 -0
- package/dist/svelte/create-abort-all.d.ts +8 -0
- package/dist/svelte/create-abort-batch.d.ts +8 -0
- package/dist/svelte/create-abort-item.d.ts +8 -0
- package/dist/svelte/create-all-abort-listener.d.ts +7 -0
- package/dist/svelte/create-batch-cancelled-listener.d.ts +7 -0
- package/dist/svelte/create-batch-delete-files.d.ts +29 -0
- package/dist/svelte/create-batch-error-listener.d.ts +7 -0
- package/dist/svelte/create-batch-finalize-listener.d.ts +7 -0
- package/dist/svelte/create-batch-finish-listener.d.ts +7 -0
- package/dist/svelte/create-batch-progress-listener.d.ts +7 -0
- package/dist/svelte/create-batch-retry.d.ts +8 -0
- package/dist/svelte/create-batch-start-listener.d.ts +7 -0
- package/dist/svelte/create-batch-upload.d.ts +23 -0
- package/dist/svelte/create-chunked-rest-upload.d.ts +56 -0
- package/dist/svelte/create-delete-file.d.ts +26 -0
- package/dist/svelte/create-file-input.d.ts +19 -0
- package/dist/svelte/create-get-file-list.d.ts +43 -0
- package/dist/svelte/create-get-file-meta.d.ts +26 -0
- package/dist/svelte/create-get-file.d.ts +41 -0
- package/dist/svelte/create-head-file.d.ts +46 -0
- package/dist/svelte/create-multipart-upload.d.ts +36 -0
- package/dist/svelte/create-paste-upload.d.ts +11 -0
- package/dist/svelte/create-patch-chunk.d.ts +26 -0
- package/dist/svelte/create-put-file.d.ts +29 -0
- package/dist/svelte/create-retry-listener.d.ts +7 -0
- package/dist/svelte/create-retry.d.ts +8 -0
- package/dist/svelte/create-transform-file.d.ts +45 -0
- package/dist/svelte/create-transform-metadata.d.ts +30 -0
- package/dist/svelte/create-tus-upload.d.ts +56 -0
- package/dist/svelte/create-upload.d.ts +68 -0
- package/dist/svelte/index.d.ts +60 -0
- package/dist/svelte/index.js +1 -0
- package/dist/vue/index.d.ts +60 -0
- package/dist/vue/index.js +1 -0
- package/dist/vue/use-abort-all.d.ts +16 -0
- package/dist/vue/use-abort-batch.d.ts +16 -0
- package/dist/vue/use-abort-item.d.ts +16 -0
- package/dist/vue/use-all-abort-listener.d.ts +14 -0
- package/dist/vue/use-batch-cancelled-listener.d.ts +14 -0
- package/dist/vue/use-batch-delete-files.d.ts +29 -0
- package/dist/vue/use-batch-error-listener.d.ts +14 -0
- package/dist/vue/use-batch-finalize-listener.d.ts +15 -0
- package/dist/vue/use-batch-finish-listener.d.ts +14 -0
- package/dist/vue/use-batch-progress-listener.d.ts +14 -0
- package/dist/vue/use-batch-retry.d.ts +16 -0
- package/dist/vue/use-batch-start-listener.d.ts +14 -0
- package/dist/vue/use-batch-upload.d.ts +43 -0
- package/dist/vue/use-chunked-rest-upload.d.ts +56 -0
- package/dist/vue/use-delete-file.d.ts +22 -0
- package/dist/vue/use-file-input.d.ts +33 -0
- package/dist/vue/use-get-file-list.d.ts +43 -0
- package/dist/vue/use-get-file-meta.d.ts +26 -0
- package/dist/vue/use-get-file.d.ts +35 -0
- package/dist/vue/use-head-file.d.ts +46 -0
- package/dist/vue/use-multipart-upload.d.ts +36 -0
- package/dist/vue/use-paste-upload.d.ts +21 -0
- package/dist/vue/use-patch-chunk.d.ts +26 -0
- package/dist/vue/use-put-file.d.ts +29 -0
- package/dist/vue/use-retry-listener.d.ts +15 -0
- package/dist/vue/use-retry.d.ts +16 -0
- package/dist/vue/use-transform-file.d.ts +45 -0
- package/dist/vue/use-transform-metadata.d.ts +30 -0
- package/dist/vue/use-tus-upload.d.ts +56 -0
- package/dist/vue/use-upload.d.ts +68 -0
- package/package.json +101 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
## @visulima/storage-client 1.0.0-alpha.1 (2025-12-01)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* new storage and storage-client package ([#574](https://github.com/visulima/visulima/issues/574)) ([33db3c1](https://github.com/visulima/visulima/commit/33db3c1ebb5718f4e2c1228b5a53d3b901bb1383))
|
|
6
|
+
|
|
7
|
+
### Miscellaneous Chores
|
|
8
|
+
|
|
9
|
+
* update @visulima/packem version to 2.0.0-alpha.40 across multiple packages ([e5be373](https://github.com/visulima/visulima/commit/e5be373fef8f8dda20c1dee7a1ac30d9b7a7712e))
|
|
10
|
+
* update package dependencies and versions across multiple packages ([9a9ac80](https://github.com/visulima/visulima/commit/9a9ac8046f7138cf37bec9e2041bc2125e97f212))
|
package/LICENSE.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 visulima
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
<!-- DEPENDENCIES -->
|
|
24
|
+
<!-- /DEPENDENCIES -->
|
|
25
|
+
|
|
26
|
+
<!-- TYPE_DEPENDENCIES -->
|
|
27
|
+
<!-- /TYPE_DEPENDENCIES -->
|
package/README.md
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h3>visulima storage-client</h3>
|
|
3
|
+
<p>
|
|
4
|
+
"The upload client library. Simple and easy file uploads for React | Vue | Solid | .
|
|
5
|
+
</p>
|
|
6
|
+
</div>
|
|
7
|
+
|
|
8
|
+
<br />
|
|
9
|
+
|
|
10
|
+
<div align="center">
|
|
11
|
+
|
|
12
|
+
[![typescript-image]][typescript-url] [![npm-image]][npm-url] [![license-image]][license-url]
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<div align="center">
|
|
19
|
+
<p>
|
|
20
|
+
<sup>
|
|
21
|
+
Daniel Bannert's open source work is supported by the community on <a href="https://github.com/sponsors/prisis">GitHub Sponsors</a>
|
|
22
|
+
</sup>
|
|
23
|
+
</p>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Install
|
|
29
|
+
|
|
30
|
+
```sh
|
|
31
|
+
npm install @visulima/storage-client
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
yarn add @visulima/storage-client
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
pnpm add @visulima/storage-client
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Usage
|
|
43
|
+
|
|
44
|
+
## Related
|
|
45
|
+
|
|
46
|
+
## Supported Node.js Versions
|
|
47
|
+
|
|
48
|
+
Libraries in this ecosystem make the best effort to track [Node.js’ release schedule](https://github.com/nodejs/release#release-schedule).
|
|
49
|
+
Here’s [a post on why we think this is important](https://medium.com/the-node-js-collection/maintainers-should-consider-following-node-js-release-schedule-ab08ed4de71a).
|
|
50
|
+
|
|
51
|
+
## Contributing
|
|
52
|
+
|
|
53
|
+
If you would like to help take a look at the [list of issues](https://github.com/visulima/visulima/issues) and check our [Contributing](.github/CONTRIBUTING.md) guidelines.
|
|
54
|
+
|
|
55
|
+
> **Note:** please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
|
|
56
|
+
|
|
57
|
+
## Credits
|
|
58
|
+
|
|
59
|
+
- [Daniel Bannert](https://github.com/prisis)
|
|
60
|
+
- [All Contributors](https://github.com/visulima/visulima/graphs/contributors)
|
|
61
|
+
|
|
62
|
+
## License
|
|
63
|
+
|
|
64
|
+
The visulima storage-client is open-sourced software licensed under the [MIT][license-url]
|
|
65
|
+
|
|
66
|
+
[typescript-image]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript
|
|
67
|
+
[typescript-url]: https://www.typescriptlang.org/ "TypeScript"
|
|
68
|
+
[license-image]: https://img.shields.io/npm/l/@visulima/storage-client?color=blueviolet&style=for-the-badge
|
|
69
|
+
[license-url]: LICENSE.md "license"
|
|
70
|
+
[npm-image]: https://img.shields.io/npm/v/@visulima/storage-client/latest.svg?style=for-the-badge&logo=npm
|
|
71
|
+
[npm-url]: https://www.npmjs.com/package/@visulima/storage-client/v/latest "npm"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { UploadResult } from "../react/types.d.ts";
|
|
2
|
+
export interface ChunkedRestAdapterOptions {
|
|
3
|
+
/** Chunk size in bytes (default: 5MB) */
|
|
4
|
+
chunkSize?: number;
|
|
5
|
+
/** Upload endpoint URL */
|
|
6
|
+
endpoint: string;
|
|
7
|
+
/** Maximum number of retry attempts */
|
|
8
|
+
maxRetries?: number;
|
|
9
|
+
/** Additional metadata to include with the upload */
|
|
10
|
+
metadata?: Record<string, string>;
|
|
11
|
+
/** Enable automatic retry on failure */
|
|
12
|
+
retry?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface ChunkedRestAdapter {
|
|
15
|
+
/** Abort current upload */
|
|
16
|
+
abort: () => void;
|
|
17
|
+
/** Clear upload state */
|
|
18
|
+
clear: () => void;
|
|
19
|
+
/** Get current upload offset */
|
|
20
|
+
getOffset: () => Promise<number>;
|
|
21
|
+
/** Check if upload is paused */
|
|
22
|
+
isPaused: () => boolean;
|
|
23
|
+
/** Pause upload */
|
|
24
|
+
pause: () => void;
|
|
25
|
+
/** Resume upload */
|
|
26
|
+
resume: () => Promise<void>;
|
|
27
|
+
/** Set error callback */
|
|
28
|
+
setOnError: (callback?: (error: Error) => void) => void;
|
|
29
|
+
/** Set finish callback */
|
|
30
|
+
setOnFinish: (callback?: (result: UploadResult) => void) => void;
|
|
31
|
+
/** Set progress callback */
|
|
32
|
+
setOnProgress: (callback?: (progress: number, offset: number) => void) => void;
|
|
33
|
+
/** Set start callback */
|
|
34
|
+
setOnStart: (callback?: () => void) => void;
|
|
35
|
+
/** Upload a file in chunks */
|
|
36
|
+
upload: (file: File) => Promise<UploadResult>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Creates a chunked REST upload adapter.
|
|
40
|
+
* This adapter uploads files in chunks using PATCH requests.
|
|
41
|
+
* Supports pause/resume and handles out-of-order chunks.
|
|
42
|
+
*/
|
|
43
|
+
export declare const createChunkedRestAdapter: (options: ChunkedRestAdapterOptions) => ChunkedRestAdapter;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type { ChunkedRestAdapter, ChunkedRestAdapterOptions } from "./chunked-rest-adapter.d.ts";
|
|
2
|
+
export { createChunkedRestAdapter } from "./chunked-rest-adapter.d.ts";
|
|
3
|
+
export type { MultipartAdapter, MultipartAdapterOptions } from "./multipart-adapter.d.ts";
|
|
4
|
+
export { createMultipartAdapter } from "./multipart-adapter.d.ts";
|
|
5
|
+
export type { ApiError } from "./query-client.d.ts";
|
|
6
|
+
export { buildUrl, deleteRequest, extractFileMetaFromHeaders, fetchFile, fetchHead, fetchJson, parseApiError, patchChunk, putFile } from "./query-client.d.ts";
|
|
7
|
+
export { default as storageQueryKeys } from "./query-keys.d.ts";
|
|
8
|
+
export type { TusAdapter, TusAdapterOptions } from "./tus-adapter.d.ts";
|
|
9
|
+
export { createTusAdapter } from "./tus-adapter.d.ts";
|
|
10
|
+
export type { BatchState, UploaderOptions as CoreUploaderOptions, Uploader, UploaderEventHandler, UploaderEventType, UploadItem } from "./uploader.d.ts";
|
|
11
|
+
export { createUploader } from "./uploader.d.ts";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { UploadResult } from "../react/types.d.ts";
|
|
2
|
+
import type { Uploader } from "./uploader.d.ts";
|
|
3
|
+
export interface MultipartAdapterOptions {
|
|
4
|
+
/** Upload endpoint URL */
|
|
5
|
+
endpoint: string;
|
|
6
|
+
/** Maximum number of retry attempts */
|
|
7
|
+
maxRetries?: number;
|
|
8
|
+
/** Additional metadata to include with the upload */
|
|
9
|
+
metadata?: Record<string, string>;
|
|
10
|
+
/** Enable automatic retry on failure */
|
|
11
|
+
retry?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface MultipartAdapter {
|
|
14
|
+
/** Abort all uploads */
|
|
15
|
+
abort: () => void;
|
|
16
|
+
/** Abort a batch of uploads */
|
|
17
|
+
abortBatch: (batchId: string) => void;
|
|
18
|
+
/** Abort a specific upload item */
|
|
19
|
+
abortItem: (id: string) => void;
|
|
20
|
+
/** Clear all uploads */
|
|
21
|
+
clear: () => void;
|
|
22
|
+
/** Upload a file and return visulima-compatible result */
|
|
23
|
+
upload: (file: File) => Promise<UploadResult>;
|
|
24
|
+
/** Upload multiple files as a batch and return item IDs */
|
|
25
|
+
uploadBatch: (files: File[]) => string[];
|
|
26
|
+
/** The underlying uploader instance */
|
|
27
|
+
uploader: Uploader;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates a multipart upload adapter.
|
|
31
|
+
* This adapter provides a clean interface for multipart file uploads
|
|
32
|
+
* with proper progress tracking and event handling.
|
|
33
|
+
*/
|
|
34
|
+
export declare const createMultipartAdapter: (options: MultipartAdapterOptions) => MultipartAdapter;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { FileMeta } from "../react/types.d.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Error response from the API
|
|
4
|
+
*/
|
|
5
|
+
export interface ApiError {
|
|
6
|
+
error: {
|
|
7
|
+
code: string;
|
|
8
|
+
message: string;
|
|
9
|
+
name?: string;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Parses error response from API.
|
|
14
|
+
*/
|
|
15
|
+
export declare const parseApiError: (response: Response) => Promise<Error>;
|
|
16
|
+
/**
|
|
17
|
+
* Extracts file metadata from response headers.
|
|
18
|
+
*/
|
|
19
|
+
export declare const extractFileMetaFromHeaders: (id: string, headers: Headers) => FileMeta;
|
|
20
|
+
/**
|
|
21
|
+
* Builds URL with query parameters.
|
|
22
|
+
*/
|
|
23
|
+
export declare const buildUrl: (baseUrl: string, path: string, params?: Record<string, string | number | boolean | undefined>) => string;
|
|
24
|
+
/**
|
|
25
|
+
* Fetches file with error handling.
|
|
26
|
+
*/
|
|
27
|
+
export declare const fetchFile: (url: string) => Promise<Blob>;
|
|
28
|
+
/**
|
|
29
|
+
* Fetches JSON with error handling.
|
|
30
|
+
*/
|
|
31
|
+
export declare const fetchJson: <T = unknown>(url: string) => Promise<T>;
|
|
32
|
+
/**
|
|
33
|
+
* Fetches with HEAD method for metadata.
|
|
34
|
+
*/
|
|
35
|
+
export declare const fetchHead: (url: string) => Promise<Headers>;
|
|
36
|
+
/**
|
|
37
|
+
* Deletes with error handling.
|
|
38
|
+
*/
|
|
39
|
+
export declare const deleteRequest: (url: string) => Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* PUT request with file upload and progress tracking.
|
|
42
|
+
*/
|
|
43
|
+
export declare const putFile: (url: string, file: File | Blob, onProgress?: (progress: number) => void) => Promise<{
|
|
44
|
+
etag?: string;
|
|
45
|
+
location?: string;
|
|
46
|
+
uploadExpires?: string;
|
|
47
|
+
}>;
|
|
48
|
+
/**
|
|
49
|
+
* PATCH request for chunk uploads.
|
|
50
|
+
*/
|
|
51
|
+
export declare const patchChunk: (url: string, chunk: Blob, offset: number, checksum?: string) => Promise<{
|
|
52
|
+
etag?: string;
|
|
53
|
+
location?: string;
|
|
54
|
+
uploadComplete?: boolean;
|
|
55
|
+
uploadExpires?: string;
|
|
56
|
+
uploadOffset?: number;
|
|
57
|
+
}>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query key factory for storage operations
|
|
3
|
+
* Provides consistent query key generation across all hooks
|
|
4
|
+
*/
|
|
5
|
+
declare const storageQueryKeys: {
|
|
6
|
+
/**
|
|
7
|
+
* Base key for all storage queries
|
|
8
|
+
*/
|
|
9
|
+
readonly all: readonly ["storage"];
|
|
10
|
+
/**
|
|
11
|
+
* File-related query keys
|
|
12
|
+
*/
|
|
13
|
+
readonly files: {
|
|
14
|
+
readonly all: (endpoint: string) => ReadonlyArray<unknown>;
|
|
15
|
+
readonly detail: (endpoint: string, id: string, transformParams?: Record<string, string | number | boolean>) => ReadonlyArray<unknown>;
|
|
16
|
+
readonly details: (endpoint: string) => ReadonlyArray<unknown>;
|
|
17
|
+
readonly head: (endpoint: string, id: string) => ReadonlyArray<unknown>;
|
|
18
|
+
readonly list: (endpoint: string, filters?: {
|
|
19
|
+
limit?: number;
|
|
20
|
+
page?: number;
|
|
21
|
+
}) => ReadonlyArray<unknown>;
|
|
22
|
+
readonly lists: (endpoint: string) => ReadonlyArray<unknown>;
|
|
23
|
+
readonly meta: (endpoint: string, id: string) => ReadonlyArray<unknown>;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Transform-related query keys
|
|
27
|
+
*/
|
|
28
|
+
readonly transform: {
|
|
29
|
+
readonly all: (endpoint: string) => ReadonlyArray<unknown>;
|
|
30
|
+
readonly file: (endpoint: string, id: string, transformParams: Record<string, string | number | boolean>) => ReadonlyArray<unknown>;
|
|
31
|
+
readonly metadata: (endpoint: string) => ReadonlyArray<unknown>;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export default storageQueryKeys;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { UploadResult } from "../react/types.d.ts";
|
|
2
|
+
export interface TusAdapterOptions {
|
|
3
|
+
/** Chunk size for TUS uploads (default: 1MB) */
|
|
4
|
+
chunkSize?: number;
|
|
5
|
+
/** TUS upload endpoint URL */
|
|
6
|
+
endpoint: string;
|
|
7
|
+
/** Maximum number of retry attempts */
|
|
8
|
+
maxRetries?: number;
|
|
9
|
+
/** Additional metadata to include with the upload */
|
|
10
|
+
metadata?: Record<string, string>;
|
|
11
|
+
/** Enable automatic retry on failure */
|
|
12
|
+
retry?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface TusAdapter {
|
|
15
|
+
/** Abort the current upload */
|
|
16
|
+
abort: () => void;
|
|
17
|
+
/** Clear all uploads */
|
|
18
|
+
clear: () => void;
|
|
19
|
+
/** Get current upload offset */
|
|
20
|
+
getOffset: () => number;
|
|
21
|
+
/** Whether upload is paused */
|
|
22
|
+
isPaused: () => boolean;
|
|
23
|
+
/** Pause the current upload */
|
|
24
|
+
pause: () => void;
|
|
25
|
+
/** Resume a paused upload */
|
|
26
|
+
resume: () => Promise<void>;
|
|
27
|
+
/** Set error callback */
|
|
28
|
+
setOnError: (callback: ((error: Error) => void) | undefined) => void;
|
|
29
|
+
/** Set finish callback */
|
|
30
|
+
setOnFinish: (callback: ((result: UploadResult) => void) | undefined) => void;
|
|
31
|
+
/** Set progress callback */
|
|
32
|
+
setOnProgress: (callback: ((progress: number, offset: number) => void) | undefined) => void;
|
|
33
|
+
/** Set start callback */
|
|
34
|
+
setOnStart: (callback: (() => void) | undefined) => void;
|
|
35
|
+
/** Upload a file and return visulima-compatible result */
|
|
36
|
+
upload: (file: File) => Promise<UploadResult>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Creates a TUS upload adapter.
|
|
40
|
+
* This adapter provides a clean interface for TUS resumable file uploads
|
|
41
|
+
* with proper progress tracking, pause/resume, and event handling.
|
|
42
|
+
*/
|
|
43
|
+
export declare const createTusAdapter: (options: TusAdapterOptions) => TusAdapter;
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Upload item state
|
|
3
|
+
*/
|
|
4
|
+
export interface UploadItem {
|
|
5
|
+
/** Batch ID this item belongs to (if part of a batch) */
|
|
6
|
+
batchId?: string;
|
|
7
|
+
/** Upload progress percentage (0-100) */
|
|
8
|
+
completed: number;
|
|
9
|
+
/** Error message if upload failed */
|
|
10
|
+
error?: string;
|
|
11
|
+
/** The file being uploaded */
|
|
12
|
+
file: File;
|
|
13
|
+
/** Unique item ID */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Bytes uploaded so far */
|
|
16
|
+
loaded: number;
|
|
17
|
+
/** Number of retry attempts */
|
|
18
|
+
retryCount?: number;
|
|
19
|
+
/** Total file size in bytes */
|
|
20
|
+
size: number;
|
|
21
|
+
/** Upload status */
|
|
22
|
+
status: "pending" | "uploading" | "completed" | "error" | "aborted";
|
|
23
|
+
/** Upload response data */
|
|
24
|
+
uploadResponse?: {
|
|
25
|
+
data?: unknown;
|
|
26
|
+
response?: string;
|
|
27
|
+
};
|
|
28
|
+
/** File URL after upload */
|
|
29
|
+
url?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Batch state information
|
|
33
|
+
*/
|
|
34
|
+
export interface BatchState {
|
|
35
|
+
/** Number of completed items */
|
|
36
|
+
completedCount: number;
|
|
37
|
+
/** Number of failed items */
|
|
38
|
+
errorCount: number;
|
|
39
|
+
/** Batch ID */
|
|
40
|
+
id: string;
|
|
41
|
+
/** Item IDs in this batch */
|
|
42
|
+
itemIds: string[];
|
|
43
|
+
/** Aggregate progress (0-100) */
|
|
44
|
+
progress: number;
|
|
45
|
+
/** Batch status */
|
|
46
|
+
status: "pending" | "uploading" | "completed" | "error" | "cancelled";
|
|
47
|
+
/** Total number of items */
|
|
48
|
+
totalCount: number;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Uploader event types
|
|
52
|
+
*/
|
|
53
|
+
export type UploaderEventType = "ITEM_START" | "ITEM_PROGRESS" | "ITEM_FINISH" | "ITEM_ERROR" | "ITEM_ABORT" | "BATCH_START" | "BATCH_PROGRESS" | "BATCH_FINISH" | "BATCH_ERROR" | "BATCH_CANCELLED" | "BATCH_FINALIZE" | "BATCH_COMPLETE";
|
|
54
|
+
/**
|
|
55
|
+
* Event handler function type
|
|
56
|
+
*/
|
|
57
|
+
export type UploaderEventHandler<T = UploadItem | BatchState> = (item: T) => void;
|
|
58
|
+
/**
|
|
59
|
+
* Configuration options for the uploader.
|
|
60
|
+
*/
|
|
61
|
+
export interface UploaderOptions {
|
|
62
|
+
/** Upload endpoint URL */
|
|
63
|
+
endpoint: string;
|
|
64
|
+
/** Maximum number of retry attempts */
|
|
65
|
+
maxRetries?: number;
|
|
66
|
+
/** Additional metadata to include with the upload */
|
|
67
|
+
metadata?: Record<string, string>;
|
|
68
|
+
/** Enable automatic retry on failure */
|
|
69
|
+
retry?: boolean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Uploader class - event-driven file uploader inspired by rpldy design
|
|
73
|
+
*/
|
|
74
|
+
export declare class Uploader {
|
|
75
|
+
private readonly options;
|
|
76
|
+
/**
|
|
77
|
+
* Creates FormData for visulima multipart handler.
|
|
78
|
+
*/
|
|
79
|
+
private static createFormData;
|
|
80
|
+
/**
|
|
81
|
+
* Parses response as FileMeta.
|
|
82
|
+
*/
|
|
83
|
+
private static parseResponse;
|
|
84
|
+
private items;
|
|
85
|
+
private batches;
|
|
86
|
+
private eventHandlers;
|
|
87
|
+
private activeUploads;
|
|
88
|
+
private itemIdCounter;
|
|
89
|
+
private batchIdCounter;
|
|
90
|
+
constructor(options: UploaderOptions);
|
|
91
|
+
/**
|
|
92
|
+
* Subscribes to uploader events.
|
|
93
|
+
*/
|
|
94
|
+
on(event: UploaderEventType, handler: UploaderEventHandler): void;
|
|
95
|
+
/**
|
|
96
|
+
* Unsubscribes from uploader events.
|
|
97
|
+
*/
|
|
98
|
+
off(event: UploaderEventType, handler: UploaderEventHandler): void;
|
|
99
|
+
/**
|
|
100
|
+
* Adds a file to the upload queue.
|
|
101
|
+
*/
|
|
102
|
+
add(file: File, batchId?: string): string;
|
|
103
|
+
/**
|
|
104
|
+
* Adds multiple files to the upload queue as a batch.
|
|
105
|
+
*/
|
|
106
|
+
addBatch(files: File[]): string[];
|
|
107
|
+
/**
|
|
108
|
+
* Gets an item by ID.
|
|
109
|
+
*/
|
|
110
|
+
getItem(id: string): UploadItem | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Aborts a specific upload.
|
|
113
|
+
*/
|
|
114
|
+
abortItem(id: string): void;
|
|
115
|
+
/**
|
|
116
|
+
* Aborts all uploads in a batch.
|
|
117
|
+
*/
|
|
118
|
+
abortBatch(batchId: string): void;
|
|
119
|
+
/**
|
|
120
|
+
* Aborts all uploads.
|
|
121
|
+
*/
|
|
122
|
+
abort(): void;
|
|
123
|
+
/**
|
|
124
|
+
* Clears all items and aborts active uploads.
|
|
125
|
+
*/
|
|
126
|
+
clear(): void;
|
|
127
|
+
/**
|
|
128
|
+
* Gets all items.
|
|
129
|
+
*/
|
|
130
|
+
getItems(): UploadItem[];
|
|
131
|
+
/**
|
|
132
|
+
* Gets all items in a batch.
|
|
133
|
+
*/
|
|
134
|
+
getBatchItems(batchId: string): UploadItem[];
|
|
135
|
+
/**
|
|
136
|
+
* Gets batch state by batch ID.
|
|
137
|
+
*/
|
|
138
|
+
getBatch(batchId: string): BatchState | undefined;
|
|
139
|
+
/**
|
|
140
|
+
* Gets all batches.
|
|
141
|
+
*/
|
|
142
|
+
getBatches(): BatchState[];
|
|
143
|
+
/**
|
|
144
|
+
* Retries a failed upload item.
|
|
145
|
+
*/
|
|
146
|
+
retryItem(id: string): void;
|
|
147
|
+
/**
|
|
148
|
+
* Retries all failed items in a batch.
|
|
149
|
+
*/
|
|
150
|
+
retryBatch(batchId: string): void;
|
|
151
|
+
/**
|
|
152
|
+
* Generates a unique item ID.
|
|
153
|
+
*/
|
|
154
|
+
private generateItemId;
|
|
155
|
+
/**
|
|
156
|
+
* Generates a unique batch ID.
|
|
157
|
+
*/
|
|
158
|
+
private generateBatchId;
|
|
159
|
+
/**
|
|
160
|
+
* Calculates aggregate progress for a batch.
|
|
161
|
+
*/
|
|
162
|
+
private calculateBatchProgress;
|
|
163
|
+
/**
|
|
164
|
+
* Updates batch state and emits batch progress event.
|
|
165
|
+
*/
|
|
166
|
+
private updateBatchProgress;
|
|
167
|
+
/**
|
|
168
|
+
* Emits a batch event to all registered handlers.
|
|
169
|
+
*/
|
|
170
|
+
private emitBatch;
|
|
171
|
+
/**
|
|
172
|
+
* Emits an event to all registered handlers.
|
|
173
|
+
*/
|
|
174
|
+
private emit;
|
|
175
|
+
/**
|
|
176
|
+
* Uploads a single file.
|
|
177
|
+
*/
|
|
178
|
+
private uploadFile;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Creates a new uploader instance.
|
|
182
|
+
*/
|
|
183
|
+
export declare const createUploader: (options: UploaderOptions) => Uploader;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./core/index.d.ts";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{default as t}from"./packem_shared/storageQueryKeys-cD4rL4b1.js";import{createChunkedRestAdapter as o}from"./packem_shared/createChunkedRestAdapter-Df1E_Adn.js";import{createMultipartAdapter as d}from"./packem_shared/createMultipartAdapter-CoJpvX9z.js";import{buildUrl as c,deleteRequest as l,extractFileMetaFromHeaders as s,fetchFile as u,fetchHead as m,fetchJson as x,parseApiError as h,patchChunk as i,putFile as A}from"./packem_shared/parseApiError-CUagSahh.js";import{createTusAdapter as n}from"./packem_shared/createTusAdapter-DM31lujI.js";import{createUploader as y}from"./packem_shared/createUploader-B_IjjBxw.js";export{c as buildUrl,o as createChunkedRestAdapter,d as createMultipartAdapter,n as createTusAdapter,y as createUploader,l as deleteRequest,s as extractFileMetaFromHeaders,u as fetchFile,m as fetchHead,x as fetchJson,h as parseApiError,i as patchChunk,A as putFile,t as storageQueryKeys};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var n=Object.defineProperty;var r=(t,e)=>n(t,"name",{value:e,configurable:!0});import{createMultipartAdapter as b}from"./createMultipartAdapter-CoJpvX9z.js";var c=Object.defineProperty,a=r((t,e)=>c(t,"name",{value:e,configurable:!0}),"e");const d=a(t=>{const{endpoint:e,metadata:o}=t,l=b({endpoint:e,metadata:o});return{abortAll:a(()=>{l.abort()},"abortAll")}},"createAbortAll");export{d as createAbortAll};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var n=Object.defineProperty;var r=(t,e)=>n(t,"name",{value:e,configurable:!0});import{createMultipartAdapter as b}from"./createMultipartAdapter-CoJpvX9z.js";var c=Object.defineProperty,a=r((t,e)=>c(t,"name",{value:e,configurable:!0}),"e");const d=a(t=>{const{endpoint:e,metadata:o}=t,l=b({endpoint:e,metadata:o});return{abortAll:a(()=>{l.abort()},"abortAll")}},"createAbortAll");export{d as createAbortAll};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var b=Object.defineProperty;var e=(t,a)=>b(t,"name",{value:a,configurable:!0});import{createMultipartAdapter as p}from"./createMultipartAdapter-CoJpvX9z.js";var d=Object.defineProperty,r=e((t,a)=>d(t,"name",{value:a,configurable:!0}),"a");const m=r(t=>{const{endpoint:a,metadata:o}=t,c=p({endpoint:a,metadata:o});return{abortBatch:r(n=>{c.abortBatch(n)},"abortBatch")}},"createAbortBatch");export{m as createAbortBatch};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var b=Object.defineProperty;var e=(t,a)=>b(t,"name",{value:a,configurable:!0});import{createMultipartAdapter as p}from"./createMultipartAdapter-CoJpvX9z.js";var d=Object.defineProperty,r=e((t,a)=>d(t,"name",{value:a,configurable:!0}),"a");const m=r(t=>{const{endpoint:a,metadata:o}=t,c=p({endpoint:a,metadata:o});return{abortBatch:r(n=>{c.abortBatch(n)},"abortBatch")}},"createAbortBatch");export{m as createAbortBatch};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var b=Object.defineProperty;var r=(t,e)=>b(t,"name",{value:e,configurable:!0});import{createMultipartAdapter as c}from"./createMultipartAdapter-CoJpvX9z.js";var i=Object.defineProperty,a=r((t,e)=>i(t,"name",{value:e,configurable:!0}),"r");const u=a(t=>{const{endpoint:e,metadata:o}=t,m=c({endpoint:e,metadata:o});return{abortItem:a(n=>{m.abortItem(n)},"abortItem")}},"createAbortItem");export{u as createAbortItem};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var b=Object.defineProperty;var r=(t,e)=>b(t,"name",{value:e,configurable:!0});import{createMultipartAdapter as c}from"./createMultipartAdapter-CoJpvX9z.js";var i=Object.defineProperty,a=r((t,e)=>i(t,"name",{value:e,configurable:!0}),"r");const u=a(t=>{const{endpoint:e,metadata:o}=t,m=c({endpoint:e,metadata:o});return{abortItem:a(n=>{m.abortItem(n)},"abortItem")}},"createAbortItem");export{u as createAbortItem};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=Object.defineProperty;var n=(e,t)=>d(e,"name",{value:t,configurable:!0});import{onMount as c,onDestroy as A}from"svelte";import{createMultipartAdapter as f}from"./createMultipartAdapter-CoJpvX9z.js";var m=Object.defineProperty,i=n((e,t)=>m(e,"name",{value:t,configurable:!0}),"e");const M=i(e=>{const{endpoint:t,metadata:l,onAbort:p}=e;c(()=>{const r=f({endpoint:t,metadata:l}),o=i(a=>{"file"in a&&p(a)},"handler");r.uploader.on("ITEM_ABORT",o),A(()=>{r.uploader.off("ITEM_ABORT",o)})})},"createAllAbortListener");export{M as createAllAbortListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=Object.defineProperty;var n=(e,t)=>d(e,"name",{value:t,configurable:!0});import{onMount as c,onCleanup as u}from"solid-js";import{createMultipartAdapter as A}from"./createMultipartAdapter-CoJpvX9z.js";var f=Object.defineProperty,i=n((e,t)=>f(e,"name",{value:t,configurable:!0}),"e");const M=i(e=>{const{endpoint:t,metadata:l,onAbort:p}=e;c(()=>{const r=A({endpoint:t,metadata:l}),o=i(a=>{"file"in a&&p(a)},"handler");r.uploader.on("ITEM_ABORT",o),u(()=>{r.uploader.off("ITEM_ABORT",o)})})},"createAllAbortListener");export{M as createAllAbortListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var l=Object.defineProperty;var r=(e,t)=>l(e,"name",{value:t,configurable:!0});import{onMount as p,onDestroy as C}from"svelte";import{createMultipartAdapter as m}from"./createMultipartAdapter-CoJpvX9z.js";var s=Object.defineProperty,c=r((e,t)=>s(e,"name",{value:t,configurable:!0}),"a");const A=c(e=>{const{endpoint:t,metadata:d,onBatchCancelled:i}=e;p(()=>{const a=m({endpoint:t,metadata:d}),n=c(o=>{"itemIds"in o&&i(o)},"handler");a.uploader.on("BATCH_CANCELLED",n),C(()=>{a.uploader.off("BATCH_CANCELLED",n)})})},"createBatchCancelledListener");export{A as createBatchCancelledListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var i=Object.defineProperty;var r=(e,t)=>i(e,"name",{value:t,configurable:!0});import{onMount as p,onCleanup as C}from"solid-js";import{createMultipartAdapter as m}from"./createMultipartAdapter-CoJpvX9z.js";var u=Object.defineProperty,c=r((e,t)=>u(e,"name",{value:t,configurable:!0}),"a");const A=c(e=>{const{endpoint:t,metadata:d,onBatchCancelled:l}=e;p(()=>{const a=m({endpoint:t,metadata:d}),n=c(o=>{"itemIds"in o&&l(o)},"handler");a.uploader.on("BATCH_CANCELLED",n),C(()=>{a.uploader.off("BATCH_CANCELLED",n)})})},"createBatchCancelledListener");export{A as createBatchCancelledListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var m=Object.defineProperty;var f=(s,t)=>m(s,"name",{value:t,configurable:!0});import{useQueryClient as y,createMutation as p}from"@tanstack/solid-query";import c from"./storageQueryKeys-cD4rL4b1.js";var g=Object.defineProperty,a=f((s,t)=>g(s,"name",{value:t,configurable:!0}),"s");const D=a(s=>{const{endpoint:t}=s,n=y(),o=p(()=>({mutationFn:a(async r=>{const i=new URL(t.endsWith("/")?t.slice(0,-1):t);i.searchParams.append("ids",r.join(","));const e=await fetch(i.toString(),{method:"DELETE"});if(!e.ok){const h=await e.json().catch(()=>({error:{code:"RequestFailed",message:e.statusText}}));throw new Error(h.error?.message||`Failed to batch delete files: ${e.status} ${e.statusText}`)}const l=e.headers.get("X-Delete-Successful"),d=e.headers.get("X-Delete-Failed"),u={failed:d?Number.parseInt(d,10):void 0,successful:l?Number.parseInt(l,10):void 0};return e.status===204&&(u.successful=r.length,u.failed=0),u},"mutationFn"),onSuccess:a((r,i)=>{n.invalidateQueries({queryKey:c.files.all(t)}),i.forEach(e=>{n.removeQueries({queryKey:c.files.detail(t,e)}),n.removeQueries({queryKey:c.files.meta(t,e)}),n.removeQueries({queryKey:c.files.head(t,e)})})},"onSuccess")}));return{batchDeleteFiles:o.mutateAsync,error:a(()=>{try{const r=o.error;return(typeof r=="function"?r():r)||void 0}catch{return}},"error"),isLoading:a(()=>{try{const r=o.isPending;return typeof r=="function"?r():r}catch{return!1}},"isLoading"),reset:o.reset}},"createBatchDeleteFiles");export{D as createBatchDeleteFiles};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var v=Object.defineProperty;var m=(r,t)=>v(r,"name",{value:t,configurable:!0});import{useQueryClient as b,createMutation as p}from"@tanstack/svelte-query";import{derived as F,readable as f}from"svelte/store";import o from"./storageQueryKeys-cD4rL4b1.js";var D=Object.defineProperty,u=m((r,t)=>D(r,"name",{value:t,configurable:!0}),"i");const Q=u(r=>{const{endpoint:t}=r,a=b(),s=p(()=>({mutationFn:u(async i=>{const n=new URL(t.endsWith("/")?t.slice(0,-1):t);n.searchParams.append("ids",i.join(","));const e=await fetch(n.toString(),{method:"DELETE"});if(!e.ok){const y=await e.json().catch(()=>({error:{code:"RequestFailed",message:e.statusText}}));throw new Error(y.error?.message||`Failed to batch delete files: ${e.status} ${e.statusText}`)}const l=e.headers.get("X-Delete-Successful"),d=e.headers.get("X-Delete-Failed"),c={failed:d?Number.parseInt(d,10):void 0,successful:l?Number.parseInt(l,10):void 0};return e.status===204&&(c.successful=i.length,c.failed=0),c},"mutationFn"),onSuccess:u((i,n)=>{a.invalidateQueries({queryKey:o.files.all(t)}),n.forEach(e=>{a.removeQueries({queryKey:o.files.detail(t,e)}),a.removeQueries({queryKey:o.files.meta(t,e)}),a.removeQueries({queryKey:o.files.head(t,e)})})},"onSuccess")})),h=F(s.error??f(void 0),i=>i||void 0),g=typeof s.isPending=="object"&&s.isPending!==null&&"subscribe"in s.isPending?s.isPending:f(!1);return{batchDeleteFiles:s.mutateAsync,error:h,isLoading:g,reset:s.reset}},"createBatchDeleteFiles");export{Q as createBatchDeleteFiles};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=Object.defineProperty;var n=(r,e)=>d(r,"name",{value:e,configurable:!0});import{onMount as m,onDestroy as s}from"svelte";import{createMultipartAdapter as u}from"./createMultipartAdapter-CoJpvX9z.js";var f=Object.defineProperty,c=n((r,e)=>f(r,"name",{value:e,configurable:!0}),"o");const E=c(r=>{const{endpoint:e,metadata:i,onBatchError:p}=r;m(()=>{const t=u({endpoint:e,metadata:i}),o=c(a=>{"itemIds"in a&&p(a)},"handler");t.uploader.on("BATCH_ERROR",o),s(()=>{t.uploader.off("BATCH_ERROR",o)})})},"createBatchErrorListener");export{E as createBatchErrorListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=Object.defineProperty;var n=(r,e)=>d(r,"name",{value:e,configurable:!0});import{onMount as m,onCleanup as u}from"solid-js";import{createMultipartAdapter as l}from"./createMultipartAdapter-CoJpvX9z.js";var f=Object.defineProperty,c=n((r,e)=>f(r,"name",{value:e,configurable:!0}),"o");const E=c(r=>{const{endpoint:e,metadata:i,onBatchError:p}=r;m(()=>{const t=l({endpoint:e,metadata:i}),a=c(o=>{"itemIds"in o&&p(o)},"handler");t.uploader.on("BATCH_ERROR",a),u(()=>{t.uploader.off("BATCH_ERROR",a)})})},"createBatchErrorListener");export{E as createBatchErrorListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=Object.defineProperty;var n=(e,t)=>d(e,"name",{value:t,configurable:!0});import{onMount as l,onDestroy as m}from"svelte";import{createMultipartAdapter as s}from"./createMultipartAdapter-CoJpvX9z.js";var u=Object.defineProperty,i=n((e,t)=>u(e,"name",{value:t,configurable:!0}),"a");const F=i(e=>{const{endpoint:t,metadata:c,onBatchFinalize:p}=e;l(()=>{const a=s({endpoint:t,metadata:c}),r=i(o=>{"itemIds"in o&&p(o)},"handler");a.uploader.on("BATCH_FINALIZE",r),m(()=>{a.uploader.off("BATCH_FINALIZE",r)})})},"createBatchFinalizeListener");export{F as createBatchFinalizeListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=Object.defineProperty;var o=(e,t)=>d(e,"name",{value:t,configurable:!0});import{onMount as l,onCleanup as m}from"solid-js";import{createMultipartAdapter as u}from"./createMultipartAdapter-CoJpvX9z.js";var f=Object.defineProperty,i=o((e,t)=>f(e,"name",{value:t,configurable:!0}),"a");const F=i(e=>{const{endpoint:t,metadata:c,onBatchFinalize:p}=e;l(()=>{const a=u({endpoint:t,metadata:c}),n=i(r=>{"itemIds"in r&&p(r)},"handler");a.uploader.on("BATCH_FINALIZE",n),m(()=>{a.uploader.off("BATCH_FINALIZE",n)})})},"createBatchFinalizeListener");export{F as createBatchFinalizeListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=Object.defineProperty;var o=(e,t)=>d(e,"name",{value:t,configurable:!0});import{onMount as s,onCleanup as m}from"solid-js";import{createMultipartAdapter as u}from"./createMultipartAdapter-CoJpvX9z.js";var h=Object.defineProperty,i=o((e,t)=>h(e,"name",{value:t,configurable:!0}),"a");const F=i(e=>{const{endpoint:t,metadata:p,onBatchFinish:c}=e;s(()=>{const a=u({endpoint:t,metadata:p}),n=i(r=>{"itemIds"in r&&c(r)},"handler");a.uploader.on("BATCH_FINISH",n),m(()=>{a.uploader.off("BATCH_FINISH",n)})})},"createBatchFinishListener");export{F as createBatchFinishListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var s=Object.defineProperty;var n=(e,t)=>s(e,"name",{value:t,configurable:!0});import{onMount as d,onDestroy as m}from"svelte";import{createMultipartAdapter as h}from"./createMultipartAdapter-CoJpvX9z.js";var u=Object.defineProperty,i=n((e,t)=>u(e,"name",{value:t,configurable:!0}),"o");const F=i(e=>{const{endpoint:t,metadata:c,onBatchFinish:p}=e;d(()=>{const a=h({endpoint:t,metadata:c}),r=i(o=>{"itemIds"in o&&p(o)},"handler");a.uploader.on("BATCH_FINISH",r),m(()=>{a.uploader.off("BATCH_FINISH",r)})})},"createBatchFinishListener");export{F as createBatchFinishListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var c=Object.defineProperty;var n=(e,r)=>c(e,"name",{value:r,configurable:!0});import{onMount as d,onCleanup as m}from"solid-js";import{createMultipartAdapter as u}from"./createMultipartAdapter-CoJpvX9z.js";var l=Object.defineProperty,s=n((e,r)=>l(e,"name",{value:r,configurable:!0}),"o");const g=s(e=>{const{endpoint:r,metadata:i,onBatchProgress:p}=e;d(()=>{const t=u({endpoint:r,metadata:i}),a=s(o=>{"itemIds"in o&&p(o)},"handler");t.uploader.on("BATCH_PROGRESS",a),m(()=>{t.uploader.off("BATCH_PROGRESS",a)})})},"createBatchProgressListener");export{g as createBatchProgressListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var p=Object.defineProperty;var n=(e,r)=>p(e,"name",{value:r,configurable:!0});import{onMount as d,onDestroy as m}from"svelte";import{createMultipartAdapter as u}from"./createMultipartAdapter-CoJpvX9z.js";var f=Object.defineProperty,s=n((e,r)=>f(e,"name",{value:r,configurable:!0}),"o");const g=s(e=>{const{endpoint:r,metadata:i,onBatchProgress:c}=e;d(()=>{const t=u({endpoint:r,metadata:i}),o=s(a=>{"itemIds"in a&&c(a)},"handler");t.uploader.on("BATCH_PROGRESS",o),m(()=>{t.uploader.off("BATCH_PROGRESS",o)})})},"createBatchProgressListener");export{g as createBatchProgressListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var p=Object.defineProperty;var r=(t,e)=>p(t,"name",{value:e,configurable:!0});import{createMultipartAdapter as d}from"./createMultipartAdapter-CoJpvX9z.js";var i=Object.defineProperty,a=r((t,e)=>i(t,"name",{value:e,configurable:!0}),"r");const h=a(t=>{const{endpoint:e,metadata:c}=t,n=d({endpoint:e,metadata:c});return{retryBatch:a(o=>{n.uploader.retryBatch(o)},"retryBatch")}},"createBatchRetry");export{h as createBatchRetry};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var p=Object.defineProperty;var r=(t,e)=>p(t,"name",{value:e,configurable:!0});import{createMultipartAdapter as d}from"./createMultipartAdapter-CoJpvX9z.js";var i=Object.defineProperty,a=r((t,e)=>i(t,"name",{value:e,configurable:!0}),"r");const h=a(t=>{const{endpoint:e,metadata:c}=t,n=d({endpoint:e,metadata:c});return{retryBatch:a(o=>{n.uploader.retryBatch(o)},"retryBatch")}},"createBatchRetry");export{h as createBatchRetry};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=Object.defineProperty;var n=(t,e)=>d(t,"name",{value:e,configurable:!0});import{onMount as m,onCleanup as u}from"solid-js";import{createMultipartAdapter as l}from"./createMultipartAdapter-CoJpvX9z.js";var f=Object.defineProperty,c=n((t,e)=>f(t,"name",{value:e,configurable:!0}),"e");const B=c(t=>{const{endpoint:e,metadata:i,onBatchStart:p}=t;m(()=>{const a=l({endpoint:e,metadata:i}),r=c(o=>{"itemIds"in o&&p(o)},"handler");a.uploader.on("BATCH_START",r),u(()=>{a.uploader.off("BATCH_START",r)})})},"createBatchStartListener");export{B as createBatchStartListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var d=Object.defineProperty;var n=(t,e)=>d(t,"name",{value:e,configurable:!0});import{onMount as m,onDestroy as s}from"svelte";import{createMultipartAdapter as u}from"./createMultipartAdapter-CoJpvX9z.js";var f=Object.defineProperty,c=n((t,e)=>f(t,"name",{value:e,configurable:!0}),"e");const B=c(t=>{const{endpoint:e,metadata:i,onBatchStart:p}=t;m(()=>{const a=u({endpoint:e,metadata:i}),r=c(o=>{"itemIds"in o&&p(o)},"handler");a.uploader.on("BATCH_START",r),s(()=>{a.uploader.off("BATCH_START",r)})})},"createBatchStartListener");export{B as createBatchStartListener};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var N=Object.defineProperty;var S=(l,p)=>N(l,"name",{value:p,configurable:!0});import{onMount as O,onDestroy as P}from"svelte";import{writable as n,get as A}from"svelte/store";import{createMultipartAdapter as L}from"./createMultipartAdapter-CoJpvX9z.js";var U=Object.defineProperty,a=S((l,p)=>U(l,"name",{value:p,configurable:!0}),"r");const w=a(l=>{const{endpoint:p,metadata:E,onError:_,onProgress:b,onStart:y,onSuccess:v}=l,u=n([]),i=n(0),d=n(!1),B=n(void 0),f=n(0),m=n(0),c=n(void 0),C=L({endpoint:p,metadata:E});return O(()=>{const{uploader:t}=C,R=a(o=>{if("itemIds"in o){const e=o;c.set(e.id),d.set(!0),i.set(0),B.set(void 0),f.set(0),m.set(0),u.set(t.getBatchItems(e.id)),y?.(e.id)}},"onBatchStart"),T=a(o=>{if("itemIds"in o){const e=o;e.id===A(c)&&(i.set(e.progress),f.set(e.completedCount),m.set(e.errorCount),u.set(t.getBatchItems(e.id)),b?.(e.progress,e.id))}},"onBatchProgress"),g=a(o=>{if("itemIds"in o){const e=o;if(e.id===A(c)){const h=t.getBatchItems(e.id).filter(s=>s.status==="completed").map(s=>{let r={};try{s.uploadResponse?.data&&typeof s.uploadResponse.data=="object"?r=s.uploadResponse.data:s.uploadResponse?.response&&(r=JSON.parse(s.uploadResponse.response))}catch{}return{bytesWritten:r.bytesWritten,contentType:r.contentType??s.file.type,createdAt:r.createdAt,filename:r.originalName??s.file.name,id:r.id??s.id,metadata:r.metadata,name:r.name,originalName:r.originalName??s.file.name,size:r.size??s.file.size,status:r.status??"completed",url:s.url}});i.set(100),d.set(!1),v?.(h,e.id)}}},"onBatchFinish"),H=a(o=>{if("itemIds"in o){const e=o;if(e.id===A(c)){const h=new Error(`Batch upload failed: ${e.errorCount} file(s) failed`);B.set(h),d.set(!1),m.set(e.errorCount),f.set(e.completedCount),_?.(h,e.id)}}},"onBatchError"),I=a(o=>{"itemIds"in o&&o.id===A(c)&&(d.set(!1),i.set(0))},"onBatchCancelled");t.on("BATCH_START",R),t.on("BATCH_PROGRESS",T),t.on("BATCH_FINISH",g),t.on("BATCH_ERROR",H),t.on("BATCH_CANCELLED",I),P(()=>{t.off("BATCH_START",R),t.off("BATCH_PROGRESS",T),t.off("BATCH_FINISH",g),t.off("BATCH_ERROR",H),t.off("BATCH_CANCELLED",I)})}),{abortBatch:a(t=>{C.abortBatch(t)},"abortBatch"),completedCount:f,error:B,errorCount:m,isUploading:d,items:u,progress:i,reset:a(()=>{C.clear(),i.set(0),d.set(!1),B.set(void 0),u.set([]),f.set(0),m.set(0),c.set(void 0)},"reset"),uploadBatch:a(t=>t.length===0?[]:C.uploadBatch(t),"uploadBatch")}},"createBatchUpload");export{w as createBatchUpload};
|