@embedpdf/engines 1.4.1 → 2.0.0-next.0

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 (48) hide show
  1. package/dist/{engine-N_GwaBxA.js → engine-B-RaFU77.js} +98 -28
  2. package/dist/engine-B-RaFU77.js.map +1 -0
  3. package/dist/engine-CXnLqg_9.cjs +2 -0
  4. package/dist/engine-CXnLqg_9.cjs.map +1 -0
  5. package/dist/{index-DXUtjXMC.js → index-D92r9YXl.js} +3 -3
  6. package/dist/{index-DXUtjXMC.js.map → index-D92r9YXl.js.map} +1 -1
  7. package/dist/index-GEOxMZwR.cjs +2 -0
  8. package/dist/{index-CgsjfX9e.cjs.map → index-GEOxMZwR.cjs.map} +1 -1
  9. package/dist/index.cjs +1 -1
  10. package/dist/index.js +3 -2
  11. package/dist/lib/converters/index.cjs.map +1 -1
  12. package/dist/lib/converters/index.js.map +1 -1
  13. package/dist/lib/pdfium/cache.d.ts +5 -2
  14. package/dist/lib/pdfium/engine.d.ts +1 -1
  15. package/dist/lib/pdfium/helper.d.ts +11 -0
  16. package/dist/lib/pdfium/index.cjs +1 -1
  17. package/dist/lib/pdfium/index.js +3 -2
  18. package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
  19. package/dist/lib/pdfium/web/direct-engine.cjs.map +1 -1
  20. package/dist/lib/pdfium/web/direct-engine.js +1 -1
  21. package/dist/lib/pdfium/web/direct-engine.js.map +1 -1
  22. package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
  23. package/dist/lib/pdfium/web/worker-engine.js +1 -1
  24. package/dist/lib/webworker/engine.cjs +1 -1
  25. package/dist/lib/webworker/engine.cjs.map +1 -1
  26. package/dist/lib/webworker/engine.js +1 -1
  27. package/dist/lib/webworker/engine.js.map +1 -1
  28. package/dist/preact/index.cjs +1 -1
  29. package/dist/preact/index.cjs.map +1 -1
  30. package/dist/preact/index.js +1 -1
  31. package/dist/preact/index.js.map +1 -1
  32. package/dist/react/index.cjs +1 -1
  33. package/dist/react/index.cjs.map +1 -1
  34. package/dist/react/index.js +1 -1
  35. package/dist/react/index.js.map +1 -1
  36. package/dist/svelte/index.cjs +1 -1
  37. package/dist/svelte/index.cjs.map +1 -1
  38. package/dist/svelte/index.js.map +1 -1
  39. package/dist/vue/components/pdf-engine-provider.vue.d.ts +3 -2
  40. package/dist/vue/index.cjs +1 -1
  41. package/dist/vue/index.cjs.map +1 -1
  42. package/dist/vue/index.js +1 -1
  43. package/dist/vue/index.js.map +1 -1
  44. package/package.json +3 -3
  45. package/dist/engine-N_GwaBxA.js.map +0 -1
  46. package/dist/engine-Z4iXwySK.cjs +0 -2
  47. package/dist/engine-Z4iXwySK.cjs.map +0 -1
  48. package/dist/index-CgsjfX9e.cjs +0 -2
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/models"),t="WebWorkerEngine",r="Engine";function s(e,t,r){return{id:e,type:"ExecuteRequest",data:{name:t,args:r}}}class n extends e.Task{constructor(e,t){super(),this.worker=e,this.messageId=t}abort(e){super.abort(e),this.worker.postMessage({id:this.messageId,type:"AbortRequest"})}progress(e){super.progress(e)}}const o=class o{constructor(s,i=new e.NoopLogger){this.worker=s,this.logger=i,this.tasks=new Map,this.handle=e=>{this.logger.debug(t,r,"webworker engine start handling message: ",e.data);try{const t=e.data,r=this.tasks.get(t.id);if(!r)return;switch(t.type){case"ReadyResponse":this.readyTask.resolve(!0);break;case"ExecuteProgress":r.progress(t.data);break;case"ExecuteResponse":switch(t.data.type){case"result":r.resolve(t.data.value);break;case"error":r.reject(t.data.value.reason)}this.tasks.delete(t.id)}}catch(s){this.logger.error(t,r,"webworker met error when handling message: ",s)}},this.worker.addEventListener("message",this.handle),this.readyTask=new n(this.worker,o.readyTaskId),this.tasks.set(o.readyTaskId,this.readyTask)}generateRequestId(e){return`${e}.${Date.now()}.${Math.random()}`}initialize(){this.logger.debug(t,r,"initialize");const e=this.generateRequestId("General"),o=new n(this.worker,e),i=s(e,"initialize",[]);return this.proxy(o,i),o}destroy(){this.logger.debug(t,r,"destroy");const e=this.generateRequestId("General"),o=new n(this.worker,e),i=()=>{this.worker.removeEventListener("message",this.handle),this.worker.terminate()};o.wait(i,i);const g=s(e,"destroy",[]);return this.proxy(o,g),o}openDocumentUrl(e,o){this.logger.debug(t,r,"openDocumentUrl",e.url,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"openDocumentUrl",[e,o]);return this.proxy(g,a),g}openDocumentBuffer(e,o){this.logger.debug(t,r,"openDocumentBuffer",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"openDocumentBuffer",[e,o]);return this.proxy(g,a),g}getMetadata(e){this.logger.debug(t,r,"getMetadata",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getMetadata",[e]);return this.proxy(i,g),i}setMetadata(e,o){this.logger.debug(t,r,"setMetadata",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"setMetadata",[e,o]);return this.proxy(g,a),g}getDocPermissions(e){this.logger.debug(t,r,"getDocPermissions",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getDocPermissions",[e]);return this.proxy(i,g),i}getDocUserPermissions(e){this.logger.debug(t,r,"getDocUserPermissions",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getDocUserPermissions",[e]);return this.proxy(i,g),i}getBookmarks(e){this.logger.debug(t,r,"getBookmarks",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getBookmarks",[e]);return this.proxy(i,g),i}setBookmarks(e,o){this.logger.debug(t,r,"setBookmarks",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"setBookmarks",[e,o]);return this.proxy(g,a),g}deleteBookmarks(e){this.logger.debug(t,r,"deleteBookmarks",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"deleteBookmarks",[e]);return this.proxy(i,g),i}getSignatures(e){this.logger.debug(t,r,"getSignatures",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getSignatures",[e]);return this.proxy(i,g),i}renderPage(e,o,i){this.logger.debug(t,r,"renderPage",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"renderPage",[e,o,i]);return this.proxy(a,h),a}renderPageRect(e,o,i,g){this.logger.debug(t,r,"renderPageRect",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"renderPageRect",[e,o,i,g]);return this.proxy(h,d),h}renderPageAnnotation(e,o,i,g){this.logger.debug(t,r,"renderAnnotation",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"renderPageAnnotation",[e,o,i,g]);return this.proxy(h,d),h}getAllAnnotations(e){this.logger.debug(t,r,"getAllAnnotations",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getAllAnnotations",[e]);return this.proxy(i,g),i}getPageAnnotations(e,o){this.logger.debug(t,r,"getPageAnnotations",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageAnnotations",[e,o]);return this.proxy(g,a),g}createPageAnnotation(e,o,i,g){this.logger.debug(t,r,"createPageAnnotations",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"createPageAnnotation",[e,o,i,g]);return this.proxy(h,d),h}updatePageAnnotation(e,o,i){this.logger.debug(t,r,"updatePageAnnotation",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"updatePageAnnotation",[e,o,i]);return this.proxy(a,h),a}removePageAnnotation(e,o,i){this.logger.debug(t,r,"removePageAnnotations",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"removePageAnnotation",[e,o,i]);return this.proxy(a,h),a}getPageTextRects(e,o){this.logger.debug(t,r,"getPageTextRects",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageTextRects",[e,o]);return this.proxy(g,a),g}renderThumbnail(e,o,i){this.logger.debug(t,r,"renderThumbnail",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"renderThumbnail",[e,o,i]);return this.proxy(a,h),a}searchAllPages(e,o,i){this.logger.debug(t,r,"searchAllPages",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"searchAllPages",[e,o,i]);return this.proxy(a,h),a}saveAsCopy(e){this.logger.debug(t,r,"saveAsCopy",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"saveAsCopy",[e]);return this.proxy(i,g),i}getAttachments(e){this.logger.debug(t,r,"getAttachments",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getAttachments",[e]);return this.proxy(i,g),i}addAttachment(e,o){this.logger.debug(t,r,"addAttachment",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"addAttachment",[e,o]);return this.proxy(g,a),g}removeAttachment(e,o){this.logger.debug(t,r,"removeAttachment",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"removeAttachment",[e,o]);return this.proxy(g,a),g}readAttachmentContent(e,o){this.logger.debug(t,r,"readAttachmentContent",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"readAttachmentContent",[e,o]);return this.proxy(g,a),g}setFormFieldValue(e,o,i,g){this.logger.debug(t,r,"setFormFieldValue",e,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"setFormFieldValue",[e,o,i,g]);return this.proxy(h,d),h}flattenPage(e,o,i){this.logger.debug(t,r,"flattenPage",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"flattenPage",[e,o,i]);return this.proxy(a,h),a}extractPages(e,o){this.logger.debug(t,r,"extractPages",e);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"extractPages",[e,o]);return this.proxy(g,a),g}redactTextInRects(e,o,i,g){this.logger.debug(t,r,"redactTextInRects",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"redactTextInRects",[e,o,i,g]);return this.proxy(h,d),h}extractText(e,o){this.logger.debug(t,r,"extractText",e);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"extractText",[e,o]);return this.proxy(g,a),g}getTextSlices(e,o){this.logger.debug(t,r,"getTextSlices",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getTextSlices",[e,o]);return this.proxy(g,a),g}getPageGlyphs(e,o){this.logger.debug(t,r,"getPageGlyphs",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageGlyphs",[e,o]);return this.proxy(g,a),g}getPageGeometry(e,o){this.logger.debug(t,r,"getPageGeometry",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageGeometry",[e,o]);return this.proxy(g,a),g}merge(e){this.logger.debug(t,r,"merge",e);const o=e.map((e=>e.id)).join("."),i=this.generateRequestId(o),g=new n(this.worker,i),a=s(i,"merge",[e]);return this.proxy(g,a),g}mergePages(e){this.logger.debug(t,r,"mergePages",e);const o=this.generateRequestId(e.map((e=>e.docId)).join(".")),i=new n(this.worker,o),g=s(o,"mergePages",[e]);return this.proxy(i,g),i}preparePrintDocument(e,o){this.logger.debug(t,r,"preparePrintDocument",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"preparePrintDocument",[e,o]);return this.proxy(g,a),g}closeDocument(e){this.logger.debug(t,r,"closeDocument",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"closeDocument",[e]);return this.proxy(i,g),i}closeAllDocuments(){this.logger.debug(t,r,"closeAllDocuments");const e=this.generateRequestId("closeAllDocuments"),o=new n(this.worker,e),i=s(e,"closeAllDocuments",[]);return this.proxy(o,i),o}proxy(s,n,o=[]){this.logger.debug(t,r,"send request to worker",s,n,o),this.logger.perf(t,r,`${n.data.name}`,"Begin",n.id),this.readyTask.wait((()=>{this.worker.postMessage(n,o),s.wait((()=>{this.logger.perf(t,r,`${n.data.name}`,"End",n.id)}),(()=>{this.logger.perf(t,r,`${n.data.name}`,"End",n.id)})),this.tasks.set(n.id,s)}),(()=>{this.logger.perf(t,r,`${n.data.name}`,"End",n.id),s.reject({code:e.PdfErrorCode.Initialization,message:"worker initialization failed"})}))}};o.readyTaskId="0";let i=o;exports.WebWorkerEngine=i,exports.WorkerTask=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/models"),t="WebWorkerEngine",r="Engine";function s(e,t,r){return{id:e,type:"ExecuteRequest",data:{name:t,args:r}}}class n extends e.Task{constructor(e,t){super(),this.worker=e,this.messageId=t}abort(e){super.abort(e),this.worker.postMessage({id:this.messageId,type:"AbortRequest"})}progress(e){super.progress(e)}}const o=class o{constructor(s,i=new e.NoopLogger){this.worker=s,this.logger=i,this.tasks=new Map,this.handle=e=>{this.logger.debug(t,r,"webworker engine start handling message: ",e.data);try{const t=e.data,r=this.tasks.get(t.id);if(!r)return;switch(t.type){case"ReadyResponse":this.readyTask.resolve(!0);break;case"ExecuteProgress":r.progress(t.data);break;case"ExecuteResponse":switch(t.data.type){case"result":r.resolve(t.data.value);break;case"error":r.reject(t.data.value.reason)}this.tasks.delete(t.id)}}catch(s){this.logger.error(t,r,"webworker met error when handling message: ",s)}},this.worker.addEventListener("message",this.handle),this.readyTask=new n(this.worker,o.readyTaskId),this.tasks.set(o.readyTaskId,this.readyTask)}generateRequestId(e){return`${e}.${Date.now()}.${Math.random()}`}initialize(){this.logger.debug(t,r,"initialize");const e=this.generateRequestId("General"),o=new n(this.worker,e),i=s(e,"initialize",[]);return this.proxy(o,i),o}destroy(){this.logger.debug(t,r,"destroy");const e=this.generateRequestId("General"),o=new n(this.worker,e),i=()=>{this.worker.removeEventListener("message",this.handle),this.worker.terminate()};o.wait(i,i);const g=s(e,"destroy",[]);return this.proxy(o,g),o}openDocumentUrl(e,o){this.logger.debug(t,r,"openDocumentUrl",e.url,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"openDocumentUrl",[e,o]);return this.proxy(g,a),g}openDocumentBuffer(e,o){this.logger.debug(t,r,"openDocumentBuffer",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"openDocumentBuffer",[e,o]);return this.proxy(g,a),g}getMetadata(e){this.logger.debug(t,r,"getMetadata",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getMetadata",[e]);return this.proxy(i,g),i}setMetadata(e,o){this.logger.debug(t,r,"setMetadata",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"setMetadata",[e,o]);return this.proxy(g,a),g}getDocPermissions(e){this.logger.debug(t,r,"getDocPermissions",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getDocPermissions",[e]);return this.proxy(i,g),i}getDocUserPermissions(e){this.logger.debug(t,r,"getDocUserPermissions",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getDocUserPermissions",[e]);return this.proxy(i,g),i}getBookmarks(e){this.logger.debug(t,r,"getBookmarks",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getBookmarks",[e]);return this.proxy(i,g),i}setBookmarks(e,o){this.logger.debug(t,r,"setBookmarks",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"setBookmarks",[e,o]);return this.proxy(g,a),g}deleteBookmarks(e){this.logger.debug(t,r,"deleteBookmarks",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"deleteBookmarks",[e]);return this.proxy(i,g),i}getSignatures(e){this.logger.debug(t,r,"getSignatures",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getSignatures",[e]);return this.proxy(i,g),i}renderPage(e,o,i){this.logger.debug(t,r,"renderPage",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"renderPage",[e,o,i]);return this.proxy(a,h),a}renderPageRect(e,o,i,g){this.logger.debug(t,r,"renderPageRect",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"renderPageRect",[e,o,i,g]);return this.proxy(h,d),h}renderPageAnnotation(e,o,i,g){this.logger.debug(t,r,"renderAnnotation",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"renderPageAnnotation",[e,o,i,g]);return this.proxy(h,d),h}getAllAnnotations(e){this.logger.debug(t,r,"getAllAnnotations",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getAllAnnotations",[e]);return this.proxy(i,g),i}getPageAnnotations(e,o){this.logger.debug(t,r,"getPageAnnotations",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageAnnotations",[e,o]);return this.proxy(g,a),g}createPageAnnotation(e,o,i,g){this.logger.debug(t,r,"createPageAnnotations",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"createPageAnnotation",[e,o,i,g]);return this.proxy(h,d),h}updatePageAnnotation(e,o,i){this.logger.debug(t,r,"updatePageAnnotation",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"updatePageAnnotation",[e,o,i]);return this.proxy(a,h),a}removePageAnnotation(e,o,i){this.logger.debug(t,r,"removePageAnnotations",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"removePageAnnotation",[e,o,i]);return this.proxy(a,h),a}getPageTextRects(e,o){this.logger.debug(t,r,"getPageTextRects",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageTextRects",[e,o]);return this.proxy(g,a),g}renderThumbnail(e,o,i){this.logger.debug(t,r,"renderThumbnail",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"renderThumbnail",[e,o,i]);return this.proxy(a,h),a}searchAllPages(e,o,i){this.logger.debug(t,r,"searchAllPages",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"searchAllPages",[e,o,i]);return this.proxy(a,h),a}saveAsCopy(e){this.logger.debug(t,r,"saveAsCopy",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"saveAsCopy",[e]);return this.proxy(i,g),i}getAttachments(e){this.logger.debug(t,r,"getAttachments",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getAttachments",[e]);return this.proxy(i,g),i}addAttachment(e,o){this.logger.debug(t,r,"addAttachment",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"addAttachment",[e,o]);return this.proxy(g,a),g}removeAttachment(e,o){this.logger.debug(t,r,"removeAttachment",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"removeAttachment",[e,o]);return this.proxy(g,a),g}readAttachmentContent(e,o){this.logger.debug(t,r,"readAttachmentContent",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"readAttachmentContent",[e,o]);return this.proxy(g,a),g}setFormFieldValue(e,o,i,g){this.logger.debug(t,r,"setFormFieldValue",e,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"setFormFieldValue",[e,o,i,g]);return this.proxy(h,d),h}flattenPage(e,o,i){this.logger.debug(t,r,"flattenPage",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"flattenPage",[e,o,i]);return this.proxy(a,h),a}extractPages(e,o){this.logger.debug(t,r,"extractPages",e);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"extractPages",[e,o]);return this.proxy(g,a),g}redactTextInRects(e,o,i,g){this.logger.debug(t,r,"redactTextInRects",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"redactTextInRects",[e,o,i,g]);return this.proxy(h,d),h}extractText(e,o){this.logger.debug(t,r,"extractText",e);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"extractText",[e,o]);return this.proxy(g,a),g}getTextSlices(e,o){this.logger.debug(t,r,"getTextSlices",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getTextSlices",[e,o]);return this.proxy(g,a),g}getPageGlyphs(e,o){this.logger.debug(t,r,"getPageGlyphs",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageGlyphs",[e,o]);return this.proxy(g,a),g}getPageGeometry(e,o){this.logger.debug(t,r,"getPageGeometry",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageGeometry",[e,o]);return this.proxy(g,a),g}merge(e){this.logger.debug(t,r,"merge",e);const o=e.map(e=>e.id).join("."),i=this.generateRequestId(o),g=new n(this.worker,i),a=s(i,"merge",[e]);return this.proxy(g,a),g}mergePages(e){this.logger.debug(t,r,"mergePages",e);const o=this.generateRequestId(e.map(e=>e.docId).join(".")),i=new n(this.worker,o),g=s(o,"mergePages",[e]);return this.proxy(i,g),i}preparePrintDocument(e,o){this.logger.debug(t,r,"preparePrintDocument",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"preparePrintDocument",[e,o]);return this.proxy(g,a),g}closeDocument(e){this.logger.debug(t,r,"closeDocument",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"closeDocument",[e]);return this.proxy(i,g),i}closeAllDocuments(){this.logger.debug(t,r,"closeAllDocuments");const e=this.generateRequestId("closeAllDocuments"),o=new n(this.worker,e),i=s(e,"closeAllDocuments",[]);return this.proxy(o,i),o}proxy(s,n,o=[]){this.logger.debug(t,r,"send request to worker",s,n,o),this.logger.perf(t,r,`${n.data.name}`,"Begin",n.id),this.readyTask.wait(()=>{this.worker.postMessage(n,o),s.wait(()=>{this.logger.perf(t,r,`${n.data.name}`,"End",n.id)},()=>{this.logger.perf(t,r,`${n.data.name}`,"End",n.id)}),this.tasks.set(n.id,s)},()=>{this.logger.perf(t,r,`${n.data.name}`,"End",n.id),s.reject({code:e.PdfErrorCode.Initialization,message:"worker initialization failed"})})}};o.readyTaskId="0";let i=o;exports.WebWorkerEngine=i,exports.WorkerTask=n;
2
2
  //# sourceMappingURL=engine.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.cjs","sources":["../../../src/lib/webworker/engine.ts"],"sourcesContent":["import {\n FormFieldValue,\n PdfAttachmentObject,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenResult,\n SearchAllPagesResult,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PageTextSlice,\n AnnotationCreateContext,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n PdfPageSearchProgress,\n PdfRenderThumbnailOptions,\n PdfSearchAllPagesOptions,\n PdfFlattenPageOptions,\n PdfRedactTextOptions,\n PdfRenderPageAnnotationOptions,\n PdfRenderPageOptions,\n PdfOpenDocumentUrlOptions,\n PdfOpenDocumentBufferOptions,\n PdfAnnotationsProgress,\n PdfPrintOptions,\n PdfBookmarkObject,\n PdfAddAttachmentParams,\n} from '@embedpdf/models';\nimport { ExecuteRequest, Response, SpecificExecuteRequest } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Create a request for the webworker\n * @param id - id of the request\n * @param name - name of the method\n * @param args - arguments of the method\n * @returns request\n */\nfunction createRequest<M extends PdfEngineMethodName>(\n id: string,\n name: M,\n args: PdfEngineMethodArgs<M>,\n): SpecificExecuteRequest<M> {\n return {\n id,\n type: 'ExecuteRequest',\n data: {\n name,\n args,\n },\n };\n}\n\n/**\n * Task that executed by webworker\n */\nexport class WorkerTask<R, P = unknown> extends Task<R, PdfErrorReason, P> {\n /**\n * Create a task that bind to web worker with specified message id\n * @param worker - web worker instance\n * @param messageId - id of message\n *\n * @public\n */\n constructor(\n public worker: Worker,\n private messageId: string,\n ) {\n super();\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.abort}\n *\n * @override\n */\n abort(e: PdfErrorReason) {\n super.abort(e);\n\n this.worker.postMessage({\n id: this.messageId,\n type: 'AbortRequest',\n });\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.progress}\n *\n * @override\n */\n progress(p: P) {\n super.progress(p);\n }\n}\n\n/**\n * PDF engine that runs within webworker\n */\nexport class WebWorkerEngine implements PdfEngine {\n static readyTaskId = '0';\n /**\n * Task that represent the state of preparation\n */\n readyTask: WorkerTask<boolean>;\n /**\n * All the tasks that is executing\n */\n tasks: Map<string, WorkerTask<any>> = new Map();\n\n /**\n * Create an instance of WebWorkerEngine, it will create a worker with\n * specified url.\n * @param worker - webworker instance, this worker needs to contains the running instance of {@link EngineRunner}\n * @param logger - logger instance\n *\n * @public\n */\n constructor(\n private worker: Worker,\n private logger: Logger = new NoopLogger(),\n ) {\n this.worker.addEventListener('message', this.handle);\n\n this.readyTask = new WorkerTask<boolean>(this.worker, WebWorkerEngine.readyTaskId);\n this.tasks.set(WebWorkerEngine.readyTaskId, this.readyTask);\n }\n\n /**\n * Handle event from web worker. There are 2 kinds of event\n * 1. ReadyResponse: web worker is ready\n * 2. ExecuteResponse: result of execution\n * @param evt - message event from web worker\n * @returns\n *\n * @private\n */\n handle = (evt: MessageEvent<any>) => {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker engine start handling message: ',\n evt.data,\n );\n try {\n const response = evt.data as Response;\n const task = this.tasks.get(response.id);\n if (!task) {\n return;\n }\n\n switch (response.type) {\n case 'ReadyResponse':\n this.readyTask.resolve(true);\n break;\n case 'ExecuteProgress':\n task.progress(response.data);\n break;\n case 'ExecuteResponse':\n {\n switch (response.data.type) {\n case 'result':\n task.resolve(response.data.value);\n break;\n case 'error':\n task.reject(response.data.value.reason);\n break;\n }\n this.tasks.delete(response.id);\n }\n break;\n }\n } catch (e) {\n this.logger.error(LOG_SOURCE, LOG_CATEGORY, 'webworker met error when handling message: ', e);\n }\n };\n\n /**\n * Generate a unique message id\n * @returns message id\n *\n * @private\n */\n generateRequestId(id: string) {\n return `${id}.${Date.now()}.${Math.random()}`;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.initialize}\n *\n * @public\n */\n initialize() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'initialize');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'initialize', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.destroy}\n *\n * @public\n */\n destroy() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'destroy');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const finish = () => {\n this.worker.removeEventListener('message', this.handle);\n this.worker.terminate();\n };\n\n task.wait(finish, finish);\n\n const request: ExecuteRequest = createRequest(requestId, 'destroy', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}\n *\n * @public\n */\n openDocumentUrl(file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentUrl', file.url, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentUrl', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}\n *\n * @public\n */\n openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentBuffer', file, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentBuffer', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}\n *\n * @public\n */\n getMetadata(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getMetadata', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfMetadataObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getMetadata', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setMetadata}\n *\n * @public\n */\n setMetadata(doc: PdfDocumentObject, metadata: Partial<PdfMetadataObject>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setMetadata', doc, metadata);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setMetadata', [doc, metadata]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocPermissions}\n *\n * @public\n */\n getDocPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocUserPermissions}\n *\n * @public\n */\n getDocUserPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocUserPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocUserPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getBookmarks}\n *\n * @public\n */\n getBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfBookmarksObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setBookmarks}\n *\n * @public\n */\n setBookmarks(doc: PdfDocumentObject, payload: PdfBookmarkObject[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setBookmarks', doc, payload);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setBookmarks', [doc, payload]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.deleteBookmarks}\n *\n * @public\n */\n deleteBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'deleteBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'deleteBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getSignatures}\n *\n * @public\n */\n getSignatures(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getSignatures', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfSignatureObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getSignatures', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPage}\n *\n * @public\n */\n renderPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}\n *\n * @public\n */\n renderPageRect(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rect: Rect,\n options?: PdfRenderPageOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRect', doc, page, rect, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRect', [\n doc,\n page,\n rect,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}\n *\n * @public\n */\n renderPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n options?: PdfRenderPageAnnotationOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderAnnotation', doc, page, annotation, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotation', [\n doc,\n page,\n annotation,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}\n *\n * @public\n */\n getAllAnnotations(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAllAnnotations', doc);\n const requestId = this.generateRequestId(doc.id);\n\n const task = new WorkerTask<Record<number, PdfAnnotationObject[]>, PdfAnnotationsProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'getAllAnnotations', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}\n *\n * @public\n */\n getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnotations', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAnnotationObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageAnnotations', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}\n *\n * @public\n */\n createPageAnnotation<A extends PdfAnnotationObject>(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: A,\n context?: AnnotationCreateContext<A>,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'createPageAnnotations',\n doc,\n page,\n annotation,\n context,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'createPageAnnotation', [\n doc,\n page,\n annotation,\n context,\n ] as PdfEngineMethodArgs<'createPageAnnotation'>);\n this.proxy(task, request);\n\n return task;\n }\n\n updatePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'updatePageAnnotation', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'updatePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}\n *\n * @public\n */\n removePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removePageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}\n *\n * @public\n */\n getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageTextRects', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRects', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}\n *\n * @public\n */\n renderThumbnail(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n options?: PdfRenderThumbnailOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderThumbnail', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderThumbnail', [\n doc,\n page,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}\n *\n * @public\n */\n searchAllPages(doc: PdfDocumentObject, keyword: string, options?: PdfSearchAllPagesOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages', doc, keyword, options);\n\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<SearchAllPagesResult, PdfPageSearchProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'searchAllPages', [\n doc,\n keyword,\n options,\n ]);\n\n this.proxy(task, request);\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}\n *\n * @public\n */\n saveAsCopy(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'saveAsCopy', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'saveAsCopy', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}\n *\n * @public\n */\n getAttachments(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAttachments', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAttachmentObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getAttachments', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.addAttachment}\n *\n * @public\n */\n addAttachment(doc: PdfDocumentObject, params: PdfAddAttachmentParams) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'addAttachment', doc, params);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'addAttachment', [doc, params]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removeAttachment}\n *\n * @public\n */\n removeAttachment(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removeAttachment', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removeAttachment', [doc, attachment]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.readAttachmentContent}\n *\n * @public\n */\n readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'readAttachmentContent', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'readAttachmentContent', [\n doc,\n attachment,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldValue}\n *\n * @public\n */\n setFormFieldValue(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n value: FormFieldValue,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldValue', doc, annotation, value);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setFormFieldValue', [\n doc,\n page,\n annotation,\n value,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}\n *\n * @public\n */\n flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageFlattenResult>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'flattenPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}\n *\n * @public\n */\n extractPages(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractPages', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractPages', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.redactTextInQuads}\n *\n * @public\n */\n redactTextInRects(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rects: Rect[],\n options?: PdfRedactTextOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'redactTextInRects', doc, page, rects, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'redactTextInRects', [\n doc,\n page,\n rects,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractText}\n *\n * @public\n */\n extractText(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractText', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractText', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getTextSlices}\n *\n * @public\n */\n getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getTextSlices', doc, slices);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getTextSlices', [doc, slices]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGlyphs}\n *\n * @public\n */\n getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGlyphs', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfGlyphObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGlyphs', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGeometry}\n *\n * @public\n */\n getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGeometry', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageGeometry>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGeometry', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.merge}\n *\n * @public\n */\n merge(files: PdfFile[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'merge', files);\n const fileIds = files.map((file) => file.id).join('.');\n const requestId = this.generateRequestId(fileIds);\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'merge', [files]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.mergePages}\n *\n * @public\n */\n mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'mergePages', mergeConfigs);\n const requestId = this.generateRequestId(mergeConfigs.map((config) => config.docId).join('.'));\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'mergePages', [mergeConfigs]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.preparePrintDocument}\n *\n * @public\n */\n preparePrintDocument(doc: PdfDocumentObject, options?: PdfPrintOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'preparePrintDocument', doc, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'preparePrintDocument', [\n doc,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeDocument}\n *\n * @public\n */\n closeDocument(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeDocument', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'closeDocument', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeAllDocuments}\n *\n * @public\n */\n closeAllDocuments() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeAllDocuments');\n const requestId = this.generateRequestId('closeAllDocuments');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n const request: ExecuteRequest = createRequest(requestId, 'closeAllDocuments', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * Send the request to webworker inside and register the task\n * @param task - task that waiting for the response\n * @param request - request that needs send to web worker\n * @param transferables - transferables that need to transfer to webworker\n * @returns\n *\n * @internal\n */\n proxy<R>(task: WorkerTask<R>, request: ExecuteRequest, transferables: any[] = []) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'send request to worker',\n task,\n request,\n transferables,\n );\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'Begin', request.id);\n this.readyTask.wait(\n () => {\n this.worker.postMessage(request, transferables);\n task.wait(\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n );\n this.tasks.set(request.id, task);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n task.reject({\n code: PdfErrorCode.Initialization,\n message: 'worker initialization failed',\n });\n },\n );\n }\n}\n"],"names":["LOG_SOURCE","LOG_CATEGORY","createRequest","id","name","args","type","data","WorkerTask","Task","constructor","worker","messageId","super","this","abort","e","postMessage","progress","p","_WebWorkerEngine","logger","NoopLogger","tasks","Map","handle","evt","debug","response","task","get","readyTask","resolve","value","reject","reason","delete","error","addEventListener","readyTaskId","set","generateRequestId","Date","now","Math","random","initialize","requestId","request","proxy","destroy","finish","removeEventListener","terminate","wait","openDocumentUrl","file","options","url","openDocumentBuffer","getMetadata","doc","setMetadata","metadata","getDocPermissions","getDocUserPermissions","getBookmarks","setBookmarks","payload","deleteBookmarks","getSignatures","renderPage","page","renderPageRect","rect","renderPageAnnotation","annotation","getAllAnnotations","getPageAnnotations","createPageAnnotation","context","updatePageAnnotation","removePageAnnotation","getPageTextRects","renderThumbnail","searchAllPages","keyword","saveAsCopy","getAttachments","addAttachment","params","removeAttachment","attachment","readAttachmentContent","setFormFieldValue","flattenPage","extractPages","pageIndexes","redactTextInRects","rects","extractText","getTextSlices","slices","getPageGlyphs","getPageGeometry","merge","files","fileIds","map","join","mergePages","mergeConfigs","config","docId","preparePrintDocument","closeDocument","closeAllDocuments","transferables","perf","code","PdfErrorCode","Initialization","message","WebWorkerEngine"],"mappings":"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"}
1
+ {"version":3,"file":"engine.cjs","sources":["../../../src/lib/webworker/engine.ts"],"sourcesContent":["import {\n FormFieldValue,\n PdfAttachmentObject,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenResult,\n SearchAllPagesResult,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PageTextSlice,\n AnnotationCreateContext,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n PdfPageSearchProgress,\n PdfRenderThumbnailOptions,\n PdfSearchAllPagesOptions,\n PdfFlattenPageOptions,\n PdfRedactTextOptions,\n PdfRenderPageAnnotationOptions,\n PdfRenderPageOptions,\n PdfOpenDocumentUrlOptions,\n PdfOpenDocumentBufferOptions,\n PdfAnnotationsProgress,\n PdfPrintOptions,\n PdfBookmarkObject,\n PdfAddAttachmentParams,\n} from '@embedpdf/models';\nimport { ExecuteRequest, Response, SpecificExecuteRequest } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Create a request for the webworker\n * @param id - id of the request\n * @param name - name of the method\n * @param args - arguments of the method\n * @returns request\n */\nfunction createRequest<M extends PdfEngineMethodName>(\n id: string,\n name: M,\n args: PdfEngineMethodArgs<M>,\n): SpecificExecuteRequest<M> {\n return {\n id,\n type: 'ExecuteRequest',\n data: {\n name,\n args,\n },\n };\n}\n\n/**\n * Task that executed by webworker\n */\nexport class WorkerTask<R, P = unknown> extends Task<R, PdfErrorReason, P> {\n /**\n * Create a task that bind to web worker with specified message id\n * @param worker - web worker instance\n * @param messageId - id of message\n *\n * @public\n */\n constructor(\n public worker: Worker,\n private messageId: string,\n ) {\n super();\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.abort}\n *\n * @override\n */\n abort(e: PdfErrorReason) {\n super.abort(e);\n\n this.worker.postMessage({\n id: this.messageId,\n type: 'AbortRequest',\n });\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.progress}\n *\n * @override\n */\n progress(p: P) {\n super.progress(p);\n }\n}\n\n/**\n * PDF engine that runs within webworker\n */\nexport class WebWorkerEngine implements PdfEngine {\n static readyTaskId = '0';\n /**\n * Task that represent the state of preparation\n */\n readyTask: WorkerTask<boolean>;\n /**\n * All the tasks that is executing\n */\n tasks: Map<string, WorkerTask<any>> = new Map();\n\n /**\n * Create an instance of WebWorkerEngine, it will create a worker with\n * specified url.\n * @param worker - webworker instance, this worker needs to contains the running instance of {@link EngineRunner}\n * @param logger - logger instance\n *\n * @public\n */\n constructor(\n private worker: Worker,\n private logger: Logger = new NoopLogger(),\n ) {\n this.worker.addEventListener('message', this.handle);\n\n this.readyTask = new WorkerTask<boolean>(this.worker, WebWorkerEngine.readyTaskId);\n this.tasks.set(WebWorkerEngine.readyTaskId, this.readyTask);\n }\n\n /**\n * Handle event from web worker. There are 2 kinds of event\n * 1. ReadyResponse: web worker is ready\n * 2. ExecuteResponse: result of execution\n * @param evt - message event from web worker\n * @returns\n *\n * @private\n */\n handle = (evt: MessageEvent<any>) => {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker engine start handling message: ',\n evt.data,\n );\n try {\n const response = evt.data as Response;\n const task = this.tasks.get(response.id);\n if (!task) {\n return;\n }\n\n switch (response.type) {\n case 'ReadyResponse':\n this.readyTask.resolve(true);\n break;\n case 'ExecuteProgress':\n task.progress(response.data);\n break;\n case 'ExecuteResponse':\n {\n switch (response.data.type) {\n case 'result':\n task.resolve(response.data.value);\n break;\n case 'error':\n task.reject(response.data.value.reason);\n break;\n }\n this.tasks.delete(response.id);\n }\n break;\n }\n } catch (e) {\n this.logger.error(LOG_SOURCE, LOG_CATEGORY, 'webworker met error when handling message: ', e);\n }\n };\n\n /**\n * Generate a unique message id\n * @returns message id\n *\n * @private\n */\n generateRequestId(id: string) {\n return `${id}.${Date.now()}.${Math.random()}`;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.initialize}\n *\n * @public\n */\n initialize() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'initialize');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'initialize', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.destroy}\n *\n * @public\n */\n destroy() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'destroy');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const finish = () => {\n this.worker.removeEventListener('message', this.handle);\n this.worker.terminate();\n };\n\n task.wait(finish, finish);\n\n const request: ExecuteRequest = createRequest(requestId, 'destroy', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}\n *\n * @public\n */\n openDocumentUrl(file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentUrl', file.url, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentUrl', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}\n *\n * @public\n */\n openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentBuffer', file, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentBuffer', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}\n *\n * @public\n */\n getMetadata(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getMetadata', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfMetadataObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getMetadata', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setMetadata}\n *\n * @public\n */\n setMetadata(doc: PdfDocumentObject, metadata: Partial<PdfMetadataObject>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setMetadata', doc, metadata);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setMetadata', [doc, metadata]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocPermissions}\n *\n * @public\n */\n getDocPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocUserPermissions}\n *\n * @public\n */\n getDocUserPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocUserPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocUserPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getBookmarks}\n *\n * @public\n */\n getBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfBookmarksObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setBookmarks}\n *\n * @public\n */\n setBookmarks(doc: PdfDocumentObject, payload: PdfBookmarkObject[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setBookmarks', doc, payload);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setBookmarks', [doc, payload]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.deleteBookmarks}\n *\n * @public\n */\n deleteBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'deleteBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'deleteBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getSignatures}\n *\n * @public\n */\n getSignatures(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getSignatures', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfSignatureObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getSignatures', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPage}\n *\n * @public\n */\n renderPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}\n *\n * @public\n */\n renderPageRect(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rect: Rect,\n options?: PdfRenderPageOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRect', doc, page, rect, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRect', [\n doc,\n page,\n rect,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}\n *\n * @public\n */\n renderPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n options?: PdfRenderPageAnnotationOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderAnnotation', doc, page, annotation, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotation', [\n doc,\n page,\n annotation,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}\n *\n * @public\n */\n getAllAnnotations(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAllAnnotations', doc);\n const requestId = this.generateRequestId(doc.id);\n\n const task = new WorkerTask<Record<number, PdfAnnotationObject[]>, PdfAnnotationsProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'getAllAnnotations', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}\n *\n * @public\n */\n getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnotations', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAnnotationObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageAnnotations', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}\n *\n * @public\n */\n createPageAnnotation<A extends PdfAnnotationObject>(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: A,\n context?: AnnotationCreateContext<A>,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'createPageAnnotations',\n doc,\n page,\n annotation,\n context,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'createPageAnnotation', [\n doc,\n page,\n annotation,\n context,\n ] as PdfEngineMethodArgs<'createPageAnnotation'>);\n this.proxy(task, request);\n\n return task;\n }\n\n updatePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'updatePageAnnotation', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'updatePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}\n *\n * @public\n */\n removePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removePageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}\n *\n * @public\n */\n getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageTextRects', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRects', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}\n *\n * @public\n */\n renderThumbnail(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n options?: PdfRenderThumbnailOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderThumbnail', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderThumbnail', [\n doc,\n page,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}\n *\n * @public\n */\n searchAllPages(doc: PdfDocumentObject, keyword: string, options?: PdfSearchAllPagesOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages', doc, keyword, options);\n\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<SearchAllPagesResult, PdfPageSearchProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'searchAllPages', [\n doc,\n keyword,\n options,\n ]);\n\n this.proxy(task, request);\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}\n *\n * @public\n */\n saveAsCopy(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'saveAsCopy', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'saveAsCopy', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}\n *\n * @public\n */\n getAttachments(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAttachments', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAttachmentObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getAttachments', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.addAttachment}\n *\n * @public\n */\n addAttachment(doc: PdfDocumentObject, params: PdfAddAttachmentParams) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'addAttachment', doc, params);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'addAttachment', [doc, params]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removeAttachment}\n *\n * @public\n */\n removeAttachment(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removeAttachment', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removeAttachment', [doc, attachment]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.readAttachmentContent}\n *\n * @public\n */\n readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'readAttachmentContent', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'readAttachmentContent', [\n doc,\n attachment,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldValue}\n *\n * @public\n */\n setFormFieldValue(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n value: FormFieldValue,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldValue', doc, annotation, value);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setFormFieldValue', [\n doc,\n page,\n annotation,\n value,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}\n *\n * @public\n */\n flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageFlattenResult>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'flattenPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}\n *\n * @public\n */\n extractPages(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractPages', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractPages', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.redactTextInQuads}\n *\n * @public\n */\n redactTextInRects(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rects: Rect[],\n options?: PdfRedactTextOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'redactTextInRects', doc, page, rects, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'redactTextInRects', [\n doc,\n page,\n rects,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractText}\n *\n * @public\n */\n extractText(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractText', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractText', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getTextSlices}\n *\n * @public\n */\n getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getTextSlices', doc, slices);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getTextSlices', [doc, slices]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGlyphs}\n *\n * @public\n */\n getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGlyphs', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfGlyphObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGlyphs', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGeometry}\n *\n * @public\n */\n getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGeometry', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageGeometry>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGeometry', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.merge}\n *\n * @public\n */\n merge(files: PdfFile[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'merge', files);\n const fileIds = files.map((file) => file.id).join('.');\n const requestId = this.generateRequestId(fileIds);\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'merge', [files]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.mergePages}\n *\n * @public\n */\n mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'mergePages', mergeConfigs);\n const requestId = this.generateRequestId(mergeConfigs.map((config) => config.docId).join('.'));\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'mergePages', [mergeConfigs]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.preparePrintDocument}\n *\n * @public\n */\n preparePrintDocument(doc: PdfDocumentObject, options?: PdfPrintOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'preparePrintDocument', doc, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'preparePrintDocument', [\n doc,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeDocument}\n *\n * @public\n */\n closeDocument(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeDocument', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'closeDocument', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeAllDocuments}\n *\n * @public\n */\n closeAllDocuments() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeAllDocuments');\n const requestId = this.generateRequestId('closeAllDocuments');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n const request: ExecuteRequest = createRequest(requestId, 'closeAllDocuments', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * Send the request to webworker inside and register the task\n * @param task - task that waiting for the response\n * @param request - request that needs send to web worker\n * @param transferables - transferables that need to transfer to webworker\n * @returns\n *\n * @internal\n */\n proxy<R>(task: WorkerTask<R>, request: ExecuteRequest, transferables: any[] = []) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'send request to worker',\n task,\n request,\n transferables,\n );\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'Begin', request.id);\n this.readyTask.wait(\n () => {\n this.worker.postMessage(request, transferables);\n task.wait(\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n );\n this.tasks.set(request.id, task);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n task.reject({\n code: PdfErrorCode.Initialization,\n message: 'worker initialization failed',\n });\n },\n );\n }\n}\n"],"names":["LOG_SOURCE","LOG_CATEGORY","createRequest","id","name","args","type","data","WorkerTask","Task","constructor","worker","messageId","super","this","abort","e","postMessage","progress","p","_WebWorkerEngine","logger","NoopLogger","tasks","Map","handle","evt","debug","response","task","get","readyTask","resolve","value","reject","reason","delete","error","addEventListener","readyTaskId","set","generateRequestId","Date","now","Math","random","initialize","requestId","request","proxy","destroy","finish","removeEventListener","terminate","wait","openDocumentUrl","file","options","url","openDocumentBuffer","getMetadata","doc","setMetadata","metadata","getDocPermissions","getDocUserPermissions","getBookmarks","setBookmarks","payload","deleteBookmarks","getSignatures","renderPage","page","renderPageRect","rect","renderPageAnnotation","annotation","getAllAnnotations","getPageAnnotations","createPageAnnotation","context","updatePageAnnotation","removePageAnnotation","getPageTextRects","renderThumbnail","searchAllPages","keyword","saveAsCopy","getAttachments","addAttachment","params","removeAttachment","attachment","readAttachmentContent","setFormFieldValue","flattenPage","extractPages","pageIndexes","redactTextInRects","rects","extractText","getTextSlices","slices","getPageGlyphs","getPageGeometry","merge","files","fileIds","map","join","mergePages","mergeConfigs","config","docId","preparePrintDocument","closeDocument","closeAllDocuments","transferables","perf","code","PdfErrorCode","Initialization","message","WebWorkerEngine"],"mappings":"oHA4CMA,EAAa,kBACbC,EAAe,SASrB,SAASC,EACPC,EACAC,EACAC,GAEA,MAAO,CACLF,KACAG,KAAM,iBACNC,KAAM,CACJH,OACAC,QAGN,CAKO,MAAMG,UAAmCC,EAAAA,KAQ9C,WAAAC,CACSC,EACCC,GAERC,QAHOC,KAAAH,OAAAA,EACCG,KAAAF,UAAAA,CAGV,CAOA,KAAAG,CAAMC,GACJH,MAAME,MAAMC,GAEZF,KAAKH,OAAOM,YAAY,CACtBd,GAAIW,KAAKF,UACTN,KAAM,gBAEV,CAOA,QAAAY,CAASC,GACPN,MAAMK,SAASC,EACjB,EAMK,MAAMC,EAAN,MAAMA,EAmBX,WAAAV,CACUC,EACAU,EAAiB,IAAIC,EAAAA,YADrBR,KAAAH,OAAAA,EACAG,KAAAO,OAAAA,EAZVP,KAAAS,UAA0CC,IA6B1CV,KAAAW,OAAUC,IACRZ,KAAKO,OAAOM,MACV3B,EACAC,EACA,4CACAyB,EAAInB,MAEN,IACE,MAAMqB,EAAWF,EAAInB,KACfsB,EAAOf,KAAKS,MAAMO,IAAIF,EAASzB,IACrC,IAAK0B,EACH,OAGF,OAAQD,EAAStB,MACf,IAAK,gBACHQ,KAAKiB,UAAUC,SAAQ,GACvB,MACF,IAAK,kBACHH,EAAKX,SAASU,EAASrB,MACvB,MACF,IAAK,kBAED,OAAQqB,EAASrB,KAAKD,MACpB,IAAK,SACHuB,EAAKG,QAAQJ,EAASrB,KAAK0B,OAC3B,MACF,IAAK,QACHJ,EAAKK,OAAON,EAASrB,KAAK0B,MAAME,QAGpCrB,KAAKS,MAAMa,OAAOR,EAASzB,IAInC,OAASa,GACPF,KAAKO,OAAOgB,MAAMrC,EAAYC,EAAc,8CAA+Ce,EAC7F,GApDAF,KAAKH,OAAO2B,iBAAiB,UAAWxB,KAAKW,QAE7CX,KAAKiB,UAAY,IAAIvB,EAAoBM,KAAKH,OAAQS,EAAgBmB,aACtEzB,KAAKS,MAAMiB,IAAIpB,EAAgBmB,YAAazB,KAAKiB,UACnD,CAyDA,iBAAAU,CAAkBtC,GAChB,MAAO,GAAGA,KAAMuC,KAAKC,SAASC,KAAKC,UACrC,CAOA,UAAAC,GACEhC,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,cAC5C,MAAM8C,EAAYjC,KAAK2B,kBAAkB,WACnCZ,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,aAAc,IAGvE,OAFAjC,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,OAAAqB,GACEpC,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,WAC5C,MAAM8C,EAAYjC,KAAK2B,kBAAkB,WACnCZ,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CI,EAAS,KACbrC,KAAKH,OAAOyC,oBAAoB,UAAWtC,KAAKW,QAChDX,KAAKH,OAAO0C,aAGdxB,EAAKyB,KAAKH,EAAQA,GAElB,MAAMH,EAA0B9C,EAAc6C,EAAW,UAAW,IAGpE,OAFAjC,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,eAAA0B,CAAgBC,EAAkBC,GAChC3C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,kBAAmBuD,EAAKE,IAAKD,GACzE,MAAMV,EAAYjC,KAAK2B,kBAAkBe,EAAKrD,IACxC0B,EAAO,IAAIrB,EAA8BM,KAAKH,OAAQoC,GAEtDC,EAA0B9C,EAAc6C,EAAW,kBAAmB,CAACS,EAAMC,IAGnF,OAFA3C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,kBAAA8B,CAAmBH,EAAeC,GAChC3C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,qBAAsBuD,EAAMC,GACxE,MAAMV,EAAYjC,KAAK2B,kBAAkBe,EAAKrD,IACxC0B,EAAO,IAAIrB,EAA8BM,KAAKH,OAAQoC,GAEtDC,EAA0B9C,EAAc6C,EAAW,qBAAsB,CAACS,EAAMC,IAGtF,OAFA3C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,WAAA+B,CAAYC,GACV/C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,cAAe4D,GAC3D,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAA8BM,KAAKH,OAAQoC,GAEtDC,EAA0B9C,EAAc6C,EAAW,cAAe,CAACc,IAGzE,OAFA/C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,WAAAiC,CAAYD,EAAwBE,GAClCjD,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,cAAe4D,EAAKE,GAChE,MAAMhB,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,cAAe,CAACc,EAAKE,IAG9E,OAFAjD,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,iBAAAmC,CAAkBH,GAChB/C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,oBAAqB4D,GACjE,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAmBM,KAAKH,OAAQoC,GAE3CC,EAA0B9C,EAAc6C,EAAW,oBAAqB,CAACc,IAG/E,OAFA/C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,qBAAAoC,CAAsBJ,GACpB/C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,wBAAyB4D,GACrE,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAmBM,KAAKH,OAAQoC,GAE3CC,EAA0B9C,EAAc6C,EAAW,wBAAyB,CAACc,IAGnF,OAFA/C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,YAAAqC,CAAaL,GACX/C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,eAAgB4D,GAC5D,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAA+BM,KAAKH,OAAQoC,GAEvDC,EAA0B9C,EAAc6C,EAAW,eAAgB,CAACc,IAG1E,OAFA/C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,YAAAsC,CAAaN,EAAwBO,GACnCtD,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,eAAgB4D,EAAKO,GACjE,MAAMrB,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,eAAgB,CAACc,EAAKO,IAG/E,OAFAtD,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,eAAAwC,CAAgBR,GACd/C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,kBAAmB4D,GAC/D,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,kBAAmB,CAACc,IAG7E,OAFA/C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,aAAAyC,CAAcT,GACZ/C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,gBAAiB4D,GAC7D,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAiCM,KAAKH,OAAQoC,GAEzDC,EAA0B9C,EAAc6C,EAAW,gBAAiB,CAACc,IAG3E,OAFA/C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,UAAA0C,CAAWV,EAAwBW,EAAqBf,GACtD3C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,aAAc4D,EAAKW,EAAMf,GACrE,MAAMV,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAiBM,KAAKH,OAAQoC,GAEzCC,EAA0B9C,EAAc6C,EAAW,aAAc,CAACc,EAAKW,EAAMf,IAGnF,OAFA3C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,cAAA4C,CACEZ,EACAW,EACAE,EACAjB,GAEA3C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,iBAAkB4D,EAAKW,EAAME,EAAMjB,GAC/E,MAAMV,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAiBM,KAAKH,OAAQoC,GAEzCC,EAA0B9C,EAAc6C,EAAW,iBAAkB,CACzEc,EACAW,EACAE,EACAjB,IAIF,OAFA3C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,oBAAA8C,CACEd,EACAW,EACAI,EACAnB,GAEA3C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,mBAAoB4D,EAAKW,EAAMI,EAAYnB,GACvF,MAAMV,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAiBM,KAAKH,OAAQoC,GAEzCC,EAA0B9C,EAAc6C,EAAW,uBAAwB,CAC/Ec,EACAW,EACAI,EACAnB,IAIF,OAFA3C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,iBAAAgD,CAAkBhB,GAChB/C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,oBAAqB4D,GACjE,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IAEvC0B,EAAO,IAAIrB,EACfM,KAAKH,OACLoC,GAGIC,EAA0B9C,EAAc6C,EAAW,oBAAqB,CAACc,IAG/E,OAFA/C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,kBAAAiD,CAAmBjB,EAAwBW,GACzC1D,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,qBAAsB4D,EAAKW,GACvE,MAAMzB,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAkCM,KAAKH,OAAQoC,GAE1DC,EAA0B9C,EAAc6C,EAAW,qBAAsB,CAACc,EAAKW,IAGrF,OAFA1D,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,oBAAAkD,CACElB,EACAW,EACAI,EACAI,GAEAlE,KAAKO,OAAOM,MACV3B,EACAC,EACA,wBACA4D,EACAW,EACAI,EACAI,GAEF,MAAMjC,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAmBM,KAAKH,OAAQoC,GAE3CC,EAA0B9C,EAAc6C,EAAW,uBAAwB,CAC/Ec,EACAW,EACAI,EACAI,IAIF,OAFAlE,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAEA,oBAAAoD,CACEpB,EACAW,EACAI,GAEA9D,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,uBAAwB4D,EAAKW,EAAMI,GAC/E,MAAM7B,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,uBAAwB,CAC/Ec,EACAW,EACAI,IAIF,OAFA9D,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,oBAAAqD,CACErB,EACAW,EACAI,GAEA9D,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,wBAAyB4D,EAAKW,EAAMI,GAChF,MAAM7B,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,uBAAwB,CAC/Ec,EACAW,EACAI,IAIF,OAFA9D,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,gBAAAsD,CAAiBtB,EAAwBW,GACvC1D,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,mBAAoB4D,EAAKW,GACrE,MAAMzB,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAgCM,KAAKH,OAAQoC,GAExDC,EAA0B9C,EAAc6C,EAAW,mBAAoB,CAACc,EAAKW,IAGnF,OAFA1D,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,eAAAuD,CACEvB,EACAW,EACAf,GAEA3C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,kBAAmB4D,EAAKW,EAAMf,GAC1E,MAAMV,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAiBM,KAAKH,OAAQoC,GAEzCC,EAA0B9C,EAAc6C,EAAW,kBAAmB,CAC1Ec,EACAW,EACAf,IAIF,OAFA3C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,cAAAwD,CAAexB,EAAwByB,EAAiB7B,GACtD3C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,iBAAkB4D,EAAKyB,EAAS7B,GAE5E,MAAMV,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EACfM,KAAKH,OACLoC,GAGIC,EAA0B9C,EAAc6C,EAAW,iBAAkB,CACzEc,EACAyB,EACA7B,IAIF,OADA3C,KAAKmC,MAAMpB,EAAMmB,GACVnB,CACT,CAOA,UAAA0D,CAAW1B,GACT/C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,aAAc4D,GAC1D,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAwBM,KAAKH,OAAQoC,GAEhDC,EAA0B9C,EAAc6C,EAAW,aAAc,CAACc,IAGxE,OAFA/C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,cAAA2D,CAAe3B,GACb/C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,iBAAkB4D,GAC9D,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAkCM,KAAKH,OAAQoC,GAE1DC,EAA0B9C,EAAc6C,EAAW,iBAAkB,CAACc,IAG5E,OAFA/C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,aAAA4D,CAAc5B,EAAwB6B,GACpC5E,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,gBAAiB4D,EAAK6B,GAClE,MAAM3C,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,gBAAiB,CAACc,EAAK6B,IAGhF,OAFA5E,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,gBAAA8D,CAAiB9B,EAAwB+B,GACvC9E,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,mBAAoB4D,EAAK+B,GACrE,MAAM7C,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,mBAAoB,CAACc,EAAK+B,IAGnF,OAFA9E,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,qBAAAgE,CAAsBhC,EAAwB+B,GAC5C9E,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,wBAAyB4D,EAAK+B,GAC1E,MAAM7C,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAwBM,KAAKH,OAAQoC,GAEhDC,EAA0B9C,EAAc6C,EAAW,wBAAyB,CAChFc,EACA+B,IAIF,OAFA9E,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,iBAAAiE,CACEjC,EACAW,EACAI,EACA3C,GAEAnB,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,oBAAqB4D,EAAKe,EAAY3C,GAClF,MAAMc,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,oBAAqB,CAC5Ec,EACAW,EACAI,EACA3C,IAIF,OAFAnB,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,WAAAkE,CAAYlC,EAAwBW,EAAqBf,GACvD3C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,cAAe4D,EAAKW,EAAMf,GACtE,MAAMV,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAiCM,KAAKH,OAAQoC,GAEzDC,EAA0B9C,EAAc6C,EAAW,cAAe,CAACc,EAAKW,EAAMf,IAGpF,OAFA3C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,YAAAmE,CAAanC,EAAwBoC,GACnCnF,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,eAAgB4D,GAC5D,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAwBM,KAAKH,OAAQoC,GAEhDC,EAA0B9C,EAAc6C,EAAW,eAAgB,CAACc,EAAKoC,IAG/E,OAFAnF,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,iBAAAqE,CACErC,EACAW,EACA2B,EACA1C,GAEA3C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,oBAAqB4D,EAAKW,EAAM2B,EAAO1C,GACnF,MAAMV,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,oBAAqB,CAC5Ec,EACAW,EACA2B,EACA1C,IAIF,OAFA3C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,WAAAuE,CAAYvC,EAAwBoC,GAClCnF,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,cAAe4D,GAC3D,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAmBM,KAAKH,OAAQoC,GAE3CC,EAA0B9C,EAAc6C,EAAW,cAAe,CAACc,EAAKoC,IAG9E,OAFAnF,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,aAAAwE,CAAcxC,EAAwByC,GACpCxF,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,gBAAiB4D,EAAKyC,GAClE,MAAMvD,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAqBM,KAAKH,OAAQoC,GAE7CC,EAA0B9C,EAAc6C,EAAW,gBAAiB,CAACc,EAAKyC,IAGhF,OAFAxF,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,aAAA0E,CAAc1C,EAAwBW,GACpC1D,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,gBAAiB4D,EAAKW,GAClE,MAAMzB,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAA6BM,KAAKH,OAAQoC,GAErDC,EAA0B9C,EAAc6C,EAAW,gBAAiB,CAACc,EAAKW,IAGhF,OAFA1D,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,eAAA2E,CAAgB3C,EAAwBW,GACtC1D,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,kBAAmB4D,EAAKW,GACpE,MAAMzB,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAA4BM,KAAKH,OAAQoC,GAEpDC,EAA0B9C,EAAc6C,EAAW,kBAAmB,CAACc,EAAKW,IAGlF,OAFA1D,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,KAAA4E,CAAMC,GACJ5F,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,QAASyG,GACrD,MAAMC,EAAUD,EAAME,IAAKpD,GAASA,EAAKrD,IAAI0G,KAAK,KAC5C9D,EAAYjC,KAAK2B,kBAAkBkE,GACnC9E,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,QAAS,CAAC2D,IAGnE,OAFA5F,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,UAAAiF,CAAWC,GACTjG,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,aAAc8G,GAC1D,MAAMhE,EAAYjC,KAAK2B,kBAAkBsE,EAAaH,IAAKI,GAAWA,EAAOC,OAAOJ,KAAK,MACnFhF,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,aAAc,CAACgE,IAGxE,OAFAjG,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,oBAAAqF,CAAqBrD,EAAwBJ,GAC3C3C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,uBAAwB4D,EAAKJ,GACzE,MAAMV,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAwBM,KAAKH,OAAQoC,GAEhDC,EAA0B9C,EAAc6C,EAAW,uBAAwB,CAC/Ec,EACAJ,IAIF,OAFA3C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,aAAAsF,CAActD,GACZ/C,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,gBAAiB4D,GAC7D,MAAMd,EAAYjC,KAAK2B,kBAAkBoB,EAAI1D,IACvC0B,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAE5CC,EAA0B9C,EAAc6C,EAAW,gBAAiB,CAACc,IAG3E,OAFA/C,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAOA,iBAAAuF,GACEtG,KAAKO,OAAOM,MAAM3B,EAAYC,EAAc,qBAC5C,MAAM8C,EAAYjC,KAAK2B,kBAAkB,qBACnCZ,EAAO,IAAIrB,EAAoBM,KAAKH,OAAQoC,GAC5CC,EAA0B9C,EAAc6C,EAAW,oBAAqB,IAG9E,OAFAjC,KAAKmC,MAAMpB,EAAMmB,GAEVnB,CACT,CAWA,KAAAoB,CAASpB,EAAqBmB,EAAyBqE,EAAuB,IAC5EvG,KAAKO,OAAOM,MACV3B,EACAC,EACA,yBACA4B,EACAmB,EACAqE,GAEFvG,KAAKO,OAAOiG,KAAKtH,EAAYC,EAAc,GAAG+C,EAAQzC,KAAKH,OAAQ,QAAS4C,EAAQ7C,IACpFW,KAAKiB,UAAUuB,KACb,KACExC,KAAKH,OAAOM,YAAY+B,EAASqE,GACjCxF,EAAKyB,KACH,KACExC,KAAKO,OAAOiG,KAAKtH,EAAYC,EAAc,GAAG+C,EAAQzC,KAAKH,OAAQ,MAAO4C,EAAQ7C,KAEpF,KACEW,KAAKO,OAAOiG,KAAKtH,EAAYC,EAAc,GAAG+C,EAAQzC,KAAKH,OAAQ,MAAO4C,EAAQ7C,MAGtFW,KAAKS,MAAMiB,IAAIQ,EAAQ7C,GAAI0B,IAE7B,KACEf,KAAKO,OAAOiG,KAAKtH,EAAYC,EAAc,GAAG+C,EAAQzC,KAAKH,OAAQ,MAAO4C,EAAQ7C,IAClF0B,EAAKK,OAAO,CACVqF,KAAMC,EAAAA,aAAaC,eACnBC,QAAS,kCAIjB,GAr3BAtG,EAAOmB,YAAc,IADhB,IAAMoF,EAANvG"}
@@ -1,4 +1,4 @@
1
- import { NoopLogger, PdfErrorCode, Task } from "@embedpdf/models";
1
+ import { Task, NoopLogger, PdfErrorCode } from "@embedpdf/models";
2
2
  const LOG_SOURCE = "WebWorkerEngine";
3
3
  const LOG_CATEGORY = "Engine";
4
4
  function createRequest(id, name, args) {
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sources":["../../../src/lib/webworker/engine.ts"],"sourcesContent":["import {\n FormFieldValue,\n PdfAttachmentObject,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenResult,\n SearchAllPagesResult,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PageTextSlice,\n AnnotationCreateContext,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n PdfPageSearchProgress,\n PdfRenderThumbnailOptions,\n PdfSearchAllPagesOptions,\n PdfFlattenPageOptions,\n PdfRedactTextOptions,\n PdfRenderPageAnnotationOptions,\n PdfRenderPageOptions,\n PdfOpenDocumentUrlOptions,\n PdfOpenDocumentBufferOptions,\n PdfAnnotationsProgress,\n PdfPrintOptions,\n PdfBookmarkObject,\n PdfAddAttachmentParams,\n} from '@embedpdf/models';\nimport { ExecuteRequest, Response, SpecificExecuteRequest } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Create a request for the webworker\n * @param id - id of the request\n * @param name - name of the method\n * @param args - arguments of the method\n * @returns request\n */\nfunction createRequest<M extends PdfEngineMethodName>(\n id: string,\n name: M,\n args: PdfEngineMethodArgs<M>,\n): SpecificExecuteRequest<M> {\n return {\n id,\n type: 'ExecuteRequest',\n data: {\n name,\n args,\n },\n };\n}\n\n/**\n * Task that executed by webworker\n */\nexport class WorkerTask<R, P = unknown> extends Task<R, PdfErrorReason, P> {\n /**\n * Create a task that bind to web worker with specified message id\n * @param worker - web worker instance\n * @param messageId - id of message\n *\n * @public\n */\n constructor(\n public worker: Worker,\n private messageId: string,\n ) {\n super();\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.abort}\n *\n * @override\n */\n abort(e: PdfErrorReason) {\n super.abort(e);\n\n this.worker.postMessage({\n id: this.messageId,\n type: 'AbortRequest',\n });\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.progress}\n *\n * @override\n */\n progress(p: P) {\n super.progress(p);\n }\n}\n\n/**\n * PDF engine that runs within webworker\n */\nexport class WebWorkerEngine implements PdfEngine {\n static readyTaskId = '0';\n /**\n * Task that represent the state of preparation\n */\n readyTask: WorkerTask<boolean>;\n /**\n * All the tasks that is executing\n */\n tasks: Map<string, WorkerTask<any>> = new Map();\n\n /**\n * Create an instance of WebWorkerEngine, it will create a worker with\n * specified url.\n * @param worker - webworker instance, this worker needs to contains the running instance of {@link EngineRunner}\n * @param logger - logger instance\n *\n * @public\n */\n constructor(\n private worker: Worker,\n private logger: Logger = new NoopLogger(),\n ) {\n this.worker.addEventListener('message', this.handle);\n\n this.readyTask = new WorkerTask<boolean>(this.worker, WebWorkerEngine.readyTaskId);\n this.tasks.set(WebWorkerEngine.readyTaskId, this.readyTask);\n }\n\n /**\n * Handle event from web worker. There are 2 kinds of event\n * 1. ReadyResponse: web worker is ready\n * 2. ExecuteResponse: result of execution\n * @param evt - message event from web worker\n * @returns\n *\n * @private\n */\n handle = (evt: MessageEvent<any>) => {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker engine start handling message: ',\n evt.data,\n );\n try {\n const response = evt.data as Response;\n const task = this.tasks.get(response.id);\n if (!task) {\n return;\n }\n\n switch (response.type) {\n case 'ReadyResponse':\n this.readyTask.resolve(true);\n break;\n case 'ExecuteProgress':\n task.progress(response.data);\n break;\n case 'ExecuteResponse':\n {\n switch (response.data.type) {\n case 'result':\n task.resolve(response.data.value);\n break;\n case 'error':\n task.reject(response.data.value.reason);\n break;\n }\n this.tasks.delete(response.id);\n }\n break;\n }\n } catch (e) {\n this.logger.error(LOG_SOURCE, LOG_CATEGORY, 'webworker met error when handling message: ', e);\n }\n };\n\n /**\n * Generate a unique message id\n * @returns message id\n *\n * @private\n */\n generateRequestId(id: string) {\n return `${id}.${Date.now()}.${Math.random()}`;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.initialize}\n *\n * @public\n */\n initialize() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'initialize');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'initialize', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.destroy}\n *\n * @public\n */\n destroy() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'destroy');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const finish = () => {\n this.worker.removeEventListener('message', this.handle);\n this.worker.terminate();\n };\n\n task.wait(finish, finish);\n\n const request: ExecuteRequest = createRequest(requestId, 'destroy', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}\n *\n * @public\n */\n openDocumentUrl(file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentUrl', file.url, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentUrl', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}\n *\n * @public\n */\n openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentBuffer', file, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentBuffer', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}\n *\n * @public\n */\n getMetadata(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getMetadata', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfMetadataObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getMetadata', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setMetadata}\n *\n * @public\n */\n setMetadata(doc: PdfDocumentObject, metadata: Partial<PdfMetadataObject>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setMetadata', doc, metadata);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setMetadata', [doc, metadata]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocPermissions}\n *\n * @public\n */\n getDocPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocUserPermissions}\n *\n * @public\n */\n getDocUserPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocUserPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocUserPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getBookmarks}\n *\n * @public\n */\n getBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfBookmarksObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setBookmarks}\n *\n * @public\n */\n setBookmarks(doc: PdfDocumentObject, payload: PdfBookmarkObject[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setBookmarks', doc, payload);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setBookmarks', [doc, payload]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.deleteBookmarks}\n *\n * @public\n */\n deleteBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'deleteBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'deleteBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getSignatures}\n *\n * @public\n */\n getSignatures(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getSignatures', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfSignatureObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getSignatures', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPage}\n *\n * @public\n */\n renderPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}\n *\n * @public\n */\n renderPageRect(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rect: Rect,\n options?: PdfRenderPageOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRect', doc, page, rect, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRect', [\n doc,\n page,\n rect,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}\n *\n * @public\n */\n renderPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n options?: PdfRenderPageAnnotationOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderAnnotation', doc, page, annotation, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotation', [\n doc,\n page,\n annotation,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}\n *\n * @public\n */\n getAllAnnotations(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAllAnnotations', doc);\n const requestId = this.generateRequestId(doc.id);\n\n const task = new WorkerTask<Record<number, PdfAnnotationObject[]>, PdfAnnotationsProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'getAllAnnotations', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}\n *\n * @public\n */\n getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnotations', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAnnotationObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageAnnotations', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}\n *\n * @public\n */\n createPageAnnotation<A extends PdfAnnotationObject>(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: A,\n context?: AnnotationCreateContext<A>,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'createPageAnnotations',\n doc,\n page,\n annotation,\n context,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'createPageAnnotation', [\n doc,\n page,\n annotation,\n context,\n ] as PdfEngineMethodArgs<'createPageAnnotation'>);\n this.proxy(task, request);\n\n return task;\n }\n\n updatePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'updatePageAnnotation', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'updatePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}\n *\n * @public\n */\n removePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removePageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}\n *\n * @public\n */\n getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageTextRects', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRects', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}\n *\n * @public\n */\n renderThumbnail(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n options?: PdfRenderThumbnailOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderThumbnail', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderThumbnail', [\n doc,\n page,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}\n *\n * @public\n */\n searchAllPages(doc: PdfDocumentObject, keyword: string, options?: PdfSearchAllPagesOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages', doc, keyword, options);\n\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<SearchAllPagesResult, PdfPageSearchProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'searchAllPages', [\n doc,\n keyword,\n options,\n ]);\n\n this.proxy(task, request);\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}\n *\n * @public\n */\n saveAsCopy(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'saveAsCopy', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'saveAsCopy', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}\n *\n * @public\n */\n getAttachments(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAttachments', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAttachmentObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getAttachments', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.addAttachment}\n *\n * @public\n */\n addAttachment(doc: PdfDocumentObject, params: PdfAddAttachmentParams) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'addAttachment', doc, params);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'addAttachment', [doc, params]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removeAttachment}\n *\n * @public\n */\n removeAttachment(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removeAttachment', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removeAttachment', [doc, attachment]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.readAttachmentContent}\n *\n * @public\n */\n readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'readAttachmentContent', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'readAttachmentContent', [\n doc,\n attachment,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldValue}\n *\n * @public\n */\n setFormFieldValue(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n value: FormFieldValue,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldValue', doc, annotation, value);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setFormFieldValue', [\n doc,\n page,\n annotation,\n value,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}\n *\n * @public\n */\n flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageFlattenResult>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'flattenPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}\n *\n * @public\n */\n extractPages(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractPages', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractPages', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.redactTextInQuads}\n *\n * @public\n */\n redactTextInRects(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rects: Rect[],\n options?: PdfRedactTextOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'redactTextInRects', doc, page, rects, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'redactTextInRects', [\n doc,\n page,\n rects,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractText}\n *\n * @public\n */\n extractText(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractText', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractText', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getTextSlices}\n *\n * @public\n */\n getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getTextSlices', doc, slices);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getTextSlices', [doc, slices]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGlyphs}\n *\n * @public\n */\n getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGlyphs', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfGlyphObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGlyphs', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGeometry}\n *\n * @public\n */\n getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGeometry', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageGeometry>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGeometry', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.merge}\n *\n * @public\n */\n merge(files: PdfFile[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'merge', files);\n const fileIds = files.map((file) => file.id).join('.');\n const requestId = this.generateRequestId(fileIds);\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'merge', [files]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.mergePages}\n *\n * @public\n */\n mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'mergePages', mergeConfigs);\n const requestId = this.generateRequestId(mergeConfigs.map((config) => config.docId).join('.'));\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'mergePages', [mergeConfigs]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.preparePrintDocument}\n *\n * @public\n */\n preparePrintDocument(doc: PdfDocumentObject, options?: PdfPrintOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'preparePrintDocument', doc, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'preparePrintDocument', [\n doc,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeDocument}\n *\n * @public\n */\n closeDocument(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeDocument', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'closeDocument', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeAllDocuments}\n *\n * @public\n */\n closeAllDocuments() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeAllDocuments');\n const requestId = this.generateRequestId('closeAllDocuments');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n const request: ExecuteRequest = createRequest(requestId, 'closeAllDocuments', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * Send the request to webworker inside and register the task\n * @param task - task that waiting for the response\n * @param request - request that needs send to web worker\n * @param transferables - transferables that need to transfer to webworker\n * @returns\n *\n * @internal\n */\n proxy<R>(task: WorkerTask<R>, request: ExecuteRequest, transferables: any[] = []) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'send request to worker',\n task,\n request,\n transferables,\n );\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'Begin', request.id);\n this.readyTask.wait(\n () => {\n this.worker.postMessage(request, transferables);\n task.wait(\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n );\n this.tasks.set(request.id, task);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n task.reject({\n code: PdfErrorCode.Initialization,\n message: 'worker initialization failed',\n });\n },\n );\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sources":["../../../src/lib/webworker/engine.ts"],"sourcesContent":["import {\n FormFieldValue,\n PdfAttachmentObject,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenResult,\n SearchAllPagesResult,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PageTextSlice,\n AnnotationCreateContext,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n PdfPageSearchProgress,\n PdfRenderThumbnailOptions,\n PdfSearchAllPagesOptions,\n PdfFlattenPageOptions,\n PdfRedactTextOptions,\n PdfRenderPageAnnotationOptions,\n PdfRenderPageOptions,\n PdfOpenDocumentUrlOptions,\n PdfOpenDocumentBufferOptions,\n PdfAnnotationsProgress,\n PdfPrintOptions,\n PdfBookmarkObject,\n PdfAddAttachmentParams,\n} from '@embedpdf/models';\nimport { ExecuteRequest, Response, SpecificExecuteRequest } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Create a request for the webworker\n * @param id - id of the request\n * @param name - name of the method\n * @param args - arguments of the method\n * @returns request\n */\nfunction createRequest<M extends PdfEngineMethodName>(\n id: string,\n name: M,\n args: PdfEngineMethodArgs<M>,\n): SpecificExecuteRequest<M> {\n return {\n id,\n type: 'ExecuteRequest',\n data: {\n name,\n args,\n },\n };\n}\n\n/**\n * Task that executed by webworker\n */\nexport class WorkerTask<R, P = unknown> extends Task<R, PdfErrorReason, P> {\n /**\n * Create a task that bind to web worker with specified message id\n * @param worker - web worker instance\n * @param messageId - id of message\n *\n * @public\n */\n constructor(\n public worker: Worker,\n private messageId: string,\n ) {\n super();\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.abort}\n *\n * @override\n */\n abort(e: PdfErrorReason) {\n super.abort(e);\n\n this.worker.postMessage({\n id: this.messageId,\n type: 'AbortRequest',\n });\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.progress}\n *\n * @override\n */\n progress(p: P) {\n super.progress(p);\n }\n}\n\n/**\n * PDF engine that runs within webworker\n */\nexport class WebWorkerEngine implements PdfEngine {\n static readyTaskId = '0';\n /**\n * Task that represent the state of preparation\n */\n readyTask: WorkerTask<boolean>;\n /**\n * All the tasks that is executing\n */\n tasks: Map<string, WorkerTask<any>> = new Map();\n\n /**\n * Create an instance of WebWorkerEngine, it will create a worker with\n * specified url.\n * @param worker - webworker instance, this worker needs to contains the running instance of {@link EngineRunner}\n * @param logger - logger instance\n *\n * @public\n */\n constructor(\n private worker: Worker,\n private logger: Logger = new NoopLogger(),\n ) {\n this.worker.addEventListener('message', this.handle);\n\n this.readyTask = new WorkerTask<boolean>(this.worker, WebWorkerEngine.readyTaskId);\n this.tasks.set(WebWorkerEngine.readyTaskId, this.readyTask);\n }\n\n /**\n * Handle event from web worker. There are 2 kinds of event\n * 1. ReadyResponse: web worker is ready\n * 2. ExecuteResponse: result of execution\n * @param evt - message event from web worker\n * @returns\n *\n * @private\n */\n handle = (evt: MessageEvent<any>) => {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker engine start handling message: ',\n evt.data,\n );\n try {\n const response = evt.data as Response;\n const task = this.tasks.get(response.id);\n if (!task) {\n return;\n }\n\n switch (response.type) {\n case 'ReadyResponse':\n this.readyTask.resolve(true);\n break;\n case 'ExecuteProgress':\n task.progress(response.data);\n break;\n case 'ExecuteResponse':\n {\n switch (response.data.type) {\n case 'result':\n task.resolve(response.data.value);\n break;\n case 'error':\n task.reject(response.data.value.reason);\n break;\n }\n this.tasks.delete(response.id);\n }\n break;\n }\n } catch (e) {\n this.logger.error(LOG_SOURCE, LOG_CATEGORY, 'webworker met error when handling message: ', e);\n }\n };\n\n /**\n * Generate a unique message id\n * @returns message id\n *\n * @private\n */\n generateRequestId(id: string) {\n return `${id}.${Date.now()}.${Math.random()}`;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.initialize}\n *\n * @public\n */\n initialize() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'initialize');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'initialize', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.destroy}\n *\n * @public\n */\n destroy() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'destroy');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const finish = () => {\n this.worker.removeEventListener('message', this.handle);\n this.worker.terminate();\n };\n\n task.wait(finish, finish);\n\n const request: ExecuteRequest = createRequest(requestId, 'destroy', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}\n *\n * @public\n */\n openDocumentUrl(file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentUrl', file.url, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentUrl', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}\n *\n * @public\n */\n openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentBuffer', file, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentBuffer', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}\n *\n * @public\n */\n getMetadata(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getMetadata', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfMetadataObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getMetadata', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setMetadata}\n *\n * @public\n */\n setMetadata(doc: PdfDocumentObject, metadata: Partial<PdfMetadataObject>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setMetadata', doc, metadata);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setMetadata', [doc, metadata]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocPermissions}\n *\n * @public\n */\n getDocPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocUserPermissions}\n *\n * @public\n */\n getDocUserPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocUserPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocUserPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getBookmarks}\n *\n * @public\n */\n getBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfBookmarksObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setBookmarks}\n *\n * @public\n */\n setBookmarks(doc: PdfDocumentObject, payload: PdfBookmarkObject[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setBookmarks', doc, payload);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setBookmarks', [doc, payload]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.deleteBookmarks}\n *\n * @public\n */\n deleteBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'deleteBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'deleteBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getSignatures}\n *\n * @public\n */\n getSignatures(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getSignatures', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfSignatureObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getSignatures', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPage}\n *\n * @public\n */\n renderPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}\n *\n * @public\n */\n renderPageRect(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rect: Rect,\n options?: PdfRenderPageOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRect', doc, page, rect, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRect', [\n doc,\n page,\n rect,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}\n *\n * @public\n */\n renderPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n options?: PdfRenderPageAnnotationOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderAnnotation', doc, page, annotation, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotation', [\n doc,\n page,\n annotation,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}\n *\n * @public\n */\n getAllAnnotations(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAllAnnotations', doc);\n const requestId = this.generateRequestId(doc.id);\n\n const task = new WorkerTask<Record<number, PdfAnnotationObject[]>, PdfAnnotationsProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'getAllAnnotations', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}\n *\n * @public\n */\n getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnotations', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAnnotationObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageAnnotations', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}\n *\n * @public\n */\n createPageAnnotation<A extends PdfAnnotationObject>(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: A,\n context?: AnnotationCreateContext<A>,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'createPageAnnotations',\n doc,\n page,\n annotation,\n context,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'createPageAnnotation', [\n doc,\n page,\n annotation,\n context,\n ] as PdfEngineMethodArgs<'createPageAnnotation'>);\n this.proxy(task, request);\n\n return task;\n }\n\n updatePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'updatePageAnnotation', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'updatePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}\n *\n * @public\n */\n removePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removePageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}\n *\n * @public\n */\n getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageTextRects', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRects', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}\n *\n * @public\n */\n renderThumbnail(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n options?: PdfRenderThumbnailOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderThumbnail', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderThumbnail', [\n doc,\n page,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}\n *\n * @public\n */\n searchAllPages(doc: PdfDocumentObject, keyword: string, options?: PdfSearchAllPagesOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages', doc, keyword, options);\n\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<SearchAllPagesResult, PdfPageSearchProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'searchAllPages', [\n doc,\n keyword,\n options,\n ]);\n\n this.proxy(task, request);\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}\n *\n * @public\n */\n saveAsCopy(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'saveAsCopy', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'saveAsCopy', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}\n *\n * @public\n */\n getAttachments(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAttachments', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAttachmentObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getAttachments', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.addAttachment}\n *\n * @public\n */\n addAttachment(doc: PdfDocumentObject, params: PdfAddAttachmentParams) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'addAttachment', doc, params);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'addAttachment', [doc, params]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removeAttachment}\n *\n * @public\n */\n removeAttachment(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removeAttachment', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removeAttachment', [doc, attachment]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.readAttachmentContent}\n *\n * @public\n */\n readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'readAttachmentContent', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'readAttachmentContent', [\n doc,\n attachment,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldValue}\n *\n * @public\n */\n setFormFieldValue(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n value: FormFieldValue,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldValue', doc, annotation, value);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setFormFieldValue', [\n doc,\n page,\n annotation,\n value,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}\n *\n * @public\n */\n flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageFlattenResult>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'flattenPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}\n *\n * @public\n */\n extractPages(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractPages', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractPages', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.redactTextInQuads}\n *\n * @public\n */\n redactTextInRects(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rects: Rect[],\n options?: PdfRedactTextOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'redactTextInRects', doc, page, rects, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'redactTextInRects', [\n doc,\n page,\n rects,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractText}\n *\n * @public\n */\n extractText(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractText', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractText', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getTextSlices}\n *\n * @public\n */\n getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getTextSlices', doc, slices);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getTextSlices', [doc, slices]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGlyphs}\n *\n * @public\n */\n getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGlyphs', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfGlyphObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGlyphs', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGeometry}\n *\n * @public\n */\n getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGeometry', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageGeometry>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGeometry', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.merge}\n *\n * @public\n */\n merge(files: PdfFile[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'merge', files);\n const fileIds = files.map((file) => file.id).join('.');\n const requestId = this.generateRequestId(fileIds);\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'merge', [files]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.mergePages}\n *\n * @public\n */\n mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'mergePages', mergeConfigs);\n const requestId = this.generateRequestId(mergeConfigs.map((config) => config.docId).join('.'));\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'mergePages', [mergeConfigs]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.preparePrintDocument}\n *\n * @public\n */\n preparePrintDocument(doc: PdfDocumentObject, options?: PdfPrintOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'preparePrintDocument', doc, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'preparePrintDocument', [\n doc,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeDocument}\n *\n * @public\n */\n closeDocument(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeDocument', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'closeDocument', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeAllDocuments}\n *\n * @public\n */\n closeAllDocuments() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeAllDocuments');\n const requestId = this.generateRequestId('closeAllDocuments');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n const request: ExecuteRequest = createRequest(requestId, 'closeAllDocuments', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * Send the request to webworker inside and register the task\n * @param task - task that waiting for the response\n * @param request - request that needs send to web worker\n * @param transferables - transferables that need to transfer to webworker\n * @returns\n *\n * @internal\n */\n proxy<R>(task: WorkerTask<R>, request: ExecuteRequest, transferables: any[] = []) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'send request to worker',\n task,\n request,\n transferables,\n );\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'Begin', request.id);\n this.readyTask.wait(\n () => {\n this.worker.postMessage(request, transferables);\n task.wait(\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n );\n this.tasks.set(request.id, task);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n task.reject({\n code: PdfErrorCode.Initialization,\n message: 'worker initialization failed',\n });\n },\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("preact/hooks"),r=require("preact"),t=require("@embedpdf/models"),n=require("preact/jsx-runtime"),i="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.4.1/dist/pdfium.wasm";const o=r.createContext(void 0);function s(){const r=e.useContext(o);if(void 0===r)throw new Error("useEngineContext must be used within a PdfEngineProvider");return r}exports.PdfEngineProvider=function({children:e,engine:r,isLoading:t,error:i}){const s={engine:r,isLoading:t,error:i};return n.jsx(o.Provider,{value:s,children:e})},exports.useEngine=function(){const{engine:e,error:r}=s();if(r)throw r;return e},exports.useEngineContext=s,exports.usePdfiumEngine=function(r){const{wasmUrl:n=i,worker:o=!0,logger:s}=r??{},[u,c]=e.useState(null),[d,a]=e.useState(!0),[l,p]=e.useState(null),g=e.useRef(null);return e.useEffect((()=>{let e=!1;return(async()=>{try{const{createPdfiumEngine:e}=o?await import("@embedpdf/engines/pdfium-worker-engine"):await import("@embedpdf/engines/pdfium-direct-engine"),r=await e(n,s);g.current=r,r.initialize().wait((()=>{c(r),a(!1)}),(e=>{p(new Error(e.reason.message)),a(!1)}))}catch(r){e||(p(r),a(!1))}})(),()=>{var r,n;e=!0,null==(n=null==(r=g.current)?void 0:r.closeAllDocuments)||n.call(r).wait((()=>{var e,r;null==(r=null==(e=g.current)?void 0:e.destroy)||r.call(e),g.current=null}),t.ignore)}}),[n,o,s]),{engine:u,isLoading:d,error:l}};
1
+ "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("preact/hooks"),r=require("preact"),t=require("@embedpdf/models"),n=require("preact/jsx-runtime"),i="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@2.0.0-next.0/dist/pdfium.wasm";const o=r.createContext(void 0);function s(){const r=e.useContext(o);if(void 0===r)throw new Error("useEngineContext must be used within a PdfEngineProvider");return r}exports.PdfEngineProvider=function({children:e,engine:r,isLoading:t,error:i}){const s={engine:r,isLoading:t,error:i};return n.jsx(o.Provider,{value:s,children:e})},exports.useEngine=function(){const{engine:e,error:r}=s();if(r)throw r;return e},exports.useEngineContext=s,exports.usePdfiumEngine=function(r){const{wasmUrl:n=i,worker:o=!0,logger:s}=r??{},[u,c]=e.useState(null),[d,a]=e.useState(!0),[l,p]=e.useState(null),g=e.useRef(null);return e.useEffect(()=>{let e=!1;return(async()=>{try{const{createPdfiumEngine:e}=o?await import("@embedpdf/engines/pdfium-worker-engine"):await import("@embedpdf/engines/pdfium-direct-engine"),r=await e(n,s);g.current=r,r.initialize().wait(()=>{c(r),a(!1)},e=>{p(new Error(e.reason.message)),a(!1)})}catch(r){e||(p(r),a(!1))}})(),()=>{var r,n;e=!0,null==(n=null==(r=g.current)?void 0:r.closeAllDocuments)||n.call(r).wait(()=>{var e,r;null==(r=null==(e=g.current)?void 0:e.destroy)||r.call(e),g.current=null},t.ignore)}},[n,o,s]),{engine:u,isLoading:d,error:l}};
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-pdfium-engine.ts","../../src/shared/context/pdf-engine-context.ts","../../src/shared/hooks/use-engine-context.ts","../../src/shared/components/pdf-engine-provider.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from '@framework';\nimport { ignore, Logger, PdfEngine } from '@embedpdf/models';\n\nconst defaultWasmUrl = `https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@__PDFIUM_VERSION__/dist/pdfium.wasm`;\n\ninterface UsePdfiumEngineProps {\n wasmUrl?: string;\n worker?: boolean;\n logger?: Logger;\n}\n\nexport function usePdfiumEngine(config?: UsePdfiumEngineProps) {\n const { wasmUrl = defaultWasmUrl, worker = true, logger } = config ?? {};\n\n const [engine, setEngine] = useState<PdfEngine | null>(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<Error | null>(null);\n const engineRef = useRef<PdfEngine | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n\n (async () => {\n try {\n const { createPdfiumEngine } = worker\n ? await import('@embedpdf/engines/pdfium-worker-engine')\n : await import('@embedpdf/engines/pdfium-direct-engine');\n\n const pdfEngine = await createPdfiumEngine(wasmUrl, logger);\n engineRef.current = pdfEngine;\n pdfEngine.initialize().wait(\n () => {\n setEngine(pdfEngine);\n setLoading(false);\n },\n (e) => {\n setError(new Error(e.reason.message));\n setLoading(false);\n },\n );\n } catch (e) {\n if (!cancelled) {\n setError(e as Error);\n setLoading(false);\n }\n }\n })();\n\n return () => {\n cancelled = true;\n engineRef.current?.closeAllDocuments?.().wait(() => {\n engineRef.current?.destroy?.();\n engineRef.current = null;\n }, ignore);\n };\n }, [wasmUrl, worker, logger]);\n\n return { engine, isLoading: loading, error };\n}\n","import { createContext } from '@framework';\nimport type { PdfEngine } from '@embedpdf/models';\n\nexport interface PdfEngineContextState {\n engine: PdfEngine | null;\n isLoading: boolean;\n error: Error | null;\n}\n\nexport const PdfEngineContext = createContext<PdfEngineContextState | undefined>(undefined);\n","import { useContext } from '@framework';\nimport { PdfEngineContext, PdfEngineContextState } from '../context';\n\n/**\n * Hook to access the PDF engine from context.\n * @returns The PDF engine context state\n * @throws Error if used outside of PdfEngineProvider\n */\nexport function useEngineContext(): PdfEngineContextState {\n const contextValue = useContext(PdfEngineContext);\n\n if (contextValue === undefined) {\n throw new Error('useEngineContext must be used within a PdfEngineProvider');\n }\n\n return contextValue;\n}\n\n/**\n * Hook to access the PDF engine, with a more convenient API.\n * @returns The PDF engine or null if loading/error\n */\nexport function useEngine() {\n const { engine, error } = useEngineContext();\n\n if (error) {\n throw error;\n }\n\n return engine;\n}\n","import { ReactNode } from '@framework';\nimport { PdfEngineContext } from '../context';\nimport type { PdfEngine } from '@embedpdf/models';\n\nexport interface PdfEngineProviderProps {\n children: ReactNode;\n engine: PdfEngine | null;\n isLoading: boolean;\n error: Error | null;\n}\n\n/**\n * Provider component that makes a PDF engine instance available\n * to all child components via context.\n *\n * This provider is completely engine-agnostic - it accepts any engine\n * and its loading state from the parent component.\n */\nexport function PdfEngineProvider({ children, engine, isLoading, error }: PdfEngineProviderProps) {\n const contextValue = {\n engine,\n isLoading,\n error,\n };\n\n return <PdfEngineContext.Provider value={contextValue}>{children}</PdfEngineContext.Provider>;\n}\n"],"names":["defaultWasmUrl","PdfEngineContext","createContext","useEngineContext","contextValue","useContext","Error","children","engine","isLoading","error","Provider","value","config","wasmUrl","worker","logger","setEngine","useState","loading","setLoading","setError","engineRef","useRef","useEffect","cancelled","createPdfiumEngine","import","pdfEngine","current","initialize","wait","e","reason","message","_b","_a","closeAllDocuments","call","destroy","ignore"],"mappings":"uVAGMA,EAAiB,uECMV,MAAAC,EAAmBC,qBAAiD,GCD1E,SAASC,IACR,MAAAC,EAAeC,aAAWJ,GAEhC,QAAqB,IAAjBG,EACI,MAAA,IAAIE,MAAM,4DAGX,OAAAF,CACT,2BCEO,UAA2BG,SAAEA,EAAAC,OAAUA,EAAQC,UAAAA,EAAAC,MAAWA,IAC/D,MAAMN,EAAe,CACnBI,SACAC,YACAC,sBAGMT,EAAiBU,SAAjB,CAA0BC,MAAOR,EAAeG,YAC1D,oBDJO,WACL,MAAMC,OAAEA,EAAAE,MAAQA,GAAUP,IAE1B,GAAIO,EACI,MAAAA,EAGD,OAAAF,CACT,qDFnBO,SAAyBK,GACxB,MAAAC,QAAEA,EAAUd,EAAgBe,OAAAA,GAAS,SAAMC,GAAWH,GAAU,CAAC,GAEhEL,EAAQS,GAAaC,EAAAA,SAA2B,OAChDC,EAASC,GAAcF,EAAAA,UAAS,IAChCR,EAAOW,GAAYH,EAAAA,SAAuB,MAC3CI,EAAYC,SAAyB,MAwC3C,OAtCAC,EAAAA,WAAU,KACR,IAAIC,GAAY,EA4BhB,MA1BA,WACM,IACI,MAAAC,mBAAEA,GAAuBX,QACrBY,OAAO,gDACPA,OAAO,0CAEXC,QAAkBF,EAAmBZ,EAASE,GACpDM,EAAUO,QAAUD,EACpBA,EAAUE,aAAaC,MACrB,KACEd,EAAUW,GACVR,GAAW,EAAK,IAEjBY,IACCX,EAAS,IAAIf,MAAM0B,EAAEC,OAAOC,UAC5Bd,GAAW,EAAK,UAGbY,GACFP,IACHJ,EAASW,GACTZ,GAAW,GACb,CAED,EAxBH,GA0BO,aACOK,GAAA,EACZ,OAAAU,EAAA,OAAAC,EAAAd,EAAUO,cAAV,EAAAO,EAAmBC,oBAAnBF,EAAAG,KAAAF,GAAyCL,MAAK,aAC5C,OAAAI,EAAA,OAAAC,EAAAd,EAAUO,gBAAVO,EAAmBG,UAAnBJ,EAAAG,KAAAF,GACAd,EAAUO,QAAU,IAAA,GACnBW,UACL,GACC,CAAC1B,EAASC,EAAQC,IAEd,CAAER,SAAQC,UAAWU,EAAST,QACvC"}
1
+ {"version":3,"file":"index.cjs","sources":["../../src/shared/hooks/use-pdfium-engine.ts","../../src/shared/context/pdf-engine-context.ts","../../src/shared/hooks/use-engine-context.ts","../../src/shared/components/pdf-engine-provider.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from '@framework';\nimport { ignore, Logger, PdfEngine } from '@embedpdf/models';\n\nconst defaultWasmUrl = `https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@__PDFIUM_VERSION__/dist/pdfium.wasm`;\n\ninterface UsePdfiumEngineProps {\n wasmUrl?: string;\n worker?: boolean;\n logger?: Logger;\n}\n\nexport function usePdfiumEngine(config?: UsePdfiumEngineProps) {\n const { wasmUrl = defaultWasmUrl, worker = true, logger } = config ?? {};\n\n const [engine, setEngine] = useState<PdfEngine | null>(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<Error | null>(null);\n const engineRef = useRef<PdfEngine | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n\n (async () => {\n try {\n const { createPdfiumEngine } = worker\n ? await import('@embedpdf/engines/pdfium-worker-engine')\n : await import('@embedpdf/engines/pdfium-direct-engine');\n\n const pdfEngine = await createPdfiumEngine(wasmUrl, logger);\n engineRef.current = pdfEngine;\n pdfEngine.initialize().wait(\n () => {\n setEngine(pdfEngine);\n setLoading(false);\n },\n (e) => {\n setError(new Error(e.reason.message));\n setLoading(false);\n },\n );\n } catch (e) {\n if (!cancelled) {\n setError(e as Error);\n setLoading(false);\n }\n }\n })();\n\n return () => {\n cancelled = true;\n engineRef.current?.closeAllDocuments?.().wait(() => {\n engineRef.current?.destroy?.();\n engineRef.current = null;\n }, ignore);\n };\n }, [wasmUrl, worker, logger]);\n\n return { engine, isLoading: loading, error };\n}\n","import { createContext } from '@framework';\nimport type { PdfEngine } from '@embedpdf/models';\n\nexport interface PdfEngineContextState {\n engine: PdfEngine | null;\n isLoading: boolean;\n error: Error | null;\n}\n\nexport const PdfEngineContext = createContext<PdfEngineContextState | undefined>(undefined);\n","import { useContext } from '@framework';\nimport { PdfEngineContext, PdfEngineContextState } from '../context';\n\n/**\n * Hook to access the PDF engine from context.\n * @returns The PDF engine context state\n * @throws Error if used outside of PdfEngineProvider\n */\nexport function useEngineContext(): PdfEngineContextState {\n const contextValue = useContext(PdfEngineContext);\n\n if (contextValue === undefined) {\n throw new Error('useEngineContext must be used within a PdfEngineProvider');\n }\n\n return contextValue;\n}\n\n/**\n * Hook to access the PDF engine, with a more convenient API.\n * @returns The PDF engine or null if loading/error\n */\nexport function useEngine() {\n const { engine, error } = useEngineContext();\n\n if (error) {\n throw error;\n }\n\n return engine;\n}\n","import { ReactNode } from '@framework';\nimport { PdfEngineContext } from '../context';\nimport type { PdfEngine } from '@embedpdf/models';\n\nexport interface PdfEngineProviderProps {\n children: ReactNode;\n engine: PdfEngine | null;\n isLoading: boolean;\n error: Error | null;\n}\n\n/**\n * Provider component that makes a PDF engine instance available\n * to all child components via context.\n *\n * This provider is completely engine-agnostic - it accepts any engine\n * and its loading state from the parent component.\n */\nexport function PdfEngineProvider({ children, engine, isLoading, error }: PdfEngineProviderProps) {\n const contextValue = {\n engine,\n isLoading,\n error,\n };\n\n return <PdfEngineContext.Provider value={contextValue}>{children}</PdfEngineContext.Provider>;\n}\n"],"names":["defaultWasmUrl","PdfEngineContext","createContext","useEngineContext","contextValue","useContext","Error","children","engine","isLoading","error","Provider","value","config","wasmUrl","worker","logger","setEngine","useState","loading","setLoading","setError","engineRef","useRef","useEffect","cancelled","createPdfiumEngine","import","pdfEngine","current","initialize","wait","e","reason","message","_b","_a","closeAllDocuments","call","destroy","ignore"],"mappings":"uVAGMA,EAAiB,8ECMhB,MAAMC,EAAmBC,EAAAA,mBAAiD,GCD1E,SAASC,IACd,MAAMC,EAAeC,EAAAA,WAAWJ,GAEhC,QAAqB,IAAjBG,EACF,MAAM,IAAIE,MAAM,4DAGlB,OAAOF,CACT,2BCEO,UAA2BG,SAAEA,EAAAC,OAAUA,EAAAC,UAAQA,EAAAC,MAAWA,IAC/D,MAAMN,EAAe,CACnBI,SACAC,YACAC,SAGF,aAAQT,EAAiBU,SAAjB,CAA0BC,MAAOR,EAAeG,YAC1D,oBDJO,WACL,MAAMC,OAAEA,EAAAE,MAAQA,GAAUP,IAE1B,GAAIO,EACF,MAAMA,EAGR,OAAOF,CACT,qDFnBO,SAAyBK,GAC9B,MAAMC,QAAEA,EAAUd,EAAAe,OAAgBA,GAAS,SAAMC,GAAWH,GAAU,CAAA,GAE/DL,EAAQS,GAAaC,EAAAA,SAA2B,OAChDC,EAASC,GAAcF,EAAAA,UAAS,IAChCR,EAAOW,GAAYH,EAAAA,SAAuB,MAC3CI,EAAYC,EAAAA,OAAyB,MAwC3C,OAtCAC,EAAAA,UAAU,KACR,IAAIC,GAAY,EA4BhB,MA1BA,WACE,IACE,MAAMC,mBAAEA,GAAuBX,QACrBY,OAAO,gDACPA,OAAO,0CAEXC,QAAkBF,EAAmBZ,EAASE,GACpDM,EAAUO,QAAUD,EACpBA,EAAUE,aAAaC,KACrB,KACEd,EAAUW,GACVR,GAAW,IAEZY,IACCX,EAAS,IAAIf,MAAM0B,EAAEC,OAAOC,UAC5Bd,GAAW,IAGjB,OAASY,GACFP,IACHJ,EAASW,GACTZ,GAAW,GAEf,CACF,EAxBA,GA0BO,aACLK,GAAY,EACZ,OAAAU,EAAA,OAAAC,EAAAd,EAAUO,cAAV,EAAAO,EAAmBC,oBAAnBF,EAAAG,KAAAF,GAAyCL,KAAK,aAC5C,OAAAI,EAAA,OAAAC,EAAAd,EAAUO,gBAAVO,EAAmBG,UAAnBJ,EAAAG,KAAAF,GACAd,EAAUO,QAAU,MACnBW,EAAAA,UAEJ,CAAC1B,EAASC,EAAQC,IAEd,CAAER,SAAQC,UAAWU,EAAST,QACvC"}
@@ -2,7 +2,7 @@ import { useState, useRef, useEffect, useContext } from "preact/hooks";
2
2
  import { createContext } from "preact";
3
3
  import { ignore } from "@embedpdf/models";
4
4
  import { jsx } from "preact/jsx-runtime";
5
- const defaultWasmUrl = `https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.4.1/dist/pdfium.wasm`;
5
+ const defaultWasmUrl = `https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@2.0.0-next.0/dist/pdfium.wasm`;
6
6
  function usePdfiumEngine(config) {
7
7
  const { wasmUrl = defaultWasmUrl, worker = true, logger } = config ?? {};
8
8
  const [engine, setEngine] = useState(null);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-pdfium-engine.ts","../../src/shared/context/pdf-engine-context.ts","../../src/shared/hooks/use-engine-context.ts","../../src/shared/components/pdf-engine-provider.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from '@framework';\nimport { ignore, Logger, PdfEngine } from '@embedpdf/models';\n\nconst defaultWasmUrl = `https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@__PDFIUM_VERSION__/dist/pdfium.wasm`;\n\ninterface UsePdfiumEngineProps {\n wasmUrl?: string;\n worker?: boolean;\n logger?: Logger;\n}\n\nexport function usePdfiumEngine(config?: UsePdfiumEngineProps) {\n const { wasmUrl = defaultWasmUrl, worker = true, logger } = config ?? {};\n\n const [engine, setEngine] = useState<PdfEngine | null>(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<Error | null>(null);\n const engineRef = useRef<PdfEngine | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n\n (async () => {\n try {\n const { createPdfiumEngine } = worker\n ? await import('@embedpdf/engines/pdfium-worker-engine')\n : await import('@embedpdf/engines/pdfium-direct-engine');\n\n const pdfEngine = await createPdfiumEngine(wasmUrl, logger);\n engineRef.current = pdfEngine;\n pdfEngine.initialize().wait(\n () => {\n setEngine(pdfEngine);\n setLoading(false);\n },\n (e) => {\n setError(new Error(e.reason.message));\n setLoading(false);\n },\n );\n } catch (e) {\n if (!cancelled) {\n setError(e as Error);\n setLoading(false);\n }\n }\n })();\n\n return () => {\n cancelled = true;\n engineRef.current?.closeAllDocuments?.().wait(() => {\n engineRef.current?.destroy?.();\n engineRef.current = null;\n }, ignore);\n };\n }, [wasmUrl, worker, logger]);\n\n return { engine, isLoading: loading, error };\n}\n","import { createContext } from '@framework';\nimport type { PdfEngine } from '@embedpdf/models';\n\nexport interface PdfEngineContextState {\n engine: PdfEngine | null;\n isLoading: boolean;\n error: Error | null;\n}\n\nexport const PdfEngineContext = createContext<PdfEngineContextState | undefined>(undefined);\n","import { useContext } from '@framework';\nimport { PdfEngineContext, PdfEngineContextState } from '../context';\n\n/**\n * Hook to access the PDF engine from context.\n * @returns The PDF engine context state\n * @throws Error if used outside of PdfEngineProvider\n */\nexport function useEngineContext(): PdfEngineContextState {\n const contextValue = useContext(PdfEngineContext);\n\n if (contextValue === undefined) {\n throw new Error('useEngineContext must be used within a PdfEngineProvider');\n }\n\n return contextValue;\n}\n\n/**\n * Hook to access the PDF engine, with a more convenient API.\n * @returns The PDF engine or null if loading/error\n */\nexport function useEngine() {\n const { engine, error } = useEngineContext();\n\n if (error) {\n throw error;\n }\n\n return engine;\n}\n","import { ReactNode } from '@framework';\nimport { PdfEngineContext } from '../context';\nimport type { PdfEngine } from '@embedpdf/models';\n\nexport interface PdfEngineProviderProps {\n children: ReactNode;\n engine: PdfEngine | null;\n isLoading: boolean;\n error: Error | null;\n}\n\n/**\n * Provider component that makes a PDF engine instance available\n * to all child components via context.\n *\n * This provider is completely engine-agnostic - it accepts any engine\n * and its loading state from the parent component.\n */\nexport function PdfEngineProvider({ children, engine, isLoading, error }: PdfEngineProviderProps) {\n const contextValue = {\n engine,\n isLoading,\n error,\n };\n\n return <PdfEngineContext.Provider value={contextValue}>{children}</PdfEngineContext.Provider>;\n}\n"],"names":["_b","_a"],"mappings":";;;;AAGA,MAAM,iBAAiB;AAQhB,SAAS,gBAAgB,QAA+B;AACvD,QAAA,EAAE,UAAU,gBAAgB,SAAS,MAAM,OAAO,IAAI,UAAU,CAAC;AAEvE,QAAM,CAAC,QAAQ,SAAS,IAAI,SAA2B,IAAI;AAC3D,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,IAAI;AAC3C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAuB,IAAI;AAC/C,QAAA,YAAY,OAAyB,IAAI;AAE/C,YAAU,MAAM;AACd,QAAI,YAAY;AAEhB,KAAC,YAAY;AACP,UAAA;AACI,cAAA,EAAE,mBAAmB,IAAI,SAC3B,MAAM,OAAO,wCAAwC,IACrD,MAAM,OAAO,wCAAwC;AAEzD,cAAM,YAAY,MAAM,mBAAmB,SAAS,MAAM;AAC1D,kBAAU,UAAU;AACpB,kBAAU,aAAa;AAAA,UACrB,MAAM;AACJ,sBAAU,SAAS;AACnB,uBAAW,KAAK;AAAA,UAClB;AAAA,UACA,CAAC,MAAM;AACL,qBAAS,IAAI,MAAM,EAAE,OAAO,OAAO,CAAC;AACpC,uBAAW,KAAK;AAAA,UAAA;AAAA,QAEpB;AAAA,eACO,GAAG;AACV,YAAI,CAAC,WAAW;AACd,mBAAS,CAAU;AACnB,qBAAW,KAAK;AAAA,QAAA;AAAA,MAClB;AAAA,IACF,GACC;AAEH,WAAO,MAAM;;AACC,kBAAA;AACZ,4BAAU,YAAV,mBAAmB,sBAAnB,4BAAyC,KAAK,MAAM;;AAClD,SAAAA,OAAAC,MAAA,UAAU,YAAV,gBAAAA,IAAmB,YAAnB,gBAAAD,IAAA,KAAAC;AACA,kBAAU,UAAU;AAAA,SACnB;AAAA,IACL;AAAA,EACC,GAAA,CAAC,SAAS,QAAQ,MAAM,CAAC;AAE5B,SAAO,EAAE,QAAQ,WAAW,SAAS,MAAM;AAC7C;ACjDa,MAAA,mBAAmB,cAAiD,MAAS;ACDnF,SAAS,mBAA0C;AAClD,QAAA,eAAe,WAAW,gBAAgB;AAEhD,MAAI,iBAAiB,QAAW;AACxB,UAAA,IAAI,MAAM,0DAA0D;AAAA,EAAA;AAGrE,SAAA;AACT;AAMO,SAAS,YAAY;AAC1B,QAAM,EAAE,QAAQ,MAAM,IAAI,iBAAiB;AAE3C,MAAI,OAAO;AACH,UAAA;AAAA,EAAA;AAGD,SAAA;AACT;ACZO,SAAS,kBAAkB,EAAE,UAAU,QAAQ,WAAW,SAAiC;AAChG,QAAM,eAAe;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,6BAAQ,iBAAiB,UAAjB,EAA0B,OAAO,cAAe,UAAS;AACnE;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/shared/hooks/use-pdfium-engine.ts","../../src/shared/context/pdf-engine-context.ts","../../src/shared/hooks/use-engine-context.ts","../../src/shared/components/pdf-engine-provider.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from '@framework';\nimport { ignore, Logger, PdfEngine } from '@embedpdf/models';\n\nconst defaultWasmUrl = `https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@__PDFIUM_VERSION__/dist/pdfium.wasm`;\n\ninterface UsePdfiumEngineProps {\n wasmUrl?: string;\n worker?: boolean;\n logger?: Logger;\n}\n\nexport function usePdfiumEngine(config?: UsePdfiumEngineProps) {\n const { wasmUrl = defaultWasmUrl, worker = true, logger } = config ?? {};\n\n const [engine, setEngine] = useState<PdfEngine | null>(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<Error | null>(null);\n const engineRef = useRef<PdfEngine | null>(null);\n\n useEffect(() => {\n let cancelled = false;\n\n (async () => {\n try {\n const { createPdfiumEngine } = worker\n ? await import('@embedpdf/engines/pdfium-worker-engine')\n : await import('@embedpdf/engines/pdfium-direct-engine');\n\n const pdfEngine = await createPdfiumEngine(wasmUrl, logger);\n engineRef.current = pdfEngine;\n pdfEngine.initialize().wait(\n () => {\n setEngine(pdfEngine);\n setLoading(false);\n },\n (e) => {\n setError(new Error(e.reason.message));\n setLoading(false);\n },\n );\n } catch (e) {\n if (!cancelled) {\n setError(e as Error);\n setLoading(false);\n }\n }\n })();\n\n return () => {\n cancelled = true;\n engineRef.current?.closeAllDocuments?.().wait(() => {\n engineRef.current?.destroy?.();\n engineRef.current = null;\n }, ignore);\n };\n }, [wasmUrl, worker, logger]);\n\n return { engine, isLoading: loading, error };\n}\n","import { createContext } from '@framework';\nimport type { PdfEngine } from '@embedpdf/models';\n\nexport interface PdfEngineContextState {\n engine: PdfEngine | null;\n isLoading: boolean;\n error: Error | null;\n}\n\nexport const PdfEngineContext = createContext<PdfEngineContextState | undefined>(undefined);\n","import { useContext } from '@framework';\nimport { PdfEngineContext, PdfEngineContextState } from '../context';\n\n/**\n * Hook to access the PDF engine from context.\n * @returns The PDF engine context state\n * @throws Error if used outside of PdfEngineProvider\n */\nexport function useEngineContext(): PdfEngineContextState {\n const contextValue = useContext(PdfEngineContext);\n\n if (contextValue === undefined) {\n throw new Error('useEngineContext must be used within a PdfEngineProvider');\n }\n\n return contextValue;\n}\n\n/**\n * Hook to access the PDF engine, with a more convenient API.\n * @returns The PDF engine or null if loading/error\n */\nexport function useEngine() {\n const { engine, error } = useEngineContext();\n\n if (error) {\n throw error;\n }\n\n return engine;\n}\n","import { ReactNode } from '@framework';\nimport { PdfEngineContext } from '../context';\nimport type { PdfEngine } from '@embedpdf/models';\n\nexport interface PdfEngineProviderProps {\n children: ReactNode;\n engine: PdfEngine | null;\n isLoading: boolean;\n error: Error | null;\n}\n\n/**\n * Provider component that makes a PDF engine instance available\n * to all child components via context.\n *\n * This provider is completely engine-agnostic - it accepts any engine\n * and its loading state from the parent component.\n */\nexport function PdfEngineProvider({ children, engine, isLoading, error }: PdfEngineProviderProps) {\n const contextValue = {\n engine,\n isLoading,\n error,\n };\n\n return <PdfEngineContext.Provider value={contextValue}>{children}</PdfEngineContext.Provider>;\n}\n"],"names":["_b","_a"],"mappings":";;;;AAGA,MAAM,iBAAiB;AAQhB,SAAS,gBAAgB,QAA+B;AAC7D,QAAM,EAAE,UAAU,gBAAgB,SAAS,MAAM,OAAA,IAAW,UAAU,CAAA;AAEtE,QAAM,CAAC,QAAQ,SAAS,IAAI,SAA2B,IAAI;AAC3D,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,IAAI;AAC3C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAuB,IAAI;AACrD,QAAM,YAAY,OAAyB,IAAI;AAE/C,YAAU,MAAM;AACd,QAAI,YAAY;AAEhB,KAAC,YAAY;AACX,UAAI;AACF,cAAM,EAAE,mBAAA,IAAuB,SAC3B,MAAM,OAAO,wCAAwC,IACrD,MAAM,OAAO,wCAAwC;AAEzD,cAAM,YAAY,MAAM,mBAAmB,SAAS,MAAM;AAC1D,kBAAU,UAAU;AACpB,kBAAU,aAAa;AAAA,UACrB,MAAM;AACJ,sBAAU,SAAS;AACnB,uBAAW,KAAK;AAAA,UAClB;AAAA,UACA,CAAC,MAAM;AACL,qBAAS,IAAI,MAAM,EAAE,OAAO,OAAO,CAAC;AACpC,uBAAW,KAAK;AAAA,UAClB;AAAA,QAAA;AAAA,MAEJ,SAAS,GAAG;AACV,YAAI,CAAC,WAAW;AACd,mBAAS,CAAU;AACnB,qBAAW,KAAK;AAAA,QAClB;AAAA,MACF;AAAA,IACF,GAAA;AAEA,WAAO,MAAM;;AACX,kBAAY;AACZ,4BAAU,YAAV,mBAAmB,sBAAnB,4BAAyC,KAAK,MAAM;;AAClD,SAAAA,OAAAC,MAAA,UAAU,YAAV,gBAAAA,IAAmB,YAAnB,gBAAAD,IAAA,KAAAC;AACA,kBAAU,UAAU;AAAA,MACtB,GAAG;AAAA,IACL;AAAA,EACF,GAAG,CAAC,SAAS,QAAQ,MAAM,CAAC;AAE5B,SAAO,EAAE,QAAQ,WAAW,SAAS,MAAA;AACvC;ACjDO,MAAM,mBAAmB,cAAiD,MAAS;ACDnF,SAAS,mBAA0C;AACxD,QAAM,eAAe,WAAW,gBAAgB;AAEhD,MAAI,iBAAiB,QAAW;AAC9B,UAAM,IAAI,MAAM,0DAA0D;AAAA,EAC5E;AAEA,SAAO;AACT;AAMO,SAAS,YAAY;AAC1B,QAAM,EAAE,QAAQ,MAAA,IAAU,iBAAA;AAE1B,MAAI,OAAO;AACT,UAAM;AAAA,EACR;AAEA,SAAO;AACT;ACZO,SAAS,kBAAkB,EAAE,UAAU,QAAQ,WAAW,SAAiC;AAChG,QAAM,eAAe;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,6BAAQ,iBAAiB,UAAjB,EAA0B,OAAO,cAAe,UAAS;AACnE;"}