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,193 @@
1
+ /**
2
+ * EnterpriseManager - Enterprise PDF Operations
3
+ *
4
+ * Provides enterprise-level PDF operations including:
5
+ * - Bates numbering (standard and advanced)
6
+ * - Page-level and document-level comparison
7
+ * - Header and footer stamping
8
+ *
9
+ * @since 1.0.0
10
+ */
11
+ import { EventEmitter } from 'events';
12
+ /**
13
+ * Position for Bates number placement.
14
+ */
15
+ export declare enum BatesPosition {
16
+ TOP_LEFT = 0,
17
+ TOP_CENTER = 1,
18
+ TOP_RIGHT = 2,
19
+ BOTTOM_LEFT = 3,
20
+ BOTTOM_CENTER = 4,
21
+ BOTTOM_RIGHT = 5
22
+ }
23
+ /**
24
+ * Text alignment for header/footer stamps.
25
+ */
26
+ export declare enum StampAlignment {
27
+ LEFT = 0,
28
+ CENTER = 1,
29
+ RIGHT = 2
30
+ }
31
+ /**
32
+ * Types of differences found in page comparison.
33
+ */
34
+ export declare enum DifferenceType {
35
+ TEXT_ADDED = 0,
36
+ TEXT_REMOVED = 1,
37
+ TEXT_CHANGED = 2,
38
+ IMAGE_ADDED = 3,
39
+ IMAGE_REMOVED = 4,
40
+ IMAGE_CHANGED = 5,
41
+ LAYOUT_CHANGED = 6,
42
+ ANNOTATION_CHANGED = 7
43
+ }
44
+ /**
45
+ * A single difference found between two pages.
46
+ */
47
+ export interface Difference {
48
+ /** Type of difference */
49
+ readonly type: DifferenceType;
50
+ /** Description of the difference */
51
+ readonly description: string;
52
+ /** Page region where the difference was found (x, y, width, height) */
53
+ readonly bounds?: {
54
+ x: number;
55
+ y: number;
56
+ width: number;
57
+ height: number;
58
+ };
59
+ }
60
+ /**
61
+ * Result of comparing two pages.
62
+ */
63
+ export interface PageComparisonResult {
64
+ /** Similarity score (0.0 - 1.0, where 1.0 means identical) */
65
+ readonly similarity: number;
66
+ /** Number of differences found */
67
+ readonly diffCount: number;
68
+ /** List of differences */
69
+ readonly differences: readonly Difference[];
70
+ }
71
+ /**
72
+ * Result of comparing two documents.
73
+ */
74
+ export interface DocumentComparisonResult {
75
+ /** Overall similarity score (0.0 - 1.0) */
76
+ readonly similarity: number;
77
+ /** Per-page comparison results */
78
+ readonly pageResults: readonly PageComparisonResult[];
79
+ /** Number of pages in document A */
80
+ readonly pagesA: number;
81
+ /** Number of pages in document B */
82
+ readonly pagesB: number;
83
+ /** Total differences found across all pages */
84
+ readonly totalDifferences: number;
85
+ }
86
+ /**
87
+ * Manager for enterprise PDF operations.
88
+ *
89
+ * Provides methods for Bates numbering, document comparison,
90
+ * and header/footer stamping.
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * const enterprise = new EnterpriseManager(document);
95
+ *
96
+ * // Apply Bates numbering
97
+ * await enterprise.applyBates('DOC', 1, 6, BatesPosition.BOTTOM_RIGHT);
98
+ *
99
+ * // Compare pages
100
+ * const result = await enterprise.comparePages(docA, 0, docB, 0);
101
+ * console.log(`Pages are ${(result.similarity * 100).toFixed(1)}% similar`);
102
+ *
103
+ * // Stamp headers and footers
104
+ * await enterprise.stampHeader('CONFIDENTIAL', StampAlignment.CENTER, 12, 36);
105
+ * ```
106
+ */
107
+ export declare class EnterpriseManager extends EventEmitter {
108
+ private document;
109
+ private native;
110
+ constructor(document: any);
111
+ /**
112
+ * Applies Bates numbering to the document.
113
+ *
114
+ * @param prefix - Text prefix before the number (e.g., 'DOC')
115
+ * @param startNumber - Starting number
116
+ * @param numDigits - Number of digits (zero-padded)
117
+ * @param position - Position on the page
118
+ * @throws PdfException if the operation fails
119
+ */
120
+ applyBates(prefix: string, startNumber: number, numDigits: number, position: BatesPosition): Promise<void>;
121
+ /**
122
+ * Applies advanced Bates numbering with full configuration.
123
+ *
124
+ * @param prefix - Text prefix before the number
125
+ * @param suffix - Text suffix after the number
126
+ * @param startNumber - Starting number
127
+ * @param numDigits - Number of digits (zero-padded)
128
+ * @param position - Position on the page
129
+ * @param fontSize - Font size in points
130
+ * @param margin - Margin from page edge in points
131
+ * @param startPage - Starting page index (0-based)
132
+ * @param endPage - Ending page index (0-based, -1 for last page)
133
+ * @throws PdfException if the operation fails
134
+ */
135
+ applyBatesAdvanced(prefix: string, suffix: string, startNumber: number, numDigits: number, position: BatesPosition, fontSize: number, margin: number, startPage: number, endPage: number): Promise<void>;
136
+ /**
137
+ * Compares two pages from potentially different documents.
138
+ *
139
+ * @param docA - First document handle
140
+ * @param pageA - Page index in first document (0-based)
141
+ * @param docB - Second document handle
142
+ * @param pageB - Page index in second document (0-based)
143
+ * @returns Comparison result with similarity score and differences
144
+ * @throws PdfException if the comparison fails
145
+ */
146
+ comparePages(docA: any, pageA: number, docB: any, pageB: number): Promise<PageComparisonResult>;
147
+ /**
148
+ * Compares two entire documents page by page.
149
+ *
150
+ * @param docA - First document handle
151
+ * @param docB - Second document handle
152
+ * @returns Document-level comparison result
153
+ * @throws PdfException if the comparison fails
154
+ */
155
+ compareDocuments(docA: any, docB: any): Promise<DocumentComparisonResult>;
156
+ /**
157
+ * Stamps a header on all pages of the document.
158
+ *
159
+ * @param text - Header text (supports placeholders: {page}, {pages}, {date})
160
+ * @param align - Text alignment
161
+ * @param size - Font size in points
162
+ * @param margin - Top margin in points
163
+ * @throws PdfException if the operation fails
164
+ */
165
+ stampHeader(text: string, align: StampAlignment, size: number, margin: number): Promise<void>;
166
+ /**
167
+ * Stamps a footer on all pages of the document.
168
+ *
169
+ * @param text - Footer text (supports placeholders: {page}, {pages}, {date})
170
+ * @param align - Text alignment
171
+ * @param size - Font size in points
172
+ * @param margin - Bottom margin in points
173
+ * @throws PdfException if the operation fails
174
+ */
175
+ stampFooter(text: string, align: StampAlignment, size: number, margin: number): Promise<void>;
176
+ /**
177
+ * Stamps both header and footer on all pages of the document.
178
+ *
179
+ * @param headerText - Header text
180
+ * @param footerText - Footer text
181
+ * @param align - Text alignment for both
182
+ * @param size - Font size in points
183
+ * @param margin - Margin from page edge in points
184
+ * @throws PdfException if the operation fails
185
+ */
186
+ stampHeaderFooter(headerText: string, footerText: string, align: StampAlignment, size: number, margin: number): Promise<void>;
187
+ /**
188
+ * Releases resources held by this manager.
189
+ */
190
+ destroy(): void;
191
+ }
192
+ export default EnterpriseManager;
193
+ //# sourceMappingURL=enterprise-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprise-manager.d.ts","sourceRoot":"","sources":["../../src/managers/enterprise-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,305 @@
1
+ /**
2
+ * EnterpriseManager - Enterprise PDF Operations
3
+ *
4
+ * Provides enterprise-level PDF operations including:
5
+ * - Bates numbering (standard and advanced)
6
+ * - Page-level and document-level comparison
7
+ * - Header and footer stamping
8
+ *
9
+ * @since 1.0.0
10
+ */
11
+ import { EventEmitter } from 'events';
12
+ import { mapFfiErrorCode, PdfException } from '../errors.js';
13
+ // =============================================================================
14
+ // Enums
15
+ // =============================================================================
16
+ /**
17
+ * Position for Bates number placement.
18
+ */
19
+ export var BatesPosition;
20
+ (function (BatesPosition) {
21
+ BatesPosition[BatesPosition["TOP_LEFT"] = 0] = "TOP_LEFT";
22
+ BatesPosition[BatesPosition["TOP_CENTER"] = 1] = "TOP_CENTER";
23
+ BatesPosition[BatesPosition["TOP_RIGHT"] = 2] = "TOP_RIGHT";
24
+ BatesPosition[BatesPosition["BOTTOM_LEFT"] = 3] = "BOTTOM_LEFT";
25
+ BatesPosition[BatesPosition["BOTTOM_CENTER"] = 4] = "BOTTOM_CENTER";
26
+ BatesPosition[BatesPosition["BOTTOM_RIGHT"] = 5] = "BOTTOM_RIGHT";
27
+ })(BatesPosition || (BatesPosition = {}));
28
+ /**
29
+ * Text alignment for header/footer stamps.
30
+ */
31
+ export var StampAlignment;
32
+ (function (StampAlignment) {
33
+ StampAlignment[StampAlignment["LEFT"] = 0] = "LEFT";
34
+ StampAlignment[StampAlignment["CENTER"] = 1] = "CENTER";
35
+ StampAlignment[StampAlignment["RIGHT"] = 2] = "RIGHT";
36
+ })(StampAlignment || (StampAlignment = {}));
37
+ /**
38
+ * Types of differences found in page comparison.
39
+ */
40
+ export var DifferenceType;
41
+ (function (DifferenceType) {
42
+ DifferenceType[DifferenceType["TEXT_ADDED"] = 0] = "TEXT_ADDED";
43
+ DifferenceType[DifferenceType["TEXT_REMOVED"] = 1] = "TEXT_REMOVED";
44
+ DifferenceType[DifferenceType["TEXT_CHANGED"] = 2] = "TEXT_CHANGED";
45
+ DifferenceType[DifferenceType["IMAGE_ADDED"] = 3] = "IMAGE_ADDED";
46
+ DifferenceType[DifferenceType["IMAGE_REMOVED"] = 4] = "IMAGE_REMOVED";
47
+ DifferenceType[DifferenceType["IMAGE_CHANGED"] = 5] = "IMAGE_CHANGED";
48
+ DifferenceType[DifferenceType["LAYOUT_CHANGED"] = 6] = "LAYOUT_CHANGED";
49
+ DifferenceType[DifferenceType["ANNOTATION_CHANGED"] = 7] = "ANNOTATION_CHANGED";
50
+ })(DifferenceType || (DifferenceType = {}));
51
+ // =============================================================================
52
+ // EnterpriseManager
53
+ // =============================================================================
54
+ /**
55
+ * Manager for enterprise PDF operations.
56
+ *
57
+ * Provides methods for Bates numbering, document comparison,
58
+ * and header/footer stamping.
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * const enterprise = new EnterpriseManager(document);
63
+ *
64
+ * // Apply Bates numbering
65
+ * await enterprise.applyBates('DOC', 1, 6, BatesPosition.BOTTOM_RIGHT);
66
+ *
67
+ * // Compare pages
68
+ * const result = await enterprise.comparePages(docA, 0, docB, 0);
69
+ * console.log(`Pages are ${(result.similarity * 100).toFixed(1)}% similar`);
70
+ *
71
+ * // Stamp headers and footers
72
+ * await enterprise.stampHeader('CONFIDENTIAL', StampAlignment.CENTER, 12, 36);
73
+ * ```
74
+ */
75
+ export class EnterpriseManager extends EventEmitter {
76
+ constructor(document) {
77
+ super();
78
+ if (!document) {
79
+ throw new Error('Document cannot be null or undefined');
80
+ }
81
+ this.document = document;
82
+ try {
83
+ this.native = require('../../index.node');
84
+ }
85
+ catch {
86
+ this.native = null;
87
+ }
88
+ }
89
+ // ===========================================================================
90
+ // Bates Numbering
91
+ // ===========================================================================
92
+ /**
93
+ * Applies Bates numbering to the document.
94
+ *
95
+ * @param prefix - Text prefix before the number (e.g., 'DOC')
96
+ * @param startNumber - Starting number
97
+ * @param numDigits - Number of digits (zero-padded)
98
+ * @param position - Position on the page
99
+ * @throws PdfException if the operation fails
100
+ */
101
+ async applyBates(prefix, startNumber, numDigits, position) {
102
+ if (!this.native?.pdf_bates_apply) {
103
+ throw new PdfException('9900', 'Native enterprise not available: pdf_bates_apply not found');
104
+ }
105
+ const errorCode = Buffer.alloc(4);
106
+ this.native.pdf_bates_apply(this.document._handle ?? this.document, prefix, startNumber, numDigits, position, errorCode);
107
+ const code = errorCode.readInt32LE(0);
108
+ if (code !== 0) {
109
+ throw mapFfiErrorCode(code, 'Failed to apply Bates numbering');
110
+ }
111
+ this.emit('bates-applied', { prefix, startNumber, numDigits, position });
112
+ }
113
+ /**
114
+ * Applies advanced Bates numbering with full configuration.
115
+ *
116
+ * @param prefix - Text prefix before the number
117
+ * @param suffix - Text suffix after the number
118
+ * @param startNumber - Starting number
119
+ * @param numDigits - Number of digits (zero-padded)
120
+ * @param position - Position on the page
121
+ * @param fontSize - Font size in points
122
+ * @param margin - Margin from page edge in points
123
+ * @param startPage - Starting page index (0-based)
124
+ * @param endPage - Ending page index (0-based, -1 for last page)
125
+ * @throws PdfException if the operation fails
126
+ */
127
+ async applyBatesAdvanced(prefix, suffix, startNumber, numDigits, position, fontSize, margin, startPage, endPage) {
128
+ if (!this.native?.pdf_bates_apply_advanced) {
129
+ throw new PdfException('9900', 'Native enterprise not available: pdf_bates_apply_advanced not found');
130
+ }
131
+ const errorCode = Buffer.alloc(4);
132
+ this.native.pdf_bates_apply_advanced(this.document._handle ?? this.document, prefix, suffix, startNumber, numDigits, position, fontSize, margin, startPage, endPage, errorCode);
133
+ const code = errorCode.readInt32LE(0);
134
+ if (code !== 0) {
135
+ throw mapFfiErrorCode(code, 'Failed to apply advanced Bates numbering');
136
+ }
137
+ this.emit('bates-applied-advanced', { prefix, suffix, startNumber, numDigits, position });
138
+ }
139
+ // ===========================================================================
140
+ // Document Comparison
141
+ // ===========================================================================
142
+ /**
143
+ * Compares two pages from potentially different documents.
144
+ *
145
+ * @param docA - First document handle
146
+ * @param pageA - Page index in first document (0-based)
147
+ * @param docB - Second document handle
148
+ * @param pageB - Page index in second document (0-based)
149
+ * @returns Comparison result with similarity score and differences
150
+ * @throws PdfException if the comparison fails
151
+ */
152
+ async comparePages(docA, pageA, docB, pageB) {
153
+ if (!this.native?.pdf_compare_pages) {
154
+ throw new PdfException('9900', 'Native enterprise not available: pdf_compare_pages not found');
155
+ }
156
+ const errorCode = Buffer.alloc(4);
157
+ const comparisonPtr = this.native.pdf_compare_pages(docA._handle ?? docA, pageA, docB._handle ?? docB, pageB, errorCode);
158
+ const code = errorCode.readInt32LE(0);
159
+ if (code !== 0) {
160
+ throw mapFfiErrorCode(code, 'Failed to compare pages');
161
+ }
162
+ try {
163
+ const similarity = this.native.pdf_comparison_get_similarity?.(comparisonPtr) ?? 0;
164
+ const diffCount = this.native.pdf_comparison_get_diff_count?.(comparisonPtr) ?? 0;
165
+ const differences = [];
166
+ for (let i = 0; i < diffCount; i++) {
167
+ const diffPtr = this.native.pdf_comparison_get_diff?.(comparisonPtr, i);
168
+ if (diffPtr) {
169
+ const diffType = this.native.pdf_comparison_get_diff_type?.(diffPtr) ?? 0;
170
+ differences.push({
171
+ type: diffType,
172
+ description: `Difference ${i + 1}`,
173
+ });
174
+ }
175
+ }
176
+ const result = { similarity, diffCount, differences };
177
+ this.emit('pages-compared', { pageA, pageB, similarity });
178
+ return result;
179
+ }
180
+ finally {
181
+ if (this.native.pdf_comparison_free) {
182
+ this.native.pdf_comparison_free(comparisonPtr);
183
+ }
184
+ }
185
+ }
186
+ /**
187
+ * Compares two entire documents page by page.
188
+ *
189
+ * @param docA - First document handle
190
+ * @param docB - Second document handle
191
+ * @returns Document-level comparison result
192
+ * @throws PdfException if the comparison fails
193
+ */
194
+ async compareDocuments(docA, docB) {
195
+ if (!this.native?.pdf_compare_documents) {
196
+ throw new PdfException('9900', 'Native enterprise not available: pdf_compare_documents not found');
197
+ }
198
+ const errorCode = Buffer.alloc(4);
199
+ const resultPtr = this.native.pdf_compare_documents(docA._handle ?? docA, docB._handle ?? docB, errorCode);
200
+ const code = errorCode.readInt32LE(0);
201
+ if (code !== 0) {
202
+ throw mapFfiErrorCode(code, 'Failed to compare documents');
203
+ }
204
+ try {
205
+ let result;
206
+ if (typeof resultPtr === 'string') {
207
+ result = JSON.parse(resultPtr);
208
+ }
209
+ else {
210
+ result = resultPtr ?? {
211
+ similarity: 0,
212
+ pageResults: [],
213
+ pagesA: 0,
214
+ pagesB: 0,
215
+ totalDifferences: 0,
216
+ };
217
+ }
218
+ this.emit('documents-compared', { similarity: result.similarity, totalDifferences: result.totalDifferences });
219
+ return result;
220
+ }
221
+ finally {
222
+ if (this.native.pdf_document_comparison_free && typeof resultPtr !== 'string') {
223
+ this.native.pdf_document_comparison_free(resultPtr);
224
+ }
225
+ }
226
+ }
227
+ // ===========================================================================
228
+ // Header / Footer Stamping
229
+ // ===========================================================================
230
+ /**
231
+ * Stamps a header on all pages of the document.
232
+ *
233
+ * @param text - Header text (supports placeholders: {page}, {pages}, {date})
234
+ * @param align - Text alignment
235
+ * @param size - Font size in points
236
+ * @param margin - Top margin in points
237
+ * @throws PdfException if the operation fails
238
+ */
239
+ async stampHeader(text, align, size, margin) {
240
+ if (!this.native?.pdf_stamp_header) {
241
+ throw new PdfException('9900', 'Native enterprise not available: pdf_stamp_header not found');
242
+ }
243
+ const errorCode = Buffer.alloc(4);
244
+ this.native.pdf_stamp_header(this.document._handle ?? this.document, text, align, size, margin, errorCode);
245
+ const code = errorCode.readInt32LE(0);
246
+ if (code !== 0) {
247
+ throw mapFfiErrorCode(code, 'Failed to stamp header');
248
+ }
249
+ this.emit('header-stamped', { text, align, size, margin });
250
+ }
251
+ /**
252
+ * Stamps a footer on all pages of the document.
253
+ *
254
+ * @param text - Footer text (supports placeholders: {page}, {pages}, {date})
255
+ * @param align - Text alignment
256
+ * @param size - Font size in points
257
+ * @param margin - Bottom margin in points
258
+ * @throws PdfException if the operation fails
259
+ */
260
+ async stampFooter(text, align, size, margin) {
261
+ if (!this.native?.pdf_stamp_footer) {
262
+ throw new PdfException('9900', 'Native enterprise not available: pdf_stamp_footer not found');
263
+ }
264
+ const errorCode = Buffer.alloc(4);
265
+ this.native.pdf_stamp_footer(this.document._handle ?? this.document, text, align, size, margin, errorCode);
266
+ const code = errorCode.readInt32LE(0);
267
+ if (code !== 0) {
268
+ throw mapFfiErrorCode(code, 'Failed to stamp footer');
269
+ }
270
+ this.emit('footer-stamped', { text, align, size, margin });
271
+ }
272
+ /**
273
+ * Stamps both header and footer on all pages of the document.
274
+ *
275
+ * @param headerText - Header text
276
+ * @param footerText - Footer text
277
+ * @param align - Text alignment for both
278
+ * @param size - Font size in points
279
+ * @param margin - Margin from page edge in points
280
+ * @throws PdfException if the operation fails
281
+ */
282
+ async stampHeaderFooter(headerText, footerText, align, size, margin) {
283
+ if (!this.native?.pdf_stamp_header_footer) {
284
+ throw new PdfException('9900', 'Native enterprise not available: pdf_stamp_header_footer not found');
285
+ }
286
+ const errorCode = Buffer.alloc(4);
287
+ this.native.pdf_stamp_header_footer(this.document._handle ?? this.document, headerText, footerText, align, size, margin, errorCode);
288
+ const code = errorCode.readInt32LE(0);
289
+ if (code !== 0) {
290
+ throw mapFfiErrorCode(code, 'Failed to stamp header and footer');
291
+ }
292
+ this.emit('header-footer-stamped', { headerText, footerText, align, size, margin });
293
+ }
294
+ // ===========================================================================
295
+ // Cleanup
296
+ // ===========================================================================
297
+ /**
298
+ * Releases resources held by this manager.
299
+ */
300
+ destroy() {
301
+ this.removeAllListeners();
302
+ }
303
+ }
304
+ export default EnterpriseManager;
305
+ //# sourceMappingURL=enterprise-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprise-manager.js","sourceRoot":"","sources":["../../src/managers/enterprise-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ import { EventEmitter } from 'events';
2
+ /**
3
+ * Phase 6: Extended Managers and Utilities
4
+ * - Document Extensions (25) + Performance (15) + Batch Processing (12) + Utilities (18) = 70 Functions
5
+ */
6
+ export interface DocumentMetadata {
7
+ title?: string;
8
+ author?: string;
9
+ subject?: string;
10
+ keywords?: string;
11
+ creator?: string;
12
+ producer?: string;
13
+ creationDate?: string;
14
+ modificationDate?: string;
15
+ pages: number;
16
+ encrypted: boolean;
17
+ }
18
+ export interface PerformanceMetrics {
19
+ operation: string;
20
+ durationMs: number;
21
+ memoryUsedKb: number;
22
+ itemsProcessed: number;
23
+ throughputPerSec: number;
24
+ }
25
+ export interface BatchJob {
26
+ jobId: string;
27
+ filePath: string;
28
+ operation: string;
29
+ status: 'pending' | 'processing' | 'completed' | 'failed' | 'cancelled';
30
+ progress: number;
31
+ errorMessage?: string;
32
+ }
33
+ export interface ExtractionResult {
34
+ success: boolean;
35
+ data?: string;
36
+ format: 'text' | 'json' | 'xml' | 'csv';
37
+ byteSize: number;
38
+ extractionTimeMs: number;
39
+ }
40
+ export declare class DocumentExtendedManager extends EventEmitter {
41
+ private document;
42
+ private metadataCache;
43
+ constructor(document: any);
44
+ getDocumentTitle(): Promise<string | null>;
45
+ setDocumentTitle(title: string): Promise<boolean>;
46
+ getDocumentAuthor(): Promise<string | null>;
47
+ setDocumentAuthor(author: string): Promise<boolean>;
48
+ getDocumentSubject(): Promise<string | null>;
49
+ setDocumentSubject(subject: string): Promise<boolean>;
50
+ getDocumentKeywords(): Promise<string | null>;
51
+ setDocumentKeywords(keywords: string): Promise<boolean>;
52
+ getDocumentCreator(): Promise<string | null>;
53
+ getDocumentProducer(): Promise<string | null>;
54
+ getDocumentCreationDate(): Promise<string | null>;
55
+ getDocumentModificationDate(): Promise<string | null>;
56
+ isDocumentEncrypted(): Promise<boolean>;
57
+ getEncryptionLevel(): Promise<string | null>;
58
+ isDocumentUserProtected(): Promise<boolean>;
59
+ isDocumentOwnerProtected(): Promise<boolean>;
60
+ getDocumentSize(): Promise<number>;
61
+ getPageMediaBox(pageIndex: number): Promise<[number, number, number, number] | null>;
62
+ getPageCropBox(pageIndex: number): Promise<[number, number, number, number] | null>;
63
+ getPageRotation(pageIndex: number): Promise<number>;
64
+ setPageRotation(pageIndex: number, rotation: number): Promise<boolean>;
65
+ getPageCount(): Promise<number>;
66
+ getDocumentMetadata(): Promise<DocumentMetadata | null>;
67
+ }
68
+ export declare class PerformanceManager extends EventEmitter {
69
+ private document;
70
+ private metrics;
71
+ constructor(document: any);
72
+ startTimer(operationName: string): Promise<string>;
73
+ stopTimer(timerId: string): Promise<PerformanceMetrics | null>;
74
+ getOperationTime(operation: string): Promise<number | null>;
75
+ getMemoryUsage(): Promise<number>;
76
+ enableCaching(): Promise<boolean>;
77
+ disableCaching(): Promise<boolean>;
78
+ clearCache(): Promise<boolean>;
79
+ getCacheSize(): Promise<number>;
80
+ setCacheLimit(limitMb: number): Promise<boolean>;
81
+ getMetrics(): Promise<PerformanceMetrics[]>;
82
+ resetMetrics(): Promise<boolean>;
83
+ optimizeDocument(): Promise<boolean>;
84
+ getOptimizationReport(): Promise<Record<string, any> | null>;
85
+ enableLogging(level: string): Promise<boolean>;
86
+ disableLogging(): Promise<boolean>;
87
+ }
88
+ export declare class BatchProcessingManager extends EventEmitter {
89
+ private jobs;
90
+ constructor();
91
+ createBatchJob(jobId: string, filePath: string, operation: string): Promise<BatchJob | null>;
92
+ submitBatchJob(jobId: string): Promise<boolean>;
93
+ getBatchJobStatus(jobId: string): Promise<string | null>;
94
+ getBatchJobProgress(jobId: string): Promise<number>;
95
+ cancelBatchJob(jobId: string): Promise<boolean>;
96
+ waitForBatchJob(jobId: string, timeoutSec?: number): Promise<boolean>;
97
+ getBatchJobResult(jobId: string): Promise<string | null>;
98
+ listBatchJobs(status?: string): Promise<BatchJob[]>;
99
+ clearBatchJobs(completedOnly?: boolean): Promise<number>;
100
+ processBatch(files: string[], operation: string): Promise<string[]>;
101
+ getBatchResults(jobIds: string[]): Promise<Record<string, string | null>>;
102
+ }
103
+ export declare class UtilitiesManager extends EventEmitter {
104
+ private document;
105
+ constructor(document: any);
106
+ extractToText(outputFile: string): Promise<ExtractionResult | null>;
107
+ extractToJSON(outputFile: string): Promise<ExtractionResult | null>;
108
+ extractToXML(outputFile: string): Promise<ExtractionResult | null>;
109
+ validateDocument(): Promise<boolean>;
110
+ repairDocument(): Promise<boolean>;
111
+ mergePDFs(outputFile: string, otherFiles: string[]): Promise<boolean>;
112
+ splitPDF(outputDir: string, pagesPerFile: number): Promise<number>;
113
+ rotatePDF(rotationDegrees: number, outputFile: string): Promise<boolean>;
114
+ scalePDF(scaleFactor: number, outputFile: string): Promise<boolean>;
115
+ addWatermark(text: string, opacity?: number, rotation?: number): Promise<boolean>;
116
+ addPageNumbers(formatStr?: string, startPage?: number): Promise<boolean>;
117
+ removePages(pageIndices: number[]): Promise<boolean>;
118
+ reorderPages(newOrder: number[]): Promise<boolean>;
119
+ duplicatePages(pageIndex: number, count: number): Promise<boolean>;
120
+ blankPages(pageIndices: number[]): Promise<boolean>;
121
+ getDocumentStatistics(): Promise<Record<string, any> | null>;
122
+ }
123
+ //# sourceMappingURL=extended-managers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extended-managers.d.ts","sourceRoot":"","sources":["../../src/managers/extended-managers.ts"],"names":[],"mappings":"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"}