@embedpdf/engines 2.1.2 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/direct-engine-Dwkk7o9U.cjs +2 -0
- package/dist/direct-engine-Dwkk7o9U.cjs.map +1 -0
- package/dist/{direct-engine-CB3k-o0I.js → direct-engine-nrX_KvVy.js} +403 -415
- package/dist/direct-engine-nrX_KvVy.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +17 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/orchestrator/pdf-engine.d.ts +20 -0
- package/dist/lib/orchestrator/remote-executor.d.ts +5 -0
- package/dist/lib/pdfium/engine.d.ts +105 -0
- package/dist/lib/pdfium/index.cjs +1 -1
- package/dist/lib/pdfium/index.js +3 -3
- package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
- package/dist/lib/pdfium/web/direct-engine.js +2 -2
- 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 +22 -2
- 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 +30 -0
- package/dist/lib/webworker/engine.js +73 -0
- package/dist/lib/webworker/engine.js.map +1 -1
- package/dist/{pdf-engine-BVNF_Yo9.js → pdf-engine-ChjNHvQd.js} +61 -1
- package/dist/{pdf-engine-BVNF_Yo9.js.map → pdf-engine-ChjNHvQd.js.map} +1 -1
- package/dist/pdf-engine-DgNNP62W.cjs +2 -0
- package/dist/{pdf-engine-C3JeKij1.cjs.map → pdf-engine-DgNNP62W.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.cjs.map +1 -1
- package/dist/svelte/index.js +1 -1
- package/dist/svelte/index.js.map +1 -1
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.js +1 -1
- package/package.json +5 -5
- package/dist/direct-engine-BeZ18SKz.cjs +0 -2
- package/dist/direct-engine-BeZ18SKz.cjs.map +0 -1
- package/dist/direct-engine-CB3k-o0I.js.map +0 -1
- package/dist/pdf-engine-C3JeKij1.cjs +0 -2
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./lib/pdfium/index.cjs"),r=require("./lib/webworker/engine.cjs"),t=require("@embedpdf/models"),a=require("./direct-engine-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./lib/pdfium/index.cjs"),r=require("./lib/webworker/engine.cjs"),t=require("@embedpdf/models"),a=require("./direct-engine-Dwkk7o9U.cjs"),s=require("./lib/pdfium/web/worker-engine.cjs"),o=require("./browser-C6QEa8uk.cjs"),n=require("./pdf-engine-DgNNP62W.cjs"),c="WebWorkerEngineRunner",i="Engine";exports.DEFAULT_PDFIUM_WASM_URL=e.DEFAULT_PDFIUM_WASM_URL,exports.FONT_CDN_URLS=e.FONT_CDN_URLS,exports.cdnFontConfig=e.cdnFontConfig,exports.createCdnFontConfig=e.createCdnFontConfig,exports.WebWorkerEngine=r.WebWorkerEngine,exports.WorkerTask=r.WorkerTask,Object.defineProperty(exports,"FontCharset",{enumerable:!0,get:()=>t.FontCharset}),exports.BitmapFormat=a.BitmapFormat,exports.FontFallbackManager=a.FontFallbackManager,exports.PdfiumErrorCode=a.PdfiumErrorCode,exports.PdfiumNative=a.PdfiumNative,exports.RenderFlag=a.RenderFlag,exports.computeFormDrawParams=a.computeFormDrawParams,exports.createNodeFontLoader=a.createNodeFontLoader,exports.createPdfiumDirectEngine=a.createPdfiumEngine,exports.isValidCustomKey=a.isValidCustomKey,exports.readArrayBuffer=a.readArrayBuffer,exports.readString=a.readString,exports.createPdfiumWorkerEngine=s.createPdfiumEngine,exports.ImageConverterError=o.ImageConverterError,exports.browserImageDataToBlobConverter=o.browserImageDataToBlobConverter,exports.createHybridImageConverter=o.createHybridImageConverter,exports.createWorkerPoolImageConverter=o.createWorkerPoolImageConverter,exports.PdfEngine=n.PdfEngine,exports.EngineRunner=class{constructor(e=new t.NoopLogger){this.logger=e,this.execute=async e=>{if(this.logger.debug(c,i,"runner start exeucte request"),!this.engine){const r={type:"reject",reason:{code:t.PdfErrorCode.NotReady,message:"engine has not started yet"}},a={id:e.id,type:"ExecuteResponse",data:{type:"error",value:r}};return void this.respond(a)}const r=this.engine,{name:a,args:s}=e.data;if(!r[a]){const r={type:"reject",reason:{code:t.PdfErrorCode.NotSupport,message:`engine method ${a} is not supported yet`}},s={id:e.id,type:"ExecuteResponse",data:{type:"error",value:r}};return void this.respond(s)}let o;switch(a){case"isSupport":o=r.isSupport(...s);break;case"destroy":o=r.destroy(...s);break;case"openDocumentUrl":o=r.openDocumentUrl(...s);break;case"openDocumentBuffer":o=r.openDocumentBuffer(...s);break;case"getDocPermissions":o=r.getDocPermissions(...s);break;case"getDocUserPermissions":o=r.getDocUserPermissions(...s);break;case"getMetadata":o=r.getMetadata(...s);break;case"setMetadata":o=r.setMetadata(...s);break;case"getBookmarks":o=r.getBookmarks(...s);break;case"setBookmarks":o=r.setBookmarks(...s);break;case"deleteBookmarks":o=r.deleteBookmarks(...s);break;case"getSignatures":o=r.getSignatures(...s);break;case"renderPage":o=r.renderPage(...s);break;case"renderPageRect":o=r.renderPageRect(...s);break;case"renderPageAnnotation":o=r.renderPageAnnotation(...s);break;case"renderThumbnail":o=r.renderThumbnail(...s);break;case"getAllAnnotations":o=r.getAllAnnotations(...s);break;case"getPageAnnotations":o=r.getPageAnnotations(...s);break;case"createPageAnnotation":o=r.createPageAnnotation(...s);break;case"updatePageAnnotation":o=r.updatePageAnnotation(...s);break;case"removePageAnnotation":o=r.removePageAnnotation(...s);break;case"getPageTextRects":o=r.getPageTextRects(...s);break;case"searchAllPages":o=r.searchAllPages(...s);break;case"closeDocument":o=r.closeDocument(...s);break;case"closeAllDocuments":o=r.closeAllDocuments(...s);break;case"saveAsCopy":o=r.saveAsCopy(...s);break;case"getAttachments":o=r.getAttachments(...s);break;case"addAttachment":o=r.addAttachment(...s);break;case"removeAttachment":o=r.removeAttachment(...s);break;case"readAttachmentContent":o=r.readAttachmentContent(...s);break;case"setFormFieldValue":o=r.setFormFieldValue(...s);break;case"flattenPage":o=r.flattenPage(...s);break;case"extractPages":o=r.extractPages(...s);break;case"extractText":o=r.extractText(...s);break;case"redactTextInRects":o=r.redactTextInRects(...s);break;case"getTextSlices":o=r.getTextSlices(...s);break;case"getPageGlyphs":o=r.getPageGlyphs(...s);break;case"getPageGeometry":o=r.getPageGeometry(...s);break;case"merge":o=r.merge(...s);break;case"mergePages":o=r.mergePages(...s);break;case"preparePrintDocument":o=r.preparePrintDocument(...s);break;case"setDocumentEncryption":o=r.setDocumentEncryption(...s);break;case"removeEncryption":o=r.removeEncryption(...s);break;case"unlockOwnerPermissions":o=r.unlockOwnerPermissions(...s);break;case"isEncrypted":o=r.isEncrypted(...s);break;case"isOwnerUnlocked":o=r.isOwnerUnlocked(...s);break;default:const n={type:"reject",reason:{code:t.PdfErrorCode.NotSupport,message:`engine method ${a} is not supported`}},c={id:e.id,type:"ExecuteResponse",data:{type:"error",value:n}};return void this.respond(c)}o.onProgress(r=>{const t={id:e.id,type:"ExecuteProgress",data:r};this.respond(t)}),o.wait(r=>{const t={id:e.id,type:"ExecuteResponse",data:{type:"result",value:r}};this.respond(t)},r=>{const t={id:e.id,type:"ExecuteResponse",data:{type:"error",value:r}};this.respond(t)})}}listen(){self.onmessage=e=>this.handle(e)}handle(e){this.logger.debug(c,i,"webworker receive message event: ",e.data);try{const r=e.data;if("ExecuteRequest"===r.type)this.execute(r)}catch(r){this.logger.info(c,i,"webworker met error when processing message event:",r)}}ready(){this.listen(),this.respond({id:"0",type:"ReadyResponse"}),this.logger.debug(c,i,"runner is ready")}respond(e){this.logger.debug(c,i,"runner respond: ",e),self.postMessage(e)}};
|
|
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 */\nexport type PdfEngineMethodResponseBody = {\n [P in PdfEngineMethodName]: TaskReturn<PdfEngineMethodReturnType<P>>;\n}[PdfEngineMethodName];\n\n/**\n * Request that abort the specified task\n */\nexport interface AbortRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'AbortRequest';\n}\n/**\n * Request that execute pdf engine method\n */\nexport interface ExecuteRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'ExecuteRequest';\n /**\n * request body\n */\n data: PdfEngineMethodRequestBody;\n}\n/**\n * Response that execute pdf engine method\n */\nexport interface ExecuteResponse {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteResponse';\n /**\n * response body\n */\n data: PdfEngineMethodResponseBody;\n}\n\n/**\n * Response that indicate progress of the task\n */\nexport interface ExecuteProgress<T = unknown> {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteProgress';\n /**\n * response body\n */\n data: T;\n}\n\n/**\n * Response that indicate engine is ready\n */\nexport interface ReadyResponse {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ReadyResponse';\n}\n\n/**\n * Request type\n */\nexport type Request = ExecuteRequest | AbortRequest;\n/**\n * Response type\n */\nexport type Response = ExecuteResponse | ReadyResponse | ExecuteProgress;\n\nconst LOG_SOURCE = 'WebWorkerEngineRunner';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Pdf engine runner, it will execute pdf engine based on the request it received and\n * send back the response with post message\n */\nexport class EngineRunner {\n engine: PdfEngine | undefined;\n\n /**\n * Create instance of EngineRunnder\n * @param logger - logger instance\n */\n constructor(public logger: Logger = new NoopLogger()) {}\n\n /**\n * Listening on post message\n */\n listen() {\n self.onmessage = (evt: MessageEvent<Request>) => {\n return this.handle(evt);\n };\n }\n\n /**\n * Handle post message\n */\n handle(evt: MessageEvent<Request>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'webworker receive message event: ', evt.data);\n try {\n const request = evt.data as Request;\n switch (request.type) {\n case 'ExecuteRequest':\n this.execute(request);\n break;\n }\n } catch (e) {\n this.logger.info(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker met error when processing message event:',\n e,\n );\n }\n }\n\n /**\n * Send the ready response when pdf engine is ready\n * @returns\n *\n * @protected\n */\n ready() {\n this.listen();\n\n this.respond({\n id: '0',\n type: 'ReadyResponse',\n });\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner is ready');\n }\n\n /**\n * Execute the request\n * @param request - request that represent the pdf engine call\n * @returns\n *\n * @protected\n */\n execute = async (request: ExecuteRequest) => {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner start exeucte request');\n if (!this.engine) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotReady,\n message: 'engine has not started yet',\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n const engine = this.engine;\n const { name, args } = request.data;\n if (!engine[name]) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported yet`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n let task: PdfEngineMethodReturnType<typeof name>;\n switch (name) {\n case 'isSupport':\n task = engine.isSupport!(...args);\n break;\n case 'destroy':\n task = engine.destroy!(...args);\n break;\n case 'openDocumentUrl':\n task = engine.openDocumentUrl!(...args);\n break;\n case 'openDocumentBuffer':\n task = engine.openDocumentBuffer!(...args);\n break;\n case 'getDocPermissions':\n task = engine.getDocPermissions!(...args);\n break;\n case 'getDocUserPermissions':\n task = engine.getDocUserPermissions!(...args);\n break;\n case 'getMetadata':\n task = engine.getMetadata!(...args);\n break;\n case 'setMetadata':\n task = engine.setMetadata!(...args);\n break;\n case 'getBookmarks':\n task = engine.getBookmarks!(...args);\n break;\n case 'setBookmarks':\n task = engine.setBookmarks!(...args);\n break;\n case 'deleteBookmarks':\n task = engine.deleteBookmarks!(...args);\n break;\n case 'getSignatures':\n task = engine.getSignatures!(...args);\n break;\n case 'renderPage':\n task = engine.renderPage!(...args);\n break;\n case 'renderPageRect':\n task = engine.renderPageRect!(...args);\n break;\n case 'renderPageAnnotation':\n task = engine.renderPageAnnotation!(...args);\n break;\n case 'renderThumbnail':\n task = engine.renderThumbnail!(...args);\n break;\n case 'getAllAnnotations':\n task = engine.getAllAnnotations!(...args);\n break;\n case 'getPageAnnotations':\n task = engine.getPageAnnotations!(...args);\n break;\n case 'createPageAnnotation':\n task = engine.createPageAnnotation!(...args);\n break;\n case 'updatePageAnnotation':\n task = engine.updatePageAnnotation!(...args);\n break;\n case 'removePageAnnotation':\n task = engine.removePageAnnotation!(...args);\n break;\n case 'getPageTextRects':\n task = engine.getPageTextRects!(...args);\n break;\n case 'searchAllPages':\n task = engine.searchAllPages!(...args);\n break;\n case 'closeDocument':\n task = engine.closeDocument!(...args);\n break;\n case 'closeAllDocuments':\n task = engine.closeAllDocuments!(...args);\n break;\n case 'saveAsCopy':\n task = engine.saveAsCopy!(...args);\n break;\n case 'getAttachments':\n task = engine.getAttachments!(...args);\n break;\n case 'addAttachment':\n task = engine.addAttachment!(...args);\n break;\n case 'removeAttachment':\n task = engine.removeAttachment!(...args);\n break;\n case 'readAttachmentContent':\n task = engine.readAttachmentContent!(...args);\n break;\n case 'setFormFieldValue':\n task = engine.setFormFieldValue!(...args);\n break;\n case 'flattenPage':\n task = engine.flattenPage!(...args);\n break;\n case 'extractPages':\n task = engine.extractPages!(...args);\n break;\n case 'extractText':\n task = engine.extractText!(...args);\n break;\n case 'redactTextInRects':\n task = engine.redactTextInRects!(...args);\n break;\n case 'getTextSlices':\n task = engine.getTextSlices!(...args);\n break;\n case 'getPageGlyphs':\n task = engine.getPageGlyphs!(...args);\n break;\n case 'getPageGeometry':\n task = engine.getPageGeometry!(...args);\n break;\n case 'merge':\n task = engine.merge!(...args);\n break;\n case 'mergePages':\n task = engine.mergePages!(...args);\n break;\n case 'preparePrintDocument':\n task = engine.preparePrintDocument!(...args);\n break;\n default:\n // This should never be reached due to the earlier check, but provides exhaustiveness\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n task.onProgress((progress) => {\n const response: ExecuteProgress = {\n id: request.id,\n type: 'ExecuteProgress',\n data: progress,\n };\n this.respond(response);\n });\n\n task.wait(\n (result) => {\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'result',\n value: result,\n },\n };\n this.respond(response);\n },\n (error) => {\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n },\n );\n };\n\n /**\n * Send back the response\n * @param response - response that needs sent back\n *\n * @protected\n */\n respond(response: Response) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner respond: ', response);\n self.postMessage(response);\n }\n}\n"],"names":["LOG_SOURCE","LOG_CATEGORY","constructor","logger","NoopLogger","this","execute","async","request","debug","engine","error","type","reason","code","PdfErrorCode","NotReady","message","response","id","data","value","respond","name","args","NotSupport","task","isSupport","destroy","openDocumentUrl","openDocumentBuffer","getDocPermissions","getDocUserPermissions","getMetadata","setMetadata","getBookmarks","setBookmarks","deleteBookmarks","getSignatures","renderPage","renderPageRect","renderPageAnnotation","renderThumbnail","getAllAnnotations","getPageAnnotations","createPageAnnotation","updatePageAnnotation","removePageAnnotation","getPageTextRects","searchAllPages","closeDocument","closeAllDocuments","saveAsCopy","getAttachments","addAttachment","removeAttachment","readAttachmentContent","setFormFieldValue","flattenPage","extractPages","extractText","redactTextInRects","getTextSlices","getPageGlyphs","getPageGeometry","merge","mergePages","preparePrintDocument","onProgress","progress","wait","result","listen","self","onmessage","evt","handle","e","info","ready","postMessage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/lib/webworker/runner.ts"],"sourcesContent":["import {\n Logger,\n NoopLogger,\n PdfEngine,\n PdfEngineError,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n PdfEngineMethodReturnType,\n PdfErrorCode,\n TaskReturn,\n} from '@embedpdf/models';\n\n/**\n * Request body that represent method calls of PdfEngine, it contains the\n * method name and arguments\n */\nexport type PdfEngineMethodRequestBody = {\n [P in PdfEngineMethodName]: {\n name: P;\n args: PdfEngineMethodArgs<P>;\n };\n}[PdfEngineMethodName];\n\n/**\n * Request body that represent method calls of PdfEngine, it contains the\n * method name and arguments\n */\nexport type SpecificExecuteRequest<M extends PdfEngineMethodName> = {\n id: string;\n type: 'ExecuteRequest';\n data: {\n name: M;\n args: PdfEngineMethodArgs<M>;\n };\n};\n\n/**\n * Response body that represent return value of PdfEngine\n */\nexport type PdfEngineMethodResponseBody = {\n [P in PdfEngineMethodName]: TaskReturn<PdfEngineMethodReturnType<P>>;\n}[PdfEngineMethodName];\n\n/**\n * Request that abort the specified task\n */\nexport interface AbortRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'AbortRequest';\n}\n/**\n * Request that execute pdf engine method\n */\nexport interface ExecuteRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'ExecuteRequest';\n /**\n * request body\n */\n data: PdfEngineMethodRequestBody;\n}\n/**\n * Response that execute pdf engine method\n */\nexport interface ExecuteResponse {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteResponse';\n /**\n * response body\n */\n data: PdfEngineMethodResponseBody;\n}\n\n/**\n * Response that indicate progress of the task\n */\nexport interface ExecuteProgress<T = unknown> {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteProgress';\n /**\n * response body\n */\n data: T;\n}\n\n/**\n * Response that indicate engine is ready\n */\nexport interface ReadyResponse {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ReadyResponse';\n}\n\n/**\n * Request type\n */\nexport type Request = ExecuteRequest | AbortRequest;\n/**\n * Response type\n */\nexport type Response = ExecuteResponse | ReadyResponse | ExecuteProgress;\n\nconst LOG_SOURCE = 'WebWorkerEngineRunner';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Pdf engine runner, it will execute pdf engine based on the request it received and\n * send back the response with post message\n */\nexport class EngineRunner {\n engine: PdfEngine | undefined;\n\n /**\n * Create instance of EngineRunnder\n * @param logger - logger instance\n */\n constructor(public logger: Logger = new NoopLogger()) {}\n\n /**\n * Listening on post message\n */\n listen() {\n self.onmessage = (evt: MessageEvent<Request>) => {\n return this.handle(evt);\n };\n }\n\n /**\n * Handle post message\n */\n handle(evt: MessageEvent<Request>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'webworker receive message event: ', evt.data);\n try {\n const request = evt.data as Request;\n switch (request.type) {\n case 'ExecuteRequest':\n this.execute(request);\n break;\n }\n } catch (e) {\n this.logger.info(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker met error when processing message event:',\n e,\n );\n }\n }\n\n /**\n * Send the ready response when pdf engine is ready\n * @returns\n *\n * @protected\n */\n ready() {\n this.listen();\n\n this.respond({\n id: '0',\n type: 'ReadyResponse',\n });\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner is ready');\n }\n\n /**\n * Execute the request\n * @param request - request that represent the pdf engine call\n * @returns\n *\n * @protected\n */\n execute = async (request: ExecuteRequest) => {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner start exeucte request');\n if (!this.engine) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotReady,\n message: 'engine has not started yet',\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n const engine = this.engine;\n const { name, args } = request.data;\n if (!engine[name]) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported yet`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n let task: PdfEngineMethodReturnType<typeof name>;\n switch (name) {\n case 'isSupport':\n task = engine.isSupport!(...args);\n break;\n case 'destroy':\n task = engine.destroy!(...args);\n break;\n case 'openDocumentUrl':\n task = engine.openDocumentUrl!(...args);\n break;\n case 'openDocumentBuffer':\n task = engine.openDocumentBuffer!(...args);\n break;\n case 'getDocPermissions':\n task = engine.getDocPermissions!(...args);\n break;\n case 'getDocUserPermissions':\n task = engine.getDocUserPermissions!(...args);\n break;\n case 'getMetadata':\n task = engine.getMetadata!(...args);\n break;\n case 'setMetadata':\n task = engine.setMetadata!(...args);\n break;\n case 'getBookmarks':\n task = engine.getBookmarks!(...args);\n break;\n case 'setBookmarks':\n task = engine.setBookmarks!(...args);\n break;\n case 'deleteBookmarks':\n task = engine.deleteBookmarks!(...args);\n break;\n case 'getSignatures':\n task = engine.getSignatures!(...args);\n break;\n case 'renderPage':\n task = engine.renderPage!(...args);\n break;\n case 'renderPageRect':\n task = engine.renderPageRect!(...args);\n break;\n case 'renderPageAnnotation':\n task = engine.renderPageAnnotation!(...args);\n break;\n case 'renderThumbnail':\n task = engine.renderThumbnail!(...args);\n break;\n case 'getAllAnnotations':\n task = engine.getAllAnnotations!(...args);\n break;\n case 'getPageAnnotations':\n task = engine.getPageAnnotations!(...args);\n break;\n case 'createPageAnnotation':\n task = engine.createPageAnnotation!(...args);\n break;\n case 'updatePageAnnotation':\n task = engine.updatePageAnnotation!(...args);\n break;\n case 'removePageAnnotation':\n task = engine.removePageAnnotation!(...args);\n break;\n case 'getPageTextRects':\n task = engine.getPageTextRects!(...args);\n break;\n case 'searchAllPages':\n task = engine.searchAllPages!(...args);\n break;\n case 'closeDocument':\n task = engine.closeDocument!(...args);\n break;\n case 'closeAllDocuments':\n task = engine.closeAllDocuments!(...args);\n break;\n case 'saveAsCopy':\n task = engine.saveAsCopy!(...args);\n break;\n case 'getAttachments':\n task = engine.getAttachments!(...args);\n break;\n case 'addAttachment':\n task = engine.addAttachment!(...args);\n break;\n case 'removeAttachment':\n task = engine.removeAttachment!(...args);\n break;\n case 'readAttachmentContent':\n task = engine.readAttachmentContent!(...args);\n break;\n case 'setFormFieldValue':\n task = engine.setFormFieldValue!(...args);\n break;\n case 'flattenPage':\n task = engine.flattenPage!(...args);\n break;\n case 'extractPages':\n task = engine.extractPages!(...args);\n break;\n case 'extractText':\n task = engine.extractText!(...args);\n break;\n case 'redactTextInRects':\n task = engine.redactTextInRects!(...args);\n break;\n case 'getTextSlices':\n task = engine.getTextSlices!(...args);\n break;\n case 'getPageGlyphs':\n task = engine.getPageGlyphs!(...args);\n break;\n case 'getPageGeometry':\n task = engine.getPageGeometry!(...args);\n break;\n case 'merge':\n task = engine.merge!(...args);\n break;\n case 'mergePages':\n task = engine.mergePages!(...args);\n break;\n case 'preparePrintDocument':\n task = engine.preparePrintDocument!(...args);\n break;\n case 'setDocumentEncryption':\n task = engine.setDocumentEncryption(...args);\n break;\n case 'removeEncryption':\n task = engine.removeEncryption(...args);\n break;\n case 'unlockOwnerPermissions':\n task = engine.unlockOwnerPermissions(...args);\n break;\n case 'isEncrypted':\n task = engine.isEncrypted(...args);\n break;\n case 'isOwnerUnlocked':\n task = engine.isOwnerUnlocked(...args);\n break;\n default:\n // This should never be reached due to the earlier check, but provides exhaustiveness\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n task.onProgress((progress) => {\n const response: ExecuteProgress = {\n id: request.id,\n type: 'ExecuteProgress',\n data: progress,\n };\n this.respond(response);\n });\n\n task.wait(\n (result) => {\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'result',\n value: result,\n },\n };\n this.respond(response);\n },\n (error) => {\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n },\n );\n };\n\n /**\n * Send back the response\n * @param response - response that needs sent back\n *\n * @protected\n */\n respond(response: Response) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner respond: ', response);\n self.postMessage(response);\n }\n}\n"],"names":["LOG_SOURCE","LOG_CATEGORY","constructor","logger","NoopLogger","this","execute","async","request","debug","engine","error","type","reason","code","PdfErrorCode","NotReady","message","response","id","data","value","respond","name","args","NotSupport","task","isSupport","destroy","openDocumentUrl","openDocumentBuffer","getDocPermissions","getDocUserPermissions","getMetadata","setMetadata","getBookmarks","setBookmarks","deleteBookmarks","getSignatures","renderPage","renderPageRect","renderPageAnnotation","renderThumbnail","getAllAnnotations","getPageAnnotations","createPageAnnotation","updatePageAnnotation","removePageAnnotation","getPageTextRects","searchAllPages","closeDocument","closeAllDocuments","saveAsCopy","getAttachments","addAttachment","removeAttachment","readAttachmentContent","setFormFieldValue","flattenPage","extractPages","extractText","redactTextInRects","getTextSlices","getPageGlyphs","getPageGeometry","merge","mergePages","preparePrintDocument","setDocumentEncryption","removeEncryption","unlockOwnerPermissions","isEncrypted","isOwnerUnlocked","onProgress","progress","wait","result","listen","self","onmessage","evt","handle","e","info","ready","postMessage"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,10 +2,10 @@ 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, d, e, c, i, b, r } from "./direct-engine-
|
|
5
|
+
import { B, F, P, a, R, d, e, c, i, b, r } from "./direct-engine-nrX_KvVy.js";
|
|
6
6
|
import { createPdfiumEngine } from "./lib/pdfium/web/worker-engine.js";
|
|
7
7
|
import { I, b as b2, a as a2, c as c2 } from "./browser-awZxztMA.js";
|
|
8
|
-
import { P as P2 } from "./pdf-engine-
|
|
8
|
+
import { P as P2 } from "./pdf-engine-ChjNHvQd.js";
|
|
9
9
|
const LOG_SOURCE = "WebWorkerEngineRunner";
|
|
10
10
|
const LOG_CATEGORY = "Engine";
|
|
11
11
|
class EngineRunner {
|
|
@@ -182,6 +182,21 @@ class EngineRunner {
|
|
|
182
182
|
case "preparePrintDocument":
|
|
183
183
|
task = engine.preparePrintDocument(...args);
|
|
184
184
|
break;
|
|
185
|
+
case "setDocumentEncryption":
|
|
186
|
+
task = engine.setDocumentEncryption(...args);
|
|
187
|
+
break;
|
|
188
|
+
case "removeEncryption":
|
|
189
|
+
task = engine.removeEncryption(...args);
|
|
190
|
+
break;
|
|
191
|
+
case "unlockOwnerPermissions":
|
|
192
|
+
task = engine.unlockOwnerPermissions(...args);
|
|
193
|
+
break;
|
|
194
|
+
case "isEncrypted":
|
|
195
|
+
task = engine.isEncrypted(...args);
|
|
196
|
+
break;
|
|
197
|
+
case "isOwnerUnlocked":
|
|
198
|
+
task = engine.isOwnerUnlocked(...args);
|
|
199
|
+
break;
|
|
185
200
|
default:
|
|
186
201
|
const error = {
|
|
187
202
|
type: "reject",
|
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 */\nexport type PdfEngineMethodResponseBody = {\n [P in PdfEngineMethodName]: TaskReturn<PdfEngineMethodReturnType<P>>;\n}[PdfEngineMethodName];\n\n/**\n * Request that abort the specified task\n */\nexport interface AbortRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'AbortRequest';\n}\n/**\n * Request that execute pdf engine method\n */\nexport interface ExecuteRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'ExecuteRequest';\n /**\n * request body\n */\n data: PdfEngineMethodRequestBody;\n}\n/**\n * Response that execute pdf engine method\n */\nexport interface ExecuteResponse {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteResponse';\n /**\n * response body\n */\n data: PdfEngineMethodResponseBody;\n}\n\n/**\n * Response that indicate progress of the task\n */\nexport interface ExecuteProgress<T = unknown> {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteProgress';\n /**\n * response body\n */\n data: T;\n}\n\n/**\n * Response that indicate engine is ready\n */\nexport interface ReadyResponse {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ReadyResponse';\n}\n\n/**\n * Request type\n */\nexport type Request = ExecuteRequest | AbortRequest;\n/**\n * Response type\n */\nexport type Response = ExecuteResponse | ReadyResponse | ExecuteProgress;\n\nconst LOG_SOURCE = 'WebWorkerEngineRunner';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Pdf engine runner, it will execute pdf engine based on the request it received and\n * send back the response with post message\n */\nexport class EngineRunner {\n engine: PdfEngine | undefined;\n\n /**\n * Create instance of EngineRunnder\n * @param logger - logger instance\n */\n constructor(public logger: Logger = new NoopLogger()) {}\n\n /**\n * Listening on post message\n */\n listen() {\n self.onmessage = (evt: MessageEvent<Request>) => {\n return this.handle(evt);\n };\n }\n\n /**\n * Handle post message\n */\n handle(evt: MessageEvent<Request>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'webworker receive message event: ', evt.data);\n try {\n const request = evt.data as Request;\n switch (request.type) {\n case 'ExecuteRequest':\n this.execute(request);\n break;\n }\n } catch (e) {\n this.logger.info(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker met error when processing message event:',\n e,\n );\n }\n }\n\n /**\n * Send the ready response when pdf engine is ready\n * @returns\n *\n * @protected\n */\n ready() {\n this.listen();\n\n this.respond({\n id: '0',\n type: 'ReadyResponse',\n });\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner is ready');\n }\n\n /**\n * Execute the request\n * @param request - request that represent the pdf engine call\n * @returns\n *\n * @protected\n */\n execute = async (request: ExecuteRequest) => {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner start exeucte request');\n if (!this.engine) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotReady,\n message: 'engine has not started yet',\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n const engine = this.engine;\n const { name, args } = request.data;\n if (!engine[name]) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported yet`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n let task: PdfEngineMethodReturnType<typeof name>;\n switch (name) {\n case 'isSupport':\n task = engine.isSupport!(...args);\n break;\n case 'destroy':\n task = engine.destroy!(...args);\n break;\n case 'openDocumentUrl':\n task = engine.openDocumentUrl!(...args);\n break;\n case 'openDocumentBuffer':\n task = engine.openDocumentBuffer!(...args);\n break;\n case 'getDocPermissions':\n task = engine.getDocPermissions!(...args);\n break;\n case 'getDocUserPermissions':\n task = engine.getDocUserPermissions!(...args);\n break;\n case 'getMetadata':\n task = engine.getMetadata!(...args);\n break;\n case 'setMetadata':\n task = engine.setMetadata!(...args);\n break;\n case 'getBookmarks':\n task = engine.getBookmarks!(...args);\n break;\n case 'setBookmarks':\n task = engine.setBookmarks!(...args);\n break;\n case 'deleteBookmarks':\n task = engine.deleteBookmarks!(...args);\n break;\n case 'getSignatures':\n task = engine.getSignatures!(...args);\n break;\n case 'renderPage':\n task = engine.renderPage!(...args);\n break;\n case 'renderPageRect':\n task = engine.renderPageRect!(...args);\n break;\n case 'renderPageAnnotation':\n task = engine.renderPageAnnotation!(...args);\n break;\n case 'renderThumbnail':\n task = engine.renderThumbnail!(...args);\n break;\n case 'getAllAnnotations':\n task = engine.getAllAnnotations!(...args);\n break;\n case 'getPageAnnotations':\n task = engine.getPageAnnotations!(...args);\n break;\n case 'createPageAnnotation':\n task = engine.createPageAnnotation!(...args);\n break;\n case 'updatePageAnnotation':\n task = engine.updatePageAnnotation!(...args);\n break;\n case 'removePageAnnotation':\n task = engine.removePageAnnotation!(...args);\n break;\n case 'getPageTextRects':\n task = engine.getPageTextRects!(...args);\n break;\n case 'searchAllPages':\n task = engine.searchAllPages!(...args);\n break;\n case 'closeDocument':\n task = engine.closeDocument!(...args);\n break;\n case 'closeAllDocuments':\n task = engine.closeAllDocuments!(...args);\n break;\n case 'saveAsCopy':\n task = engine.saveAsCopy!(...args);\n break;\n case 'getAttachments':\n task = engine.getAttachments!(...args);\n break;\n case 'addAttachment':\n task = engine.addAttachment!(...args);\n break;\n case 'removeAttachment':\n task = engine.removeAttachment!(...args);\n break;\n case 'readAttachmentContent':\n task = engine.readAttachmentContent!(...args);\n break;\n case 'setFormFieldValue':\n task = engine.setFormFieldValue!(...args);\n break;\n case 'flattenPage':\n task = engine.flattenPage!(...args);\n break;\n case 'extractPages':\n task = engine.extractPages!(...args);\n break;\n case 'extractText':\n task = engine.extractText!(...args);\n break;\n case 'redactTextInRects':\n task = engine.redactTextInRects!(...args);\n break;\n case 'getTextSlices':\n task = engine.getTextSlices!(...args);\n break;\n case 'getPageGlyphs':\n task = engine.getPageGlyphs!(...args);\n break;\n case 'getPageGeometry':\n task = engine.getPageGeometry!(...args);\n break;\n case 'merge':\n task = engine.merge!(...args);\n break;\n case 'mergePages':\n task = engine.mergePages!(...args);\n break;\n case 'preparePrintDocument':\n task = engine.preparePrintDocument!(...args);\n break;\n default:\n // This should never be reached due to the earlier check, but provides exhaustiveness\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n task.onProgress((progress) => {\n const response: ExecuteProgress = {\n id: request.id,\n type: 'ExecuteProgress',\n data: progress,\n };\n this.respond(response);\n });\n\n task.wait(\n (result) => {\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'result',\n value: result,\n },\n };\n this.respond(response);\n },\n (error) => {\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n },\n );\n };\n\n /**\n * Send back the response\n * @param response - response that needs sent back\n *\n * @protected\n */\n respond(response: Response) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner respond: ', response);\n self.postMessage(response);\n }\n}\n"],"names":["e"],"mappings":"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"}
|
|
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 */\nexport type PdfEngineMethodResponseBody = {\n [P in PdfEngineMethodName]: TaskReturn<PdfEngineMethodReturnType<P>>;\n}[PdfEngineMethodName];\n\n/**\n * Request that abort the specified task\n */\nexport interface AbortRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'AbortRequest';\n}\n/**\n * Request that execute pdf engine method\n */\nexport interface ExecuteRequest {\n /**\n * message id\n */\n id: string;\n /**\n * request type\n */\n type: 'ExecuteRequest';\n /**\n * request body\n */\n data: PdfEngineMethodRequestBody;\n}\n/**\n * Response that execute pdf engine method\n */\nexport interface ExecuteResponse {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteResponse';\n /**\n * response body\n */\n data: PdfEngineMethodResponseBody;\n}\n\n/**\n * Response that indicate progress of the task\n */\nexport interface ExecuteProgress<T = unknown> {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ExecuteProgress';\n /**\n * response body\n */\n data: T;\n}\n\n/**\n * Response that indicate engine is ready\n */\nexport interface ReadyResponse {\n /**\n * message id\n */\n id: string;\n /**\n * response type\n */\n type: 'ReadyResponse';\n}\n\n/**\n * Request type\n */\nexport type Request = ExecuteRequest | AbortRequest;\n/**\n * Response type\n */\nexport type Response = ExecuteResponse | ReadyResponse | ExecuteProgress;\n\nconst LOG_SOURCE = 'WebWorkerEngineRunner';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Pdf engine runner, it will execute pdf engine based on the request it received and\n * send back the response with post message\n */\nexport class EngineRunner {\n engine: PdfEngine | undefined;\n\n /**\n * Create instance of EngineRunnder\n * @param logger - logger instance\n */\n constructor(public logger: Logger = new NoopLogger()) {}\n\n /**\n * Listening on post message\n */\n listen() {\n self.onmessage = (evt: MessageEvent<Request>) => {\n return this.handle(evt);\n };\n }\n\n /**\n * Handle post message\n */\n handle(evt: MessageEvent<Request>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'webworker receive message event: ', evt.data);\n try {\n const request = evt.data as Request;\n switch (request.type) {\n case 'ExecuteRequest':\n this.execute(request);\n break;\n }\n } catch (e) {\n this.logger.info(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker met error when processing message event:',\n e,\n );\n }\n }\n\n /**\n * Send the ready response when pdf engine is ready\n * @returns\n *\n * @protected\n */\n ready() {\n this.listen();\n\n this.respond({\n id: '0',\n type: 'ReadyResponse',\n });\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner is ready');\n }\n\n /**\n * Execute the request\n * @param request - request that represent the pdf engine call\n * @returns\n *\n * @protected\n */\n execute = async (request: ExecuteRequest) => {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner start exeucte request');\n if (!this.engine) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotReady,\n message: 'engine has not started yet',\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n const engine = this.engine;\n const { name, args } = request.data;\n if (!engine[name]) {\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported yet`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n let task: PdfEngineMethodReturnType<typeof name>;\n switch (name) {\n case 'isSupport':\n task = engine.isSupport!(...args);\n break;\n case 'destroy':\n task = engine.destroy!(...args);\n break;\n case 'openDocumentUrl':\n task = engine.openDocumentUrl!(...args);\n break;\n case 'openDocumentBuffer':\n task = engine.openDocumentBuffer!(...args);\n break;\n case 'getDocPermissions':\n task = engine.getDocPermissions!(...args);\n break;\n case 'getDocUserPermissions':\n task = engine.getDocUserPermissions!(...args);\n break;\n case 'getMetadata':\n task = engine.getMetadata!(...args);\n break;\n case 'setMetadata':\n task = engine.setMetadata!(...args);\n break;\n case 'getBookmarks':\n task = engine.getBookmarks!(...args);\n break;\n case 'setBookmarks':\n task = engine.setBookmarks!(...args);\n break;\n case 'deleteBookmarks':\n task = engine.deleteBookmarks!(...args);\n break;\n case 'getSignatures':\n task = engine.getSignatures!(...args);\n break;\n case 'renderPage':\n task = engine.renderPage!(...args);\n break;\n case 'renderPageRect':\n task = engine.renderPageRect!(...args);\n break;\n case 'renderPageAnnotation':\n task = engine.renderPageAnnotation!(...args);\n break;\n case 'renderThumbnail':\n task = engine.renderThumbnail!(...args);\n break;\n case 'getAllAnnotations':\n task = engine.getAllAnnotations!(...args);\n break;\n case 'getPageAnnotations':\n task = engine.getPageAnnotations!(...args);\n break;\n case 'createPageAnnotation':\n task = engine.createPageAnnotation!(...args);\n break;\n case 'updatePageAnnotation':\n task = engine.updatePageAnnotation!(...args);\n break;\n case 'removePageAnnotation':\n task = engine.removePageAnnotation!(...args);\n break;\n case 'getPageTextRects':\n task = engine.getPageTextRects!(...args);\n break;\n case 'searchAllPages':\n task = engine.searchAllPages!(...args);\n break;\n case 'closeDocument':\n task = engine.closeDocument!(...args);\n break;\n case 'closeAllDocuments':\n task = engine.closeAllDocuments!(...args);\n break;\n case 'saveAsCopy':\n task = engine.saveAsCopy!(...args);\n break;\n case 'getAttachments':\n task = engine.getAttachments!(...args);\n break;\n case 'addAttachment':\n task = engine.addAttachment!(...args);\n break;\n case 'removeAttachment':\n task = engine.removeAttachment!(...args);\n break;\n case 'readAttachmentContent':\n task = engine.readAttachmentContent!(...args);\n break;\n case 'setFormFieldValue':\n task = engine.setFormFieldValue!(...args);\n break;\n case 'flattenPage':\n task = engine.flattenPage!(...args);\n break;\n case 'extractPages':\n task = engine.extractPages!(...args);\n break;\n case 'extractText':\n task = engine.extractText!(...args);\n break;\n case 'redactTextInRects':\n task = engine.redactTextInRects!(...args);\n break;\n case 'getTextSlices':\n task = engine.getTextSlices!(...args);\n break;\n case 'getPageGlyphs':\n task = engine.getPageGlyphs!(...args);\n break;\n case 'getPageGeometry':\n task = engine.getPageGeometry!(...args);\n break;\n case 'merge':\n task = engine.merge!(...args);\n break;\n case 'mergePages':\n task = engine.mergePages!(...args);\n break;\n case 'preparePrintDocument':\n task = engine.preparePrintDocument!(...args);\n break;\n case 'setDocumentEncryption':\n task = engine.setDocumentEncryption(...args);\n break;\n case 'removeEncryption':\n task = engine.removeEncryption(...args);\n break;\n case 'unlockOwnerPermissions':\n task = engine.unlockOwnerPermissions(...args);\n break;\n case 'isEncrypted':\n task = engine.isEncrypted(...args);\n break;\n case 'isOwnerUnlocked':\n task = engine.isOwnerUnlocked(...args);\n break;\n default:\n // This should never be reached due to the earlier check, but provides exhaustiveness\n const error: PdfEngineError = {\n type: 'reject',\n reason: {\n code: PdfErrorCode.NotSupport,\n message: `engine method ${name} is not supported`,\n },\n };\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n return;\n }\n\n task.onProgress((progress) => {\n const response: ExecuteProgress = {\n id: request.id,\n type: 'ExecuteProgress',\n data: progress,\n };\n this.respond(response);\n });\n\n task.wait(\n (result) => {\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'result',\n value: result,\n },\n };\n this.respond(response);\n },\n (error) => {\n const response: ExecuteResponse = {\n id: request.id,\n type: 'ExecuteResponse',\n data: {\n type: 'error',\n value: error,\n },\n };\n this.respond(response);\n },\n );\n };\n\n /**\n * Send back the response\n * @param response - response that needs sent back\n *\n * @protected\n */\n respond(response: Response) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'runner respond: ', response);\n self.postMessage(response);\n }\n}\n"],"names":["e"],"mappings":"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"}
|
|
@@ -96,4 +96,24 @@ export declare class PdfEngine<T = Blob> implements IPdfEngine<T> {
|
|
|
96
96
|
saveAsCopy(doc: PdfDocumentObject): PdfTask<ArrayBuffer>;
|
|
97
97
|
closeDocument(doc: PdfDocumentObject): PdfTask<boolean>;
|
|
98
98
|
closeAllDocuments(): PdfTask<boolean>;
|
|
99
|
+
/**
|
|
100
|
+
* {@inheritDoc @embedpdf/models!PdfEngine.setDocumentEncryption}
|
|
101
|
+
*/
|
|
102
|
+
setDocumentEncryption(doc: PdfDocumentObject, userPassword: string, ownerPassword: string, allowedFlags: number): PdfTask<boolean>;
|
|
103
|
+
/**
|
|
104
|
+
* {@inheritDoc @embedpdf/models!PdfEngine.removeEncryption}
|
|
105
|
+
*/
|
|
106
|
+
removeEncryption(doc: PdfDocumentObject): PdfTask<boolean>;
|
|
107
|
+
/**
|
|
108
|
+
* {@inheritDoc @embedpdf/models!PdfEngine.unlockOwnerPermissions}
|
|
109
|
+
*/
|
|
110
|
+
unlockOwnerPermissions(doc: PdfDocumentObject, ownerPassword: string): PdfTask<boolean>;
|
|
111
|
+
/**
|
|
112
|
+
* {@inheritDoc @embedpdf/models!PdfEngine.isEncrypted}
|
|
113
|
+
*/
|
|
114
|
+
isEncrypted(doc: PdfDocumentObject): PdfTask<boolean>;
|
|
115
|
+
/**
|
|
116
|
+
* {@inheritDoc @embedpdf/models!PdfEngine.isOwnerUnlocked}
|
|
117
|
+
*/
|
|
118
|
+
isOwnerUnlocked(doc: PdfDocumentObject): PdfTask<boolean>;
|
|
99
119
|
}
|
|
@@ -95,4 +95,9 @@ export declare class RemoteExecutor implements IPdfiumExecutor {
|
|
|
95
95
|
saveAsCopy(doc: PdfDocumentObject): PdfTask<ArrayBuffer>;
|
|
96
96
|
closeDocument(doc: PdfDocumentObject): PdfTask<boolean>;
|
|
97
97
|
closeAllDocuments(): PdfTask<boolean>;
|
|
98
|
+
setDocumentEncryption(doc: PdfDocumentObject, userPassword: string, ownerPassword: string, allowedFlags: number): PdfTask<boolean>;
|
|
99
|
+
removeEncryption(doc: PdfDocumentObject): PdfTask<boolean>;
|
|
100
|
+
unlockOwnerPermissions(doc: PdfDocumentObject, ownerPassword: string): PdfTask<boolean>;
|
|
101
|
+
isEncrypted(doc: PdfDocumentObject): PdfTask<boolean>;
|
|
102
|
+
isOwnerUnlocked(doc: PdfDocumentObject): PdfTask<boolean>;
|
|
98
103
|
}
|
|
@@ -273,6 +273,57 @@ export declare class PdfiumNative implements IPdfiumExecutor {
|
|
|
273
273
|
docId: string;
|
|
274
274
|
pageIndices: number[];
|
|
275
275
|
}>): Task<any, PdfErrorReason, unknown> | Task<PdfFile, PdfErrorReason, unknown>;
|
|
276
|
+
/**
|
|
277
|
+
* Sets AES-256 encryption on a document.
|
|
278
|
+
* Must be called before saveAsCopy() for encryption to take effect.
|
|
279
|
+
*
|
|
280
|
+
* @param doc - Document to encrypt
|
|
281
|
+
* @param userPassword - Password to open document (empty = no open password)
|
|
282
|
+
* @param ownerPassword - Password to change permissions (required)
|
|
283
|
+
* @param allowedFlags - OR'd PdfPermissionFlag values indicating allowed actions
|
|
284
|
+
* @returns true on success, false if already encrypted or invalid params
|
|
285
|
+
*
|
|
286
|
+
* @public
|
|
287
|
+
*/
|
|
288
|
+
setDocumentEncryption(doc: PdfDocumentObject, userPassword: string, ownerPassword: string, allowedFlags: number): PdfTask<boolean>;
|
|
289
|
+
/**
|
|
290
|
+
* Marks document for encryption removal on save.
|
|
291
|
+
* When saveAsCopy is called, the document will be saved without encryption.
|
|
292
|
+
*
|
|
293
|
+
* @param doc - Document to remove encryption from
|
|
294
|
+
* @returns true on success
|
|
295
|
+
*
|
|
296
|
+
* @public
|
|
297
|
+
*/
|
|
298
|
+
removeEncryption(doc: PdfDocumentObject): PdfTask<boolean>;
|
|
299
|
+
/**
|
|
300
|
+
* Attempts to unlock owner permissions for an already-opened encrypted document.
|
|
301
|
+
*
|
|
302
|
+
* @param doc - Document to unlock
|
|
303
|
+
* @param ownerPassword - The owner password
|
|
304
|
+
* @returns true on success, false on failure
|
|
305
|
+
*
|
|
306
|
+
* @public
|
|
307
|
+
*/
|
|
308
|
+
unlockOwnerPermissions(doc: PdfDocumentObject, ownerPassword: string): PdfTask<boolean>;
|
|
309
|
+
/**
|
|
310
|
+
* Check if a document is encrypted.
|
|
311
|
+
*
|
|
312
|
+
* @param doc - Document to check
|
|
313
|
+
* @returns true if the document is encrypted
|
|
314
|
+
*
|
|
315
|
+
* @public
|
|
316
|
+
*/
|
|
317
|
+
isEncrypted(doc: PdfDocumentObject): PdfTask<boolean>;
|
|
318
|
+
/**
|
|
319
|
+
* Check if owner permissions are currently unlocked.
|
|
320
|
+
*
|
|
321
|
+
* @param doc - Document to check
|
|
322
|
+
* @returns true if owner permissions are unlocked
|
|
323
|
+
*
|
|
324
|
+
* @public
|
|
325
|
+
*/
|
|
326
|
+
isOwnerUnlocked(doc: PdfDocumentObject): PdfTask<boolean>;
|
|
276
327
|
/**
|
|
277
328
|
* {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}
|
|
278
329
|
*
|
|
@@ -346,6 +397,17 @@ export declare class PdfiumNative implements IPdfiumExecutor {
|
|
|
346
397
|
* @private
|
|
347
398
|
*/
|
|
348
399
|
private addPolyContent;
|
|
400
|
+
/**
|
|
401
|
+
* Add link content (action or destination) to a link annotation
|
|
402
|
+
* @param docPtr - pointer to pdf document
|
|
403
|
+
* @param pagePtr - pointer to the page
|
|
404
|
+
* @param annotationPtr - pointer to pdf annotation
|
|
405
|
+
* @param annotation - the link annotation object
|
|
406
|
+
* @returns true if successful
|
|
407
|
+
*
|
|
408
|
+
* @private
|
|
409
|
+
*/
|
|
410
|
+
private addLinkContent;
|
|
349
411
|
/**
|
|
350
412
|
* Add shape content to annotation
|
|
351
413
|
* @param page - page info
|
|
@@ -724,6 +786,21 @@ export declare class PdfiumNative implements IPdfiumExecutor {
|
|
|
724
786
|
* @returns `true` on success
|
|
725
787
|
*/
|
|
726
788
|
private setAnnotationIcon;
|
|
789
|
+
/**
|
|
790
|
+
* Get the reply type of the annotation (RT property per ISO 32000-2)
|
|
791
|
+
*
|
|
792
|
+
* @param annotationPtr - pointer to an `FPDF_ANNOTATION`
|
|
793
|
+
* @returns `PdfAnnotationReplyType`
|
|
794
|
+
*/
|
|
795
|
+
private getReplyType;
|
|
796
|
+
/**
|
|
797
|
+
* Set the reply type of the annotation (RT property per ISO 32000-2)
|
|
798
|
+
*
|
|
799
|
+
* @param annotationPtr - pointer to an `FPDF_ANNOTATION`
|
|
800
|
+
* @param replyType - `PdfAnnotationReplyType`
|
|
801
|
+
* @returns `true` on success
|
|
802
|
+
*/
|
|
803
|
+
private setReplyType;
|
|
727
804
|
/**
|
|
728
805
|
* Border-effect (“cloudy”) helper
|
|
729
806
|
*
|
|
@@ -1169,6 +1246,24 @@ export declare class PdfiumNative implements IPdfiumExecutor {
|
|
|
1169
1246
|
* @returns `true` on success
|
|
1170
1247
|
*/
|
|
1171
1248
|
private setInReplyToId;
|
|
1249
|
+
/**
|
|
1250
|
+
* Apply all base annotation properties from PdfAnnotationObjectBase.
|
|
1251
|
+
* The setInReplyToId and setReplyType functions handle clearing when undefined.
|
|
1252
|
+
*
|
|
1253
|
+
* @param pagePtr - pointer to page object
|
|
1254
|
+
* @param annotationPtr - pointer to annotation object
|
|
1255
|
+
* @param annotation - the annotation object containing properties to apply
|
|
1256
|
+
* @returns `true` on success
|
|
1257
|
+
*/
|
|
1258
|
+
private applyBaseAnnotationProperties;
|
|
1259
|
+
/**
|
|
1260
|
+
* Read all base annotation properties from PdfAnnotationObjectBase.
|
|
1261
|
+
* Returns an object that can be spread into the annotation return value.
|
|
1262
|
+
*
|
|
1263
|
+
* @param annotationPtr - pointer to annotation object
|
|
1264
|
+
* @returns object with base annotation properties
|
|
1265
|
+
*/
|
|
1266
|
+
private readBaseAnnotationProperties;
|
|
1172
1267
|
/**
|
|
1173
1268
|
* Fetch a string value (`/T`, `/M`, `/State`, …) from an annotation.
|
|
1174
1269
|
*
|
|
@@ -1323,6 +1418,16 @@ export declare class PdfiumNative implements IPdfiumExecutor {
|
|
|
1323
1418
|
private readPdfLinkAnnoTarget;
|
|
1324
1419
|
private createLocalDestPtr;
|
|
1325
1420
|
private applyBookmarkTarget;
|
|
1421
|
+
/**
|
|
1422
|
+
* Apply a link target (action or destination) to a link annotation
|
|
1423
|
+
* @param docPtr - pointer to pdf document
|
|
1424
|
+
* @param annotationPtr - pointer to the link annotation
|
|
1425
|
+
* @param target - the link target to apply
|
|
1426
|
+
* @returns true if successful
|
|
1427
|
+
*
|
|
1428
|
+
* @private
|
|
1429
|
+
*/
|
|
1430
|
+
private applyLinkTarget;
|
|
1326
1431
|
/**
|
|
1327
1432
|
* Read pdf action from pdf document
|
|
1328
1433
|
* @param docPtr - pointer to pdf document object
|
|
@@ -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-Dwkk7o9U.cjs"),t=require("../../browser-C6QEa8uk.cjs"),r=require("../../pdf-engine-DgNNP62W.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.3.0/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, d, e, c, i, b, r } from "../../direct-engine-
|
|
1
|
+
import { B, F, P, a, R, d, e, c, i, b, r } from "../../direct-engine-nrX_KvVy.js";
|
|
2
2
|
import { I, b as b2, a as a2, c as c2 } from "../../browser-awZxztMA.js";
|
|
3
|
-
import { P as P2 } from "../../pdf-engine-
|
|
3
|
+
import { P as P2 } from "../../pdf-engine-ChjNHvQd.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.3.0/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-Dwkk7o9U.cjs");require("../../../pdf-engine-DgNNP62W.cjs"),require("../../../browser-C6QEa8uk.cjs"),exports.createPdfiumEngine=e.createPdfiumEngine;
|
|
2
2
|
//# sourceMappingURL=direct-engine.cjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "@embedpdf/pdfium";
|
|
2
|
-
import { c } from "../../../direct-engine-
|
|
3
|
-
import "../../../pdf-engine-
|
|
2
|
+
import { c } from "../../../direct-engine-nrX_KvVy.js";
|
|
3
|
+
import "../../../pdf-engine-ChjNHvQd.js";
|
|
4
4
|
import "../../../browser-awZxztMA.js";
|
|
5
5
|
export {
|
|
6
6
|
c as createPdfiumEngine
|