pdf-oxide 0.3.24 → 0.3.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/lib/builders/annotation-builder.d.ts +199 -0
  2. package/lib/builders/annotation-builder.d.ts.map +1 -0
  3. package/lib/builders/annotation-builder.js +318 -0
  4. package/lib/builders/annotation-builder.js.map +1 -0
  5. package/lib/builders/conversion-options-builder.d.ts +107 -0
  6. package/lib/builders/conversion-options-builder.d.ts.map +1 -0
  7. package/lib/builders/conversion-options-builder.js +215 -0
  8. package/lib/builders/conversion-options-builder.js.map +1 -0
  9. package/{src/builders/index.ts → lib/builders/index.d.ts} +1 -1
  10. package/lib/builders/index.d.ts.map +1 -0
  11. package/lib/builders/index.js +12 -0
  12. package/lib/builders/index.js.map +1 -0
  13. package/lib/builders/metadata-builder.d.ts +202 -0
  14. package/lib/builders/metadata-builder.d.ts.map +1 -0
  15. package/lib/builders/metadata-builder.js +286 -0
  16. package/lib/builders/metadata-builder.js.map +1 -0
  17. package/lib/builders/pdf-builder.d.ts +215 -0
  18. package/lib/builders/pdf-builder.d.ts.map +1 -0
  19. package/lib/builders/pdf-builder.js +339 -0
  20. package/lib/builders/pdf-builder.js.map +1 -0
  21. package/lib/builders/search-options-builder.d.ts +74 -0
  22. package/lib/builders/search-options-builder.d.ts.map +1 -0
  23. package/lib/builders/search-options-builder.js +130 -0
  24. package/lib/builders/search-options-builder.js.map +1 -0
  25. package/lib/document-editor-manager.d.ts +140 -0
  26. package/lib/document-editor-manager.d.ts.map +1 -0
  27. package/lib/document-editor-manager.js +257 -0
  28. package/lib/document-editor-manager.js.map +1 -0
  29. package/lib/errors.d.ts +383 -0
  30. package/lib/errors.d.ts.map +1 -0
  31. package/lib/errors.js +1117 -0
  32. package/lib/errors.js.map +1 -0
  33. package/lib/form-field-manager.d.ts +300 -0
  34. package/lib/form-field-manager.d.ts.map +1 -0
  35. package/lib/form-field-manager.js +567 -0
  36. package/lib/form-field-manager.js.map +1 -0
  37. package/lib/hybrid-ml-manager.d.ts +143 -0
  38. package/lib/hybrid-ml-manager.d.ts.map +1 -0
  39. package/lib/hybrid-ml-manager.js +209 -0
  40. package/lib/hybrid-ml-manager.js.map +1 -0
  41. package/lib/index.d.ts +23 -0
  42. package/lib/index.d.ts.map +1 -0
  43. package/lib/index.js +280 -0
  44. package/lib/index.js.map +1 -0
  45. package/lib/managers/accessibility-manager.d.ts +149 -0
  46. package/lib/managers/accessibility-manager.d.ts.map +1 -0
  47. package/lib/managers/accessibility-manager.js +224 -0
  48. package/lib/managers/accessibility-manager.js.map +1 -0
  49. package/lib/managers/annotation-manager.d.ts +220 -0
  50. package/lib/managers/annotation-manager.d.ts.map +1 -0
  51. package/lib/managers/annotation-manager.js +360 -0
  52. package/lib/managers/annotation-manager.js.map +1 -0
  53. package/lib/managers/barcode-manager.d.ts +80 -0
  54. package/lib/managers/barcode-manager.d.ts.map +1 -0
  55. package/lib/managers/barcode-manager.js +226 -0
  56. package/lib/managers/barcode-manager.js.map +1 -0
  57. package/lib/managers/batch-manager.d.ts +186 -0
  58. package/lib/managers/batch-manager.d.ts.map +1 -0
  59. package/lib/managers/batch-manager.js +389 -0
  60. package/lib/managers/batch-manager.js.map +1 -0
  61. package/lib/managers/cache-manager.d.ts +182 -0
  62. package/lib/managers/cache-manager.d.ts.map +1 -0
  63. package/lib/managers/cache-manager.js +387 -0
  64. package/lib/managers/cache-manager.js.map +1 -0
  65. package/lib/managers/compliance-manager.d.ts +104 -0
  66. package/lib/managers/compliance-manager.d.ts.map +1 -0
  67. package/lib/managers/compliance-manager.js +415 -0
  68. package/lib/managers/compliance-manager.js.map +1 -0
  69. package/lib/managers/content-manager.d.ts +121 -0
  70. package/lib/managers/content-manager.d.ts.map +1 -0
  71. package/lib/managers/content-manager.js +295 -0
  72. package/lib/managers/content-manager.js.map +1 -0
  73. package/lib/managers/document-utility-manager.d.ts +370 -0
  74. package/lib/managers/document-utility-manager.d.ts.map +1 -0
  75. package/lib/managers/document-utility-manager.js +731 -0
  76. package/lib/managers/document-utility-manager.js.map +1 -0
  77. package/lib/managers/dom-pdf-creator.d.ts +105 -0
  78. package/lib/managers/dom-pdf-creator.d.ts.map +1 -0
  79. package/lib/managers/dom-pdf-creator.js +300 -0
  80. package/lib/managers/dom-pdf-creator.js.map +1 -0
  81. package/lib/managers/editing-manager.d.ts +249 -0
  82. package/lib/managers/editing-manager.d.ts.map +1 -0
  83. package/lib/managers/editing-manager.js +388 -0
  84. package/lib/managers/editing-manager.js.map +1 -0
  85. package/lib/managers/enterprise-manager.d.ts +193 -0
  86. package/lib/managers/enterprise-manager.d.ts.map +1 -0
  87. package/lib/managers/enterprise-manager.js +305 -0
  88. package/lib/managers/enterprise-manager.js.map +1 -0
  89. package/lib/managers/extended-managers.d.ts +123 -0
  90. package/lib/managers/extended-managers.d.ts.map +1 -0
  91. package/lib/managers/extended-managers.js +658 -0
  92. package/lib/managers/extended-managers.js.map +1 -0
  93. package/lib/managers/extraction-manager.d.ts +247 -0
  94. package/lib/managers/extraction-manager.d.ts.map +1 -0
  95. package/lib/managers/extraction-manager.js +478 -0
  96. package/lib/managers/extraction-manager.js.map +1 -0
  97. package/lib/managers/final-utilities.d.ts +128 -0
  98. package/lib/managers/final-utilities.d.ts.map +1 -0
  99. package/lib/managers/final-utilities.js +653 -0
  100. package/lib/managers/final-utilities.js.map +1 -0
  101. package/lib/managers/hybrid-ml-advanced.d.ts +137 -0
  102. package/lib/managers/hybrid-ml-advanced.d.ts.map +1 -0
  103. package/lib/managers/hybrid-ml-advanced.js +707 -0
  104. package/lib/managers/hybrid-ml-advanced.js.map +1 -0
  105. package/lib/managers/index.d.ts +65 -0
  106. package/lib/managers/index.d.ts.map +1 -0
  107. package/lib/managers/index.js +70 -0
  108. package/lib/managers/index.js.map +1 -0
  109. package/lib/managers/layer-manager.d.ts +204 -0
  110. package/lib/managers/layer-manager.d.ts.map +1 -0
  111. package/lib/managers/layer-manager.js +403 -0
  112. package/lib/managers/layer-manager.js.map +1 -0
  113. package/lib/managers/metadata-manager.d.ts +149 -0
  114. package/lib/managers/metadata-manager.d.ts.map +1 -0
  115. package/lib/managers/metadata-manager.js +281 -0
  116. package/lib/managers/metadata-manager.js.map +1 -0
  117. package/lib/managers/ocr-manager.d.ts +195 -0
  118. package/lib/managers/ocr-manager.d.ts.map +1 -0
  119. package/lib/managers/ocr-manager.js +583 -0
  120. package/lib/managers/ocr-manager.js.map +1 -0
  121. package/lib/managers/optimization-manager.d.ts +103 -0
  122. package/lib/managers/optimization-manager.d.ts.map +1 -0
  123. package/lib/managers/optimization-manager.js +194 -0
  124. package/lib/managers/optimization-manager.js.map +1 -0
  125. package/lib/managers/outline-manager.d.ts +102 -0
  126. package/lib/managers/outline-manager.d.ts.map +1 -0
  127. package/lib/managers/outline-manager.js +170 -0
  128. package/lib/managers/outline-manager.js.map +1 -0
  129. package/lib/managers/page-manager.d.ts +143 -0
  130. package/lib/managers/page-manager.d.ts.map +1 -0
  131. package/lib/managers/page-manager.js +237 -0
  132. package/lib/managers/page-manager.js.map +1 -0
  133. package/lib/managers/pattern-detection.d.ts +170 -0
  134. package/lib/managers/pattern-detection.d.ts.map +1 -0
  135. package/lib/managers/pattern-detection.js +325 -0
  136. package/lib/managers/pattern-detection.js.map +1 -0
  137. package/lib/managers/rendering-manager.d.ts +354 -0
  138. package/lib/managers/rendering-manager.d.ts.map +1 -0
  139. package/lib/managers/rendering-manager.js +680 -0
  140. package/lib/managers/rendering-manager.js.map +1 -0
  141. package/lib/managers/search-manager.d.ts +236 -0
  142. package/lib/managers/search-manager.d.ts.map +1 -0
  143. package/lib/managers/search-manager.js +330 -0
  144. package/lib/managers/search-manager.js.map +1 -0
  145. package/lib/managers/security-manager.d.ts +162 -0
  146. package/lib/managers/security-manager.d.ts.map +1 -0
  147. package/lib/managers/security-manager.js +293 -0
  148. package/lib/managers/security-manager.js.map +1 -0
  149. package/lib/managers/signature-manager.d.ts +725 -0
  150. package/lib/managers/signature-manager.d.ts.map +1 -0
  151. package/lib/managers/signature-manager.js +1365 -0
  152. package/lib/managers/signature-manager.js.map +1 -0
  153. package/lib/managers/streams.d.ts +263 -0
  154. package/lib/managers/streams.d.ts.map +1 -0
  155. package/lib/managers/streams.js +472 -0
  156. package/lib/managers/streams.js.map +1 -0
  157. package/lib/managers/xfa-manager.d.ts +228 -0
  158. package/lib/managers/xfa-manager.d.ts.map +1 -0
  159. package/lib/managers/xfa-manager.js +490 -0
  160. package/lib/managers/xfa-manager.js.map +1 -0
  161. package/lib/pdf-creator-manager.d.ts +201 -0
  162. package/lib/pdf-creator-manager.d.ts.map +1 -0
  163. package/lib/pdf-creator-manager.js +379 -0
  164. package/lib/pdf-creator-manager.js.map +1 -0
  165. package/lib/properties.d.ts +80 -0
  166. package/lib/properties.d.ts.map +1 -0
  167. package/lib/properties.js +455 -0
  168. package/lib/properties.js.map +1 -0
  169. package/lib/result-accessors-manager.d.ts +347 -0
  170. package/lib/result-accessors-manager.d.ts.map +1 -0
  171. package/lib/result-accessors-manager.js +705 -0
  172. package/lib/result-accessors-manager.js.map +1 -0
  173. package/lib/thumbnail-manager.d.ts +122 -0
  174. package/lib/thumbnail-manager.d.ts.map +1 -0
  175. package/lib/thumbnail-manager.js +206 -0
  176. package/lib/thumbnail-manager.js.map +1 -0
  177. package/lib/types/common.d.ts +93 -0
  178. package/lib/types/common.d.ts.map +1 -0
  179. package/lib/types/common.js +5 -0
  180. package/lib/types/common.js.map +1 -0
  181. package/lib/types/document-types.d.ts +353 -0
  182. package/lib/types/document-types.d.ts.map +1 -0
  183. package/lib/types/document-types.js +83 -0
  184. package/lib/types/document-types.js.map +1 -0
  185. package/{src/types/index.ts → lib/types/index.d.ts} +1 -1
  186. package/lib/types/index.d.ts.map +1 -0
  187. package/lib/types/index.js +6 -0
  188. package/lib/types/index.js.map +1 -0
  189. package/lib/types/manager-types.d.ts +180 -0
  190. package/lib/types/manager-types.d.ts.map +1 -0
  191. package/lib/types/manager-types.js +99 -0
  192. package/lib/types/manager-types.js.map +1 -0
  193. package/lib/types/native-bindings.d.ts +440 -0
  194. package/lib/types/native-bindings.d.ts.map +1 -0
  195. package/lib/types/native-bindings.js +8 -0
  196. package/lib/types/native-bindings.js.map +1 -0
  197. package/{src/workers/index.ts → lib/workers/index.d.ts} +1 -1
  198. package/lib/workers/index.d.ts.map +1 -0
  199. package/lib/workers/index.js +6 -0
  200. package/lib/workers/index.js.map +1 -0
  201. package/lib/workers/pool.d.ts +65 -0
  202. package/lib/workers/pool.d.ts.map +1 -0
  203. package/lib/workers/pool.js +195 -0
  204. package/lib/workers/pool.js.map +1 -0
  205. package/lib/workers/worker.d.ts +6 -0
  206. package/lib/workers/worker.d.ts.map +1 -0
  207. package/lib/workers/worker.js +100 -0
  208. package/lib/workers/worker.js.map +1 -0
  209. package/package.json +12 -22
  210. package/prebuilds/darwin-arm64/pdf_oxide.node +0 -0
  211. package/prebuilds/darwin-x64/pdf_oxide.node +0 -0
  212. package/prebuilds/linux-arm64/pdf_oxide.node +0 -0
  213. package/prebuilds/linux-x64/pdf_oxide.node +0 -0
  214. package/prebuilds/win32-x64/pdf_oxide.node +0 -0
  215. package/binding.gyp +0 -35
  216. package/src/builders/annotation-builder.ts +0 -367
  217. package/src/builders/conversion-options-builder.ts +0 -257
  218. package/src/builders/metadata-builder.ts +0 -317
  219. package/src/builders/pdf-builder.ts +0 -386
  220. package/src/builders/search-options-builder.ts +0 -151
  221. package/src/document-editor-manager.ts +0 -318
  222. package/src/errors.ts +0 -1629
  223. package/src/form-field-manager.ts +0 -666
  224. package/src/hybrid-ml-manager.ts +0 -283
  225. package/src/index.ts +0 -453
  226. package/src/managers/accessibility-manager.ts +0 -338
  227. package/src/managers/annotation-manager.ts +0 -439
  228. package/src/managers/barcode-manager.ts +0 -235
  229. package/src/managers/batch-manager.ts +0 -533
  230. package/src/managers/cache-manager.ts +0 -486
  231. package/src/managers/compliance-manager.ts +0 -375
  232. package/src/managers/content-manager.ts +0 -339
  233. package/src/managers/document-utility-manager.ts +0 -922
  234. package/src/managers/dom-pdf-creator.ts +0 -365
  235. package/src/managers/editing-manager.ts +0 -514
  236. package/src/managers/enterprise-manager.ts +0 -478
  237. package/src/managers/extended-managers.ts +0 -437
  238. package/src/managers/extraction-manager.ts +0 -583
  239. package/src/managers/final-utilities.ts +0 -429
  240. package/src/managers/hybrid-ml-advanced.ts +0 -479
  241. package/src/managers/index.ts +0 -239
  242. package/src/managers/layer-manager.ts +0 -500
  243. package/src/managers/metadata-manager.ts +0 -303
  244. package/src/managers/ocr-manager.ts +0 -756
  245. package/src/managers/optimization-manager.ts +0 -262
  246. package/src/managers/outline-manager.ts +0 -196
  247. package/src/managers/page-manager.ts +0 -289
  248. package/src/managers/pattern-detection.ts +0 -440
  249. package/src/managers/rendering-manager.ts +0 -863
  250. package/src/managers/search-manager.ts +0 -385
  251. package/src/managers/security-manager.ts +0 -345
  252. package/src/managers/signature-manager.ts +0 -1664
  253. package/src/managers/streams.ts +0 -618
  254. package/src/managers/xfa-manager.ts +0 -500
  255. package/src/pdf-creator-manager.ts +0 -494
  256. package/src/properties.ts +0 -522
  257. package/src/result-accessors-manager.ts +0 -867
  258. package/src/tests/advanced-features.test.ts +0 -414
  259. package/src/tests/advanced.test.ts +0 -266
  260. package/src/tests/extended-managers.test.ts +0 -316
  261. package/src/tests/final-utilities.test.ts +0 -455
  262. package/src/tests/foundation.test.ts +0 -315
  263. package/src/tests/high-demand.test.ts +0 -257
  264. package/src/tests/specialized.test.ts +0 -97
  265. package/src/thumbnail-manager.ts +0 -272
  266. package/src/types/common.ts +0 -142
  267. package/src/types/document-types.ts +0 -457
  268. package/src/types/manager-types.ts +0 -284
  269. package/src/types/native-bindings.ts +0 -517
  270. package/src/workers/pool.ts +0 -274
  271. package/src/workers/worker.ts +0 -131
@@ -1,429 +0,0 @@
1
- import { EventEmitter } from 'events';
2
-
3
- export enum EventType {
4
- PAGE_LOADED = 'page_loaded',
5
- PAGE_RENDERED = 'page_rendered',
6
- CONTENT_PARSED = 'content_parsed',
7
- SEARCH_COMPLETED = 'search_completed',
8
- ERROR_OCCURRED = 'error_occurred',
9
- PROCESSING_STARTED = 'processing_started',
10
- PROCESSING_COMPLETED = 'processing_completed'
11
- }
12
-
13
- export enum EncryptionAlgorithm {
14
- AES_128 = 'aes_128',
15
- AES_256 = 'aes_256',
16
- RC4_40 = 'rc4_40',
17
- RC4_128 = 'rc4_128'
18
- }
19
-
20
- export enum CompressionLevel {
21
- NONE = 0, FAST = 3, BALANCED = 6, BEST = 9
22
- }
23
-
24
- export interface DocumentEvent {
25
- eventType: EventType;
26
- timestamp: number;
27
- data: Record<string, any>;
28
- pageIndex?: number;
29
- }
30
-
31
- export interface EncryptionSettings {
32
- algorithm: EncryptionAlgorithm;
33
- userPassword: string;
34
- ownerPassword: string;
35
- allowPrinting: boolean;
36
- allowCopying: boolean;
37
- allowModification: boolean;
38
- }
39
-
40
- export interface CompressionSettings {
41
- level: CompressionLevel;
42
- compressImages: boolean;
43
- compressStreams: boolean;
44
- compressFonts: boolean;
45
- removeDuplicates: boolean;
46
- }
47
-
48
- export class EventManager extends EventEmitter {
49
- private document: any;
50
- private eventListeners: Map<EventType, Function[]> = new Map();
51
-
52
- constructor(document: any) {
53
- super();
54
- this.document = document;
55
- }
56
-
57
- async addEventListener(eventType: EventType, handler: Function): Promise<boolean> {
58
- try {
59
- if (!this.eventListeners.has(eventType)) this.eventListeners.set(eventType, []);
60
- this.eventListeners.get(eventType)!.push(handler);
61
- return true;
62
- } catch (error) { this.emit('error', error); return false; }
63
- }
64
-
65
- async removeEventListener(eventType: EventType, handler: Function): Promise<boolean> {
66
- try {
67
- const handlers = this.eventListeners.get(eventType);
68
- return handlers ? handlers.splice(handlers.indexOf(handler), 1).length > 0 : false;
69
- } catch (error) { this.emit('error', error); return false; }
70
- }
71
-
72
- async emitEvent(event: DocumentEvent): Promise<boolean> {
73
- try {
74
- const handlers = this.eventListeners.get(event.eventType);
75
- if (handlers) handlers.forEach(h => h(event));
76
- return true;
77
- } catch (error) { this.emit('error', error); return false; }
78
- }
79
-
80
- async hasListener(eventType: EventType): Promise<boolean> {
81
- try { return this.eventListeners.has(eventType) && (this.eventListeners.get(eventType)?.length ?? 0) > 0; }
82
- catch (error) { this.emit('error', error); return false; }
83
- }
84
-
85
- async getListenerCount(eventType: EventType): Promise<number> {
86
- try { return this.eventListeners.get(eventType)?.length ?? 0; }
87
- catch (error) { this.emit('error', error); return 0; }
88
- }
89
-
90
- async clearListeners(eventType?: EventType): Promise<boolean> {
91
- try { eventType ? this.eventListeners.delete(eventType) : this.eventListeners.clear(); return true; }
92
- catch (error) { this.emit('error', error); return false; }
93
- }
94
-
95
- async getEventHistory(): Promise<DocumentEvent[]> {
96
- try { return []; }
97
- catch (error) { this.emit('error', error); return []; }
98
- }
99
-
100
- async enableEventLogging(enabled: boolean): Promise<boolean> {
101
- try { return true; }
102
- catch (error) { this.emit('error', error); return false; }
103
- }
104
-
105
- async getEventStatistics(): Promise<Record<string, any>> {
106
- try {
107
- let total = 0;
108
- this.eventListeners.forEach(handlers => { total += handlers.length; });
109
- return { total_listeners: total, event_types: this.eventListeners.size };
110
- } catch (error) { this.emit('error', error); return {}; }
111
- }
112
-
113
- async waitForEvent(eventType: EventType, timeoutSec?: number): Promise<DocumentEvent | null> {
114
- try { return null; }
115
- catch (error) { this.emit('error', error); return null; }
116
- }
117
- }
118
-
119
- export class EncryptionManager extends EventEmitter {
120
- private document: any;
121
- private encryptionSettings: EncryptionSettings | null = null;
122
-
123
- constructor(document: any) {
124
- super();
125
- this.document = document;
126
- }
127
-
128
- async encryptDocument(settings: EncryptionSettings): Promise<boolean> {
129
- if (!this.document) return false;
130
- try { this.encryptionSettings = settings; return true; }
131
- catch (error) { this.emit('error', error); return false; }
132
- }
133
-
134
- async decryptDocument(password: string): Promise<boolean> {
135
- if (!this.document) return false;
136
- try { return true; }
137
- catch (error) { this.emit('error', error); return false; }
138
- }
139
-
140
- async changeEncryption(newSettings: EncryptionSettings): Promise<boolean> {
141
- if (!this.document) return false;
142
- try { this.encryptionSettings = newSettings; return true; }
143
- catch (error) { this.emit('error', error); return false; }
144
- }
145
-
146
- async getEncryptionAlgorithm(): Promise<string | null> {
147
- try { return null; }
148
- catch (error) { this.emit('error', error); return null; }
149
- }
150
-
151
- async isDocumentEncrypted(): Promise<boolean> {
152
- try { return false; }
153
- catch (error) { this.emit('error', error); return false; }
154
- }
155
-
156
- async removeEncryption(ownerPassword: string): Promise<boolean> {
157
- if (!this.document) return false;
158
- try { return true; }
159
- catch (error) { this.emit('error', error); return false; }
160
- }
161
-
162
- async setUserPassword(password: string): Promise<boolean> {
163
- if (!this.document) return false;
164
- try { return true; }
165
- catch (error) { this.emit('error', error); return false; }
166
- }
167
-
168
- async setOwnerPassword(password: string): Promise<boolean> {
169
- if (!this.document) return false;
170
- try { return true; }
171
- catch (error) { this.emit('error', error); return false; }
172
- }
173
-
174
- async validatePassword(password: string): Promise<boolean> {
175
- try { return true; }
176
- catch (error) { this.emit('error', error); return false; }
177
- }
178
-
179
- async getPermissions(): Promise<Record<string, boolean>> {
180
- try { return {}; }
181
- catch (error) { this.emit('error', error); return {}; }
182
- }
183
-
184
- async setPermissions(permissions: Record<string, boolean>): Promise<boolean> {
185
- if (!this.document) return false;
186
- try { return true; }
187
- catch (error) { this.emit('error', error); return false; }
188
- }
189
-
190
- async exportCertificate(outputPath: string): Promise<boolean> {
191
- try { return true; }
192
- catch (error) { this.emit('error', error); return false; }
193
- }
194
-
195
- async importCertificate(certPath: string): Promise<boolean> {
196
- try { return true; }
197
- catch (error) { this.emit('error', error); return false; }
198
- }
199
-
200
- async encryptionStatus(): Promise<Record<string, any>> {
201
- try { return {}; }
202
- catch (error) { this.emit('error', error); return {}; }
203
- }
204
- }
205
-
206
- export class CompressionManager extends EventEmitter {
207
- private document: any;
208
- private compressionSettings: CompressionSettings | null = null;
209
-
210
- constructor(document: any) {
211
- super();
212
- this.document = document;
213
- }
214
-
215
- async compressDocument(settings: CompressionSettings): Promise<boolean> {
216
- if (!this.document) return false;
217
- try { this.compressionSettings = settings; return true; }
218
- catch (error) { this.emit('error', error); return false; }
219
- }
220
-
221
- async compressImages(quality?: number): Promise<boolean> {
222
- if (!this.document) return false;
223
- try { return true; }
224
- catch (error) { this.emit('error', error); return false; }
225
- }
226
-
227
- async compressStreams(): Promise<boolean> {
228
- if (!this.document) return false;
229
- try { return true; }
230
- catch (error) { this.emit('error', error); return false; }
231
- }
232
-
233
- async compressPage(pageIndex: number, settings: CompressionSettings): Promise<boolean> {
234
- if (!this.document) return false;
235
- try { return true; }
236
- catch (error) { this.emit('error', error); return false; }
237
- }
238
-
239
- async getCompressionRatio(): Promise<number | null> {
240
- try { return null; }
241
- catch (error) { this.emit('error', error); return null; }
242
- }
243
-
244
- async estimateCompression(settings: CompressionSettings): Promise<number | null> {
245
- try { return null; }
246
- catch (error) { this.emit('error', error); return null; }
247
- }
248
-
249
- async decompressDocument(): Promise<boolean> {
250
- if (!this.document) return false;
251
- try { return true; }
252
- catch (error) { this.emit('error', error); return false; }
253
- }
254
-
255
- async isCompressed(): Promise<boolean> {
256
- try { return false; }
257
- catch (error) { this.emit('error', error); return false; }
258
- }
259
-
260
- async getCompressionReport(): Promise<Record<string, any>> {
261
- try { return {}; }
262
- catch (error) { this.emit('error', error); return {}; }
263
- }
264
-
265
- async optimizeForWeb(): Promise<boolean> {
266
- if (!this.document) return false;
267
- try { return true; }
268
- catch (error) { this.emit('error', error); return false; }
269
- }
270
-
271
- async optimizeForPrint(): Promise<boolean> {
272
- if (!this.document) return false;
273
- try { return true; }
274
- catch (error) { this.emit('error', error); return false; }
275
- }
276
- }
277
-
278
- export class CustomAnnotationManager extends EventEmitter {
279
- private document: any;
280
- private customAnnotations: Map<string, Record<string, any>> = new Map();
281
-
282
- constructor(document: any) {
283
- super();
284
- this.document = document;
285
- }
286
-
287
- async createCustomAnnotation(annotationType: string, properties: Record<string, any>): Promise<string | null> {
288
- if (!this.document) return null;
289
- try {
290
- const id = `custom_${this.customAnnotations.size}`;
291
- this.customAnnotations.set(id, properties);
292
- return id;
293
- } catch (error) { this.emit('error', error); return null; }
294
- }
295
-
296
- async registerAnnotationType(typeName: string, handler: Function): Promise<boolean> {
297
- try { return true; }
298
- catch (error) { this.emit('error', error); return false; }
299
- }
300
-
301
- async modifyAnnotation(annotationId: string, properties: Record<string, any>): Promise<boolean> {
302
- try {
303
- const current = this.customAnnotations.get(annotationId);
304
- if (current) Object.assign(current, properties);
305
- return true;
306
- } catch (error) { this.emit('error', error); return false; }
307
- }
308
-
309
- async deleteCustomAnnotation(annotationId: string): Promise<boolean> {
310
- try { return this.customAnnotations.delete(annotationId); }
311
- catch (error) { this.emit('error', error); return false; }
312
- }
313
-
314
- async getCustomAnnotations(pageIndex: number): Promise<Record<string, any>[]> {
315
- try { return []; }
316
- catch (error) { this.emit('error', error); return []; }
317
- }
318
-
319
- async setAnnotationVisibility(annotationId: string, visible: boolean): Promise<boolean> {
320
- try { return true; }
321
- catch (error) { this.emit('error', error); return false; }
322
- }
323
-
324
- async exportAnnotations(outputPath: string): Promise<boolean> {
325
- try { return true; }
326
- catch (error) { this.emit('error', error); return false; }
327
- }
328
-
329
- async importAnnotations(inputPath: string): Promise<boolean> {
330
- try { return true; }
331
- catch (error) { this.emit('error', error); return false; }
332
- }
333
-
334
- async applyAnnotationStyle(annotationId: string, style: Record<string, any>): Promise<boolean> {
335
- try { return true; }
336
- catch (error) { this.emit('error', error); return false; }
337
- }
338
-
339
- async getAnnotationMetadata(annotationId: string): Promise<Record<string, any> | null> {
340
- try { return null; }
341
- catch (error) { this.emit('error', error); return null; }
342
- }
343
-
344
- async replyToAnnotation(annotationId: string, replyText: string): Promise<boolean> {
345
- try { return true; }
346
- catch (error) { this.emit('error', error); return false; }
347
- }
348
-
349
- async getAnnotationReplies(annotationId: string): Promise<string[]> {
350
- try { return []; }
351
- catch (error) { this.emit('error', error); return []; }
352
- }
353
-
354
- async flattenAnnotations(): Promise<boolean> {
355
- if (!this.document) return false;
356
- try { return true; }
357
- catch (error) { this.emit('error', error); return false; }
358
- }
359
-
360
- async convertAnnotations(targetFormat: string): Promise<boolean> {
361
- try { return true; }
362
- catch (error) { this.emit('error', error); return false; }
363
- }
364
- }
365
-
366
- export class ContentSecurityManager extends EventEmitter {
367
- private document: any;
368
- private accessPolicies: Map<string, Record<string, any>> = new Map();
369
-
370
- constructor(document: any) {
371
- super();
372
- this.document = document;
373
- }
374
-
375
- async setAccessControl(policyName: string, restrictions: Record<string, any>): Promise<boolean> {
376
- if (!this.document) return false;
377
- try { this.accessPolicies.set(policyName, restrictions); return true; }
378
- catch (error) { this.emit('error', error); return false; }
379
- }
380
-
381
- async validateAccess(userRole: string, action: string): Promise<boolean> {
382
- try { return true; }
383
- catch (error) { this.emit('error', error); return false; }
384
- }
385
-
386
- async applyDigitalRights(rights: Record<string, boolean>): Promise<boolean> {
387
- if (!this.document) return false;
388
- try { return true; }
389
- catch (error) { this.emit('error', error); return false; }
390
- }
391
-
392
- async sanitizeContent(removeScripts?: boolean, removeEmbedded?: boolean): Promise<boolean> {
393
- if (!this.document) return false;
394
- try { return true; }
395
- catch (error) { this.emit('error', error); return false; }
396
- }
397
-
398
- async detectSuspiciousContent(): Promise<Record<string, any>[]> {
399
- try { return []; }
400
- catch (error) { this.emit('error', error); return []; }
401
- }
402
-
403
- async getAccessLog(): Promise<Record<string, any>[]> {
404
- try { return []; }
405
- catch (error) { this.emit('error', error); return []; }
406
- }
407
-
408
- async setExpirationDate(expirationDate: string): Promise<boolean> {
409
- if (!this.document) return false;
410
- try { return true; }
411
- catch (error) { this.emit('error', error); return false; }
412
- }
413
-
414
- async enableWatermarking(watermarkText: string): Promise<boolean> {
415
- if (!this.document) return false;
416
- try { return true; }
417
- catch (error) { this.emit('error', error); return false; }
418
- }
419
-
420
- async trackDocumentUsage(enabled: boolean): Promise<boolean> {
421
- try { return true; }
422
- catch (error) { this.emit('error', error); return false; }
423
- }
424
-
425
- async getSecurityAudit(): Promise<Record<string, any>> {
426
- try { return {}; }
427
- catch (error) { this.emit('error', error); return {}; }
428
- }
429
- }