@embedpdf/engines 1.0.3 → 1.0.5
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/converters.cjs +130 -115
- package/dist/converters.cjs.map +1 -1
- package/dist/converters.d.ts +7 -12
- package/dist/converters.js +125 -86
- package/dist/converters.js.map +1 -1
- package/dist/index.cjs +5362 -5978
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1479 -6
- package/dist/index.js +5399 -356
- package/dist/index.js.map +1 -1
- package/dist/pdfium-direct-engine.cjs +4037 -0
- package/dist/pdfium-direct-engine.cjs.map +1 -0
- package/dist/{pdfium.d.cts → pdfium-direct-engine.d.ts} +7 -99
- package/dist/pdfium-direct-engine.js +4035 -0
- package/dist/pdfium-direct-engine.js.map +1 -0
- package/dist/pdfium-worker-engine.cjs +800 -0
- package/dist/pdfium-worker-engine.cjs.map +1 -0
- package/dist/{worker.d.cts → pdfium-worker-engine.d.ts} +38 -6
- package/dist/pdfium-worker-engine.js +798 -0
- package/dist/pdfium-worker-engine.js.map +1 -0
- package/dist/pdfium.cjs +4243 -5647
- package/dist/pdfium.cjs.map +1 -1
- package/dist/pdfium.d.ts +134 -6
- package/dist/pdfium.js +4288 -21
- package/dist/pdfium.js.map +1 -1
- package/dist/preact.cjs +39 -0
- package/dist/preact.cjs.map +1 -0
- package/dist/preact.d.ts +13 -0
- package/dist/preact.js +37 -0
- package/dist/preact.js.map +1 -0
- package/dist/react.cjs +39 -0
- package/dist/react.cjs.map +1 -0
- package/dist/react.d.ts +13 -0
- package/dist/react.js +37 -0
- package/dist/react.js.map +1 -0
- package/dist/worker.cjs +771 -1104
- package/dist/worker.cjs.map +1 -1
- package/dist/worker.d.ts +32 -6
- package/dist/worker.js +786 -11
- package/dist/worker.js.map +1 -1
- package/package.json +42 -8
- package/dist/chunk-FXQUMVH5.js +0 -4599
- package/dist/chunk-FXQUMVH5.js.map +0 -1
- package/dist/chunk-YZLT3A2D.js +0 -1101
- package/dist/chunk-YZLT3A2D.js.map +0 -1
- package/dist/converters.d.cts +0 -69
- package/dist/index.d.cts +0 -32
- package/dist/runner-BvRtPCKL.d.cts +0 -131
- package/dist/runner-BvRtPCKL.d.ts +0 -131
package/dist/worker.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/webworker-engine.ts","../src/webworker/engine.ts","../src/webworker/runner.ts"],"sourcesContent":["export * from './webworker';\n","import {\n FormFieldValue,\n PdfAnnotationTransformation,\n PdfAttachmentObject,\n PdfEngineError,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n SearchResult,\n SearchTarget,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n Rotation,\n PdfRenderOptions,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenFlag,\n PdfPageFlattenResult,\n PdfFileLoader,\n SearchAllPagesResult,\n MatchFlag,\n PdfUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n} from '@embedpdf/models';\nimport { ExecuteRequest, Response } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Task that executed by webworker\n */\nexport class WorkerTask<R> extends Task<R, PdfErrorReason> {\n /**\n * Create a task that bind to web worker with specified message id\n * @param worker - web worker instance\n * @param messageId - id of message\n *\n * @public\n */\n constructor(\n public worker: Worker,\n private messageId: string,\n ) {\n super();\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.abort}\n *\n * @override\n */\n abort(e: PdfErrorReason) {\n super.abort(e);\n\n this.worker.postMessage({\n type: 'AbortRequest',\n data: {\n messageId: this.messageId,\n },\n });\n }\n}\n\n/**\n * PDF engine that runs within webworker\n */\nexport class WebWorkerEngine implements PdfEngine {\n static readyTaskId = '0';\n /**\n * Task that represent the state of preparation\n */\n readyTask: WorkerTask<boolean>;\n /**\n * All the tasks that is executing\n */\n tasks: Map<string, WorkerTask<any>> = new Map();\n\n /**\n * Create an instance of WebWorkerEngine, it will create a worker with\n * specified url.\n * @param worker - webworker instance, this worker needs to contains the running instance of {@link EngineRunner}\n * @param logger - logger instance\n *\n * @public\n */\n constructor(\n private worker: Worker,\n private logger: Logger = new NoopLogger(),\n ) {\n this.worker.addEventListener('message', this.handle);\n\n this.readyTask = new WorkerTask<boolean>(this.worker, WebWorkerEngine.readyTaskId);\n this.tasks.set(WebWorkerEngine.readyTaskId, this.readyTask);\n }\n\n /**\n * Handle event from web worker. There are 2 kinds of event\n * 1. ReadyResponse: web worker is ready\n * 2. ExecuteResponse: result of execution\n * @param evt - message event from web worker\n * @returns\n *\n * @private\n */\n handle = (evt: MessageEvent<any>) => {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker engine start handling message: ',\n evt.data,\n );\n try {\n const response = evt.data as Response;\n const task = this.tasks.get(response.id);\n if (!task) {\n return;\n }\n\n switch (response.type) {\n case 'ReadyResponse':\n this.readyTask.resolve(true);\n break;\n case 'ExecuteResponse':\n {\n switch (response.data.type) {\n case 'result':\n task.resolve(response.data.value);\n break;\n case 'error':\n task.reject(response.data.value.reason);\n break;\n }\n this.tasks.delete(response.id);\n }\n break;\n }\n } catch (e) {\n this.logger.error(LOG_SOURCE, LOG_CATEGORY, 'webworker met error when handling message: ', e);\n }\n };\n\n /**\n * Generate a unique message id\n * @returns message id\n *\n * @private\n */\n generateRequestId(id: string) {\n return `${id}.${Date.now()}.${Math.random()}`;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.initialize}\n *\n * @public\n */\n initialize() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'initialize');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'initialize',\n args: [],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.destroy}\n *\n * @public\n */\n destroy() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'destroy');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n task.wait(\n () => {\n this.worker.removeEventListener('message', this.handle);\n },\n () => {\n this.worker.removeEventListener('message', this.handle);\n },\n );\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'destroy',\n args: [],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}\n *\n * @public\n */\n openDocumentUrl(file: PdfFileUrl, options?: PdfUrlOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentUrl', file.url, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'openDocumentUrl',\n args: [file, options],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}\n *\n * @public\n */\n openDocumentFromBuffer(file: PdfFile, password: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentFromBuffer', file, password);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'openDocumentFromBuffer',\n args: [file, password],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentFromLoader}\n *\n * @public\n */\n openDocumentFromLoader(file: PdfFileLoader, password: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentFromLoader', file, password);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'openDocumentFromLoader',\n args: [file, password],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}\n *\n * @public\n */\n getMetadata(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getMetadata', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfMetadataObject>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getMetadata',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocPermissions}\n *\n * @public\n */\n getDocPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getDocPermissions',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocUserPermissions}\n *\n * @public\n */\n getDocUserPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocUserPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getDocUserPermissions',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getBookmarks}\n *\n * @public\n */\n getBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfBookmarksObject>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getBookmarks',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getSignatures}\n *\n * @public\n */\n getSignatures(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getSignatures', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfSignatureObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getSignatures',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPage}\n *\n * @public\n */\n renderPage(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n options: PdfRenderOptions,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderPage',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n options,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'renderPage',\n args: [doc, page, scaleFactor, rotation, dpr, options],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}\n *\n * @public\n */\n renderPageRect(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n rect: Rect,\n options: PdfRenderOptions,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderPageRect',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n rect,\n options,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'renderPageRect',\n args: [doc, page, scaleFactor, rotation, dpr, rect, options],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}\n *\n * @public\n */\n getAllAnnotations(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAllAnnotations', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Record<number, PdfAnnotationObject[]>>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getAllAnnotations',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}\n *\n * @public\n */\n getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnotations', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAnnotationObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageAnnotations',\n args: [doc, page],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}\n *\n * @public\n */\n createPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'createPageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'createPageAnnotation',\n args: [doc, page, annotation],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.transformPageAnnotation}\n *\n * @public\n */\n transformPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n transformation: PdfAnnotationTransformation,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'transformPageAnnotation',\n doc,\n page,\n annotation,\n transformation,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'transformPageAnnotation',\n args: [doc, page, annotation, transformation],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}\n *\n * @public\n */\n removePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removePageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'removePageAnnotation',\n args: [doc, page, annotation],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}\n *\n * @public\n */\n getPageTextRects(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'getPageTextRects',\n doc,\n page,\n scaleFactor,\n rotation,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageTextRects',\n args: [doc, page, scaleFactor, rotation],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}\n *\n * @public\n */\n renderThumbnail(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderThumbnail',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'renderThumbnail',\n args: [doc, page, scaleFactor, rotation, dpr],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}\n *\n * @public\n */\n searchAllPages(doc: PdfDocumentObject, keyword: string, flags: MatchFlag[] = []) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages 123', doc, keyword, flags);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<SearchAllPagesResult>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'searchAllPages',\n args: [doc, keyword, flags],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}\n *\n * @public\n */\n saveAsCopy(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'saveAsCopy', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'saveAsCopy',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}\n *\n * @public\n */\n getAttachments(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAttachments', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAttachmentObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getAttachments',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.readAttachmentContent}\n *\n * @public\n */\n readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'readAttachmentContent', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'readAttachmentContent',\n args: [doc, attachment],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldValue}\n *\n * @public\n */\n setFormFieldValue(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n value: FormFieldValue,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldValue', doc, annotation, value);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'setFormFieldValue',\n args: [doc, page, annotation, value],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}\n *\n * @public\n */\n flattenPage(doc: PdfDocumentObject, page: PdfPageObject, flag: PdfPageFlattenFlag) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, flag);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageFlattenResult>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'flattenPage',\n args: [doc, page, flag],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}\n *\n * @public\n */\n extractPages(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractPages', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'extractPages',\n args: [doc, pageIndexes],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractText}\n *\n * @public\n */\n extractText(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractText', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'extractText',\n args: [doc, pageIndexes],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGlyphs}\n *\n * @public\n */\n getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGlyphs', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfGlyphObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageGlyphs',\n args: [doc, page],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGeometry}\n *\n * @public\n */\n getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGeometry', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageGeometry>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageGeometry',\n args: [doc, page],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.merge}\n *\n * @public\n */\n merge(files: PdfFile[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'merge', files);\n const fileIds = files.map((file) => file.id).join('.');\n const requestId = this.generateRequestId(fileIds);\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'merge',\n args: [files],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.mergePages}\n *\n * @public\n */\n mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'mergePages', mergeConfigs);\n const requestId = this.generateRequestId(mergeConfigs.map((config) => config.docId).join('.'));\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'mergePages',\n args: [mergeConfigs],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeDocument}\n *\n * @public\n */\n closeDocument(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeDocument', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'closeDocument',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * Send the request to webworker inside and register the task\n * @param task - task that waiting for the response\n * @param request - request that needs send to web worker\n * @param transferables - transferables that need to transfer to webworker\n * @returns\n *\n * @internal\n */\n proxy<R>(task: WorkerTask<R>, request: ExecuteRequest, transferables: any[] = []) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'send request to worker',\n task,\n request,\n transferables,\n );\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'Begin', request.id);\n this.readyTask.wait(\n () => {\n this.worker.postMessage(request, transferables);\n task.wait(\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n );\n this.tasks.set(request.id, task);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n task.reject({\n code: PdfErrorCode.Initialization,\n message: 'worker initialization failed',\n });\n },\n );\n }\n}\n","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 * 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 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;\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 = (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 has 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 = this.engine[name]!(...args);\n break;\n case 'initialize':\n task = this.engine[name]!(...args);\n break;\n case 'destroy':\n task = this.engine[name]!(...args);\n break;\n case 'openDocumentUrl':\n task = this.engine[name]!(...args);\n break;\n case 'openDocumentFromBuffer':\n task = this.engine[name]!(...args);\n break;\n case 'openDocumentFromLoader':\n task = this.engine[name]!(...args);\n break;\n case 'getDocPermissions':\n task = this.engine[name]!(...args);\n break;\n case 'getDocUserPermissions':\n task = this.engine[name]!(...args);\n break;\n case 'getMetadata':\n task = this.engine[name]!(...args);\n break;\n case 'getBookmarks':\n task = this.engine[name]!(...args);\n break;\n case 'getSignatures':\n task = this.engine[name]!(...args);\n break;\n case 'renderPage':\n task = this.engine[name]!(...args);\n break;\n case 'renderPageRect':\n task = this.engine[name]!(...args);\n break;\n case 'renderThumbnail':\n task = this.engine[name]!(...args);\n break;\n case 'getAllAnnotations':\n task = this.engine[name]!(...args);\n break;\n case 'getPageAnnotations':\n task = this.engine[name]!(...args);\n break;\n case 'createPageAnnotation':\n task = this.engine[name]!(...args);\n break;\n case 'transformPageAnnotation':\n task = this.engine[name]!(...args);\n break;\n case 'removePageAnnotation':\n task = this.engine[name]!(...args);\n break;\n case 'getPageTextRects':\n task = this.engine[name]!(...args);\n break;\n case 'searchAllPages':\n task = this.engine[name]!(...args);\n break;\n case 'closeDocument':\n task = this.engine[name]!(...args);\n break;\n case 'saveAsCopy':\n task = this.engine[name]!(...args);\n break;\n case 'getAttachments':\n task = this.engine[name]!(...args);\n break;\n case 'readAttachmentContent':\n task = this.engine[name]!(...args);\n break;\n case 'setFormFieldValue':\n task = this.engine[name]!(...args);\n break;\n case 'flattenPage':\n task = this.engine[name]!(...args);\n break;\n case 'extractPages':\n task = this.engine[name]!(...args);\n break;\n case 'extractText':\n task = this.engine[name]!(...args);\n break;\n case 'getPageGlyphs':\n task = this.engine[name]!(...args);\n break;\n case 'getPageGeometry':\n task = this.engine[name]!(...args);\n break;\n case 'merge':\n task = this.engine[name]!(...args);\n break;\n case 'mergePages':\n task = this.engine[name]!(...args);\n break;\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"],"mappings":"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","names":["import_models","LOG_SOURCE","LOG_CATEGORY"]}
|
|
1
|
+
{"version":3,"file":"worker.cjs","sources":["../src/lib/webworker/engine.ts"],"sourcesContent":["import {\n FormFieldValue,\n PdfAnnotationTransformation,\n PdfAttachmentObject,\n PdfEngineError,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n SearchResult,\n SearchTarget,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n Rotation,\n PdfRenderOptions,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenFlag,\n PdfPageFlattenResult,\n PdfFileLoader,\n SearchAllPagesResult,\n MatchFlag,\n PdfUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n ImageConversionTypes,\n} from '@embedpdf/models';\nimport { ExecuteRequest, Response } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Task that executed by webworker\n */\nexport class WorkerTask<R> extends Task<R, PdfErrorReason> {\n /**\n * Create a task that bind to web worker with specified message id\n * @param worker - web worker instance\n * @param messageId - id of message\n *\n * @public\n */\n constructor(\n public worker: Worker,\n private messageId: string,\n ) {\n super();\n }\n\n /**\n * {@inheritDoc @embedpdf/models!Task.abort}\n *\n * @override\n */\n abort(e: PdfErrorReason) {\n super.abort(e);\n\n this.worker.postMessage({\n type: 'AbortRequest',\n data: {\n messageId: this.messageId,\n },\n });\n }\n}\n\n/**\n * PDF engine that runs within webworker\n */\nexport class WebWorkerEngine implements PdfEngine {\n static readyTaskId = '0';\n /**\n * Task that represent the state of preparation\n */\n readyTask: WorkerTask<boolean>;\n /**\n * All the tasks that is executing\n */\n tasks: Map<string, WorkerTask<any>> = new Map();\n\n /**\n * Create an instance of WebWorkerEngine, it will create a worker with\n * specified url.\n * @param worker - webworker instance, this worker needs to contains the running instance of {@link EngineRunner}\n * @param logger - logger instance\n *\n * @public\n */\n constructor(\n private worker: Worker,\n private logger: Logger = new NoopLogger(),\n ) {\n this.worker.addEventListener('message', this.handle);\n\n this.readyTask = new WorkerTask<boolean>(this.worker, WebWorkerEngine.readyTaskId);\n this.tasks.set(WebWorkerEngine.readyTaskId, this.readyTask);\n }\n\n /**\n * Handle event from web worker. There are 2 kinds of event\n * 1. ReadyResponse: web worker is ready\n * 2. ExecuteResponse: result of execution\n * @param evt - message event from web worker\n * @returns\n *\n * @private\n */\n handle = (evt: MessageEvent<any>) => {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'webworker engine start handling message: ',\n evt.data,\n );\n try {\n const response = evt.data as Response;\n const task = this.tasks.get(response.id);\n if (!task) {\n return;\n }\n\n switch (response.type) {\n case 'ReadyResponse':\n this.readyTask.resolve(true);\n break;\n case 'ExecuteResponse':\n {\n switch (response.data.type) {\n case 'result':\n task.resolve(response.data.value);\n break;\n case 'error':\n task.reject(response.data.value.reason);\n break;\n }\n this.tasks.delete(response.id);\n }\n break;\n }\n } catch (e) {\n this.logger.error(LOG_SOURCE, LOG_CATEGORY, 'webworker met error when handling message: ', e);\n }\n };\n\n /**\n * Generate a unique message id\n * @returns message id\n *\n * @private\n */\n generateRequestId(id: string) {\n return `${id}.${Date.now()}.${Math.random()}`;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.initialize}\n *\n * @public\n */\n initialize() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'initialize');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'initialize',\n args: [],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.destroy}\n *\n * @public\n */\n destroy() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'destroy');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const finish = () => {\n this.worker.removeEventListener('message', this.handle);\n this.worker.terminate();\n };\n\n task.wait(finish, finish);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'destroy',\n args: [],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}\n *\n * @public\n */\n openDocumentUrl(file: PdfFileUrl, options?: PdfUrlOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentUrl', file.url, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'openDocumentUrl',\n args: [file, options],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}\n *\n * @public\n */\n openDocumentFromBuffer(file: PdfFile, password: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentFromBuffer', file, password);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'openDocumentFromBuffer',\n args: [file, password],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentFromLoader}\n *\n * @public\n */\n openDocumentFromLoader(file: PdfFileLoader, password: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentFromLoader', file, password);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'openDocumentFromLoader',\n args: [file, password],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}\n *\n * @public\n */\n getMetadata(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getMetadata', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfMetadataObject>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getMetadata',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocPermissions}\n *\n * @public\n */\n getDocPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getDocPermissions',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocUserPermissions}\n *\n * @public\n */\n getDocUserPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocUserPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getDocUserPermissions',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getBookmarks}\n *\n * @public\n */\n getBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfBookmarksObject>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getBookmarks',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getSignatures}\n *\n * @public\n */\n getSignatures(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getSignatures', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfSignatureObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getSignatures',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPage}\n *\n * @public\n */\n renderPage(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n options: PdfRenderOptions,\n imageType: ImageConversionTypes = 'image/webp',\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderPage',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n options,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'renderPage',\n args: [doc, page, scaleFactor, rotation, dpr, options, imageType],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}\n *\n * @public\n */\n renderPageRect(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n rect: Rect,\n options: PdfRenderOptions,\n imageType: ImageConversionTypes = 'image/webp',\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderPageRect',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n rect,\n options,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'renderPageRect',\n args: [doc, page, scaleFactor, rotation, dpr, rect, options, imageType],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}\n *\n * @public\n */\n getAllAnnotations(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAllAnnotations', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Record<number, PdfAnnotationObject[]>>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getAllAnnotations',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}\n *\n * @public\n */\n getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnotations', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAnnotationObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageAnnotations',\n args: [doc, page],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}\n *\n * @public\n */\n createPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'createPageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'createPageAnnotation',\n args: [doc, page, annotation],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.transformPageAnnotation}\n *\n * @public\n */\n transformPageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n transformation: PdfAnnotationTransformation,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'transformPageAnnotation',\n doc,\n page,\n annotation,\n transformation,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'transformPageAnnotation',\n args: [doc, page, annotation, transformation],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}\n *\n * @public\n */\n removePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removePageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'removePageAnnotation',\n args: [doc, page, annotation],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}\n *\n * @public\n */\n getPageTextRects(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'getPageTextRects',\n doc,\n page,\n scaleFactor,\n rotation,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageTextRects',\n args: [doc, page, scaleFactor, rotation],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}\n *\n * @public\n */\n renderThumbnail(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderThumbnail',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'renderThumbnail',\n args: [doc, page, scaleFactor, rotation, dpr],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}\n *\n * @public\n */\n searchAllPages(doc: PdfDocumentObject, keyword: string, flags: MatchFlag[] = []) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages 123', doc, keyword, flags);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<SearchAllPagesResult>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'searchAllPages',\n args: [doc, keyword, flags],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.saveAsCopy}\n *\n * @public\n */\n saveAsCopy(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'saveAsCopy', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'saveAsCopy',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}\n *\n * @public\n */\n getAttachments(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAttachments', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAttachmentObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getAttachments',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.readAttachmentContent}\n *\n * @public\n */\n readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'readAttachmentContent', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'readAttachmentContent',\n args: [doc, attachment],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldValue}\n *\n * @public\n */\n setFormFieldValue(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n value: FormFieldValue,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldValue', doc, annotation, value);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'setFormFieldValue',\n args: [doc, page, annotation, value],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}\n *\n * @public\n */\n flattenPage(doc: PdfDocumentObject, page: PdfPageObject, flag: PdfPageFlattenFlag) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, flag);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageFlattenResult>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'flattenPage',\n args: [doc, page, flag],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}\n *\n * @public\n */\n extractPages(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractPages', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'extractPages',\n args: [doc, pageIndexes],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractText}\n *\n * @public\n */\n extractText(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractText', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'extractText',\n args: [doc, pageIndexes],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGlyphs}\n *\n * @public\n */\n getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGlyphs', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfGlyphObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageGlyphs',\n args: [doc, page],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGeometry}\n *\n * @public\n */\n getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGeometry', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageGeometry>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getPageGeometry',\n args: [doc, page],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.merge}\n *\n * @public\n */\n merge(files: PdfFile[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'merge', files);\n const fileIds = files.map((file) => file.id).join('.');\n const requestId = this.generateRequestId(fileIds);\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'merge',\n args: [files],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.mergePages}\n *\n * @public\n */\n mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'mergePages', mergeConfigs);\n const requestId = this.generateRequestId(mergeConfigs.map((config) => config.docId).join('.'));\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'mergePages',\n args: [mergeConfigs],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeDocument}\n *\n * @public\n */\n closeDocument(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeDocument', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'closeDocument',\n args: [doc],\n },\n };\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * Send the request to webworker inside and register the task\n * @param task - task that waiting for the response\n * @param request - request that needs send to web worker\n * @param transferables - transferables that need to transfer to webworker\n * @returns\n *\n * @internal\n */\n proxy<R>(task: WorkerTask<R>, request: ExecuteRequest, transferables: any[] = []) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'send request to worker',\n task,\n request,\n transferables,\n );\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'Begin', request.id);\n this.readyTask.wait(\n () => {\n this.worker.postMessage(request, transferables);\n task.wait(\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n );\n this.tasks.set(request.id, task);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n task.reject({\n code: PdfErrorCode.Initialization,\n message: 'worker initialization failed',\n });\n },\n );\n }\n}\n"],"names":["Task","NoopLogger","PdfErrorCode"],"mappings":"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"}
|
package/dist/worker.d.ts
CHANGED
|
@@ -1,6 +1,32 @@
|
|
|
1
|
-
import { Task, PdfErrorReason, PdfEngine, Logger, PdfFileUrl, PdfUrlOptions, PdfDocumentObject, PdfFile, PdfFileLoader, PdfMetadataObject, PdfBookmarksObject, PdfSignatureObject, PdfPageObject, Rotation, PdfRenderOptions, Rect, PdfAnnotationObject, PdfAnnotationTransformation, PdfTextRectObject, MatchFlag, SearchAllPagesResult, PdfAttachmentObject, PdfWidgetAnnoObject, FormFieldValue, PdfPageFlattenFlag, PdfPageFlattenResult, PdfGlyphObject, PdfPageGeometry } from '@embedpdf/models';
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { PdfEngineMethodName, PdfEngineMethodArgs, Task, PdfErrorReason, PdfEngine, Logger, PdfFileUrl, PdfUrlOptions, PdfDocumentObject, PdfFile, PdfFileLoader, PdfMetadataObject, PdfBookmarksObject, PdfSignatureObject, PdfPageObject, Rotation, PdfRenderOptions, ImageConversionTypes, Rect, PdfAnnotationObject, PdfAnnotationTransformation, PdfTextRectObject, MatchFlag, SearchAllPagesResult, PdfAttachmentObject, PdfWidgetAnnoObject, FormFieldValue, PdfPageFlattenFlag, PdfPageFlattenResult, PdfGlyphObject, PdfPageGeometry } from '@embedpdf/models';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Request body that represent method calls of PdfEngine, it contains the
|
|
5
|
+
* method name and arguments
|
|
6
|
+
*/
|
|
7
|
+
type PdfEngineMethodRequestBody = {
|
|
8
|
+
[P in PdfEngineMethodName]: {
|
|
9
|
+
name: P;
|
|
10
|
+
args: PdfEngineMethodArgs<P>;
|
|
11
|
+
};
|
|
12
|
+
}[PdfEngineMethodName];
|
|
13
|
+
/**
|
|
14
|
+
* Request that execute pdf engine method
|
|
15
|
+
*/
|
|
16
|
+
interface ExecuteRequest {
|
|
17
|
+
/**
|
|
18
|
+
* message id
|
|
19
|
+
*/
|
|
20
|
+
id: string;
|
|
21
|
+
/**
|
|
22
|
+
* request type
|
|
23
|
+
*/
|
|
24
|
+
type: 'ExecuteRequest';
|
|
25
|
+
/**
|
|
26
|
+
* request body
|
|
27
|
+
*/
|
|
28
|
+
data: PdfEngineMethodRequestBody;
|
|
29
|
+
}
|
|
4
30
|
|
|
5
31
|
/**
|
|
6
32
|
* Task that executed by webworker
|
|
@@ -129,13 +155,13 @@ declare class WebWorkerEngine implements PdfEngine {
|
|
|
129
155
|
*
|
|
130
156
|
* @public
|
|
131
157
|
*/
|
|
132
|
-
renderPage(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, options: PdfRenderOptions): WorkerTask<Blob>;
|
|
158
|
+
renderPage(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, options: PdfRenderOptions, imageType?: ImageConversionTypes): WorkerTask<Blob>;
|
|
133
159
|
/**
|
|
134
160
|
* {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}
|
|
135
161
|
*
|
|
136
162
|
* @public
|
|
137
163
|
*/
|
|
138
|
-
renderPageRect(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, rect: Rect, options: PdfRenderOptions): WorkerTask<Blob>;
|
|
164
|
+
renderPageRect(doc: PdfDocumentObject, page: PdfPageObject, scaleFactor: number, rotation: Rotation, dpr: number, rect: Rect, options: PdfRenderOptions, imageType?: ImageConversionTypes): WorkerTask<Blob>;
|
|
139
165
|
/**
|
|
140
166
|
* {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}
|
|
141
167
|
*
|
|
@@ -271,4 +297,4 @@ declare class WebWorkerEngine implements PdfEngine {
|
|
|
271
297
|
proxy<R>(task: WorkerTask<R>, request: ExecuteRequest, transferables?: any[]): void;
|
|
272
298
|
}
|
|
273
299
|
|
|
274
|
-
export {
|
|
300
|
+
export { WebWorkerEngine, WorkerTask };
|