@visulima/storage-client 1.0.0-alpha.1 → 1.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +115 -2
  2. package/LICENSE.md +1 -1
  3. package/README.md +271 -14
  4. package/dist/index.js +1 -1
  5. package/dist/packem_shared/{createAbortAll-B5vFFliA.js → createAbortAll-B14Hjnuz.js} +1 -1
  6. package/dist/packem_shared/{createAbortAll-D-x-LWNg.js → createAbortAll-C1AbADFo.js} +1 -1
  7. package/dist/packem_shared/{createAbortBatch-CYtSbWfz.js → createAbortBatch-C3VHoUM9.js} +1 -1
  8. package/dist/packem_shared/{createAbortBatch-zA0PTnOB.js → createAbortBatch-Ds5neVlk.js} +1 -1
  9. package/dist/packem_shared/{createAbortItem-0f0bigbq.js → createAbortItem-4N7-rj0-.js} +1 -1
  10. package/dist/packem_shared/{createAbortItem-CIRlRD4X.js → createAbortItem-hzJ6mH01.js} +1 -1
  11. package/dist/packem_shared/{createAllAbortListener-CYLEWan0.js → createAllAbortListener-BAJk-ac4.js} +1 -1
  12. package/dist/packem_shared/{createAllAbortListener-CDrnG87k.js → createAllAbortListener-CCya8xup.js} +1 -1
  13. package/dist/packem_shared/{createBatchCancelledListener-l9c0mi15.js → createBatchCancelledListener-BLlXoEEb.js} +1 -1
  14. package/dist/packem_shared/{createBatchCancelledListener-Deq8lrIn.js → createBatchCancelledListener-xsVO6bCX.js} +1 -1
  15. package/dist/packem_shared/{createBatchErrorListener-CJQFdXW2.js → createBatchErrorListener-DMcQFqw4.js} +1 -1
  16. package/dist/packem_shared/{createBatchErrorListener-CGJPEngL.js → createBatchErrorListener-YlwqMv-B.js} +1 -1
  17. package/dist/packem_shared/{createBatchFinalizeListener-B2rEps7g.js → createBatchFinalizeListener-C_cCDIX5.js} +1 -1
  18. package/dist/packem_shared/{createBatchFinalizeListener-Og0rELSL.js → createBatchFinalizeListener-rqd8SuEV.js} +1 -1
  19. package/dist/packem_shared/{createBatchFinishListener-D9AOd6Cl.js → createBatchFinishListener-CB_P7QYP.js} +1 -1
  20. package/dist/packem_shared/{createBatchFinishListener-BeE6-b6E.js → createBatchFinishListener-DreYtkYD.js} +1 -1
  21. package/dist/packem_shared/{createBatchProgressListener-1KpCpw7e.js → createBatchProgressListener-BqqBPu5S.js} +1 -1
  22. package/dist/packem_shared/{createBatchProgressListener-BWW_tnse.js → createBatchProgressListener-DBb1I1rM.js} +1 -1
  23. package/dist/packem_shared/{createBatchRetry-6E_Ivzh4.js → createBatchRetry-BuoWW9tt.js} +1 -1
  24. package/dist/packem_shared/{createBatchRetry-D_F4v9oA.js → createBatchRetry-q7QaF04c.js} +1 -1
  25. package/dist/packem_shared/{createBatchStartListener-DBHjoANG.js → createBatchStartListener--Qrjmg4C.js} +1 -1
  26. package/dist/packem_shared/{createBatchStartListener-CkcMX3tq.js → createBatchStartListener-DQsozIGm.js} +1 -1
  27. package/dist/packem_shared/{createBatchUpload-DWcVWF9h.js → createBatchUpload-BU4Tn_Ce.js} +1 -1
  28. package/dist/packem_shared/{createBatchUpload-8yahZiID.js → createBatchUpload-CoqKXzRN.js} +1 -1
  29. package/dist/packem_shared/{createMultipartAdapter-CoJpvX9z.js → createMultipartAdapter-86KxCYjo.js} +1 -1
  30. package/dist/packem_shared/{createMultipartUpload-CTats5BN.js → createMultipartUpload-CQ90s4CH.js} +1 -1
  31. package/dist/packem_shared/{createMultipartUpload-DF3XyOX3.js → createMultipartUpload-DtoYf2Xi.js} +1 -1
  32. package/dist/packem_shared/{createRetry-DPaN9i_a.js → createRetry-Bw0_8yjS.js} +1 -1
  33. package/dist/packem_shared/{createRetry-D_fXIQUj.js → createRetry-f63cgMRK.js} +1 -1
  34. package/dist/packem_shared/{createRetryListener-bMqMm13Y.js → createRetryListener-Bn40kQjn.js} +1 -1
  35. package/dist/packem_shared/{createRetryListener-DonB2P-g.js → createRetryListener-D5QrhgBR.js} +1 -1
  36. package/dist/packem_shared/{createUpload-LRQ4N_cF.js → createUpload-C7ZBtA-s.js} +1 -1
  37. package/dist/packem_shared/{createUpload-CuZqq0nu.js → createUpload-CA85QrJg.js} +1 -1
  38. package/dist/packem_shared/createUploader-CtXDRurP.js +1 -0
  39. package/dist/packem_shared/{useAbortAll-DrHBz3kQ.js → useAbortAll-5U7kyKLc.js} +1 -1
  40. package/dist/packem_shared/{useAbortAll-DeTTc8gX.js → useAbortAll-DtTKXb9L.js} +1 -1
  41. package/dist/packem_shared/{useAbortBatch-gVI48Gqa.js → useAbortBatch-BYYei6Yt.js} +1 -1
  42. package/dist/packem_shared/{useAbortBatch-BoXLZH9d.js → useAbortBatch-BzvJv8LJ.js} +1 -1
  43. package/dist/packem_shared/{useAbortItem-Blw0eI13.js → useAbortItem-BABseAaI.js} +1 -1
  44. package/dist/packem_shared/{useAbortItem-DOVDiZFG.js → useAbortItem-Bz7EvWLc.js} +1 -1
  45. package/dist/packem_shared/{useAllAbortListener-DiliYPra.js → useAllAbortListener-BASh3QMd.js} +1 -1
  46. package/dist/packem_shared/{useAllAbortListener-CadZ6Ohd.js → useAllAbortListener-hbQVw_3j.js} +1 -1
  47. package/dist/packem_shared/{useBatchCancelledListener-CD0CULd_.js → useBatchCancelledListener-BZcGUr78.js} +1 -1
  48. package/dist/packem_shared/{useBatchCancelledListener-CADhAnT8.js → useBatchCancelledListener-ODrL7eBH.js} +1 -1
  49. package/dist/packem_shared/{useBatchErrorListener-D-M1xGbQ.js → useBatchErrorListener-BHlCUBkN.js} +1 -1
  50. package/dist/packem_shared/{useBatchErrorListener-C3KwlH_D.js → useBatchErrorListener-MTNwkBNV.js} +1 -1
  51. package/dist/packem_shared/{useBatchFinalizeListener-CuVe9PGl.js → useBatchFinalizeListener-QBUABl8K.js} +1 -1
  52. package/dist/packem_shared/{useBatchFinalizeListener-BjnW3Lst.js → useBatchFinalizeListener-lw4_y5G2.js} +1 -1
  53. package/dist/packem_shared/{useBatchFinishListener-4RjAPVhl.js → useBatchFinishListener-C576_YqB.js} +1 -1
  54. package/dist/packem_shared/{useBatchFinishListener-DedP4Rm_.js → useBatchFinishListener-DxfFc4w5.js} +1 -1
  55. package/dist/packem_shared/{useBatchProgressListener-CoYeF3Zj.js → useBatchProgressListener-CRkFN0wW.js} +1 -1
  56. package/dist/packem_shared/{useBatchProgressListener-CBAjGzmu.js → useBatchProgressListener-DyEL1Xzv.js} +1 -1
  57. package/dist/packem_shared/{useBatchRetry-C53msBuL.js → useBatchRetry-BMm50e4q.js} +1 -1
  58. package/dist/packem_shared/{useBatchRetry-CAqFm7V8.js → useBatchRetry-a_8KSYT6.js} +1 -1
  59. package/dist/packem_shared/{useBatchStartListener-DwAzFph7.js → useBatchStartListener-BnvZm0er.js} +1 -1
  60. package/dist/packem_shared/{useBatchStartListener-BAOxxo1Y.js → useBatchStartListener-BulCn2nM.js} +1 -1
  61. package/dist/packem_shared/{useBatchUpload-DLQNW410.js → useBatchUpload-1sL60XWR.js} +1 -1
  62. package/dist/packem_shared/{useBatchUpload-xPQlYOIK.js → useBatchUpload-D_Fpf7H4.js} +1 -1
  63. package/dist/packem_shared/useChunkedRestUpload-ByEGSmgy.js +1 -0
  64. package/dist/packem_shared/{useMultipartUpload-CIp4NLzf.js → useMultipartUpload-Co7UmkLV.js} +1 -1
  65. package/dist/packem_shared/{useMultipartUpload-B9Vi7f5z.js → useMultipartUpload-Ddf1tP6F.js} +1 -1
  66. package/dist/packem_shared/{useRetry-Dsq4jvkt.js → useRetry-4jBZmJD1.js} +1 -1
  67. package/dist/packem_shared/{useRetry-mkTUERYR.js → useRetry-BanF9FJg.js} +1 -1
  68. package/dist/packem_shared/{useRetryListener-B45dL00Q.js → useRetryListener-B8elG7nf.js} +1 -1
  69. package/dist/packem_shared/{useRetryListener-BEONt1sx.js → useRetryListener-SADsV-IG.js} +1 -1
  70. package/dist/packem_shared/useTusUpload-DQa9PgkZ.js +1 -0
  71. package/dist/packem_shared/{useUpload-B_RxNnHC.js → useUpload-B43gnJIh.js} +1 -1
  72. package/dist/packem_shared/{useUpload-CjLWLpyn.js → useUpload-CZQApQDd.js} +1 -1
  73. package/dist/react/index.js +1 -1
  74. package/dist/solid/index.js +1 -1
  75. package/dist/svelte/index.js +1 -1
  76. package/dist/vue/index.js +1 -1
  77. package/package.json +4 -4
  78. package/dist/packem_shared/createUploader-B_IjjBxw.js +0 -1
  79. package/dist/packem_shared/useChunkedRestUpload-cKHvYQN3.js +0 -1
  80. package/dist/packem_shared/useTusUpload-CDRjQl0e.js +0 -1
@@ -1 +0,0 @@
1
- var p=Object.defineProperty;var d=(i,t)=>p(i,"name",{value:t,configurable:!0});var m=Object.defineProperty,l=d((i,t)=>m(i,"name",{value:t,configurable:!0}),"d");class h{static{d(this,"Uploader")}constructor(t){this.options=t}static{l(this,"Uploader")}static createFormData(t,e){const a=new FormData;return a.append("file",t),e&&Object.keys(e).length>0&&a.append("metadata",JSON.stringify(e)),a}static parseResponse(t,e){try{return JSON.parse(t)}catch{if((e instanceof XMLHttpRequest?e.getResponseHeader("Content-Type"):e.headers.get("Content-Type"))?.includes("application/json"))try{return JSON.parse(t)}catch{}return{}}}items=new Map;batches=new Map;eventHandlers=new Map;activeUploads=new Map;itemIdCounter=0;batchIdCounter=0;on(t,e){this.eventHandlers.has(t)||this.eventHandlers.set(t,new Set),this.eventHandlers.get(t)?.add(e)}off(t,e){this.eventHandlers.get(t)?.delete(e)}add(t,e){const a=this.generateItemId(),s={batchId:e,completed:0,file:t,id:a,loaded:0,retryCount:0,size:t.size,status:"pending"};return this.items.set(a,s),this.uploadFile(s).catch(o=>{console.error(`[Uploader] Upload failed for item ${a}:`,o)}),a}addBatch(t){if(t.length===0)return[];const e=this.generateBatchId(),a=[],s={completedCount:0,errorCount:0,id:e,itemIds:[],progress:0,status:"pending",totalCount:t.length};this.batches.set(e,s);for(const o of t){const r=this.add(o,e);a.push(r),s.itemIds.push(r)}return this.batches.set(e,s),s.status="uploading",this.emitBatch("BATCH_START",s),a}getItem(t){return this.items.get(t)}abortItem(t){const e=this.activeUploads.get(t);e&&(e.abort(),this.activeUploads.delete(t));const a=this.items.get(t);if(a&&(a.status="aborted",this.items.set(t,a),this.emit("ITEM_ABORT",a),a.batchId)){const s=this.batches.get(a.batchId);s&&(s.status="cancelled",this.batches.set(a.batchId,s),this.emitBatch("BATCH_CANCELLED",s))}}abortBatch(t){const e=this.batches.get(t);if(e){for(const a of e.itemIds)this.abortItem(a);e.status="cancelled",this.batches.set(t,e),this.emitBatch("BATCH_CANCELLED",e)}}abort(){this.activeUploads.forEach((t,e)=>{t.abort(),this.abortItem(e)}),this.activeUploads.clear()}clear(){this.abort(),this.items.clear()}getItems(){return[...this.items.values()]}getBatchItems(t){const e=this.batches.get(t);return e?e.itemIds.map(a=>this.items.get(a)).filter(Boolean):[]}getBatch(t){return this.batches.get(t)}getBatches(){return[...this.batches.values()]}retryItem(t){const e=this.items.get(t);e&&e.status==="error"&&(e.retryCount=(e.retryCount??0)+1,e.status="pending",e.error=void 0,e.completed=0,e.loaded=0,this.items.set(t,e),this.uploadFile(e).catch(a=>{console.error(`[Uploader] Retry failed for item ${t}:`,a)}))}retryBatch(t){const e=this.batches.get(t);if(!e)return;const a=e.itemIds.map(s=>this.items.get(s)).filter(s=>s!==void 0&&s.status==="error");for(const s of a)this.retryItem(s.id);e.status="uploading",e.completedCount=0,e.errorCount=0,e.progress=0,this.batches.set(t,e),this.emitBatch("BATCH_START",e)}generateItemId(){return this.itemIdCounter+=1,`item-${Date.now()}-${this.itemIdCounter}`}generateBatchId(){return this.batchIdCounter+=1,`batch-${Date.now()}-${this.batchIdCounter}`}calculateBatchProgress(t){const e=t.itemIds.map(o=>this.items.get(o)).filter(Boolean);if(e.length===0)return 0;const a=e.reduce((o,r)=>o+r.size,0),s=e.reduce((o,r)=>o+r.loaded,0);return a>0?Math.round(s/a*100):0}updateBatchProgress(t){const e=this.batches.get(t);if(!e)return;const a=e.itemIds.map(s=>this.items.get(s)).filter(Boolean);e.completedCount=a.filter(s=>s.status==="completed").length,e.errorCount=a.filter(s=>s.status==="error").length,e.progress=this.calculateBatchProgress(e),e.completedCount+e.errorCount===e.totalCount?e.errorCount>0&&e.completedCount>0||e.errorCount===e.totalCount?e.status="error":e.status="completed":(e.completedCount>0||e.errorCount>0)&&(e.status="uploading"),this.batches.set(t,e),this.emitBatch("BATCH_PROGRESS",e),e.completedCount+e.errorCount===e.totalCount&&(e.status==="completed"?this.emitBatch("BATCH_FINISH",e):e.status==="error"&&this.emitBatch("BATCH_ERROR",e),setTimeout(()=>{this.emitBatch("BATCH_FINALIZE",e)},0))}emitBatch(t,e){const a=this.eventHandlers.get(t);a&&a.forEach(s=>{try{s(e)}catch(o){console.error(`[Uploader] Error in ${t} handler:`,o)}})}emit(t,e){const a=this.eventHandlers.get(t);a&&a.forEach(s=>{try{s(e)}catch(o){console.error(`[Uploader] Error in ${t} handler:`,o)}})}async uploadFile(t){return new Promise((e,a)=>{const s=new XMLHttpRequest,o=h.createFormData(t.file,this.options.metadata);this.activeUploads.set(t.id,s),t.status="uploading",this.items.set(t.id,t),this.emit("ITEM_START",t),s.upload.addEventListener("progress",r=>{if(r.lengthComputable){const{loaded:n}=r,{total:c}=r,u=Math.round(n/c*100);t.loaded=n,t.completed=u,t.size=c,this.items.set(t.id,t),this.emit("ITEM_PROGRESS",t),t.batchId&&this.updateBatchProgress(t.batchId)}}),s.addEventListener("load",()=>{if(this.activeUploads.delete(t.id),s.status>=200&&s.status<300){const r=s.responseText||s.response,n=h.parseResponse(r,s);t.status="completed",t.uploadResponse={data:n,response:r},t.url=s.getResponseHeader("Location")||void 0,this.items.set(t.id,t),this.emit("ITEM_FINISH",t),t.batchId&&this.updateBatchProgress(t.batchId),e()}else{const r=new Error(`Upload failed: ${s.status} ${s.statusText}`);t.status="error",t.error=r.message,this.items.set(t.id,t),this.emit("ITEM_ERROR",t),t.batchId&&this.updateBatchProgress(t.batchId),a(r)}}),s.addEventListener("error",()=>{this.activeUploads.delete(t.id);const r=new Error("Network error during upload");t.status="error",t.error=r.message,this.items.set(t.id,t),this.emit("ITEM_ERROR",t),t.batchId&&this.updateBatchProgress(t.batchId),a(r)}),s.addEventListener("abort",()=>{if(this.activeUploads.delete(t.id),t.status="aborted",this.items.set(t.id,t),this.emit("ITEM_ABORT",t),t.batchId){const r=this.batches.get(t.batchId);r&&(r.status="cancelled",this.batches.set(t.batchId,r),this.emitBatch("BATCH_CANCELLED",r))}a(new Error("Upload aborted"))}),s.open("POST",this.options.endpoint,!0),this.options.metadata&&s.setRequestHeader("X-File-Metadata",JSON.stringify(this.options.metadata)),s.send(o)})}}const I=l(i=>new h(i),"createUploader");export{h as Uploader,I as createUploader};
@@ -1 +0,0 @@
1
- var _=Object.defineProperty;var k=(c,a)=>_(c,"name",{value:a,configurable:!0});import{useState as u,useMemo as D,useRef as G,useEffect as b,useCallback as i}from"react";import{createChunkedRestAdapter as H}from"./createChunkedRestAdapter-Df1E_Adn.js";var J=Object.defineProperty,K=k((c,a)=>J(c,"name",{value:a,configurable:!0}),"k");const T=K(c=>{const{chunkSize:a,endpoint:h,maxRetries:E,metadata:R,onError:l,onPause:m,onProgress:p,onResume:S,onStart:v,onSuccess:P,retry:O}=c,[C,d]=u(0),[x,s]=u(!1),[U,t]=u(!1),[z,g]=u(void 0),[F,w]=u(void 0),[I,f]=u(0),e=D(()=>H({chunkSize:a,endpoint:h,maxRetries:E,metadata:R,retry:O}),[a,h,E,R,O]),o=G({onError:l,onPause:m,onProgress:p,onResume:S,onStart:v,onSuccess:P});b(()=>{o.current={onError:l,onPause:m,onProgress:p,onResume:S,onStart:v,onSuccess:P}},[l,p,m,S,v,P]),b(()=>{e.setOnStart(()=>{s(!0),t(!1),d(0),g(void 0),f(0),o.current.onStart?.()}),e.setOnProgress((r,y)=>{d(r),f(y),o.current.onProgress?.(r,y)}),e.setOnFinish(r=>{d(100),w(r),s(!1),t(!1),o.current.onSuccess?.(r)}),e.setOnError(r=>{g(r),s(!1),o.current.onError?.(r)});const n=setInterval(async()=>{f(await e.getOffset()),t(e.isPaused())},100);return()=>{clearInterval(n),e.setOnStart(void 0),e.setOnProgress(void 0),e.setOnFinish(void 0),e.setOnError(void 0)}},[e]);const j=i(async n=>{try{return await e.upload(n)}catch(r){throw r instanceof Error?r:new Error(String(r))}},[e]),A=i(()=>{e.pause(),t(!0),o.current.onPause?.()},[e]),M=i(async()=>{t(!1),s(!0),o.current.onResume?.();try{await e.resume()}catch(n){throw s(!1),n instanceof Error?n:new Error(String(n))}},[e]),q=i(()=>{e.abort(),s(!1),t(!1)},[e]),B=i(()=>{e.clear(),d(0),s(!1),t(!1),g(void 0),w(void 0),f(0)},[e]);return{abort:q,error:z,isPaused:U,isUploading:x,offset:I,pause:A,progress:C,reset:B,result:F,resume:M,upload:j}},"useChunkedRestUpload");export{T as useChunkedRestUpload};
@@ -1 +0,0 @@
1
- var _=Object.defineProperty;var k=(i,u)=>_(i,"name",{value:u,configurable:!0});import{useState as c,useMemo as B,useRef as x,useEffect as T,useCallback as f}from"react";import{createTusAdapter as D}from"./createTusAdapter-DM31lujI.js";var G=Object.defineProperty,H=k((i,u)=>G(i,"name",{value:u,configurable:!0}),"T");const V=H(i=>{const{chunkSize:u,endpoint:h,maxRetries:y,metadata:R,onError:m,onPause:S,onProgress:p,onResume:E,onStart:P,onSuccess:g,retry:b}=i,[U,d]=c(0),[z,n]=c(!1),[F,a]=c(!1),[I,l]=c(void 0),[j,w]=c(void 0),[A,v]=c(0),r=B(()=>D({chunkSize:u,endpoint:h,maxRetries:y,metadata:R,retry:b}),[u,h,y,R,b]),t=x({onError:m,onPause:S,onProgress:p,onResume:E,onStart:P,onSuccess:g}),o=x(void 0);T(()=>{t.current={onError:m,onPause:S,onProgress:p,onResume:E,onStart:P,onSuccess:g}},[m,p,S,E,P,g]),T(()=>(r.setOnStart(()=>{n(!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),w(e),n(!1),a(!1),t.current.onSuccess?.(e)}),r.setOnError(e=>{l(e),n(!1),t.current.onError?.(e)}),o.current=setInterval(()=>{o.current&&(v(r.getOffset()),a(r.isPaused()))},100),()=>{o.current&&(clearInterval(o.current),o.current=void 0),r.setOnStart(void 0),r.setOnProgress(void 0),r.setOnFinish(void 0),r.setOnError(void 0)}),[r]);const C=f(async e=>{try{return await r.upload(e)}catch(s){const O=s instanceof Error?s:new Error(String(s));throw l(O),t.current.onError?.(O),O}},[r]),M=f(()=>{r.pause(),a(!0),t.current.onPause?.()},[r]),q=f(async()=>{a(!1),n(!0),t.current.onResume?.();try{await r.resume()}catch(e){const s=e instanceof Error?e:new Error(String(e));throw l(s),n(!1),t.current.onError?.(s),s}},[r]),J=f(()=>{o.current&&(clearInterval(o.current),o.current=void 0),r.abort(),n(!1),a(!1)},[r]),N=f(()=>{r.clear(),d(0),n(!1),a(!1),l(void 0),w(void 0),v(0)},[r]);return{abort:J,error:I,isPaused:F,isUploading:z,offset:A,pause:M,progress:U,reset:N,result:j,resume:q,upload:C}},"useTusUpload");export{V as useTusUpload};