@embedpdf/engines 2.10.1 → 2.11.1
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.
- package/dist/browser-BpXqcQ3U.cjs +2 -0
- package/dist/browser-BpXqcQ3U.cjs.map +1 -0
- package/dist/{browser-BISJ9naB.js → browser-BuzIa755.js} +95 -6
- package/dist/browser-BuzIa755.js.map +1 -0
- package/dist/direct-engine-IJ8DmFTb.cjs +2 -0
- package/dist/direct-engine-IJ8DmFTb.cjs.map +1 -0
- package/dist/{direct-engine-4LZYs06h.js → direct-engine-oh_i6TH_.js} +351 -32
- package/dist/direct-engine-oh_i6TH_.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +18 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/converters/index.cjs +1 -1
- package/dist/lib/converters/index.js +1 -1
- package/dist/lib/image-encoder/bmp.d.ts +13 -0
- package/dist/lib/image-encoder/image-encoder-worker.d.ts +1 -1
- package/dist/lib/image-encoder/worker-pool.d.ts +1 -1
- package/dist/lib/orchestrator/pdf-engine.d.ts +5 -0
- package/dist/lib/orchestrator/remote-executor.d.ts +5 -0
- package/dist/lib/pdfium/cache.d.ts +1 -0
- package/dist/lib/pdfium/engine.d.ts +51 -7
- package/dist/lib/pdfium/index.cjs +1 -1
- package/dist/lib/pdfium/index.js +4 -4
- package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
- package/dist/lib/pdfium/web/direct-engine.js +3 -3
- package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
- package/dist/lib/pdfium/web/worker-engine.cjs.map +1 -1
- package/dist/lib/pdfium/web/worker-engine.js +147 -5
- package/dist/lib/pdfium/web/worker-engine.js.map +1 -1
- package/dist/lib/webworker/engine.cjs +1 -1
- package/dist/lib/webworker/engine.cjs.map +1 -1
- package/dist/lib/webworker/engine.d.ts +10 -0
- package/dist/lib/webworker/engine.js +79 -0
- package/dist/lib/webworker/engine.js.map +1 -1
- package/dist/{pdf-engine-sORqXhQk.js → pdf-engine-D9v0RfKe.js} +56 -3
- package/dist/pdf-engine-D9v0RfKe.js.map +1 -0
- package/dist/pdf-engine-DeiICuca.cjs +2 -0
- package/dist/{pdf-engine-BeHgaBOW.cjs.map → pdf-engine-DeiICuca.cjs.map} +1 -1
- package/dist/preact/index.cjs +1 -1
- package/dist/preact/index.js +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.js +1 -1
- package/dist/svelte/index.cjs +1 -1
- package/dist/svelte/index.js +1 -1
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.js +1 -1
- package/package.json +7 -7
- package/dist/browser-13mzox-R.cjs +0 -2
- package/dist/browser-13mzox-R.cjs.map +0 -1
- package/dist/browser-BISJ9naB.js.map +0 -1
- package/dist/direct-engine-4LZYs06h.js.map +0 -1
- package/dist/direct-engine-C29Euebw.cjs +0 -2
- package/dist/direct-engine-C29Euebw.cjs.map +0 -1
- package/dist/pdf-engine-BeHgaBOW.cjs +0 -2
- package/dist/pdf-engine-sORqXhQk.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"),t=require("./lib/webworker/engine.cjs"),r=require("@embedpdf/models"),a=require("./direct-engine-
|
|
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-IJ8DmFTb.cjs"),s=require("./browser-BpXqcQ3U.cjs"),n=require("./pdf-engine-DeiICuca.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"createDocument":return void this.handleTask(e.id,t.createDocument(...s));case"importPages":return void this.handleTask(e.id,t.importPages(...s));case"deletePage":return void this.handleTask(e.id,t.deletePage(...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"exportAnnotationAppearanceAsPdf":return void this.handleTask(e.id,t.exportAnnotationAppearanceAsPdf(...s));case"exportAnnotationsAppearanceAsPdf":return void this.handleTask(e.id,t.exportAnnotationsAppearanceAsPdf(...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
|
package/dist/index.cjs.map
CHANGED
|
@@ -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 */\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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"}
|
|
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 'createDocument':\n this.handleTask(request.id, engine.createDocument!(...args));\n return;\n case 'importPages':\n this.handleTask(request.id, engine.importPages!(...args));\n return;\n case 'deletePage':\n this.handleTask(request.id, engine.deletePage!(...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 'exportAnnotationAppearanceAsPdf':\n this.handleTask(request.id, engine.exportAnnotationAppearanceAsPdf!(...args));\n return;\n case 'exportAnnotationsAppearanceAsPdf':\n this.handleTask(request.id, engine.exportAnnotationsAppearanceAsPdf!(...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","createDocument","importPages","deletePage","extractText","redactTextInRects","applyRedaction","applyAllRedactions","flattenAnnotation","exportAnnotationAppearanceAsPdf","exportAnnotationsAppearanceAsPdf","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-
|
|
6
|
-
import { I, b as b2, c as c2, a as a2 } from "./browser-
|
|
7
|
-
import { P as P2 } from "./pdf-engine-
|
|
5
|
+
import { B, F, P, a, R, c, b, d, i, r, e } from "./direct-engine-oh_i6TH_.js";
|
|
6
|
+
import { I, b as b2, c as c2, a as a2 } from "./browser-BuzIa755.js";
|
|
7
|
+
import { P as P2 } from "./pdf-engine-D9v0RfKe.js";
|
|
8
8
|
import { createPdfiumEngine } from "./lib/pdfium/web/worker-engine.js";
|
|
9
9
|
const LOG_SOURCE = "WebWorkerEngineRunner";
|
|
10
10
|
const LOG_CATEGORY = "Engine";
|
|
@@ -187,6 +187,15 @@ class EngineRunner {
|
|
|
187
187
|
case "extractPages":
|
|
188
188
|
this.handleTask(request.id, engine.extractPages(...args));
|
|
189
189
|
return;
|
|
190
|
+
case "createDocument":
|
|
191
|
+
this.handleTask(request.id, engine.createDocument(...args));
|
|
192
|
+
return;
|
|
193
|
+
case "importPages":
|
|
194
|
+
this.handleTask(request.id, engine.importPages(...args));
|
|
195
|
+
return;
|
|
196
|
+
case "deletePage":
|
|
197
|
+
this.handleTask(request.id, engine.deletePage(...args));
|
|
198
|
+
return;
|
|
190
199
|
case "extractText":
|
|
191
200
|
this.handleTask(request.id, engine.extractText(...args));
|
|
192
201
|
return;
|
|
@@ -202,6 +211,12 @@ class EngineRunner {
|
|
|
202
211
|
case "flattenAnnotation":
|
|
203
212
|
this.handleTask(request.id, engine.flattenAnnotation(...args));
|
|
204
213
|
return;
|
|
214
|
+
case "exportAnnotationAppearanceAsPdf":
|
|
215
|
+
this.handleTask(request.id, engine.exportAnnotationAppearanceAsPdf(...args));
|
|
216
|
+
return;
|
|
217
|
+
case "exportAnnotationsAppearanceAsPdf":
|
|
218
|
+
this.handleTask(request.id, engine.exportAnnotationsAppearanceAsPdf(...args));
|
|
219
|
+
return;
|
|
205
220
|
case "getTextSlices":
|
|
206
221
|
this.handleTask(request.id, engine.getTextSlices(...args));
|
|
207
222
|
return;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","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":["e"],"mappings":";;;;;;;;AA2IA,MAAM,aAAa;AACnB,MAAM,eAAe;AAMd,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA,EAOxB,YAAmB,SAAiB,IAAI,cAAc;AAAnC,SAAA,SAAA;AAkGnB,SAAA,UAAU,OAAO,YAA4B;AAC3C,WAAK,OAAO,MAAM,YAAY,cAAc,8BAA8B;AAC1E,UAAI,CAAC,KAAK,QAAQ;AAChB,cAAM,QAAwB;AAAA,UAC5B,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,MAAM,aAAa;AAAA,YACnB,SAAS;AAAA,UAAA;AAAA,QACX;AAEF,cAAM,WAA4B;AAAA,UAChC,IAAI,QAAQ;AAAA,UACZ,MAAM;AAAA,UACN,MAAM;AAAA,YACJ,MAAM;AAAA,YACN,OAAO;AAAA,UAAA;AAAA,QACT;AAEF,aAAK,QAAQ,QAAQ;AACrB;AAAA,MACF;AAEA,YAAM,SAAS,KAAK;AACpB,YAAM,EAAE,MAAM,KAAA,IAAS,QAAQ;AAC/B,UAAI,CAAC,OAAO,IAAI,GAAG;AACjB,cAAM,QAAwB;AAAA,UAC5B,MAAM;AAAA,UACN,QAAQ;AAAA,YACN,MAAM,aAAa;AAAA,YACnB,SAAS,iBAAiB,IAAI;AAAA,UAAA;AAAA,QAChC;AAEF,cAAM,WAA4B;AAAA,UAChC,IAAI,QAAQ;AAAA,UACZ,MAAM;AAAA,UACN,MAAM;AAAA,YACJ,MAAM;AAAA,YACN,OAAO;AAAA,UAAA;AAAA,QACT;AAEF,aAAK,QAAQ,QAAQ;AACrB;AAAA,MACF;AAEA,cAAQ,MAAA;AAAA,QACN,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,UAAW,GAAG,IAAI,CAAC;AACtD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,QAAS,GAAG,IAAI,CAAC;AACpD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,gBAAiB,GAAG,IAAI,CAAC;AAC5D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,mBAAoB,GAAG,IAAI,CAAC;AAC/D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,kBAAmB,GAAG,IAAI,CAAC;AAC9D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,sBAAuB,GAAG,IAAI,CAAC;AAClE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,YAAa,GAAG,IAAI,CAAC;AACxD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,YAAa,GAAG,IAAI,CAAC;AACxD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,aAAc,GAAG,IAAI,CAAC;AACzD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,aAAc,GAAG,IAAI,CAAC;AACzD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,gBAAiB,GAAG,IAAI,CAAC;AAC5D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,cAAe,GAAG,IAAI,CAAC;AAC1D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,WAAY,GAAG,IAAI,CAAC;AACvD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,eAAgB,GAAG,IAAI,CAAC;AAC3D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,cAAe,GAAG,IAAI,CAAC;AAC1D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,kBAAmB,GAAG,IAAI,CAAC;AAC9D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,qBAAsB,GAAG,IAAI,CAAC;AACjE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,sBAAuB,GAAG,IAAI,CAAC;AAClE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,yBAA0B,GAAG,IAAI,CAAC;AACrE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,gBAAiB,GAAG,IAAI,CAAC;AAC5D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,kBAAmB,GAAG,IAAI,CAAC;AAC9D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,mBAAoB,GAAG,IAAI,CAAC;AAC/D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,6BAA8B,GAAG,IAAI,CAAC;AACzE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,mBAAoB,GAAG,IAAI,CAAC;AAC/D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,+BAAgC,GAAG,IAAI,CAAC;AAC3E;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,qBAAsB,GAAG,IAAI,CAAC;AACjE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,qBAAsB,GAAG,IAAI,CAAC;AACjE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,qBAAsB,GAAG,IAAI,CAAC;AACjE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,iBAAkB,GAAG,IAAI,CAAC;AAC7D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,eAAgB,GAAG,IAAI,CAAC;AAC3D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,cAAe,GAAG,IAAI,CAAC;AAC1D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,kBAAmB,GAAG,IAAI,CAAC;AAC9D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,WAAY,GAAG,IAAI,CAAC;AACvD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,eAAgB,GAAG,IAAI,CAAC;AAC3D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,cAAe,GAAG,IAAI,CAAC;AAC1D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,iBAAkB,GAAG,IAAI,CAAC;AAC7D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,sBAAuB,GAAG,IAAI,CAAC;AAClE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,kBAAmB,GAAG,IAAI,CAAC;AAC9D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,kBAAmB,GAAG,IAAI,CAAC;AAC9D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,kBAAmB,GAAG,IAAI,CAAC;AAC9D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,iBAAkB,GAAG,IAAI,CAAC;AAC7D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,YAAa,GAAG,IAAI,CAAC;AACxD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,aAAc,GAAG,IAAI,CAAC;AACzD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,YAAa,GAAG,IAAI,CAAC;AACxD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,kBAAmB,GAAG,IAAI,CAAC;AAC9D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,eAAgB,GAAG,IAAI,CAAC;AAC3D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,mBAAoB,GAAG,IAAI,CAAC;AAC/D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,kBAAmB,GAAG,IAAI,CAAC;AAC9D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,cAAe,GAAG,IAAI,CAAC;AAC1D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,cAAe,GAAG,IAAI,CAAC;AAC1D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,gBAAiB,GAAG,IAAI,CAAC;AAC5D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,gBAAiB,GAAG,IAAI,CAAC;AAC5D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,MAAO,GAAG,IAAI,CAAC;AAClD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,WAAY,GAAG,IAAI,CAAC;AACvD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,qBAAsB,GAAG,IAAI,CAAC;AACjE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,sBAAsB,GAAG,IAAI,CAAC;AACjE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,iBAAiB,GAAG,IAAI,CAAC;AAC5D;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,uBAAuB,GAAG,IAAI,CAAC;AAClE;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,YAAY,GAAG,IAAI,CAAC;AACvD;AAAA,QACF,KAAK;AACH,eAAK,WAAW,QAAQ,IAAI,OAAO,gBAAgB,GAAG,IAAI,CAAC;AAC3D;AAAA,QACF;AAEE,gBAAM,QAAwB;AAAA,YAC5B,MAAM;AAAA,YACN,QAAQ;AAAA,cACN,MAAM,aAAa;AAAA,cACnB,SAAS,iBAAiB,IAAI;AAAA,YAAA;AAAA,UAChC;AAEF,gBAAM,WAA4B;AAAA,YAChC,IAAI,QAAQ;AAAA,YACZ,MAAM;AAAA,YACN,MAAM;AAAA,cACJ,MAAM;AAAA,cACN,OAAO;AAAA,YAAA;AAAA,UACT;AAEF,eAAK,QAAQ,QAAQ;AACrB;AAAA,MAAA;AAAA,IAEN;AAAA,EAvVuD;AAAA;AAAA;AAAA;AAAA,EAKvD,SAAS;AACP,SAAK,YAAY,CAAC,QAA+B;AAC/C,aAAO,KAAK,OAAO,GAAG;AAAA,IACxB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,KAA4B;AACjC,SAAK,OAAO,MAAM,YAAY,cAAc,qCAAqC,IAAI,IAAI;AACzF,QAAI;AACF,YAAM,UAAU,IAAI;AACpB,cAAQ,QAAQ,MAAA;AAAA,QACd,KAAK;AACH,eAAK,QAAQ,OAAO;AACpB;AAAA,MAAA;AAAA,IAEN,SAASA,IAAG;AACV,WAAK,OAAO;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,QAAQ;AACN,SAAK,OAAA;AAEL,SAAK,QAAQ;AAAA,MACX,IAAI;AAAA,MACJ,MAAM;AAAA,IAAA,CACP;AACD,SAAK,OAAO,MAAM,YAAY,cAAc,iBAAiB;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA,EAKQ,WACN,WACA,MACA;AACA,SAAK,WAAW,CAAC,aAAa;AAC5B,YAAM,WAA4B;AAAA,QAChC,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,MAAM;AAAA,MAAA;AAER,WAAK,QAAQ,QAAQ;AAAA,IACvB,CAAC;AAED,SAAK;AAAA,MACH,CAAC,WAAW;AACV,cAAM,WAA4B;AAAA,UAChC,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,MAAM;AAAA,YACJ,MAAM;AAAA,YACN,OAAO;AAAA,UAAA;AAAA,QACT;AAEF,aAAK,QAAQ,QAAQ;AAAA,MACvB;AAAA,MACA,CAAC,UAAU;AACT,cAAM,WAA4B;AAAA,UAChC,IAAI;AAAA,UACJ,MAAM;AAAA,UACN,MAAM;AAAA,YACJ,MAAM;AAAA,YACN,OAAO;AAAA,UAAA;AAAA,QACT;AAEF,aAAK,QAAQ,QAAQ;AAAA,MACvB;AAAA,IAAA;AAAA,EAEJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAsQA,QAAQ,UAAoB;AAC1B,SAAK,OAAO,MAAM,YAAY,cAAc,oBAAoB,QAAQ;AACxE,SAAK,YAAY,QAAQ;AAAA,EAC3B;AACF;"}
|
|
1
|
+
{"version":3,"file":"index.js","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 'createDocument':\n this.handleTask(request.id, engine.createDocument!(...args));\n return;\n case 'importPages':\n this.handleTask(request.id, engine.importPages!(...args));\n return;\n case 'deletePage':\n this.handleTask(request.id, engine.deletePage!(...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 'exportAnnotationAppearanceAsPdf':\n this.handleTask(request.id, engine.exportAnnotationAppearanceAsPdf!(...args));\n return;\n case 'exportAnnotationsAppearanceAsPdf':\n this.handleTask(request.id, engine.exportAnnotationsAppearanceAsPdf!(...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":["e"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../browser-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../browser-BpXqcQ3U.cjs");function r(e){const{buffer:r,byteOffset:t,byteLength:a}=e;if(r instanceof ArrayBuffer)return r.slice(t,t+a);const o=new ArrayBuffer(a);return new Uint8Array(o).set(new Uint8Array(r,t,a)),o}exports.ImageConverterError=e.ImageConverterError,exports.browserImageDataToBlobConverter=e.browserImageDataToBlobConverter,exports.createHybridImageConverter=e.createHybridImageConverter,exports.createWorkerPoolImageConverter=e.createWorkerPoolImageConverter,exports.createCustomImageDataToBlobConverter=function(e){return async(t,a="image/webp",o)=>{const n=t(),i=await e(n,a,o);return new Blob([r(i)],{type:a})}},exports.createCustomImageDataToBufferConverter=function(e){return async(r,t="image/webp",a)=>{const o=r();return await e(o,t,a)}},exports.createNodeCanvasImageDataToBlobConverter=function(e){return async(r,t="image/webp",a)=>{const o=r(),{width:n,height:i}=o,g=e(n,i);let s;switch(g.getContext("2d").putImageData(o,0,0),t){case"image/webp":s=g.toBuffer("image/webp");break;case"image/png":s=g.toBuffer("image/png");break;case"image/jpeg":s=g.toBuffer("image/jpeg");break;default:throw new Error(`Unsupported image type: ${t}`)}return s}},exports.createNodeImageDataToBufferConverter=function(e){return async(r,t="image/webp",a)=>{const o=r(),{width:n,height:i,data:g}=o;let s,u=e(Buffer.from(g),{raw:{width:n,height:i,channels:4}});switch(t){case"image/webp":s=await u.webp({quality:a}).toBuffer();break;case"image/png":s=await u.png().toBuffer();break;case"image/jpeg":s=await u.flatten({background:{r:255,g:255,b:255}}).jpeg({quality:a}).toBuffer();break;default:throw new Error(`Unsupported image type: ${t}`)}return s}};
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates an uncompressed BMP blob from raw RGBA pixel data.
|
|
3
|
+
*
|
|
4
|
+
* Uses BI_BITFIELDS with channel masks matching RGBA byte order, so no
|
|
5
|
+
* per-pixel byte swapping is needed. Top-down row order (negative height)
|
|
6
|
+
* avoids row flipping. The result is a valid BMP that all modern browsers
|
|
7
|
+
* can decode natively in `<img>` elements.
|
|
8
|
+
*
|
|
9
|
+
* This is dramatically faster than PNG/WebP/JPEG encoding via canvas.toBlob()
|
|
10
|
+
* because it performs no compression — just a 66-byte header prepended to the
|
|
11
|
+
* raw pixel buffer.
|
|
12
|
+
*/
|
|
13
|
+
export declare function rgbaToBmpBlob(rgba: Uint8ClampedArray, width: number, height: number): Blob;
|
|
@@ -45,7 +45,7 @@ export declare class ImageEncoderWorkerPool {
|
|
|
45
45
|
data: Uint8ClampedArray;
|
|
46
46
|
width: number;
|
|
47
47
|
height: number;
|
|
48
|
-
}, imageType?: 'image/png' | 'image/jpeg' | 'image/webp', quality?: number): Promise<Blob>;
|
|
48
|
+
}, imageType?: 'image/png' | 'image/jpeg' | 'image/webp' | 'image/bmp', quality?: number): Promise<Blob>;
|
|
49
49
|
/**
|
|
50
50
|
* Destroy all workers in the pool
|
|
51
51
|
*/
|
|
@@ -99,11 +99,16 @@ export declare class PdfEngine<T = Blob> implements IPdfEngine<T> {
|
|
|
99
99
|
regenerateWidgetAppearances(doc: PdfDocumentObject, page: PdfPageObject, annotationIds: string[]): PdfTask<boolean>;
|
|
100
100
|
flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions): PdfTask<PdfPageFlattenResult>;
|
|
101
101
|
extractPages(doc: PdfDocumentObject, pageIndexes: number[]): PdfTask<ArrayBuffer>;
|
|
102
|
+
createDocument(id: string): PdfTask<PdfDocumentObject>;
|
|
103
|
+
importPages(destDoc: PdfDocumentObject, srcDoc: PdfDocumentObject, srcPageIndices: number[], insertIndex?: number): PdfTask<PdfPageObject[]>;
|
|
104
|
+
deletePage(doc: PdfDocumentObject, pageIndex: number): PdfTask<boolean>;
|
|
102
105
|
extractText(doc: PdfDocumentObject, pageIndexes: number[]): PdfTask<string>;
|
|
103
106
|
redactTextInRects(doc: PdfDocumentObject, page: PdfPageObject, rects: Rect[], options?: PdfRedactTextOptions): PdfTask<boolean>;
|
|
104
107
|
applyRedaction(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): PdfTask<boolean>;
|
|
105
108
|
applyAllRedactions(doc: PdfDocumentObject, page: PdfPageObject): PdfTask<boolean>;
|
|
106
109
|
flattenAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): PdfTask<boolean>;
|
|
110
|
+
exportAnnotationAppearanceAsPdf(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): PdfTask<ArrayBuffer>;
|
|
111
|
+
exportAnnotationsAppearanceAsPdf(doc: PdfDocumentObject, page: PdfPageObject, annotations: PdfAnnotationObject[]): PdfTask<ArrayBuffer>;
|
|
107
112
|
getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]): PdfTask<string[]>;
|
|
108
113
|
getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject): PdfTask<PdfGlyphObject[]>;
|
|
109
114
|
getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject): PdfTask<PdfPageGeometry>;
|
|
@@ -91,11 +91,16 @@ export declare class RemoteExecutor implements IPdfiumExecutor {
|
|
|
91
91
|
regenerateWidgetAppearances(doc: PdfDocumentObject, page: PdfPageObject, annotationIds: string[]): PdfTask<boolean>;
|
|
92
92
|
flattenPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfFlattenPageOptions): PdfTask<PdfPageFlattenResult>;
|
|
93
93
|
extractPages(doc: PdfDocumentObject, pageIndexes: number[]): PdfTask<ArrayBuffer>;
|
|
94
|
+
createDocument(id: string): PdfTask<PdfDocumentObject>;
|
|
95
|
+
importPages(destDoc: PdfDocumentObject, srcDoc: PdfDocumentObject, srcPageIndices: number[], insertIndex?: number): PdfTask<PdfPageObject[]>;
|
|
96
|
+
deletePage(doc: PdfDocumentObject, pageIndex: number): PdfTask<boolean>;
|
|
94
97
|
extractText(doc: PdfDocumentObject, pageIndexes: number[]): PdfTask<string>;
|
|
95
98
|
redactTextInRects(doc: PdfDocumentObject, page: PdfPageObject, rects: Rect[], options?: PdfRedactTextOptions): PdfTask<boolean>;
|
|
96
99
|
applyRedaction(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): PdfTask<boolean>;
|
|
97
100
|
applyAllRedactions(doc: PdfDocumentObject, page: PdfPageObject): PdfTask<boolean>;
|
|
98
101
|
flattenAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): PdfTask<boolean>;
|
|
102
|
+
exportAnnotationAppearanceAsPdf(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): PdfTask<ArrayBuffer>;
|
|
103
|
+
exportAnnotationsAppearanceAsPdf(doc: PdfDocumentObject, page: PdfPageObject, annotations: PdfAnnotationObject[]): PdfTask<ArrayBuffer>;
|
|
99
104
|
getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]): PdfTask<string[]>;
|
|
100
105
|
getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject): PdfTask<PdfGlyphObject[]>;
|
|
101
106
|
getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject): PdfTask<PdfPageGeometry>;
|
|
@@ -42,6 +42,7 @@ export declare class DocumentContext {
|
|
|
42
42
|
private readonly memoryManager;
|
|
43
43
|
private readonly pageCache;
|
|
44
44
|
readonly normalizeRotation: boolean;
|
|
45
|
+
private disposed;
|
|
45
46
|
constructor(filePtr: number, docPtr: number, pdfium: WrappedPdfiumModule, memoryManager: MemoryManager, config: Required<CacheConfig>);
|
|
46
47
|
/** Main accessor for pages */
|
|
47
48
|
acquirePage(pageIdx: number): PageContext;
|
|
@@ -100,6 +100,13 @@ export declare class PdfiumNative implements IPdfiumExecutor {
|
|
|
100
100
|
* @public
|
|
101
101
|
*/
|
|
102
102
|
openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions): Task<PdfDocumentObject, PdfErrorReason, unknown>;
|
|
103
|
+
/**
|
|
104
|
+
* Create a new empty PDF document and register it in the cache.
|
|
105
|
+
*
|
|
106
|
+
* @param id - unique document identifier
|
|
107
|
+
* @returns task containing the empty PdfDocumentObject
|
|
108
|
+
*/
|
|
109
|
+
createDocument(id: string): PdfTask<PdfDocumentObject>;
|
|
103
110
|
/**
|
|
104
111
|
* {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}
|
|
105
112
|
*
|
|
@@ -258,6 +265,17 @@ export declare class PdfiumNative implements IPdfiumExecutor {
|
|
|
258
265
|
* @public
|
|
259
266
|
*/
|
|
260
267
|
extractPages(doc: PdfDocumentObject, pageIndexes: number[]): Task<any, PdfErrorReason, unknown> | Task<ArrayBuffer, PdfErrorReason, unknown>;
|
|
268
|
+
/**
|
|
269
|
+
* Import pages from a source document into a destination document.
|
|
270
|
+
*
|
|
271
|
+
* @param destDoc - destination document (must be open in cache)
|
|
272
|
+
* @param srcDoc - source document (must be open in cache)
|
|
273
|
+
* @param srcPageIndices - zero-based page indices in the source document
|
|
274
|
+
* @param insertIndex - position to insert at in destination (defaults to end)
|
|
275
|
+
* @returns task containing the newly added PdfPageObjects
|
|
276
|
+
*/
|
|
277
|
+
importPages(destDoc: PdfDocumentObject, srcDoc: PdfDocumentObject, srcPageIndices: number[], insertIndex?: number): PdfTask<PdfPageObject[]>;
|
|
278
|
+
deletePage(doc: PdfDocumentObject, pageIndex: number): PdfTask<boolean>;
|
|
261
279
|
/**
|
|
262
280
|
* {@inheritDoc @embedpdf/models!PdfEngine.extractText}
|
|
263
281
|
*
|
|
@@ -485,7 +503,13 @@ export declare class PdfiumNative implements IPdfiumExecutor {
|
|
|
485
503
|
*
|
|
486
504
|
* @private
|
|
487
505
|
*/
|
|
488
|
-
addStampContent(doc: PdfDocumentObject, docPtr: number, page: PdfPageObject, pagePtr: number, annotationPtr: number, annotation: PdfStampAnnoObject,
|
|
506
|
+
addStampContent(doc: PdfDocumentObject, docPtr: number, page: PdfPageObject, pagePtr: number, annotationPtr: number, annotation: PdfStampAnnoObject, context?: AnnotationCreateContext<PdfStampAnnoObject>): boolean;
|
|
507
|
+
/**
|
|
508
|
+
* Set an annotation's appearance from a single-page PDF document.
|
|
509
|
+
* Loads the PDF into WASM memory, calls the native SetAppearanceFromPage,
|
|
510
|
+
* then cleans up.
|
|
511
|
+
*/
|
|
512
|
+
private setAppearanceFromPdf;
|
|
489
513
|
/**
|
|
490
514
|
* Add image object to annotation
|
|
491
515
|
* @param doc - pdf document object
|
|
@@ -945,20 +969,20 @@ export declare class PdfiumNative implements IPdfiumExecutor {
|
|
|
945
969
|
private getBorderStyle;
|
|
946
970
|
private setBorderStyle;
|
|
947
971
|
/**
|
|
948
|
-
* Get the
|
|
972
|
+
* Get the /Name entry of the annotation
|
|
949
973
|
*
|
|
950
974
|
* @param annotationPtr - pointer to an `FPDF_ANNOTATION`
|
|
951
|
-
* @returns `
|
|
975
|
+
* @returns `PdfAnnotationName`
|
|
952
976
|
*/
|
|
953
|
-
private
|
|
977
|
+
private getAnnotationName;
|
|
954
978
|
/**
|
|
955
|
-
* Set the
|
|
979
|
+
* Set the /Name entry of the annotation
|
|
956
980
|
*
|
|
957
981
|
* @param annotationPtr - pointer to an `FPDF_ANNOTATION`
|
|
958
|
-
* @param
|
|
982
|
+
* @param name - `PdfAnnotationName`
|
|
959
983
|
* @returns `true` on success
|
|
960
984
|
*/
|
|
961
|
-
private
|
|
985
|
+
private setAnnotationName;
|
|
962
986
|
/**
|
|
963
987
|
* Get the reply type of the annotation (RT property per ISO 32000-2)
|
|
964
988
|
*
|
|
@@ -1174,6 +1198,26 @@ export declare class PdfiumNative implements IPdfiumExecutor {
|
|
|
1174
1198
|
* @returns true if successful
|
|
1175
1199
|
*/
|
|
1176
1200
|
flattenAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): PdfTask<boolean>;
|
|
1201
|
+
/**
|
|
1202
|
+
* Export an annotation's appearance as a standalone single-page PDF.
|
|
1203
|
+
*
|
|
1204
|
+
* @param doc - document object
|
|
1205
|
+
* @param page - page object
|
|
1206
|
+
* @param annotation - the annotation to export
|
|
1207
|
+
* @returns a PDF buffer containing the annotation appearance
|
|
1208
|
+
*/
|
|
1209
|
+
exportAnnotationAppearanceAsPdf(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): PdfTask<ArrayBuffer>;
|
|
1210
|
+
/**
|
|
1211
|
+
* Export multiple annotations' appearances as a standalone single-page PDF.
|
|
1212
|
+
* All annotations must be on the same page. The resulting page is sized to
|
|
1213
|
+
* the union of all annotation rects, with each appearance positioned correctly.
|
|
1214
|
+
*
|
|
1215
|
+
* @param doc - document object
|
|
1216
|
+
* @param page - page object
|
|
1217
|
+
* @param annotations - the annotations to export
|
|
1218
|
+
* @returns a PDF buffer containing the combined appearances
|
|
1219
|
+
*/
|
|
1220
|
+
exportAnnotationsAppearanceAsPdf(doc: PdfDocumentObject, page: PdfPageObject, annotations: PdfAnnotationObject[]): PdfTask<ArrayBuffer>;
|
|
1177
1221
|
/** Pack device-space Rects into an FS_QUADPOINTSF[] buffer (page space). */
|
|
1178
1222
|
private allocFSQuadsBufferFromRects;
|
|
1179
1223
|
/**
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../direct-engine-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../direct-engine-IJ8DmFTb.cjs"),t=require("../../browser-BpXqcQ3U.cjs"),r=require("../../pdf-engine-DeiICuca.cjs"),n=require("@embedpdf/models"),o=require("@embedpdf/fonts-jp"),s=require("@embedpdf/fonts-kr"),a=require("@embedpdf/fonts-sc"),d=require("@embedpdf/fonts-tc"),i=require("@embedpdf/fonts-arabic"),f=require("@embedpdf/fonts-hebrew"),p=require("@embedpdf/fonts-latin"),m=require("./web/worker-engine.cjs");function c(e="latest"){return{jp:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-jp@${e}/fonts`,kr:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-kr@${e}/fonts`,sc:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-sc@${e}/fonts`,tc:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-tc@${e}/fonts`,arabic:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-arabic@${e}/fonts`,hebrew:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-hebrew@${e}/fonts`,latin:`https://cdn.jsdelivr.net/npm/@embedpdf/fonts-latin@${e}/fonts`}}function u(e,t){return e.map(e=>({url:`${t}/${e.file}`,weight:e.weight,italic:e.italic}))}function b(e){return{fonts:{[n.FontCharset.SHIFTJIS]:u(o.fonts,e.jp),[n.FontCharset.HANGEUL]:u(s.fonts,e.kr),[n.FontCharset.GB2312]:u(a.fonts,e.sc),[n.FontCharset.CHINESEBIG5]:u(d.fonts,e.tc),[n.FontCharset.ARABIC]:u(i.fonts,e.arabic),[n.FontCharset.HEBREW]:u(f.fonts,e.hebrew),[n.FontCharset.CYRILLIC]:u(p.fonts,e.latin),[n.FontCharset.GREEK]:u(p.fonts,e.latin),[n.FontCharset.VIETNAMESE]:u(p.fonts,e.latin)}}}const l=c("latest"),C=b(l);exports.BitmapFormat=e.BitmapFormat,exports.FontFallbackManager=e.FontFallbackManager,exports.PdfiumErrorCode=e.PdfiumErrorCode,exports.PdfiumNative=e.PdfiumNative,exports.RenderFlag=e.RenderFlag,exports.computeFormDrawParams=e.computeFormDrawParams,exports.createNodeFontLoader=e.createNodeFontLoader,exports.createPdfiumDirectEngine=e.createPdfiumEngine,exports.isValidCustomKey=e.isValidCustomKey,exports.readArrayBuffer=e.readArrayBuffer,exports.readString=e.readString,exports.ImageConverterError=t.ImageConverterError,exports.browserImageDataToBlobConverter=t.browserImageDataToBlobConverter,exports.createHybridImageConverter=t.createHybridImageConverter,exports.createWorkerPoolImageConverter=t.createWorkerPoolImageConverter,exports.PdfEngine=r.PdfEngine,Object.defineProperty(exports,"FontCharset",{enumerable:!0,get:()=>n.FontCharset}),exports.createPdfiumWorkerEngine=m.createPdfiumEngine,exports.DEFAULT_PDFIUM_WASM_URL="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@2.11.1/dist/pdfium.wasm",exports.FONT_CDN_URLS=l,exports.cdnFontConfig=C,exports.createCdnFontConfig=function(e="latest"){return b(c(e))};
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/lib/pdfium/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { B, F, P, a, R, c, b, d, i, r, e } from "../../direct-engine-
|
|
2
|
-
import { I, b as b2, c as c2, a as a2 } from "../../browser-
|
|
3
|
-
import { P as P2 } from "../../pdf-engine-
|
|
1
|
+
import { B, F, P, a, R, c, b, d, i, r, e } from "../../direct-engine-oh_i6TH_.js";
|
|
2
|
+
import { I, b as b2, c as c2, a as a2 } from "../../browser-BuzIa755.js";
|
|
3
|
+
import { P as P2 } from "../../pdf-engine-D9v0RfKe.js";
|
|
4
4
|
import { FontCharset } from "@embedpdf/models";
|
|
5
5
|
import { FontCharset as FontCharset2 } from "@embedpdf/models";
|
|
6
6
|
import { fonts as fonts$6 } from "@embedpdf/fonts-jp";
|
|
@@ -49,7 +49,7 @@ const cdnFontConfig = buildCdnFontConfig(FONT_CDN_URLS);
|
|
|
49
49
|
function createCdnFontConfig(version = "latest") {
|
|
50
50
|
return buildCdnFontConfig(buildCdnUrls(version));
|
|
51
51
|
}
|
|
52
|
-
const DEFAULT_PDFIUM_WASM_URL = "https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@2.
|
|
52
|
+
const DEFAULT_PDFIUM_WASM_URL = "https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@2.11.1/dist/pdfium.wasm";
|
|
53
53
|
export {
|
|
54
54
|
B as BitmapFormat,
|
|
55
55
|
DEFAULT_PDFIUM_WASM_URL,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("@embedpdf/pdfium");const e=require("../../../direct-engine-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("@embedpdf/pdfium");const e=require("../../../direct-engine-IJ8DmFTb.cjs");require("../../../pdf-engine-DeiICuca.cjs"),require("../../../browser-BpXqcQ3U.cjs"),exports.createPdfiumEngine=e.createPdfiumEngine;
|
|
2
2
|
//# sourceMappingURL=direct-engine.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import "@embedpdf/pdfium";
|
|
2
|
-
import { d } from "../../../direct-engine-
|
|
3
|
-
import "../../../pdf-engine-
|
|
4
|
-
import "../../../browser-
|
|
2
|
+
import { d } from "../../../direct-engine-oh_i6TH_.js";
|
|
3
|
+
import "../../../pdf-engine-D9v0RfKe.js";
|
|
4
|
+
import "../../../browser-BuzIa755.js";
|
|
5
5
|
export {
|
|
6
6
|
d as createPdfiumEngine
|
|
7
7
|
};
|