@embedpdf/snippet 2.3.0 → 2.4.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.
Files changed (39) hide show
  1. package/dist/browser-qfUHZxQ6-BO9j2MdW.js +1 -0
  2. package/dist/components/annotation-sidebar/property-schema.d.ts +3 -1
  3. package/dist/components/annotation-sidebar/property-schema.d.ts.map +1 -1
  4. package/dist/components/annotation-sidebar/property-sections.d.ts.map +1 -1
  5. package/dist/components/annotation-sidebar.d.ts.map +1 -1
  6. package/dist/components/app.d.ts.map +1 -1
  7. package/dist/components/comment-sidebar/annotation-card.d.ts.map +1 -1
  8. package/dist/components/comment-sidebar/config.d.ts.map +1 -1
  9. package/dist/components/icons/index.d.ts.map +1 -1
  10. package/dist/components/icons/redact-area.d.ts +1 -1
  11. package/dist/components/icons/redact-area.d.ts.map +1 -1
  12. package/dist/components/icons/redact-combined.d.ts +4 -0
  13. package/dist/components/icons/redact-combined.d.ts.map +1 -0
  14. package/dist/components/icons/redact.d.ts +1 -1
  15. package/dist/components/icons/redact.d.ts.map +1 -1
  16. package/dist/components/icons/redaction-sidebar.d.ts +4 -0
  17. package/dist/components/icons/redaction-sidebar.d.ts.map +1 -0
  18. package/dist/components/link-modal.d.ts +4 -1
  19. package/dist/components/link-modal.d.ts.map +1 -1
  20. package/dist/components/redaction-sidebar.d.ts +6 -0
  21. package/dist/components/redaction-sidebar.d.ts.map +1 -0
  22. package/dist/components/ui/icon.d.ts.map +1 -1
  23. package/dist/components/ui/tab-button.d.ts.map +1 -1
  24. package/dist/config/commands.d.ts.map +1 -1
  25. package/dist/config/translations.d.ts.map +1 -1
  26. package/dist/config/ui-schema.d.ts.map +1 -1
  27. package/dist/direct-engine-Bn3Uaox2.js +1 -0
  28. package/dist/embedpdf-B0ywNF_1.js +3 -0
  29. package/dist/embedpdf.js +1 -1
  30. package/dist/pdfium.wasm +0 -0
  31. package/dist/ui/schema-modal.d.ts +2 -1
  32. package/dist/ui/schema-modal.d.ts.map +1 -1
  33. package/dist/web-components/container.d.ts.map +1 -1
  34. package/dist/worker-engine-ecJsn3T0.js +1 -0
  35. package/package.json +30 -30
  36. package/dist/browser-awZxztMA-RDxqV2Sx.js +0 -1
  37. package/dist/direct-engine-BDuzMUFV.js +0 -1
  38. package/dist/embedpdf-CE93i_Sd.js +0 -3
  39. package/dist/worker-engine-D8W4P9zI.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embedpdf/snippet",
3
- "version": "2.3.0",
3
+ "version": "2.4.1",
4
4
  "main": "dist/embedpdf.js",
5
5
  "types": "dist/embedpdf.d.ts",
6
6
  "license": "MIT",
@@ -12,35 +12,35 @@
12
12
  "dependencies": {
13
13
  "preact": "^10.17.0",
14
14
  "tailwind-merge": "^3.4.0",
15
- "@embedpdf/core": "2.3.0",
16
- "@embedpdf/engines": "2.3.0",
17
- "@embedpdf/pdfium": "2.3.0",
18
- "@embedpdf/models": "2.3.0",
19
- "@embedpdf/plugin-attachment": "2.3.0",
20
- "@embedpdf/plugin-annotation": "2.3.0",
21
- "@embedpdf/plugin-bookmark": "2.3.0",
22
- "@embedpdf/plugin-capture": "2.3.0",
23
- "@embedpdf/plugin-commands": "2.3.0",
24
- "@embedpdf/plugin-document-manager": "2.3.0",
25
- "@embedpdf/plugin-fullscreen": "2.3.0",
26
- "@embedpdf/plugin-export": "2.3.0",
27
- "@embedpdf/plugin-i18n": "2.3.0",
28
- "@embedpdf/plugin-history": "2.3.0",
29
- "@embedpdf/plugin-interaction-manager": "2.3.0",
30
- "@embedpdf/plugin-pan": "2.3.0",
31
- "@embedpdf/plugin-redaction": "2.3.0",
32
- "@embedpdf/plugin-print": "2.3.0",
33
- "@embedpdf/plugin-render": "2.3.0",
34
- "@embedpdf/plugin-rotate": "2.3.0",
35
- "@embedpdf/plugin-search": "2.3.0",
36
- "@embedpdf/plugin-thumbnail": "2.3.0",
37
- "@embedpdf/plugin-scroll": "2.3.0",
38
- "@embedpdf/plugin-selection": "2.3.0",
39
- "@embedpdf/plugin-tiling": "2.3.0",
40
- "@embedpdf/plugin-ui": "2.3.0",
41
- "@embedpdf/plugin-spread": "2.3.0",
42
- "@embedpdf/plugin-viewport": "2.3.0",
43
- "@embedpdf/plugin-zoom": "2.3.0"
15
+ "@embedpdf/core": "2.4.1",
16
+ "@embedpdf/models": "2.4.1",
17
+ "@embedpdf/pdfium": "2.4.1",
18
+ "@embedpdf/engines": "2.4.1",
19
+ "@embedpdf/plugin-annotation": "2.4.1",
20
+ "@embedpdf/plugin-attachment": "2.4.1",
21
+ "@embedpdf/plugin-bookmark": "2.4.1",
22
+ "@embedpdf/plugin-capture": "2.4.1",
23
+ "@embedpdf/plugin-commands": "2.4.1",
24
+ "@embedpdf/plugin-document-manager": "2.4.1",
25
+ "@embedpdf/plugin-export": "2.4.1",
26
+ "@embedpdf/plugin-fullscreen": "2.4.1",
27
+ "@embedpdf/plugin-i18n": "2.4.1",
28
+ "@embedpdf/plugin-history": "2.4.1",
29
+ "@embedpdf/plugin-interaction-manager": "2.4.1",
30
+ "@embedpdf/plugin-pan": "2.4.1",
31
+ "@embedpdf/plugin-print": "2.4.1",
32
+ "@embedpdf/plugin-redaction": "2.4.1",
33
+ "@embedpdf/plugin-rotate": "2.4.1",
34
+ "@embedpdf/plugin-render": "2.4.1",
35
+ "@embedpdf/plugin-scroll": "2.4.1",
36
+ "@embedpdf/plugin-search": "2.4.1",
37
+ "@embedpdf/plugin-selection": "2.4.1",
38
+ "@embedpdf/plugin-spread": "2.4.1",
39
+ "@embedpdf/plugin-thumbnail": "2.4.1",
40
+ "@embedpdf/plugin-ui": "2.4.1",
41
+ "@embedpdf/plugin-tiling": "2.4.1",
42
+ "@embedpdf/plugin-viewport": "2.4.1",
43
+ "@embedpdf/plugin-zoom": "2.4.1"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@babel/core": "^7.22.10",
@@ -1 +0,0 @@
1
- import{N as e,T as t,H as r,P as n,I as i}from"./embedpdf-CE93i_Sd.js";const o="TaskQueue",s="Queue";var u=(e=>(e[e.CRITICAL=3]="CRITICAL",e[e.HIGH=2]="HIGH",e[e.MEDIUM=1]="MEDIUM",e[e.LOW=0]="LOW",e))(u||{});class a{constructor(t={}){this.queue=[],this.running=0,this.resultTasks=new Map,this.idleListeners=new Set;const{concurrency:r=1,comparator:n,ranker:i,onIdle:o,maxQueueSize:s,autoStart:u=!0,logger:a}=t;this.logger=a??new e,this.opts={concurrency:Math.max(1,r),comparator:n,ranker:i,onIdle:o??(()=>{}),maxQueueSize:s??Number.POSITIVE_INFINITY,autoStart:u}}setComparator(e){this.opts.comparator=e}setRanker(e){this.opts.ranker=e}size(){return this.queue.length}inFlight(){return this.running}isIdle(){return 0===this.queue.length&&0===this.running}async drain(){this.isIdle()||await new Promise(e=>{const t=()=>{this.isIdle()&&(this.offIdle(t),e())};this.onIdle(t)})}notifyIdle(){this.isIdle()&&([...this.idleListeners].forEach(e=>e()),this.idleListeners.clear(),this.opts.onIdle())}onIdle(e){this.idleListeners.add(e)}offIdle(e){this.idleListeners.delete(e)}enqueue(e,r={}){const n=this.generateId(),i=r.priority??1,u=new t;if(this.queue.length>=this.opts.maxQueueSize){const e=new Error("Queue is full (maxQueueSize reached).");return u.reject(e),u}this.resultTasks.set(n,u);const a={id:n,priority:i,meta:r.meta??e.meta,executeFactory:e.execute};this.queue.push(a),this.logger.debug(o,s,`Task enqueued: ${n} | Priority: ${i} | Running: ${this.running} | Queued: ${this.queue.length}`);const c=u.abort.bind(u);return u.abort=e=>{this.logger.debug(o,s,`Task aborted: ${n}`),this.cancel(n),c(e)},this.opts.autoStart&&this.process(!0===r.fifo),u}cancel(e){const t=this.queue.length;this.queue=this.queue.filter(t=>t.id!==e||(t.cancelled=!0,!1)),this.resultTasks.delete(e),t!==this.queue.length&&(this.logger.debug(o,s,`Task cancelled and removed: ${e}`),this.kick())}kick(){queueMicrotask(()=>this.process())}async process(e=!1){for(this.logger.debug(o,s,`process() called | Running: ${this.running} | Concurrency: ${this.opts.concurrency} | Queued: ${this.queue.length}`);this.running<this.opts.concurrency&&this.queue.length>0;){this.logger.debug(o,s,`Starting new task | Running: ${this.running} | Queued: ${this.queue.length}`),e||this.sortQueue();const t=this.queue.shift();if(t.cancelled){this.logger.debug(o,s,`Skipping cancelled task: ${t.id}`);continue}const r=this.resultTasks.get(t.id);r&&(this.running++,(async()=>{let e=null;try{if(e=t.executeFactory(),!e)throw new Error("Task factory returned null/undefined");e.wait(e=>{0===r.state.stage&&r.resolve(e)},e=>{0===r.state.stage&&("abort"===e.type?r.abort(e.reason):r.reject(e.reason))}),e.onProgress(e=>{r.progress(e)}),await e.toPromise()}catch(e){0===r.state.stage&&r.reject(e)}finally{this.resultTasks.delete(t.id),this.running--,this.logger.debug(o,s,`Task completed: ${t.id} | Running: ${this.running} | Queued: ${this.queue.length}`),this.isIdle()?this.notifyIdle():this.queue.length>0&&this.kick()}})().catch(e=>{this.logger.error(o,s,"Unhandled error in task execution wrapper:",e),this.running=Math.max(0,this.running-1),this.isIdle()?this.notifyIdle():this.queue.length>0&&this.kick()}))}}sortQueue(){const{comparator:e,ranker:t}=this.opts;if(e)return void this.queue.sort(e);const r=new Map,n=e=>t?(r.has(e.id)||r.set(e.id,t(e)),r.get(e.id)):this.defaultRank(e);this.queue.sort((e,t)=>{if(e.priority!==t.priority)return t.priority-e.priority;const r=n(e),i=n(t);return r!==i?i-r:this.extractTime(e.id)-this.extractTime(t.id)})}defaultRank(e){return 0}generateId(){return"undefined"!=typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`}extractTime(e){const t=Number(e.split("-")[0]);return Number.isFinite(t)?t:0}}const c="PdfEngine",d="Orchestrator";class h{constructor(t,r){this.executor=t,this.logger=r.logger??new e,this.options={imageConverter:r.imageConverter,fetcher:r.fetcher??("undefined"!=typeof fetch?(e,t)=>fetch(e,t):void 0),logger:this.logger},this.workerQueue=new a({concurrency:1,autoStart:!0,logger:this.logger}),this.logger.debug(c,d,"PdfEngine orchestrator created")}chunkArray(e,t){const r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}isSupport(e){const n=new t;return n.resolve([r.Create,r.Read,r.Update,r.Delete]),n}destroy(){const e=new t;try{this.executor.destroy(),e.resolve(!0)}catch(t){e.reject({code:n.Unknown,message:String(t)})}return e}openDocumentUrl(e,r){const i=new t;return(async()=>{try{if(!this.options.fetcher)throw new Error("Fetcher is not set");const t=await this.options.fetcher(e.url,null==r?void 0:r.requestOptions),n=await t.arrayBuffer(),o={id:e.id,content:n};this.openDocumentBuffer(o,{password:null==r?void 0:r.password}).wait(e=>i.resolve(e),e=>i.fail(e))}catch(e){i.reject({code:n.Unknown,message:String(e)})}})(),i}openDocumentBuffer(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.openDocumentBuffer(e,t),meta:{docId:e.id,operation:"openDocumentBuffer"}},{priority:u.CRITICAL})}getMetadata(e){return this.workerQueue.enqueue({execute:()=>this.executor.getMetadata(e),meta:{docId:e.id,operation:"getMetadata"}},{priority:u.MEDIUM})}setMetadata(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.setMetadata(e,t),meta:{docId:e.id,operation:"setMetadata"}},{priority:u.MEDIUM})}getDocPermissions(e){return this.workerQueue.enqueue({execute:()=>this.executor.getDocPermissions(e),meta:{docId:e.id,operation:"getDocPermissions"}},{priority:u.MEDIUM})}getDocUserPermissions(e){return this.workerQueue.enqueue({execute:()=>this.executor.getDocUserPermissions(e),meta:{docId:e.id,operation:"getDocUserPermissions"}},{priority:u.MEDIUM})}getSignatures(e){return this.workerQueue.enqueue({execute:()=>this.executor.getSignatures(e),meta:{docId:e.id,operation:"getSignatures"}},{priority:u.MEDIUM})}getBookmarks(e){return this.workerQueue.enqueue({execute:()=>this.executor.getBookmarks(e),meta:{docId:e.id,operation:"getBookmarks"}},{priority:u.MEDIUM})}setBookmarks(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.setBookmarks(e,t),meta:{docId:e.id,operation:"setBookmarks"}},{priority:u.MEDIUM})}deleteBookmarks(e){return this.workerQueue.enqueue({execute:()=>this.executor.deleteBookmarks(e),meta:{docId:e.id,operation:"deleteBookmarks"}},{priority:u.MEDIUM})}renderPage(e,t,r){return this.renderWithEncoding(()=>this.executor.renderPageRaw(e,t,r),r,e.id,t.index,u.CRITICAL)}renderPageRect(e,t,r,n){return this.renderWithEncoding(()=>this.executor.renderPageRect(e,t,r,n),n,e.id,t.index,u.HIGH)}renderThumbnail(e,t,r){return this.renderWithEncoding(()=>this.executor.renderThumbnailRaw(e,t,r),r,e.id,t.index,u.MEDIUM)}renderPageAnnotation(e,t,r,n){return this.renderWithEncoding(()=>this.executor.renderPageAnnotationRaw(e,t,r,n),n,e.id,t.index,u.MEDIUM)}renderWithEncoding(e,r,n,i,o=u.CRITICAL){const s=new t,a=this.workerQueue.enqueue({execute:()=>e(),meta:{docId:n,pageIndex:i,operation:"render"}},{priority:o}),c=s.abort.bind(s);return s.abort=e=>{a.abort(e),c(e)},a.wait(e=>{0===s.state.stage&&this.encodeImage(e,r,s)},e=>{0===s.state.stage&&s.fail(e)}),s}encodeImage(e,t,r){const i=(null==t?void 0:t.imageType)??"image/webp",o=null==t?void 0:t.quality,s={data:new Uint8ClampedArray(e.data),width:e.width,height:e.height};this.options.imageConverter(()=>s,i,o).then(e=>r.resolve(e)).catch(e=>r.reject({code:n.Unknown,message:String(e)}))}getPageAnnotations(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.getPageAnnotations(e,t),meta:{docId:e.id,pageIndex:t.index,operation:"getPageAnnotations"}},{priority:u.MEDIUM})}createPageAnnotation(e,t,r,n){return this.workerQueue.enqueue({execute:()=>this.executor.createPageAnnotation(e,t,r,n),meta:{docId:e.id,pageIndex:t.index,operation:"createPageAnnotation"}},{priority:u.MEDIUM})}updatePageAnnotation(e,t,r){return this.workerQueue.enqueue({execute:()=>this.executor.updatePageAnnotation(e,t,r),meta:{docId:e.id,pageIndex:t.index,operation:"updatePageAnnotation"}},{priority:u.MEDIUM})}removePageAnnotation(e,t,r){return this.workerQueue.enqueue({execute:()=>this.executor.removePageAnnotation(e,t,r),meta:{docId:e.id,pageIndex:t.index,operation:"removePageAnnotation"}},{priority:u.MEDIUM})}getAllAnnotations(e){const t=this.chunkArray(e.pages,500);this.logger.debug(c,d,`getAllAnnotations: ${e.pages.length} pages in ${t.length} chunks`);const r=new i({aggregate:e=>Object.assign({},...e)});return t.forEach((t,n)=>{const i=this.workerQueue.enqueue({execute:()=>this.executor.getAnnotationsBatch(e,t),meta:{docId:e.id,operation:"getAnnotationsBatch",chunkSize:t.length}},{priority:u.LOW});i.onProgress(e=>{r.progress({page:e.pageIndex,result:e.result})}),r.addChild(i,n)}),r.finalize(),r}getPageTextRects(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.getPageTextRects(e,t),meta:{docId:e.id,pageIndex:t.index,operation:"getPageTextRects"}},{priority:u.MEDIUM})}searchAllPages(e,t,r){const n=Array.isArray(null==r?void 0:r.flags)?r.flags.reduce((e,t)=>e|t,0):(null==r?void 0:r.flags)??0,o=this.chunkArray(e.pages,25);this.logger.debug(c,d,`searchAllPages: ${e.pages.length} pages in ${o.length} chunks`);const s=new i({aggregate:e=>{const t=e.flatMap(e=>Object.values(e).flat());return{results:t,total:t.length}}});return o.forEach((r,i)=>{const o=this.workerQueue.enqueue({execute:()=>this.executor.searchBatch(e,r,t,n),meta:{docId:e.id,operation:"searchBatch",chunkSize:r.length}},{priority:u.LOW});o.onProgress(e=>{s.progress({page:e.pageIndex,results:e.result})}),s.addChild(o,i)}),s.finalize(),s}getAttachments(e){return this.workerQueue.enqueue({execute:()=>this.executor.getAttachments(e),meta:{docId:e.id,operation:"getAttachments"}},{priority:u.MEDIUM})}addAttachment(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.addAttachment(e,t),meta:{docId:e.id,operation:"addAttachment"}},{priority:u.MEDIUM})}removeAttachment(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.removeAttachment(e,t),meta:{docId:e.id,operation:"removeAttachment"}},{priority:u.MEDIUM})}readAttachmentContent(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.readAttachmentContent(e,t),meta:{docId:e.id,operation:"readAttachmentContent"}},{priority:u.MEDIUM})}setFormFieldValue(e,t,r,n){return this.workerQueue.enqueue({execute:()=>this.executor.setFormFieldValue(e,t,r,n),meta:{docId:e.id,pageIndex:t.index,operation:"setFormFieldValue"}},{priority:u.MEDIUM})}flattenPage(e,t,r){return this.workerQueue.enqueue({execute:()=>this.executor.flattenPage(e,t,r),meta:{docId:e.id,pageIndex:t.index,operation:"flattenPage"}},{priority:u.MEDIUM})}extractPages(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.extractPages(e,t),meta:{docId:e.id,pageIndexes:t,operation:"extractPages"}},{priority:u.MEDIUM})}extractText(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.extractText(e,t),meta:{docId:e.id,pageIndexes:t,operation:"extractText"}},{priority:u.MEDIUM})}redactTextInRects(e,t,r,n){return this.workerQueue.enqueue({execute:()=>this.executor.redactTextInRects(e,t,r,n),meta:{docId:e.id,pageIndex:t.index,operation:"redactTextInRects"}},{priority:u.MEDIUM})}getTextSlices(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.getTextSlices(e,t),meta:{docId:e.id,slices:t,operation:"getTextSlices"}},{priority:u.MEDIUM})}getPageGlyphs(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.getPageGlyphs(e,t),meta:{docId:e.id,pageIndex:t.index,operation:"getPageGlyphs"}},{priority:u.MEDIUM})}getPageGeometry(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.getPageGeometry(e,t),meta:{docId:e.id,pageIndex:t.index,operation:"getPageGeometry"}},{priority:u.MEDIUM})}merge(e){return this.workerQueue.enqueue({execute:()=>this.executor.merge(e),meta:{docId:e.map(e=>e.id).join(","),operation:"merge"}},{priority:u.MEDIUM})}mergePages(e){return this.workerQueue.enqueue({execute:()=>this.executor.mergePages(e),meta:{docId:e.map(e=>e.docId).join(","),operation:"mergePages"}},{priority:u.MEDIUM})}preparePrintDocument(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.preparePrintDocument(e,t),meta:{docId:e.id,operation:"preparePrintDocument"}},{priority:u.MEDIUM})}saveAsCopy(e){return this.workerQueue.enqueue({execute:()=>this.executor.saveAsCopy(e),meta:{docId:e.id,operation:"saveAsCopy"}},{priority:u.MEDIUM})}closeDocument(e){return this.workerQueue.enqueue({execute:()=>this.executor.closeDocument(e),meta:{docId:e.id,operation:"closeDocument"}},{priority:u.MEDIUM})}closeAllDocuments(){return this.workerQueue.enqueue({execute:()=>this.executor.closeAllDocuments(),meta:{operation:"closeAllDocuments"}},{priority:u.MEDIUM})}setDocumentEncryption(e,t,r,n){return this.workerQueue.enqueue({execute:()=>this.executor.setDocumentEncryption(e,t,r,n),meta:{docId:e.id,operation:"setDocumentEncryption"}},{priority:u.MEDIUM})}removeEncryption(e){return this.workerQueue.enqueue({execute:()=>this.executor.removeEncryption(e),meta:{docId:e.id,operation:"removeEncryption"}},{priority:u.MEDIUM})}unlockOwnerPermissions(e,t){return this.workerQueue.enqueue({execute:()=>this.executor.unlockOwnerPermissions(e,t),meta:{docId:e.id,operation:"unlockOwnerPermissions"}},{priority:u.MEDIUM})}isEncrypted(e){return this.workerQueue.enqueue({execute:()=>this.executor.isEncrypted(e),meta:{docId:e.id,operation:"isEncrypted"}},{priority:u.MEDIUM})}isOwnerUnlocked(e){return this.workerQueue.enqueue({execute:()=>this.executor.isOwnerUnlocked(e),meta:{docId:e.id,operation:"isOwnerUnlocked"}},{priority:u.MEDIUM})}}class g extends Error{constructor(e){super(e),this.name="ImageConverterError"}}const l=(e,t="image/webp",r)=>{if("undefined"==typeof document)return Promise.reject(new g("document is not available. This converter requires a browser environment."));const n=e(),i=new ImageData(n.data,n.width,n.height);return new Promise((e,n)=>{const o=document.createElement("canvas");o.width=i.width,o.height=i.height,o.getContext("2d").putImageData(i,0,0),o.toBlob(t=>{t?e(t):n(new g("Canvas toBlob returned null"))},t,r)})};function p(e){return async(t,r="image/webp",n)=>{try{const i=t(),o=new Uint8ClampedArray(i.data);return await e.encode({data:o,width:i.width,height:i.height},r,n)}catch(e){return console.warn("Worker encoding failed, falling back to main-thread Canvas:",e),l(t,r,n)}}}export{h as P,l as b,p as c};