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,262 @@
1
+ /**
2
+ * Stream API support for PDF Oxide Node.js
3
+ *
4
+ * Provides Readable streams for search results, text extraction, and page metadata.
5
+ * Supports backpressure handling and proper Node.js stream semantics.
6
+ *
7
+ * Phase 2.4 implementation for idiomatic Node.js patterns with Stream API.
8
+ */
9
+ import { Readable } from 'node:stream';
10
+ /**
11
+ * SearchResult emitted by SearchStream
12
+ */
13
+ export interface SearchResultData {
14
+ text?: string;
15
+ pageIndex?: number;
16
+ position?: number;
17
+ boundingBox?: Record<string, number>;
18
+ }
19
+ /**
20
+ * ExtractionProgress emitted by ExtractionStream
21
+ */
22
+ export interface ExtractionProgressData {
23
+ pageIndex: number;
24
+ totalPages: number;
25
+ extractedText: string;
26
+ extractionType: 'text' | 'markdown' | 'html';
27
+ progress: number;
28
+ }
29
+ /**
30
+ * PageMetadata emitted by MetadataStream
31
+ */
32
+ export interface PageMetadataData {
33
+ pageIndex: number;
34
+ width: number;
35
+ height: number;
36
+ fontCount: number;
37
+ imageCount: number;
38
+ rotation: number;
39
+ }
40
+ /**
41
+ * Readable stream for search results
42
+ *
43
+ * Emits search results one at a time with proper backpressure handling.
44
+ * Supports searching either a specific page or the entire document.
45
+ *
46
+ * Supports both traditional stream API (.on('data')) and async iteration (for await...of).
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * // Traditional stream API
51
+ * const stream = new SearchStream(searchManager, 'keyword');
52
+ * stream.on('data', (result) => {
53
+ * console.log(`Found on page ${result.pageIndex}: ${result.text}`);
54
+ * });
55
+ *
56
+ * // Async iteration
57
+ * const stream = new SearchStream(searchManager, 'keyword');
58
+ * for await (const result of stream) {
59
+ * console.log(`Found on page ${result.pageIndex}: ${result.text}`);
60
+ * }
61
+ * ```
62
+ */
63
+ export declare class SearchStream extends Readable {
64
+ private searchManager;
65
+ private searchTerm;
66
+ private options;
67
+ private pageIndex;
68
+ private caseSensitive;
69
+ private wholeWords;
70
+ private maxResults;
71
+ private _results;
72
+ private _currentIndex;
73
+ private _resultCount;
74
+ private _initialized;
75
+ private _ended;
76
+ /**
77
+ * Creates a new SearchStream
78
+ * @param searchManager - The search manager instance
79
+ * @param searchTerm - Text to search for
80
+ * @param options - Search options
81
+ * @throws Error if parameters are invalid
82
+ */
83
+ constructor(searchManager: any, searchTerm: string, options?: Record<string, any>);
84
+ /**
85
+ * Initialize results (lazy initialization)
86
+ * @private
87
+ */
88
+ private _initialize;
89
+ /**
90
+ * Implement _read() for readable stream
91
+ * @private
92
+ */
93
+ _read(): void;
94
+ /**
95
+ * Implement async iteration protocol for `for await...of` support
96
+ * @returns AsyncIterator for iterating over search results
97
+ */
98
+ [Symbol.asyncIterator](): AsyncGenerator<SearchResultData, undefined, unknown>;
99
+ }
100
+ /**
101
+ * Readable stream for text extraction with progress tracking
102
+ *
103
+ * Emits extraction progress for each page with progress percentage.
104
+ * Supports multiple extraction formats: text, markdown, html.
105
+ * Supports both traditional stream API and async iteration.
106
+ *
107
+ * @example
108
+ * ```typescript
109
+ * // Traditional stream API
110
+ * const stream = new ExtractionStream(extractionManager, 0, 10, 'markdown');
111
+ * stream.on('data', (progress) => {
112
+ * console.log(`Progress: ${Math.round(progress.progress * 100)}%`);
113
+ * console.log(`Page ${progress.pageIndex + 1}: ${progress.extractedText.length} chars`);
114
+ * });
115
+ *
116
+ * // Async iteration
117
+ * const stream = new ExtractionStream(extractionManager, 0, 10, 'markdown');
118
+ * for await (const progress of stream) {
119
+ * console.log(`Progress: ${Math.round(progress.progress * 100)}%`);
120
+ * }
121
+ * ```
122
+ */
123
+ export declare class ExtractionStream extends Readable {
124
+ private extractionManager;
125
+ private startPage;
126
+ private endPage;
127
+ private extractionType;
128
+ private options;
129
+ private _currentPage;
130
+ private _totalPages;
131
+ private _ended;
132
+ /**
133
+ * Creates a new ExtractionStream
134
+ * @param extractionManager - The extraction manager instance
135
+ * @param startPage - Starting page index (inclusive)
136
+ * @param endPage - Ending page index (exclusive)
137
+ * @param extractionType - 'text', 'markdown', or 'html'
138
+ * @param options - Additional extraction options
139
+ * @throws Error if parameters are invalid
140
+ */
141
+ constructor(extractionManager: any, startPage: number, endPage: number, extractionType?: 'text' | 'markdown' | 'html', options?: Record<string, any>);
142
+ /**
143
+ * Implement _read() for readable stream
144
+ * @private
145
+ */
146
+ _read(): void;
147
+ /**
148
+ * Implement async iteration protocol for `for await...of` support
149
+ * @returns AsyncGenerator for iterating over extraction progress
150
+ */
151
+ [Symbol.asyncIterator](): AsyncGenerator<ExtractionProgressData, undefined, unknown>;
152
+ }
153
+ /**
154
+ * Readable stream for page metadata retrieval
155
+ *
156
+ * Emits page metadata (dimensions, fonts, images) for each page in range.
157
+ * Supports lazy loading of metadata per page.
158
+ * Supports both traditional stream API and async iteration.
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * // Traditional stream API
163
+ * const stream = new MetadataStream(renderingManager, 0, 10);
164
+ * stream.on('data', (metadata) => {
165
+ * console.log(`Page ${metadata.pageIndex + 1}: ${metadata.width}x${metadata.height}`);
166
+ * console.log(` Fonts: ${metadata.fontCount}, Images: ${metadata.imageCount}`);
167
+ * });
168
+ *
169
+ * // Async iteration
170
+ * const stream = new MetadataStream(renderingManager, 0, 10);
171
+ * for await (const metadata of stream) {
172
+ * console.log(`Page ${metadata.pageIndex + 1}: ${metadata.width}x${metadata.height}`);
173
+ * }
174
+ * ```
175
+ */
176
+ export declare class MetadataStream extends Readable {
177
+ private renderingManager;
178
+ private startPage;
179
+ private endPage;
180
+ private _currentPage;
181
+ private _ended;
182
+ /**
183
+ * Creates a new MetadataStream
184
+ * @param renderingManager - The rendering manager instance
185
+ * @param startPage - Starting page index (inclusive)
186
+ * @param endPage - Ending page index (exclusive)
187
+ * @throws Error if parameters are invalid
188
+ */
189
+ constructor(renderingManager: any, startPage: number, endPage: number);
190
+ /**
191
+ * Implement _read() for readable stream
192
+ * @private
193
+ */
194
+ _read(): void;
195
+ /**
196
+ * Implement async iteration protocol for `for await...of` support
197
+ * @returns AsyncGenerator for iterating over page metadata
198
+ */
199
+ [Symbol.asyncIterator](): AsyncGenerator<PageMetadataData, undefined, unknown>;
200
+ }
201
+ /**
202
+ * Creates a readable stream for search results
203
+ *
204
+ * Convenience function to create a SearchStream instance.
205
+ *
206
+ * @param searchManager - The search manager
207
+ * @param searchTerm - Text to search for
208
+ * @param options - Search options
209
+ * @returns A readable stream of search results
210
+ *
211
+ * @example
212
+ * ```typescript
213
+ * createSearchStream(manager, 'error')
214
+ * .pipe(through2.obj((result, enc, cb) => {
215
+ * console.log(`Found: ${result.text}`);
216
+ * cb();
217
+ * }));
218
+ * ```
219
+ */
220
+ export declare function createSearchStream(searchManager: any, searchTerm: string, options?: Record<string, any>): SearchStream;
221
+ /**
222
+ * Creates a readable stream for extraction with progress
223
+ *
224
+ * Convenience function to create an ExtractionStream instance.
225
+ *
226
+ * @param extractionManager - The extraction manager
227
+ * @param startPage - Starting page index
228
+ * @param endPage - Ending page index
229
+ * @param extractionType - Extraction format
230
+ * @param options - Additional options
231
+ * @returns A readable stream of extraction progress
232
+ *
233
+ * @example
234
+ * ```typescript
235
+ * createExtractionStream(manager, 0, 10, 'markdown')
236
+ * .pipe(through2.obj((progress, enc, cb) => {
237
+ * console.log(`${Math.round(progress.progress * 100)}% complete`);
238
+ * cb();
239
+ * }));
240
+ * ```
241
+ */
242
+ export declare function createExtractionStream(extractionManager: any, startPage: number, endPage: number, extractionType?: 'text' | 'markdown' | 'html', options?: Record<string, any>): ExtractionStream;
243
+ /**
244
+ * Creates a readable stream for page metadata
245
+ *
246
+ * Convenience function to create a MetadataStream instance.
247
+ *
248
+ * @param renderingManager - The rendering manager
249
+ * @param startPage - Starting page index
250
+ * @param endPage - Ending page index
251
+ * @returns A readable stream of page metadata
252
+ *
253
+ * @example
254
+ * ```typescript
255
+ * createMetadataStream(manager, 0, 10)
256
+ * .pipe(through2.obj((metadata, enc, cb) => {
257
+ * console.log(`Page ${metadata.pageIndex}: ${metadata.width}x${metadata.height}`);
258
+ * cb();
259
+ * }));
260
+ * ```
261
+ */
262
+ export declare function createMetadataStream(renderingManager: any, startPage: number, endPage: number): MetadataStream;