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
@@ -1,479 +0,0 @@
1
- import { EventEmitter } from 'events';
2
-
3
- /**
4
- * Phase 7: Hybrid ML and Advanced Utilities
5
- * - Hybrid ML (29) + Configuration (15) + Document Analysis (18) + Advanced Search (12) = 74 Functions
6
- */
7
-
8
- export enum MLModelType {
9
- TABLE_DETECTION = 'table_detection',
10
- FORM_FIELD_DETECTION = 'form_field_detection',
11
- DOCUMENT_CLASSIFICATION = 'document_classification',
12
- TEXT_EXTRACTION = 'text_extraction',
13
- HANDWRITING = 'handwriting',
14
- SIGNATURE_DETECTION = 'signature_detection'
15
- }
16
-
17
- export enum ConfigLevel {
18
- GLOBAL = 'global',
19
- DOCUMENT = 'document',
20
- PAGE = 'page',
21
- REGION = 'region'
22
- }
23
-
24
- export interface MLPrediction {
25
- confidence: number;
26
- label: string;
27
- metadata: Record<string, any>;
28
- boundingBox?: [number, number, number, number];
29
- }
30
-
31
- export interface ConfigurationItem {
32
- key: string;
33
- value: any;
34
- level: ConfigLevel;
35
- typeHint: string;
36
- }
37
-
38
- export interface DocumentAnalysis {
39
- classification: string;
40
- confidence: number;
41
- features: Record<string, any>;
42
- metadata: Record<string, any>;
43
- recommendations: string[];
44
- }
45
-
46
- export interface SearchContext {
47
- query: string;
48
- mode: string;
49
- caseSensitive: boolean;
50
- wholeWord: boolean;
51
- regex: boolean;
52
- contextLines: number;
53
- }
54
-
55
- export class HybridMLManager extends EventEmitter {
56
- private document: any;
57
- private activeModels: Map<string, string> = new Map();
58
-
59
- constructor(document: any) {
60
- super();
61
- this.document = document;
62
- }
63
-
64
- async loadMLModel(modelPath: string, modelType: MLModelType): Promise<boolean> {
65
- if (!this.document) return false;
66
- try { return true; }
67
- catch (error) { this.emit('error', error); return false; }
68
- }
69
-
70
- async unloadMLModel(modelType: MLModelType): Promise<boolean> {
71
- try { return true; }
72
- catch (error) { this.emit('error', error); return false; }
73
- }
74
-
75
- async getLoadedModels(): Promise<string[]> {
76
- try { return Array.from(this.activeModels.keys()); }
77
- catch (error) { this.emit('error', error); return []; }
78
- }
79
-
80
- async predictTableRegions(pageIndex: number): Promise<MLPrediction[]> {
81
- try { return []; }
82
- catch (error) { this.emit('error', error); return []; }
83
- }
84
-
85
- async predictFormFields(pageIndex: number): Promise<MLPrediction[]> {
86
- try { return []; }
87
- catch (error) { this.emit('error', error); return []; }
88
- }
89
-
90
- async classifyDocument(): Promise<DocumentAnalysis | null> {
91
- try { return null; }
92
- catch (error) { this.emit('error', error); return null; }
93
- }
94
-
95
- async extractWithML(pageIndex: number): Promise<string | null> {
96
- try { return null; }
97
- catch (error) { this.emit('error', error); return null; }
98
- }
99
-
100
- async detectHandwriting(pageIndex: number): Promise<MLPrediction[]> {
101
- try { return []; }
102
- catch (error) { this.emit('error', error); return []; }
103
- }
104
-
105
- async detectSignatures(pageIndex: number): Promise<MLPrediction[]> {
106
- try { return []; }
107
- catch (error) { this.emit('error', error); return []; }
108
- }
109
-
110
- async getModelAccuracy(modelType: MLModelType): Promise<number | null> {
111
- try { return null; }
112
- catch (error) { this.emit('error', error); return null; }
113
- }
114
-
115
- async setModelThreshold(modelType: MLModelType, threshold: number): Promise<boolean> {
116
- try { return true; }
117
- catch (error) { this.emit('error', error); return false; }
118
- }
119
-
120
- async predictLayoutBlocks(pageIndex: number): Promise<MLPrediction[]> {
121
- try { return []; }
122
- catch (error) { this.emit('error', error); return []; }
123
- }
124
-
125
- async extractTableData(pageIndex: number, tableRegion: [number, number, number, number]): Promise<string[][] | null> {
126
- try { return null; }
127
- catch (error) { this.emit('error', error); return null; }
128
- }
129
-
130
- async recognizeCharacters(pageIndex: number, region: [number, number, number, number]): Promise<string | null> {
131
- try { return null; }
132
- catch (error) { this.emit('error', error); return null; }
133
- }
134
-
135
- async getConfidenceScore(prediction: MLPrediction): Promise<number> {
136
- try { return prediction.confidence; }
137
- catch (error) { this.emit('error', error); return 0; }
138
- }
139
-
140
- async validateML(): Promise<boolean> {
141
- try { return true; }
142
- catch (error) { this.emit('error', error); return false; }
143
- }
144
-
145
- async optimizeModel(modelType: MLModelType): Promise<boolean> {
146
- try { return true; }
147
- catch (error) { this.emit('error', error); return false; }
148
- }
149
-
150
- async getBatchPredictions(pageIndices: number[], modelType: MLModelType): Promise<Record<number, MLPrediction[]>> {
151
- try { return {}; }
152
- catch (error) { this.emit('error', error); return {}; }
153
- }
154
-
155
- async trainCustomModel(trainingData: Buffer, modelType: MLModelType): Promise<boolean> {
156
- if (!this.document) return false;
157
- try { return true; }
158
- catch (error) { this.emit('error', error); return false; }
159
- }
160
-
161
- async exportModel(modelType: MLModelType, outputPath: string): Promise<boolean> {
162
- try { return true; }
163
- catch (error) { this.emit('error', error); return false; }
164
- }
165
-
166
- async importModel(modelType: MLModelType, inputPath: string): Promise<boolean> {
167
- try { return true; }
168
- catch (error) { this.emit('error', error); return false; }
169
- }
170
-
171
- async getModelMetadata(modelType: MLModelType): Promise<Record<string, any> | null> {
172
- try { return null; }
173
- catch (error) { this.emit('error', error); return null; }
174
- }
175
-
176
- async setMLParameters(modelType: MLModelType, parameters: Record<string, any>): Promise<boolean> {
177
- try { return true; }
178
- catch (error) { this.emit('error', error); return false; }
179
- }
180
-
181
- async getMLMetrics(modelType: MLModelType): Promise<Record<string, number> | null> {
182
- try { return null; }
183
- catch (error) { this.emit('error', error); return null; }
184
- }
185
-
186
- async detectEntities(pageIndex: number): Promise<MLPrediction[]> {
187
- try { return []; }
188
- catch (error) { this.emit('error', error); return []; }
189
- }
190
-
191
- async assessDocumentQuality(): Promise<Record<string, any> | null> {
192
- try { return null; }
193
- catch (error) { this.emit('error', error); return null; }
194
- }
195
- }
196
-
197
- export class ConfigurationManager extends EventEmitter {
198
- private document: any;
199
- private config: Map<string, ConfigurationItem> = new Map();
200
-
201
- constructor(document: any) {
202
- super();
203
- this.document = document;
204
- }
205
-
206
- async setGlobalConfig(key: string, value: any): Promise<boolean> {
207
- try {
208
- this.config.set(key, { key, value, level: ConfigLevel.GLOBAL, typeHint: typeof value });
209
- return true;
210
- }
211
- catch (error) { this.emit('error', error); return false; }
212
- }
213
-
214
- async getGlobalConfig(key: string): Promise<any> {
215
- try { return this.config.get(key)?.value ?? null; }
216
- catch (error) { this.emit('error', error); return null; }
217
- }
218
-
219
- async setDocumentConfig(key: string, value: any): Promise<boolean> {
220
- if (!this.document) return false;
221
- try {
222
- this.config.set(`doc_${key}`, { key, value, level: ConfigLevel.DOCUMENT, typeHint: typeof value });
223
- return true;
224
- }
225
- catch (error) { this.emit('error', error); return false; }
226
- }
227
-
228
- async setPageConfig(pageIndex: number, key: string, value: any): Promise<boolean> {
229
- try {
230
- this.config.set(`page_${pageIndex}_${key}`, { key, value, level: ConfigLevel.PAGE, typeHint: typeof value });
231
- return true;
232
- }
233
- catch (error) { this.emit('error', error); return false; }
234
- }
235
-
236
- async getPageConfig(pageIndex: number, key: string): Promise<any> {
237
- try { return this.config.get(`page_${pageIndex}_${key}`)?.value ?? null; }
238
- catch (error) { this.emit('error', error); return null; }
239
- }
240
-
241
- async resetConfiguration(level: ConfigLevel): Promise<boolean> {
242
- try {
243
- const keysToRemove = Array.from(this.config.entries())
244
- .filter(([_, item]) => item.level === level)
245
- .map(([key, _]) => key);
246
- keysToRemove.forEach(k => this.config.delete(k));
247
- return true;
248
- }
249
- catch (error) { this.emit('error', error); return false; }
250
- }
251
-
252
- async loadConfigFile(configPath: string): Promise<boolean> {
253
- try { return true; }
254
- catch (error) { this.emit('error', error); return false; }
255
- }
256
-
257
- async saveConfigFile(configPath: string): Promise<boolean> {
258
- try { return true; }
259
- catch (error) { this.emit('error', error); return false; }
260
- }
261
-
262
- async getConfigSchema(): Promise<Record<string, string> | null> {
263
- try { return null; }
264
- catch (error) { this.emit('error', error); return null; }
265
- }
266
-
267
- async validateConfig(): Promise<boolean> {
268
- try { return true; }
269
- catch (error) { this.emit('error', error); return false; }
270
- }
271
-
272
- async getAllConfig(): Promise<Record<string, any>> {
273
- try {
274
- const result: Record<string, any> = {};
275
- this.config.forEach((item, key) => { result[key] = item.value; });
276
- return result;
277
- }
278
- catch (error) { this.emit('error', error); return {}; }
279
- }
280
-
281
- async mergeConfig(otherConfig: Record<string, any>): Promise<boolean> {
282
- try {
283
- Object.entries(otherConfig).forEach(([key, value]) => this.setGlobalConfig(key, value));
284
- return true;
285
- }
286
- catch (error) { this.emit('error', error); return false; }
287
- }
288
-
289
- async getConfigHistory(key: string): Promise<[string, any][]> {
290
- try { return []; }
291
- catch (error) { this.emit('error', error); return []; }
292
- }
293
-
294
- async revertConfig(key: string, toVersion: number): Promise<boolean> {
295
- try { return true; }
296
- catch (error) { this.emit('error', error); return false; }
297
- }
298
- }
299
-
300
- export class DocumentAnalysisManager extends EventEmitter {
301
- private document: any;
302
- private analysisCache: Map<string, DocumentAnalysis> = new Map();
303
-
304
- constructor(document: any) {
305
- super();
306
- this.document = document;
307
- }
308
-
309
- async analyzeDocumentStructure(): Promise<DocumentAnalysis | null> {
310
- if (!this.document) return null;
311
- try { return null; }
312
- catch (error) { this.emit('error', error); return null; }
313
- }
314
-
315
- async getReadabilityScore(): Promise<number | null> {
316
- try { return null; }
317
- catch (error) { this.emit('error', error); return null; }
318
- }
319
-
320
- async detectAnomalies(): Promise<Record<string, any>[]> {
321
- try { return []; }
322
- catch (error) { this.emit('error', error); return []; }
323
- }
324
-
325
- async calculateComplexityMetrics(): Promise<Record<string, number> | null> {
326
- try { return null; }
327
- catch (error) { this.emit('error', error); return null; }
328
- }
329
-
330
- async analyzeTextFlow(pageIndex: number): Promise<Record<string, any> | null> {
331
- try { return null; }
332
- catch (error) { this.emit('error', error); return null; }
333
- }
334
-
335
- async getPageImportance(pageIndex: number): Promise<number | null> {
336
- try { return null; }
337
- catch (error) { this.emit('error', error); return null; }
338
- }
339
-
340
- async summarizeContent(maxSentences: number = 5): Promise<string | null> {
341
- try { return null; }
342
- catch (error) { this.emit('error', error); return null; }
343
- }
344
-
345
- async extractKeywords(limit: number = 20): Promise<string[]> {
346
- try { return []; }
347
- catch (error) { this.emit('error', error); return []; }
348
- }
349
-
350
- async analyzeSentiment(): Promise<Record<string, number> | null> {
351
- try { return null; }
352
- catch (error) { this.emit('error', error); return null; }
353
- }
354
-
355
- async getDocumentTopics(): Promise<string[]> {
356
- try { return []; }
357
- catch (error) { this.emit('error', error); return []; }
358
- }
359
-
360
- async calculateEntropyScore(): Promise<number | null> {
361
- try { return null; }
362
- catch (error) { this.emit('error', error); return null; }
363
- }
364
-
365
- async detectLanguage(): Promise<string | null> {
366
- try { return null; }
367
- catch (error) { this.emit('error', error); return null; }
368
- }
369
-
370
- async analyzePageLayout(pageIndex: number): Promise<Record<string, any> | null> {
371
- try { return null; }
372
- catch (error) { this.emit('error', error); return null; }
373
- }
374
-
375
- async getContentDistribution(): Promise<Record<string, number> | null> {
376
- try { return null; }
377
- catch (error) { this.emit('error', error); return null; }
378
- }
379
-
380
- async calculateSimilarity(otherDocumentPath: string): Promise<number | null> {
381
- try { return null; }
382
- catch (error) { this.emit('error', error); return null; }
383
- }
384
-
385
- async identifyDuplicateContent(): Promise<[number, number][]> {
386
- try { return []; }
387
- catch (error) { this.emit('error', error); return []; }
388
- }
389
-
390
- async performFullAnalysis(): Promise<DocumentAnalysis | null> {
391
- try { return null; }
392
- catch (error) { this.emit('error', error); return null; }
393
- }
394
-
395
- async generateAnalysisReport(outputPath: string): Promise<boolean> {
396
- try { return true; }
397
- catch (error) { this.emit('error', error); return false; }
398
- }
399
- }
400
-
401
- export class AdvancedSearchManager extends EventEmitter {
402
- private document: any;
403
- private searchHistory: SearchContext[] = [];
404
-
405
- constructor(document: any) {
406
- super();
407
- this.document = document;
408
- }
409
-
410
- async searchWithContext(searchContext: SearchContext): Promise<Record<string, any>[]> {
411
- if (!this.document) return [];
412
- try {
413
- this.searchHistory.push(searchContext);
414
- return [];
415
- }
416
- catch (error) { this.emit('error', error); return []; }
417
- }
418
-
419
- async searchByPattern(pattern: string, patternType: string): Promise<Record<string, any>[]> {
420
- try { return []; }
421
- catch (error) { this.emit('error', error); return []; }
422
- }
423
-
424
- async searchInRange(query: string, startPage: number, endPage: number): Promise<Record<string, any>[]> {
425
- try { return []; }
426
- catch (error) { this.emit('error', error); return []; }
427
- }
428
-
429
- async semanticSearch(query: string, threshold: number = 0.7): Promise<Record<string, any>[]> {
430
- try { return []; }
431
- catch (error) { this.emit('error', error); return []; }
432
- }
433
-
434
- async searchMetadata(metadataQuery: Record<string, any>): Promise<Record<string, any>[]> {
435
- try { return []; }
436
- catch (error) { this.emit('error', error); return []; }
437
- }
438
-
439
- async getSearchSuggestions(partialQuery: string): Promise<string[]> {
440
- try { return []; }
441
- catch (error) { this.emit('error', error); return []; }
442
- }
443
-
444
- async clearSearchHistory(): Promise<boolean> {
445
- try { this.searchHistory = []; return true; }
446
- catch (error) { this.emit('error', error); return false; }
447
- }
448
-
449
- async getSearchStatistics(): Promise<Record<string, any>> {
450
- try {
451
- return {
452
- total_searches: this.searchHistory.length,
453
- unique_queries: new Set(this.searchHistory.map(s => s.query)).size
454
- };
455
- }
456
- catch (error) { this.emit('error', error); return {}; }
457
- }
458
-
459
- async saveSearchQuery(queryName: string, searchContext: SearchContext): Promise<boolean> {
460
- try { return true; }
461
- catch (error) { this.emit('error', error); return false; }
462
- }
463
-
464
- async loadSavedQuery(queryName: string): Promise<SearchContext | null> {
465
- try { return null; }
466
- catch (error) { this.emit('error', error); return null; }
467
- }
468
-
469
- async advancedFind(query: string, options: Record<string, any>): Promise<Record<string, any>[]> {
470
- try { return []; }
471
- catch (error) { this.emit('error', error); return []; }
472
- }
473
-
474
- async replaceAll(findText: string, replaceText: string): Promise<number> {
475
- if (!this.document) return 0;
476
- try { return 0; }
477
- catch (error) { this.emit('error', error); return 0; }
478
- }
479
- }
@@ -1,239 +0,0 @@
1
- /**
2
- * PDF Oxide Managers - Specialized facades for domain-specific operations
3
- *
4
- * This module provides manager classes that encapsulate domain-specific
5
- * operations on PDF documents, offering a cleaner and more organized API
6
- * compared to working directly with documents and pages.
7
- *
8
- * @example
9
- * ```typescript
10
- * import {
11
- * OutlineManager,
12
- * MetadataManager,
13
- * ExtractionManager,
14
- * SearchManager,
15
- * SecurityManager,
16
- * AnnotationManager,
17
- * LayerManager,
18
- * RenderingManager,
19
- * } from 'pdf_oxide';
20
- *
21
- * const doc = PdfDocument.open('document.pdf');
22
- *
23
- * // Metadata operations
24
- * const metadataManager = new MetadataManager(doc);
25
- * console.log(metadataManager.getTitle());
26
- *
27
- * // Text extraction
28
- * const extractionManager = new ExtractionManager(doc);
29
- * const text = extractionManager.extractAllText();
30
- *
31
- * // Search operations
32
- * const searchManager = new SearchManager(doc);
33
- * const results = searchManager.searchAll('keyword');
34
- *
35
- * // Page annotations
36
- * const page = doc.getPage(0);
37
- * const annotationManager = new AnnotationManager(page);
38
- * const highlights = annotationManager.getHighlights();
39
- * ```
40
- */
41
-
42
- // Core Managers
43
- export { OutlineManager, type OutlineItem } from './outline-manager.js';
44
- export {
45
- MetadataManager,
46
- type MetadataComparison,
47
- type ValidationResult,
48
- } from './metadata-manager.js';
49
- export {
50
- ExtractionManager,
51
- type ContentStatistics,
52
- type SearchMatch,
53
- } from './extraction-manager.js';
54
- export {
55
- SearchManager,
56
- type SearchResult,
57
- type SearchStatistics,
58
- type SearchCapabilities,
59
- } from './search-manager.js';
60
- export {
61
- SecurityManager,
62
- type PermissionsSummary,
63
- type SecurityLevel,
64
- type AccessibilityValidation,
65
- } from './security-manager.js';
66
- export {
67
- AnnotationManager,
68
- type Annotation,
69
- type AnnotationStatistics,
70
- type AnnotationValidation,
71
- } from './annotation-manager.js';
72
- export {
73
- LayerManager,
74
- type Layer,
75
- type LayerHierarchy,
76
- type LayerStatistics,
77
- type LayerValidation,
78
- } from './layer-manager.js';
79
- export {
80
- RenderingManager,
81
- RenderOptions,
82
- type RenderOptionsConfig,
83
- type PageDimensions,
84
- type PageBox,
85
- type RenderingStatistics,
86
- type PageResources,
87
- } from './rendering-manager.js';
88
- export {
89
- PageManager,
90
- type PageInfo,
91
- type PageRange,
92
- type PageStatistics,
93
- } from './page-manager.js';
94
- export {
95
- ContentManager,
96
- type ContentAnalysis,
97
- } from './content-manager.js';
98
-
99
- // Phase 2.4: Stream API support
100
- export {
101
- SearchStream,
102
- ExtractionStream,
103
- MetadataStream,
104
- createSearchStream,
105
- createExtractionStream,
106
- createMetadataStream,
107
- type SearchResultData,
108
- type ExtractionProgressData,
109
- type PageMetadataData,
110
- } from './streams.js';
111
-
112
- // Phase 2.5: Batch Processing API
113
- export {
114
- BatchManager,
115
- type BatchDocument,
116
- type BatchProgress,
117
- type BatchResult,
118
- type BatchOptions,
119
- type BatchStatistics,
120
- } from './batch-manager.js';
121
-
122
- // Phase 1 Expansion: Result Accessors and Forms
123
- export {
124
- ResultAccessorsManager,
125
- type SearchResultProperties,
126
- type FontProperties,
127
- type ImageProperties,
128
- type AnnotationProperties,
129
- } from '../result-accessors-manager.js';
130
- export {
131
- FormFieldManager,
132
- FormFieldType,
133
- FieldVisibility,
134
- type FormField,
135
- type FormFieldConfig,
136
- } from '../form-field-manager.js';
137
-
138
- // Canonical Managers (Phase 9 consolidation)
139
- export {
140
- OcrManager,
141
- OCRManager,
142
- OcrDetectionMode,
143
- type OcrConfig,
144
- type OcrSpan,
145
- type OcrPageAnalysis,
146
- } from './ocr-manager.js';
147
- export {
148
- SignatureManager,
149
- SignatureAlgorithm,
150
- DigestAlgorithm,
151
- SignatureType,
152
- CertificationPermission,
153
- CertificateFormat,
154
- TimestampStatus,
155
- FfiDigestAlgorithm,
156
- FfiSignatureSubFilter,
157
- type DigitalSignature,
158
- type SignatureField,
159
- type SignatureValidationResult,
160
- type SignatureConfig,
161
- type Certificate,
162
- type Signature,
163
- type CertificateInfo,
164
- type CertificateChain,
165
- type LoadedCertificate,
166
- type SignatureAppearance,
167
- type SignatureFieldConfig,
168
- type SigningOptions,
169
- type TimestampConfig,
170
- type SigningResult,
171
- type TimestampResult,
172
- type SigningCredentials,
173
- type SignOptions,
174
- } from './signature-manager.js';
175
- export {
176
- XfaManager,
177
- XFAManager,
178
- XfaFormType,
179
- XfaFieldType,
180
- XfaValidationType,
181
- XfaBindingType,
182
- type XfaField,
183
- type XfaDataset,
184
- type XfaFieldConfig,
185
- type XfaTemplateConfig,
186
- type XfaSubformConfig,
187
- type XfaScriptConfig,
188
- type XfaCreationResult,
189
- type XfaDataOptions,
190
- type XfaFieldHandle,
191
- } from './xfa-manager.js';
192
- export {
193
- ComplianceManager,
194
- PdfALevel,
195
- PdfXLevel,
196
- PdfUALevel,
197
- ComplianceIssueType,
198
- IssueSeverity,
199
- type ComplianceIssue,
200
- type ComplianceValidationResult,
201
- } from './compliance-manager.js';
202
- export {
203
- BarcodeManager,
204
- BarcodeFormat,
205
- BarcodeErrorCorrection,
206
- QrErrorCorrection,
207
- type DetectedBarcode,
208
- type BarcodeGenerationConfig,
209
- } from './barcode-manager.js';
210
- export {
211
- CacheManager,
212
- type CacheStatistics as CacheStats,
213
- } from './cache-manager.js';
214
- export {
215
- EditingManager,
216
- type RedactionRect,
217
- type RgbColor,
218
- type ApplyRedactionsOptions,
219
- type ScrubMetadataOptions,
220
- } from './editing-manager.js';
221
- export {
222
- AccessibilityManager,
223
- type StructureElement,
224
- type StructureTree,
225
- type AutoTagResult,
226
- } from './accessibility-manager.js';
227
- export {
228
- OptimizationManager,
229
- type OptimizationResult,
230
- } from './optimization-manager.js';
231
- export {
232
- EnterpriseManager,
233
- BatesPosition,
234
- StampAlignment,
235
- DifferenceType,
236
- type Difference,
237
- type PageComparisonResult,
238
- type DocumentComparisonResult,
239
- } from './enterprise-manager.js';