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
package/src/index.ts DELETED
@@ -1,453 +0,0 @@
1
- // PDF Oxide Node.js bindings - Native module loader
2
-
3
- import { platform, arch } from 'node:process';
4
- import { createRequire } from 'node:module';
5
- import { fileURLToPath } from 'node:url';
6
- import { dirname } from 'node:path';
7
- import {
8
- PdfException,
9
- ParseException,
10
- IoException,
11
- EncryptionException,
12
- UnsupportedFeatureException,
13
- InvalidStateException,
14
- ValidationException,
15
- RenderingException,
16
- SearchException,
17
- ComplianceException,
18
- OcrException,
19
- SignatureException,
20
- CertificateLoadFailed,
21
- SigningFailed,
22
- RedactionException,
23
- AccessibilityException,
24
- OptimizationException,
25
- UnknownError,
26
- ErrorCategory,
27
- ErrorSeverity,
28
- wrapError,
29
- wrapMethod,
30
- wrapAsyncMethod,
31
- mapFfiErrorCode,
32
- } from './errors';
33
- import {
34
- addPdfDocumentProperties,
35
- addPdfProperties,
36
- addPdfPageProperties,
37
- } from './properties';
38
- import {
39
- PdfBuilder,
40
- ConversionOptionsBuilder,
41
- MetadataBuilder,
42
- AnnotationBuilder,
43
- SearchOptionsBuilder,
44
- } from './builders/index';
45
- import {
46
- OutlineManager,
47
- MetadataManager,
48
- ExtractionManager,
49
- SearchManager,
50
- SecurityManager,
51
- AnnotationManager,
52
- LayerManager,
53
- RenderingManager,
54
- SearchStream,
55
- ExtractionStream,
56
- MetadataStream,
57
- createSearchStream,
58
- createExtractionStream,
59
- createMetadataStream,
60
- BatchManager,
61
- type BatchDocument,
62
- type BatchProgress,
63
- type BatchResult,
64
- type BatchOptions,
65
- type BatchStatistics,
66
- } from './managers/index';
67
- import { WorkerPool, workerPool } from './workers/index';
68
- import type { WorkerTask, WorkerResult } from './workers/index';
69
-
70
- // Create require function for CommonJS modules
71
- const __filename = fileURLToPath(import.meta.url);
72
- const __dirname = dirname(__filename);
73
- const require = createRequire(import.meta.url);
74
-
75
- // Phase 4+ managers (compiled JavaScript - use require for dynamic import)
76
- // Phase 9: Now imports from canonical consolidated managers in managers/
77
- const {
78
- OcrManager,
79
- OcrManager: OCRManager,
80
- OcrDetectionMode: OCRDetectionMode,
81
- ComplianceManager,
82
- PdfALevel,
83
- PdfXLevel,
84
- PdfUALevel,
85
- ComplianceIssueType,
86
- IssueSeverity,
87
- SignatureManager,
88
- SignatureAlgorithm,
89
- DigestAlgorithm,
90
- BarcodeManager,
91
- BarcodeFormat,
92
- BarcodeErrorCorrection,
93
- FormFieldManager,
94
- FormFieldType,
95
- FieldVisibility,
96
- ResultAccessorsManager,
97
- SearchResultProperties,
98
- FontProperties,
99
- ImageProperties,
100
- AnnotationProperties,
101
- ThumbnailManager,
102
- ThumbnailSize,
103
- ImageFormat,
104
- HybridMLManager,
105
- PageComplexity,
106
- ContentType,
107
- XfaManager,
108
- XfaFormType,
109
- XfaFieldType,
110
- CacheManager,
111
- EditingManager,
112
- AccessibilityManager,
113
- OptimizationManager,
114
- EnterpriseManager,
115
- } = require('../lib/managers/index.js') as any;
116
- // OcrLanguage re-exported from canonical OcrManager
117
- const { OcrLanguage: OCRLanguage } = require('../lib/managers/ocr-manager.js') as any;
118
-
119
- /**
120
- * Platform-specific native module packages
121
- */
122
- const PLATFORMS: Record<string, Record<string, string>> = {
123
- 'darwin': {
124
- 'x64': 'pdf_oxide-darwin-x64',
125
- 'arm64': 'pdf_oxide-darwin-arm64',
126
- },
127
- 'linux': {
128
- 'x64': 'pdf_oxide-linux-x64-gnu',
129
- 'arm64': 'pdf_oxide-linux-arm64-gnu',
130
- },
131
- 'win32': {
132
- 'x64': 'pdf_oxide-win32-x64-msvc',
133
- 'arm64': 'pdf_oxide-win32-arm64-msvc',
134
- },
135
- };
136
-
137
- /**
138
- * Gets the native package name for the current platform and architecture
139
- * @returns Native package name
140
- * @throws Error if platform or architecture is not supported
141
- */
142
- function getNativePackageName(): string {
143
- const osPackages = PLATFORMS[platform];
144
- if (!osPackages) {
145
- throw new Error(`Unsupported platform: ${platform}. Supported platforms: ${Object.keys(PLATFORMS).join(', ')}`);
146
- }
147
-
148
- const pkg = osPackages[arch];
149
- if (!pkg) {
150
- throw new Error(`Unsupported architecture: ${arch} for ${platform}. Supported architectures: ${Object.keys(osPackages).join(', ')}`);
151
- }
152
-
153
- return pkg;
154
- }
155
-
156
- let nativeModule: any;
157
-
158
- /**
159
- * Loads the native module dynamically based on platform and architecture
160
- * @returns Native module
161
- * @throws Error if native module cannot be loaded
162
- */
163
- function loadNativeModule(): any {
164
- if (nativeModule) {
165
- return nativeModule;
166
- }
167
-
168
- try {
169
- // Try loading from platform-specific package first (CommonJS)
170
- const packageName = getNativePackageName();
171
- try {
172
- // Use require to load the native module
173
- nativeModule = require(packageName);
174
- } catch (e) {
175
- // Fallback to local binary if in development
176
- if (process.env.NODE_ENV === 'development' || process.env.NAPI_DEV) {
177
- try {
178
- nativeModule = require('./pdf-oxide');
179
- } catch {
180
- throw e;
181
- }
182
- } else {
183
- throw e;
184
- }
185
- }
186
- return nativeModule;
187
- } catch (error) {
188
- throw new Error(`Failed to load native module: ${(error as Error).message}`);
189
- }
190
- }
191
-
192
- // Load native module
193
- const native = loadNativeModule();
194
-
195
- /**
196
- * Wraps native class methods to convert errors to proper JavaScript Error subclasses.
197
- * This ensures that errors thrown from native code are instanceof the appropriate Error class.
198
- * @param nativeClass - The native class to wrap
199
- * @param asyncMethods - Names of async methods to wrap specially
200
- * @returns Wrapped class with error-handling methods
201
- */
202
- function wrapNativeClass(nativeClass: any, asyncMethods: string[] = []): any {
203
- if (!nativeClass) return nativeClass;
204
-
205
- // For static methods like PdfDocument.open()
206
- for (const key of Object.getOwnPropertyNames(nativeClass)) {
207
- if (key !== 'prototype' && key !== 'length' && key !== 'name' && typeof nativeClass[key] === 'function') {
208
- const isAsync = asyncMethods.includes(key);
209
- if (isAsync) {
210
- nativeClass[key] = wrapAsyncMethod(nativeClass[key], nativeClass);
211
- } else {
212
- nativeClass[key] = wrapMethod(nativeClass[key], nativeClass);
213
- }
214
- }
215
- }
216
-
217
- // For instance methods, wrap the prototype
218
- if (nativeClass.prototype) {
219
- for (const key of Object.getOwnPropertyNames(nativeClass.prototype)) {
220
- if (key !== 'constructor' && typeof nativeClass.prototype[key] === 'function') {
221
- const isAsync = asyncMethods.includes(key);
222
- const descriptor = Object.getOwnPropertyDescriptor(nativeClass.prototype, key);
223
- if (descriptor && descriptor.writable) {
224
- if (isAsync) {
225
- nativeClass.prototype[key] = wrapAsyncMethod(nativeClass.prototype[key]);
226
- } else {
227
- nativeClass.prototype[key] = wrapMethod(nativeClass.prototype[key]);
228
- }
229
- }
230
- }
231
- }
232
- }
233
-
234
- return nativeClass;
235
- }
236
-
237
- // List of async methods for each class (Phase 2.4 implementation)
238
- const asyncMethodsByClass: Record<string, string[]> = {
239
- PdfDocument: [
240
- 'extract_text_async',
241
- 'to_markdown_async',
242
- ],
243
- Pdf: [
244
- 'save_async',
245
- ],
246
- PdfBuilder: [],
247
- PdfPage: [],
248
- PdfElement: [],
249
- PdfText: [],
250
- PdfImage: [],
251
- PdfPath: [],
252
- PdfTable: [],
253
- PdfStructure: [],
254
- Annotation: [],
255
- TextAnnotation: [],
256
- HighlightAnnotation: [],
257
- LinkAnnotation: [],
258
- TextSearcher: [],
259
- };
260
-
261
- // Wrap native classes with error handling and property getters
262
- const wrappedClasses: Record<string, any> = {};
263
- for (const className of Object.keys(asyncMethodsByClass)) {
264
- if (native[className]) {
265
- wrappedClasses[className] = wrapNativeClass(native[className], asyncMethodsByClass[className]);
266
- }
267
- }
268
-
269
- // Add property getters to enhance idiomatic JavaScript API
270
- if (wrappedClasses.PdfDocument) {
271
- addPdfDocumentProperties(wrappedClasses.PdfDocument);
272
- }
273
- if (wrappedClasses.Pdf) {
274
- addPdfProperties(wrappedClasses.Pdf);
275
- }
276
- if (wrappedClasses.PdfPage) {
277
- addPdfPageProperties(wrappedClasses.PdfPage);
278
- }
279
-
280
- // Export as ES module
281
- const getVersion = native.getVersion;
282
- const getPdfOxideVersion = native.getPdfOxideVersion;
283
- const PdfDocument = wrappedClasses.PdfDocument || native.PdfDocument;
284
- const Pdf = wrappedClasses.Pdf || native.Pdf;
285
- // PdfBuilder is imported from ./builders/index - don't redeclare
286
- const PdfPage = wrappedClasses.PdfPage || native.PdfPage;
287
- const PdfElement = wrappedClasses.PdfElement || native.PdfElement;
288
- const PdfText = wrappedClasses.PdfText || native.PdfText;
289
- const PdfImage = wrappedClasses.PdfImage || native.PdfImage;
290
- const PdfPath = wrappedClasses.PdfPath || native.PdfPath;
291
- const PdfTable = wrappedClasses.PdfTable || native.PdfTable;
292
- const PdfStructure = wrappedClasses.PdfStructure || native.PdfStructure;
293
- const Annotation = wrappedClasses.Annotation || native.Annotation;
294
- const TextAnnotation = wrappedClasses.TextAnnotation || native.TextAnnotation;
295
- const HighlightAnnotation = wrappedClasses.HighlightAnnotation || native.HighlightAnnotation;
296
- const LinkAnnotation = wrappedClasses.LinkAnnotation || native.LinkAnnotation;
297
- const PdfError = PdfException;
298
- const PageSize = native.PageSize;
299
- const Rect = native.Rect;
300
- const Point = native.Point;
301
- const Color = native.Color;
302
- const ConversionOptions = native.ConversionOptions;
303
- const SearchOptions = native.SearchOptions;
304
- const SearchResult = native.SearchResult;
305
- const TextSearcher = wrappedClasses.TextSearcher || native.TextSearcher;
306
-
307
- export {
308
- // Version info
309
- getVersion,
310
- getPdfOxideVersion,
311
-
312
- // Main classes
313
- PdfDocument,
314
- Pdf,
315
- PdfPage,
316
-
317
- // Element types
318
- PdfElement,
319
- PdfText,
320
- PdfImage,
321
- PdfPath,
322
- PdfTable,
323
- PdfStructure,
324
-
325
- // Annotation types
326
- Annotation,
327
- TextAnnotation,
328
- HighlightAnnotation,
329
- LinkAnnotation,
330
-
331
- // Error types
332
- PdfError,
333
- PdfException,
334
- ParseException,
335
- IoException,
336
- EncryptionException,
337
- UnsupportedFeatureException,
338
- InvalidStateException,
339
- ValidationException,
340
- RenderingException,
341
- SearchException,
342
- ComplianceException,
343
- OcrException,
344
- SignatureException,
345
- CertificateLoadFailed,
346
- SigningFailed,
347
- RedactionException,
348
- AccessibilityException,
349
- OptimizationException,
350
- UnknownError,
351
-
352
- // Types
353
- PageSize,
354
- Rect,
355
- Point,
356
- Color,
357
- ConversionOptions,
358
- SearchOptions,
359
- SearchResult,
360
-
361
- // Utilities
362
- TextSearcher,
363
-
364
- // Error utilities
365
- ErrorCategory,
366
- ErrorSeverity,
367
- wrapError,
368
- wrapMethod,
369
- wrapAsyncMethod,
370
- mapFfiErrorCode,
371
-
372
- // Builders
373
- PdfBuilder,
374
- ConversionOptionsBuilder,
375
- MetadataBuilder,
376
- AnnotationBuilder,
377
- SearchOptionsBuilder,
378
-
379
- // Managers (Phase 1-3: Core)
380
- OutlineManager,
381
- MetadataManager,
382
- ExtractionManager,
383
- SearchManager,
384
- SecurityManager,
385
- AnnotationManager,
386
- LayerManager,
387
- RenderingManager,
388
-
389
- // Managers (Phase 4+, consolidated in Phase 9)
390
- OcrManager,
391
- OCRManager,
392
- OCRLanguage,
393
- OCRDetectionMode,
394
- ComplianceManager,
395
- PdfALevel,
396
- PdfXLevel,
397
- PdfUALevel,
398
- ComplianceIssueType,
399
- IssueSeverity,
400
- SignatureManager,
401
- SignatureAlgorithm,
402
- DigestAlgorithm,
403
- BarcodeManager,
404
- BarcodeFormat,
405
- BarcodeErrorCorrection,
406
- FormFieldManager,
407
- FormFieldType,
408
- FieldVisibility,
409
- ResultAccessorsManager,
410
- SearchResultProperties,
411
- FontProperties,
412
- ImageProperties,
413
- AnnotationProperties,
414
- ThumbnailManager,
415
- ThumbnailSize,
416
- ImageFormat,
417
- HybridMLManager,
418
- PageComplexity,
419
- ContentType,
420
- XfaManager,
421
- XfaFormType,
422
- XfaFieldType,
423
- CacheManager,
424
- EditingManager,
425
- AccessibilityManager,
426
- OptimizationManager,
427
- EnterpriseManager,
428
-
429
- // Phase 2.4: Stream API
430
- SearchStream,
431
- ExtractionStream,
432
- MetadataStream,
433
- createSearchStream,
434
- createExtractionStream,
435
- createMetadataStream,
436
-
437
- // Phase 2.5: Batch Processing API
438
- BatchManager,
439
-
440
- // Worker Threads API
441
- WorkerPool,
442
- workerPool,
443
- };
444
-
445
- export type {
446
- WorkerTask,
447
- WorkerResult,
448
- BatchDocument,
449
- BatchProgress,
450
- BatchResult,
451
- BatchOptions,
452
- BatchStatistics,
453
- };