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,284 +0,0 @@
1
- /**
2
- * TypeScript type definitions for all PDF Oxide managers
3
- *
4
- * Provides comprehensive type safety for Node.js and TypeScript consumers
5
- * with full FFI integration and proper error handling.
6
- */
7
-
8
- import { EventEmitter } from 'events';
9
-
10
- // ============================================================
11
- // Document Types
12
- // ============================================================
13
-
14
- export interface PdfDocumentHandle {
15
- readonly handle: unknown;
16
- readonly pageCount: () => Promise<number>;
17
- readonly extractText: (pageIndex: number) => Promise<string>;
18
- readonly extractFormFields: () => Promise<FormField[]>;
19
- readonly getMetadata: () => Promise<Record<string, string>>;
20
- }
21
-
22
- // ============================================================
23
- // OCR Types
24
- // ============================================================
25
-
26
- export enum OcrLanguage {
27
- ENGLISH = 'en',
28
- CHINESE = 'zh',
29
- JAPANESE = 'ja',
30
- SPANISH = 'es',
31
- FRENCH = 'fr',
32
- PORTUGUESE = 'pt',
33
- RUSSIAN = 'ru',
34
- ARABIC = 'ar',
35
- KOREAN = 'ko',
36
- VIETNAMESE = 'vi',
37
- }
38
-
39
- export interface TextRegion {
40
- x: number;
41
- y: number;
42
- width: number;
43
- height: number;
44
- }
45
-
46
- export interface OcrResult {
47
- readonly pageIndex: number;
48
- readonly text: string;
49
- readonly confidence: number;
50
- readonly regionCount: number;
51
- }
52
-
53
- export interface OcrBatchResult {
54
- readonly startPage: number;
55
- readonly endPage: number;
56
- readonly totalPages: number;
57
- readonly totalSpans: number;
58
- readonly averageConfidence: number;
59
- readonly skippedPages: number;
60
- }
61
-
62
- // ============================================================
63
- // Compliance Types
64
- // ============================================================
65
-
66
- export enum ComplianceType {
67
- PDF_A_1B = 'pdf_a_1b',
68
- PDF_A_2B = 'pdf_a_2b',
69
- PDF_A_3B = 'pdf_a_3b',
70
- PDF_X_1A = 'pdf_x_1a',
71
- PDF_X_3 = 'pdf_x_3',
72
- PDF_UA = 'pdf_ua',
73
- }
74
-
75
- export interface ComplianceResult {
76
- readonly type: string;
77
- readonly valid: boolean;
78
- readonly issues: readonly string[];
79
- readonly severity: 'none' | 'low' | 'medium' | 'high' | 'critical';
80
- }
81
-
82
- export interface ComplianceReport {
83
- readonly timestamp: number;
84
- readonly results: ComplianceResult[];
85
- readonly isFullyCompliant: boolean;
86
- }
87
-
88
- // ============================================================
89
- // Cache Types
90
- // ============================================================
91
-
92
- export interface CacheEntry<T> {
93
- readonly key: string;
94
- readonly value: T;
95
- readonly timestamp: number;
96
- readonly ttl?: number;
97
- }
98
-
99
- export interface CacheStats {
100
- readonly cacheCount: number;
101
- readonly totalEntries: number;
102
- readonly totalSize: number;
103
- readonly entriesByCache: Map<string, number>;
104
- readonly hitRate: number;
105
- readonly missRate: number;
106
- }
107
-
108
- // ============================================================
109
- // Form Field Types
110
- // ============================================================
111
-
112
- export enum FormFieldType {
113
- TEXT = 'text',
114
- CHECKBOX = 'checkbox',
115
- RADIO = 'radio',
116
- COMBOBOX = 'combobox',
117
- LISTBOX = 'listbox',
118
- SIGNATURE = 'signature',
119
- DATE = 'date',
120
- }
121
-
122
- export interface FormField {
123
- readonly name: string;
124
- readonly type: FormFieldType;
125
- readonly value: string;
126
- readonly pageIndex: number;
127
- readonly x: number;
128
- readonly y: number;
129
- readonly width: number;
130
- readonly height: number;
131
- readonly required?: boolean;
132
- readonly readonly?: boolean;
133
- }
134
-
135
- // ============================================================
136
- // Manager Configuration Types
137
- // ============================================================
138
-
139
- export interface ManagerOptions {
140
- readonly enableCache?: boolean;
141
- readonly cacheSize?: number;
142
- readonly enableEvents?: boolean;
143
- readonly enableLogging?: boolean;
144
- }
145
-
146
- export interface ManagerState {
147
- readonly initialized: boolean;
148
- readonly hasDocument: boolean;
149
- readonly operationCount: number;
150
- readonly errorCount: number;
151
- }
152
-
153
- // ============================================================
154
- // Event Types
155
- // ============================================================
156
-
157
- export interface ManagerEvent<T = Record<string, unknown>> {
158
- readonly eventType: string;
159
- readonly timestamp: number;
160
- readonly data: T;
161
- readonly manager: string;
162
- }
163
-
164
- export interface ErrorEvent extends ManagerEvent<{ error: Error; operation: string }> {}
165
-
166
- // ============================================================
167
- // Batch Processing Types
168
- // ============================================================
169
-
170
- export interface BatchOptions {
171
- readonly pageSize?: number;
172
- readonly parallelism?: number;
173
- readonly timeout?: number;
174
- readonly retryOnError?: boolean;
175
- readonly maxRetries?: number;
176
- }
177
-
178
- export interface BatchProgress {
179
- readonly processed: number;
180
- readonly total: number;
181
- readonly percentage: number;
182
- readonly status: 'pending' | 'running' | 'completed' | 'failed';
183
- }
184
-
185
- export interface BatchResult<T> {
186
- readonly data: T[];
187
- readonly progress: BatchProgress;
188
- readonly startTime: number;
189
- readonly endTime: number;
190
- readonly duration: number;
191
- readonly errors: Error[];
192
- }
193
-
194
- // ============================================================
195
- // Metadata Types
196
- // ============================================================
197
-
198
- export interface PdfMetadata {
199
- readonly title?: string;
200
- readonly author?: string;
201
- readonly subject?: string;
202
- readonly keywords?: string;
203
- readonly creator?: string;
204
- readonly producer?: string;
205
- readonly creationDate?: Date;
206
- readonly modificationDate?: Date;
207
- readonly pageCount: number;
208
- readonly format?: string;
209
- }
210
-
211
- // ============================================================
212
- // Manager Base Class Type
213
- // ============================================================
214
-
215
- export interface IManager extends EventEmitter {
216
- readonly initialized: boolean;
217
-
218
- destroy(): Promise<void>;
219
- getState(): ManagerState;
220
- }
221
-
222
- export abstract class BaseManager<T extends PdfDocumentHandle = PdfDocumentHandle>
223
- extends EventEmitter
224
- implements IManager {
225
-
226
- private _initialized = false;
227
-
228
- get initialized(): boolean {
229
- return this._initialized;
230
- }
231
-
232
- protected set initialized(value: boolean) {
233
- this._initialized = value;
234
- }
235
- protected document: T;
236
- protected cache: Map<string, unknown> = new Map();
237
- protected operationCount = 0;
238
- protected errorCount = 0;
239
-
240
- constructor(document: T, protected options: ManagerOptions = {}) {
241
- super();
242
- this.document = document;
243
- this.initialized = true;
244
- }
245
-
246
- abstract destroy(): Promise<void>;
247
-
248
- getState(): ManagerState {
249
- return {
250
- initialized: this.initialized,
251
- hasDocument: !!this.document,
252
- operationCount: this.operationCount,
253
- errorCount: this.errorCount,
254
- };
255
- }
256
-
257
- protected recordOperation(): void {
258
- this.operationCount++;
259
- }
260
-
261
- protected recordError(error: Error): void {
262
- this.errorCount++;
263
- this.emit('error', { error, timestamp: Date.now() });
264
- }
265
-
266
- protected getCached<V>(key: string): V | undefined {
267
- return this.cache.get(key) as V | undefined;
268
- }
269
-
270
- protected setCached<V>(key: string, value: V): void {
271
- if (this.options.enableCache !== false) {
272
- this.cache.set(key, value);
273
- }
274
- }
275
-
276
- protected invalidateCache(pattern?: string): void {
277
- if (pattern) {
278
- const keys = Array.from(this.cache.keys()).filter(k => k.includes(pattern));
279
- keys.forEach(k => this.cache.delete(k));
280
- } else {
281
- this.cache.clear();
282
- }
283
- }
284
- }