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,281 @@
1
+ /**
2
+ * Manager for PDF document metadata
3
+ *
4
+ * Provides access to document metadata properties such as title, author,
5
+ * subject, keywords, creation and modification dates, and custom properties.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { MetadataManager } from 'pdf_oxide';
10
+ *
11
+ * const doc = PdfDocument.open('document.pdf');
12
+ * const metadataManager = new MetadataManager(doc);
13
+ *
14
+ * console.log(`Title: ${metadataManager.getTitle()}`);
15
+ * console.log(`Author: ${metadataManager.getAuthor()}`);
16
+ * console.log(`Created: ${metadataManager.getCreationDate()}`);
17
+ * ```
18
+ */
19
+ export class MetadataManager {
20
+ /**
21
+ * Creates a new MetadataManager for the given document
22
+ * @param document - The PDF document
23
+ * @throws Error if document is null or undefined
24
+ */
25
+ constructor(document) {
26
+ if (!document) {
27
+ throw new Error('Document is required');
28
+ }
29
+ this._document = document;
30
+ }
31
+ /**
32
+ * Gets the document title
33
+ * @returns Document title or null if not set
34
+ */
35
+ getTitle() {
36
+ try {
37
+ return this._document.documentInfo?.title || null;
38
+ }
39
+ catch (error) {
40
+ return null;
41
+ }
42
+ }
43
+ /**
44
+ * Gets the document author
45
+ * @returns Document author or null if not set
46
+ */
47
+ getAuthor() {
48
+ try {
49
+ return this._document.documentInfo?.author || null;
50
+ }
51
+ catch (error) {
52
+ return null;
53
+ }
54
+ }
55
+ /**
56
+ * Gets the document subject
57
+ * @returns Document subject or null if not set
58
+ */
59
+ getSubject() {
60
+ try {
61
+ return this._document.documentInfo?.subject || null;
62
+ }
63
+ catch (error) {
64
+ return null;
65
+ }
66
+ }
67
+ /**
68
+ * Gets the document keywords
69
+ * @returns Array of document keywords (empty if none)
70
+ */
71
+ getKeywords() {
72
+ try {
73
+ return this._document.documentInfo?.keywords || [];
74
+ }
75
+ catch (error) {
76
+ return [];
77
+ }
78
+ }
79
+ /**
80
+ * Gets the document creator application
81
+ * @returns Creator application or null if not set
82
+ */
83
+ getCreator() {
84
+ try {
85
+ return this._document.documentInfo?.creator || null;
86
+ }
87
+ catch (error) {
88
+ return null;
89
+ }
90
+ }
91
+ /**
92
+ * Gets the document producer application
93
+ * @returns Producer application or null if not set
94
+ */
95
+ getProducer() {
96
+ try {
97
+ return this._document.documentInfo?.producer || null;
98
+ }
99
+ catch (error) {
100
+ return null;
101
+ }
102
+ }
103
+ /**
104
+ * Gets the document creation date
105
+ * @returns Creation date or null if not set
106
+ */
107
+ getCreationDate() {
108
+ try {
109
+ return this._document.documentInfo?.creationDate || null;
110
+ }
111
+ catch (error) {
112
+ return null;
113
+ }
114
+ }
115
+ /**
116
+ * Gets the document modification date
117
+ * @returns Modification date or null if not set
118
+ */
119
+ getModificationDate() {
120
+ try {
121
+ return this._document.documentInfo?.modificationDate || null;
122
+ }
123
+ catch (error) {
124
+ return null;
125
+ }
126
+ }
127
+ /**
128
+ * Gets all metadata as a single object
129
+ * @returns Complete metadata object
130
+ *
131
+ * @example
132
+ * ```typescript
133
+ * const metadata = manager.getAllMetadata();
134
+ * console.log(JSON.stringify(metadata, null, 2));
135
+ * ```
136
+ */
137
+ getAllMetadata() {
138
+ try {
139
+ return this._document.documentInfo || {};
140
+ }
141
+ catch (error) {
142
+ return {};
143
+ }
144
+ }
145
+ /**
146
+ * Checks if metadata has been set
147
+ * @returns True if any metadata is present
148
+ */
149
+ hasMetadata() {
150
+ const meta = this.getAllMetadata();
151
+ return Object.keys(meta).length > 0;
152
+ }
153
+ /**
154
+ * Gets a summary of key metadata fields
155
+ * @returns Formatted metadata summary
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * console.log(manager.getMetadataSummary());
160
+ * // Output: Title: My Document, Author: John Doe, Pages: 42
161
+ * ```
162
+ */
163
+ getMetadataSummary() {
164
+ const parts = [];
165
+ const title = this.getTitle();
166
+ if (title)
167
+ parts.push(`Title: ${title}`);
168
+ const author = this.getAuthor();
169
+ if (author)
170
+ parts.push(`Author: ${author}`);
171
+ try {
172
+ parts.push(`Pages: ${this._document.pageCount}`);
173
+ }
174
+ catch (e) {
175
+ // Ignore
176
+ }
177
+ const subject = this.getSubject();
178
+ if (subject)
179
+ parts.push(`Subject: ${subject}`);
180
+ const keywords = this.getKeywords();
181
+ if (keywords.length > 0)
182
+ parts.push(`Keywords: ${keywords.join(', ')}`);
183
+ const created = this.getCreationDate();
184
+ if (created)
185
+ parts.push(`Created: ${created.toISOString()}`);
186
+ return parts.join(' | ');
187
+ }
188
+ /**
189
+ * Checks if a specific keyword is present
190
+ * @param keyword - Keyword to search for
191
+ * @returns True if keyword is found
192
+ */
193
+ hasKeyword(keyword) {
194
+ if (!keyword || typeof keyword !== 'string') {
195
+ throw new Error('Keyword must be a non-empty string');
196
+ }
197
+ const keywords = this.getKeywords();
198
+ return keywords.includes(keyword);
199
+ }
200
+ /**
201
+ * Gets the number of keywords
202
+ * @returns Keyword count
203
+ */
204
+ getKeywordCount() {
205
+ return this.getKeywords().length;
206
+ }
207
+ /**
208
+ * Gets metadata comparison with another document
209
+ * @param otherDocument - Document to compare with
210
+ * @returns Comparison object with matching and differing fields
211
+ *
212
+ * @example
213
+ * ```typescript
214
+ * const doc1 = PdfDocument.open('file1.pdf');
215
+ * const doc2 = PdfDocument.open('file2.pdf');
216
+ * const mgr1 = new MetadataManager(doc1);
217
+ * const comparison = mgr1.compareWith(doc2);
218
+ * console.log(comparison.matching); // Fields that match
219
+ * console.log(comparison.differing); // Fields that differ
220
+ * ```
221
+ */
222
+ compareWith(otherDocument) {
223
+ if (!otherDocument) {
224
+ throw new Error('Document is required for comparison');
225
+ }
226
+ const otherMgr = new MetadataManager(otherDocument);
227
+ const matching = {};
228
+ const differing = {};
229
+ const fields = [
230
+ { getter: 'getTitle', field: 'title' },
231
+ { getter: 'getAuthor', field: 'author' },
232
+ { getter: 'getSubject', field: 'subject' },
233
+ { getter: 'getCreator', field: 'creator' },
234
+ { getter: 'getProducer', field: 'producer' },
235
+ ];
236
+ fields.forEach(({ getter, field }) => {
237
+ const val1 = this[getter]();
238
+ const val2 = otherMgr[getter]();
239
+ if (val1 === val2) {
240
+ matching[field] = val1;
241
+ }
242
+ else {
243
+ differing[field] = { document1: val1, document2: val2 };
244
+ }
245
+ });
246
+ return { matching, differing };
247
+ }
248
+ /**
249
+ * Validates metadata completeness
250
+ * @returns Validation result with issues array
251
+ *
252
+ * @example
253
+ * ```typescript
254
+ * const validation = manager.validate();
255
+ * if (validation.isComplete) {
256
+ * console.log('Metadata is complete');
257
+ * } else {
258
+ * console.log('Issues:', validation.issues);
259
+ * }
260
+ * ```
261
+ */
262
+ validate() {
263
+ const issues = [];
264
+ if (!this.getTitle())
265
+ issues.push('Title is missing');
266
+ if (!this.getAuthor())
267
+ issues.push('Author is missing');
268
+ if (!this.getSubject())
269
+ issues.push('Subject is missing');
270
+ if (this.getKeywordCount() === 0)
271
+ issues.push('Keywords are missing');
272
+ if (!this.getCreationDate())
273
+ issues.push('Creation date is missing');
274
+ return {
275
+ isComplete: issues.length === 0,
276
+ issues,
277
+ missingFieldCount: issues.length,
278
+ };
279
+ }
280
+ }
281
+ //# sourceMappingURL=metadata-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-manager.js","sourceRoot":"","sources":["../../src/managers/metadata-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * OcrManager - Canonical OCR Manager (merged from 3 implementations)
3
+ *
4
+ * Consolidates:
5
+ * - src/ocr-manager.ts (simple API with setLanguage, extractText, analyzePage)
6
+ * - src/managers/ocr-compliance-cache.ts OCRManager (engine lifecycle)
7
+ * - src/managers/ocr-manager-typed.ts OCRManager (full TypeScript, FFI-wired)
8
+ *
9
+ * Provides optical character recognition operations with complete type safety,
10
+ * proper error handling, and full FFI integration.
11
+ */
12
+ import { BaseManager, OcrLanguage, OcrResult, OcrBatchResult, TextRegion, PdfDocumentHandle, ManagerOptions } from '../types/manager-types.js';
13
+ export { OcrLanguage };
14
+ export type { OcrResult, OcrBatchResult, TextRegion };
15
+ /**
16
+ * OCR detection modes for accuracy/speed tradeoff
17
+ */
18
+ export declare enum OcrDetectionMode {
19
+ Accurate = "accurate",
20
+ Fast = "fast",
21
+ Balanced = "balanced"
22
+ }
23
+ /**
24
+ * Configuration for OCR operations
25
+ */
26
+ export interface OcrConfig {
27
+ language?: OcrLanguage;
28
+ detectionMode?: OcrDetectionMode;
29
+ detectionThreshold?: number;
30
+ recognitionThreshold?: number;
31
+ maxSideLen?: number;
32
+ useGpu?: boolean;
33
+ gpuDeviceId?: number;
34
+ }
35
+ /**
36
+ * A recognized text span with position and confidence
37
+ */
38
+ export interface OcrSpan {
39
+ text: string;
40
+ confidence: number;
41
+ x: number;
42
+ y: number;
43
+ width: number;
44
+ height: number;
45
+ charCount: number;
46
+ }
47
+ /**
48
+ * Analysis result for a single page
49
+ */
50
+ export interface OcrPageAnalysis {
51
+ pageIndex: number;
52
+ needsOcr: boolean;
53
+ confidence: number;
54
+ spanCount: number;
55
+ text: string;
56
+ }
57
+ /**
58
+ * Canonical OcrManager - Comprehensive OCR with full TypeScript support
59
+ *
60
+ * Features:
61
+ * - Full text recognition with confidence scoring
62
+ * - Batch page processing with skip optimization
63
+ * - Text region detection with coordinates
64
+ * - Multi-language support
65
+ * - Comprehensive event emission
66
+ * - Automatic resource cleanup
67
+ * - Legacy API compatibility (setLanguage, extractText, analyzePage, etc.)
68
+ */
69
+ export declare class OcrManager extends BaseManager<PdfDocumentHandle> {
70
+ private ocrEngine;
71
+ private currentLanguage;
72
+ private preprocessingType;
73
+ private native;
74
+ constructor(document: PdfDocumentHandle, options?: ManagerOptions);
75
+ /**
76
+ * Initialize OCR engine with specified configuration
77
+ */
78
+ initializeEngine(detectionThreshold?: number, recognitionThreshold?: number, maxSideLen?: number, useGpu?: boolean, gpuDeviceId?: number): Promise<boolean>;
79
+ /**
80
+ * Destroy OCR engine and free resources
81
+ */
82
+ destroyOcrEngine(): Promise<void>;
83
+ /**
84
+ * Check if page needs OCR processing
85
+ */
86
+ pageNeedsOcr(pageIndex: number): Promise<boolean>;
87
+ /**
88
+ * Recognize text on a page with full confidence scoring
89
+ */
90
+ recognizePage(pageIndex: number): Promise<string>;
91
+ /**
92
+ * Get OCR confidence score for a page
93
+ */
94
+ getOcrConfidence(pageIndex: number): Promise<number>;
95
+ /**
96
+ * Detect text regions on a page with bounding boxes
97
+ */
98
+ detectTextRegions(pageIndex: number): Promise<TextRegion[]>;
99
+ /**
100
+ * Set OCR language for recognition (FFI-wired)
101
+ */
102
+ setOcrLanguage(language: OcrLanguage | string): Promise<boolean>;
103
+ /**
104
+ * Sets the OCR language (convenience alias for setOcrLanguage)
105
+ * From root-level OCRManager
106
+ */
107
+ setLanguage(language: OcrLanguage): void;
108
+ /**
109
+ * Gets the current OCR language
110
+ * From root-level OCRManager
111
+ */
112
+ getLanguage(): OcrLanguage;
113
+ /**
114
+ * Get available OCR languages
115
+ */
116
+ getAvailableLanguages(): Promise<OcrLanguage[]>;
117
+ /**
118
+ * Preprocess page before OCR for better recognition
119
+ */
120
+ preprocessPage(pageIndex: number, preprocessingType?: string): Promise<boolean>;
121
+ /**
122
+ * Export OCR text to file
123
+ */
124
+ exportOcrText(pageIndex: number, filePath: string, format?: 'txt' | 'json' | 'xml'): Promise<boolean>;
125
+ /**
126
+ * Get comprehensive OCR statistics for a page
127
+ */
128
+ getOcrStatistics(pageIndex: number): Promise<OcrResult>;
129
+ /**
130
+ * Batch recognize multiple pages
131
+ */
132
+ batchRecognizePages(startPage: number, endPage: number): Promise<Map<number, string>>;
133
+ /**
134
+ * Extract OCR text with aggregated statistics from page range (FFI-wired)
135
+ */
136
+ extractPageRange(startPage: number, endPage: number, skipNonScanned?: boolean): Promise<OcrBatchResult>;
137
+ /**
138
+ * Get OCR engine status and configuration
139
+ */
140
+ getEngineStatus(): Promise<string>;
141
+ /**
142
+ * Get current OCR configuration
143
+ */
144
+ getConfiguration(): {
145
+ language: OcrLanguage;
146
+ preprocessingType: string;
147
+ engineInitialized: boolean;
148
+ };
149
+ /**
150
+ * Extracts text from a page (convenience alias for recognizePage)
151
+ * From root-level OCRManager
152
+ */
153
+ extractText(pageIndex: number, config?: OcrConfig): Promise<string>;
154
+ /**
155
+ * Analyzes a page and returns detailed results
156
+ * From root-level OCRManager
157
+ */
158
+ analyzePage(pageIndex: number, config?: OcrConfig): Promise<OcrPageAnalysis>;
159
+ /**
160
+ * Performs OCR analysis on all pages in the document
161
+ * From root-level OCRManager
162
+ */
163
+ analyzeDocument(config?: OcrConfig): Promise<OcrPageAnalysis[]>;
164
+ /**
165
+ * Extracts text spans with bounding boxes for a page
166
+ * From root-level OCRManager
167
+ */
168
+ extractSpans(pageIndex: number, config?: OcrConfig): Promise<OcrSpan[]>;
169
+ /**
170
+ * Checks if OCR is available/installed
171
+ * From root-level OCRManager
172
+ */
173
+ isAvailable(): Promise<boolean>;
174
+ /**
175
+ * Gets OCR engine version
176
+ * From root-level OCRManager
177
+ */
178
+ getVersion(): Promise<string>;
179
+ /**
180
+ * Clears the result cache
181
+ */
182
+ clearCache(): void;
183
+ /**
184
+ * Gets cache statistics
185
+ */
186
+ getCacheStats(): Record<string, any>;
187
+ /**
188
+ * Cleanup on destroy
189
+ */
190
+ destroy(): Promise<void>;
191
+ }
192
+ /** @deprecated Use OcrManager instead */
193
+ export declare const OCRManager: typeof OcrManager;
194
+ export default OcrManager;
195
+ //# sourceMappingURL=ocr-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ocr-manager.d.ts","sourceRoot":"","sources":["../../src/managers/ocr-manager.ts"],"names":[],"mappings":"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"}