@lexmata/micropdf 0.4.0

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 (170) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +985 -0
  3. package/binding.gyp +73 -0
  4. package/dist/annot.d.ts +458 -0
  5. package/dist/annot.d.ts.map +1 -0
  6. package/dist/annot.js +697 -0
  7. package/dist/annot.js.map +1 -0
  8. package/dist/archive.d.ts +128 -0
  9. package/dist/archive.d.ts.map +1 -0
  10. package/dist/archive.js +268 -0
  11. package/dist/archive.js.map +1 -0
  12. package/dist/buffer.d.ts +572 -0
  13. package/dist/buffer.d.ts.map +1 -0
  14. package/dist/buffer.js +971 -0
  15. package/dist/buffer.js.map +1 -0
  16. package/dist/colorspace.d.ts +287 -0
  17. package/dist/colorspace.d.ts.map +1 -0
  18. package/dist/colorspace.js +542 -0
  19. package/dist/colorspace.js.map +1 -0
  20. package/dist/context.d.ts +184 -0
  21. package/dist/context.d.ts.map +1 -0
  22. package/dist/context.js +320 -0
  23. package/dist/context.js.map +1 -0
  24. package/dist/cookie.d.ts +164 -0
  25. package/dist/cookie.d.ts.map +1 -0
  26. package/dist/cookie.js +306 -0
  27. package/dist/cookie.js.map +1 -0
  28. package/dist/device.d.ts +169 -0
  29. package/dist/device.d.ts.map +1 -0
  30. package/dist/device.js +350 -0
  31. package/dist/device.js.map +1 -0
  32. package/dist/display-list.d.ts +202 -0
  33. package/dist/display-list.d.ts.map +1 -0
  34. package/dist/display-list.js +410 -0
  35. package/dist/display-list.js.map +1 -0
  36. package/dist/document.d.ts +637 -0
  37. package/dist/document.d.ts.map +1 -0
  38. package/dist/document.js +902 -0
  39. package/dist/document.js.map +1 -0
  40. package/dist/easy.d.ts +423 -0
  41. package/dist/easy.d.ts.map +1 -0
  42. package/dist/easy.js +644 -0
  43. package/dist/easy.js.map +1 -0
  44. package/dist/enhanced.d.ts +226 -0
  45. package/dist/enhanced.d.ts.map +1 -0
  46. package/dist/enhanced.js +368 -0
  47. package/dist/enhanced.js.map +1 -0
  48. package/dist/filter.d.ts +51 -0
  49. package/dist/filter.d.ts.map +1 -0
  50. package/dist/filter.js +381 -0
  51. package/dist/filter.js.map +1 -0
  52. package/dist/font.d.ts +222 -0
  53. package/dist/font.d.ts.map +1 -0
  54. package/dist/font.js +381 -0
  55. package/dist/font.js.map +1 -0
  56. package/dist/form.d.ts +214 -0
  57. package/dist/form.d.ts.map +1 -0
  58. package/dist/form.js +497 -0
  59. package/dist/form.js.map +1 -0
  60. package/dist/geometry.d.ts +469 -0
  61. package/dist/geometry.d.ts.map +1 -0
  62. package/dist/geometry.js +780 -0
  63. package/dist/geometry.js.map +1 -0
  64. package/dist/image.d.ts +172 -0
  65. package/dist/image.d.ts.map +1 -0
  66. package/dist/image.js +348 -0
  67. package/dist/image.js.map +1 -0
  68. package/dist/index.d.ts +171 -0
  69. package/dist/index.d.ts.map +1 -0
  70. package/dist/index.js +339 -0
  71. package/dist/index.js.map +1 -0
  72. package/dist/link.d.ts +168 -0
  73. package/dist/link.d.ts.map +1 -0
  74. package/dist/link.js +343 -0
  75. package/dist/link.js.map +1 -0
  76. package/dist/micropdf.d.ts +40 -0
  77. package/dist/micropdf.d.ts.map +1 -0
  78. package/dist/micropdf.js +45 -0
  79. package/dist/micropdf.js.map +1 -0
  80. package/dist/nanopdf.d.ts +40 -0
  81. package/dist/nanopdf.d.ts.map +1 -0
  82. package/dist/nanopdf.js +45 -0
  83. package/dist/nanopdf.js.map +1 -0
  84. package/dist/native.d.ts +242 -0
  85. package/dist/native.d.ts.map +1 -0
  86. package/dist/native.js +509 -0
  87. package/dist/native.js.map +1 -0
  88. package/dist/output.d.ts +166 -0
  89. package/dist/output.d.ts.map +1 -0
  90. package/dist/output.js +365 -0
  91. package/dist/output.js.map +1 -0
  92. package/dist/path.d.ts +420 -0
  93. package/dist/path.d.ts.map +1 -0
  94. package/dist/path.js +687 -0
  95. package/dist/path.js.map +1 -0
  96. package/dist/pdf/object.d.ts +489 -0
  97. package/dist/pdf/object.d.ts.map +1 -0
  98. package/dist/pdf/object.js +1045 -0
  99. package/dist/pdf/object.js.map +1 -0
  100. package/dist/pixmap.d.ts +315 -0
  101. package/dist/pixmap.d.ts.map +1 -0
  102. package/dist/pixmap.js +590 -0
  103. package/dist/pixmap.js.map +1 -0
  104. package/dist/profiler.d.ts +159 -0
  105. package/dist/profiler.d.ts.map +1 -0
  106. package/dist/profiler.js +380 -0
  107. package/dist/profiler.js.map +1 -0
  108. package/dist/render-options.d.ts +227 -0
  109. package/dist/render-options.d.ts.map +1 -0
  110. package/dist/render-options.js +130 -0
  111. package/dist/render-options.js.map +1 -0
  112. package/dist/resource-tracking.d.ts +332 -0
  113. package/dist/resource-tracking.d.ts.map +1 -0
  114. package/dist/resource-tracking.js +653 -0
  115. package/dist/resource-tracking.js.map +1 -0
  116. package/dist/simple.d.ts +276 -0
  117. package/dist/simple.d.ts.map +1 -0
  118. package/dist/simple.js +343 -0
  119. package/dist/simple.js.map +1 -0
  120. package/dist/stext.d.ts +290 -0
  121. package/dist/stext.d.ts.map +1 -0
  122. package/dist/stext.js +312 -0
  123. package/dist/stext.js.map +1 -0
  124. package/dist/stream.d.ts +174 -0
  125. package/dist/stream.d.ts.map +1 -0
  126. package/dist/stream.js +476 -0
  127. package/dist/stream.js.map +1 -0
  128. package/dist/text.d.ts +337 -0
  129. package/dist/text.d.ts.map +1 -0
  130. package/dist/text.js +454 -0
  131. package/dist/text.js.map +1 -0
  132. package/dist/typed-arrays.d.ts +127 -0
  133. package/dist/typed-arrays.d.ts.map +1 -0
  134. package/dist/typed-arrays.js +410 -0
  135. package/dist/typed-arrays.js.map +1 -0
  136. package/dist/types.d.ts +358 -0
  137. package/dist/types.d.ts.map +1 -0
  138. package/dist/types.js +216 -0
  139. package/dist/types.js.map +1 -0
  140. package/native/annot.cc +557 -0
  141. package/native/buffer.cc +204 -0
  142. package/native/colorspace.cc +166 -0
  143. package/native/context.cc +84 -0
  144. package/native/cookie.cc +179 -0
  145. package/native/device.cc +179 -0
  146. package/native/display_list.cc +179 -0
  147. package/native/document.cc +268 -0
  148. package/native/enhanced.cc +70 -0
  149. package/native/font.cc +282 -0
  150. package/native/form.cc +523 -0
  151. package/native/geometry.cc +255 -0
  152. package/native/image.cc +216 -0
  153. package/native/include/micropdf/enhanced.h +38 -0
  154. package/native/include/micropdf/types.h +36 -0
  155. package/native/include/micropdf.h +106 -0
  156. package/native/include/mupdf-ffi.h +39 -0
  157. package/native/include/mupdf.h +11 -0
  158. package/native/include/mupdf_minimal.h +381 -0
  159. package/native/lib/linux-x64/libmicropdf.a +0 -0
  160. package/native/link.cc +234 -0
  161. package/native/micropdf.cc +71 -0
  162. package/native/output.cc +229 -0
  163. package/native/page.cc +572 -0
  164. package/native/path.cc +259 -0
  165. package/native/pixmap.cc +240 -0
  166. package/native/stext.cc +610 -0
  167. package/native/stream.cc +239 -0
  168. package/package.json +120 -0
  169. package/scripts/build-from-rust.js +97 -0
  170. package/scripts/install.js +184 -0
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Context - Rendering and error context
3
+ *
4
+ * This module provides 100% API compatibility with MuPDF's context operations.
5
+ * Handles error management, memory management, and rendering contexts.
6
+ */
7
+ /**
8
+ * Error callback type
9
+ */
10
+ export type ErrorCallback = (message: string, code: number) => void;
11
+ /**
12
+ * Warning callback type
13
+ */
14
+ export type WarningCallback = (message: string) => void;
15
+ /**
16
+ * Context for MuPDF operations
17
+ */
18
+ export declare class Context {
19
+ private _userData;
20
+ private _errorCallback;
21
+ private _warningCallback;
22
+ private _warnings;
23
+ private _lastError;
24
+ private _storeSize;
25
+ private _storeUsed;
26
+ private _aaLevel;
27
+ private _iccEnabled;
28
+ private _refCount;
29
+ constructor();
30
+ /**
31
+ * Create a new default context
32
+ */
33
+ static createDefault(): Context;
34
+ /**
35
+ * Create a new context
36
+ */
37
+ static create(storeSize?: number): Context;
38
+ /**
39
+ * Get the global default context (alias for getDefaultContext())
40
+ */
41
+ static getDefault(): Context;
42
+ keep(): this;
43
+ drop(): void;
44
+ /**
45
+ * Clone this context
46
+ */
47
+ clone(): Context;
48
+ /**
49
+ * Set user context data
50
+ */
51
+ setUserContext(data: unknown): void;
52
+ /**
53
+ * Get user context data
54
+ */
55
+ getUserContext<T = unknown>(): T | null;
56
+ /**
57
+ * Throw an error
58
+ */
59
+ throw(message: string, code?: number): never;
60
+ /**
61
+ * Rethrow the last error
62
+ */
63
+ rethrow(): never;
64
+ /**
65
+ * Get caught error
66
+ */
67
+ caught(): number;
68
+ /**
69
+ * Get caught error message
70
+ */
71
+ caughtMessage(): string;
72
+ /**
73
+ * Check if context has an error
74
+ */
75
+ hasError(): boolean;
76
+ /**
77
+ * Ignore/clear the current error
78
+ */
79
+ ignoreError(): void;
80
+ /**
81
+ * Convert error code to string
82
+ */
83
+ convertError(code: number): string;
84
+ /**
85
+ * Report error
86
+ */
87
+ reportError(message: string, code?: number): void;
88
+ /**
89
+ * Set error callback
90
+ */
91
+ setErrorCallback(callback: ErrorCallback | null): void;
92
+ /**
93
+ * Issue a warning
94
+ */
95
+ warn(message: string): void;
96
+ /**
97
+ * Flush accumulated warnings
98
+ */
99
+ flushWarnings(): string[];
100
+ /**
101
+ * Set warning callback
102
+ */
103
+ setWarningCallback(callback: WarningCallback | null): void;
104
+ /**
105
+ * Get store size (cache size)
106
+ */
107
+ getStoreSize(): number;
108
+ /**
109
+ * Get store used bytes
110
+ */
111
+ getStoreUsed(): number;
112
+ /**
113
+ * Shrink store to target size
114
+ */
115
+ shrinkStore(target: number): void;
116
+ /**
117
+ * Empty the store completely
118
+ */
119
+ emptyStore(): void;
120
+ /**
121
+ * Scavenge store (reclaim memory)
122
+ */
123
+ storeScavenge(target: number): number;
124
+ /**
125
+ * Enable ICC color management
126
+ */
127
+ enableICC(): void;
128
+ /**
129
+ * Disable ICC color management
130
+ */
131
+ disableICC(): void;
132
+ /**
133
+ * Check if ICC is enabled
134
+ */
135
+ get isICCEnabled(): boolean;
136
+ /**
137
+ * Set anti-aliasing level (0-8)
138
+ */
139
+ setAALevel(level: number): void;
140
+ /**
141
+ * Get anti-aliasing level
142
+ */
143
+ getAALevel(): number;
144
+ /**
145
+ * Check if context is valid
146
+ */
147
+ isValid(): boolean;
148
+ /**
149
+ * Get context info
150
+ */
151
+ getInfo(): ContextInfo;
152
+ /**
153
+ * Get context status string
154
+ */
155
+ toString(): string;
156
+ }
157
+ /**
158
+ * Context information
159
+ */
160
+ export interface ContextInfo {
161
+ storeSize: number;
162
+ storeUsed: number;
163
+ storeAvailable: number;
164
+ storePercent: number;
165
+ aaLevel: number;
166
+ iccEnabled: boolean;
167
+ hasError: boolean;
168
+ errorMessage: string;
169
+ warningCount: number;
170
+ refCount: number;
171
+ }
172
+ /**
173
+ * Get the global default context
174
+ */
175
+ export declare function getDefaultContext(): Context;
176
+ /**
177
+ * Set the global default context
178
+ */
179
+ export declare function setDefaultContext(ctx: Context): void;
180
+ /**
181
+ * Reset the global default context
182
+ */
183
+ export declare function resetDefaultContext(): void;
184
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,320 @@
1
+ /**
2
+ * Context - Rendering and error context
3
+ *
4
+ * This module provides 100% API compatibility with MuPDF's context operations.
5
+ * Handles error management, memory management, and rendering contexts.
6
+ */
7
+ /**
8
+ * Context for MuPDF operations
9
+ */
10
+ export class Context {
11
+ _userData = null;
12
+ _errorCallback = null;
13
+ _warningCallback = null;
14
+ _warnings = [];
15
+ _lastError = null;
16
+ _storeSize = 256 * 1024 * 1024; // 256MB default
17
+ _storeUsed = 0;
18
+ _aaLevel = 8;
19
+ _iccEnabled = true;
20
+ _refCount = 1;
21
+ constructor() { }
22
+ /**
23
+ * Create a new default context
24
+ */
25
+ static createDefault() {
26
+ return new Context();
27
+ }
28
+ /**
29
+ * Create a new context
30
+ */
31
+ static create(storeSize) {
32
+ const ctx = new Context();
33
+ if (storeSize !== undefined) {
34
+ ctx._storeSize = storeSize;
35
+ }
36
+ return ctx;
37
+ }
38
+ /**
39
+ * Get the global default context (alias for getDefaultContext())
40
+ */
41
+ static getDefault() {
42
+ if (!defaultContext) {
43
+ defaultContext = Context.createDefault();
44
+ }
45
+ return defaultContext;
46
+ }
47
+ // ============================================================================
48
+ // Reference Counting
49
+ // ============================================================================
50
+ keep() {
51
+ this._refCount++;
52
+ return this;
53
+ }
54
+ drop() {
55
+ if (this._refCount > 0) {
56
+ this._refCount--;
57
+ }
58
+ }
59
+ /**
60
+ * Clone this context
61
+ */
62
+ clone() {
63
+ const cloned = new Context();
64
+ cloned._storeSize = this._storeSize;
65
+ cloned._aaLevel = this._aaLevel;
66
+ cloned._iccEnabled = this._iccEnabled;
67
+ return cloned;
68
+ }
69
+ // ============================================================================
70
+ // User Data
71
+ // ============================================================================
72
+ /**
73
+ * Set user context data
74
+ */
75
+ setUserContext(data) {
76
+ this._userData = data;
77
+ }
78
+ /**
79
+ * Get user context data
80
+ */
81
+ getUserContext() {
82
+ return this._userData;
83
+ }
84
+ // ============================================================================
85
+ // Error Handling
86
+ // ============================================================================
87
+ /**
88
+ * Throw an error
89
+ */
90
+ throw(message, code = 1) {
91
+ this._lastError = { message, code };
92
+ if (this._errorCallback) {
93
+ this._errorCallback(message, code);
94
+ }
95
+ throw new Error(message);
96
+ }
97
+ /**
98
+ * Rethrow the last error
99
+ */
100
+ rethrow() {
101
+ if (this._lastError) {
102
+ this.throw(this._lastError.message, this._lastError.code);
103
+ }
104
+ throw new Error('No error to rethrow');
105
+ }
106
+ /**
107
+ * Get caught error
108
+ */
109
+ caught() {
110
+ return this._lastError ? this._lastError.code : 0;
111
+ }
112
+ /**
113
+ * Get caught error message
114
+ */
115
+ caughtMessage() {
116
+ return this._lastError ? this._lastError.message : '';
117
+ }
118
+ /**
119
+ * Check if context has an error
120
+ */
121
+ hasError() {
122
+ return this._lastError !== null;
123
+ }
124
+ /**
125
+ * Ignore/clear the current error
126
+ */
127
+ ignoreError() {
128
+ this._lastError = null;
129
+ }
130
+ /**
131
+ * Convert error code to string
132
+ */
133
+ convertError(code) {
134
+ const errors = {
135
+ 0: 'No error',
136
+ 1: 'Generic error',
137
+ 2: 'Out of memory',
138
+ 3: 'Invalid operation',
139
+ 4: 'File not found',
140
+ 5: 'I/O error'
141
+ };
142
+ return errors[code] || `Error ${code}`;
143
+ }
144
+ /**
145
+ * Report error
146
+ */
147
+ reportError(message, code = 1) {
148
+ this._lastError = { message, code };
149
+ if (this._errorCallback) {
150
+ this._errorCallback(message, code);
151
+ }
152
+ }
153
+ /**
154
+ * Set error callback
155
+ */
156
+ setErrorCallback(callback) {
157
+ this._errorCallback = callback;
158
+ }
159
+ // ============================================================================
160
+ // Warning Handling
161
+ // ============================================================================
162
+ /**
163
+ * Issue a warning
164
+ */
165
+ warn(message) {
166
+ this._warnings.push(message);
167
+ if (this._warningCallback) {
168
+ this._warningCallback(message);
169
+ }
170
+ }
171
+ /**
172
+ * Flush accumulated warnings
173
+ */
174
+ flushWarnings() {
175
+ const warnings = [...this._warnings];
176
+ this._warnings = [];
177
+ return warnings;
178
+ }
179
+ /**
180
+ * Set warning callback
181
+ */
182
+ setWarningCallback(callback) {
183
+ this._warningCallback = callback;
184
+ }
185
+ // ============================================================================
186
+ // Store (Cache) Management
187
+ // ============================================================================
188
+ /**
189
+ * Get store size (cache size)
190
+ */
191
+ getStoreSize() {
192
+ return this._storeSize;
193
+ }
194
+ /**
195
+ * Get store used bytes
196
+ */
197
+ getStoreUsed() {
198
+ return this._storeUsed;
199
+ }
200
+ /**
201
+ * Shrink store to target size
202
+ */
203
+ shrinkStore(target) {
204
+ if (this._storeUsed > target) {
205
+ this._storeUsed = target;
206
+ }
207
+ }
208
+ /**
209
+ * Empty the store completely
210
+ */
211
+ emptyStore() {
212
+ this._storeUsed = 0;
213
+ }
214
+ /**
215
+ * Scavenge store (reclaim memory)
216
+ */
217
+ storeScavenge(target) {
218
+ const before = this._storeUsed;
219
+ this.shrinkStore(target);
220
+ return before - this._storeUsed;
221
+ }
222
+ // ============================================================================
223
+ // ICC Color Management
224
+ // ============================================================================
225
+ /**
226
+ * Enable ICC color management
227
+ */
228
+ enableICC() {
229
+ this._iccEnabled = true;
230
+ }
231
+ /**
232
+ * Disable ICC color management
233
+ */
234
+ disableICC() {
235
+ this._iccEnabled = false;
236
+ }
237
+ /**
238
+ * Check if ICC is enabled
239
+ */
240
+ get isICCEnabled() {
241
+ return this._iccEnabled;
242
+ }
243
+ // ============================================================================
244
+ // Anti-Aliasing
245
+ // ============================================================================
246
+ /**
247
+ * Set anti-aliasing level (0-8)
248
+ */
249
+ setAALevel(level) {
250
+ this._aaLevel = Math.max(0, Math.min(8, level));
251
+ }
252
+ /**
253
+ * Get anti-aliasing level
254
+ */
255
+ getAALevel() {
256
+ return this._aaLevel;
257
+ }
258
+ // ============================================================================
259
+ // Validation
260
+ // ============================================================================
261
+ /**
262
+ * Check if context is valid
263
+ */
264
+ isValid() {
265
+ return this._refCount > 0;
266
+ }
267
+ // ============================================================================
268
+ // Context Info
269
+ // ============================================================================
270
+ /**
271
+ * Get context info
272
+ */
273
+ getInfo() {
274
+ return {
275
+ storeSize: this._storeSize,
276
+ storeUsed: this._storeUsed,
277
+ storeAvailable: this._storeSize - this._storeUsed,
278
+ storePercent: (this._storeUsed / this._storeSize) * 100,
279
+ aaLevel: this._aaLevel,
280
+ iccEnabled: this._iccEnabled,
281
+ hasError: this.hasError(),
282
+ errorMessage: this.caughtMessage(),
283
+ warningCount: this._warnings.length,
284
+ refCount: this._refCount
285
+ };
286
+ }
287
+ /**
288
+ * Get context status string
289
+ */
290
+ toString() {
291
+ const info = this.getInfo();
292
+ return `Context(store=${(info.storeUsed / 1024 / 1024).toFixed(1)}/${(info.storeSize / 1024 / 1024).toFixed(0)}MB, aa=${info.aaLevel}, icc=${info.iccEnabled}, errors=${info.hasError}, warnings=${info.warningCount})`;
293
+ }
294
+ }
295
+ /**
296
+ * Global default context
297
+ */
298
+ let defaultContext = null;
299
+ /**
300
+ * Get the global default context
301
+ */
302
+ export function getDefaultContext() {
303
+ if (!defaultContext) {
304
+ defaultContext = Context.createDefault();
305
+ }
306
+ return defaultContext;
307
+ }
308
+ /**
309
+ * Set the global default context
310
+ */
311
+ export function setDefaultContext(ctx) {
312
+ defaultContext = ctx;
313
+ }
314
+ /**
315
+ * Reset the global default context
316
+ */
317
+ export function resetDefaultContext() {
318
+ defaultContext = null;
319
+ }
320
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,164 @@
1
+ /**
2
+ * Cookie - Operation progress and cancellation tracking
3
+ *
4
+ * This module provides 100% API compatibility with MuPDF's cookie operations.
5
+ * Cookies track progress, errors, and allow cancellation of long-running operations.
6
+ */
7
+ /**
8
+ * A cookie for tracking operation progress and cancellation
9
+ */
10
+ export declare class Cookie {
11
+ private _abort;
12
+ private _progress;
13
+ private _progressMax;
14
+ private _errors;
15
+ private _incomplete;
16
+ private _refCount;
17
+ constructor();
18
+ /**
19
+ * Create a new cookie
20
+ */
21
+ static create(): Cookie;
22
+ keep(): this;
23
+ drop(): void;
24
+ /**
25
+ * Clone this cookie
26
+ */
27
+ clone(): Cookie;
28
+ /**
29
+ * Check if operation should abort
30
+ */
31
+ shouldAbort(): boolean;
32
+ /**
33
+ * Request abortion of the operation
34
+ */
35
+ abort(): void;
36
+ /**
37
+ * Reset abort flag
38
+ */
39
+ resetAbort(): void;
40
+ /**
41
+ * Check if aborted
42
+ */
43
+ get isAborted(): boolean;
44
+ /**
45
+ * Get current progress
46
+ */
47
+ getProgress(): number;
48
+ /**
49
+ * Set current progress
50
+ */
51
+ setProgress(progress: number): void;
52
+ /**
53
+ * Increment progress
54
+ */
55
+ incProgress(delta?: number): void;
56
+ /**
57
+ * Get progress maximum
58
+ */
59
+ getProgressMax(): number;
60
+ /**
61
+ * Set progress maximum
62
+ */
63
+ setProgressMax(max: number): void;
64
+ /**
65
+ * Get progress as percentage (0-100)
66
+ */
67
+ getProgressPercent(): number;
68
+ /**
69
+ * Get progress as float (0.0-1.0)
70
+ */
71
+ getProgressFloat(): number;
72
+ /**
73
+ * Get remaining progress
74
+ */
75
+ getProgressRemaining(): number;
76
+ /**
77
+ * Check if progress is complete
78
+ */
79
+ isComplete(): boolean;
80
+ /**
81
+ * Get error count
82
+ */
83
+ getErrors(): number;
84
+ /**
85
+ * Set error count
86
+ */
87
+ setErrors(count: number): void;
88
+ /**
89
+ * Increment error count
90
+ */
91
+ incErrors(delta?: number): void;
92
+ /**
93
+ * Check if there are errors
94
+ */
95
+ hasErrors(): boolean;
96
+ /**
97
+ * Check if operation is incomplete
98
+ */
99
+ isIncomplete(): boolean;
100
+ /**
101
+ * Set incomplete flag
102
+ */
103
+ setIncomplete(incomplete: boolean): void;
104
+ /**
105
+ * Reset cookie to initial state
106
+ */
107
+ reset(): void;
108
+ /**
109
+ * Check if cookie is valid
110
+ */
111
+ isValid(): boolean;
112
+ /**
113
+ * Get status summary
114
+ */
115
+ getStatus(): {
116
+ aborted: boolean;
117
+ progress: number;
118
+ progressMax: number;
119
+ progressPercent: number;
120
+ progressFloat: number;
121
+ errors: number;
122
+ incomplete: boolean;
123
+ complete: boolean;
124
+ };
125
+ /**
126
+ * Get status string
127
+ */
128
+ toString(): string;
129
+ }
130
+ /**
131
+ * Cookie-aware operation wrapper
132
+ */
133
+ export declare class CookieOperation<T> {
134
+ private _cookie;
135
+ private _operation;
136
+ private _onProgress?;
137
+ private _onError?;
138
+ private _running;
139
+ constructor(operation: (cookie: Cookie) => Promise<T>, options?: {
140
+ onProgress?: (progress: number, max: number) => void;
141
+ onError?: (error: Error) => void;
142
+ });
143
+ /**
144
+ * Get the cookie
145
+ */
146
+ get cookie(): Cookie;
147
+ /**
148
+ * Check if operation is running
149
+ */
150
+ get isRunning(): boolean;
151
+ /**
152
+ * Run the operation
153
+ */
154
+ run(): Promise<T>;
155
+ /**
156
+ * Abort the operation
157
+ */
158
+ abort(): void;
159
+ /**
160
+ * Get progress as percentage
161
+ */
162
+ getProgress(): number;
163
+ }
164
+ //# sourceMappingURL=cookie.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../src/cookie.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,SAAS,CAAa;;IAI9B;;OAEG;IACH,MAAM,CAAC,MAAM,IAAI,MAAM;IAQvB,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;IAMZ;;OAEG;IACH,KAAK,IAAI,MAAM;IAcf;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAMD;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,WAAW,CAAC,KAAK,GAAE,MAAU,GAAG,IAAI;IAIpC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAO5B;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAO1B;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,UAAU,IAAI,OAAO;IAQrB;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI9B;;OAEG;IACH,SAAS,CAAC,KAAK,GAAE,MAAU,GAAG,IAAI;IAIlC;;OAEG;IACH,SAAS,IAAI,OAAO;IAQpB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAQxC;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,OAAO,IAAI,OAAO;IAQlB;;OAEG;IACH,SAAS,IAAI;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,OAAO,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;KACnB;IAaD;;OAEG;IACH,QAAQ,IAAI,MAAM;CAInB;AAED;;GAEG;AACH,qBAAa,eAAe,CAAC,CAAC;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,WAAW,CAAC,CAA0C;IAC9D,OAAO,CAAC,QAAQ,CAAC,CAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAkB;gBAGhC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,EACzC,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QACrD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;KAClC;IAYH;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;IAiCvB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,WAAW,IAAI,MAAM;CAGtB"}