@embedpdf/engines 1.0.17 → 1.0.19

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 (47) hide show
  1. package/dist/engine-CkrTs7st.cjs +2 -0
  2. package/dist/engine-CkrTs7st.cjs.map +1 -0
  3. package/dist/{engine-uSZXjmb5.js → engine-DMU8HkGx.js} +162 -154
  4. package/dist/engine-DMU8HkGx.js.map +1 -0
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.js +36 -37
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/converters/index.cjs +1 -1
  10. package/dist/lib/converters/index.cjs.map +1 -1
  11. package/dist/lib/converters/index.d.ts +4 -4
  12. package/dist/lib/converters/index.js +11 -2
  13. package/dist/lib/converters/index.js.map +1 -1
  14. package/dist/lib/pdfium/engine.d.ts +49 -38
  15. package/dist/lib/pdfium/index.cjs +1 -1
  16. package/dist/lib/pdfium/index.js +2 -2
  17. package/dist/lib/pdfium/runner.d.ts +2 -1
  18. package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
  19. package/dist/lib/pdfium/web/direct-engine.cjs.map +1 -1
  20. package/dist/lib/pdfium/web/direct-engine.js +2 -2
  21. package/dist/lib/pdfium/web/direct-engine.js.map +1 -1
  22. package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
  23. package/dist/lib/pdfium/web/worker-engine.js +7 -2
  24. package/dist/lib/pdfium/web/worker-engine.js.map +1 -1
  25. package/dist/lib/utils.d.ts +2 -0
  26. package/dist/lib/webworker/engine.cjs +1 -1
  27. package/dist/lib/webworker/engine.cjs.map +1 -1
  28. package/dist/lib/webworker/engine.d.ts +18 -18
  29. package/dist/lib/webworker/engine.js +43 -117
  30. package/dist/lib/webworker/engine.js.map +1 -1
  31. package/dist/preact/index.cjs +1 -1
  32. package/dist/preact/index.js +1 -1
  33. package/dist/react/index.cjs +1 -1
  34. package/dist/react/index.js +1 -1
  35. package/dist/runner-BPhmukiN.cjs +2 -0
  36. package/dist/runner-BPhmukiN.cjs.map +1 -0
  37. package/dist/{runner-BOJ4naYI.js → runner-TzQFlVIQ.js} +10 -10
  38. package/dist/runner-TzQFlVIQ.js.map +1 -0
  39. package/dist/vue/index.cjs +1 -1
  40. package/dist/vue/index.js +1 -1
  41. package/package.json +3 -3
  42. package/dist/engine-Bcr-xNy6.cjs +0 -2
  43. package/dist/engine-Bcr-xNy6.cjs.map +0 -1
  44. package/dist/engine-uSZXjmb5.js.map +0 -1
  45. package/dist/runner-BOJ4naYI.js.map +0 -1
  46. package/dist/runner-C64KrEhP.cjs +0 -2
  47. package/dist/runner-C64KrEhP.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"worker-engine.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"worker-engine.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare function toArrayBuffer(view: ArrayBufferView): ArrayBuffer;
2
+ export declare function toClampedRGBA(data: ArrayBufferView | Uint8Array | Uint8ClampedArray): Uint8ClampedArray;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/models"),t="WebWorkerEngine",r="Engine";function s(e,t,r){return{id:e,type:"ExecuteRequest",data:{name:t,args:r}}}class n extends e.Task{constructor(e,t){super(),this.worker=e,this.messageId=t}abort(e){super.abort(e),this.worker.postMessage({id:this.messageId,type:"AbortRequest"})}progress(e){super.progress(e)}}const o=class o{constructor(s,i=new e.NoopLogger){this.worker=s,this.logger=i,this.tasks=new Map,this.handle=e=>{this.logger.debug(t,r,"webworker engine start handling message: ",e.data);try{const t=e.data,r=this.tasks.get(t.id);if(!r)return;switch(t.type){case"ReadyResponse":this.readyTask.resolve(!0);break;case"ExecuteProgress":r.progress(t.data);break;case"ExecuteResponse":switch(t.data.type){case"result":r.resolve(t.data.value);break;case"error":r.reject(t.data.value.reason)}this.tasks.delete(t.id)}}catch(s){this.logger.error(t,r,"webworker met error when handling message: ",s)}},this.worker.addEventListener("message",this.handle),this.readyTask=new n(this.worker,o.readyTaskId),this.tasks.set(o.readyTaskId,this.readyTask)}generateRequestId(e){return`${e}.${Date.now()}.${Math.random()}`}initialize(){this.logger.debug(t,r,"initialize");const e=this.generateRequestId("General"),o=new n(this.worker,e),i=s(e,"initialize",[]);return this.proxy(o,i),o}destroy(){this.logger.debug(t,r,"destroy");const e=this.generateRequestId("General"),o=new n(this.worker,e),i=()=>{this.worker.removeEventListener("message",this.handle),this.worker.terminate()};o.wait(i,i);const g=s(e,"destroy",[]);return this.proxy(o,g),o}openDocumentUrl(e,o){this.logger.debug(t,r,"openDocumentUrl",e.url,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"openDocumentUrl",[e,o]);return this.proxy(g,a),g}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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/models"),t="WebWorkerEngine",r="Engine";function s(e,t,r){return{id:e,type:"ExecuteRequest",data:{name:t,args:r}}}class n extends e.Task{constructor(e,t){super(),this.worker=e,this.messageId=t}abort(e){super.abort(e),this.worker.postMessage({id:this.messageId,type:"AbortRequest"})}progress(e){super.progress(e)}}const o=class o{constructor(s,i=new e.NoopLogger){this.worker=s,this.logger=i,this.tasks=new Map,this.handle=e=>{this.logger.debug(t,r,"webworker engine start handling message: ",e.data);try{const t=e.data,r=this.tasks.get(t.id);if(!r)return;switch(t.type){case"ReadyResponse":this.readyTask.resolve(!0);break;case"ExecuteProgress":r.progress(t.data);break;case"ExecuteResponse":switch(t.data.type){case"result":r.resolve(t.data.value);break;case"error":r.reject(t.data.value.reason)}this.tasks.delete(t.id)}}catch(s){this.logger.error(t,r,"webworker met error when handling message: ",s)}},this.worker.addEventListener("message",this.handle),this.readyTask=new n(this.worker,o.readyTaskId),this.tasks.set(o.readyTaskId,this.readyTask)}generateRequestId(e){return`${e}.${Date.now()}.${Math.random()}`}initialize(){this.logger.debug(t,r,"initialize");const e=this.generateRequestId("General"),o=new n(this.worker,e),i=s(e,"initialize",[]);return this.proxy(o,i),o}destroy(){this.logger.debug(t,r,"destroy");const e=this.generateRequestId("General"),o=new n(this.worker,e),i=()=>{this.worker.removeEventListener("message",this.handle),this.worker.terminate()};o.wait(i,i);const g=s(e,"destroy",[]);return this.proxy(o,g),o}openDocumentUrl(e,o){this.logger.debug(t,r,"openDocumentUrl",e.url,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"openDocumentUrl",[e,o]);return this.proxy(g,a),g}openDocumentBuffer(e,o){this.logger.debug(t,r,"openDocumentBuffer",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"openDocumentBuffer",[e,o]);return this.proxy(g,a),g}getMetadata(e){this.logger.debug(t,r,"getMetadata",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getMetadata",[e]);return this.proxy(i,g),i}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){this.logger.debug(t,r,"renderPage",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"renderPage",[e,o,i]);return this.proxy(a,h),a}renderPageRect(e,o,i,g){this.logger.debug(t,r,"renderPageRect",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"renderPageRect",[e,o,i,g]);return this.proxy(h,d),h}renderPageAnnotation(e,o,i,g){this.logger.debug(t,r,"renderAnnotation",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"renderPageAnnotation",[e,o,i,g]);return this.proxy(h,d),h}getAllAnnotations(e){this.logger.debug(t,r,"getAllAnnotations",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getAllAnnotations",[e]);return this.proxy(i,g),i}getPageAnnotations(e,o){this.logger.debug(t,r,"getPageAnnotations",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageAnnotations",[e,o]);return this.proxy(g,a),g}createPageAnnotation(e,o,i,g){this.logger.debug(t,r,"createPageAnnotations",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"createPageAnnotation",[e,o,i,g]);return this.proxy(h,d),h}updatePageAnnotation(e,o,i){this.logger.debug(t,r,"updatePageAnnotation",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"updatePageAnnotation",[e,o,i]);return this.proxy(a,h),a}removePageAnnotation(e,o,i){this.logger.debug(t,r,"removePageAnnotations",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"removePageAnnotation",[e,o,i]);return this.proxy(a,h),a}getPageTextRects(e,o){this.logger.debug(t,r,"getPageTextRects",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageTextRects",[e,o]);return this.proxy(g,a),g}renderThumbnail(e,o,i){this.logger.debug(t,r,"renderThumbnail",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"renderThumbnail",[e,o,i]);return this.proxy(a,h),a}searchAllPages(e,o,i){this.logger.debug(t,r,"searchAllPages",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"searchAllPages",[e,o,i]);return this.proxy(a,h),a}saveAsCopy(e){this.logger.debug(t,r,"saveAsCopy",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"saveAsCopy",[e]);return this.proxy(i,g),i}getAttachments(e){this.logger.debug(t,r,"getAttachments",e);const o=this.generateRequestId(e.id),i=new n(this.worker,o),g=s(o,"getAttachments",[e]);return this.proxy(i,g),i}readAttachmentContent(e,o){this.logger.debug(t,r,"readAttachmentContent",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"readAttachmentContent",[e,o]);return this.proxy(g,a),g}setFormFieldValue(e,o,i,g){this.logger.debug(t,r,"setFormFieldValue",e,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"setFormFieldValue",[e,o,i,g]);return this.proxy(h,d),h}flattenPage(e,o,i){this.logger.debug(t,r,"flattenPage",e,o,i);const g=this.generateRequestId(e.id),a=new n(this.worker,g),h=s(g,"flattenPage",[e,o,i]);return this.proxy(a,h),a}extractPages(e,o){this.logger.debug(t,r,"extractPages",e);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"extractPages",[e,o]);return this.proxy(g,a),g}redactTextInRects(e,o,i,g){this.logger.debug(t,r,"redactTextInRects",e,o,i,g);const a=this.generateRequestId(e.id),h=new n(this.worker,a),d=s(a,"redactTextInRects",[e,o,i,g]);return this.proxy(h,d),h}extractText(e,o){this.logger.debug(t,r,"extractText",e);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"extractText",[e,o]);return this.proxy(g,a),g}getTextSlices(e,o){this.logger.debug(t,r,"getTextSlices",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getTextSlices",[e,o]);return this.proxy(g,a),g}getPageGlyphs(e,o){this.logger.debug(t,r,"getPageGlyphs",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageGlyphs",[e,o]);return this.proxy(g,a),g}getPageGeometry(e,o){this.logger.debug(t,r,"getPageGeometry",e,o);const i=this.generateRequestId(e.id),g=new n(this.worker,i),a=s(i,"getPageGeometry",[e,o]);return this.proxy(g,a),g}merge(e){this.logger.debug(t,r,"merge",e);const o=e.map((e=>e.id)).join("."),i=this.generateRequestId(o),g=new n(this.worker,i),a=s(i,"merge",[e]);return this.proxy(g,a),g}mergePages(e){this.logger.debug(t,r,"mergePages",e);const o=this.generateRequestId(e.map((e=>e.docId)).join(".")),i=new n(this.worker,o),g=s(o,"mergePages",[e]);return this.proxy(i,g),i}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 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
+ {"version":3,"file":"engine.cjs","sources":["../../../src/lib/webworker/engine.ts"],"sourcesContent":["import {\n FormFieldValue,\n PdfAttachmentObject,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenResult,\n SearchAllPagesResult,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n PageTextSlice,\n AnnotationCreateContext,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n PdfPageSearchProgress,\n PdfRenderThumbnailOptions,\n PdfSearchAllPagesOptions,\n PdfFlattenPageOptions,\n PdfRedactTextOptions,\n PdfRenderPageAnnotationOptions,\n PdfRenderPageOptions,\n PdfOpenDocumentUrlOptions,\n PdfOpenDocumentBufferOptions,\n PdfAnnotationsProgress,\n} from '@embedpdf/models';\nimport { ExecuteRequest, Response, SpecificExecuteRequest } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Create a request for the webworker\n * @param id - id of the request\n * @param name - name of the method\n * @param args - arguments of the method\n * @returns request\n */\nfunction createRequest<M extends PdfEngineMethodName>(\n id: string,\n name: M,\n args: PdfEngineMethodArgs<M>,\n): SpecificExecuteRequest<M> {\n return {\n id,\n type: 'ExecuteRequest',\n data: {\n name,\n args,\n },\n };\n}\n\n/**\n * Task that executed by webworker\n */\nexport class WorkerTask<R, P = unknown> extends Task<R, PdfErrorReason, P> {\n /**\n * Create a task that bind to web worker with specified message id\n * @param worker - web worker instance\n * @param messageId - id of message\n *\n * @public\n */\n constructor(\n public worker: Worker,\n private messageId: string,\n ) {\n super();\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.abort}\n *\n * @override\n */\n abort(e: PdfErrorReason) {\n super.abort(e);\n\n this.worker.postMessage({\n id: this.messageId,\n type: 'AbortRequest',\n });\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.progress}\n *\n * @override\n */\n progress(p: P) {\n super.progress(p);\n }\n}\n\n/**\n * PDF engine that runs within webworker\n */\nexport class WebWorkerEngine implements PdfEngine {\n static readyTaskId = '0';\n /**\n * Task that represent the state of preparation\n */\n readyTask: WorkerTask<boolean>;\n /**\n * All the tasks that is executing\n */\n tasks: Map<string, WorkerTask<any>> = new Map();\n\n /**\n * Create an instance of WebWorkerEngine, it will create a worker with\n * specified url.\n * @param worker - webworker instance, this worker needs to contains the running instance of {@link EngineRunner}\n * @param logger - logger instance\n *\n * @public\n */\n constructor(\n private worker: Worker,\n private logger: Logger = new NoopLogger(),\n ) {\n this.worker.addEventListener('message', this.handle);\n\n this.readyTask = new WorkerTask<boolean>(this.worker, WebWorkerEngine.readyTaskId);\n this.tasks.set(WebWorkerEngine.readyTaskId, this.readyTask);\n }\n\n /**\n * Handle event from web worker. There are 2 kinds of event\n * 1. ReadyResponse: web worker is ready\n * 2. ExecuteResponse: result of execution\n * @param evt - message event from web worker\n * @returns\n *\n * @private\n */\n handle = (evt: MessageEvent<any>) => {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker engine start handling message: ',\n evt.data,\n );\n try {\n const response = evt.data as Response;\n const task = this.tasks.get(response.id);\n if (!task) {\n return;\n }\n\n switch (response.type) {\n case 'ReadyResponse':\n this.readyTask.resolve(true);\n break;\n case 'ExecuteProgress':\n task.progress(response.data);\n break;\n case 'ExecuteResponse':\n {\n switch (response.data.type) {\n case 'result':\n task.resolve(response.data.value);\n break;\n case 'error':\n task.reject(response.data.value.reason);\n break;\n }\n this.tasks.delete(response.id);\n }\n break;\n }\n } catch (e) {\n this.logger.error(LOG_SOURCE, LOG_CATEGORY, 'webworker met error when handling message: ', e);\n }\n };\n\n /**\n * Generate a unique message id\n * @returns message id\n *\n * @private\n */\n generateRequestId(id: string) {\n return `${id}.${Date.now()}.${Math.random()}`;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.initialize}\n *\n * @public\n */\n initialize() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'initialize');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'initialize', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.destroy}\n *\n * @public\n */\n destroy() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'destroy');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const finish = () => {\n this.worker.removeEventListener('message', this.handle);\n this.worker.terminate();\n };\n\n task.wait(finish, finish);\n\n const request: ExecuteRequest = createRequest(requestId, 'destroy', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}\n *\n * @public\n */\n openDocumentUrl(file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentUrl', file.url, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentUrl', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}\n *\n * @public\n */\n openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentBuffer', file, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentBuffer', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}\n *\n * @public\n */\n getMetadata(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getMetadata', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfMetadataObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getMetadata', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.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(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}\n *\n * @public\n */\n renderPageRect(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rect: Rect,\n options?: PdfRenderPageOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderPageRect', doc, page, rect, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRect', [\n doc,\n page,\n rect,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}\n *\n * @public\n */\n renderPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n options?: PdfRenderPageAnnotationOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderAnnotation', doc, page, annotation, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageAnnotation', [\n doc,\n page,\n annotation,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}\n *\n * @public\n */\n getAllAnnotations(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAllAnnotations', doc);\n const requestId = this.generateRequestId(doc.id);\n\n const task = new WorkerTask<Record<number, PdfAnnotationObject[]>, PdfAnnotationsProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'getAllAnnotations', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}\n *\n * @public\n */\n getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnotations', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAnnotationObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageAnnotations', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}\n *\n * @public\n */\n createPageAnnotation<A extends PdfAnnotationObject>(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: A,\n context?: AnnotationCreateContext<A>,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'createPageAnnotations',\n doc,\n page,\n annotation,\n context,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'createPageAnnotation', [\n doc,\n page,\n annotation,\n context,\n ] as PdfEngineMethodArgs<'createPageAnnotation'>);\n this.proxy(task, request);\n\n return task;\n }\n\n updatePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'updatePageAnnotation', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'updatePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}\n *\n * @public\n */\n removePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removePageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}\n *\n * @public\n */\n getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageTextRects', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRects', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}\n *\n * @public\n */\n renderThumbnail(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n options?: PdfRenderThumbnailOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'renderThumbnail', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderThumbnail', [\n doc,\n page,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}\n *\n * @public\n */\n searchAllPages(doc: PdfDocumentObject, keyword: string, options?: PdfSearchAllPagesOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages', doc, keyword, options);\n\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<SearchAllPagesResult, PdfPageSearchProgress>(\n this.worker,\n requestId,\n );\n\n const request: ExecuteRequest = createRequest(requestId, 'searchAllPages', [\n doc,\n keyword,\n options,\n ]);\n\n this.proxy(task, request);\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}\n *\n * @public\n */\n saveAsCopy(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'saveAsCopy', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'saveAsCopy', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}\n *\n * @public\n */\n getAttachments(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAttachments', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAttachmentObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getAttachments', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.readAttachmentContent}\n *\n * @public\n */\n readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'readAttachmentContent', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'readAttachmentContent', [\n doc,\n attachment,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldValue}\n *\n * @public\n */\n setFormFieldValue(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n value: FormFieldValue,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldValue', doc, annotation, value);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setFormFieldValue', [\n doc,\n page,\n annotation,\n value,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}\n *\n * @public\n */\n flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageFlattenResult>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'flattenPage', [doc, page, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}\n *\n * @public\n */\n extractPages(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractPages', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractPages', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.redactTextInQuads}\n *\n * @public\n */\n redactTextInRects(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n rects: Rect[],\n options?: PdfRedactTextOptions,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'redactTextInRects', doc, page, rects, options);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'redactTextInRects', [\n doc,\n page,\n rects,\n options,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractText}\n *\n * @public\n */\n extractText(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractText', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractText', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getTextSlices}\n *\n * @public\n */\n getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getTextSlices', doc, slices);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getTextSlices', [doc, slices]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGlyphs}\n *\n * @public\n */\n getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGlyphs', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfGlyphObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGlyphs', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGeometry}\n *\n * @public\n */\n getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGeometry', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageGeometry>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGeometry', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.merge}\n *\n * @public\n */\n merge(files: PdfFile[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'merge', files);\n const fileIds = files.map((file) => file.id).join('.');\n const requestId = this.generateRequestId(fileIds);\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'merge', [files]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.mergePages}\n *\n * @public\n */\n mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'mergePages', mergeConfigs);\n const requestId = this.generateRequestId(mergeConfigs.map((config) => config.docId).join('.'));\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'mergePages', [mergeConfigs]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.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","openDocumentBuffer","getMetadata","doc","getDocPermissions","getDocUserPermissions","getBookmarks","getSignatures","renderPage","page","renderPageRect","rect","renderPageAnnotation","annotation","getAllAnnotations","getPageAnnotations","createPageAnnotation","context","updatePageAnnotation","removePageAnnotation","getPageTextRects","renderThumbnail","searchAllPages","keyword","saveAsCopy","getAttachments","readAttachmentContent","attachment","setFormFieldValue","flattenPage","extractPages","pageIndexes","redactTextInRects","rects","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, AnnotationCreateContext, PdfPageWithAnnotations, PdfPageSearchProgress } from '@embedpdf/models';
1
+ import { FormFieldValue, PdfAttachmentObject, PdfFile, PdfMetadataObject, PdfSignatureObject, PdfTextRectObject, PdfWidgetAnnoObject, Task, Logger, PdfAnnotationObject, PdfBookmarksObject, PdfDocumentObject, PdfEngine, PdfPageObject, Rect, PdfErrorReason, PdfPageFlattenResult, SearchAllPagesResult, PdfFileUrl, PdfGlyphObject, PdfPageGeometry, PageTextSlice, AnnotationCreateContext, PdfPageSearchProgress, PdfRenderThumbnailOptions, PdfSearchAllPagesOptions, PdfFlattenPageOptions, PdfRedactTextOptions, PdfRenderPageAnnotationOptions, PdfRenderPageOptions, PdfOpenDocumentUrlOptions, PdfOpenDocumentBufferOptions, PdfAnnotationsProgress } from '@embedpdf/models';
2
2
  import { ExecuteRequest } from './runner';
3
3
  /**
4
4
  * Task that executed by webworker
@@ -85,19 +85,13 @@ export declare class WebWorkerEngine implements PdfEngine {
85
85
  *
86
86
  * @public
87
87
  */
88
- openDocumentUrl(file: PdfFileUrl, options?: PdfUrlOptions): WorkerTask<PdfDocumentObject, unknown>;
88
+ openDocumentUrl(file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions): WorkerTask<PdfDocumentObject, unknown>;
89
89
  /**
90
90
  * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}
91
91
  *
92
92
  * @public
93
93
  */
94
- openDocumentFromBuffer(file: PdfFile, password: string): WorkerTask<PdfDocumentObject, unknown>;
95
- /**
96
- * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentFromLoader}
97
- *
98
- * @public
99
- */
100
- openDocumentFromLoader(file: PdfFileLoader, password: string): WorkerTask<PdfDocumentObject, unknown>;
94
+ openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions): WorkerTask<PdfDocumentObject, unknown>;
101
95
  /**
102
96
  * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}
103
97
  *
@@ -133,25 +127,25 @@ export declare class WebWorkerEngine implements PdfEngine {
133
127
  *
134
128
  * @public
135
129
  */
136
- renderPage(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, options: PdfRenderOptions, imageType?: ImageConversionTypes): WorkerTask<Blob, unknown>;
130
+ renderPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions): WorkerTask<Blob, unknown>;
137
131
  /**
138
132
  * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}
139
133
  *
140
134
  * @public
141
135
  */
142
- renderPageRect(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, rect: Rect, options: PdfRenderOptions, imageType?: ImageConversionTypes): WorkerTask<Blob, unknown>;
136
+ renderPageRect(doc: PdfDocumentObject, page: PdfPageObject, rect: Rect, options?: PdfRenderPageOptions): WorkerTask<Blob, unknown>;
143
137
  /**
144
138
  * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}
145
139
  *
146
140
  * @public
147
141
  */
148
- renderAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject, scaleFactor: number, rotation: Rotation, dpr: number, mode: AppearanceMode, imageType: ImageConversionTypes): WorkerTask<Blob, unknown>;
142
+ renderPageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject, options?: PdfRenderPageAnnotationOptions): WorkerTask<Blob, unknown>;
149
143
  /**
150
144
  * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}
151
145
  *
152
146
  * @public
153
147
  */
154
- getAllAnnotations(doc: PdfDocumentObject): WorkerTask<Record<number, PdfAnnotationObject[]>, PdfPageWithAnnotations>;
148
+ getAllAnnotations(doc: PdfDocumentObject): WorkerTask<Record<number, PdfAnnotationObject[]>, PdfAnnotationsProgress>;
155
149
  /**
156
150
  * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}
157
151
  *
@@ -163,7 +157,7 @@ export declare class WebWorkerEngine implements PdfEngine {
163
157
  *
164
158
  * @public
165
159
  */
166
- createPageAnnotation<A extends PdfAnnotationObject>(doc: PdfDocumentObject, page: PdfPageObject, annotation: A, context?: AnnotationCreateContext<A>): WorkerTask<number, unknown>;
160
+ createPageAnnotation<A extends PdfAnnotationObject>(doc: PdfDocumentObject, page: PdfPageObject, annotation: A, context?: AnnotationCreateContext<A>): WorkerTask<string, unknown>;
167
161
  updatePageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): WorkerTask<boolean, unknown>;
168
162
  /**
169
163
  * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}
@@ -176,19 +170,19 @@ export declare class WebWorkerEngine implements PdfEngine {
176
170
  *
177
171
  * @public
178
172
  */
179
- getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation): WorkerTask<PdfTextRectObject[], unknown>;
173
+ getPageTextRects(doc: PdfDocumentObject, page: PdfPageObject): WorkerTask<PdfTextRectObject[], unknown>;
180
174
  /**
181
175
  * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}
182
176
  *
183
177
  * @public
184
178
  */
185
- renderThumbnail(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number): WorkerTask<Blob, unknown>;
179
+ renderThumbnail(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderThumbnailOptions): WorkerTask<Blob, unknown>;
186
180
  /**
187
181
  * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}
188
182
  *
189
183
  * @public
190
184
  */
191
- searchAllPages(doc: PdfDocumentObject, keyword: string, flags?: MatchFlag[]): WorkerTask<SearchAllPagesResult, PdfPageSearchProgress>;
185
+ searchAllPages(doc: PdfDocumentObject, keyword: string, options?: PdfSearchAllPagesOptions): WorkerTask<SearchAllPagesResult, PdfPageSearchProgress>;
192
186
  /**
193
187
  * {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}
194
188
  *
@@ -218,13 +212,19 @@ export declare class WebWorkerEngine implements PdfEngine {
218
212
  *
219
213
  * @public
220
214
  */
221
- flattenPage(doc: PdfDocumentObject, page: PdfPageObject, flag: PdfPageFlattenFlag): WorkerTask<PdfPageFlattenResult, unknown>;
215
+ flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions): WorkerTask<PdfPageFlattenResult, unknown>;
222
216
  /**
223
217
  * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}
224
218
  *
225
219
  * @public
226
220
  */
227
221
  extractPages(doc: PdfDocumentObject, pageIndexes: number[]): WorkerTask<ArrayBuffer, unknown>;
222
+ /**
223
+ * {@inheritDoc @embedpdf/models!PdfEngine.redactTextInQuads}
224
+ *
225
+ * @public
226
+ */
227
+ redactTextInRects(doc: PdfDocumentObject, page: PdfPageObject, rects: Rect[], options?: PdfRedactTextOptions): WorkerTask<boolean, unknown>;
228
228
  /**
229
229
  * {@inheritDoc @embedpdf/models!PdfEngine.extractText}
230
230
  *
@@ -158,30 +158,11 @@ const _WebWorkerEngine = class _WebWorkerEngine {
158
158
  *
159
159
  * @public
160
160
  */
161
- openDocumentFromBuffer(file, password) {
162
- this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "openDocumentFromBuffer", file, password);
161
+ openDocumentBuffer(file, options) {
162
+ this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "openDocumentBuffer", file, options);
163
163
  const requestId = this.generateRequestId(file.id);
164
164
  const task = new WorkerTask(this.worker, requestId);
165
- const request = createRequest(requestId, "openDocumentFromBuffer", [
166
- file,
167
- password
168
- ]);
169
- this.proxy(task, request);
170
- return task;
171
- }
172
- /**
173
- * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentFromLoader}
174
- *
175
- * @public
176
- */
177
- openDocumentFromLoader(file, password) {
178
- this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "openDocumentFromLoader", file, password);
179
- const requestId = this.generateRequestId(file.id);
180
- const task = new WorkerTask(this.worker, requestId);
181
- const request = createRequest(requestId, "openDocumentFromLoader", [
182
- file,
183
- password
184
- ]);
165
+ const request = createRequest(requestId, "openDocumentBuffer", [file, options]);
185
166
  this.proxy(task, request);
186
167
  return task;
187
168
  }
@@ -255,29 +236,11 @@ const _WebWorkerEngine = class _WebWorkerEngine {
255
236
  *
256
237
  * @public
257
238
  */
258
- renderPage(doc, page, scaleFactor, rotation, dpr, options, imageType = "image/webp") {
259
- this.logger.debug(
260
- LOG_SOURCE,
261
- LOG_CATEGORY,
262
- "renderPage",
263
- doc,
264
- page,
265
- scaleFactor,
266
- rotation,
267
- dpr,
268
- options
269
- );
239
+ renderPage(doc, page, options) {
240
+ this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "renderPage", doc, page, options);
270
241
  const requestId = this.generateRequestId(doc.id);
271
242
  const task = new WorkerTask(this.worker, requestId);
272
- const request = createRequest(requestId, "renderPage", [
273
- doc,
274
- page,
275
- scaleFactor,
276
- rotation,
277
- dpr,
278
- options,
279
- imageType
280
- ]);
243
+ const request = createRequest(requestId, "renderPage", [doc, page, options]);
281
244
  this.proxy(task, request);
282
245
  return task;
283
246
  }
@@ -286,30 +249,15 @@ const _WebWorkerEngine = class _WebWorkerEngine {
286
249
  *
287
250
  * @public
288
251
  */
289
- renderPageRect(doc, page, scaleFactor, rotation, dpr, rect, options, imageType = "image/webp") {
290
- this.logger.debug(
291
- LOG_SOURCE,
292
- LOG_CATEGORY,
293
- "renderPageRect",
294
- doc,
295
- page,
296
- scaleFactor,
297
- rotation,
298
- dpr,
299
- rect,
300
- options
301
- );
252
+ renderPageRect(doc, page, rect, options) {
253
+ this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "renderPageRect", doc, page, rect, options);
302
254
  const requestId = this.generateRequestId(doc.id);
303
255
  const task = new WorkerTask(this.worker, requestId);
304
256
  const request = createRequest(requestId, "renderPageRect", [
305
257
  doc,
306
258
  page,
307
- scaleFactor,
308
- rotation,
309
- dpr,
310
259
  rect,
311
- options,
312
- imageType
260
+ options
313
261
  ]);
314
262
  this.proxy(task, request);
315
263
  return task;
@@ -319,31 +267,15 @@ const _WebWorkerEngine = class _WebWorkerEngine {
319
267
  *
320
268
  * @public
321
269
  */
322
- renderAnnotation(doc, page, annotation, scaleFactor, rotation, dpr, mode, imageType) {
323
- this.logger.debug(
324
- LOG_SOURCE,
325
- LOG_CATEGORY,
326
- "renderAnnotation",
327
- doc,
328
- page,
329
- annotation,
330
- scaleFactor,
331
- rotation,
332
- dpr,
333
- mode,
334
- imageType
335
- );
270
+ renderPageAnnotation(doc, page, annotation, options) {
271
+ this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "renderAnnotation", doc, page, annotation, options);
336
272
  const requestId = this.generateRequestId(doc.id);
337
273
  const task = new WorkerTask(this.worker, requestId);
338
- const request = createRequest(requestId, "renderAnnotation", [
274
+ const request = createRequest(requestId, "renderPageAnnotation", [
339
275
  doc,
340
276
  page,
341
277
  annotation,
342
- scaleFactor,
343
- rotation,
344
- dpr,
345
- mode,
346
- imageType
278
+ options
347
279
  ]);
348
280
  this.proxy(task, request);
349
281
  return task;
@@ -437,24 +369,11 @@ const _WebWorkerEngine = class _WebWorkerEngine {
437
369
  *
438
370
  * @public
439
371
  */
440
- getPageTextRects(doc, page, scaleFactor, rotation) {
441
- this.logger.debug(
442
- LOG_SOURCE,
443
- LOG_CATEGORY,
444
- "getPageTextRects",
445
- doc,
446
- page,
447
- scaleFactor,
448
- rotation
449
- );
372
+ getPageTextRects(doc, page) {
373
+ this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "getPageTextRects", doc, page);
450
374
  const requestId = this.generateRequestId(doc.id);
451
375
  const task = new WorkerTask(this.worker, requestId);
452
- const request = createRequest(requestId, "getPageTextRects", [
453
- doc,
454
- page,
455
- scaleFactor,
456
- rotation
457
- ]);
376
+ const request = createRequest(requestId, "getPageTextRects", [doc, page]);
458
377
  this.proxy(task, request);
459
378
  return task;
460
379
  }
@@ -463,25 +382,14 @@ const _WebWorkerEngine = class _WebWorkerEngine {
463
382
  *
464
383
  * @public
465
384
  */
466
- renderThumbnail(doc, page, scaleFactor, rotation, dpr) {
467
- this.logger.debug(
468
- LOG_SOURCE,
469
- LOG_CATEGORY,
470
- "renderThumbnail",
471
- doc,
472
- page,
473
- scaleFactor,
474
- rotation,
475
- dpr
476
- );
385
+ renderThumbnail(doc, page, options) {
386
+ this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "renderThumbnail", doc, page, options);
477
387
  const requestId = this.generateRequestId(doc.id);
478
388
  const task = new WorkerTask(this.worker, requestId);
479
389
  const request = createRequest(requestId, "renderThumbnail", [
480
390
  doc,
481
391
  page,
482
- scaleFactor,
483
- rotation,
484
- dpr
392
+ options
485
393
  ]);
486
394
  this.proxy(task, request);
487
395
  return task;
@@ -491,8 +399,8 @@ const _WebWorkerEngine = class _WebWorkerEngine {
491
399
  *
492
400
  * @public
493
401
  */
494
- searchAllPages(doc, keyword, flags = []) {
495
- this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "searchAllPages", doc, keyword, flags);
402
+ searchAllPages(doc, keyword, options) {
403
+ this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "searchAllPages", doc, keyword, options);
496
404
  const requestId = this.generateRequestId(doc.id);
497
405
  const task = new WorkerTask(
498
406
  this.worker,
@@ -501,7 +409,7 @@ const _WebWorkerEngine = class _WebWorkerEngine {
501
409
  const request = createRequest(requestId, "searchAllPages", [
502
410
  doc,
503
411
  keyword,
504
- flags
412
+ options
505
413
  ]);
506
414
  this.proxy(task, request);
507
415
  return task;
@@ -571,11 +479,11 @@ const _WebWorkerEngine = class _WebWorkerEngine {
571
479
  *
572
480
  * @public
573
481
  */
574
- flattenPage(doc, page, flag) {
575
- this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "flattenPage", doc, page, flag);
482
+ flattenPage(doc, page, options) {
483
+ this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "flattenPage", doc, page, options);
576
484
  const requestId = this.generateRequestId(doc.id);
577
485
  const task = new WorkerTask(this.worker, requestId);
578
- const request = createRequest(requestId, "flattenPage", [doc, page, flag]);
486
+ const request = createRequest(requestId, "flattenPage", [doc, page, options]);
579
487
  this.proxy(task, request);
580
488
  return task;
581
489
  }
@@ -592,6 +500,24 @@ const _WebWorkerEngine = class _WebWorkerEngine {
592
500
  this.proxy(task, request);
593
501
  return task;
594
502
  }
503
+ /**
504
+ * {@inheritDoc @embedpdf/models!PdfEngine.redactTextInQuads}
505
+ *
506
+ * @public
507
+ */
508
+ redactTextInRects(doc, page, rects, options) {
509
+ this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "redactTextInRects", doc, page, rects, options);
510
+ const requestId = this.generateRequestId(doc.id);
511
+ const task = new WorkerTask(this.worker, requestId);
512
+ const request = createRequest(requestId, "redactTextInRects", [
513
+ doc,
514
+ page,
515
+ rects,
516
+ options
517
+ ]);
518
+ this.proxy(task, request);
519
+ return task;
520
+ }
595
521
  /**
596
522
  * {@inheritDoc @embedpdf/models!PdfEngine.extractText}
597
523
  *