@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
package/dist/link.d.ts ADDED
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Link - PDF hyperlink and navigation
3
+ *
4
+ * This module provides 100% API compatibility with MuPDF's link operations.
5
+ * Handles hyperlinks, page navigation, and external URIs.
6
+ */
7
+ import { Rect, type RectLike, type PointLike } from './geometry.js';
8
+ /**
9
+ * Link destination types
10
+ */
11
+ export declare enum LinkDestinationType {
12
+ URI = 0,// External URI
13
+ Page = 1,// Internal page number
14
+ XYZ = 2,// Go to position on page
15
+ Fit = 3,// Fit page to window
16
+ FitH = 4,// Fit horizontally
17
+ FitV = 5,// Fit vertically
18
+ FitR = 6,// Fit rectangle
19
+ FitB = 7,// Fit bounding box
20
+ FitBH = 8,// Fit bounding box horizontally
21
+ FitBV = 9
22
+ }
23
+ /**
24
+ * A PDF hyperlink
25
+ */
26
+ export declare class Link {
27
+ private _rect;
28
+ private _uri;
29
+ private _pageNumber;
30
+ private _refCount;
31
+ private _destType;
32
+ constructor(rect: RectLike, uri?: string, pageNumber?: number);
33
+ /**
34
+ * Create a new link
35
+ */
36
+ static create(rect: RectLike, uri?: string, pageNumber?: number): Link;
37
+ /**
38
+ * Create a URI link
39
+ */
40
+ static createURI(rect: RectLike, uri: string): Link;
41
+ /**
42
+ * Create a page link
43
+ */
44
+ static createPage(rect: RectLike, pageNumber: number): Link;
45
+ keep(): this;
46
+ drop(): void;
47
+ /**
48
+ * Clone this link
49
+ */
50
+ clone(): Link;
51
+ get rect(): Rect;
52
+ set rect(r: RectLike);
53
+ get uri(): string;
54
+ set uri(uri: string);
55
+ get pageNumber(): number;
56
+ /**
57
+ * Check if link is external (URI)
58
+ */
59
+ isExternal(): boolean;
60
+ /**
61
+ * Check if link is a page link
62
+ */
63
+ isPageLink(): boolean;
64
+ /**
65
+ * Get destination type
66
+ */
67
+ get destinationType(): LinkDestinationType;
68
+ /**
69
+ * Check if link is valid
70
+ */
71
+ isValid(): boolean;
72
+ /**
73
+ * Check if two links are equal
74
+ */
75
+ equals(other: Link): boolean;
76
+ }
77
+ /**
78
+ * A list of links for a page
79
+ */
80
+ export declare class LinkList {
81
+ private _links;
82
+ constructor();
83
+ /**
84
+ * Create a new link list
85
+ */
86
+ static create(): LinkList;
87
+ /**
88
+ * Clone this link list
89
+ */
90
+ clone(): LinkList;
91
+ /**
92
+ * Add a link to the list
93
+ */
94
+ add(link: Link): void;
95
+ /**
96
+ * Count number of links
97
+ */
98
+ count(): number;
99
+ /**
100
+ * Check if list is empty
101
+ */
102
+ isEmpty(): boolean;
103
+ /**
104
+ * Get first link
105
+ */
106
+ first(): Link | undefined;
107
+ /**
108
+ * Get link by index
109
+ */
110
+ get(index: number): Link | undefined;
111
+ /**
112
+ * Get all links
113
+ */
114
+ getAll(): Link[];
115
+ /**
116
+ * Find link at a point
117
+ */
118
+ findAtPoint(point: PointLike): Link | undefined;
119
+ /**
120
+ * Find all links at a point
121
+ */
122
+ findAllAtPoint(point: PointLike): Link[];
123
+ /**
124
+ * Find links in a rect
125
+ */
126
+ findInRect(rect: RectLike): Link[];
127
+ /**
128
+ * Clear all links
129
+ */
130
+ clear(): void;
131
+ /**
132
+ * Remove a specific link
133
+ */
134
+ remove(link: Link): boolean;
135
+ /**
136
+ * Remove link at index
137
+ */
138
+ removeAt(index: number): boolean;
139
+ /**
140
+ * Get all external (URI) links
141
+ */
142
+ getExternalLinks(): Link[];
143
+ /**
144
+ * Get all page links
145
+ */
146
+ getPageLinks(): Link[];
147
+ /**
148
+ * Get links by page number
149
+ */
150
+ getLinksToPage(pageNumber: number): Link[];
151
+ /**
152
+ * Iterate over links
153
+ */
154
+ [Symbol.iterator](): Generator<Link>;
155
+ /**
156
+ * For each link
157
+ */
158
+ forEach(callback: (link: Link, index: number) => void): void;
159
+ /**
160
+ * Map links
161
+ */
162
+ map<T>(callback: (link: Link, index: number) => T): T[];
163
+ /**
164
+ * Filter links
165
+ */
166
+ filter(predicate: (link: Link, index: number) => boolean): Link[];
167
+ }
168
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
package/dist/link.js ADDED
@@ -0,0 +1,343 @@
1
+ /**
2
+ * Link - PDF hyperlink and navigation
3
+ *
4
+ * This module provides 100% API compatibility with MuPDF's link operations.
5
+ * Handles hyperlinks, page navigation, and external URIs.
6
+ */
7
+ import { Rect, Point } from './geometry.js';
8
+ /**
9
+ * Link destination types
10
+ */
11
+ export var LinkDestinationType;
12
+ (function (LinkDestinationType) {
13
+ LinkDestinationType[LinkDestinationType["URI"] = 0] = "URI";
14
+ LinkDestinationType[LinkDestinationType["Page"] = 1] = "Page";
15
+ LinkDestinationType[LinkDestinationType["XYZ"] = 2] = "XYZ";
16
+ LinkDestinationType[LinkDestinationType["Fit"] = 3] = "Fit";
17
+ LinkDestinationType[LinkDestinationType["FitH"] = 4] = "FitH";
18
+ LinkDestinationType[LinkDestinationType["FitV"] = 5] = "FitV";
19
+ LinkDestinationType[LinkDestinationType["FitR"] = 6] = "FitR";
20
+ LinkDestinationType[LinkDestinationType["FitB"] = 7] = "FitB";
21
+ LinkDestinationType[LinkDestinationType["FitBH"] = 8] = "FitBH";
22
+ LinkDestinationType[LinkDestinationType["FitBV"] = 9] = "FitBV"; // Fit bounding box vertically
23
+ })(LinkDestinationType || (LinkDestinationType = {}));
24
+ /**
25
+ * A PDF hyperlink
26
+ */
27
+ export class Link {
28
+ _rect;
29
+ _uri = '';
30
+ _pageNumber = -1;
31
+ _refCount = 1;
32
+ _destType = LinkDestinationType.URI;
33
+ constructor(rect, uri, pageNumber) {
34
+ this._rect = Rect.from(rect);
35
+ if (uri !== undefined) {
36
+ this._uri = uri;
37
+ this._destType = LinkDestinationType.URI;
38
+ }
39
+ else if (pageNumber !== undefined) {
40
+ this._pageNumber = pageNumber;
41
+ this._destType = LinkDestinationType.Page;
42
+ }
43
+ }
44
+ /**
45
+ * Create a new link
46
+ */
47
+ static create(rect, uri, pageNumber) {
48
+ return new Link(rect, uri, pageNumber);
49
+ }
50
+ /**
51
+ * Create a URI link
52
+ */
53
+ static createURI(rect, uri) {
54
+ return new Link(rect, uri);
55
+ }
56
+ /**
57
+ * Create a page link
58
+ */
59
+ static createPage(rect, pageNumber) {
60
+ return new Link(rect, undefined, pageNumber);
61
+ }
62
+ // ============================================================================
63
+ // Reference Counting
64
+ // ============================================================================
65
+ keep() {
66
+ this._refCount++;
67
+ return this;
68
+ }
69
+ drop() {
70
+ if (this._refCount > 0) {
71
+ this._refCount--;
72
+ }
73
+ }
74
+ /**
75
+ * Clone this link
76
+ */
77
+ clone() {
78
+ const cloned = new Link(this._rect, this._uri, this._pageNumber);
79
+ cloned._destType = this._destType;
80
+ return cloned;
81
+ }
82
+ // ============================================================================
83
+ // Properties
84
+ // ============================================================================
85
+ get rect() {
86
+ return this._rect;
87
+ }
88
+ set rect(r) {
89
+ this._rect = Rect.from(r);
90
+ }
91
+ get uri() {
92
+ return this._uri;
93
+ }
94
+ set uri(uri) {
95
+ this._uri = uri;
96
+ this._destType = LinkDestinationType.URI;
97
+ this._pageNumber = -1;
98
+ }
99
+ get pageNumber() {
100
+ return this._pageNumber;
101
+ }
102
+ /**
103
+ * Check if link is external (URI)
104
+ */
105
+ isExternal() {
106
+ return this._destType === LinkDestinationType.URI && this._uri.length > 0;
107
+ }
108
+ /**
109
+ * Check if link is a page link
110
+ */
111
+ isPageLink() {
112
+ return this._destType === LinkDestinationType.Page && this._pageNumber >= 0;
113
+ }
114
+ /**
115
+ * Get destination type
116
+ */
117
+ get destinationType() {
118
+ return this._destType;
119
+ }
120
+ // ============================================================================
121
+ // Validation
122
+ // ============================================================================
123
+ /**
124
+ * Check if link is valid
125
+ */
126
+ isValid() {
127
+ if (this._rect.isEmpty) {
128
+ return false;
129
+ }
130
+ if (this._destType === LinkDestinationType.URI && this._uri.length === 0) {
131
+ return false;
132
+ }
133
+ if (this._destType === LinkDestinationType.Page && this._pageNumber < 0) {
134
+ return false;
135
+ }
136
+ return true;
137
+ }
138
+ // ============================================================================
139
+ // Comparison
140
+ // ============================================================================
141
+ /**
142
+ * Check if two links are equal
143
+ */
144
+ equals(other) {
145
+ if (!this._rect.equals(other._rect)) {
146
+ return false;
147
+ }
148
+ if (this._destType !== other._destType) {
149
+ return false;
150
+ }
151
+ if (this._destType === LinkDestinationType.URI) {
152
+ return this._uri === other._uri;
153
+ }
154
+ if (this._destType === LinkDestinationType.Page) {
155
+ return this._pageNumber === other._pageNumber;
156
+ }
157
+ return true;
158
+ }
159
+ }
160
+ /**
161
+ * A list of links for a page
162
+ */
163
+ export class LinkList {
164
+ _links = [];
165
+ constructor() { }
166
+ /**
167
+ * Create a new link list
168
+ */
169
+ static create() {
170
+ return new LinkList();
171
+ }
172
+ // ============================================================================
173
+ // Reference Counting
174
+ // ============================================================================
175
+ /**
176
+ * Clone this link list
177
+ */
178
+ clone() {
179
+ const cloned = new LinkList();
180
+ cloned._links = this._links.map((link) => link.clone());
181
+ return cloned;
182
+ }
183
+ // ============================================================================
184
+ // Link Management
185
+ // ============================================================================
186
+ /**
187
+ * Add a link to the list
188
+ */
189
+ add(link) {
190
+ this._links.push(link);
191
+ }
192
+ /**
193
+ * Count number of links
194
+ */
195
+ count() {
196
+ return this._links.length;
197
+ }
198
+ /**
199
+ * Check if list is empty
200
+ */
201
+ isEmpty() {
202
+ return this._links.length === 0;
203
+ }
204
+ /**
205
+ * Get first link
206
+ */
207
+ first() {
208
+ return this._links[0];
209
+ }
210
+ /**
211
+ * Get link by index
212
+ */
213
+ get(index) {
214
+ if (index < 0 || index >= this._links.length) {
215
+ return undefined;
216
+ }
217
+ return this._links[index];
218
+ }
219
+ /**
220
+ * Get all links
221
+ */
222
+ getAll() {
223
+ return [...this._links];
224
+ }
225
+ /**
226
+ * Find link at a point
227
+ */
228
+ findAtPoint(point) {
229
+ const p = Point.from(point);
230
+ for (const link of this._links) {
231
+ if (link.rect.containsPoint(p)) {
232
+ return link;
233
+ }
234
+ }
235
+ return undefined;
236
+ }
237
+ /**
238
+ * Find all links at a point
239
+ */
240
+ findAllAtPoint(point) {
241
+ const p = Point.from(point);
242
+ const results = [];
243
+ for (const link of this._links) {
244
+ if (link.rect.containsPoint(p)) {
245
+ results.push(link);
246
+ }
247
+ }
248
+ return results;
249
+ }
250
+ /**
251
+ * Find links in a rect
252
+ */
253
+ findInRect(rect) {
254
+ const r = Rect.from(rect);
255
+ const results = [];
256
+ for (const link of this._links) {
257
+ // Check if rectangles intersect by seeing if they don't *not* intersect
258
+ const intersection = link.rect.intersect(r);
259
+ if (!intersection.isEmpty) {
260
+ results.push(link);
261
+ }
262
+ }
263
+ return results;
264
+ }
265
+ /**
266
+ * Clear all links
267
+ */
268
+ clear() {
269
+ this._links = [];
270
+ }
271
+ /**
272
+ * Remove a specific link
273
+ */
274
+ remove(link) {
275
+ const index = this._links.indexOf(link);
276
+ if (index >= 0) {
277
+ this._links.splice(index, 1);
278
+ return true;
279
+ }
280
+ return false;
281
+ }
282
+ /**
283
+ * Remove link at index
284
+ */
285
+ removeAt(index) {
286
+ if (index >= 0 && index < this._links.length) {
287
+ this._links.splice(index, 1);
288
+ return true;
289
+ }
290
+ return false;
291
+ }
292
+ // ============================================================================
293
+ // Filtering
294
+ // ============================================================================
295
+ /**
296
+ * Get all external (URI) links
297
+ */
298
+ getExternalLinks() {
299
+ return this._links.filter((link) => link.isExternal());
300
+ }
301
+ /**
302
+ * Get all page links
303
+ */
304
+ getPageLinks() {
305
+ return this._links.filter((link) => link.isPageLink());
306
+ }
307
+ /**
308
+ * Get links by page number
309
+ */
310
+ getLinksToPage(pageNumber) {
311
+ return this._links.filter((link) => link.isPageLink() && link.pageNumber === pageNumber);
312
+ }
313
+ // ============================================================================
314
+ // Iteration
315
+ // ============================================================================
316
+ /**
317
+ * Iterate over links
318
+ */
319
+ *[Symbol.iterator]() {
320
+ for (const link of this._links) {
321
+ yield link;
322
+ }
323
+ }
324
+ /**
325
+ * For each link
326
+ */
327
+ forEach(callback) {
328
+ this._links.forEach(callback);
329
+ }
330
+ /**
331
+ * Map links
332
+ */
333
+ map(callback) {
334
+ return this._links.map(callback);
335
+ }
336
+ /**
337
+ * Filter links
338
+ */
339
+ filter(predicate) {
340
+ return this._links.filter(predicate);
341
+ }
342
+ }
343
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../src/link.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * MicroPDF - Main API
3
+ */
4
+ /**
5
+ * Options for MicroPDF initialization
6
+ */
7
+ export interface MicroPDFOptions {
8
+ /**
9
+ * Whether to allow mock implementation when native addon is not available
10
+ * @default true
11
+ */
12
+ allowMock?: boolean;
13
+ }
14
+ /**
15
+ * Get the MicroPDF library version
16
+ */
17
+ export declare function getVersion(): string;
18
+ /**
19
+ * Main MicroPDF class
20
+ */
21
+ export declare class MicroPDF {
22
+ private static initialized;
23
+ /**
24
+ * Initialize MicroPDF
25
+ */
26
+ static init(options?: MicroPDFOptions): void;
27
+ /**
28
+ * Check if MicroPDF is using the mock implementation
29
+ */
30
+ static get isMock(): boolean;
31
+ /**
32
+ * Get the library version
33
+ */
34
+ static get version(): string;
35
+ /**
36
+ * Check if initialized
37
+ */
38
+ static get isInitialized(): boolean;
39
+ }
40
+ //# sourceMappingURL=micropdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"micropdf.d.ts","sourceRoot":"","sources":["../src/micropdf.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAS;IAEnC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,GAAE,eAAoB,GAAG,IAAI;IAYhD;;OAEG;IACH,MAAM,KAAK,MAAM,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;IAED;;OAEG;IACH,MAAM,KAAK,aAAa,IAAI,OAAO,CAElC;CACF"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * MicroPDF - Main API
3
+ */
4
+ import { native_addon, isMock } from './native.js';
5
+ /**
6
+ * Get the MicroPDF library version
7
+ */
8
+ export function getVersion() {
9
+ return native_addon.getVersion();
10
+ }
11
+ /**
12
+ * Main MicroPDF class
13
+ */
14
+ export class MicroPDF {
15
+ static initialized = false;
16
+ /**
17
+ * Initialize MicroPDF
18
+ */
19
+ static init(options = {}) {
20
+ const { allowMock = true } = options;
21
+ if (isMock && !allowMock) {
22
+ throw new Error('MicroPDF native addon not found. Install native dependencies or set allowMock: true');
23
+ }
24
+ MicroPDF.initialized = true;
25
+ }
26
+ /**
27
+ * Check if MicroPDF is using the mock implementation
28
+ */
29
+ static get isMock() {
30
+ return isMock;
31
+ }
32
+ /**
33
+ * Get the library version
34
+ */
35
+ static get version() {
36
+ return getVersion();
37
+ }
38
+ /**
39
+ * Check if initialized
40
+ */
41
+ static get isInitialized() {
42
+ return MicroPDF.initialized;
43
+ }
44
+ }
45
+ //# sourceMappingURL=micropdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"micropdf.js","sourceRoot":"","sources":["../src/micropdf.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAanD;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,QAAQ;IACX,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IAEnC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,UAA2B,EAAE;QACvC,MAAM,EAAE,SAAS,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAErC,IAAI,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CACb,qFAAqF,CACtF,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,MAAM;QACf,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,OAAO;QAChB,OAAO,UAAU,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,MAAM,KAAK,aAAa;QACtB,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * MicroPDF - Main API
3
+ */
4
+ /**
5
+ * Options for MicroPDF initialization
6
+ */
7
+ export interface MicroPDFOptions {
8
+ /**
9
+ * Whether to allow mock implementation when native addon is not available
10
+ * @default true
11
+ */
12
+ allowMock?: boolean;
13
+ }
14
+ /**
15
+ * Get the MicroPDF library version
16
+ */
17
+ export declare function getVersion(): string;
18
+ /**
19
+ * Main MicroPDF class
20
+ */
21
+ export declare class MicroPDF {
22
+ private static initialized;
23
+ /**
24
+ * Initialize MicroPDF
25
+ */
26
+ static init(options?: MicroPDFOptions): void;
27
+ /**
28
+ * Check if MicroPDF is using the mock implementation
29
+ */
30
+ static get isMock(): boolean;
31
+ /**
32
+ * Get the library version
33
+ */
34
+ static get version(): string;
35
+ /**
36
+ * Check if initialized
37
+ */
38
+ static get isInitialized(): boolean;
39
+ }
40
+ //# sourceMappingURL=micropdf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"micropdf.d.ts","sourceRoot":"","sources":["../src/micropdf.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAS;IAEnC;;OAEG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,GAAE,cAAmB,GAAG,IAAI;IAY/C;;OAEG;IACH,MAAM,KAAK,MAAM,IAAI,OAAO,CAE3B;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,IAAI,MAAM,CAE3B;IAED;;OAEG;IACH,MAAM,KAAK,aAAa,IAAI,OAAO,CAElC;CACF"}