@embedpdf/engines 2.9.1 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/{direct-engine-D-Jf9yyY.js → direct-engine-4LZYs06h.js} +1069 -262
  2. package/dist/direct-engine-4LZYs06h.js.map +1 -0
  3. package/dist/direct-engine-C29Euebw.cjs +2 -0
  4. package/dist/direct-engine-C29Euebw.cjs.map +1 -0
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.js +165 -143
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/orchestrator/pdf-engine.d.ts +8 -1
  10. package/dist/lib/orchestrator/remote-executor.d.ts +8 -1
  11. package/dist/lib/pdfium/cache.d.ts +5 -4
  12. package/dist/lib/pdfium/engine.d.ts +40 -6
  13. package/dist/lib/pdfium/index.cjs +1 -1
  14. package/dist/lib/pdfium/index.cjs.map +1 -1
  15. package/dist/lib/pdfium/index.js +3 -3
  16. package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
  17. package/dist/lib/pdfium/web/direct-engine.js +2 -2
  18. package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
  19. package/dist/lib/pdfium/web/worker-engine.cjs.map +1 -1
  20. package/dist/lib/pdfium/web/worker-engine.js +32 -2
  21. package/dist/lib/pdfium/web/worker-engine.js.map +1 -1
  22. package/dist/lib/webworker/engine.cjs +1 -1
  23. package/dist/lib/webworker/engine.cjs.map +1 -1
  24. package/dist/lib/webworker/engine.d.ts +19 -1
  25. package/dist/lib/webworker/engine.js +104 -0
  26. package/dist/lib/webworker/engine.js.map +1 -1
  27. package/dist/lib/webworker/runner.d.ts +19 -5
  28. package/dist/pdf-engine-BeHgaBOW.cjs +2 -0
  29. package/dist/pdf-engine-BeHgaBOW.cjs.map +1 -0
  30. package/dist/{pdf-engine-ZvReuoDb.js → pdf-engine-sORqXhQk.js} +74 -1
  31. package/dist/pdf-engine-sORqXhQk.js.map +1 -0
  32. package/dist/preact/index.cjs +1 -1
  33. package/dist/preact/index.cjs.map +1 -1
  34. package/dist/preact/index.js +1 -1
  35. package/dist/react/index.cjs +1 -1
  36. package/dist/react/index.cjs.map +1 -1
  37. package/dist/react/index.js +1 -1
  38. package/dist/svelte/index.cjs +1 -1
  39. package/dist/svelte/index.cjs.map +1 -1
  40. package/dist/svelte/index.js +1 -1
  41. package/dist/vue/index.cjs +1 -1
  42. package/dist/vue/index.cjs.map +1 -1
  43. package/dist/vue/index.js +1 -1
  44. package/package.json +7 -7
  45. package/dist/direct-engine-CDxs18JK.cjs +0 -2
  46. package/dist/direct-engine-CDxs18JK.cjs.map +0 -1
  47. package/dist/direct-engine-D-Jf9yyY.js.map +0 -1
  48. package/dist/pdf-engine-DeyImjZt.cjs +0 -2
  49. package/dist/pdf-engine-DeyImjZt.cjs.map +0 -1
  50. package/dist/pdf-engine-ZvReuoDb.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./lib/pdfium/index.cjs"),r=require("./lib/webworker/engine.cjs"),t=require("@embedpdf/models"),a=require("./direct-engine-CDxs18JK.cjs"),s=require("./browser-13mzox-R.cjs"),o=require("./pdf-engine-DeyImjZt.cjs"),n=require("./lib/pdfium/web/worker-engine.cjs"),c="WebWorkerEngineRunner",i="Engine";exports.DEFAULT_PDFIUM_WASM_URL=e.DEFAULT_PDFIUM_WASM_URL,exports.FONT_CDN_URLS=e.FONT_CDN_URLS,exports.cdnFontConfig=e.cdnFontConfig,exports.createCdnFontConfig=e.createCdnFontConfig,exports.WebWorkerEngine=r.WebWorkerEngine,exports.WorkerTask=r.WorkerTask,Object.defineProperty(exports,"FontCharset",{enumerable:!0,get:()=>t.FontCharset}),exports.BitmapFormat=a.BitmapFormat,exports.FontFallbackManager=a.FontFallbackManager,exports.PdfiumErrorCode=a.PdfiumErrorCode,exports.PdfiumNative=a.PdfiumNative,exports.RenderFlag=a.RenderFlag,exports.computeFormDrawParams=a.computeFormDrawParams,exports.createNodeFontLoader=a.createNodeFontLoader,exports.createPdfiumDirectEngine=a.createPdfiumEngine,exports.isValidCustomKey=a.isValidCustomKey,exports.readArrayBuffer=a.readArrayBuffer,exports.readString=a.readString,exports.ImageConverterError=s.ImageConverterError,exports.browserImageDataToBlobConverter=s.browserImageDataToBlobConverter,exports.createHybridImageConverter=s.createHybridImageConverter,exports.createWorkerPoolImageConverter=s.createWorkerPoolImageConverter,exports.PdfEngine=o.PdfEngine,exports.createPdfiumWorkerEngine=n.createPdfiumEngine,exports.EngineRunner=class{constructor(e=new t.NoopLogger){this.logger=e,this.execute=async e=>{if(this.logger.debug(c,i,"runner start exeucte request"),!this.engine){const r={type:"reject",reason:{code:t.PdfErrorCode.NotReady,message:"engine has not started yet"}},a={id:e.id,type:"ExecuteResponse",data:{type:"error",value:r}};return void this.respond(a)}const r=this.engine,{name:a,args:s}=e.data;if(!r[a]){const r={type:"reject",reason:{code:t.PdfErrorCode.NotSupport,message:`engine method ${a} is not supported yet`}},s={id:e.id,type:"ExecuteResponse",data:{type:"error",value:r}};return void this.respond(s)}let o;switch(a){case"isSupport":o=r.isSupport(...s);break;case"destroy":o=r.destroy(...s);break;case"openDocumentUrl":o=r.openDocumentUrl(...s);break;case"openDocumentBuffer":o=r.openDocumentBuffer(...s);break;case"getDocPermissions":o=r.getDocPermissions(...s);break;case"getDocUserPermissions":o=r.getDocUserPermissions(...s);break;case"getMetadata":o=r.getMetadata(...s);break;case"setMetadata":o=r.setMetadata(...s);break;case"getBookmarks":o=r.getBookmarks(...s);break;case"setBookmarks":o=r.setBookmarks(...s);break;case"deleteBookmarks":o=r.deleteBookmarks(...s);break;case"getSignatures":o=r.getSignatures(...s);break;case"renderPage":o=r.renderPage(...s);break;case"renderPageRect":o=r.renderPageRect(...s);break;case"renderPageRaw":o=r.renderPageRaw(...s);break;case"renderPageRectRaw":o=r.renderPageRectRaw(...s);break;case"renderPageAnnotation":o=r.renderPageAnnotation(...s);break;case"renderPageAnnotations":o=r.renderPageAnnotations(...s);break;case"renderPageAnnotationsRaw":o=r.renderPageAnnotationsRaw(...s);break;case"renderThumbnail":o=r.renderThumbnail(...s);break;case"getAllAnnotations":o=r.getAllAnnotations(...s);break;case"getPageAnnotations":o=r.getPageAnnotations(...s);break;case"createPageAnnotation":o=r.createPageAnnotation(...s);break;case"updatePageAnnotation":o=r.updatePageAnnotation(...s);break;case"removePageAnnotation":o=r.removePageAnnotation(...s);break;case"getPageTextRects":o=r.getPageTextRects(...s);break;case"searchAllPages":o=r.searchAllPages(...s);break;case"closeDocument":o=r.closeDocument(...s);break;case"closeAllDocuments":o=r.closeAllDocuments(...s);break;case"saveAsCopy":o=r.saveAsCopy(...s);break;case"getAttachments":o=r.getAttachments(...s);break;case"addAttachment":o=r.addAttachment(...s);break;case"removeAttachment":o=r.removeAttachment(...s);break;case"readAttachmentContent":o=r.readAttachmentContent(...s);break;case"setFormFieldValue":o=r.setFormFieldValue(...s);break;case"flattenPage":o=r.flattenPage(...s);break;case"extractPages":o=r.extractPages(...s);break;case"extractText":o=r.extractText(...s);break;case"redactTextInRects":o=r.redactTextInRects(...s);break;case"applyRedaction":o=r.applyRedaction(...s);break;case"applyAllRedactions":o=r.applyAllRedactions(...s);break;case"flattenAnnotation":o=r.flattenAnnotation(...s);break;case"getTextSlices":o=r.getTextSlices(...s);break;case"getPageGlyphs":o=r.getPageGlyphs(...s);break;case"getPageGeometry":o=r.getPageGeometry(...s);break;case"getPageTextRuns":o=r.getPageTextRuns(...s);break;case"merge":o=r.merge(...s);break;case"mergePages":o=r.mergePages(...s);break;case"preparePrintDocument":o=r.preparePrintDocument(...s);break;case"setDocumentEncryption":o=r.setDocumentEncryption(...s);break;case"removeEncryption":o=r.removeEncryption(...s);break;case"unlockOwnerPermissions":o=r.unlockOwnerPermissions(...s);break;case"isEncrypted":o=r.isEncrypted(...s);break;case"isOwnerUnlocked":o=r.isOwnerUnlocked(...s);break;default:const n={type:"reject",reason:{code:t.PdfErrorCode.NotSupport,message:`engine method ${a} is not supported`}},c={id:e.id,type:"ExecuteResponse",data:{type:"error",value:n}};return void this.respond(c)}o.onProgress(r=>{const t={id:e.id,type:"ExecuteProgress",data:r};this.respond(t)}),o.wait(r=>{const t={id:e.id,type:"ExecuteResponse",data:{type:"result",value:r}};this.respond(t)},r=>{const t={id:e.id,type:"ExecuteResponse",data:{type:"error",value:r}};this.respond(t)})}}listen(){self.onmessage=e=>this.handle(e)}handle(e){this.logger.debug(c,i,"webworker receive message event: ",e.data);try{const r=e.data;if("ExecuteRequest"===r.type)this.execute(r)}catch(r){this.logger.info(c,i,"webworker met error when processing message event:",r)}}ready(){this.listen(),this.respond({id:"0",type:"ReadyResponse"}),this.logger.debug(c,i,"runner is ready")}respond(e){this.logger.debug(c,i,"runner respond: ",e),self.postMessage(e)}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./lib/pdfium/index.cjs"),t=require("./lib/webworker/engine.cjs"),r=require("@embedpdf/models"),a=require("./direct-engine-C29Euebw.cjs"),s=require("./browser-13mzox-R.cjs"),n=require("./pdf-engine-BeHgaBOW.cjs"),i=require("./lib/pdfium/web/worker-engine.cjs"),o="WebWorkerEngineRunner",d="Engine";exports.DEFAULT_PDFIUM_WASM_URL=e.DEFAULT_PDFIUM_WASM_URL,exports.FONT_CDN_URLS=e.FONT_CDN_URLS,exports.cdnFontConfig=e.cdnFontConfig,exports.createCdnFontConfig=e.createCdnFontConfig,exports.WebWorkerEngine=t.WebWorkerEngine,exports.WorkerTask=t.WorkerTask,Object.defineProperty(exports,"FontCharset",{enumerable:!0,get:()=>r.FontCharset}),exports.BitmapFormat=a.BitmapFormat,exports.FontFallbackManager=a.FontFallbackManager,exports.PdfiumErrorCode=a.PdfiumErrorCode,exports.PdfiumNative=a.PdfiumNative,exports.RenderFlag=a.RenderFlag,exports.computeFormDrawParams=a.computeFormDrawParams,exports.createNodeFontLoader=a.createNodeFontLoader,exports.createPdfiumDirectEngine=a.createPdfiumEngine,exports.isValidCustomKey=a.isValidCustomKey,exports.readArrayBuffer=a.readArrayBuffer,exports.readString=a.readString,exports.ImageConverterError=s.ImageConverterError,exports.browserImageDataToBlobConverter=s.browserImageDataToBlobConverter,exports.createHybridImageConverter=s.createHybridImageConverter,exports.createWorkerPoolImageConverter=s.createWorkerPoolImageConverter,exports.PdfEngine=n.PdfEngine,exports.createPdfiumWorkerEngine=i.createPdfiumEngine,exports.EngineRunner=class{constructor(e=new r.NoopLogger){this.logger=e,this.execute=async e=>{if(this.logger.debug(o,d,"runner start exeucte request"),!this.engine){const t={type:"reject",reason:{code:r.PdfErrorCode.NotReady,message:"engine has not started yet"}},a={id:e.id,type:"ExecuteResponse",data:{type:"error",value:t}};return void this.respond(a)}const t=this.engine,{name:a,args:s}=e.data;if(!t[a]){const t={type:"reject",reason:{code:r.PdfErrorCode.NotSupport,message:`engine method ${a} is not supported yet`}},s={id:e.id,type:"ExecuteResponse",data:{type:"error",value:t}};return void this.respond(s)}switch(a){case"isSupport":return void this.handleTask(e.id,t.isSupport(...s));case"destroy":return void this.handleTask(e.id,t.destroy(...s));case"openDocumentUrl":return void this.handleTask(e.id,t.openDocumentUrl(...s));case"openDocumentBuffer":return void this.handleTask(e.id,t.openDocumentBuffer(...s));case"getDocPermissions":return void this.handleTask(e.id,t.getDocPermissions(...s));case"getDocUserPermissions":return void this.handleTask(e.id,t.getDocUserPermissions(...s));case"getMetadata":return void this.handleTask(e.id,t.getMetadata(...s));case"setMetadata":return void this.handleTask(e.id,t.setMetadata(...s));case"getBookmarks":return void this.handleTask(e.id,t.getBookmarks(...s));case"setBookmarks":return void this.handleTask(e.id,t.setBookmarks(...s));case"deleteBookmarks":return void this.handleTask(e.id,t.deleteBookmarks(...s));case"getSignatures":return void this.handleTask(e.id,t.getSignatures(...s));case"renderPage":return void this.handleTask(e.id,t.renderPage(...s));case"renderPageRect":return void this.handleTask(e.id,t.renderPageRect(...s));case"renderPageRaw":return void this.handleTask(e.id,t.renderPageRaw(...s));case"renderPageRectRaw":return void this.handleTask(e.id,t.renderPageRectRaw(...s));case"renderPageAnnotation":return void this.handleTask(e.id,t.renderPageAnnotation(...s));case"renderPageAnnotations":return void this.handleTask(e.id,t.renderPageAnnotations(...s));case"renderPageAnnotationsRaw":return void this.handleTask(e.id,t.renderPageAnnotationsRaw(...s));case"renderThumbnail":return void this.handleTask(e.id,t.renderThumbnail(...s));case"getAllAnnotations":return void this.handleTask(e.id,t.getAllAnnotations(...s));case"getPageAnnotations":return void this.handleTask(e.id,t.getPageAnnotations(...s));case"getDocumentJavaScriptActions":return void this.handleTask(e.id,t.getDocumentJavaScriptActions(...s));case"getPageAnnoWidgets":return void this.handleTask(e.id,t.getPageAnnoWidgets(...s));case"getPageWidgetJavaScriptActions":return void this.handleTask(e.id,t.getPageWidgetJavaScriptActions(...s));case"createPageAnnotation":return void this.handleTask(e.id,t.createPageAnnotation(...s));case"updatePageAnnotation":return void this.handleTask(e.id,t.updatePageAnnotation(...s));case"removePageAnnotation":return void this.handleTask(e.id,t.removePageAnnotation(...s));case"getPageTextRects":return void this.handleTask(e.id,t.getPageTextRects(...s));case"searchAllPages":return void this.handleTask(e.id,t.searchAllPages(...s));case"closeDocument":return void this.handleTask(e.id,t.closeDocument(...s));case"closeAllDocuments":return void this.handleTask(e.id,t.closeAllDocuments(...s));case"saveAsCopy":return void this.handleTask(e.id,t.saveAsCopy(...s));case"getAttachments":return void this.handleTask(e.id,t.getAttachments(...s));case"addAttachment":return void this.handleTask(e.id,t.addAttachment(...s));case"removeAttachment":return void this.handleTask(e.id,t.removeAttachment(...s));case"readAttachmentContent":return void this.handleTask(e.id,t.readAttachmentContent(...s));case"setFormFieldValue":return void this.handleTask(e.id,t.setFormFieldValue(...s));case"setFormFieldState":return void this.handleTask(e.id,t.setFormFieldState(...s));case"renameWidgetField":return void this.handleTask(e.id,t.renameWidgetField(...s));case"shareWidgetField":return void this.handleTask(e.id,t.shareWidgetField(...s));case"flattenPage":return void this.handleTask(e.id,t.flattenPage(...s));case"extractPages":return void this.handleTask(e.id,t.extractPages(...s));case"extractText":return void this.handleTask(e.id,t.extractText(...s));case"redactTextInRects":return void this.handleTask(e.id,t.redactTextInRects(...s));case"applyRedaction":return void this.handleTask(e.id,t.applyRedaction(...s));case"applyAllRedactions":return void this.handleTask(e.id,t.applyAllRedactions(...s));case"flattenAnnotation":return void this.handleTask(e.id,t.flattenAnnotation(...s));case"getTextSlices":return void this.handleTask(e.id,t.getTextSlices(...s));case"getPageGlyphs":return void this.handleTask(e.id,t.getPageGlyphs(...s));case"getPageGeometry":return void this.handleTask(e.id,t.getPageGeometry(...s));case"getPageTextRuns":return void this.handleTask(e.id,t.getPageTextRuns(...s));case"merge":return void this.handleTask(e.id,t.merge(...s));case"mergePages":return void this.handleTask(e.id,t.mergePages(...s));case"preparePrintDocument":return void this.handleTask(e.id,t.preparePrintDocument(...s));case"setDocumentEncryption":return void this.handleTask(e.id,t.setDocumentEncryption(...s));case"removeEncryption":return void this.handleTask(e.id,t.removeEncryption(...s));case"unlockOwnerPermissions":return void this.handleTask(e.id,t.unlockOwnerPermissions(...s));case"isEncrypted":return void this.handleTask(e.id,t.isEncrypted(...s));case"isOwnerUnlocked":return void this.handleTask(e.id,t.isOwnerUnlocked(...s));default:const n={type:"reject",reason:{code:r.PdfErrorCode.NotSupport,message:`engine method ${a} is not supported`}},i={id:e.id,type:"ExecuteResponse",data:{type:"error",value:n}};return void this.respond(i)}}}listen(){self.onmessage=e=>this.handle(e)}handle(e){this.logger.debug(o,d,"webworker receive message event: ",e.data);try{const t=e.data;if("ExecuteRequest"===t.type)this.execute(t)}catch(t){this.logger.info(o,d,"webworker met error when processing message event:",t)}}ready(){this.listen(),this.respond({id:"0",type:"ReadyResponse"}),this.logger.debug(o,d,"runner is ready")}handleTask(e,t){t.onProgress(t=>{const r={id:e,type:"ExecuteProgress",data:t};this.respond(r)}),t.wait(t=>{const r={id:e,type:"ExecuteResponse",data:{type:"result",value:t}};this.respond(r)},t=>{const r={id:e,type:"ExecuteResponse",data:{type:"error",value:t}};this.respond(r)})}respond(e){this.logger.debug(o,d,"runner respond: ",e),self.postMessage(e)}};
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/lib/webworker/runner.ts"],"sourcesContent":["import {\n Logger,\n NoopLogger,\n PdfEngine,\n PdfEngineError,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n PdfEngineMethodReturnType,\n PdfErrorCode,\n TaskReturn,\n} from '@embedpdf/models';\n\n/**\n * Request body that represent method calls of PdfEngine, it contains the\n * method name and arguments\n */\nexport type PdfEngineMethodRequestBody = {\n [P in PdfEngineMethodName]: {\n name: P;\n args: PdfEngineMethodArgs<P>;\n };\n}[PdfEngineMethodName];\n\n/**\n * Request body that represent method calls of PdfEngine, it contains the\n * method name and arguments\n */\nexport type SpecificExecuteRequest<M extends PdfEngineMethodName> = {\n id: string;\n type: 'ExecuteRequest';\n data: {\n name: M;\n args: PdfEngineMethodArgs<M>;\n };\n};\n\n/**\n * Response body that represent return value of PdfEngine\n */\nexport type PdfEngineMethodResponseBody = {\n [P in PdfEngineMethodName]: TaskReturn<PdfEngineMethodReturnType<P>>;\n}[PdfEngineMethodName];\n\n/**\n * Request that abort the specified task\n */\nexport interface AbortRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'AbortRequest';\n}\n/**\n * Request that execute pdf engine method\n */\nexport interface ExecuteRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'ExecuteRequest';\n /**\n * request body\n */\n data: PdfEngineMethodRequestBody;\n}\n/**\n * Response that execute pdf engine method\n */\nexport interface ExecuteResponse {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteResponse';\n /**\n * response body\n */\n data: PdfEngineMethodResponseBody;\n}\n\n/**\n * Response that indicate progress of the task\n */\nexport interface ExecuteProgress<T = unknown> {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteProgress';\n /**\n * response body\n */\n data: T;\n}\n\n/**\n * Response that indicate engine is ready\n */\nexport interface ReadyResponse {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ReadyResponse';\n}\n\n/**\n * Request type\n */\nexport type Request = ExecuteRequest | AbortRequest;\n/**\n * Response type\n */\nexport type Response = ExecuteResponse | ReadyResponse | ExecuteProgress;\n\nconst LOG_SOURCE = 'WebWorkerEngineRunner';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Pdf engine runner, it will execute pdf engine based on the request it received and\n * send back the response with post message\n */\nexport class EngineRunner {\n engine: PdfEngine | undefined;\n\n /**\n * Create instance of EngineRunnder\n * @param logger - logger instance\n */\n constructor(public logger: Logger = new NoopLogger()) {}\n\n /**\n * Listening on post message\n */\n listen() {\n self.onmessage = (evt: MessageEvent<Request>) => {\n return this.handle(evt);\n };\n }\n\n /**\n * Handle post message\n */\n handle(evt: MessageEvent<Request>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'webworker receive message event: ', evt.data);\n try {\n const request = evt.data as Request;\n switch (request.type) {\n case 'ExecuteRequest':\n this.execute(request);\n break;\n }\n } catch (e) {\n this.logger.info(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker met error when processing message event:',\n e,\n );\n }\n }\n\n /**\n * Send the ready response when pdf engine is ready\n * @returns\n *\n * @protected\n */\n ready() {\n this.listen();\n\n this.respond({\n id: '0',\n type: 'ReadyResponse',\n });\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner is ready');\n }\n\n /**\n * Execute the request\n * @param request - request that represent the pdf engine call\n * @returns\n *\n * @protected\n */\n execute = async (request: ExecuteRequest) => {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner start exeucte request');\n if (!this.engine) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotReady,\n message: 'engine has not started yet',\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n const engine = this.engine;\n const { name, args } = request.data;\n if (!engine[name]) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported yet`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n let task: PdfEngineMethodReturnType<typeof name>;\n switch (name) {\n case 'isSupport':\n task = engine.isSupport!(...args);\n break;\n case 'destroy':\n task = engine.destroy!(...args);\n break;\n case 'openDocumentUrl':\n task = engine.openDocumentUrl!(...args);\n break;\n case 'openDocumentBuffer':\n task = engine.openDocumentBuffer!(...args);\n break;\n case 'getDocPermissions':\n task = engine.getDocPermissions!(...args);\n break;\n case 'getDocUserPermissions':\n task = engine.getDocUserPermissions!(...args);\n break;\n case 'getMetadata':\n task = engine.getMetadata!(...args);\n break;\n case 'setMetadata':\n task = engine.setMetadata!(...args);\n break;\n case 'getBookmarks':\n task = engine.getBookmarks!(...args);\n break;\n case 'setBookmarks':\n task = engine.setBookmarks!(...args);\n break;\n case 'deleteBookmarks':\n task = engine.deleteBookmarks!(...args);\n break;\n case 'getSignatures':\n task = engine.getSignatures!(...args);\n break;\n case 'renderPage':\n task = engine.renderPage!(...args);\n break;\n case 'renderPageRect':\n task = engine.renderPageRect!(...args);\n break;\n case 'renderPageRaw':\n task = engine.renderPageRaw!(...args);\n break;\n case 'renderPageRectRaw':\n task = engine.renderPageRectRaw!(...args);\n break;\n case 'renderPageAnnotation':\n task = engine.renderPageAnnotation!(...args);\n break;\n case 'renderPageAnnotations':\n task = engine.renderPageAnnotations!(...args);\n break;\n case 'renderPageAnnotationsRaw':\n task = engine.renderPageAnnotationsRaw!(...args);\n break;\n case 'renderThumbnail':\n task = engine.renderThumbnail!(...args);\n break;\n case 'getAllAnnotations':\n task = engine.getAllAnnotations!(...args);\n break;\n case 'getPageAnnotations':\n task = engine.getPageAnnotations!(...args);\n break;\n case 'createPageAnnotation':\n task = engine.createPageAnnotation!(...args);\n break;\n case 'updatePageAnnotation':\n task = engine.updatePageAnnotation!(...args);\n break;\n case 'removePageAnnotation':\n task = engine.removePageAnnotation!(...args);\n break;\n case 'getPageTextRects':\n task = engine.getPageTextRects!(...args);\n break;\n case 'searchAllPages':\n task = engine.searchAllPages!(...args);\n break;\n case 'closeDocument':\n task = engine.closeDocument!(...args);\n break;\n case 'closeAllDocuments':\n task = engine.closeAllDocuments!(...args);\n break;\n case 'saveAsCopy':\n task = engine.saveAsCopy!(...args);\n break;\n case 'getAttachments':\n task = engine.getAttachments!(...args);\n break;\n case 'addAttachment':\n task = engine.addAttachment!(...args);\n break;\n case 'removeAttachment':\n task = engine.removeAttachment!(...args);\n break;\n case 'readAttachmentContent':\n task = engine.readAttachmentContent!(...args);\n break;\n case 'setFormFieldValue':\n task = engine.setFormFieldValue!(...args);\n break;\n case 'flattenPage':\n task = engine.flattenPage!(...args);\n break;\n case 'extractPages':\n task = engine.extractPages!(...args);\n break;\n case 'extractText':\n task = engine.extractText!(...args);\n break;\n case 'redactTextInRects':\n task = engine.redactTextInRects!(...args);\n break;\n case 'applyRedaction':\n task = engine.applyRedaction!(...args);\n break;\n case 'applyAllRedactions':\n task = engine.applyAllRedactions!(...args);\n break;\n case 'flattenAnnotation':\n task = engine.flattenAnnotation!(...args);\n break;\n case 'getTextSlices':\n task = engine.getTextSlices!(...args);\n break;\n case 'getPageGlyphs':\n task = engine.getPageGlyphs!(...args);\n break;\n case 'getPageGeometry':\n task = engine.getPageGeometry!(...args);\n break;\n case 'getPageTextRuns':\n task = engine.getPageTextRuns!(...args);\n break;\n case 'merge':\n task = engine.merge!(...args);\n break;\n case 'mergePages':\n task = engine.mergePages!(...args);\n break;\n case 'preparePrintDocument':\n task = engine.preparePrintDocument!(...args);\n break;\n case 'setDocumentEncryption':\n task = engine.setDocumentEncryption(...args);\n break;\n case 'removeEncryption':\n task = engine.removeEncryption(...args);\n break;\n case 'unlockOwnerPermissions':\n task = engine.unlockOwnerPermissions(...args);\n break;\n case 'isEncrypted':\n task = engine.isEncrypted(...args);\n break;\n case 'isOwnerUnlocked':\n task = engine.isOwnerUnlocked(...args);\n break;\n default:\n // This should never be reached due to the earlier check, but provides exhaustiveness\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n task.onProgress((progress) => {\n const response: ExecuteProgress = {\n id: request.id,\n type: 'ExecuteProgress',\n data: progress,\n };\n this.respond(response);\n });\n\n task.wait(\n (result) => {\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'result',\n value: result,\n },\n };\n this.respond(response);\n },\n (error) => {\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n },\n );\n };\n\n /**\n * Send back the response\n * @param response - response that needs sent back\n *\n * @protected\n */\n respond(response: Response) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner respond: ', response);\n self.postMessage(response);\n }\n}\n"],"names":["LOG_SOURCE","LOG_CATEGORY","constructor","logger","NoopLogger","this","execute","async","request","debug","engine","error","type","reason","code","PdfErrorCode","NotReady","message","response","id","data","value","respond","name","args","NotSupport","task","isSupport","destroy","openDocumentUrl","openDocumentBuffer","getDocPermissions","getDocUserPermissions","getMetadata","setMetadata","getBookmarks","setBookmarks","deleteBookmarks","getSignatures","renderPage","renderPageRect","renderPageRaw","renderPageRectRaw","renderPageAnnotation","renderPageAnnotations","renderPageAnnotationsRaw","renderThumbnail","getAllAnnotations","getPageAnnotations","createPageAnnotation","updatePageAnnotation","removePageAnnotation","getPageTextRects","searchAllPages","closeDocument","closeAllDocuments","saveAsCopy","getAttachments","addAttachment","removeAttachment","readAttachmentContent","setFormFieldValue","flattenPage","extractPages","extractText","redactTextInRects","applyRedaction","applyAllRedactions","flattenAnnotation","getTextSlices","getPageGlyphs","getPageGeometry","getPageTextRuns","merge","mergePages","preparePrintDocument","setDocumentEncryption","removeEncryption","unlockOwnerPermissions","isEncrypted","isOwnerUnlocked","onProgress","progress","wait","result","listen","self","onmessage","evt","handle","e","info","ready","postMessage"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/lib/webworker/runner.ts"],"sourcesContent":["import {\n Logger,\n NoopLogger,\n PdfEngine,\n PdfEngineError,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n PdfEngineMethodReturnType,\n PdfErrorCode,\n TaskReturn,\n} from '@embedpdf/models';\n\n/**\n * Request body that represent method calls of PdfEngine, it contains the\n * method name and arguments\n */\nexport type PdfEngineMethodRequestBody = {\n [P in PdfEngineMethodName]: {\n name: P;\n args: PdfEngineMethodArgs<P>;\n };\n}[PdfEngineMethodName];\n\n/**\n * Request body that represent method calls of PdfEngine, it contains the\n * method name and arguments\n */\nexport type SpecificExecuteRequest<M extends PdfEngineMethodName> = {\n id: string;\n type: 'ExecuteRequest';\n data: {\n name: M;\n args: PdfEngineMethodArgs<M>;\n };\n};\n\n/**\n * Response body that represent return value of PdfEngine\n */\ntype PdfEngineMethodResultValue = Extract<\n {\n [P in PdfEngineMethodName]: TaskReturn<PdfEngineMethodReturnType<P>>;\n }[PdfEngineMethodName],\n { type: 'result' }\n>['value'];\n\nexport type PdfEngineMethodResponseBody =\n | { type: 'result'; value: PdfEngineMethodResultValue }\n | { type: 'error'; value: PdfEngineError };\n\n/**\n * Request that abort the specified task\n */\nexport interface AbortRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'AbortRequest';\n}\n/**\n * Request that execute pdf engine method\n */\nexport interface ExecuteRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'ExecuteRequest';\n /**\n * request body\n */\n data: PdfEngineMethodRequestBody;\n}\n/**\n * Response that execute pdf engine method\n */\nexport type ExecuteResponse = {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteResponse';\n /**\n * response body\n */\n data: PdfEngineMethodResponseBody;\n};\n\n/**\n * Response that indicate progress of the task\n */\nexport interface ExecuteProgress<T = unknown> {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteProgress';\n /**\n * response body\n */\n data: T;\n}\n\n/**\n * Response that indicate engine is ready\n */\nexport interface ReadyResponse {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ReadyResponse';\n}\n\n/**\n * Request type\n */\nexport type Request = ExecuteRequest | AbortRequest;\n/**\n * Response type\n */\nexport type Response = ExecuteResponse | ReadyResponse | ExecuteProgress;\n\nconst LOG_SOURCE = 'WebWorkerEngineRunner';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Pdf engine runner, it will execute pdf engine based on the request it received and\n * send back the response with post message\n */\nexport class EngineRunner {\n engine: PdfEngine | undefined;\n\n /**\n * Create instance of EngineRunnder\n * @param logger - logger instance\n */\n constructor(public logger: Logger = new NoopLogger()) {}\n\n /**\n * Listening on post message\n */\n listen() {\n self.onmessage = (evt: MessageEvent<Request>) => {\n return this.handle(evt);\n };\n }\n\n /**\n * Handle post message\n */\n handle(evt: MessageEvent<Request>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'webworker receive message event: ', evt.data);\n try {\n const request = evt.data as Request;\n switch (request.type) {\n case 'ExecuteRequest':\n this.execute(request);\n break;\n }\n } catch (e) {\n this.logger.info(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker met error when processing message event:',\n e,\n );\n }\n }\n\n /**\n * Send the ready response when pdf engine is ready\n * @returns\n *\n * @protected\n */\n ready() {\n this.listen();\n\n this.respond({\n id: '0',\n type: 'ReadyResponse',\n });\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner is ready');\n }\n\n /**\n * Bind task progress and completion handlers to worker responses.\n */\n private handleTask<T extends PdfEngineMethodReturnType<PdfEngineMethodName>>(\n requestId: string,\n task: T,\n ) {\n task.onProgress((progress) => {\n const response: ExecuteProgress = {\n id: requestId,\n type: 'ExecuteProgress',\n data: progress,\n };\n this.respond(response);\n });\n\n task.wait(\n (result) => {\n const response: ExecuteResponse = {\n id: requestId,\n type: 'ExecuteResponse',\n data: {\n type: 'result',\n value: result,\n },\n };\n this.respond(response);\n },\n (error) => {\n const response: ExecuteResponse = {\n id: requestId,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n },\n );\n }\n\n /**\n * Execute the request\n * @param request - request that represent the pdf engine call\n * @returns\n *\n * @protected\n */\n execute = async (request: ExecuteRequest) => {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner start exeucte request');\n if (!this.engine) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotReady,\n message: 'engine has not started yet',\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n const engine = this.engine;\n const { name, args } = request.data;\n if (!engine[name]) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported yet`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n switch (name) {\n case 'isSupport':\n this.handleTask(request.id, engine.isSupport!(...args));\n return;\n case 'destroy':\n this.handleTask(request.id, engine.destroy!(...args));\n return;\n case 'openDocumentUrl':\n this.handleTask(request.id, engine.openDocumentUrl!(...args));\n return;\n case 'openDocumentBuffer':\n this.handleTask(request.id, engine.openDocumentBuffer!(...args));\n return;\n case 'getDocPermissions':\n this.handleTask(request.id, engine.getDocPermissions!(...args));\n return;\n case 'getDocUserPermissions':\n this.handleTask(request.id, engine.getDocUserPermissions!(...args));\n return;\n case 'getMetadata':\n this.handleTask(request.id, engine.getMetadata!(...args));\n return;\n case 'setMetadata':\n this.handleTask(request.id, engine.setMetadata!(...args));\n return;\n case 'getBookmarks':\n this.handleTask(request.id, engine.getBookmarks!(...args));\n return;\n case 'setBookmarks':\n this.handleTask(request.id, engine.setBookmarks!(...args));\n return;\n case 'deleteBookmarks':\n this.handleTask(request.id, engine.deleteBookmarks!(...args));\n return;\n case 'getSignatures':\n this.handleTask(request.id, engine.getSignatures!(...args));\n return;\n case 'renderPage':\n this.handleTask(request.id, engine.renderPage!(...args));\n return;\n case 'renderPageRect':\n this.handleTask(request.id, engine.renderPageRect!(...args));\n return;\n case 'renderPageRaw':\n this.handleTask(request.id, engine.renderPageRaw!(...args));\n return;\n case 'renderPageRectRaw':\n this.handleTask(request.id, engine.renderPageRectRaw!(...args));\n return;\n case 'renderPageAnnotation':\n this.handleTask(request.id, engine.renderPageAnnotation!(...args));\n return;\n case 'renderPageAnnotations':\n this.handleTask(request.id, engine.renderPageAnnotations!(...args));\n return;\n case 'renderPageAnnotationsRaw':\n this.handleTask(request.id, engine.renderPageAnnotationsRaw!(...args));\n return;\n case 'renderThumbnail':\n this.handleTask(request.id, engine.renderThumbnail!(...args));\n return;\n case 'getAllAnnotations':\n this.handleTask(request.id, engine.getAllAnnotations!(...args));\n return;\n case 'getPageAnnotations':\n this.handleTask(request.id, engine.getPageAnnotations!(...args));\n return;\n case 'getDocumentJavaScriptActions':\n this.handleTask(request.id, engine.getDocumentJavaScriptActions!(...args));\n return;\n case 'getPageAnnoWidgets':\n this.handleTask(request.id, engine.getPageAnnoWidgets!(...args));\n return;\n case 'getPageWidgetJavaScriptActions':\n this.handleTask(request.id, engine.getPageWidgetJavaScriptActions!(...args));\n return;\n case 'createPageAnnotation':\n this.handleTask(request.id, engine.createPageAnnotation!(...args));\n return;\n case 'updatePageAnnotation':\n this.handleTask(request.id, engine.updatePageAnnotation!(...args));\n return;\n case 'removePageAnnotation':\n this.handleTask(request.id, engine.removePageAnnotation!(...args));\n return;\n case 'getPageTextRects':\n this.handleTask(request.id, engine.getPageTextRects!(...args));\n return;\n case 'searchAllPages':\n this.handleTask(request.id, engine.searchAllPages!(...args));\n return;\n case 'closeDocument':\n this.handleTask(request.id, engine.closeDocument!(...args));\n return;\n case 'closeAllDocuments':\n this.handleTask(request.id, engine.closeAllDocuments!(...args));\n return;\n case 'saveAsCopy':\n this.handleTask(request.id, engine.saveAsCopy!(...args));\n return;\n case 'getAttachments':\n this.handleTask(request.id, engine.getAttachments!(...args));\n return;\n case 'addAttachment':\n this.handleTask(request.id, engine.addAttachment!(...args));\n return;\n case 'removeAttachment':\n this.handleTask(request.id, engine.removeAttachment!(...args));\n return;\n case 'readAttachmentContent':\n this.handleTask(request.id, engine.readAttachmentContent!(...args));\n return;\n case 'setFormFieldValue':\n this.handleTask(request.id, engine.setFormFieldValue!(...args));\n return;\n case 'setFormFieldState':\n this.handleTask(request.id, engine.setFormFieldState!(...args));\n return;\n case 'renameWidgetField':\n this.handleTask(request.id, engine.renameWidgetField!(...args));\n return;\n case 'shareWidgetField':\n this.handleTask(request.id, engine.shareWidgetField!(...args));\n return;\n case 'flattenPage':\n this.handleTask(request.id, engine.flattenPage!(...args));\n return;\n case 'extractPages':\n this.handleTask(request.id, engine.extractPages!(...args));\n return;\n case 'extractText':\n this.handleTask(request.id, engine.extractText!(...args));\n return;\n case 'redactTextInRects':\n this.handleTask(request.id, engine.redactTextInRects!(...args));\n return;\n case 'applyRedaction':\n this.handleTask(request.id, engine.applyRedaction!(...args));\n return;\n case 'applyAllRedactions':\n this.handleTask(request.id, engine.applyAllRedactions!(...args));\n return;\n case 'flattenAnnotation':\n this.handleTask(request.id, engine.flattenAnnotation!(...args));\n return;\n case 'getTextSlices':\n this.handleTask(request.id, engine.getTextSlices!(...args));\n return;\n case 'getPageGlyphs':\n this.handleTask(request.id, engine.getPageGlyphs!(...args));\n return;\n case 'getPageGeometry':\n this.handleTask(request.id, engine.getPageGeometry!(...args));\n return;\n case 'getPageTextRuns':\n this.handleTask(request.id, engine.getPageTextRuns!(...args));\n return;\n case 'merge':\n this.handleTask(request.id, engine.merge!(...args));\n return;\n case 'mergePages':\n this.handleTask(request.id, engine.mergePages!(...args));\n return;\n case 'preparePrintDocument':\n this.handleTask(request.id, engine.preparePrintDocument!(...args));\n return;\n case 'setDocumentEncryption':\n this.handleTask(request.id, engine.setDocumentEncryption(...args));\n return;\n case 'removeEncryption':\n this.handleTask(request.id, engine.removeEncryption(...args));\n return;\n case 'unlockOwnerPermissions':\n this.handleTask(request.id, engine.unlockOwnerPermissions(...args));\n return;\n case 'isEncrypted':\n this.handleTask(request.id, engine.isEncrypted(...args));\n return;\n case 'isOwnerUnlocked':\n this.handleTask(request.id, engine.isOwnerUnlocked(...args));\n return;\n default:\n // This should never be reached due to the earlier check, but provides exhaustiveness\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n };\n\n /**\n * Send back the response\n * @param response - response that needs sent back\n *\n * @protected\n */\n respond(response: Response) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner respond: ', response);\n self.postMessage(response);\n }\n}\n"],"names":["LOG_SOURCE","LOG_CATEGORY","constructor","logger","NoopLogger","this","execute","async","request","debug","engine","error","type","reason","code","PdfErrorCode","NotReady","message","response","id","data","value","respond","name","args","NotSupport","handleTask","isSupport","destroy","openDocumentUrl","openDocumentBuffer","getDocPermissions","getDocUserPermissions","getMetadata","setMetadata","getBookmarks","setBookmarks","deleteBookmarks","getSignatures","renderPage","renderPageRect","renderPageRaw","renderPageRectRaw","renderPageAnnotation","renderPageAnnotations","renderPageAnnotationsRaw","renderThumbnail","getAllAnnotations","getPageAnnotations","getDocumentJavaScriptActions","getPageAnnoWidgets","getPageWidgetJavaScriptActions","createPageAnnotation","updatePageAnnotation","removePageAnnotation","getPageTextRects","searchAllPages","closeDocument","closeAllDocuments","saveAsCopy","getAttachments","addAttachment","removeAttachment","readAttachmentContent","setFormFieldValue","setFormFieldState","renameWidgetField","shareWidgetField","flattenPage","extractPages","extractText","redactTextInRects","applyRedaction","applyAllRedactions","flattenAnnotation","getTextSlices","getPageGlyphs","getPageGeometry","getPageTextRuns","merge","mergePages","preparePrintDocument","setDocumentEncryption","removeEncryption","unlockOwnerPermissions","isEncrypted","isOwnerUnlocked","listen","self","onmessage","evt","handle","e","info","ready","requestId","task","onProgress","progress","wait","result","postMessage"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,9 +2,9 @@ import { DEFAULT_PDFIUM_WASM_URL, FONT_CDN_URLS, cdnFontConfig, createCdnFontCon
2
2
  import { WebWorkerEngine, WorkerTask } from "./lib/webworker/engine.js";
3
3
  import { NoopLogger, PdfErrorCode } from "@embedpdf/models";
4
4
  import { FontCharset } from "@embedpdf/models";
5
- import { B, F, P, a, R, c, b, d, i, r, e } from "./direct-engine-D-Jf9yyY.js";
5
+ import { B, F, P, a, R, c, b, d, i, r, e } from "./direct-engine-4LZYs06h.js";
6
6
  import { I, b as b2, c as c2, a as a2 } from "./browser-BISJ9naB.js";
7
- import { P as P2 } from "./pdf-engine-ZvReuoDb.js";
7
+ import { P as P2 } from "./pdf-engine-sORqXhQk.js";
8
8
  import { createPdfiumEngine } from "./lib/pdfium/web/worker-engine.js";
9
9
  const LOG_SOURCE = "WebWorkerEngineRunner";
10
10
  const LOG_CATEGORY = "Engine";
@@ -57,170 +57,187 @@ class EngineRunner {
57
57
  this.respond(response);
58
58
  return;
59
59
  }
60
- let task;
61
60
  switch (name) {
62
61
  case "isSupport":
63
- task = engine.isSupport(...args);
64
- break;
62
+ this.handleTask(request.id, engine.isSupport(...args));
63
+ return;
65
64
  case "destroy":
66
- task = engine.destroy(...args);
67
- break;
65
+ this.handleTask(request.id, engine.destroy(...args));
66
+ return;
68
67
  case "openDocumentUrl":
69
- task = engine.openDocumentUrl(...args);
70
- break;
68
+ this.handleTask(request.id, engine.openDocumentUrl(...args));
69
+ return;
71
70
  case "openDocumentBuffer":
72
- task = engine.openDocumentBuffer(...args);
73
- break;
71
+ this.handleTask(request.id, engine.openDocumentBuffer(...args));
72
+ return;
74
73
  case "getDocPermissions":
75
- task = engine.getDocPermissions(...args);
76
- break;
74
+ this.handleTask(request.id, engine.getDocPermissions(...args));
75
+ return;
77
76
  case "getDocUserPermissions":
78
- task = engine.getDocUserPermissions(...args);
79
- break;
77
+ this.handleTask(request.id, engine.getDocUserPermissions(...args));
78
+ return;
80
79
  case "getMetadata":
81
- task = engine.getMetadata(...args);
82
- break;
80
+ this.handleTask(request.id, engine.getMetadata(...args));
81
+ return;
83
82
  case "setMetadata":
84
- task = engine.setMetadata(...args);
85
- break;
83
+ this.handleTask(request.id, engine.setMetadata(...args));
84
+ return;
86
85
  case "getBookmarks":
87
- task = engine.getBookmarks(...args);
88
- break;
86
+ this.handleTask(request.id, engine.getBookmarks(...args));
87
+ return;
89
88
  case "setBookmarks":
90
- task = engine.setBookmarks(...args);
91
- break;
89
+ this.handleTask(request.id, engine.setBookmarks(...args));
90
+ return;
92
91
  case "deleteBookmarks":
93
- task = engine.deleteBookmarks(...args);
94
- break;
92
+ this.handleTask(request.id, engine.deleteBookmarks(...args));
93
+ return;
95
94
  case "getSignatures":
96
- task = engine.getSignatures(...args);
97
- break;
95
+ this.handleTask(request.id, engine.getSignatures(...args));
96
+ return;
98
97
  case "renderPage":
99
- task = engine.renderPage(...args);
100
- break;
98
+ this.handleTask(request.id, engine.renderPage(...args));
99
+ return;
101
100
  case "renderPageRect":
102
- task = engine.renderPageRect(...args);
103
- break;
101
+ this.handleTask(request.id, engine.renderPageRect(...args));
102
+ return;
104
103
  case "renderPageRaw":
105
- task = engine.renderPageRaw(...args);
106
- break;
104
+ this.handleTask(request.id, engine.renderPageRaw(...args));
105
+ return;
107
106
  case "renderPageRectRaw":
108
- task = engine.renderPageRectRaw(...args);
109
- break;
107
+ this.handleTask(request.id, engine.renderPageRectRaw(...args));
108
+ return;
110
109
  case "renderPageAnnotation":
111
- task = engine.renderPageAnnotation(...args);
112
- break;
110
+ this.handleTask(request.id, engine.renderPageAnnotation(...args));
111
+ return;
113
112
  case "renderPageAnnotations":
114
- task = engine.renderPageAnnotations(...args);
115
- break;
113
+ this.handleTask(request.id, engine.renderPageAnnotations(...args));
114
+ return;
116
115
  case "renderPageAnnotationsRaw":
117
- task = engine.renderPageAnnotationsRaw(...args);
118
- break;
116
+ this.handleTask(request.id, engine.renderPageAnnotationsRaw(...args));
117
+ return;
119
118
  case "renderThumbnail":
120
- task = engine.renderThumbnail(...args);
121
- break;
119
+ this.handleTask(request.id, engine.renderThumbnail(...args));
120
+ return;
122
121
  case "getAllAnnotations":
123
- task = engine.getAllAnnotations(...args);
124
- break;
122
+ this.handleTask(request.id, engine.getAllAnnotations(...args));
123
+ return;
125
124
  case "getPageAnnotations":
126
- task = engine.getPageAnnotations(...args);
127
- break;
125
+ this.handleTask(request.id, engine.getPageAnnotations(...args));
126
+ return;
127
+ case "getDocumentJavaScriptActions":
128
+ this.handleTask(request.id, engine.getDocumentJavaScriptActions(...args));
129
+ return;
130
+ case "getPageAnnoWidgets":
131
+ this.handleTask(request.id, engine.getPageAnnoWidgets(...args));
132
+ return;
133
+ case "getPageWidgetJavaScriptActions":
134
+ this.handleTask(request.id, engine.getPageWidgetJavaScriptActions(...args));
135
+ return;
128
136
  case "createPageAnnotation":
129
- task = engine.createPageAnnotation(...args);
130
- break;
137
+ this.handleTask(request.id, engine.createPageAnnotation(...args));
138
+ return;
131
139
  case "updatePageAnnotation":
132
- task = engine.updatePageAnnotation(...args);
133
- break;
140
+ this.handleTask(request.id, engine.updatePageAnnotation(...args));
141
+ return;
134
142
  case "removePageAnnotation":
135
- task = engine.removePageAnnotation(...args);
136
- break;
143
+ this.handleTask(request.id, engine.removePageAnnotation(...args));
144
+ return;
137
145
  case "getPageTextRects":
138
- task = engine.getPageTextRects(...args);
139
- break;
146
+ this.handleTask(request.id, engine.getPageTextRects(...args));
147
+ return;
140
148
  case "searchAllPages":
141
- task = engine.searchAllPages(...args);
142
- break;
149
+ this.handleTask(request.id, engine.searchAllPages(...args));
150
+ return;
143
151
  case "closeDocument":
144
- task = engine.closeDocument(...args);
145
- break;
152
+ this.handleTask(request.id, engine.closeDocument(...args));
153
+ return;
146
154
  case "closeAllDocuments":
147
- task = engine.closeAllDocuments(...args);
148
- break;
155
+ this.handleTask(request.id, engine.closeAllDocuments(...args));
156
+ return;
149
157
  case "saveAsCopy":
150
- task = engine.saveAsCopy(...args);
151
- break;
158
+ this.handleTask(request.id, engine.saveAsCopy(...args));
159
+ return;
152
160
  case "getAttachments":
153
- task = engine.getAttachments(...args);
154
- break;
161
+ this.handleTask(request.id, engine.getAttachments(...args));
162
+ return;
155
163
  case "addAttachment":
156
- task = engine.addAttachment(...args);
157
- break;
164
+ this.handleTask(request.id, engine.addAttachment(...args));
165
+ return;
158
166
  case "removeAttachment":
159
- task = engine.removeAttachment(...args);
160
- break;
167
+ this.handleTask(request.id, engine.removeAttachment(...args));
168
+ return;
161
169
  case "readAttachmentContent":
162
- task = engine.readAttachmentContent(...args);
163
- break;
170
+ this.handleTask(request.id, engine.readAttachmentContent(...args));
171
+ return;
164
172
  case "setFormFieldValue":
165
- task = engine.setFormFieldValue(...args);
166
- break;
173
+ this.handleTask(request.id, engine.setFormFieldValue(...args));
174
+ return;
175
+ case "setFormFieldState":
176
+ this.handleTask(request.id, engine.setFormFieldState(...args));
177
+ return;
178
+ case "renameWidgetField":
179
+ this.handleTask(request.id, engine.renameWidgetField(...args));
180
+ return;
181
+ case "shareWidgetField":
182
+ this.handleTask(request.id, engine.shareWidgetField(...args));
183
+ return;
167
184
  case "flattenPage":
168
- task = engine.flattenPage(...args);
169
- break;
185
+ this.handleTask(request.id, engine.flattenPage(...args));
186
+ return;
170
187
  case "extractPages":
171
- task = engine.extractPages(...args);
172
- break;
188
+ this.handleTask(request.id, engine.extractPages(...args));
189
+ return;
173
190
  case "extractText":
174
- task = engine.extractText(...args);
175
- break;
191
+ this.handleTask(request.id, engine.extractText(...args));
192
+ return;
176
193
  case "redactTextInRects":
177
- task = engine.redactTextInRects(...args);
178
- break;
194
+ this.handleTask(request.id, engine.redactTextInRects(...args));
195
+ return;
179
196
  case "applyRedaction":
180
- task = engine.applyRedaction(...args);
181
- break;
197
+ this.handleTask(request.id, engine.applyRedaction(...args));
198
+ return;
182
199
  case "applyAllRedactions":
183
- task = engine.applyAllRedactions(...args);
184
- break;
200
+ this.handleTask(request.id, engine.applyAllRedactions(...args));
201
+ return;
185
202
  case "flattenAnnotation":
186
- task = engine.flattenAnnotation(...args);
187
- break;
203
+ this.handleTask(request.id, engine.flattenAnnotation(...args));
204
+ return;
188
205
  case "getTextSlices":
189
- task = engine.getTextSlices(...args);
190
- break;
206
+ this.handleTask(request.id, engine.getTextSlices(...args));
207
+ return;
191
208
  case "getPageGlyphs":
192
- task = engine.getPageGlyphs(...args);
193
- break;
209
+ this.handleTask(request.id, engine.getPageGlyphs(...args));
210
+ return;
194
211
  case "getPageGeometry":
195
- task = engine.getPageGeometry(...args);
196
- break;
212
+ this.handleTask(request.id, engine.getPageGeometry(...args));
213
+ return;
197
214
  case "getPageTextRuns":
198
- task = engine.getPageTextRuns(...args);
199
- break;
215
+ this.handleTask(request.id, engine.getPageTextRuns(...args));
216
+ return;
200
217
  case "merge":
201
- task = engine.merge(...args);
202
- break;
218
+ this.handleTask(request.id, engine.merge(...args));
219
+ return;
203
220
  case "mergePages":
204
- task = engine.mergePages(...args);
205
- break;
221
+ this.handleTask(request.id, engine.mergePages(...args));
222
+ return;
206
223
  case "preparePrintDocument":
207
- task = engine.preparePrintDocument(...args);
208
- break;
224
+ this.handleTask(request.id, engine.preparePrintDocument(...args));
225
+ return;
209
226
  case "setDocumentEncryption":
210
- task = engine.setDocumentEncryption(...args);
211
- break;
227
+ this.handleTask(request.id, engine.setDocumentEncryption(...args));
228
+ return;
212
229
  case "removeEncryption":
213
- task = engine.removeEncryption(...args);
214
- break;
230
+ this.handleTask(request.id, engine.removeEncryption(...args));
231
+ return;
215
232
  case "unlockOwnerPermissions":
216
- task = engine.unlockOwnerPermissions(...args);
217
- break;
233
+ this.handleTask(request.id, engine.unlockOwnerPermissions(...args));
234
+ return;
218
235
  case "isEncrypted":
219
- task = engine.isEncrypted(...args);
220
- break;
236
+ this.handleTask(request.id, engine.isEncrypted(...args));
237
+ return;
221
238
  case "isOwnerUnlocked":
222
- task = engine.isOwnerUnlocked(...args);
223
- break;
239
+ this.handleTask(request.id, engine.isOwnerUnlocked(...args));
240
+ return;
224
241
  default:
225
242
  const error = {
226
243
  type: "reject",
@@ -240,38 +257,6 @@ class EngineRunner {
240
257
  this.respond(response);
241
258
  return;
242
259
  }
243
- task.onProgress((progress) => {
244
- const response = {
245
- id: request.id,
246
- type: "ExecuteProgress",
247
- data: progress
248
- };
249
- this.respond(response);
250
- });
251
- task.wait(
252
- (result) => {
253
- const response = {
254
- id: request.id,
255
- type: "ExecuteResponse",
256
- data: {
257
- type: "result",
258
- value: result
259
- }
260
- };
261
- this.respond(response);
262
- },
263
- (error) => {
264
- const response = {
265
- id: request.id,
266
- type: "ExecuteResponse",
267
- data: {
268
- type: "error",
269
- value: error
270
- }
271
- };
272
- this.respond(response);
273
- }
274
- );
275
260
  };
276
261
  }
277
262
  /**
@@ -317,6 +302,43 @@ class EngineRunner {
317
302
  });
318
303
  this.logger.debug(LOG_SOURCE, LOG_CATEGORY, "runner is ready");
319
304
  }
305
+ /**
306
+ * Bind task progress and completion handlers to worker responses.
307
+ */
308
+ handleTask(requestId, task) {
309
+ task.onProgress((progress) => {
310
+ const response = {
311
+ id: requestId,
312
+ type: "ExecuteProgress",
313
+ data: progress
314
+ };
315
+ this.respond(response);
316
+ });
317
+ task.wait(
318
+ (result) => {
319
+ const response = {
320
+ id: requestId,
321
+ type: "ExecuteResponse",
322
+ data: {
323
+ type: "result",
324
+ value: result
325
+ }
326
+ };
327
+ this.respond(response);
328
+ },
329
+ (error) => {
330
+ const response = {
331
+ id: requestId,
332
+ type: "ExecuteResponse",
333
+ data: {
334
+ type: "error",
335
+ value: error
336
+ }
337
+ };
338
+ this.respond(response);
339
+ }
340
+ );
341
+ }
320
342
  /**
321
343
  * Send back the response
322
344
  * @param response - response that needs sent back