@embedpdf/engines 1.0.13 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/{engine-B0ZTENqz.js → engine-B11yoQGd.js} +378 -214
  2. package/dist/engine-B11yoQGd.js.map +1 -0
  3. package/dist/engine-v2kq6ghL.cjs +2 -0
  4. package/dist/engine-v2kq6ghL.cjs.map +1 -0
  5. package/dist/index.cjs +1 -1
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.js +2 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/pdfium/engine.d.ts +89 -31
  10. package/dist/lib/pdfium/index.cjs +1 -1
  11. package/dist/lib/pdfium/index.js +2 -2
  12. package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
  13. package/dist/lib/pdfium/web/direct-engine.js +1 -1
  14. package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
  15. package/dist/lib/pdfium/web/worker-engine.js +1 -1
  16. package/dist/lib/webworker/engine.cjs +1 -1
  17. package/dist/lib/webworker/engine.cjs.map +1 -1
  18. package/dist/lib/webworker/engine.d.ts +2 -3
  19. package/dist/lib/webworker/engine.js +122 -289
  20. package/dist/lib/webworker/engine.js.map +1 -1
  21. package/dist/lib/webworker/runner.d.ts +12 -0
  22. package/dist/preact/index.cjs +1 -1
  23. package/dist/preact/index.js +1 -1
  24. package/dist/react/index.cjs +1 -1
  25. package/dist/react/index.js +1 -1
  26. package/dist/{runner-B-s0R7NN.js → runner-D9_9TvyZ.js} +2 -5
  27. package/dist/runner-D9_9TvyZ.js.map +1 -0
  28. package/dist/runner-Dnb6tfxR.cjs +2 -0
  29. package/dist/runner-Dnb6tfxR.cjs.map +1 -0
  30. package/dist/vue/index.cjs +1 -1
  31. package/dist/vue/index.js +1 -1
  32. package/package.json +3 -3
  33. package/dist/engine-B0ZTENqz.js.map +0 -1
  34. package/dist/engine-BB5n-Wej.cjs +0 -2
  35. package/dist/engine-BB5n-Wej.cjs.map +0 -1
  36. package/dist/runner-B-s0R7NN.js.map +0 -1
  37. package/dist/runner-BBBtCHic.cjs +0 -2
  38. package/dist/runner-BBBtCHic.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sources":["../../../src/lib/webworker/engine.ts"],"sourcesContent":["import {\n FormFieldValue,\n PdfAnnotationTransformation,\n PdfAttachmentObject,\n PdfEngineError,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n SearchResult,\n SearchTarget,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n Rotation,\n PdfRenderOptions,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenFlag,\n PdfPageFlattenResult,\n PdfFileLoader,\n SearchAllPagesResult,\n MatchFlag,\n PdfUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n ImageConversionTypes,\n PdfAnnotationObjectBase,\n PdfAlphaColor,\n PageTextSlice,\n WebAlphaColor,\n AppearanceMode,\n} 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 updateAnnotationColor(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObjectBase,\n color: WebAlphaColor,\n which: number = 0,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setAnnotationColor', doc, page, annotation, color);\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: 'updateAnnotationColor',\n args: [doc, page, annotation, color, which],\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.renderAnnotation}\n *\n * @public\n */\n renderAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n mode: AppearanceMode,\n imageType: ImageConversionTypes,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderAnnotation',\n doc,\n page,\n annotation,\n scaleFactor,\n rotation,\n dpr,\n mode,\n imageType,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'renderAnnotation',\n args: [doc, page, annotation, scaleFactor, rotation, dpr, mode, 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<number>(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 updatePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'updatePageAnnotation', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'updatePageAnnotation',\n args: [doc, page, annotation],\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.getTextSlices}\n *\n * @public\n */\n getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getTextSlices', doc, slices);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string[]>(this.worker, requestId);\n\n const request: ExecuteRequest = {\n id: requestId,\n type: 'ExecuteRequest',\n data: {\n name: 'getTextSlices',\n args: [doc, slices],\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":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sources":["../../../src/lib/webworker/engine.ts"],"sourcesContent":["import {\n FormFieldValue,\n PdfAnnotationTransformation,\n PdfAttachmentObject,\n PdfEngineError,\n PdfFile,\n PdfMetadataObject,\n PdfSignatureObject,\n PdfTextRectObject,\n PdfWidgetAnnoObject,\n SearchResult,\n SearchTarget,\n Task,\n Logger,\n NoopLogger,\n PdfAnnotationObject,\n PdfBookmarksObject,\n PdfDocumentObject,\n PdfEngine,\n PdfPageObject,\n Rect,\n Rotation,\n PdfRenderOptions,\n PdfErrorCode,\n PdfErrorReason,\n PdfPageFlattenFlag,\n PdfPageFlattenResult,\n PdfFileLoader,\n SearchAllPagesResult,\n MatchFlag,\n PdfUrlOptions,\n PdfFileUrl,\n PdfGlyphObject,\n PdfPageGeometry,\n ImageConversionTypes,\n PdfAnnotationObjectBase,\n PdfAlphaColor,\n PageTextSlice,\n WebAlphaColor,\n AppearanceMode,\n AnnotationCreateContext,\n PdfEngineMethodArgs,\n PdfEngineMethodName,\n} from '@embedpdf/models';\nimport { ExecuteRequest, Response, SpecificExecuteRequest } from './runner';\n\nconst LOG_SOURCE = 'WebWorkerEngine';\nconst LOG_CATEGORY = 'Engine';\n\n/**\n * Create a request for the webworker\n * @param id - id of the request\n * @param name - name of the method\n * @param args - arguments of the method\n * @returns request\n */\nfunction createRequest<M extends PdfEngineMethodName>(\n id: string,\n name: M,\n args: PdfEngineMethodArgs<M>,\n): SpecificExecuteRequest<M> {\n return {\n id,\n type: 'ExecuteRequest',\n data: {\n name,\n args,\n },\n };\n}\n\n/**\n * Task that executed by webworker\n */\nexport class WorkerTask<R> 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 = createRequest(requestId, 'initialize', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.destroy}\n *\n * @public\n */\n destroy() {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'destroy');\n const requestId = this.generateRequestId('General');\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const finish = () => {\n this.worker.removeEventListener('message', this.handle);\n this.worker.terminate();\n };\n\n task.wait(finish, finish);\n\n const request: ExecuteRequest = createRequest(requestId, 'destroy', []);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}\n *\n * @public\n */\n openDocumentUrl(file: PdfFileUrl, options?: PdfUrlOptions) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentUrl', file.url, options);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentUrl', [file, options]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}\n *\n * @public\n */\n openDocumentFromBuffer(file: PdfFile, password: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentFromBuffer', file, password);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentFromBuffer', [\n file,\n password,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentFromLoader}\n *\n * @public\n */\n openDocumentFromLoader(file: PdfFileLoader, password: string) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'openDocumentFromLoader', file, password);\n const requestId = this.generateRequestId(file.id);\n const task = new WorkerTask<PdfDocumentObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'openDocumentFromLoader', [\n file,\n password,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}\n *\n * @public\n */\n getMetadata(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getMetadata', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfMetadataObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getMetadata', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocPermissions}\n *\n * @public\n */\n getDocPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getDocUserPermissions}\n *\n * @public\n */\n getDocUserPermissions(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getDocUserPermissions', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getDocUserPermissions', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getBookmarks}\n *\n * @public\n */\n getBookmarks(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getBookmarks', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfBookmarksObject>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getBookmarks', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getSignatures}\n *\n * @public\n */\n getSignatures(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getSignatures', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfSignatureObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getSignatures', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPage}\n *\n * @public\n */\n renderPage(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n options: PdfRenderOptions,\n imageType: ImageConversionTypes = 'image/webp',\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderPage',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n options,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPage', [\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n options,\n imageType,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}\n *\n * @public\n */\n renderPageRect(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n rect: Rect,\n options: PdfRenderOptions,\n imageType: ImageConversionTypes = 'image/webp',\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderPageRect',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n rect,\n options,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderPageRect', [\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n rect,\n options,\n imageType,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderAnnotation}\n *\n * @public\n */\n renderAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n mode: AppearanceMode,\n imageType: ImageConversionTypes,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderAnnotation',\n doc,\n page,\n annotation,\n scaleFactor,\n rotation,\n dpr,\n mode,\n imageType,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderAnnotation', [\n doc,\n page,\n annotation,\n scaleFactor,\n rotation,\n dpr,\n mode,\n imageType,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}\n *\n * @public\n */\n getAllAnnotations(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAllAnnotations', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Record<number, PdfAnnotationObject[]>>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getAllAnnotations', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}\n *\n * @public\n */\n getPageAnnotations(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageAnnotations', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAnnotationObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageAnnotations', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.createPageAnnotation}\n *\n * @public\n */\n createPageAnnotation<A extends PdfAnnotationObject>(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: A,\n context?: AnnotationCreateContext<A>,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'createPageAnnotations',\n doc,\n page,\n annotation,\n context,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<number>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'createPageAnnotation', [\n doc,\n page,\n annotation,\n context,\n ] as PdfEngineMethodArgs<'createPageAnnotation'>);\n this.proxy(task, request);\n\n return task;\n }\n\n updatePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'updatePageAnnotation', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'updatePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.removePageAnnotation}\n *\n * @public\n */\n removePageAnnotation(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfAnnotationObject,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'removePageAnnotations', doc, page, annotation);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'removePageAnnotation', [\n doc,\n page,\n annotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}\n *\n * @public\n */\n getPageTextRects(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'getPageTextRects',\n doc,\n page,\n scaleFactor,\n rotation,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfTextRectObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageTextRects', [\n doc,\n page,\n scaleFactor,\n rotation,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.renderThumbnail}\n *\n * @public\n */\n renderThumbnail(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n scaleFactor: number,\n rotation: Rotation,\n dpr: number,\n ) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'renderThumbnail',\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n );\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<Blob>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'renderThumbnail', [\n doc,\n page,\n scaleFactor,\n rotation,\n dpr,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.searchAllPages}\n *\n * @public\n */\n searchAllPages(doc: PdfDocumentObject, keyword: string, flags: MatchFlag[] = []) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'searchAllPages 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 = createRequest(requestId, 'searchAllPages', [\n doc,\n keyword,\n flags,\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 = createRequest(requestId, 'saveAsCopy', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}\n *\n * @public\n */\n getAttachments(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getAttachments', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfAttachmentObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getAttachments', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.readAttachmentContent}\n *\n * @public\n */\n readAttachmentContent(doc: PdfDocumentObject, attachment: PdfAttachmentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'readAttachmentContent', doc, attachment);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'readAttachmentContent', [\n doc,\n attachment,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.setFormFieldValue}\n *\n * @public\n */\n setFormFieldValue(\n doc: PdfDocumentObject,\n page: PdfPageObject,\n annotation: PdfWidgetAnnoObject,\n value: FormFieldValue,\n ) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'setFormFieldValue', doc, annotation, value);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'setFormFieldValue', [\n doc,\n page,\n annotation,\n value,\n ]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}\n *\n * @public\n */\n flattenPage(doc: PdfDocumentObject, page: PdfPageObject, flag: PdfPageFlattenFlag) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'flattenPage', doc, page, flag);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageFlattenResult>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'flattenPage', [doc, page, flag]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractPages}\n *\n * @public\n */\n extractPages(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractPages', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<ArrayBuffer>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractPages', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.extractText}\n *\n * @public\n */\n extractText(doc: PdfDocumentObject, pageIndexes: number[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'extractText', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'extractText', [doc, pageIndexes]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getTextSlices}\n *\n * @public\n */\n getTextSlices(doc: PdfDocumentObject, slices: PageTextSlice[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getTextSlices', doc, slices);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<string[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getTextSlices', [doc, slices]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGlyphs}\n *\n * @public\n */\n getPageGlyphs(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGlyphs', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfGlyphObject[]>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGlyphs', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.getPageGeometry}\n *\n * @public\n */\n getPageGeometry(doc: PdfDocumentObject, page: PdfPageObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'getPageGeometry', doc, page);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<PdfPageGeometry>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'getPageGeometry', [doc, page]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.merge}\n *\n * @public\n */\n merge(files: PdfFile[]) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'merge', files);\n const fileIds = files.map((file) => file.id).join('.');\n const requestId = this.generateRequestId(fileIds);\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'merge', [files]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.mergePages}\n *\n * @public\n */\n mergePages(mergeConfigs: Array<{ docId: string; pageIndices: number[] }>) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'mergePages', mergeConfigs);\n const requestId = this.generateRequestId(mergeConfigs.map((config) => config.docId).join('.'));\n const task = new WorkerTask<PdfFile>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'mergePages', [mergeConfigs]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * {@inheritDoc @embedpdf/models!PdfEngine.closeDocument}\n *\n * @public\n */\n closeDocument(doc: PdfDocumentObject) {\n this.logger.debug(LOG_SOURCE, LOG_CATEGORY, 'closeDocument', doc);\n const requestId = this.generateRequestId(doc.id);\n const task = new WorkerTask<boolean>(this.worker, requestId);\n\n const request: ExecuteRequest = createRequest(requestId, 'closeDocument', [doc]);\n this.proxy(task, request);\n\n return task;\n }\n\n /**\n * Send the request to webworker inside and register the task\n * @param task - task that waiting for the response\n * @param request - request that needs send to web worker\n * @param transferables - transferables that need to transfer to webworker\n * @returns\n *\n * @internal\n */\n proxy<R>(task: WorkerTask<R>, request: ExecuteRequest, transferables: any[] = []) {\n this.logger.debug(\n LOG_SOURCE,\n LOG_CATEGORY,\n 'send request to worker',\n task,\n request,\n transferables,\n );\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'Begin', request.id);\n this.readyTask.wait(\n () => {\n this.worker.postMessage(request, transferables);\n task.wait(\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n },\n );\n this.tasks.set(request.id, task);\n },\n () => {\n this.logger.perf(LOG_SOURCE, LOG_CATEGORY, `${request.data.name}`, 'End', request.id);\n task.reject({\n code: PdfErrorCode.Initialization,\n message: 'worker initialization failed',\n });\n },\n );\n }\n}\n"],"names":[],"mappings":"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"}
@@ -9,6 +9,18 @@ export type PdfEngineMethodRequestBody = {
9
9
  args: PdfEngineMethodArgs<P>;
10
10
  };
11
11
  }[PdfEngineMethodName];
12
+ /**
13
+ * Request body that represent method calls of PdfEngine, it contains the
14
+ * method name and arguments
15
+ */
16
+ export type SpecificExecuteRequest<M extends PdfEngineMethodName> = {
17
+ id: string;
18
+ type: 'ExecuteRequest';
19
+ data: {
20
+ name: M;
21
+ args: PdfEngineMethodArgs<M>;
22
+ };
23
+ };
12
24
  /**
13
25
  * Response body that represent return value of PdfEngine
14
26
  */
@@ -1,2 +1,2 @@
1
- "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("preact/hooks"),t="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.13/dist/pdfium.wasm";exports.usePdfiumEngine=function(r){const{wasmUrl:n=t,worker:i=!0,logger:o}=r??{},[s,u]=e.useState(null),[c,p]=e.useState(!0),[a,d]=e.useState(null),l=e.useRef(null);return e.useEffect((()=>{let e=!1;return(async()=>{try{const{createPdfiumEngine:e}=i?await import("@embedpdf/engines/pdfium-worker-engine"):await import("@embedpdf/engines/pdfium-direct-engine"),t=await e(n,o);l.current=t,u(t),p(!1)}catch(t){e||(d(t),p(!1))}})(),()=>{var t;e=!0,null==(t=l.current)||t.destroy(),l.current=null}}),[n,i,o]),{engine:s,isLoading:c,error:a}};
1
+ "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("preact/hooks"),t="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.15/dist/pdfium.wasm";exports.usePdfiumEngine=function(r){const{wasmUrl:n=t,worker:i=!0,logger:o}=r??{},[s,u]=e.useState(null),[c,p]=e.useState(!0),[a,d]=e.useState(null),l=e.useRef(null);return e.useEffect((()=>{let e=!1;return(async()=>{try{const{createPdfiumEngine:e}=i?await import("@embedpdf/engines/pdfium-worker-engine"):await import("@embedpdf/engines/pdfium-direct-engine"),t=await e(n,o);l.current=t,u(t),p(!1)}catch(t){e||(d(t),p(!1))}})(),()=>{var t;e=!0,null==(t=l.current)||t.destroy(),l.current=null}}),[n,i,o]),{engine:s,isLoading:c,error:a}};
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,5 +1,5 @@
1
1
  import { useState, useRef, useEffect } from "preact/hooks";
2
- const defaultWasmUrl = `https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.13/dist/pdfium.wasm`;
2
+ const defaultWasmUrl = `https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.15/dist/pdfium.wasm`;
3
3
  function usePdfiumEngine(config) {
4
4
  const { wasmUrl = defaultWasmUrl, worker = true, logger } = config ?? {};
5
5
  const [engine, setEngine] = useState(null);
@@ -1,2 +1,2 @@
1
- "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.13/dist/pdfium.wasm";exports.usePdfiumEngine=function(r){const{wasmUrl:n=t,worker:i=!0,logger:o}=r??{},[u,s]=e.useState(null),[c,a]=e.useState(!0),[p,d]=e.useState(null),l=e.useRef(null);return e.useEffect((()=>{let e=!1;return(async()=>{try{const{createPdfiumEngine:e}=i?await import("@embedpdf/engines/pdfium-worker-engine"):await import("@embedpdf/engines/pdfium-direct-engine"),t=await e(n,o);l.current=t,s(t),a(!1)}catch(t){e||(d(t),a(!1))}})(),()=>{var t;e=!0,null==(t=l.current)||t.destroy(),l.current=null}}),[n,i,o]),{engine:u,isLoading:c,error:p}};
1
+ "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.15/dist/pdfium.wasm";exports.usePdfiumEngine=function(r){const{wasmUrl:n=t,worker:i=!0,logger:o}=r??{},[u,s]=e.useState(null),[c,a]=e.useState(!0),[p,d]=e.useState(null),l=e.useRef(null);return e.useEffect((()=>{let e=!1;return(async()=>{try{const{createPdfiumEngine:e}=i?await import("@embedpdf/engines/pdfium-worker-engine"):await import("@embedpdf/engines/pdfium-direct-engine"),t=await e(n,o);l.current=t,s(t),a(!1)}catch(t){e||(d(t),a(!1))}})(),()=>{var t;e=!0,null==(t=l.current)||t.destroy(),l.current=null}}),[n,i,o]),{engine:u,isLoading:c,error:p}};
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1,5 +1,5 @@
1
1
  import { useState, useRef, useEffect } from "react";
2
- const defaultWasmUrl = `https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.13/dist/pdfium.wasm`;
2
+ const defaultWasmUrl = `https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.15/dist/pdfium.wasm`;
3
3
  function usePdfiumEngine(config) {
4
4
  const { wasmUrl = defaultWasmUrl, worker = true, logger } = config ?? {};
5
5
  const [engine, setEngine] = useState(null);
@@ -1,6 +1,6 @@
1
1
  import { init } from "@embedpdf/pdfium";
2
2
  import { NoopLogger, PdfErrorCode } from "@embedpdf/models";
3
- import { a as PdfiumEngine } from "./engine-B0ZTENqz.js";
3
+ import { a as PdfiumEngine } from "./engine-B11yoQGd.js";
4
4
  const LOG_SOURCE = "WebWorkerEngineRunner";
5
5
  const LOG_CATEGORY = "Engine";
6
6
  class EngineRunner {
@@ -114,9 +114,6 @@ class EngineRunner {
114
114
  case "removePageAnnotation":
115
115
  task = this.engine[name](...args);
116
116
  break;
117
- case "updateAnnotationColor":
118
- task = this.engine[name](...args);
119
- break;
120
117
  case "getPageTextRects":
121
118
  task = this.engine[name](...args);
122
119
  break;
@@ -266,4 +263,4 @@ export {
266
263
  EngineRunner as E,
267
264
  PdfiumEngineRunner as P
268
265
  };
269
- //# sourceMappingURL=runner-B-s0R7NN.js.map
266
+ //# sourceMappingURL=runner-D9_9TvyZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-D9_9TvyZ.js","sources":["../src/lib/webworker/runner.ts","../src/lib/pdfium/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 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 ${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 = 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 'renderAnnotation':\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 'updatePageAnnotation':\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 'getTextSlices':\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","import { init } from '@embedpdf/pdfium';\nimport { EngineRunner } from '../webworker/runner';\nimport { PdfiumEngine } from './engine';\n\n/**\n * EngineRunner for pdfium-based wasm engine\n */\nexport class PdfiumEngineRunner extends EngineRunner {\n /**\n * Create an instance of PdfiumEngineRunner\n * @param wasmBinary - wasm binary that contains the pdfium wasm file\n */\n constructor(private wasmBinary: ArrayBuffer) {\n super();\n }\n\n /**\n * Initialize runner\n */\n async prepare() {\n const wasmBinary = this.wasmBinary;\n const wasmModule = await init({ wasmBinary });\n this.engine = new PdfiumEngine(wasmModule);\n this.ready();\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("@embedpdf/pdfium"),s=require("@embedpdf/models"),t=require("./engine-v2kq6ghL.cjs"),a="WebWorkerEngineRunner",n="Engine";class r{constructor(e=new s.NoopLogger){this.logger=e,this.execute=e=>{if(this.logger.debug(a,n,"runner start exeucte request"),!this.engine){const t={type:"reject",reason:{code:s.PdfErrorCode.NotReady,message:"engine has not started yet"}},a={id:e.id,type:"ExecuteResponse",data:{type:"error",value:t}};return void this.respond(a)}const t=this.engine,{name:r,args:o}=e.data;if(!t[r]){const t={type:"reject",reason:{code:s.PdfErrorCode.NotSupport,message:`engine method ${r} is not supported yet`}},a={id:e.id,type:"ExecuteResponse",data:{type:"error",value:t}};return void this.respond(a)}let i;switch(r){case"isSupport":case"initialize":case"destroy":case"openDocumentUrl":case"openDocumentFromBuffer":case"openDocumentFromLoader":case"getDocPermissions":case"getDocUserPermissions":case"getMetadata":case"getBookmarks":case"getSignatures":case"renderPage":case"renderPageRect":case"renderAnnotation":case"renderThumbnail":case"getAllAnnotations":case"getPageAnnotations":case"createPageAnnotation":case"updatePageAnnotation":case"removePageAnnotation":case"getPageTextRects":case"searchAllPages":case"closeDocument":case"saveAsCopy":case"getAttachments":case"readAttachmentContent":case"setFormFieldValue":case"flattenPage":case"extractPages":case"extractText":case"getTextSlices":case"getPageGlyphs":case"getPageGeometry":case"merge":case"mergePages":i=this.engine[r](...o)}i.wait((s=>{const t={id:e.id,type:"ExecuteResponse",data:{type:"result",value:s}};this.respond(t)}),(s=>{const t={id:e.id,type:"ExecuteResponse",data:{type:"error",value:s}};this.respond(t)}))}}listen(){self.onmessage=e=>this.handle(e)}handle(e){this.logger.debug(a,n,"webworker receive message event: ",e.data);try{const s=e.data;if("ExecuteRequest"===s.type)this.execute(s)}catch(s){this.logger.info(a,n,"webworker met error when processing message event:",s)}}ready(){this.listen(),this.respond({id:"0",type:"ReadyResponse"}),this.logger.debug(a,n,"runner is ready")}respond(e){this.logger.debug(a,n,"runner respond: ",e),self.postMessage(e)}}exports.EngineRunner=r,exports.PdfiumEngineRunner=class extends r{constructor(e){super(),this.wasmBinary=e}async prepare(){const s=this.wasmBinary,a=await e.init({wasmBinary:s});this.engine=new t.PdfiumEngine(a),this.ready()}};
2
+ //# sourceMappingURL=runner-Dnb6tfxR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner-Dnb6tfxR.cjs","sources":["../src/lib/webworker/runner.ts","../src/lib/pdfium/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 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 ${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 = 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 'renderAnnotation':\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 'updatePageAnnotation':\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 'getTextSlices':\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","import { init } from '@embedpdf/pdfium';\nimport { EngineRunner } from '../webworker/runner';\nimport { PdfiumEngine } from './engine';\n\n/**\n * EngineRunner for pdfium-based wasm engine\n */\nexport class PdfiumEngineRunner extends EngineRunner {\n /**\n * Create an instance of PdfiumEngineRunner\n * @param wasmBinary - wasm binary that contains the pdfium wasm file\n */\n constructor(private wasmBinary: ArrayBuffer) {\n super();\n }\n\n /**\n * Initialize runner\n */\n async prepare() {\n const wasmBinary = this.wasmBinary;\n const wasmModule = await init({ wasmBinary });\n this.engine = new PdfiumEngine(wasmModule);\n this.ready();\n }\n}\n"],"names":["LOG_SOURCE","LOG_CATEGORY","EngineRunner","constructor","logger","NoopLogger","this","execute","request","debug","engine","error","type","reason","code","PdfErrorCode","NotReady","message","response","id","data","value","respond","name","args","NotSupport","task","wait","result","listen","self","onmessage","evt","handle","e","info","ready","postMessage","wasmBinary","super","prepare","wasmModule","init","PdfiumEngine"],"mappings":"kHAkHMA,EAAa,wBACbC,EAAe,SAMd,MAAMC,EAOX,WAAAC,CAAmBC,EAAiB,IAAIC,EAAAA,YAArBC,KAAAF,OAAAA,EAwDnBE,KAAAC,QAAWC,IAEL,GADJF,KAAKF,OAAOK,MAAMT,EAAYC,EAAc,iCACvCK,KAAKI,OAAQ,CAChB,MAAMC,EAAwB,CAC5BC,KAAM,SACNC,OAAQ,CACNC,KAAMC,EAAaA,aAAAC,SACnBC,QAAS,+BAGPC,EAA4B,CAChCC,GAAIX,EAAQW,GACZP,KAAM,kBACNQ,KAAM,CACJR,KAAM,QACNS,MAAOV,IAIX,YADAL,KAAKgB,QAAQJ,EACb,CAGF,MAAMR,EAASJ,KAAKI,QACda,KAAEA,EAAAC,KAAMA,GAAShB,EAAQY,KAC3B,IAACV,EAAOa,GAAO,CACjB,MAAMZ,EAAwB,CAC5BC,KAAM,SACNC,OAAQ,CACNC,KAAMC,EAAaA,aAAAU,WACnBR,QAAS,iBAAiBM,2BAGxBL,EAA4B,CAChCC,GAAIX,EAAQW,GACZP,KAAM,kBACNQ,KAAM,CACJR,KAAM,QACNS,MAAOV,IAIX,YADAL,KAAKgB,QAAQJ,EACb,CAGE,IAAAQ,EACJ,OAAQH,GACN,IAAK,YAGL,IAAK,aAGL,IAAK,UAGL,IAAK,kBAGL,IAAK,yBAGL,IAAK,yBAGL,IAAK,oBAGL,IAAK,wBAGL,IAAK,cAGL,IAAK,eAGL,IAAK,gBAGL,IAAK,aAGL,IAAK,iBAGL,IAAK,mBAGL,IAAK,kBAGL,IAAK,oBAGL,IAAK,qBAGL,IAAK,uBAGL,IAAK,uBAGL,IAAK,uBAGL,IAAK,mBAGL,IAAK,iBAGL,IAAK,gBAGL,IAAK,aAGL,IAAK,iBAGL,IAAK,wBAGL,IAAK,oBAGL,IAAK,cAGL,IAAK,eAGL,IAAK,cAGL,IAAK,gBAGL,IAAK,gBAGL,IAAK,kBAGL,IAAK,QAGL,IAAK,aACHG,EAAOpB,KAAKI,OAAOa,MAAUC,GAI5BE,EAAAC,MACFC,IACC,MAAMV,EAA4B,CAChCC,GAAIX,EAAQW,GACZP,KAAM,kBACNQ,KAAM,CACJR,KAAM,SACNS,MAAOO,IAGXtB,KAAKgB,QAAQJ,EAAQ,IAEtBP,IACC,MAAMO,EAA4B,CAChCC,GAAIX,EAAQW,GACZP,KAAM,kBACNQ,KAAM,CACJR,KAAM,QACNS,MAAOV,IAGXL,KAAKgB,QAAQJ,EAAQ,GAEzB,CACF,CApOA,MAAAW,GACOC,KAAAC,UAAaC,GACT1B,KAAK2B,OAAOD,EACrB,CAMF,MAAAC,CAAOD,GACL1B,KAAKF,OAAOK,MAAMT,EAAYC,EAAc,oCAAqC+B,EAAIZ,MACjF,IACF,MAAMZ,EAAUwB,EAAIZ,KACpB,GACO,mBADCZ,EAAQI,KAEZN,KAAKC,QAAQC,SAGV0B,GACP5B,KAAKF,OAAO+B,KACVnC,EACAC,EACA,qDACAiC,EACF,CACF,CASF,KAAAE,GACE9B,KAAKuB,SAELvB,KAAKgB,QAAQ,CACXH,GAAI,IACJP,KAAM,kBAERN,KAAKF,OAAOK,MAAMT,EAAYC,EAAc,kBAAiB,CAmM/D,OAAAqB,CAAQJ,GACNZ,KAAKF,OAAOK,MAAMT,EAAYC,EAAc,mBAAoBiB,GAChEY,KAAKO,YAAYnB,EAAQ,oDC5WtB,cAAiChB,EAKtC,WAAAC,CAAoBmC,GACZC,QADYjC,KAAAgC,WAAAA,CAAA,CAOpB,aAAME,GACJ,MAAMF,EAAahC,KAAKgC,WAClBG,QAAmBC,OAAK,CAAEJ,eAC3BhC,KAAAI,OAAS,IAAIiC,EAAAA,aAAaF,GAC/BnC,KAAK8B,OAAM"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),t="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.13/dist/pdfium.wasm";exports.usePdfiumEngine=function(n={}){const{wasmUrl:r=t,worker:o=!0,logger:i}=n,u=e.ref(null),a=e.ref(!0),l=e.ref(null);async function c(){try{const{createPdfiumEngine:e}=o?await import("@embedpdf/engines/pdfium-worker-engine"):await import("@embedpdf/engines/pdfium-direct-engine");u.value=await e(r,i),a.value=!1}catch(e){l.value=e,a.value=!1}}function d(){var e,t;null==(t=null==(e=u.value)?void 0:e.destroy)||t.call(e),u.value=null,a.value=!0,l.value=null}return e.onMounted(c),e.onBeforeUnmount(d),e.watch((()=>[r,o,i]),(()=>{d(),c()})),{engine:u,isLoading:a,error:l}};
1
+ "use strict";Object.create,Object.defineProperty,Object.getOwnPropertyDescriptor,Object.getOwnPropertyNames,Object.getPrototypeOf,Object.prototype.hasOwnProperty;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),t="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.15/dist/pdfium.wasm";exports.usePdfiumEngine=function(n={}){const{wasmUrl:r=t,worker:o=!0,logger:i}=n,u=e.ref(null),a=e.ref(!0),l=e.ref(null);async function c(){try{const{createPdfiumEngine:e}=o?await import("@embedpdf/engines/pdfium-worker-engine"):await import("@embedpdf/engines/pdfium-direct-engine");u.value=await e(r,i),a.value=!1}catch(e){l.value=e,a.value=!1}}function d(){var e,t;null==(t=null==(e=u.value)?void 0:e.destroy)||t.call(e),u.value=null,a.value=!0,l.value=null}return e.onMounted(c),e.onBeforeUnmount(d),e.watch((()=>[r,o,i]),(()=>{d(),c()})),{engine:u,isLoading:a,error:l}};
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/vue/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ref, onMounted, onBeforeUnmount, watch } from "vue";
2
- const defaultWasmUrl = "https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.13/dist/pdfium.wasm";
2
+ const defaultWasmUrl = "https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@1.0.15/dist/pdfium.wasm";
3
3
  function usePdfiumEngine(props = {}) {
4
4
  const { wasmUrl = defaultWasmUrl, worker = true, logger } = props;
5
5
  const engine = ref(null);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embedpdf/engines",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "description": "Pluggable runtime layer that abstracts over multiple PDF engines (PDF-ium, Web Workers, mocks, etc.) to provide a unified API for rendering, search, annotation, and other document-level operations in EmbedPDF.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -82,8 +82,8 @@
82
82
  "@embedpdf/build": "1.0.0"
83
83
  },
84
84
  "dependencies": {
85
- "@embedpdf/models": "1.0.13",
86
- "@embedpdf/pdfium": "1.0.13"
85
+ "@embedpdf/models": "1.0.15",
86
+ "@embedpdf/pdfium": "1.0.15"
87
87
  },
88
88
  "peerDependencies": {
89
89
  "react": ">=16.8.0",