@embedpdf/engines 2.0.0-next.1 → 2.0.0-next.3

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 (76) hide show
  1. package/dist/browser-B5Y-F6il.cjs +2 -0
  2. package/dist/browser-B5Y-F6il.cjs.map +1 -0
  3. package/dist/browser-Cm3DA8l_.js +70 -0
  4. package/dist/browser-Cm3DA8l_.js.map +1 -0
  5. package/dist/{engine-B-RaFU77.js → direct-engine-BZRK27cv.js} +197 -508
  6. package/dist/direct-engine-BZRK27cv.js.map +1 -0
  7. package/dist/direct-engine-CZAhOupl.cjs +2 -0
  8. package/dist/direct-engine-CZAhOupl.cjs.map +1 -0
  9. package/dist/index.cjs +1 -1
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.js +283 -9
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/converters/browser.d.ts +32 -0
  14. package/dist/lib/converters/index.cjs +1 -1
  15. package/dist/lib/converters/index.cjs.map +1 -1
  16. package/dist/lib/converters/index.d.ts +3 -51
  17. package/dist/lib/converters/index.js +6 -1
  18. package/dist/lib/converters/index.js.map +1 -1
  19. package/dist/lib/converters/node.d.ts +51 -0
  20. package/dist/lib/converters/types.d.ts +6 -3
  21. package/dist/lib/image-encoder/image-encoder-worker.d.ts +24 -0
  22. package/dist/lib/image-encoder/index.d.ts +2 -0
  23. package/dist/lib/image-encoder/worker-pool.d.ts +61 -0
  24. package/dist/lib/orchestrator/index.d.ts +16 -0
  25. package/dist/lib/orchestrator/pdf-engine.d.ts +100 -0
  26. package/dist/lib/orchestrator/pdfium-native-runner.d.ts +65 -0
  27. package/dist/lib/orchestrator/remote-executor.d.ts +94 -0
  28. package/dist/lib/orchestrator/task-queue.d.ts +87 -0
  29. package/dist/lib/pdfium/engine.d.ts +50 -84
  30. package/dist/lib/pdfium/index.cjs +1 -1
  31. package/dist/lib/pdfium/index.cjs.map +1 -1
  32. package/dist/lib/pdfium/index.d.ts +5 -1
  33. package/dist/lib/pdfium/index.js +12 -7
  34. package/dist/lib/pdfium/index.js.map +1 -1
  35. package/dist/lib/pdfium/runner.d.ts +2 -2
  36. package/dist/lib/pdfium/web/direct-engine.cjs +1 -1
  37. package/dist/lib/pdfium/web/direct-engine.cjs.map +1 -1
  38. package/dist/lib/pdfium/web/direct-engine.d.ts +33 -2
  39. package/dist/lib/pdfium/web/direct-engine.js +5 -9
  40. package/dist/lib/pdfium/web/direct-engine.js.map +1 -1
  41. package/dist/lib/pdfium/web/worker-engine.cjs +1 -1
  42. package/dist/lib/pdfium/web/worker-engine.cjs.map +1 -1
  43. package/dist/lib/pdfium/web/worker-engine.d.ts +40 -4
  44. package/dist/lib/pdfium/web/worker-engine.js +415 -9
  45. package/dist/lib/pdfium/web/worker-engine.js.map +1 -1
  46. package/dist/lib/webworker/runner.d.ts +0 -12
  47. package/dist/pdf-engine-CrarIjJ6.cjs +2 -0
  48. package/dist/pdf-engine-CrarIjJ6.cjs.map +1 -0
  49. package/dist/pdf-engine-yZzBqL_l.js +798 -0
  50. package/dist/pdf-engine-yZzBqL_l.js.map +1 -0
  51. package/dist/preact/index.cjs +1 -1
  52. package/dist/preact/index.cjs.map +1 -1
  53. package/dist/preact/index.js +3 -3
  54. package/dist/preact/index.js.map +1 -1
  55. package/dist/react/index.cjs +1 -1
  56. package/dist/react/index.cjs.map +1 -1
  57. package/dist/react/index.js +3 -3
  58. package/dist/react/index.js.map +1 -1
  59. package/dist/shared-preact/hooks/use-pdfium-engine.d.ts +1 -0
  60. package/dist/shared-react/hooks/use-pdfium-engine.d.ts +1 -0
  61. package/dist/svelte/index.cjs +1 -1
  62. package/dist/svelte/index.cjs.map +1 -1
  63. package/dist/svelte/index.js +1 -1
  64. package/dist/svelte/index.js.map +1 -1
  65. package/dist/vue/index.cjs +1 -1
  66. package/dist/vue/index.cjs.map +1 -1
  67. package/dist/vue/index.js +2 -2
  68. package/dist/vue/index.js.map +1 -1
  69. package/package.json +3 -3
  70. package/dist/engine-B-RaFU77.js.map +0 -1
  71. package/dist/engine-CXnLqg_9.cjs +0 -2
  72. package/dist/engine-CXnLqg_9.cjs.map +0 -1
  73. package/dist/index-C3mv9vLs.js +0 -342
  74. package/dist/index-C3mv9vLs.js.map +0 -1
  75. package/dist/index-C4OBhnbs.cjs +0 -2
  76. package/dist/index-C4OBhnbs.cjs.map +0 -1
@@ -1,6 +1,5 @@
1
- import { PdfAnnotationObject, PdfTextRectObject, PdfWidgetAnnoObject, Logger, SearchTarget, PdfBookmarkObject, PdfDocumentObject, PdfEngine, PdfPageObject, Rect, PdfAttachmentObject, PdfSignatureObject, PdfStampAnnoObject, PdfCircleAnnoObject, PdfSquareAnnoObject, PdfSquigglyAnnoObject, PdfStrikeOutAnnoObject, PdfUnderlineAnnoObject, PdfFile, PdfHighlightAnnoObject, FormFieldValue, PdfPageFlattenResult, PdfTask, PdfFileLoader, SearchAllPagesResult, PdfOpenDocumentUrlOptions, PdfOpenDocumentBufferOptions, PdfFileUrl, Task, PdfErrorReason, PdfGlyphObject, PdfPageGeometry, PageTextSlice, AnnotationCreateContext, PdfPageSearchProgress, PdfSearchAllPagesOptions, PdfRenderPageAnnotationOptions, PdfRedactTextOptions, PdfFlattenPageOptions, PdfRenderThumbnailOptions, PdfRenderPageOptions, PdfAnnotationsProgress, PdfMetadataObject, PdfPrintOptions, PdfAddAttachmentParams } from '@embedpdf/models';
1
+ import { BatchProgress, ImageDataLike, IPdfiumExecutor, PdfAnnotationObject, PdfTextRectObject, PdfWidgetAnnoObject, Logger, SearchResult, PdfBookmarkObject, PdfDocumentObject, PdfPageObject, Rect, PdfAttachmentObject, PdfSignatureObject, PdfStampAnnoObject, PdfCircleAnnoObject, PdfSquareAnnoObject, PdfSquigglyAnnoObject, PdfStrikeOutAnnoObject, PdfUnderlineAnnoObject, PdfFile, PdfHighlightAnnoObject, FormFieldValue, PdfPageFlattenResult, PdfTask, PdfOpenDocumentBufferOptions, Task, PdfErrorReason, PdfGlyphObject, PdfPageGeometry, PageTextSlice, AnnotationCreateContext, PdfRenderPageAnnotationOptions, PdfRedactTextOptions, PdfFlattenPageOptions, PdfRenderThumbnailOptions, PdfRenderPageOptions, PdfMetadataObject, PdfPrintOptions, PdfAddAttachmentParams } from '@embedpdf/models';
2
2
  import { WrappedPdfiumModule } from '@embedpdf/pdfium';
3
- import { ImageDataConverter } from '../converters/types';
4
3
  /**
5
4
  * Format of bitmap
6
5
  */
@@ -25,23 +24,6 @@ export declare enum RenderFlag {
25
24
  PRINTING = 2048,// Render for printing.
26
25
  REVERSE_BYTE_ORDER = 16
27
26
  }
28
- /**
29
- * Context used for searching
30
- */
31
- export interface SearchContext {
32
- /**
33
- * search target
34
- */
35
- target: SearchTarget;
36
- /**
37
- * current page index
38
- */
39
- currPageIndex: number;
40
- /**
41
- * index of text in the current pdf page, -1 means reach the end
42
- */
43
- startIndex: number;
44
- }
45
27
  /**
46
28
  * Error code of pdfium library
47
29
  */
@@ -56,18 +38,13 @@ export declare enum PdfiumErrorCode {
56
38
  XFALoad = 7,
57
39
  XFALayout = 8
58
40
  }
59
- interface PdfiumEngineOptions<T> {
41
+ interface PdfiumEngineOptions {
60
42
  logger?: Logger;
61
- imageDataConverter?: ImageDataConverter<T>;
62
43
  }
63
- export declare class OffscreenCanvasError extends Error {
64
- constructor(message: string);
65
- }
66
- export declare const browserImageDataToBlobConverter: ImageDataConverter<Blob>;
67
44
  /**
68
45
  * Pdf engine that based on pdfium wasm
69
46
  */
70
- export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
47
+ export declare class PdfiumNative implements IPdfiumExecutor {
71
48
  private pdfiumModule;
72
49
  /**
73
50
  * pdf documents that opened
@@ -85,17 +62,13 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
85
62
  * logger instance
86
63
  */
87
64
  private logger;
88
- /**
89
- * function to convert ImageData to Blob
90
- */
91
- private readonly imageDataConverter;
92
65
  /**
93
66
  * Create an instance of PdfiumEngine
94
67
  * @param wasmModule - pdfium wasm module
95
68
  * @param logger - logger instance
96
69
  * @param imageDataToBlobConverter - function to convert ImageData to Blob
97
70
  */
98
- constructor(pdfiumModule: WrappedPdfiumModule, options?: PdfiumEngineOptions<T>);
71
+ constructor(pdfiumModule: WrappedPdfiumModule, options?: PdfiumEngineOptions);
99
72
  /**
100
73
  * {@inheritDoc @embedpdf/models!PdfEngine.initialize}
101
74
  *
@@ -112,57 +85,24 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
112
85
  private withWString;
113
86
  /** Write a float[] to wasm, call `fn(ptr, count)`, then free. */
114
87
  private withFloatArray;
115
- /**
116
- * {@inheritDoc @embedpdf/models!PdfEngine.openDocumentUrl}
117
- *
118
- * @public
119
- */
120
- openDocumentUrl(file: PdfFileUrl, options?: PdfOpenDocumentUrlOptions): Task<PdfDocumentObject, PdfErrorReason, unknown>;
121
- /**
122
- * Check if the server supports range requests:
123
- * Sends a HEAD request and sees if 'Accept-Ranges: bytes'.
124
- */
125
- private checkRangeSupport;
126
- /**
127
- * Fully fetch the file (using fetch) into an ArrayBuffer,
128
- * then call openDocumentFromBuffer.
129
- */
130
- private fetchFullAndOpen;
131
- /**
132
- * Use your synchronous partial-loading approach:
133
- * - In your snippet, it's done via `openDocumentFromLoader`.
134
- * - We'll do a synchronous XHR read callback that pulls
135
- * the desired byte ranges.
136
- */
137
- private openDocumentWithRangeRequest;
138
- /**
139
- * Helper to do a HEAD request or partial GET to find file length.
140
- */
141
- private retrieveFileLength;
142
- /**
143
- * Convert response text (x-user-defined) to a Uint8Array
144
- * for partial data.
145
- */
146
- private convertResponseToUint8Array;
147
88
  /**
148
89
  * {@inheritDoc @embedpdf/models!PdfEngine.openDocument}
149
90
  *
150
91
  * @public
151
92
  */
152
93
  openDocumentBuffer(file: PdfFile, options?: PdfOpenDocumentBufferOptions): Task<PdfDocumentObject, PdfErrorReason, unknown>;
153
- openDocumentFromLoader(fileLoader: PdfFileLoader, password?: string): Task<PdfDocumentObject, PdfErrorReason, unknown>;
154
94
  /**
155
95
  * {@inheritDoc @embedpdf/models!PdfEngine.getMetadata}
156
96
  *
157
97
  * @public
158
98
  */
159
- getMetadata(doc: PdfDocumentObject): PdfTask<PdfMetadataObject, PdfErrorReason>;
99
+ getMetadata(doc: PdfDocumentObject): PdfTask<PdfMetadataObject>;
160
100
  /**
161
101
  * {@inheritDoc @embedpdf/models!PdfEngine.setMetadata}
162
102
  *
163
103
  * @public
164
104
  */
165
- setMetadata(doc: PdfDocumentObject, meta: Partial<PdfMetadataObject>): Task<boolean, PdfErrorReason, unknown> | Task<any, PdfErrorReason, unknown>;
105
+ setMetadata(doc: PdfDocumentObject, meta: Partial<PdfMetadataObject>): Task<any, PdfErrorReason, unknown> | Task<boolean, PdfErrorReason, unknown>;
166
106
  /**
167
107
  * {@inheritDoc @embedpdf/models!PdfEngine.getDocPermissions}
168
108
  *
@@ -194,32 +134,25 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
194
134
  *
195
135
  * @public
196
136
  */
197
- setBookmarks(doc: PdfDocumentObject, list: PdfBookmarkObject[]): Task<boolean, PdfErrorReason, unknown> | Task<any, PdfErrorReason, unknown>;
137
+ setBookmarks(doc: PdfDocumentObject, list: PdfBookmarkObject[]): Task<any, PdfErrorReason, unknown> | Task<boolean, PdfErrorReason, unknown>;
198
138
  /**
199
139
  * {@inheritDoc @embedpdf/models!PdfEngine.deleteBookmarks}
200
140
  *
201
141
  * @public
202
142
  */
203
- deleteBookmarks(doc: PdfDocumentObject): Task<boolean, PdfErrorReason, unknown> | Task<any, PdfErrorReason, unknown>;
143
+ deleteBookmarks(doc: PdfDocumentObject): Task<any, PdfErrorReason, unknown> | Task<boolean, PdfErrorReason, unknown>;
204
144
  /**
205
145
  * {@inheritDoc @embedpdf/models!PdfEngine.renderPage}
206
146
  *
207
147
  * @public
208
148
  */
209
- renderPage(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions): PdfTask<T>;
149
+ renderPageRaw(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderPageOptions): PdfTask<ImageDataLike>;
210
150
  /**
211
151
  * {@inheritDoc @embedpdf/models!PdfEngine.renderPageRect}
212
152
  *
213
153
  * @public
214
154
  */
215
- renderPageRect(doc: PdfDocumentObject, page: PdfPageObject, rect: Rect, options?: PdfRenderPageOptions): PdfTask<T>;
216
- /**
217
- * {@inheritDoc @embedpdf/models!PdfEngine.getAllAnnotations}
218
- *
219
- * @public
220
- */
221
- getAllAnnotations(doc: PdfDocumentObject): PdfTask<Record<number, PdfAnnotationObject[]>, PdfAnnotationsProgress>;
222
- private readAllAnnotations;
155
+ renderPageRect(doc: PdfDocumentObject, page: PdfPageObject, rect: Rect, options?: PdfRenderPageOptions): PdfTask<ImageDataLike>;
223
156
  /**
224
157
  * {@inheritDoc @embedpdf/models!PdfEngine.getPageAnnotations}
225
158
  *
@@ -247,7 +180,7 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
247
180
  *
248
181
  * @public
249
182
  */
250
- removePageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): Task<boolean, PdfErrorReason, unknown> | Task<any, PdfErrorReason, unknown>;
183
+ removePageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject): Task<any, PdfErrorReason, unknown> | Task<boolean, PdfErrorReason, unknown>;
251
184
  /**
252
185
  * {@inheritDoc @embedpdf/models!PdfEngine.getPageTextRects}
253
186
  *
@@ -259,7 +192,7 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
259
192
  *
260
193
  * @public
261
194
  */
262
- renderThumbnail(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderThumbnailOptions): PdfTask<T>;
195
+ renderThumbnailRaw(doc: PdfDocumentObject, page: PdfPageObject, options?: PdfRenderThumbnailOptions): PdfTask<ImageDataLike>;
263
196
  /**
264
197
  * {@inheritDoc @embedpdf/models!PdfEngine.getAttachments}
265
198
  *
@@ -289,7 +222,7 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
289
222
  *
290
223
  * @public
291
224
  */
292
- setFormFieldValue(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfWidgetAnnoObject, value: FormFieldValue): Task<boolean, PdfErrorReason, unknown> | Task<any, PdfErrorReason, unknown>;
225
+ setFormFieldValue(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfWidgetAnnoObject, value: FormFieldValue): Task<any, PdfErrorReason, unknown> | Task<boolean, PdfErrorReason, unknown>;
293
226
  /**
294
227
  * {@inheritDoc @embedpdf/models!PdfEngine.flattenPage}
295
228
  *
@@ -615,7 +548,7 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
615
548
  */
616
549
  private readPageAnnotations;
617
550
  /**
618
- * Read page annotations
551
+ * Read page annotations without loading the page (raw approach)
619
552
  *
620
553
  * @param ctx - document context
621
554
  * @param page - page info
@@ -624,6 +557,16 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
624
557
  * @private
625
558
  */
626
559
  private readPageAnnotationsRaw;
560
+ /**
561
+ * Get page annotations (public API, returns Task)
562
+ *
563
+ * @param doc - pdf document
564
+ * @param page - page info
565
+ * @returns task with annotations on the pdf page
566
+ *
567
+ * @public
568
+ */
569
+ getPageAnnotationsRaw(doc: PdfDocumentObject, page: PdfPageObject): PdfTask<PdfAnnotationObject[]>;
627
570
  /**
628
571
  * Read pdf annotation from pdf document
629
572
  *
@@ -1357,8 +1300,7 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
1357
1300
  *
1358
1301
  * @public
1359
1302
  */
1360
- renderPageAnnotation(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject, options?: PdfRenderPageAnnotationOptions): PdfTask<T>;
1361
- private encodeViaWasm;
1303
+ renderPageAnnotationRaw(doc: PdfDocumentObject, page: PdfPageObject, annotation: PdfAnnotationObject, options?: PdfRenderPageAnnotationOptions): PdfTask<ImageDataLike>;
1362
1304
  private renderRectEncoded;
1363
1305
  /**
1364
1306
  * Read the target of pdf link annotation
@@ -1493,7 +1435,31 @@ export declare class PdfiumEngine<T = Blob> implements PdfEngine<T> {
1493
1435
  *
1494
1436
  * @public
1495
1437
  */
1496
- searchAllPages(doc: PdfDocumentObject, keyword: string, options?: PdfSearchAllPagesOptions): PdfTask<SearchAllPagesResult, PdfPageSearchProgress>;
1438
+ searchInPage(doc: PdfDocumentObject, page: PdfPageObject, keyword: string, flags: number): PdfTask<SearchResult[]>;
1439
+ /**
1440
+ * Get annotations for multiple pages in a single batch.
1441
+ * Emits progress per page for streaming updates.
1442
+ *
1443
+ * @param doc - PDF document
1444
+ * @param pages - Array of pages to process
1445
+ * @returns Task with results keyed by page index, with per-page progress
1446
+ *
1447
+ * @public
1448
+ */
1449
+ getAnnotationsBatch(doc: PdfDocumentObject, pages: PdfPageObject[]): PdfTask<Record<number, PdfAnnotationObject[]>, BatchProgress<PdfAnnotationObject[]>>;
1450
+ /**
1451
+ * Search across multiple pages in a single batch.
1452
+ * Emits progress per page for streaming updates.
1453
+ *
1454
+ * @param doc - PDF document
1455
+ * @param pages - Array of pages to search
1456
+ * @param keyword - Search keyword
1457
+ * @param flags - Search flags
1458
+ * @returns Task with results keyed by page index, with per-page progress
1459
+ *
1460
+ * @public
1461
+ */
1462
+ searchBatch(doc: PdfDocumentObject, pages: PdfPageObject[], keyword: string, flags: number): PdfTask<Record<number, SearchResult[]>, BatchProgress<SearchResult[]>>;
1497
1463
  /**
1498
1464
  * Extract word-aligned context for a search hit.
1499
1465
  *
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../../engine-CXnLqg_9.cjs"),e=require("../../index-C4OBhnbs.cjs");exports.BitmapFormat=r.BitmapFormat,exports.OffscreenCanvasError=r.OffscreenCanvasError,exports.PdfiumEngine=r.PdfiumEngine,exports.PdfiumErrorCode=r.PdfiumErrorCode,exports.RenderFlag=r.RenderFlag,exports.browserImageDataToBlobConverter=r.browserImageDataToBlobConverter,exports.computeFormDrawParams=r.computeFormDrawParams,exports.isValidCustomKey=r.isValidCustomKey,exports.readArrayBuffer=r.readArrayBuffer,exports.readString=r.readString,exports.DEFAULT_PDFIUM_WASM_URL=e.DEFAULT_PDFIUM_WASM_URL,exports.PdfiumEngineRunner=e.PdfiumEngineRunner;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../../direct-engine-CZAhOupl.cjs"),r=require("../../browser-B5Y-F6il.cjs"),t=require("./web/worker-engine.cjs");exports.BitmapFormat=e.BitmapFormat,exports.PdfiumErrorCode=e.PdfiumErrorCode,exports.PdfiumNative=e.PdfiumNative,exports.RenderFlag=e.RenderFlag,exports.computeFormDrawParams=e.computeFormDrawParams,exports.createPdfiumDirectEngine=e.createPdfiumEngine,exports.isValidCustomKey=e.isValidCustomKey,exports.readArrayBuffer=e.readArrayBuffer,exports.readString=e.readString,exports.OffscreenCanvasError=r.OffscreenCanvasError,exports.browserImageDataToBlobConverter=r.browserImageDataToBlobConverter,exports.createHybridImageConverter=r.createHybridImageConverter,exports.createWorkerPoolImageConverter=r.createWorkerPoolImageConverter,exports.createPdfiumWorkerEngine=t.createPdfiumEngine,exports.DEFAULT_PDFIUM_WASM_URL="https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@2.0.0-next.3/dist/pdfium.wasm";
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/lib/pdfium/index.ts"],"sourcesContent":["export * from './engine';\nexport * from './helper';\nexport * from '../converters/types';\nexport * from '../converters/browser';\n\n// Export web factory functions (avoid ambiguous exports)\nexport { createPdfiumEngine as createPdfiumDirectEngine } from './web/direct-engine';\nexport { createPdfiumEngine as createPdfiumWorkerEngine } from './web/worker-engine';\nexport type { CreatePdfiumEngineOptions } from './web/direct-engine';\n\nexport const DEFAULT_PDFIUM_WASM_URL: string =\n 'https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@__PDFIUM_VERSION__/dist/pdfium.wasm';\n"],"names":[],"mappings":"i6BAWE"}
@@ -1,4 +1,8 @@
1
1
  export * from './engine';
2
2
  export * from './helper';
3
- export * from './runner';
3
+ export * from '../converters/types';
4
+ export * from '../converters/browser';
5
+ export { createPdfiumEngine as createPdfiumDirectEngine } from './web/direct-engine';
6
+ export { createPdfiumEngine as createPdfiumWorkerEngine } from './web/worker-engine';
7
+ export type { CreatePdfiumEngineOptions } from './web/direct-engine';
4
8
  export declare const DEFAULT_PDFIUM_WASM_URL: string;
@@ -1,17 +1,22 @@
1
- import { B, O, a, P, R, b, d, i, c, r } from "../../engine-B-RaFU77.js";
2
- import { D, P as P2 } from "../../index-C3mv9vLs.js";
1
+ import { B, P, a, R, d, c, i, b, r } from "../../direct-engine-BZRK27cv.js";
2
+ import { O, b as b2, a as a2, c as c2 } from "../../browser-Cm3DA8l_.js";
3
+ import { createPdfiumEngine } from "./web/worker-engine.js";
4
+ const DEFAULT_PDFIUM_WASM_URL = "https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@2.0.0-next.3/dist/pdfium.wasm";
3
5
  export {
4
6
  B as BitmapFormat,
5
- D as DEFAULT_PDFIUM_WASM_URL,
7
+ DEFAULT_PDFIUM_WASM_URL,
6
8
  O as OffscreenCanvasError,
7
- a as PdfiumEngine,
8
- P2 as PdfiumEngineRunner,
9
9
  P as PdfiumErrorCode,
10
+ a as PdfiumNative,
10
11
  R as RenderFlag,
11
- b as browserImageDataToBlobConverter,
12
+ b2 as browserImageDataToBlobConverter,
12
13
  d as computeFormDrawParams,
14
+ a2 as createHybridImageConverter,
15
+ c as createPdfiumDirectEngine,
16
+ createPdfiumEngine as createPdfiumWorkerEngine,
17
+ c2 as createWorkerPoolImageConverter,
13
18
  i as isValidCustomKey,
14
- c as readArrayBuffer,
19
+ b as readArrayBuffer,
15
20
  r as readString
16
21
  };
17
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/lib/pdfium/index.ts"],"sourcesContent":["export * from './engine';\nexport * from './helper';\nexport * from '../converters/types';\nexport * from '../converters/browser';\n\n// Export web factory functions (avoid ambiguous exports)\nexport { createPdfiumEngine as createPdfiumDirectEngine } from './web/direct-engine';\nexport { createPdfiumEngine as createPdfiumWorkerEngine } from './web/worker-engine';\nexport type { CreatePdfiumEngineOptions } from './web/direct-engine';\n\nexport const DEFAULT_PDFIUM_WASM_URL: string =\n 'https://cdn.jsdelivr.net/npm/@embedpdf/pdfium@__PDFIUM_VERSION__/dist/pdfium.wasm';\n"],"names":[],"mappings":";;;AAUO,MAAM,0BACX;"}
@@ -1,9 +1,9 @@
1
- import { EngineRunner } from '../webworker/runner';
1
+ import { PdfiumNativeRunner } from '../orchestrator/pdfium-native-runner';
2
2
  import { Logger } from '@embedpdf/models';
3
3
  /**
4
4
  * EngineRunner for pdfium-based wasm engine
5
5
  */
6
- export declare class PdfiumEngineRunner extends EngineRunner {
6
+ export declare class PdfiumEngineRunner extends PdfiumNativeRunner {
7
7
  private wasmBinary;
8
8
  /**
9
9
  * Create an instance of PdfiumEngineRunner
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/pdfium"),i=require("../../../engine-CXnLqg_9.cjs");exports.createPdfiumEngine=async function(r,t){const n=await fetch(r),a=await n.arrayBuffer(),u=await e.init({wasmBinary:a});return new i.PdfiumEngine(u,{logger:t})};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("@embedpdf/pdfium");const e=require("../../../direct-engine-CZAhOupl.cjs");require("../../../pdf-engine-CrarIjJ6.cjs"),require("../../../browser-B5Y-F6il.cjs"),exports.createPdfiumEngine=e.createPdfiumEngine;
2
2
  //# sourceMappingURL=direct-engine.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"direct-engine.cjs","sources":["../../../../src/lib/pdfium/web/direct-engine.ts"],"sourcesContent":["import { Logger } from '@embedpdf/models';\nimport { init } from '@embedpdf/pdfium';\n\nimport { PdfiumEngine } from '../engine';\n\nexport async function createPdfiumEngine(wasmUrl: string, logger?: Logger): Promise<PdfiumEngine> {\n const response = await fetch(wasmUrl);\n const wasmBinary = await response.arrayBuffer();\n const wasmModule = await init({ wasmBinary });\n return new PdfiumEngine(wasmModule, { logger });\n}\n"],"names":["async","wasmUrl","logger","response","fetch","wasmBinary","arrayBuffer","wasmModule","init","PdfiumEngine"],"mappings":"yLAKAA,eAAyCC,EAAiBC,GACxD,MAAMC,QAAiBC,MAAMH,GACvBI,QAAmBF,EAASG,cAC5BC,QAAmBC,OAAK,CAAEH,eAChC,OAAO,IAAII,EAAAA,aAAaF,EAAY,CAAEL,UACxC"}
1
+ {"version":3,"file":"direct-engine.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,3 +1,34 @@
1
1
  import { Logger } from '@embedpdf/models';
2
- import { PdfiumEngine } from '../engine';
3
- export declare function createPdfiumEngine(wasmUrl: string, logger?: Logger): Promise<PdfiumEngine>;
2
+ import { PdfEngine } from '../../orchestrator/pdf-engine';
3
+ export interface CreatePdfiumEngineOptions {
4
+ /**
5
+ * Logger instance for debugging
6
+ */
7
+ logger?: Logger;
8
+ /**
9
+ * Number of workers in the image encoder pool (default: 0 - disabled)
10
+ * Set to 2-4 for optimal performance with parallel encoding
11
+ */
12
+ encoderPoolSize?: number;
13
+ }
14
+ /**
15
+ * Create a PDFium engine running directly in the main thread
16
+ *
17
+ * This is the "direct" mode where PDFium runs in the main thread.
18
+ * The PdfEngine orchestrator still provides priority-based task scheduling.
19
+ *
20
+ * @param wasmUrl - URL to the pdfium.wasm file
21
+ * @param options - Configuration options
22
+ *
23
+ * @example
24
+ * // Basic usage
25
+ * const engine = await createPdfiumEngine('/wasm/pdfium.wasm', { logger });
26
+ *
27
+ * @example
28
+ * // With encoder pool for parallel image encoding
29
+ * const engine = await createPdfiumEngine('/wasm/pdfium.wasm', {
30
+ * logger,
31
+ * encoderPoolSize: 2
32
+ * });
33
+ */
34
+ export declare function createPdfiumEngine(wasmUrl: string, options?: CreatePdfiumEngineOptions): Promise<PdfEngine<Blob>>;
@@ -1,12 +1,8 @@
1
- import { init } from "@embedpdf/pdfium";
2
- import { a as PdfiumEngine } from "../../../engine-B-RaFU77.js";
3
- async function createPdfiumEngine(wasmUrl, logger) {
4
- const response = await fetch(wasmUrl);
5
- const wasmBinary = await response.arrayBuffer();
6
- const wasmModule = await init({ wasmBinary });
7
- return new PdfiumEngine(wasmModule, { logger });
8
- }
1
+ import "@embedpdf/pdfium";
2
+ import { c } from "../../../direct-engine-BZRK27cv.js";
3
+ import "../../../pdf-engine-yZzBqL_l.js";
4
+ import "../../../browser-Cm3DA8l_.js";
9
5
  export {
10
- createPdfiumEngine
6
+ c as createPdfiumEngine
11
7
  };
12
8
  //# sourceMappingURL=direct-engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"direct-engine.js","sources":["../../../../src/lib/pdfium/web/direct-engine.ts"],"sourcesContent":["import { Logger } from '@embedpdf/models';\nimport { init } from '@embedpdf/pdfium';\n\nimport { PdfiumEngine } from '../engine';\n\nexport async function createPdfiumEngine(wasmUrl: string, logger?: Logger): Promise<PdfiumEngine> {\n const response = await fetch(wasmUrl);\n const wasmBinary = await response.arrayBuffer();\n const wasmModule = await init({ wasmBinary });\n return new PdfiumEngine(wasmModule, { logger });\n}\n"],"names":[],"mappings":";;AAKA,eAAsB,mBAAmB,SAAiB,QAAwC;AAChG,QAAM,WAAW,MAAM,MAAM,OAAO;AACpC,QAAM,aAAa,MAAM,SAAS,YAAA;AAClC,QAAM,aAAa,MAAM,KAAK,EAAE,YAAY;AAC5C,SAAO,IAAI,aAAa,YAAY,EAAE,QAAQ;AAChD;"}
1
+ {"version":3,"file":"direct-engine.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}