@embedpdf/engines 1.0.14 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/{engine-O49988D4.js → engine-B11yoQGd.js} +77 -42
  2. package/dist/engine-B11yoQGd.js.map +1 -0
  3. package/dist/engine-v2kq6ghL.cjs +2 -0
  4. package/dist/engine-v2kq6ghL.cjs.map +1 -0
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.js +2 -2
  7. package/dist/lib/pdfium/engine.d.ts +11 -3
  8. package/dist/lib/pdfium/index.cjs +1 -1
  9. package/dist/lib/pdfium/index.js +2 -2
  10. package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
  11. package/dist/lib/pdfium/web/direct-engine.js +1 -1
  12. package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
  13. package/dist/lib/pdfium/web/worker-engine.js +1 -1
  14. package/dist/lib/webworker/engine.cjs +1 -1
  15. package/dist/lib/webworker/engine.cjs.map +1 -1
  16. package/dist/lib/webworker/engine.d.ts +2 -2
  17. package/dist/lib/webworker/engine.js +123 -275
  18. package/dist/lib/webworker/engine.js.map +1 -1
  19. package/dist/lib/webworker/runner.d.ts +12 -0
  20. package/dist/preact/index.cjs +1 -1
  21. package/dist/preact/index.js +1 -1
  22. package/dist/react/index.cjs +1 -1
  23. package/dist/react/index.js +1 -1
  24. package/dist/{runner-CABEqeFp.js → runner-D9_9TvyZ.js} +2 -2
  25. package/dist/runner-D9_9TvyZ.js.map +1 -0
  26. package/dist/{runner-Br_PKNmU.cjs → runner-Dnb6tfxR.cjs} +2 -2
  27. package/dist/runner-Dnb6tfxR.cjs.map +1 -0
  28. package/dist/vue/index.cjs +1 -1
  29. package/dist/vue/index.js +1 -1
  30. package/package.json +3 -3
  31. package/dist/engine-1ZSXSAtm.cjs +0 -2
  32. package/dist/engine-1ZSXSAtm.cjs.map +0 -1
  33. package/dist/engine-O49988D4.js.map +0 -1
  34. package/dist/runner-Br_PKNmU.cjs.map +0 -1
  35. package/dist/runner-CABEqeFp.js.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";class s 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 a=class a{constructor(n,i=new e.NoopLogger){this.worker=n,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 s(this.worker,a.readyTaskId),this.tasks.set(a.readyTaskId,this.readyTask)}generateRequestId(e){return`${e}.${Date.now()}.${Math.random()}`}initialize(){this.logger.debug(t,r,"initialize");const e=this.generateRequestId("General"),a=new s(this.worker,e),n={id:e,type:"ExecuteRequest",data:{name:"initialize",args:[]}};return this.proxy(a,n),a}destroy(){this.logger.debug(t,r,"destroy");const e=this.generateRequestId("General"),a=new s(this.worker,e),n=()=>{this.worker.removeEventListener("message",this.handle),this.worker.terminate()};a.wait(n,n);const i={id:e,type:"ExecuteRequest",data:{name:"destroy",args:[]}};return this.proxy(a,i),a}openDocumentUrl(e,a){this.logger.debug(t,r,"openDocumentUrl",e.url,a);const n=this.generateRequestId(e.id),i=new s(this.worker,n),o={id:n,type:"ExecuteRequest",data:{name:"openDocumentUrl",args:[e,a]}};return this.proxy(i,o),i}openDocumentFromBuffer(e,a){this.logger.debug(t,r,"openDocumentFromBuffer",e,a);const n=this.generateRequestId(e.id),i=new s(this.worker,n),o={id:n,type:"ExecuteRequest",data:{name:"openDocumentFromBuffer",args:[e,a]}};return this.proxy(i,o),i}openDocumentFromLoader(e,a){this.logger.debug(t,r,"openDocumentFromLoader",e,a);const n=this.generateRequestId(e.id),i=new s(this.worker,n),o={id:n,type:"ExecuteRequest",data:{name:"openDocumentFromLoader",args:[e,a]}};return this.proxy(i,o),i}getMetadata(e){this.logger.debug(t,r,"getMetadata",e);const a=this.generateRequestId(e.id),n=new s(this.worker,a),i={id:a,type:"ExecuteRequest",data:{name:"getMetadata",args:[e]}};return this.proxy(n,i),n}getDocPermissions(e){this.logger.debug(t,r,"getDocPermissions",e);const a=this.generateRequestId(e.id),n=new s(this.worker,a),i={id:a,type:"ExecuteRequest",data:{name:"getDocPermissions",args:[e]}};return this.proxy(n,i),n}getDocUserPermissions(e){this.logger.debug(t,r,"getDocUserPermissions",e);const a=this.generateRequestId(e.id),n=new s(this.worker,a),i={id:a,type:"ExecuteRequest",data:{name:"getDocUserPermissions",args:[e]}};return this.proxy(n,i),n}getBookmarks(e){this.logger.debug(t,r,"getBookmarks",e);const a=this.generateRequestId(e.id),n=new s(this.worker,a),i={id:a,type:"ExecuteRequest",data:{name:"getBookmarks",args:[e]}};return this.proxy(n,i),n}getSignatures(e){this.logger.debug(t,r,"getSignatures",e);const a=this.generateRequestId(e.id),n=new s(this.worker,a),i={id:a,type:"ExecuteRequest",data:{name:"getSignatures",args:[e]}};return this.proxy(n,i),n}renderPage(e,a,n,i,o,g,d="image/webp"){this.logger.debug(t,r,"renderPage",e,a,n,i,o,g);const u=this.generateRequestId(e.id),h=new s(this.worker,u),c={id:u,type:"ExecuteRequest",data:{name:"renderPage",args:[e,a,n,i,o,g,d]}};return this.proxy(h,c),h}renderPageRect(e,a,n,i,o,g,d,u="image/webp"){this.logger.debug(t,r,"renderPageRect",e,a,n,i,o,g,d);const h=this.generateRequestId(e.id),c=new s(this.worker,h),p={id:h,type:"ExecuteRequest",data:{name:"renderPageRect",args:[e,a,n,i,o,g,d,u]}};return this.proxy(c,p),c}renderAnnotation(e,a,n,i,o,g,d,u){this.logger.debug(t,r,"renderAnnotation",e,a,n,i,o,g,d,u);const h=this.generateRequestId(e.id),c=new s(this.worker,h),p={id:h,type:"ExecuteRequest",data:{name:"renderAnnotation",args:[e,a,n,i,o,g,d,u]}};return this.proxy(c,p),c}getAllAnnotations(e){this.logger.debug(t,r,"getAllAnnotations",e);const a=this.generateRequestId(e.id),n=new s(this.worker,a),i={id:a,type:"ExecuteRequest",data:{name:"getAllAnnotations",args:[e]}};return this.proxy(n,i),n}getPageAnnotations(e,a){this.logger.debug(t,r,"getPageAnnotations",e,a);const n=this.generateRequestId(e.id),i=new s(this.worker,n),o={id:n,type:"ExecuteRequest",data:{name:"getPageAnnotations",args:[e,a]}};return this.proxy(i,o),i}createPageAnnotation(e,a,n){this.logger.debug(t,r,"createPageAnnotations",e,a,n);const i=this.generateRequestId(e.id),o=new s(this.worker,i),g={id:i,type:"ExecuteRequest",data:{name:"createPageAnnotation",args:[e,a,n]}};return this.proxy(o,g),o}updatePageAnnotation(e,a,n){this.logger.debug(t,r,"updatePageAnnotation",e,a,n);const i=this.generateRequestId(e.id),o=new s(this.worker,i),g={id:i,type:"ExecuteRequest",data:{name:"updatePageAnnotation",args:[e,a,n]}};return this.proxy(o,g),o}removePageAnnotation(e,a,n){this.logger.debug(t,r,"removePageAnnotations",e,a,n);const i=this.generateRequestId(e.id),o=new s(this.worker,i),g={id:i,type:"ExecuteRequest",data:{name:"removePageAnnotation",args:[e,a,n]}};return this.proxy(o,g),o}getPageTextRects(e,a,n,i){this.logger.debug(t,r,"getPageTextRects",e,a,n,i);const o=this.generateRequestId(e.id),g=new s(this.worker,o),d={id:o,type:"ExecuteRequest",data:{name:"getPageTextRects",args:[e,a,n,i]}};return this.proxy(g,d),g}renderThumbnail(e,a,n,i,o){this.logger.debug(t,r,"renderThumbnail",e,a,n,i,o);const g=this.generateRequestId(e.id),d=new s(this.worker,g),u={id:g,type:"ExecuteRequest",data:{name:"renderThumbnail",args:[e,a,n,i,o]}};return this.proxy(d,u),d}searchAllPages(e,a,n=[]){this.logger.debug(t,r,"searchAllPages 123",e,a,n);const i=this.generateRequestId(e.id),o=new s(this.worker,i),g={id:i,type:"ExecuteRequest",data:{name:"searchAllPages",args:[e,a,n]}};return this.proxy(o,g),o}saveAsCopy(e){this.logger.debug(t,r,"saveAsCopy",e);const a=this.generateRequestId(e.id),n=new s(this.worker,a),i={id:a,type:"ExecuteRequest",data:{name:"saveAsCopy",args:[e]}};return this.proxy(n,i),n}getAttachments(e){this.logger.debug(t,r,"getAttachments",e);const a=this.generateRequestId(e.id),n=new s(this.worker,a),i={id:a,type:"ExecuteRequest",data:{name:"getAttachments",args:[e]}};return this.proxy(n,i),n}readAttachmentContent(e,a){this.logger.debug(t,r,"readAttachmentContent",e,a);const n=this.generateRequestId(e.id),i=new s(this.worker,n),o={id:n,type:"ExecuteRequest",data:{name:"readAttachmentContent",args:[e,a]}};return this.proxy(i,o),i}setFormFieldValue(e,a,n,i){this.logger.debug(t,r,"setFormFieldValue",e,n,i);const o=this.generateRequestId(e.id),g=new s(this.worker,o),d={id:o,type:"ExecuteRequest",data:{name:"setFormFieldValue",args:[e,a,n,i]}};return this.proxy(g,d),g}flattenPage(e,a,n){this.logger.debug(t,r,"flattenPage",e,a,n);const i=this.generateRequestId(e.id),o=new s(this.worker,i),g={id:i,type:"ExecuteRequest",data:{name:"flattenPage",args:[e,a,n]}};return this.proxy(o,g),o}extractPages(e,a){this.logger.debug(t,r,"extractPages",e);const n=this.generateRequestId(e.id),i=new s(this.worker,n),o={id:n,type:"ExecuteRequest",data:{name:"extractPages",args:[e,a]}};return this.proxy(i,o),i}extractText(e,a){this.logger.debug(t,r,"extractText",e);const n=this.generateRequestId(e.id),i=new s(this.worker,n),o={id:n,type:"ExecuteRequest",data:{name:"extractText",args:[e,a]}};return this.proxy(i,o),i}getTextSlices(e,a){this.logger.debug(t,r,"getTextSlices",e,a);const n=this.generateRequestId(e.id),i=new s(this.worker,n),o={id:n,type:"ExecuteRequest",data:{name:"getTextSlices",args:[e,a]}};return this.proxy(i,o),i}getPageGlyphs(e,a){this.logger.debug(t,r,"getPageGlyphs",e,a);const n=this.generateRequestId(e.id),i=new s(this.worker,n),o={id:n,type:"ExecuteRequest",data:{name:"getPageGlyphs",args:[e,a]}};return this.proxy(i,o),i}getPageGeometry(e,a){this.logger.debug(t,r,"getPageGeometry",e,a);const n=this.generateRequestId(e.id),i=new s(this.worker,n),o={id:n,type:"ExecuteRequest",data:{name:"getPageGeometry",args:[e,a]}};return this.proxy(i,o),i}merge(e){this.logger.debug(t,r,"merge",e);const a=e.map((e=>e.id)).join("."),n=this.generateRequestId(a),i=new s(this.worker,n),o={id:n,type:"ExecuteRequest",data:{name:"merge",args:[e]}};return this.proxy(i,o),i}mergePages(e){this.logger.debug(t,r,"mergePages",e);const a=this.generateRequestId(e.map((e=>e.docId)).join(".")),n=new s(this.worker,a),i={id:a,type:"ExecuteRequest",data:{name:"mergePages",args:[e]}};return this.proxy(n,i),n}closeDocument(e){this.logger.debug(t,r,"closeDocument",e);const a=this.generateRequestId(e.id),n=new s(this.worker,a),i={id:a,type:"ExecuteRequest",data:{name:"closeDocument",args:[e]}};return this.proxy(n,i),n}proxy(s,a,n=[]){this.logger.debug(t,r,"send request to worker",s,a,n),this.logger.perf(t,r,`${a.data.name}`,"Begin",a.id),this.readyTask.wait((()=>{this.worker.postMessage(a,n),s.wait((()=>{this.logger.perf(t,r,`${a.data.name}`,"End",a.id)}),(()=>{this.logger.perf(t,r,`${a.data.name}`,"End",a.id)})),this.tasks.set(a.id,s)}),(()=>{this.logger.perf(t,r,`${a.data.name}`,"End",a.id),s.reject({code:e.PdfErrorCode.Initialization,message:"worker initialization failed"})}))}};a.readyTaskId="0";let n=a;exports.WebWorkerEngine=n,exports.WorkerTask=s;
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;
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} from '@embedpdf/models';\nimport { ExecuteRequest, Response } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'initialize',\n args: [],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'destroy',\n args: [],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'openDocumentUrl',\n args: [file, options],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'openDocumentFromBuffer',\n args: [file, password],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'openDocumentFromLoader',\n args: [file, password],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getMetadata',\n args: [doc],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getDocPermissions',\n args: [doc],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getDocUserPermissions',\n args: [doc],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getBookmarks',\n args: [doc],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getSignatures',\n args: [doc],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'renderPage',\n args: [doc, page, scaleFactor, rotation, dpr, options, imageType],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'renderPageRect',\n args: [doc, page, scaleFactor, rotation, dpr, rect, options, imageType],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'renderAnnotation',\n args: [doc, page, annotation, scaleFactor, rotation, dpr, mode, imageType],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getAllAnnotations',\n args: [doc],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageAnnotations',\n args: [doc, page],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}\n *\n * @public\n */\n createPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'createPageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'createPageAnnotation',\n args: [doc, page, annotation],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'updatePageAnnotation',\n args: [doc, page, annotation],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'removePageAnnotation',\n args: [doc, page, annotation],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageTextRects',\n args: [doc, page, scaleFactor, rotation],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'renderThumbnail',\n args: [doc, page, scaleFactor, rotation, dpr],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'searchAllPages',\n args: [doc, keyword, flags],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'saveAsCopy',\n args: [doc],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getAttachments',\n args: [doc],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'readAttachmentContent',\n args: [doc, attachment],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'setFormFieldValue',\n args: [doc, page, annotation, value],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'flattenPage',\n args: [doc, page, flag],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'extractPages',\n args: [doc, pageIndexes],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'extractText',\n args: [doc, pageIndexes],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getTextSlices',\n args: [doc, slices],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageGlyphs',\n args: [doc, page],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageGeometry',\n args: [doc, page],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'merge',\n args: [files],\n },\n };\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'mergePages',\n args: [mergeConfigs],\n },\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 = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'closeDocument',\n args: [doc],\n },\n };\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","WorkerTask","Task","constructor","worker","messageId","super","this","abort","e","postMessage","type","data","_WebWorkerEngine","logger","NoopLogger","tasks","Map","handle","evt","debug","response","task","get","id","readyTask","resolve","value","reject","reason","delete","error","addEventListener","readyTaskId","set","generateRequestId","Date","now","Math","random","initialize","requestId","request","name","args","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","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} 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,4 +1,4 @@
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 } 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 } from '@embedpdf/models';
2
2
  import { ExecuteRequest } from './runner';
3
3
  /**
4
4
  * Task that executed by webworker
@@ -157,7 +157,7 @@ export declare class WebWorkerEngine implements PdfEngine {
157
157
  *
158
158
  * @public
159
159
  */
160
- createPageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): WorkerTask<number>;
160
+ createPageAnnotation<A extends PdfAnnotationObject>(doc: PdfDocumentObject, page: PdfPageObject, annotation: A, context?: AnnotationCreateContext<A>): WorkerTask<number>;
161
161
  updatePageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): WorkerTask<boolean>;
162
162
  /**
163
163
  * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}