pdf-oxide 0.3.24 → 0.3.28

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 (271) hide show
  1. package/lib/builders/annotation-builder.d.ts +199 -0
  2. package/lib/builders/annotation-builder.d.ts.map +1 -0
  3. package/lib/builders/annotation-builder.js +318 -0
  4. package/lib/builders/annotation-builder.js.map +1 -0
  5. package/lib/builders/conversion-options-builder.d.ts +107 -0
  6. package/lib/builders/conversion-options-builder.d.ts.map +1 -0
  7. package/lib/builders/conversion-options-builder.js +215 -0
  8. package/lib/builders/conversion-options-builder.js.map +1 -0
  9. package/{src/builders/index.ts → lib/builders/index.d.ts} +1 -1
  10. package/lib/builders/index.d.ts.map +1 -0
  11. package/lib/builders/index.js +12 -0
  12. package/lib/builders/index.js.map +1 -0
  13. package/lib/builders/metadata-builder.d.ts +202 -0
  14. package/lib/builders/metadata-builder.d.ts.map +1 -0
  15. package/lib/builders/metadata-builder.js +286 -0
  16. package/lib/builders/metadata-builder.js.map +1 -0
  17. package/lib/builders/pdf-builder.d.ts +215 -0
  18. package/lib/builders/pdf-builder.d.ts.map +1 -0
  19. package/lib/builders/pdf-builder.js +339 -0
  20. package/lib/builders/pdf-builder.js.map +1 -0
  21. package/lib/builders/search-options-builder.d.ts +74 -0
  22. package/lib/builders/search-options-builder.d.ts.map +1 -0
  23. package/lib/builders/search-options-builder.js +130 -0
  24. package/lib/builders/search-options-builder.js.map +1 -0
  25. package/lib/document-editor-manager.d.ts +140 -0
  26. package/lib/document-editor-manager.d.ts.map +1 -0
  27. package/lib/document-editor-manager.js +257 -0
  28. package/lib/document-editor-manager.js.map +1 -0
  29. package/lib/errors.d.ts +383 -0
  30. package/lib/errors.d.ts.map +1 -0
  31. package/lib/errors.js +1117 -0
  32. package/lib/errors.js.map +1 -0
  33. package/lib/form-field-manager.d.ts +300 -0
  34. package/lib/form-field-manager.d.ts.map +1 -0
  35. package/lib/form-field-manager.js +567 -0
  36. package/lib/form-field-manager.js.map +1 -0
  37. package/lib/hybrid-ml-manager.d.ts +143 -0
  38. package/lib/hybrid-ml-manager.d.ts.map +1 -0
  39. package/lib/hybrid-ml-manager.js +209 -0
  40. package/lib/hybrid-ml-manager.js.map +1 -0
  41. package/lib/index.d.ts +23 -0
  42. package/lib/index.d.ts.map +1 -0
  43. package/lib/index.js +280 -0
  44. package/lib/index.js.map +1 -0
  45. package/lib/managers/accessibility-manager.d.ts +149 -0
  46. package/lib/managers/accessibility-manager.d.ts.map +1 -0
  47. package/lib/managers/accessibility-manager.js +224 -0
  48. package/lib/managers/accessibility-manager.js.map +1 -0
  49. package/lib/managers/annotation-manager.d.ts +220 -0
  50. package/lib/managers/annotation-manager.d.ts.map +1 -0
  51. package/lib/managers/annotation-manager.js +360 -0
  52. package/lib/managers/annotation-manager.js.map +1 -0
  53. package/lib/managers/barcode-manager.d.ts +80 -0
  54. package/lib/managers/barcode-manager.d.ts.map +1 -0
  55. package/lib/managers/barcode-manager.js +226 -0
  56. package/lib/managers/barcode-manager.js.map +1 -0
  57. package/lib/managers/batch-manager.d.ts +186 -0
  58. package/lib/managers/batch-manager.d.ts.map +1 -0
  59. package/lib/managers/batch-manager.js +389 -0
  60. package/lib/managers/batch-manager.js.map +1 -0
  61. package/lib/managers/cache-manager.d.ts +182 -0
  62. package/lib/managers/cache-manager.d.ts.map +1 -0
  63. package/lib/managers/cache-manager.js +387 -0
  64. package/lib/managers/cache-manager.js.map +1 -0
  65. package/lib/managers/compliance-manager.d.ts +104 -0
  66. package/lib/managers/compliance-manager.d.ts.map +1 -0
  67. package/lib/managers/compliance-manager.js +415 -0
  68. package/lib/managers/compliance-manager.js.map +1 -0
  69. package/lib/managers/content-manager.d.ts +121 -0
  70. package/lib/managers/content-manager.d.ts.map +1 -0
  71. package/lib/managers/content-manager.js +295 -0
  72. package/lib/managers/content-manager.js.map +1 -0
  73. package/lib/managers/document-utility-manager.d.ts +370 -0
  74. package/lib/managers/document-utility-manager.d.ts.map +1 -0
  75. package/lib/managers/document-utility-manager.js +731 -0
  76. package/lib/managers/document-utility-manager.js.map +1 -0
  77. package/lib/managers/dom-pdf-creator.d.ts +105 -0
  78. package/lib/managers/dom-pdf-creator.d.ts.map +1 -0
  79. package/lib/managers/dom-pdf-creator.js +300 -0
  80. package/lib/managers/dom-pdf-creator.js.map +1 -0
  81. package/lib/managers/editing-manager.d.ts +249 -0
  82. package/lib/managers/editing-manager.d.ts.map +1 -0
  83. package/lib/managers/editing-manager.js +388 -0
  84. package/lib/managers/editing-manager.js.map +1 -0
  85. package/lib/managers/enterprise-manager.d.ts +193 -0
  86. package/lib/managers/enterprise-manager.d.ts.map +1 -0
  87. package/lib/managers/enterprise-manager.js +305 -0
  88. package/lib/managers/enterprise-manager.js.map +1 -0
  89. package/lib/managers/extended-managers.d.ts +123 -0
  90. package/lib/managers/extended-managers.d.ts.map +1 -0
  91. package/lib/managers/extended-managers.js +658 -0
  92. package/lib/managers/extended-managers.js.map +1 -0
  93. package/lib/managers/extraction-manager.d.ts +247 -0
  94. package/lib/managers/extraction-manager.d.ts.map +1 -0
  95. package/lib/managers/extraction-manager.js +478 -0
  96. package/lib/managers/extraction-manager.js.map +1 -0
  97. package/lib/managers/final-utilities.d.ts +128 -0
  98. package/lib/managers/final-utilities.d.ts.map +1 -0
  99. package/lib/managers/final-utilities.js +653 -0
  100. package/lib/managers/final-utilities.js.map +1 -0
  101. package/lib/managers/hybrid-ml-advanced.d.ts +137 -0
  102. package/lib/managers/hybrid-ml-advanced.d.ts.map +1 -0
  103. package/lib/managers/hybrid-ml-advanced.js +707 -0
  104. package/lib/managers/hybrid-ml-advanced.js.map +1 -0
  105. package/lib/managers/index.d.ts +65 -0
  106. package/lib/managers/index.d.ts.map +1 -0
  107. package/lib/managers/index.js +70 -0
  108. package/lib/managers/index.js.map +1 -0
  109. package/lib/managers/layer-manager.d.ts +204 -0
  110. package/lib/managers/layer-manager.d.ts.map +1 -0
  111. package/lib/managers/layer-manager.js +403 -0
  112. package/lib/managers/layer-manager.js.map +1 -0
  113. package/lib/managers/metadata-manager.d.ts +149 -0
  114. package/lib/managers/metadata-manager.d.ts.map +1 -0
  115. package/lib/managers/metadata-manager.js +281 -0
  116. package/lib/managers/metadata-manager.js.map +1 -0
  117. package/lib/managers/ocr-manager.d.ts +195 -0
  118. package/lib/managers/ocr-manager.d.ts.map +1 -0
  119. package/lib/managers/ocr-manager.js +583 -0
  120. package/lib/managers/ocr-manager.js.map +1 -0
  121. package/lib/managers/optimization-manager.d.ts +103 -0
  122. package/lib/managers/optimization-manager.d.ts.map +1 -0
  123. package/lib/managers/optimization-manager.js +194 -0
  124. package/lib/managers/optimization-manager.js.map +1 -0
  125. package/lib/managers/outline-manager.d.ts +102 -0
  126. package/lib/managers/outline-manager.d.ts.map +1 -0
  127. package/lib/managers/outline-manager.js +170 -0
  128. package/lib/managers/outline-manager.js.map +1 -0
  129. package/lib/managers/page-manager.d.ts +143 -0
  130. package/lib/managers/page-manager.d.ts.map +1 -0
  131. package/lib/managers/page-manager.js +237 -0
  132. package/lib/managers/page-manager.js.map +1 -0
  133. package/lib/managers/pattern-detection.d.ts +170 -0
  134. package/lib/managers/pattern-detection.d.ts.map +1 -0
  135. package/lib/managers/pattern-detection.js +325 -0
  136. package/lib/managers/pattern-detection.js.map +1 -0
  137. package/lib/managers/rendering-manager.d.ts +354 -0
  138. package/lib/managers/rendering-manager.d.ts.map +1 -0
  139. package/lib/managers/rendering-manager.js +680 -0
  140. package/lib/managers/rendering-manager.js.map +1 -0
  141. package/lib/managers/search-manager.d.ts +236 -0
  142. package/lib/managers/search-manager.d.ts.map +1 -0
  143. package/lib/managers/search-manager.js +330 -0
  144. package/lib/managers/search-manager.js.map +1 -0
  145. package/lib/managers/security-manager.d.ts +162 -0
  146. package/lib/managers/security-manager.d.ts.map +1 -0
  147. package/lib/managers/security-manager.js +293 -0
  148. package/lib/managers/security-manager.js.map +1 -0
  149. package/lib/managers/signature-manager.d.ts +725 -0
  150. package/lib/managers/signature-manager.d.ts.map +1 -0
  151. package/lib/managers/signature-manager.js +1365 -0
  152. package/lib/managers/signature-manager.js.map +1 -0
  153. package/lib/managers/streams.d.ts +263 -0
  154. package/lib/managers/streams.d.ts.map +1 -0
  155. package/lib/managers/streams.js +472 -0
  156. package/lib/managers/streams.js.map +1 -0
  157. package/lib/managers/xfa-manager.d.ts +228 -0
  158. package/lib/managers/xfa-manager.d.ts.map +1 -0
  159. package/lib/managers/xfa-manager.js +490 -0
  160. package/lib/managers/xfa-manager.js.map +1 -0
  161. package/lib/pdf-creator-manager.d.ts +201 -0
  162. package/lib/pdf-creator-manager.d.ts.map +1 -0
  163. package/lib/pdf-creator-manager.js +379 -0
  164. package/lib/pdf-creator-manager.js.map +1 -0
  165. package/lib/properties.d.ts +80 -0
  166. package/lib/properties.d.ts.map +1 -0
  167. package/lib/properties.js +455 -0
  168. package/lib/properties.js.map +1 -0
  169. package/lib/result-accessors-manager.d.ts +347 -0
  170. package/lib/result-accessors-manager.d.ts.map +1 -0
  171. package/lib/result-accessors-manager.js +705 -0
  172. package/lib/result-accessors-manager.js.map +1 -0
  173. package/lib/thumbnail-manager.d.ts +122 -0
  174. package/lib/thumbnail-manager.d.ts.map +1 -0
  175. package/lib/thumbnail-manager.js +206 -0
  176. package/lib/thumbnail-manager.js.map +1 -0
  177. package/lib/types/common.d.ts +93 -0
  178. package/lib/types/common.d.ts.map +1 -0
  179. package/lib/types/common.js +5 -0
  180. package/lib/types/common.js.map +1 -0
  181. package/lib/types/document-types.d.ts +353 -0
  182. package/lib/types/document-types.d.ts.map +1 -0
  183. package/lib/types/document-types.js +83 -0
  184. package/lib/types/document-types.js.map +1 -0
  185. package/{src/types/index.ts → lib/types/index.d.ts} +1 -1
  186. package/lib/types/index.d.ts.map +1 -0
  187. package/lib/types/index.js +6 -0
  188. package/lib/types/index.js.map +1 -0
  189. package/lib/types/manager-types.d.ts +180 -0
  190. package/lib/types/manager-types.d.ts.map +1 -0
  191. package/lib/types/manager-types.js +99 -0
  192. package/lib/types/manager-types.js.map +1 -0
  193. package/lib/types/native-bindings.d.ts +440 -0
  194. package/lib/types/native-bindings.d.ts.map +1 -0
  195. package/lib/types/native-bindings.js +8 -0
  196. package/lib/types/native-bindings.js.map +1 -0
  197. package/{src/workers/index.ts → lib/workers/index.d.ts} +1 -1
  198. package/lib/workers/index.d.ts.map +1 -0
  199. package/lib/workers/index.js +6 -0
  200. package/lib/workers/index.js.map +1 -0
  201. package/lib/workers/pool.d.ts +65 -0
  202. package/lib/workers/pool.d.ts.map +1 -0
  203. package/lib/workers/pool.js +195 -0
  204. package/lib/workers/pool.js.map +1 -0
  205. package/lib/workers/worker.d.ts +6 -0
  206. package/lib/workers/worker.d.ts.map +1 -0
  207. package/lib/workers/worker.js +100 -0
  208. package/lib/workers/worker.js.map +1 -0
  209. package/package.json +12 -22
  210. package/prebuilds/darwin-arm64/pdf_oxide.node +0 -0
  211. package/prebuilds/darwin-x64/pdf_oxide.node +0 -0
  212. package/prebuilds/linux-arm64/pdf_oxide.node +0 -0
  213. package/prebuilds/linux-x64/pdf_oxide.node +0 -0
  214. package/prebuilds/win32-x64/pdf_oxide.node +0 -0
  215. package/binding.gyp +0 -35
  216. package/src/builders/annotation-builder.ts +0 -367
  217. package/src/builders/conversion-options-builder.ts +0 -257
  218. package/src/builders/metadata-builder.ts +0 -317
  219. package/src/builders/pdf-builder.ts +0 -386
  220. package/src/builders/search-options-builder.ts +0 -151
  221. package/src/document-editor-manager.ts +0 -318
  222. package/src/errors.ts +0 -1629
  223. package/src/form-field-manager.ts +0 -666
  224. package/src/hybrid-ml-manager.ts +0 -283
  225. package/src/index.ts +0 -453
  226. package/src/managers/accessibility-manager.ts +0 -338
  227. package/src/managers/annotation-manager.ts +0 -439
  228. package/src/managers/barcode-manager.ts +0 -235
  229. package/src/managers/batch-manager.ts +0 -533
  230. package/src/managers/cache-manager.ts +0 -486
  231. package/src/managers/compliance-manager.ts +0 -375
  232. package/src/managers/content-manager.ts +0 -339
  233. package/src/managers/document-utility-manager.ts +0 -922
  234. package/src/managers/dom-pdf-creator.ts +0 -365
  235. package/src/managers/editing-manager.ts +0 -514
  236. package/src/managers/enterprise-manager.ts +0 -478
  237. package/src/managers/extended-managers.ts +0 -437
  238. package/src/managers/extraction-manager.ts +0 -583
  239. package/src/managers/final-utilities.ts +0 -429
  240. package/src/managers/hybrid-ml-advanced.ts +0 -479
  241. package/src/managers/index.ts +0 -239
  242. package/src/managers/layer-manager.ts +0 -500
  243. package/src/managers/metadata-manager.ts +0 -303
  244. package/src/managers/ocr-manager.ts +0 -756
  245. package/src/managers/optimization-manager.ts +0 -262
  246. package/src/managers/outline-manager.ts +0 -196
  247. package/src/managers/page-manager.ts +0 -289
  248. package/src/managers/pattern-detection.ts +0 -440
  249. package/src/managers/rendering-manager.ts +0 -863
  250. package/src/managers/search-manager.ts +0 -385
  251. package/src/managers/security-manager.ts +0 -345
  252. package/src/managers/signature-manager.ts +0 -1664
  253. package/src/managers/streams.ts +0 -618
  254. package/src/managers/xfa-manager.ts +0 -500
  255. package/src/pdf-creator-manager.ts +0 -494
  256. package/src/properties.ts +0 -522
  257. package/src/result-accessors-manager.ts +0 -867
  258. package/src/tests/advanced-features.test.ts +0 -414
  259. package/src/tests/advanced.test.ts +0 -266
  260. package/src/tests/extended-managers.test.ts +0 -316
  261. package/src/tests/final-utilities.test.ts +0 -455
  262. package/src/tests/foundation.test.ts +0 -315
  263. package/src/tests/high-demand.test.ts +0 -257
  264. package/src/tests/specialized.test.ts +0 -97
  265. package/src/thumbnail-manager.ts +0 -272
  266. package/src/types/common.ts +0 -142
  267. package/src/types/document-types.ts +0 -457
  268. package/src/types/manager-types.ts +0 -284
  269. package/src/types/native-bindings.ts +0 -517
  270. package/src/workers/pool.ts +0 -274
  271. package/src/workers/worker.ts +0 -131
@@ -0,0 +1 @@
1
+ {"version":3,"file":"barcode-manager.js","sourceRoot":"","sources":["../../src/managers/barcode-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ /**
2
+ * Batch Processing Manager for Parallel Document Operations
3
+ *
4
+ * Enables efficient parallel processing of multiple PDF documents with:
5
+ * - Configurable concurrency control
6
+ * - Real-time progress tracking with ETA calculation
7
+ * - Memory-aware backpressure handling
8
+ * - Per-document timeout support
9
+ * - Error resilience and detailed reporting
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { BatchManager } from 'pdf-oxide';
14
+ * import { PdfDocument } from 'pdf-oxide';
15
+ *
16
+ * const batch = new BatchManager([
17
+ * { path: 'doc1.pdf' },
18
+ * { path: 'doc2.pdf' },
19
+ * { path: 'doc3.pdf' }
20
+ * ]);
21
+ *
22
+ * // Extract text from multiple documents in parallel
23
+ * const results = await batch.extractTextBatch({
24
+ * maxParallel: 4,
25
+ * timeout: 30000,
26
+ * onProgress: (progress) => {
27
+ * console.log('Progress: ' + Math.round(progress.progress * 100) + '%');
28
+ * console.log('ETA: ' + progress.eta + 'ms');
29
+ * }
30
+ * });
31
+ *
32
+ * results.forEach(result => {
33
+ * if (result.success) {
34
+ * console.log(result.document.path + ': ' + result.data.length + ' chars');
35
+ * } else {
36
+ * console.error(result.document.path + ': ' + result.error.message);
37
+ * }
38
+ * });
39
+ * ```
40
+ */
41
+ /**
42
+ * Represents a document to be processed in a batch
43
+ */
44
+ export interface BatchDocument {
45
+ /** File path to the PDF document */
46
+ path: string;
47
+ /** Optional unique identifier */
48
+ id?: string;
49
+ /** Priority (1-10, default 5) */
50
+ priority?: number;
51
+ /** Optional metadata */
52
+ metadata?: Record<string, any>;
53
+ }
54
+ /**
55
+ * Progress information for batch operations
56
+ */
57
+ export interface BatchProgress {
58
+ /** Total documents in batch */
59
+ total: number;
60
+ /** Number of successfully completed documents */
61
+ completed: number;
62
+ /** Number of failed documents */
63
+ failed: number;
64
+ /** Current document being processed (index) */
65
+ current: number;
66
+ /** Progress percentage (0.0-1.0) */
67
+ progress: number;
68
+ /** Estimated time remaining in milliseconds */
69
+ eta: number;
70
+ /** Number of currently active operations */
71
+ activeOperations: number;
72
+ /** Batch start time (milliseconds since epoch) */
73
+ startTime: number;
74
+ /** Elapsed time since start (milliseconds) */
75
+ elapsedTime: number;
76
+ }
77
+ /**
78
+ * Result of processing a single document in a batch
79
+ */
80
+ export interface BatchResult<T = any> {
81
+ /** The document that was processed */
82
+ document: BatchDocument;
83
+ /** Whether the operation succeeded */
84
+ success: boolean;
85
+ /** The result data if successful */
86
+ data?: T;
87
+ /** Error if operation failed */
88
+ error?: Error;
89
+ /** Time to process this document (milliseconds) */
90
+ duration: number;
91
+ }
92
+ /**
93
+ * Options for batch processing
94
+ */
95
+ export interface BatchOptions {
96
+ /** Maximum number of parallel operations (default: CPU count) */
97
+ maxParallel?: number;
98
+ /** Timeout per document in milliseconds (default: 30000) */
99
+ timeout?: number;
100
+ /** Progress callback invoked on each document completion */
101
+ onProgress?: (progress: BatchProgress) => void;
102
+ /** Backpressure configuration for memory management */
103
+ backpressure?: {
104
+ /** Maximum memory usage in MB (default: 500) */
105
+ maxMemoryMB?: number;
106
+ /** Interval to check memory in ms (default: 1000) */
107
+ checkInterval?: number;
108
+ };
109
+ }
110
+ /**
111
+ * Statistics for completed batch operations
112
+ */
113
+ export interface BatchStatistics {
114
+ /** Total documents processed */
115
+ total: number;
116
+ /** Successfully completed documents */
117
+ completed: number;
118
+ /** Failed documents */
119
+ failed: number;
120
+ /** Total time elapsed (milliseconds) */
121
+ totalTime: number;
122
+ /** Average time per document (milliseconds) */
123
+ averageTime: number;
124
+ /** Documents per second throughput */
125
+ throughput: number;
126
+ /** Peak memory usage (MB) */
127
+ peakMemory: number;
128
+ }
129
+ /**
130
+ * Batch processor for parallel document operations
131
+ */
132
+ export declare class BatchManager {
133
+ private documents;
134
+ private stats;
135
+ /**
136
+ * Creates a new BatchManager
137
+ * @param documents - Array of documents to process
138
+ * @throws Error if documents array is empty or invalid
139
+ */
140
+ constructor(documents: BatchDocument[]);
141
+ /**
142
+ * Get current statistics
143
+ */
144
+ getStatistics(): BatchStatistics;
145
+ /**
146
+ * Process documents in a queue with concurrency control
147
+ * @private
148
+ */
149
+ private processQueue;
150
+ /**
151
+ * Extract text from multiple documents in parallel
152
+ * @param options - Batch processing options
153
+ * @returns Array of extraction results
154
+ */
155
+ extractTextBatch(options?: BatchOptions): Promise<BatchResult<string>[]>;
156
+ /**
157
+ * Extract markdown from multiple documents in parallel
158
+ * @param options - Batch processing options
159
+ * @returns Array of extraction results
160
+ */
161
+ extractMarkdownBatch(options?: BatchOptions): Promise<BatchResult<string>[]>;
162
+ /**
163
+ * Extract HTML from multiple documents in parallel
164
+ * @param options - Batch processing options
165
+ * @returns Array of extraction results
166
+ */
167
+ extractHtmlBatch(options?: BatchOptions): Promise<BatchResult<string>[]>;
168
+ /**
169
+ * Search for a term in multiple documents in parallel
170
+ * @param searchTerm - Term to search for
171
+ * @param options - Batch processing options
172
+ * @returns Array of search results
173
+ */
174
+ searchBatch(searchTerm: string, options?: BatchOptions): Promise<BatchResult<Array<{
175
+ page: number;
176
+ count: number;
177
+ }>>[]>;
178
+ /**
179
+ * Generic batch processor for custom operations
180
+ * @param processor - Function to process each document
181
+ * @param options - Batch processing options
182
+ * @returns Array of results
183
+ */
184
+ processBatch<T>(processor: (doc: BatchDocument, pdfDoc: any) => Promise<T>, options?: BatchOptions): Promise<BatchResult<T>[]>;
185
+ }
186
+ //# sourceMappingURL=batch-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-manager.d.ts","sourceRoot":"","sources":["../../src/managers/batch-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAKH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,gBAAgB,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,sCAAsC;IACtC,QAAQ,EAAE,aAAa,CAAC;IACxB,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,gCAAgC;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,uDAAuD;IACvD,YAAY,CAAC,EAAE;QACb,gDAAgD;QAChD,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,qDAAqD;QACrD,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,KAAK,CAQX;IAEF;;;;OAIG;gBACS,SAAS,EAAE,aAAa,EAAE;IAetC;;OAEG;IACH,aAAa,IAAI,eAAe;IAIhC;;;OAGG;YACW,YAAY;IAiI1B;;;;OAIG;IACG,gBAAgB,CACpB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAgCjC;;;;OAIG;IACG,oBAAoB,CACxB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAwCjC;;;;OAIG;IACG,gBAAgB,CACpB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IAwCjC;;;;;OAKG;IACG,WAAW,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,EAAE,CAAC;IA2CjE;;;;;OAKG;IACG,YAAY,CAAC,CAAC,EAClB,SAAS,EAAE,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EAC1D,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;CA0B7B"}
@@ -0,0 +1,389 @@
1
+ /**
2
+ * Batch Processing Manager for Parallel Document Operations
3
+ *
4
+ * Enables efficient parallel processing of multiple PDF documents with:
5
+ * - Configurable concurrency control
6
+ * - Real-time progress tracking with ETA calculation
7
+ * - Memory-aware backpressure handling
8
+ * - Per-document timeout support
9
+ * - Error resilience and detailed reporting
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { BatchManager } from 'pdf-oxide';
14
+ * import { PdfDocument } from 'pdf-oxide';
15
+ *
16
+ * const batch = new BatchManager([
17
+ * { path: 'doc1.pdf' },
18
+ * { path: 'doc2.pdf' },
19
+ * { path: 'doc3.pdf' }
20
+ * ]);
21
+ *
22
+ * // Extract text from multiple documents in parallel
23
+ * const results = await batch.extractTextBatch({
24
+ * maxParallel: 4,
25
+ * timeout: 30000,
26
+ * onProgress: (progress) => {
27
+ * console.log('Progress: ' + Math.round(progress.progress * 100) + '%');
28
+ * console.log('ETA: ' + progress.eta + 'ms');
29
+ * }
30
+ * });
31
+ *
32
+ * results.forEach(result => {
33
+ * if (result.success) {
34
+ * console.log(result.document.path + ': ' + result.data.length + ' chars');
35
+ * } else {
36
+ * console.error(result.document.path + ': ' + result.error.message);
37
+ * }
38
+ * });
39
+ * ```
40
+ */
41
+ import os from 'os';
42
+ /**
43
+ * Batch processor for parallel document operations
44
+ */
45
+ export class BatchManager {
46
+ /**
47
+ * Creates a new BatchManager
48
+ * @param documents - Array of documents to process
49
+ * @throws Error if documents array is empty or invalid
50
+ */
51
+ constructor(documents) {
52
+ this.stats = {
53
+ total: 0,
54
+ completed: 0,
55
+ failed: 0,
56
+ totalTime: 0,
57
+ averageTime: 0,
58
+ throughput: 0,
59
+ peakMemory: 0,
60
+ };
61
+ if (!Array.isArray(documents) || documents.length === 0) {
62
+ throw new Error('Documents array must not be empty');
63
+ }
64
+ for (const doc of documents) {
65
+ if (!doc.path || typeof doc.path !== 'string') {
66
+ throw new Error('Each document must have a valid path property');
67
+ }
68
+ }
69
+ this.documents = documents;
70
+ this.stats.total = documents.length;
71
+ }
72
+ /**
73
+ * Get current statistics
74
+ */
75
+ getStatistics() {
76
+ return { ...this.stats };
77
+ }
78
+ /**
79
+ * Process documents in a queue with concurrency control
80
+ * @private
81
+ */
82
+ async processQueue(processor, options = {}) {
83
+ const maxParallel = options.maxParallel || os.cpus().length;
84
+ const timeout = options.timeout || 30000;
85
+ const backpressure = options.backpressure || {
86
+ maxMemoryMB: 500,
87
+ checkInterval: 1000,
88
+ };
89
+ const results = [];
90
+ const startTime = Date.now();
91
+ let completed = 0;
92
+ let failed = 0;
93
+ let active = 0;
94
+ // Progress tracking helper
95
+ const reportProgress = () => {
96
+ const elapsedTime = Date.now() - startTime;
97
+ const completedDocs = completed + failed;
98
+ const avgTimePerDoc = completedDocs > 0 ? elapsedTime / completedDocs : 0;
99
+ const eta = completedDocs > 0
100
+ ? (this.documents.length - completedDocs) * avgTimePerDoc
101
+ : 0;
102
+ if (options.onProgress) {
103
+ options.onProgress({
104
+ total: this.documents.length,
105
+ completed,
106
+ failed,
107
+ current: completedDocs,
108
+ progress: this.documents.length > 0 ? completedDocs / this.documents.length : 0,
109
+ eta: Math.max(0, eta),
110
+ activeOperations: active,
111
+ startTime,
112
+ elapsedTime,
113
+ });
114
+ }
115
+ };
116
+ // Memory monitoring helper
117
+ const checkMemory = async () => {
118
+ const memUsageMB = process.memoryUsage().heapUsed / 1024 / 1024;
119
+ this.stats.peakMemory = Math.max(this.stats.peakMemory, memUsageMB);
120
+ if (memUsageMB > (backpressure.maxMemoryMB || 500)) {
121
+ // Wait a bit for garbage collection
122
+ await new Promise((resolve) => setTimeout(resolve, 100));
123
+ }
124
+ };
125
+ // Process all documents with concurrency control
126
+ let index = 0;
127
+ const queue = [];
128
+ while (index < this.documents.length || queue.length > 0) {
129
+ // Check memory before starting new operations
130
+ await checkMemory();
131
+ // Start new operations while under concurrency limit
132
+ while (active < maxParallel && index < this.documents.length) {
133
+ const docIndex = index++;
134
+ const doc = this.documents[docIndex];
135
+ active++;
136
+ const promise = (async () => {
137
+ const docStartTime = Date.now();
138
+ try {
139
+ const result = await Promise.race([
140
+ processor(doc, docIndex),
141
+ new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout after ' + timeout + 'ms')), timeout)),
142
+ ]);
143
+ result.duration = Date.now() - docStartTime;
144
+ results[docIndex] = result;
145
+ if (result.success) {
146
+ completed++;
147
+ }
148
+ else {
149
+ failed++;
150
+ }
151
+ }
152
+ catch (error) {
153
+ const duration = Date.now() - docStartTime;
154
+ results[docIndex] = {
155
+ document: doc,
156
+ success: false,
157
+ error: error instanceof Error ? error : new Error(String(error)),
158
+ duration,
159
+ };
160
+ failed++;
161
+ }
162
+ finally {
163
+ active--;
164
+ reportProgress();
165
+ }
166
+ })();
167
+ queue.push(promise);
168
+ }
169
+ // Wait for at least one operation to complete
170
+ if (queue.length > 0) {
171
+ await Promise.race(queue);
172
+ const idx = queue.findIndex((p) => p !== undefined);
173
+ if (idx >= 0) {
174
+ queue.splice(idx, 1);
175
+ }
176
+ }
177
+ }
178
+ // Update final statistics
179
+ const totalTime = Date.now() - startTime;
180
+ this.stats.totalTime = totalTime;
181
+ this.stats.completed = completed;
182
+ this.stats.failed = failed;
183
+ this.stats.averageTime =
184
+ completed > 0 ? totalTime / completed : 0;
185
+ this.stats.throughput = totalTime > 0 ? (completed / totalTime) * 1000 : 0;
186
+ return results.filter((r) => r !== undefined);
187
+ }
188
+ /**
189
+ * Extract text from multiple documents in parallel
190
+ * @param options - Batch processing options
191
+ * @returns Array of extraction results
192
+ */
193
+ async extractTextBatch(options = {}) {
194
+ return this.processQueue(async (doc, _index) => {
195
+ try {
196
+ // Dynamic import to avoid circular dependencies
197
+ const { PdfDocument } = await import('../index.js');
198
+ const pdfDoc = PdfDocument.open(doc.path);
199
+ const extractionMgr = pdfDoc.createExtractionManager?.();
200
+ if (!extractionMgr) {
201
+ throw new Error('Failed to create extraction manager');
202
+ }
203
+ const text = extractionMgr.extractAllText();
204
+ if (typeof pdfDoc.close === 'function') {
205
+ pdfDoc.close();
206
+ }
207
+ return {
208
+ document: doc,
209
+ success: true,
210
+ data: text,
211
+ duration: 0,
212
+ };
213
+ }
214
+ catch (error) {
215
+ return {
216
+ document: doc,
217
+ success: false,
218
+ error: error instanceof Error ? error : new Error(String(error)),
219
+ duration: 0,
220
+ };
221
+ }
222
+ }, options);
223
+ }
224
+ /**
225
+ * Extract markdown from multiple documents in parallel
226
+ * @param options - Batch processing options
227
+ * @returns Array of extraction results
228
+ */
229
+ async extractMarkdownBatch(options = {}) {
230
+ return this.processQueue(async (doc, _index) => {
231
+ try {
232
+ const { PdfDocument } = await import('../index.js');
233
+ const pdfDoc = PdfDocument.open(doc.path);
234
+ const extractionMgr = pdfDoc.createExtractionManager?.();
235
+ if (!extractionMgr) {
236
+ throw new Error('Failed to create extraction manager');
237
+ }
238
+ // Extract markdown from all pages
239
+ let markdown = '';
240
+ const pageCount = pdfDoc.pageCount || 0;
241
+ for (let i = 0; i < pageCount; i++) {
242
+ markdown += extractionMgr.extractMarkdown(i) || '';
243
+ if (i < pageCount - 1) {
244
+ markdown += '\n\n---\n\n';
245
+ }
246
+ }
247
+ if (typeof pdfDoc.close === 'function') {
248
+ pdfDoc.close();
249
+ }
250
+ return {
251
+ document: doc,
252
+ success: true,
253
+ data: markdown,
254
+ duration: 0,
255
+ };
256
+ }
257
+ catch (error) {
258
+ return {
259
+ document: doc,
260
+ success: false,
261
+ error: error instanceof Error ? error : new Error(String(error)),
262
+ duration: 0,
263
+ };
264
+ }
265
+ }, options);
266
+ }
267
+ /**
268
+ * Extract HTML from multiple documents in parallel
269
+ * @param options - Batch processing options
270
+ * @returns Array of extraction results
271
+ */
272
+ async extractHtmlBatch(options = {}) {
273
+ return this.processQueue(async (doc, _index) => {
274
+ try {
275
+ const { PdfDocument } = await import('../index.js');
276
+ const pdfDoc = PdfDocument.open(doc.path);
277
+ const extractionMgr = pdfDoc.createExtractionManager?.();
278
+ if (!extractionMgr) {
279
+ throw new Error('Failed to create extraction manager');
280
+ }
281
+ // Extract HTML from all pages
282
+ let html = '<html><body>';
283
+ const pageCount = pdfDoc.pageCount || 0;
284
+ for (let i = 0; i < pageCount; i++) {
285
+ html += '<div class="page page-' + (i + 1) + '">';
286
+ html += extractionMgr.extractHtml(i) || '';
287
+ html += '</div>';
288
+ }
289
+ html += '</body></html>';
290
+ if (typeof pdfDoc.close === 'function') {
291
+ pdfDoc.close();
292
+ }
293
+ return {
294
+ document: doc,
295
+ success: true,
296
+ data: html,
297
+ duration: 0,
298
+ };
299
+ }
300
+ catch (error) {
301
+ return {
302
+ document: doc,
303
+ success: false,
304
+ error: error instanceof Error ? error : new Error(String(error)),
305
+ duration: 0,
306
+ };
307
+ }
308
+ }, options);
309
+ }
310
+ /**
311
+ * Search for a term in multiple documents in parallel
312
+ * @param searchTerm - Term to search for
313
+ * @param options - Batch processing options
314
+ * @returns Array of search results
315
+ */
316
+ async searchBatch(searchTerm, options = {}) {
317
+ if (!searchTerm || typeof searchTerm !== 'string') {
318
+ throw new Error('Search term must be a non-empty string');
319
+ }
320
+ return this.processQueue(async (doc, _index) => {
321
+ try {
322
+ const { PdfDocument } = await import('../index.js');
323
+ const pdfDoc = PdfDocument.open(doc.path);
324
+ const searchMgr = pdfDoc.createSearchManager?.();
325
+ if (!searchMgr) {
326
+ throw new Error('Failed to create search manager');
327
+ }
328
+ const results = [];
329
+ const pageCount = pdfDoc.pageCount || 0;
330
+ for (let i = 0; i < pageCount; i++) {
331
+ const matches = searchMgr.search(searchTerm, i) || [];
332
+ if (matches.length > 0) {
333
+ results.push({ page: i, count: matches.length });
334
+ }
335
+ }
336
+ if (typeof pdfDoc.close === 'function') {
337
+ pdfDoc.close();
338
+ }
339
+ return {
340
+ document: doc,
341
+ success: true,
342
+ data: results,
343
+ duration: 0,
344
+ };
345
+ }
346
+ catch (error) {
347
+ return {
348
+ document: doc,
349
+ success: false,
350
+ error: error instanceof Error ? error : new Error(String(error)),
351
+ duration: 0,
352
+ };
353
+ }
354
+ }, options);
355
+ }
356
+ /**
357
+ * Generic batch processor for custom operations
358
+ * @param processor - Function to process each document
359
+ * @param options - Batch processing options
360
+ * @returns Array of results
361
+ */
362
+ async processBatch(processor, options = {}) {
363
+ return this.processQueue(async (doc, _index) => {
364
+ try {
365
+ const { PdfDocument } = await import('../index.js');
366
+ const pdfDoc = PdfDocument.open(doc.path);
367
+ const data = await processor(doc, pdfDoc);
368
+ if (typeof pdfDoc.close === 'function') {
369
+ pdfDoc.close();
370
+ }
371
+ return {
372
+ document: doc,
373
+ success: true,
374
+ data,
375
+ duration: 0,
376
+ };
377
+ }
378
+ catch (error) {
379
+ return {
380
+ document: doc,
381
+ success: false,
382
+ error: error instanceof Error ? error : new Error(String(error)),
383
+ duration: 0,
384
+ };
385
+ }
386
+ }, options);
387
+ }
388
+ }
389
+ //# sourceMappingURL=batch-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-manager.js","sourceRoot":"","sources":["../../src/managers/batch-manager.ts"],"names":[],"mappings":"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"}