pdf-oxide-fips 0.3.47

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 (127) hide show
  1. package/LICENSE-APACHE +176 -0
  2. package/LICENSE-MIT +25 -0
  3. package/README.md +218 -0
  4. package/lib/builders/annotation-builder.d.ts +198 -0
  5. package/lib/builders/annotation-builder.js +317 -0
  6. package/lib/builders/conversion-options-builder.d.ts +106 -0
  7. package/lib/builders/conversion-options-builder.js +214 -0
  8. package/lib/builders/document-builder.d.ts +381 -0
  9. package/lib/builders/document-builder.js +770 -0
  10. package/lib/builders/index.d.ts +13 -0
  11. package/lib/builders/index.js +13 -0
  12. package/lib/builders/metadata-builder.d.ts +201 -0
  13. package/lib/builders/metadata-builder.js +285 -0
  14. package/lib/builders/pdf-builder.d.ts +216 -0
  15. package/lib/builders/pdf-builder.js +350 -0
  16. package/lib/builders/search-options-builder.d.ts +73 -0
  17. package/lib/builders/search-options-builder.js +129 -0
  18. package/lib/builders/streaming-table.d.ts +64 -0
  19. package/lib/builders/streaming-table.js +140 -0
  20. package/lib/document-editor-manager.d.ts +139 -0
  21. package/lib/document-editor-manager.js +256 -0
  22. package/lib/document-editor.d.ts +124 -0
  23. package/lib/document-editor.js +318 -0
  24. package/lib/errors.d.ts +382 -0
  25. package/lib/errors.js +1115 -0
  26. package/lib/form-field-manager.d.ts +299 -0
  27. package/lib/form-field-manager.js +568 -0
  28. package/lib/hybrid-ml-manager.d.ts +142 -0
  29. package/lib/hybrid-ml-manager.js +208 -0
  30. package/lib/index.d.ts +205 -0
  31. package/lib/index.js +693 -0
  32. package/lib/managers/accessibility-manager.d.ts +148 -0
  33. package/lib/managers/accessibility-manager.js +234 -0
  34. package/lib/managers/annotation-manager.d.ts +219 -0
  35. package/lib/managers/annotation-manager.js +359 -0
  36. package/lib/managers/barcode-manager.d.ts +82 -0
  37. package/lib/managers/barcode-manager.js +263 -0
  38. package/lib/managers/batch-manager.d.ts +185 -0
  39. package/lib/managers/batch-manager.js +385 -0
  40. package/lib/managers/cache-manager.d.ts +181 -0
  41. package/lib/managers/cache-manager.js +384 -0
  42. package/lib/managers/compliance-manager.d.ts +103 -0
  43. package/lib/managers/compliance-manager.js +453 -0
  44. package/lib/managers/content-manager.d.ts +120 -0
  45. package/lib/managers/content-manager.js +294 -0
  46. package/lib/managers/document-utility-manager.d.ts +369 -0
  47. package/lib/managers/document-utility-manager.js +730 -0
  48. package/lib/managers/dom-pdf-creator.d.ts +104 -0
  49. package/lib/managers/dom-pdf-creator.js +299 -0
  50. package/lib/managers/editing-manager.d.ts +248 -0
  51. package/lib/managers/editing-manager.js +387 -0
  52. package/lib/managers/enterprise-manager.d.ts +192 -0
  53. package/lib/managers/enterprise-manager.js +307 -0
  54. package/lib/managers/extended-managers.d.ts +122 -0
  55. package/lib/managers/extended-managers.js +664 -0
  56. package/lib/managers/extraction-manager.d.ts +246 -0
  57. package/lib/managers/extraction-manager.js +482 -0
  58. package/lib/managers/final-utilities.d.ts +127 -0
  59. package/lib/managers/final-utilities.js +657 -0
  60. package/lib/managers/hybrid-ml-advanced.d.ts +136 -0
  61. package/lib/managers/hybrid-ml-advanced.js +722 -0
  62. package/lib/managers/index.d.ts +64 -0
  63. package/lib/managers/index.js +69 -0
  64. package/lib/managers/layer-manager.d.ts +203 -0
  65. package/lib/managers/layer-manager.js +401 -0
  66. package/lib/managers/metadata-manager.d.ts +148 -0
  67. package/lib/managers/metadata-manager.js +280 -0
  68. package/lib/managers/ocr-manager.d.ts +194 -0
  69. package/lib/managers/ocr-manager.js +582 -0
  70. package/lib/managers/optimization-manager.d.ts +102 -0
  71. package/lib/managers/optimization-manager.js +213 -0
  72. package/lib/managers/outline-manager.d.ts +101 -0
  73. package/lib/managers/outline-manager.js +169 -0
  74. package/lib/managers/page-manager.d.ts +142 -0
  75. package/lib/managers/page-manager.js +235 -0
  76. package/lib/managers/pattern-detection.d.ts +169 -0
  77. package/lib/managers/pattern-detection.js +322 -0
  78. package/lib/managers/rendering-manager.d.ts +353 -0
  79. package/lib/managers/rendering-manager.js +679 -0
  80. package/lib/managers/search-manager.d.ts +235 -0
  81. package/lib/managers/search-manager.js +329 -0
  82. package/lib/managers/security-manager.d.ts +161 -0
  83. package/lib/managers/security-manager.js +292 -0
  84. package/lib/managers/signature-manager.d.ts +738 -0
  85. package/lib/managers/signature-manager.js +1509 -0
  86. package/lib/managers/streams.d.ts +262 -0
  87. package/lib/managers/streams.js +477 -0
  88. package/lib/managers/xfa-manager.d.ts +227 -0
  89. package/lib/managers/xfa-manager.js +539 -0
  90. package/lib/native-loader.d.ts +7 -0
  91. package/lib/native-loader.js +62 -0
  92. package/lib/native.d.ts +16 -0
  93. package/lib/native.js +69 -0
  94. package/lib/pdf-creator-manager.d.ts +200 -0
  95. package/lib/pdf-creator-manager.js +381 -0
  96. package/lib/properties.d.ts +79 -0
  97. package/lib/properties.js +454 -0
  98. package/lib/result-accessors-manager.d.ts +346 -0
  99. package/lib/result-accessors-manager.js +706 -0
  100. package/lib/thumbnail-manager.d.ts +121 -0
  101. package/lib/thumbnail-manager.js +205 -0
  102. package/lib/timestamp.d.ts +54 -0
  103. package/lib/timestamp.js +115 -0
  104. package/lib/tsa-client.d.ts +44 -0
  105. package/lib/tsa-client.js +67 -0
  106. package/lib/types/common.d.ts +189 -0
  107. package/lib/types/common.js +17 -0
  108. package/lib/types/document-types.d.ts +352 -0
  109. package/lib/types/document-types.js +82 -0
  110. package/lib/types/index.d.ts +5 -0
  111. package/lib/types/index.js +5 -0
  112. package/lib/types/manager-types.d.ts +179 -0
  113. package/lib/types/manager-types.js +100 -0
  114. package/lib/types/native-bindings.d.ts +439 -0
  115. package/lib/types/native-bindings.js +7 -0
  116. package/lib/workers/index.d.ts +6 -0
  117. package/lib/workers/index.js +5 -0
  118. package/lib/workers/pool.d.ts +64 -0
  119. package/lib/workers/pool.js +192 -0
  120. package/lib/workers/worker.d.ts +5 -0
  121. package/lib/workers/worker.js +99 -0
  122. package/package.json +79 -0
  123. package/prebuilds/darwin-arm64/pdf_oxide.node +0 -0
  124. package/prebuilds/darwin-x64/pdf_oxide.node +0 -0
  125. package/prebuilds/linux-arm64/pdf_oxide.node +0 -0
  126. package/prebuilds/linux-x64/pdf_oxide.node +0 -0
  127. package/prebuilds/win32-x64/pdf_oxide.node +0 -0
@@ -0,0 +1,454 @@
1
+ /**
2
+ * PDF Oxide Property Getters for Node.js
3
+ *
4
+ * Adds JavaScript property getters to native classes for idiomatic API.
5
+ * Converts Java-style getters (getPageCount()) to JavaScript properties (pageCount).
6
+ * Caches results where appropriate for performance.
7
+ */
8
+ /**
9
+ * Adds property getters to PdfDocument class
10
+ * Converts methods to idiomatic JavaScript properties
11
+ *
12
+ * @param PdfDocument - The native PdfDocument class
13
+ * @returns Enhanced PdfDocument class with property getters
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const { PdfDocument } = require('pdf_oxide');
18
+ * const doc = PdfDocument.open('file.pdf');
19
+ * console.log(doc.pageCount); // Instead of doc.get_page_count()
20
+ * console.log(doc.version); // Instead of doc.get_version()
21
+ * ```
22
+ */
23
+ export function addPdfDocumentProperties(PdfDocument) {
24
+ if (!PdfDocument || !PdfDocument.prototype) {
25
+ return PdfDocument;
26
+ }
27
+ const prototype = PdfDocument.prototype;
28
+ // Cache for frequently accessed properties
29
+ const cache = new WeakMap();
30
+ /**
31
+ * Gets the PDF version as [major, minor]
32
+ * Caches result for performance
33
+ */
34
+ Object.defineProperty(prototype, 'version', {
35
+ get() {
36
+ if (!cache.has(this)) {
37
+ cache.set(this, {});
38
+ }
39
+ const obj = cache.get(this);
40
+ if (!obj.version) {
41
+ obj.version = this.get_version ? this.get_version() : [1, 4];
42
+ }
43
+ return obj.version;
44
+ },
45
+ configurable: true,
46
+ enumerable: true,
47
+ });
48
+ /**
49
+ * Gets the number of pages
50
+ * Caches result for performance
51
+ */
52
+ Object.defineProperty(prototype, 'pageCount', {
53
+ get() {
54
+ if (!cache.has(this)) {
55
+ cache.set(this, {});
56
+ }
57
+ const obj = cache.get(this);
58
+ if (obj.pageCount === undefined) {
59
+ try {
60
+ obj.pageCount = this.get_page_count ? this.get_page_count() : 0;
61
+ }
62
+ catch (err) {
63
+ throw err;
64
+ }
65
+ }
66
+ return obj.pageCount;
67
+ },
68
+ configurable: true,
69
+ enumerable: true,
70
+ });
71
+ /**
72
+ * Checks if document has structure tree (Tagged PDF)
73
+ */
74
+ Object.defineProperty(prototype, 'hasStructureTree', {
75
+ get() {
76
+ return this.has_structure_tree ? this.has_structure_tree() : false;
77
+ },
78
+ configurable: true,
79
+ enumerable: true,
80
+ });
81
+ /**
82
+ * Gets document information metadata
83
+ */
84
+ Object.defineProperty(prototype, 'documentInfo', {
85
+ get() {
86
+ if (!cache.has(this)) {
87
+ cache.set(this, {});
88
+ }
89
+ const obj = cache.get(this);
90
+ if (!obj.documentInfo) {
91
+ try {
92
+ obj.documentInfo = this.get_document_info ? this.get_document_info() : {};
93
+ }
94
+ catch (err) {
95
+ throw err;
96
+ }
97
+ }
98
+ return obj.documentInfo;
99
+ },
100
+ configurable: true,
101
+ enumerable: true,
102
+ });
103
+ /**
104
+ * Gets document XMP metadata
105
+ */
106
+ Object.defineProperty(prototype, 'metadata', {
107
+ get() {
108
+ if (!cache.has(this)) {
109
+ cache.set(this, {});
110
+ }
111
+ const obj = cache.get(this);
112
+ if (!obj.metadata) {
113
+ try {
114
+ obj.metadata = this.get_metadata ? this.get_metadata() : {};
115
+ }
116
+ catch (err) {
117
+ throw err;
118
+ }
119
+ }
120
+ return obj.metadata;
121
+ },
122
+ configurable: true,
123
+ enumerable: true,
124
+ });
125
+ /**
126
+ * Gets document forms (AcroForm)
127
+ */
128
+ Object.defineProperty(prototype, 'forms', {
129
+ get() {
130
+ if (!cache.has(this)) {
131
+ cache.set(this, {});
132
+ }
133
+ const obj = cache.get(this);
134
+ if (!obj.forms) {
135
+ try {
136
+ obj.forms = this.get_forms ? this.get_forms() : null;
137
+ }
138
+ catch (err) {
139
+ throw err;
140
+ }
141
+ }
142
+ return obj.forms;
143
+ },
144
+ configurable: true,
145
+ enumerable: true,
146
+ });
147
+ /**
148
+ * Gets page labels
149
+ */
150
+ Object.defineProperty(prototype, 'pageLabels', {
151
+ get() {
152
+ if (!cache.has(this)) {
153
+ cache.set(this, {});
154
+ }
155
+ const obj = cache.get(this);
156
+ if (!obj.pageLabels) {
157
+ try {
158
+ obj.pageLabels = this.get_page_labels ? this.get_page_labels() : [];
159
+ }
160
+ catch (err) {
161
+ throw err;
162
+ }
163
+ }
164
+ return obj.pageLabels;
165
+ },
166
+ configurable: true,
167
+ enumerable: true,
168
+ });
169
+ /**
170
+ * Gets embedded files
171
+ */
172
+ Object.defineProperty(prototype, 'embeddedFiles', {
173
+ get() {
174
+ if (!cache.has(this)) {
175
+ cache.set(this, {});
176
+ }
177
+ const obj = cache.get(this);
178
+ if (!obj.embeddedFiles) {
179
+ try {
180
+ obj.embeddedFiles = this.get_embedded_files ? this.get_embedded_files() : [];
181
+ }
182
+ catch (err) {
183
+ throw err;
184
+ }
185
+ }
186
+ return obj.embeddedFiles;
187
+ },
188
+ configurable: true,
189
+ enumerable: true,
190
+ });
191
+ return PdfDocument;
192
+ }
193
+ /**
194
+ * Adds property getters to Pdf class
195
+ *
196
+ * @param Pdf - The native Pdf class
197
+ * @returns Enhanced Pdf class with property getters
198
+ *
199
+ * @example
200
+ * ```typescript
201
+ * const { Pdf } = require('pdf_oxide');
202
+ * const doc = Pdf.fromMarkdown('# Hello');
203
+ * console.log(doc.pageCount); // Instead of doc.get_page_count()
204
+ * console.log(doc.version); // Instead of doc.get_version()
205
+ * ```
206
+ */
207
+ export function addPdfProperties(Pdf) {
208
+ if (!Pdf || !Pdf.prototype) {
209
+ return Pdf;
210
+ }
211
+ const prototype = Pdf.prototype;
212
+ const cache = new WeakMap();
213
+ /**
214
+ * Gets the PDF version as [major, minor]
215
+ */
216
+ Object.defineProperty(prototype, 'version', {
217
+ get() {
218
+ if (!cache.has(this)) {
219
+ cache.set(this, {});
220
+ }
221
+ const obj = cache.get(this);
222
+ if (!obj.version) {
223
+ obj.version = this.get_version ? this.get_version() : [1, 4];
224
+ }
225
+ return obj.version;
226
+ },
227
+ configurable: true,
228
+ enumerable: true,
229
+ });
230
+ /**
231
+ * Gets the number of pages
232
+ */
233
+ Object.defineProperty(prototype, 'pageCount', {
234
+ get() {
235
+ if (!cache.has(this)) {
236
+ cache.set(this, {});
237
+ }
238
+ const obj = cache.get(this);
239
+ if (obj.pageCount === undefined) {
240
+ try {
241
+ obj.pageCount = this.get_page_count ? this.get_page_count() : 0;
242
+ }
243
+ catch (err) {
244
+ throw err;
245
+ }
246
+ }
247
+ return obj.pageCount;
248
+ },
249
+ configurable: true,
250
+ enumerable: true,
251
+ });
252
+ /**
253
+ * Gets document information metadata
254
+ */
255
+ Object.defineProperty(prototype, 'documentInfo', {
256
+ get() {
257
+ if (!cache.has(this)) {
258
+ cache.set(this, {});
259
+ }
260
+ const obj = cache.get(this);
261
+ if (!obj.documentInfo) {
262
+ try {
263
+ obj.documentInfo = this.get_document_info ? this.get_document_info() : {};
264
+ }
265
+ catch (err) {
266
+ throw err;
267
+ }
268
+ }
269
+ return obj.documentInfo;
270
+ },
271
+ configurable: true,
272
+ enumerable: true,
273
+ });
274
+ /**
275
+ * Gets document XMP metadata
276
+ */
277
+ Object.defineProperty(prototype, 'metadata', {
278
+ get() {
279
+ if (!cache.has(this)) {
280
+ cache.set(this, {});
281
+ }
282
+ const obj = cache.get(this);
283
+ if (!obj.metadata) {
284
+ try {
285
+ obj.metadata = this.get_metadata ? this.get_metadata() : {};
286
+ }
287
+ catch (err) {
288
+ throw err;
289
+ }
290
+ }
291
+ return obj.metadata;
292
+ },
293
+ configurable: true,
294
+ enumerable: true,
295
+ });
296
+ /**
297
+ * Gets document forms
298
+ */
299
+ Object.defineProperty(prototype, 'forms', {
300
+ get() {
301
+ if (!cache.has(this)) {
302
+ cache.set(this, {});
303
+ }
304
+ const obj = cache.get(this);
305
+ if (!obj.forms) {
306
+ try {
307
+ obj.forms = this.get_forms ? this.get_forms() : null;
308
+ }
309
+ catch (err) {
310
+ throw err;
311
+ }
312
+ }
313
+ return obj.forms;
314
+ },
315
+ configurable: true,
316
+ enumerable: true,
317
+ });
318
+ return Pdf;
319
+ }
320
+ /**
321
+ * Adds property getters to PdfPage class
322
+ *
323
+ * @param PdfPage - The native PdfPage class
324
+ * @returns Enhanced PdfPage class with property getters
325
+ *
326
+ * @example
327
+ * ```typescript
328
+ * const page = doc.page(0);
329
+ * console.log(page.width); // Instead of page.get_width()
330
+ * console.log(page.height); // Instead of page.get_height()
331
+ * console.log(page.pageIndex); // Instead of page.get_page_index()
332
+ * ```
333
+ */
334
+ export function addPdfPageProperties(PdfPage) {
335
+ if (!PdfPage || !PdfPage.prototype) {
336
+ return PdfPage;
337
+ }
338
+ const prototype = PdfPage.prototype;
339
+ const cache = new WeakMap();
340
+ /**
341
+ * Gets the page index (zero-based)
342
+ */
343
+ Object.defineProperty(prototype, 'pageIndex', {
344
+ get() {
345
+ return this.get_page_index ? this.get_page_index() : 0;
346
+ },
347
+ configurable: true,
348
+ enumerable: true,
349
+ });
350
+ /**
351
+ * Gets the page width in points
352
+ */
353
+ Object.defineProperty(prototype, 'width', {
354
+ get() {
355
+ return this.get_width ? this.get_width() : 612.0;
356
+ },
357
+ configurable: true,
358
+ enumerable: true,
359
+ });
360
+ /**
361
+ * Gets the page height in points
362
+ */
363
+ Object.defineProperty(prototype, 'height', {
364
+ get() {
365
+ return this.get_height ? this.get_height() : 792.0;
366
+ },
367
+ configurable: true,
368
+ enumerable: true,
369
+ });
370
+ /**
371
+ * Gets the page bounds as a Rect
372
+ */
373
+ Object.defineProperty(prototype, 'bounds', {
374
+ get() {
375
+ if (!cache.has(this)) {
376
+ cache.set(this, {});
377
+ }
378
+ const obj = cache.get(this);
379
+ if (!obj.bounds) {
380
+ if (this.get_bounds) {
381
+ obj.bounds = this.get_bounds();
382
+ }
383
+ else {
384
+ // Return default bounds [0, 0, width, height]
385
+ obj.bounds = {
386
+ x: 0,
387
+ y: 0,
388
+ width: this.width || 612.0,
389
+ height: this.height || 792.0,
390
+ };
391
+ }
392
+ }
393
+ return obj.bounds;
394
+ },
395
+ configurable: true,
396
+ enumerable: true,
397
+ });
398
+ /**
399
+ * Gets the page orientation (portrait or landscape)
400
+ */
401
+ Object.defineProperty(prototype, 'orientation', {
402
+ get() {
403
+ const width = this.width || 612.0;
404
+ const height = this.height || 792.0;
405
+ return height >= width ? 'portrait' : 'landscape';
406
+ },
407
+ configurable: true,
408
+ enumerable: true,
409
+ });
410
+ /**
411
+ * Gets the page aspect ratio (width / height)
412
+ */
413
+ Object.defineProperty(prototype, 'aspectRatio', {
414
+ get() {
415
+ const width = this.width || 612.0;
416
+ const height = this.height || 792.0;
417
+ return width / height;
418
+ },
419
+ configurable: true,
420
+ enumerable: true,
421
+ });
422
+ return PdfPage;
423
+ }
424
+ /**
425
+ * Adds property getters to all supported classes
426
+ *
427
+ * @param classes - Object with class references
428
+ * @returns Object with enhanced classes
429
+ *
430
+ * @example
431
+ * ```typescript
432
+ * const classes = {
433
+ * PdfDocument,
434
+ * Pdf,
435
+ * PdfPage,
436
+ * PdfElement,
437
+ * PdfText,
438
+ * PdfImage,
439
+ * };
440
+ * const enhanced = addPropertiesToAll(classes);
441
+ * ```
442
+ */
443
+ export function addPropertiesToAll(classes) {
444
+ if (classes.PdfDocument) {
445
+ classes.PdfDocument = addPdfDocumentProperties(classes.PdfDocument);
446
+ }
447
+ if (classes.Pdf) {
448
+ classes.Pdf = addPdfProperties(classes.Pdf);
449
+ }
450
+ if (classes.PdfPage) {
451
+ classes.PdfPage = addPdfPageProperties(classes.PdfPage);
452
+ }
453
+ return classes;
454
+ }