@visulima/storage-client 1.0.0-alpha.13 → 1.0.0-alpha.15
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 +35 -0
- package/README.md +23 -0
- package/dist/index.d.ts +23 -3
- package/dist/index.js +1 -1
- package/dist/packem_shared/MemoryUrlStorage-DN4oF-4W.js +1 -0
- package/dist/packem_shared/UploadControl-CKU7Tv3Q.js +1 -0
- package/dist/packem_shared/createChunkedRestAdapter-YzmsiWvW.js +1 -0
- package/dist/packem_shared/createChunkedRestUpload-Cu19LRnt.js +1 -0
- package/dist/packem_shared/createChunkedRestUpload-D4WS_E_m.js +1 -0
- package/dist/packem_shared/createTusAdapter-6FZAUcvj.js +1 -0
- package/dist/packem_shared/createTusUpload-C_EE1exZ.js +1 -0
- package/dist/packem_shared/createTusUpload-DrZu_r2C.js +1 -0
- package/dist/packem_shared/{createUpload-0qE79TWD.js → createUpload-ABEJ1whY.js} +1 -1
- package/dist/packem_shared/{createUpload-BF6TujIH.js → createUpload-F7cp3uwR.js} +1 -1
- package/dist/packem_shared/defaultFingerprint-CI2Sdd2s.js +1 -0
- package/dist/packem_shared/uploader.d-npepq2LE.d.ts +381 -0
- package/dist/packem_shared/useChunkedRestUpload-C_I_pDEa.js +1 -0
- package/dist/packem_shared/useChunkedRestUpload-T5jeupI6.js +1 -0
- package/dist/packem_shared/useTusUpload-DJedNEXm.js +1 -0
- package/dist/packem_shared/useTusUpload-SYnJmg1s.js +1 -0
- package/dist/packem_shared/{useUpload-DqGwpOZK.js → useUpload-BDMiZyCV.js} +1 -1
- package/dist/packem_shared/{useUpload-7OjscFW6.js → useUpload-D-2542dH.js} +1 -1
- package/dist/react/index.d.ts +17 -1
- package/dist/react/index.js +1 -1
- package/dist/solid/index.d.ts +13 -1
- package/dist/solid/index.js +1 -1
- package/dist/svelte/index.d.ts +13 -1
- package/dist/svelte/index.js +1 -1
- package/dist/vue/index.d.ts +13 -1
- package/dist/vue/index.js +1 -1
- package/package.json +2 -4
- package/dist/packem_shared/createChunkedRestAdapter-CWFhVX6x.js +0 -1
- package/dist/packem_shared/createChunkedRestUpload-BH_5ZAr2.js +0 -1
- package/dist/packem_shared/createChunkedRestUpload-DAoXFznW.js +0 -1
- package/dist/packem_shared/createTusAdapter-BbFsUNsP.js +0 -1
- package/dist/packem_shared/createTusUpload-DKIIHh2X.js +0 -1
- package/dist/packem_shared/createTusUpload-rZKMrL5n.js +0 -1
- package/dist/packem_shared/uploader.d-DsC50BbX.d.ts +0 -223
- package/dist/packem_shared/useChunkedRestUpload-C7zv7mL3.js +0 -1
- package/dist/packem_shared/useChunkedRestUpload-C9RhEtUt.js +0 -1
- package/dist/packem_shared/useTusUpload-B5KsdwDR.js +0 -1
- package/dist/packem_shared/useTusUpload-BwF0G1LE.js +0 -1
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Upload method type for useUpload hook
|
|
3
|
-
*/
|
|
4
|
-
type UploadMethod = "auto" | "chunked-rest" | "multipart" | "tus";
|
|
5
|
-
/**
|
|
6
|
-
* File metadata returned from the server (matches OpenAPI FileMeta schema)
|
|
7
|
-
*/
|
|
8
|
-
interface FileMeta {
|
|
9
|
-
/** Bytes written to storage */
|
|
10
|
-
bytesWritten?: number;
|
|
11
|
-
/** Content type of the uploaded file */
|
|
12
|
-
contentType?: string;
|
|
13
|
-
/** File creation timestamp */
|
|
14
|
-
createdAt?: string;
|
|
15
|
-
/** Unique identifier for the uploaded file */
|
|
16
|
-
id: string;
|
|
17
|
-
/** Additional metadata associated with the file */
|
|
18
|
-
metadata?: Record<string, unknown>;
|
|
19
|
-
/** Storage name of the file */
|
|
20
|
-
name?: string;
|
|
21
|
-
/** Original filename of the uploaded file */
|
|
22
|
-
originalName?: string;
|
|
23
|
-
/** Size of the uploaded file in bytes */
|
|
24
|
-
size?: number;
|
|
25
|
-
/** Upload status: 'completed', 'part', 'deleted', or 'created' */
|
|
26
|
-
status?: "completed" | "part" | "deleted" | "created";
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Result returned after a successful file upload
|
|
30
|
-
* Extends FileMeta with additional client-side fields
|
|
31
|
-
*/
|
|
32
|
-
interface UploadResult extends FileMeta {
|
|
33
|
-
/** Original filename of the uploaded file (alias for originalName) */
|
|
34
|
-
filename?: string;
|
|
35
|
-
/** Current upload offset in bytes (TUS only) */
|
|
36
|
-
offset?: number;
|
|
37
|
-
/** URL to access the uploaded file */
|
|
38
|
-
url?: string;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Upload item state
|
|
42
|
-
*/
|
|
43
|
-
interface UploadItem {
|
|
44
|
-
/** Batch ID this item belongs to (if part of a batch) */
|
|
45
|
-
batchId?: string;
|
|
46
|
-
/** Upload progress percentage (0-100) */
|
|
47
|
-
completed: number;
|
|
48
|
-
/** Error message if upload failed */
|
|
49
|
-
error?: string;
|
|
50
|
-
/** The file being uploaded */
|
|
51
|
-
file: File;
|
|
52
|
-
/** Unique item ID */
|
|
53
|
-
id: string;
|
|
54
|
-
/** Bytes uploaded so far */
|
|
55
|
-
loaded: number;
|
|
56
|
-
/** Number of retry attempts */
|
|
57
|
-
retryCount?: number;
|
|
58
|
-
/** Total file size in bytes */
|
|
59
|
-
size: number;
|
|
60
|
-
/** Upload status */
|
|
61
|
-
status: "pending" | "uploading" | "completed" | "error" | "aborted";
|
|
62
|
-
/** Upload response data */
|
|
63
|
-
uploadResponse?: {
|
|
64
|
-
data?: unknown;
|
|
65
|
-
response?: string;
|
|
66
|
-
};
|
|
67
|
-
/** File URL after upload */
|
|
68
|
-
url?: string;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Batch state information
|
|
72
|
-
*/
|
|
73
|
-
interface BatchState {
|
|
74
|
-
/** Number of completed items */
|
|
75
|
-
completedCount: number;
|
|
76
|
-
/** Number of failed items */
|
|
77
|
-
errorCount: number;
|
|
78
|
-
/** Batch ID */
|
|
79
|
-
id: string;
|
|
80
|
-
/** Item IDs in this batch */
|
|
81
|
-
itemIds: string[];
|
|
82
|
-
/** Aggregate progress (0-100) */
|
|
83
|
-
progress: number;
|
|
84
|
-
/** Batch status */
|
|
85
|
-
status: "pending" | "uploading" | "completed" | "error" | "cancelled";
|
|
86
|
-
/** Total number of items */
|
|
87
|
-
totalCount: number;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Uploader event types
|
|
91
|
-
*/
|
|
92
|
-
type UploaderEventType = "BATCH_CANCELLED" | "BATCH_COMPLETE" | "BATCH_ERROR" | "BATCH_FINALIZE" | "BATCH_FINISH" | "BATCH_PROGRESS" | "BATCH_START" | "ITEM_ABORT" | "ITEM_ERROR" | "ITEM_FINISH" | "ITEM_PROGRESS" | "ITEM_START";
|
|
93
|
-
/**
|
|
94
|
-
* Event handler function type
|
|
95
|
-
*/
|
|
96
|
-
type UploaderEventHandler<T = UploadItem | BatchState> = (item: T) => void;
|
|
97
|
-
/**
|
|
98
|
-
* Configuration options for the uploader.
|
|
99
|
-
*/
|
|
100
|
-
interface UploaderOptions {
|
|
101
|
-
/** Upload endpoint URL */
|
|
102
|
-
endpoint: string;
|
|
103
|
-
/** Maximum number of retry attempts */
|
|
104
|
-
maxRetries?: number;
|
|
105
|
-
/** Additional metadata to include with the upload */
|
|
106
|
-
metadata?: Record<string, string>;
|
|
107
|
-
/** Enable automatic retry on failure */
|
|
108
|
-
retry?: boolean;
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* Uploader class - event-driven file uploader inspired by rpldy design
|
|
112
|
-
*/
|
|
113
|
-
declare class Uploader {
|
|
114
|
-
private readonly options;
|
|
115
|
-
/**
|
|
116
|
-
* Creates FormData for visulima multipart handler.
|
|
117
|
-
*/
|
|
118
|
-
private static createFormData;
|
|
119
|
-
/**
|
|
120
|
-
* Parses response as FileMeta.
|
|
121
|
-
*/
|
|
122
|
-
private static parseResponse;
|
|
123
|
-
private items;
|
|
124
|
-
private batches;
|
|
125
|
-
private eventHandlers;
|
|
126
|
-
private activeUploads;
|
|
127
|
-
private itemIdCounter;
|
|
128
|
-
private batchIdCounter;
|
|
129
|
-
constructor(options: UploaderOptions);
|
|
130
|
-
/**
|
|
131
|
-
* Subscribes to uploader events.
|
|
132
|
-
*/
|
|
133
|
-
on(event: UploaderEventType, handler: UploaderEventHandler): void;
|
|
134
|
-
/**
|
|
135
|
-
* Unsubscribes from uploader events.
|
|
136
|
-
*/
|
|
137
|
-
off(event: UploaderEventType, handler: UploaderEventHandler): void;
|
|
138
|
-
/**
|
|
139
|
-
* Adds a file to the upload queue.
|
|
140
|
-
*/
|
|
141
|
-
add(file: File, batchId?: string): string;
|
|
142
|
-
/**
|
|
143
|
-
* Adds multiple files to the upload queue as a batch.
|
|
144
|
-
*/
|
|
145
|
-
addBatch(files: File[]): string[];
|
|
146
|
-
/**
|
|
147
|
-
* Gets an item by ID.
|
|
148
|
-
*/
|
|
149
|
-
getItem(id: string): UploadItem | undefined;
|
|
150
|
-
/**
|
|
151
|
-
* Aborts a specific upload.
|
|
152
|
-
*/
|
|
153
|
-
abortItem(id: string): void;
|
|
154
|
-
/**
|
|
155
|
-
* Aborts all uploads in a batch.
|
|
156
|
-
*/
|
|
157
|
-
abortBatch(batchId: string): void;
|
|
158
|
-
/**
|
|
159
|
-
* Aborts all uploads.
|
|
160
|
-
*/
|
|
161
|
-
abort(): void;
|
|
162
|
-
/**
|
|
163
|
-
* Clears all items and aborts active uploads.
|
|
164
|
-
*/
|
|
165
|
-
clear(): void;
|
|
166
|
-
/**
|
|
167
|
-
* Gets all items.
|
|
168
|
-
*/
|
|
169
|
-
getItems(): UploadItem[];
|
|
170
|
-
/**
|
|
171
|
-
* Gets all items in a batch.
|
|
172
|
-
*/
|
|
173
|
-
getBatchItems(batchId: string): UploadItem[];
|
|
174
|
-
/**
|
|
175
|
-
* Gets batch state by batch ID.
|
|
176
|
-
*/
|
|
177
|
-
getBatch(batchId: string): BatchState | undefined;
|
|
178
|
-
/**
|
|
179
|
-
* Gets all batches.
|
|
180
|
-
*/
|
|
181
|
-
getBatches(): BatchState[];
|
|
182
|
-
/**
|
|
183
|
-
* Retries a failed upload item.
|
|
184
|
-
*/
|
|
185
|
-
retryItem(id: string): void;
|
|
186
|
-
/**
|
|
187
|
-
* Retries all failed items in a batch.
|
|
188
|
-
*/
|
|
189
|
-
retryBatch(batchId: string): void;
|
|
190
|
-
/**
|
|
191
|
-
* Generates a unique item ID.
|
|
192
|
-
*/
|
|
193
|
-
private generateItemId;
|
|
194
|
-
/**
|
|
195
|
-
* Generates a unique batch ID.
|
|
196
|
-
*/
|
|
197
|
-
private generateBatchId;
|
|
198
|
-
/**
|
|
199
|
-
* Calculates aggregate progress for a batch.
|
|
200
|
-
*/
|
|
201
|
-
private calculateBatchProgress;
|
|
202
|
-
/**
|
|
203
|
-
* Updates batch state and emits batch progress event.
|
|
204
|
-
*/
|
|
205
|
-
private updateBatchProgress;
|
|
206
|
-
/**
|
|
207
|
-
* Emits a batch event to all registered handlers.
|
|
208
|
-
*/
|
|
209
|
-
private emitBatch;
|
|
210
|
-
/**
|
|
211
|
-
* Emits an event to all registered handlers.
|
|
212
|
-
*/
|
|
213
|
-
private emit;
|
|
214
|
-
/**
|
|
215
|
-
* Uploads a single file.
|
|
216
|
-
*/
|
|
217
|
-
private uploadFile;
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* Creates a new uploader instance.
|
|
221
|
-
*/
|
|
222
|
-
declare const createUploader: (options: UploaderOptions) => Uploader;
|
|
223
|
-
export { BatchState as B, FileMeta as F, UploadResult as U, Uploader as a, UploaderOptions as b, UploadItem as c, UploaderEventHandler as d, UploaderEventType as e, createUploader as f, UploadMethod as g };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var _=Object.defineProperty;var k=(c,a)=>_(c,"name",{value:a,configurable:!0});import{useState as u,useMemo as G,useRef as H,useEffect as C,useCallback as d}from"react";import{createChunkedRestAdapter as J}from"./createChunkedRestAdapter-CWFhVX6x.js";var K=Object.defineProperty,L=k((c,a)=>K(c,"name",{value:a,configurable:!0}),"w");const V=L(c=>{const{chunkSize:a,endpoint:E,maxRetries:w,metadata:O,onError:p,onPause:m,onProgress:S,onResume:v,onStart:h,onSuccess:P,retry:R}=c,[x,f]=u(0),[U,s]=u(!1),[z,o]=u(!1),[F,g]=u(void 0),[I,y]=u(void 0),[j,l]=u(0),e=G(()=>J({chunkSize:a,endpoint:E,maxRetries:w,metadata:O,retry:R}),[a,E,w,O,R]),n=H({onError:p,onPause:m,onProgress:S,onResume:v,onStart:h,onSuccess:P});C(()=>{n.current={onError:p,onPause:m,onProgress:S,onResume:v,onStart:h,onSuccess:P}},[p,S,m,v,h,P]),C(()=>{e.setOnStart(()=>{s(!0),o(!1),f(0),g(void 0),l(0),n.current.onStart?.()}),e.setOnProgress((r,b)=>{f(r),l(b),n.current.onProgress?.(r,b)}),e.setOnFinish(r=>{f(100),y(r),s(!1),o(!1),n.current.onSuccess?.(r)}),e.setOnError(r=>{g(r),s(!1),n.current.onError?.(r)});let t=!0;const i=setInterval(()=>{!t||typeof window>"u"||(e.getOffset().then(r=>(!t||typeof window>"u"||l(r),r)).catch(()=>{}),o(e.isPaused()))},100);return()=>{t=!1,clearInterval(i),e.setOnStart(void 0),e.setOnProgress(void 0),e.setOnFinish(void 0),e.setOnError(void 0)}},[e]);const A=d(async t=>{try{return await e.upload(t)}catch(i){throw i instanceof Error?i:new Error(String(i))}},[e]),M=d(()=>{e.pause(),o(!0),n.current.onPause?.()},[e]),q=d(async()=>{o(!1),s(!0),n.current.onResume?.();try{await e.resume()}catch(t){throw s(!1),t instanceof Error?t:new Error(String(t))}},[e]),B=d(()=>{e.abort(),s(!1),o(!1)},[e]),D=d(()=>{e.clear(),f(0),s(!1),o(!1),g(void 0),y(void 0),l(0)},[e]);return{abort:B,error:F,isPaused:z,isUploading:U,offset:j,pause:M,progress:x,reset:D,result:I,resume:q,upload:A}},"useChunkedRestUpload");export{V as useChunkedRestUpload};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var w=Object.defineProperty;var m=(v,i)=>w(v,"name",{value:i,configurable:!0});import{ref as l,onMounted as k,onBeforeUnmount as U}from"vue";import{createChunkedRestAdapter as x}from"./createChunkedRestAdapter-CWFhVX6x.js";var C=Object.defineProperty,n=m((v,i)=>C(v,"name",{value:i,configurable:!0}),"t");const j=n(v=>{const{chunkSize:i,endpoint:h,maxRetries:O,metadata:g,onError:f,onPause:S,onProgress:E,onResume:P,onStart:y,onSuccess:R,retry:b}=v,d=l(0),r=l(!1),t=l(!1),o=l(void 0),p=l(void 0),c=l(0),a=x({chunkSize:i,endpoint:h,maxRetries:O,metadata:g,retry:b});return k(()=>{a.setOnStart(()=>{r.value=!0,t.value=!1,d.value=0,o.value=void 0,c.value=0,y?.()}),a.setOnProgress((e,u)=>{d.value=e,c.value=u,E?.(e,u)}),a.setOnFinish(e=>{d.value=100,p.value=e,r.value=!1,t.value=!1,R?.(e)}),a.setOnError(e=>{o.value=e,r.value=!1,f?.(e)});const s=setInterval(()=>{a.getOffset().then(e=>(c.value=e,e)).catch(()=>{}),t.value=a.isPaused()},100);U(()=>{clearInterval(s),a.setOnStart(void 0),a.setOnProgress(void 0),a.setOnFinish(void 0),a.setOnError(void 0)})}),{abort:n(()=>{a.abort(),r.value=!1,t.value=!1},"abort"),error:o,isPaused:t,isUploading:r,offset:c,pause:n(()=>{a.pause(),t.value=!0,S?.()},"pause"),progress:d,reset:n(()=>{a.clear(),d.value=0,r.value=!1,t.value=!1,o.value=void 0,p.value=void 0,c.value=0},"reset"),result:p,resume:n(async()=>{t.value=!1,r.value=!0,P?.();try{await a.resume()}catch(s){const e=s instanceof Error?s:new Error(String(s));throw o.value=e,r.value=!1,f?.(e),e}},"resume"),upload:n(async s=>{try{return await a.upload(s)}catch(e){const u=e instanceof Error?e:new Error(String(e));throw o.value=u,f?.(u),u}},"upload")}},"useChunkedRestUpload");export{j as useChunkedRestUpload};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var U=Object.defineProperty;var m=(n,v)=>U(n,"name",{value:v,configurable:!0});import{ref as u,onMounted as R,onBeforeUnmount as x}from"vue";import{createTusAdapter as T}from"./createTusAdapter-BbFsUNsP.js";var k=Object.defineProperty,l=m((n,v)=>k(n,"name",{value:v,configurable:!0}),"a");const j=l(n=>{const{chunkSize:v,endpoint:O,maxRetries:g,metadata:h,onError:c,onPause:S,onProgress:E,onResume:P,onStart:y,onSuccess:b,retry:w}=n,i=u(0),r=u(!1),t=u(!1),o=u(void 0),p=u(void 0),d=u(0),a=T({chunkSize:v,endpoint:O,maxRetries:g,metadata:h,retry:w});return R(()=>{a.setOnStart(()=>{r.value=!0,t.value=!1,i.value=0,o.value=void 0,d.value=0,y?.()}),a.setOnProgress((e,f)=>{i.value=e,d.value=f,E?.(e)}),a.setOnFinish(e=>{i.value=100,p.value=e,r.value=!1,t.value=!1,b?.(e)}),a.setOnError(e=>{o.value=e,r.value=!1,c?.(e)});const s=setInterval(()=>{d.value=a.getOffset(),t.value=a.isPaused()},100);x(()=>{clearInterval(s),a.setOnStart(void 0),a.setOnProgress(void 0),a.setOnFinish(void 0),a.setOnError(void 0)})}),{abort:l(()=>{a.abort(),r.value=!1,t.value=!1},"abort"),error:o,isPaused:t,isUploading:r,offset:d,pause:l(()=>{a.pause(),t.value=!0,S?.()},"pause"),progress:i,reset:l(()=>{a.clear(),i.value=0,r.value=!1,t.value=!1,o.value=void 0,p.value=void 0,d.value=0},"reset"),result:p,resume:l(async()=>{t.value=!1,r.value=!0,P?.();try{await a.resume()}catch(s){const e=s instanceof Error?s:new Error(String(s));throw o.value=e,r.value=!1,c?.(e),e}},"resume"),upload:l(async s=>{try{return await a.upload(s)}catch(e){const f=e instanceof Error?e:new Error(String(e));throw o.value=f,c?.(f),f}},"upload")}},"useTusUpload");export{j as useTusUpload};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var _=Object.defineProperty;var T=(i,u)=>_(i,"name",{value:u,configurable:!0});import{useState as c,useMemo as D,useRef as y,useEffect as U,useCallback as f}from"react";import{createTusAdapter as G}from"./createTusAdapter-BbFsUNsP.js";var H=Object.defineProperty,K=T((i,u)=>H(i,"name",{value:u,configurable:!0}),"I");const W=K(i=>{const{chunkSize:u,endpoint:R,maxRetries:w,metadata:b,onError:m,onPause:S,onProgress:p,onResume:E,onStart:P,onSuccess:g,retry:k}=i,[x,d]=c(0),[z,o]=c(!1),[F,a]=c(!1),[j,l]=c(void 0),[A,I]=c(void 0),[C,v]=c(0),r=D(()=>G({chunkSize:u,endpoint:R,maxRetries:w,metadata:b,retry:k}),[u,R,w,b,k]),t=y({onError:m,onPause:S,onProgress:p,onResume:E,onStart:P,onSuccess:g}),n=y(void 0),O=y(!0);U(()=>{t.current={onError:m,onPause:S,onProgress:p,onResume:E,onStart:P,onSuccess:g}},[m,p,S,E,P,g]),U(()=>(O.current=!0,r.setOnStart(()=>{o(!0),a(!1),d(0),l(void 0),v(0),t.current.onStart?.()}),r.setOnProgress((e,s)=>{d(e),v(s),t.current.onProgress?.(e)}),r.setOnFinish(e=>{d(100),I(e),o(!1),a(!1),t.current.onSuccess?.(e)}),r.setOnError(e=>{l(e),o(!1),t.current.onError?.(e)}),n.current=setInterval(()=>{O.current&&n.current&&(v(r.getOffset()),a(r.isPaused()))},100),()=>{O.current=!1,n.current&&(clearInterval(n.current),n.current=void 0),r.setOnStart(void 0),r.setOnProgress(void 0),r.setOnFinish(void 0),r.setOnError(void 0)}),[r]);const M=f(async e=>{try{return await r.upload(e)}catch(s){const h=s instanceof Error?s:new Error(String(s));throw l(h),t.current.onError?.(h),h}},[r]),q=f(()=>{r.pause(),a(!0),t.current.onPause?.()},[r]),B=f(async()=>{a(!1),o(!0),t.current.onResume?.();try{await r.resume()}catch(e){const s=e instanceof Error?e:new Error(String(e));throw l(s),o(!1),t.current.onError?.(s),s}},[r]),J=f(()=>{n.current&&(clearInterval(n.current),n.current=void 0),r.abort(),o(!1),a(!1)},[r]),N=f(()=>{r.clear(),d(0),o(!1),a(!1),l(void 0),I(void 0),v(0)},[r]);return{abort:J,error:j,isPaused:F,isUploading:z,offset:C,pause:q,progress:x,reset:N,result:A,resume:B,upload:M}},"useTusUpload");export{W as useTusUpload};
|