@embedpdf/engines 1.0.16 → 1.0.17

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 (37) hide show
  1. package/dist/engine-Bcr-xNy6.cjs +2 -0
  2. package/dist/engine-Bcr-xNy6.cjs.map +1 -0
  3. package/dist/{engine-B11yoQGd.js → engine-uSZXjmb5.js} +610 -295
  4. package/dist/engine-uSZXjmb5.js.map +1 -0
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.js +2 -2
  7. package/dist/lib/pdfium/cache.d.ts +7 -0
  8. package/dist/lib/pdfium/engine.d.ts +129 -56
  9. package/dist/lib/pdfium/index.cjs +1 -1
  10. package/dist/lib/pdfium/index.js +2 -2
  11. package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
  12. package/dist/lib/pdfium/web/direct-engine.js +1 -1
  13. package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
  14. package/dist/lib/pdfium/web/worker-engine.js +1 -1
  15. package/dist/lib/webworker/engine.cjs +1 -1
  16. package/dist/lib/webworker/engine.cjs.map +1 -1
  17. package/dist/lib/webworker/engine.d.ts +42 -36
  18. package/dist/lib/webworker/engine.js +22 -7
  19. package/dist/lib/webworker/engine.js.map +1 -1
  20. package/dist/lib/webworker/runner.d.ts +21 -1
  21. package/dist/preact/index.cjs +1 -1
  22. package/dist/preact/index.js +1 -1
  23. package/dist/react/index.cjs +1 -1
  24. package/dist/react/index.js +1 -1
  25. package/dist/{runner-D9_9TvyZ.js → runner-BOJ4naYI.js} +28 -2
  26. package/dist/runner-BOJ4naYI.js.map +1 -0
  27. package/dist/runner-C64KrEhP.cjs +2 -0
  28. package/dist/runner-C64KrEhP.cjs.map +1 -0
  29. package/dist/vue/index.cjs +1 -1
  30. package/dist/vue/index.js +1 -1
  31. package/package.json +3 -3
  32. package/dist/engine-B11yoQGd.js.map +0 -1
  33. package/dist/engine-v2kq6ghL.cjs +0 -2
  34. package/dist/engine-v2kq6ghL.cjs.map +0 -1
  35. package/dist/runner-D9_9TvyZ.js.map +0 -1
  36. package/dist/runner-Dnb6tfxR.cjs +0 -2
  37. package/dist/runner-Dnb6tfxR.cjs.map +0 -1
@@ -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({type:"AbortRequest",data:{messageId:this.messageId}})}}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"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}openDocumentFromBuffer(e,o){this.logger.debug(t,r,"openDocumentFromBuffer",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"openDocumentFromBuffer",[e,o]);return this.proxy(g,a),g}openDocumentFromLoader(e,o){this.logger.debug(t,r,"openDocumentFromLoader",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"openDocumentFromLoader",[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}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}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,g,a,h,d="image/webp"){this.logger.debug(t,r,"renderPage",e,o,i,g,a,h);const u=this.generateRequestId(e.id),c=new n(this.worker,u),l=s(u,"renderPage",[e,o,i,g,a,h,d]);return this.proxy(c,l),c}renderPageRect(e,o,i,g,a,h,d,u="image/webp"){this.logger.debug(t,r,"renderPageRect",e,o,i,g,a,h,d);const c=this.generateRequestId(e.id),l=new n(this.worker,c),w=s(c,"renderPageRect",[e,o,i,g,a,h,d,u]);return this.proxy(l,w),l}renderAnnotation(e,o,i,g,a,h,d,u){this.logger.debug(t,r,"renderAnnotation",e,o,i,g,a,h,d,u);const c=this.generateRequestId(e.id),l=new n(this.worker,c),w=s(c,"renderAnnotation",[e,o,i,g,a,h,d,u]);return this.proxy(l,w),l}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,i,g){this.logger.debug(t,r,"getPageTextRects",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"getPageTextRects",[e,o,i,g]);return this.proxy(h,d),h}renderThumbnail(e,o,i,g,a){this.logger.debug(t,r,"renderThumbnail",e,o,i,g,a);const h=this.generateRequestId(e.id),d=new n(this.worker,h),u=s(h,"renderThumbnail",[e,o,i,g,a]);return this.proxy(d,u),d}searchAllPages(e,o,i=[]){this.logger.debug(t,r,"searchAllPages 123",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}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}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}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}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}openDocumentFromBuffer(e,o){this.logger.debug(t,r,"openDocumentFromBuffer",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"openDocumentFromBuffer",[e,o]);return this.proxy(g,a),g}openDocumentFromLoader(e,o){this.logger.debug(t,r,"openDocumentFromLoader",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"openDocumentFromLoader",[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}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}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,g,a,h,d="image/webp"){this.logger.debug(t,r,"renderPage",e,o,i,g,a,h);const u=this.generateRequestId(e.id),c=new n(this.worker,u),l=s(u,"renderPage",[e,o,i,g,a,h,d]);return this.proxy(c,l),c}renderPageRect(e,o,i,g,a,h,d,u="image/webp"){this.logger.debug(t,r,"renderPageRect",e,o,i,g,a,h,d);const c=this.generateRequestId(e.id),l=new n(this.worker,c),w=s(c,"renderPageRect",[e,o,i,g,a,h,d,u]);return this.proxy(l,w),l}renderAnnotation(e,o,i,g,a,h,d,u){this.logger.debug(t,r,"renderAnnotation",e,o,i,g,a,h,d,u);const c=this.generateRequestId(e.id),l=new n(this.worker,c),w=s(c,"renderAnnotation",[e,o,i,g,a,h,d,u]);return this.proxy(l,w),l}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,i,g){this.logger.debug(t,r,"getPageTextRects",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"getPageTextRects",[e,o,i,g]);return this.proxy(h,d),h}renderThumbnail(e,o,i,g,a){this.logger.debug(t,r,"renderThumbnail",e,o,i,g,a);const h=this.generateRequestId(e.id),d=new n(this.worker,h),u=s(h,"renderThumbnail",[e,o,i,g,a]);return this.proxy(d,u),d}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}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}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}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}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 PdfAnnotationTransformation,\n PdfAttachmentObject,\n PdfEngineError,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n SearchResult,\n SearchTarget,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n Rotation,\n PdfRenderOptions,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenFlag,\n PdfPageFlattenResult,\n PdfFileLoader,\n SearchAllPagesResult,\n MatchFlag,\n PdfUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n ImageConversionTypes,\n PdfAnnotationObjectBase,\n PdfAlphaColor,\n PageTextSlice,\n WebAlphaColor,\n AppearanceMode,\n AnnotationCreateContext,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\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> extends Task<R, PdfErrorReason> {\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 type: 'AbortRequest',\n data: {\n messageId: this.messageId,\n },\n });\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 '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?: PdfUrlOptions) {\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 openDocumentFromBuffer(file: PdfFile, password: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentFromBuffer', file, password);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentFromBuffer', [\n file,\n password,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentFromLoader}\n *\n * @public\n */\n openDocumentFromLoader(file: PdfFileLoader, password: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentFromLoader', file, password);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentFromLoader', [\n file,\n password,\n ]);\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.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.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(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n options: PdfRenderOptions,\n imageType: ImageConversionTypes = 'image/webp',\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderPage',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n options,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPage', [\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n options,\n imageType,\n ]);\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 scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n rect: Rect,\n options: PdfRenderOptions,\n imageType: ImageConversionTypes = 'image/webp',\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderPageRect',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n rect,\n options,\n );\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 scaleFactor,\n rotation,\n dpr,\n rect,\n options,\n imageType,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}\n *\n * @public\n */\n renderAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n mode: AppearanceMode,\n imageType: ImageConversionTypes,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderAnnotation',\n doc,\n page,\n annotation,\n scaleFactor,\n rotation,\n dpr,\n mode,\n imageType,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderAnnotation', [\n doc,\n page,\n annotation,\n scaleFactor,\n rotation,\n dpr,\n mode,\n imageType,\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 const task = new WorkerTask<Record<number, PdfAnnotationObject[]>>(this.worker, requestId);\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<number>(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(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'getPageTextRects',\n doc,\n page,\n scaleFactor,\n rotation,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRects', [\n doc,\n page,\n scaleFactor,\n rotation,\n ]);\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 scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderThumbnail',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n );\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 scaleFactor,\n rotation,\n dpr,\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, flags: MatchFlag[] = []) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages 123', doc, keyword, flags);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<SearchAllPagesResult>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'searchAllPages', [\n doc,\n keyword,\n flags,\n ]);\n this.proxy(task, request);\n\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.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, flag: PdfPageFlattenFlag) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, flag);\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, flag]);\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.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.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 * 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","_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","openDocumentFromBuffer","password","openDocumentFromLoader","getMetadata","doc","getDocPermissions","getDocUserPermissions","getBookmarks","getSignatures","renderPage","page","scaleFactor","rotation","dpr","imageType","renderPageRect","rect","renderAnnotation","annotation","mode","getAllAnnotations","getPageAnnotations","createPageAnnotation","context","updatePageAnnotation","removePageAnnotation","getPageTextRects","renderThumbnail","searchAllPages","keyword","flags","saveAsCopy","getAttachments","readAttachmentContent","attachment","setFormFieldValue","flattenPage","flag","extractPages","pageIndexes","extractText","getTextSlices","slices","getPageGlyphs","getPageGeometry","merge","files","fileIds","map","join","mergePages","mergeConfigs","config","docId","closeDocument","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 PdfAnnotationTransformation,\n PdfAttachmentObject,\n PdfEngineError,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n SearchResult,\n SearchTarget,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n Rotation,\n PdfRenderOptions,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenFlag,\n PdfPageFlattenResult,\n PdfFileLoader,\n SearchAllPagesResult,\n MatchFlag,\n PdfUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n ImageConversionTypes,\n PdfAnnotationObjectBase,\n PdfAlphaColor,\n PageTextSlice,\n WebAlphaColor,\n AppearanceMode,\n AnnotationCreateContext,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n PdfPageWithAnnotations,\n PdfPageSearchProgress,\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?: PdfUrlOptions) {\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 openDocumentFromBuffer(file: PdfFile, password: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentFromBuffer', file, password);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentFromBuffer', [\n file,\n password,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentFromLoader}\n *\n * @public\n */\n openDocumentFromLoader(file: PdfFileLoader, password: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentFromLoader', file, password);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentFromLoader', [\n file,\n password,\n ]);\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.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.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(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n options: PdfRenderOptions,\n imageType: ImageConversionTypes = 'image/webp',\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderPage',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n options,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPage', [\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n options,\n imageType,\n ]);\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 scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n rect: Rect,\n options: PdfRenderOptions,\n imageType: ImageConversionTypes = 'image/webp',\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderPageRect',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n rect,\n options,\n );\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 scaleFactor,\n rotation,\n dpr,\n rect,\n options,\n imageType,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}\n *\n * @public\n */\n renderAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n mode: AppearanceMode,\n imageType: ImageConversionTypes,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderAnnotation',\n doc,\n page,\n annotation,\n scaleFactor,\n rotation,\n dpr,\n mode,\n imageType,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderAnnotation', [\n doc,\n page,\n annotation,\n scaleFactor,\n rotation,\n dpr,\n mode,\n imageType,\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[]>, PdfPageWithAnnotations>(\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<number>(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(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'getPageTextRects',\n doc,\n page,\n scaleFactor,\n rotation,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRects', [\n doc,\n page,\n scaleFactor,\n rotation,\n ]);\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 scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderThumbnail',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n );\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 scaleFactor,\n rotation,\n dpr,\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, flags: MatchFlag[] = []) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages', doc, keyword, flags);\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 flags,\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.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, flag: PdfPageFlattenFlag) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, flag);\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, flag]);\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.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.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 * 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","openDocumentFromBuffer","password","openDocumentFromLoader","getMetadata","doc","getDocPermissions","getDocUserPermissions","getBookmarks","getSignatures","renderPage","page","scaleFactor","rotation","dpr","imageType","renderPageRect","rect","renderAnnotation","annotation","mode","getAllAnnotations","getPageAnnotations","createPageAnnotation","context","updatePageAnnotation","removePageAnnotation","getPageTextRects","renderThumbnail","searchAllPages","keyword","flags","saveAsCopy","getAttachments","readAttachmentContent","attachment","setFormFieldValue","flattenPage","flag","extractPages","pageIndexes","extractText","getTextSlices","slices","getPageGlyphs","getPageGeometry","merge","files","fileIds","map","join","mergePages","mergeConfigs","config","docId","closeDocument","transferables","perf","code","PdfErrorCode","Initialization","message","WebWorkerEngine"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { FormFieldValue, PdfAttachmentObject, PdfFile, PdfMetadataObject, PdfSignatureObject, PdfTextRectObject, PdfWidgetAnnoObject, Task, Logger, PdfAnnotationObject, PdfBookmarksObject, PdfDocumentObject, PdfEngine, PdfPageObject, Rect, Rotation, PdfRenderOptions, PdfErrorReason, PdfPageFlattenFlag, PdfPageFlattenResult, PdfFileLoader, SearchAllPagesResult, MatchFlag, PdfUrlOptions, PdfFileUrl, PdfGlyphObject, PdfPageGeometry, ImageConversionTypes, PageTextSlice, AppearanceMode, AnnotationCreateContext } from '@embedpdf/models';
1
+ import { FormFieldValue, PdfAttachmentObject, PdfFile, PdfMetadataObject, PdfSignatureObject, PdfTextRectObject, PdfWidgetAnnoObject, Task, Logger, PdfAnnotationObject, PdfBookmarksObject, PdfDocumentObject, PdfEngine, PdfPageObject, Rect, Rotation, PdfRenderOptions, PdfErrorReason, PdfPageFlattenFlag, PdfPageFlattenResult, PdfFileLoader, SearchAllPagesResult, MatchFlag, PdfUrlOptions, PdfFileUrl, PdfGlyphObject, PdfPageGeometry, ImageConversionTypes, PageTextSlice, AppearanceMode, AnnotationCreateContext, PdfPageWithAnnotations, PdfPageSearchProgress } from '@embedpdf/models';
2
2
  import { ExecuteRequest } from './runner';
3
3
  /**
4
4
  * Task that executed by webworker
5
5
  */
6
- export declare class WorkerTask<R> extends Task<R, PdfErrorReason> {
6
+ export declare class WorkerTask<R, P = unknown> extends Task<R, PdfErrorReason, P> {
7
7
  worker: Worker;
8
8
  private messageId;
9
9
  /**
@@ -20,6 +20,12 @@ export declare class WorkerTask<R> extends Task<R, PdfErrorReason> {
20
20
  * @override
21
21
  */
22
22
  abort(e: PdfErrorReason): void;
23
+ /**
24
+ * {@inheritDoc @embedpdf/models!Task.progress}
25
+ *
26
+ * @override
27
+ */
28
+ progress(p: P): void;
23
29
  }
24
30
  /**
25
31
  * PDF engine that runs within webworker
@@ -67,188 +73,188 @@ export declare class WebWorkerEngine implements PdfEngine {
67
73
  *
68
74
  * @public
69
75
  */
70
- initialize(): WorkerTask<boolean>;
76
+ initialize(): WorkerTask<boolean, unknown>;
71
77
  /**
72
78
  * {@inheritDoc @embedpdf/models!PdfEngine.destroy}
73
79
  *
74
80
  * @public
75
81
  */
76
- destroy(): WorkerTask<boolean>;
82
+ destroy(): WorkerTask<boolean, unknown>;
77
83
  /**
78
84
  * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}
79
85
  *
80
86
  * @public
81
87
  */
82
- openDocumentUrl(file: PdfFileUrl, options?: PdfUrlOptions): WorkerTask<PdfDocumentObject>;
88
+ openDocumentUrl(file: PdfFileUrl, options?: PdfUrlOptions): WorkerTask<PdfDocumentObject, unknown>;
83
89
  /**
84
90
  * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}
85
91
  *
86
92
  * @public
87
93
  */
88
- openDocumentFromBuffer(file: PdfFile, password: string): WorkerTask<PdfDocumentObject>;
94
+ openDocumentFromBuffer(file: PdfFile, password: string): WorkerTask<PdfDocumentObject, unknown>;
89
95
  /**
90
96
  * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentFromLoader}
91
97
  *
92
98
  * @public
93
99
  */
94
- openDocumentFromLoader(file: PdfFileLoader, password: string): WorkerTask<PdfDocumentObject>;
100
+ openDocumentFromLoader(file: PdfFileLoader, password: string): WorkerTask<PdfDocumentObject, unknown>;
95
101
  /**
96
102
  * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}
97
103
  *
98
104
  * @public
99
105
  */
100
- getMetadata(doc: PdfDocumentObject): WorkerTask<PdfMetadataObject>;
106
+ getMetadata(doc: PdfDocumentObject): WorkerTask<PdfMetadataObject, unknown>;
101
107
  /**
102
108
  * {@inheritDoc @embedpdf/models!PdfEngine.getDocPermissions}
103
109
  *
104
110
  * @public
105
111
  */
106
- getDocPermissions(doc: PdfDocumentObject): WorkerTask<number>;
112
+ getDocPermissions(doc: PdfDocumentObject): WorkerTask<number, unknown>;
107
113
  /**
108
114
  * {@inheritDoc @embedpdf/models!PdfEngine.getDocUserPermissions}
109
115
  *
110
116
  * @public
111
117
  */
112
- getDocUserPermissions(doc: PdfDocumentObject): WorkerTask<number>;
118
+ getDocUserPermissions(doc: PdfDocumentObject): WorkerTask<number, unknown>;
113
119
  /**
114
120
  * {@inheritDoc @embedpdf/models!PdfEngine.getBookmarks}
115
121
  *
116
122
  * @public
117
123
  */
118
- getBookmarks(doc: PdfDocumentObject): WorkerTask<PdfBookmarksObject>;
124
+ getBookmarks(doc: PdfDocumentObject): WorkerTask<PdfBookmarksObject, unknown>;
119
125
  /**
120
126
  * {@inheritDoc @embedpdf/models!PdfEngine.getSignatures}
121
127
  *
122
128
  * @public
123
129
  */
124
- getSignatures(doc: PdfDocumentObject): WorkerTask<PdfSignatureObject[]>;
130
+ getSignatures(doc: PdfDocumentObject): WorkerTask<PdfSignatureObject[], unknown>;
125
131
  /**
126
132
  * {@inheritDoc @embedpdf/models!PdfEngine.renderPage}
127
133
  *
128
134
  * @public
129
135
  */
130
- renderPage(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, options: PdfRenderOptions, imageType?: ImageConversionTypes): WorkerTask<Blob>;
136
+ renderPage(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, options: PdfRenderOptions, imageType?: ImageConversionTypes): WorkerTask<Blob, unknown>;
131
137
  /**
132
138
  * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}
133
139
  *
134
140
  * @public
135
141
  */
136
- renderPageRect(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, rect: Rect, options: PdfRenderOptions, imageType?: ImageConversionTypes): WorkerTask<Blob>;
142
+ renderPageRect(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, rect: Rect, options: PdfRenderOptions, imageType?: ImageConversionTypes): WorkerTask<Blob, unknown>;
137
143
  /**
138
144
  * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}
139
145
  *
140
146
  * @public
141
147
  */
142
- renderAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject, scaleFactor: number, rotation: Rotation, dpr: number, mode: AppearanceMode, imageType: ImageConversionTypes): WorkerTask<Blob>;
148
+ renderAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject, scaleFactor: number, rotation: Rotation, dpr: number, mode: AppearanceMode, imageType: ImageConversionTypes): WorkerTask<Blob, unknown>;
143
149
  /**
144
150
  * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}
145
151
  *
146
152
  * @public
147
153
  */
148
- getAllAnnotations(doc: PdfDocumentObject): WorkerTask<Record<number, PdfAnnotationObject[]>>;
154
+ getAllAnnotations(doc: PdfDocumentObject): WorkerTask<Record<number, PdfAnnotationObject[]>, PdfPageWithAnnotations>;
149
155
  /**
150
156
  * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}
151
157
  *
152
158
  * @public
153
159
  */
154
- getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject): WorkerTask<PdfAnnotationObject[]>;
160
+ getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject): WorkerTask<PdfAnnotationObject[], unknown>;
155
161
  /**
156
162
  * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}
157
163
  *
158
164
  * @public
159
165
  */
160
- createPageAnnotation<A extends PdfAnnotationObject>(doc: PdfDocumentObject, page: PdfPageObject, annotation: A, context?: AnnotationCreateContext<A>): WorkerTask<number>;
161
- updatePageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): WorkerTask<boolean>;
166
+ createPageAnnotation<A extends PdfAnnotationObject>(doc: PdfDocumentObject, page: PdfPageObject, annotation: A, context?: AnnotationCreateContext<A>): WorkerTask<number, unknown>;
167
+ updatePageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): WorkerTask<boolean, unknown>;
162
168
  /**
163
169
  * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}
164
170
  *
165
171
  * @public
166
172
  */
167
- removePageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): WorkerTask<boolean>;
173
+ removePageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): WorkerTask<boolean, unknown>;
168
174
  /**
169
175
  * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}
170
176
  *
171
177
  * @public
172
178
  */
173
- getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation): WorkerTask<PdfTextRectObject[]>;
179
+ getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation): WorkerTask<PdfTextRectObject[], unknown>;
174
180
  /**
175
181
  * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}
176
182
  *
177
183
  * @public
178
184
  */
179
- renderThumbnail(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number): WorkerTask<Blob>;
185
+ renderThumbnail(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number): WorkerTask<Blob, unknown>;
180
186
  /**
181
187
  * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}
182
188
  *
183
189
  * @public
184
190
  */
185
- searchAllPages(doc: PdfDocumentObject, keyword: string, flags?: MatchFlag[]): WorkerTask<SearchAllPagesResult>;
191
+ searchAllPages(doc: PdfDocumentObject, keyword: string, flags?: MatchFlag[]): WorkerTask<SearchAllPagesResult, PdfPageSearchProgress>;
186
192
  /**
187
193
  * {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}
188
194
  *
189
195
  * @public
190
196
  */
191
- saveAsCopy(doc: PdfDocumentObject): WorkerTask<ArrayBuffer>;
197
+ saveAsCopy(doc: PdfDocumentObject): WorkerTask<ArrayBuffer, unknown>;
192
198
  /**
193
199
  * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}
194
200
  *
195
201
  * @public
196
202
  */
197
- getAttachments(doc: PdfDocumentObject): WorkerTask<PdfAttachmentObject[]>;
203
+ getAttachments(doc: PdfDocumentObject): WorkerTask<PdfAttachmentObject[], unknown>;
198
204
  /**
199
205
  * {@inheritDoc @embedpdf/models!PdfEngine.readAttachmentContent}
200
206
  *
201
207
  * @public
202
208
  */
203
- readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject): WorkerTask<ArrayBuffer>;
209
+ readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject): WorkerTask<ArrayBuffer, unknown>;
204
210
  /**
205
211
  * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldValue}
206
212
  *
207
213
  * @public
208
214
  */
209
- setFormFieldValue(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfWidgetAnnoObject, value: FormFieldValue): WorkerTask<boolean>;
215
+ setFormFieldValue(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfWidgetAnnoObject, value: FormFieldValue): WorkerTask<boolean, unknown>;
210
216
  /**
211
217
  * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}
212
218
  *
213
219
  * @public
214
220
  */
215
- flattenPage(doc: PdfDocumentObject, page: PdfPageObject, flag: PdfPageFlattenFlag): WorkerTask<PdfPageFlattenResult>;
221
+ flattenPage(doc: PdfDocumentObject, page: PdfPageObject, flag: PdfPageFlattenFlag): WorkerTask<PdfPageFlattenResult, unknown>;
216
222
  /**
217
223
  * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}
218
224
  *
219
225
  * @public
220
226
  */
221
- extractPages(doc: PdfDocumentObject, pageIndexes: number[]): WorkerTask<ArrayBuffer>;
227
+ extractPages(doc: PdfDocumentObject, pageIndexes: number[]): WorkerTask<ArrayBuffer, unknown>;
222
228
  /**
223
229
  * {@inheritDoc @embedpdf/models!PdfEngine.extractText}
224
230
  *
225
231
  * @public
226
232
  */
227
- extractText(doc: PdfDocumentObject, pageIndexes: number[]): WorkerTask<string>;
233
+ extractText(doc: PdfDocumentObject, pageIndexes: number[]): WorkerTask<string, unknown>;
228
234
  /**
229
235
  * {@inheritDoc @embedpdf/models!PdfEngine.getTextSlices}
230
236
  *
231
237
  * @public
232
238
  */
233
- getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]): WorkerTask<string[]>;
239
+ getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]): WorkerTask<string[], unknown>;
234
240
  /**
235
241
  * {@inheritDoc @embedpdf/models!PdfEngine.getPageGlyphs}
236
242
  *
237
243
  * @public
238
244
  */
239
- getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject): WorkerTask<PdfGlyphObject[]>;
245
+ getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject): WorkerTask<PdfGlyphObject[], unknown>;
240
246
  /**
241
247
  * {@inheritDoc @embedpdf/models!PdfEngine.getPageGeometry}
242
248
  *
243
249
  * @public
244
250
  */
245
- getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject): WorkerTask<PdfPageGeometry>;
251
+ getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject): WorkerTask<PdfPageGeometry, unknown>;
246
252
  /**
247
253
  * {@inheritDoc @embedpdf/models!PdfEngine.merge}
248
254
  *
249
255
  * @public
250
256
  */
251
- merge(files: PdfFile[]): WorkerTask<PdfFile>;
257
+ merge(files: PdfFile[]): WorkerTask<PdfFile, unknown>;
252
258
  /**
253
259
  * {@inheritDoc @embedpdf/models!PdfEngine.mergePages}
254
260
  *
@@ -257,13 +263,13 @@ export declare class WebWorkerEngine implements PdfEngine {
257
263
  mergePages(mergeConfigs: Array<{
258
264
  docId: string;
259
265
  pageIndices: number[];
260
- }>): WorkerTask<PdfFile>;
266
+ }>): WorkerTask<PdfFile, unknown>;
261
267
  /**
262
268
  * {@inheritDoc @embedpdf/models!PdfEngine.closeDocument}
263
269
  *
264
270
  * @public
265
271
  */
266
- closeDocument(doc: PdfDocumentObject): WorkerTask<boolean>;
272
+ closeDocument(doc: PdfDocumentObject): WorkerTask<boolean, unknown>;
267
273
  /**
268
274
  * Send the request to webworker inside and register the task
269
275
  * @param task - task that waiting for the response
@@ -32,12 +32,18 @@ class WorkerTask extends Task {
32
32
  abort(e) {
33
33
  super.abort(e);
34
34
  this.worker.postMessage({
35
- type: "AbortRequest",
36
- data: {
37
- messageId: this.messageId
38
- }
35
+ id: this.messageId,
36
+ type: "AbortRequest"
39
37
  });
40
38
  }
39
+ /**
40
+ * {@inheritDoc @embedpdf/models!Task.progress}
41
+ *
42
+ * @override
43
+ */
44
+ progress(p) {
45
+ super.progress(p);
46
+ }
41
47
  }
42
48
  const _WebWorkerEngine = class _WebWorkerEngine {
43
49
  /**
@@ -69,6 +75,9 @@ const _WebWorkerEngine = class _WebWorkerEngine {
69
75
  case "ReadyResponse":
70
76
  this.readyTask.resolve(true);
71
77
  break;
78
+ case "ExecuteProgress":
79
+ task.progress(response.data);
80
+ break;
72
81
  case "ExecuteResponse":
73
82
  {
74
83
  switch (response.data.type) {
@@ -347,7 +356,10 @@ const _WebWorkerEngine = class _WebWorkerEngine {
347
356
  getAllAnnotations(doc) {
348
357
  this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "getAllAnnotations", doc);
349
358
  const requestId = this.generateRequestId(doc.id);
350
- const task = new WorkerTask(this.worker, requestId);
359
+ const task = new WorkerTask(
360
+ this.worker,
361
+ requestId
362
+ );
351
363
  const request = createRequest(requestId, "getAllAnnotations", [doc]);
352
364
  this.proxy(task, request);
353
365
  return task;
@@ -480,9 +492,12 @@ const _WebWorkerEngine = class _WebWorkerEngine {
480
492
  * @public
481
493
  */
482
494
  searchAllPages(doc, keyword, flags = []) {
483
- this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "searchAllPages 123", doc, keyword, flags);
495
+ this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "searchAllPages", doc, keyword, flags);
484
496
  const requestId = this.generateRequestId(doc.id);
485
- const task = new WorkerTask(this.worker, requestId);
497
+ const task = new WorkerTask(
498
+ this.worker,
499
+ requestId
500
+ );
486
501
  const request = createRequest(requestId, "searchAllPages", [
487
502
  doc,
488
503
  keyword,