pdfnova 1.0.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.
- package/README.md +336 -0
- package/dist/AnnotationReader-ADHPZ3V5.mjs +3 -0
- package/dist/AnnotationReader-ADHPZ3V5.mjs.map +1 -0
- package/dist/AnnotationReader-C5XLXGWS.cjs +12 -0
- package/dist/AnnotationReader-C5XLXGWS.cjs.map +1 -0
- package/dist/AnnotationWriter-N3Y4KTPI.cjs +12 -0
- package/dist/AnnotationWriter-N3Y4KTPI.cjs.map +1 -0
- package/dist/AnnotationWriter-XWY5N6AZ.mjs +3 -0
- package/dist/AnnotationWriter-XWY5N6AZ.mjs.map +1 -0
- package/dist/FormFiller-2O4MOQYV.cjs +12 -0
- package/dist/FormFiller-2O4MOQYV.cjs.map +1 -0
- package/dist/FormFiller-6DLWMRN5.mjs +3 -0
- package/dist/FormFiller-6DLWMRN5.mjs.map +1 -0
- package/dist/FormFlattener-5MWLLH7W.cjs +12 -0
- package/dist/FormFlattener-5MWLLH7W.cjs.map +1 -0
- package/dist/FormFlattener-YQRQ3QOY.mjs +3 -0
- package/dist/FormFlattener-YQRQ3QOY.mjs.map +1 -0
- package/dist/FormReader-QAEDFD77.cjs +13 -0
- package/dist/FormReader-QAEDFD77.cjs.map +1 -0
- package/dist/FormReader-XEF3T5LD.mjs +4 -0
- package/dist/FormReader-XEF3T5LD.mjs.map +1 -0
- package/dist/SignatureVerifier-2IR7UQGU.mjs +3 -0
- package/dist/SignatureVerifier-2IR7UQGU.mjs.map +1 -0
- package/dist/SignatureVerifier-4KWQA7X6.cjs +12 -0
- package/dist/SignatureVerifier-4KWQA7X6.cjs.map +1 -0
- package/dist/WasmMock-2I3GVRQF.mjs +397 -0
- package/dist/WasmMock-2I3GVRQF.mjs.map +1 -0
- package/dist/WasmMock-OYPV4J6B.cjs +399 -0
- package/dist/WasmMock-OYPV4J6B.cjs.map +1 -0
- package/dist/chunk-2OWW5BYD.mjs +1847 -0
- package/dist/chunk-2OWW5BYD.mjs.map +1 -0
- package/dist/chunk-2YFCKMVK.cjs +72 -0
- package/dist/chunk-2YFCKMVK.cjs.map +1 -0
- package/dist/chunk-7FGOUG4Z.cjs +51 -0
- package/dist/chunk-7FGOUG4Z.cjs.map +1 -0
- package/dist/chunk-CPMUWWNS.cjs +44 -0
- package/dist/chunk-CPMUWWNS.cjs.map +1 -0
- package/dist/chunk-DVMAQ62T.cjs +109 -0
- package/dist/chunk-DVMAQ62T.cjs.map +1 -0
- package/dist/chunk-ETSUOY4U.cjs +104 -0
- package/dist/chunk-ETSUOY4U.cjs.map +1 -0
- package/dist/chunk-FD5RTJ5W.mjs +60 -0
- package/dist/chunk-FD5RTJ5W.mjs.map +1 -0
- package/dist/chunk-FO3DQLVB.mjs +42 -0
- package/dist/chunk-FO3DQLVB.mjs.map +1 -0
- package/dist/chunk-G2FA6VKV.cjs +62 -0
- package/dist/chunk-G2FA6VKV.cjs.map +1 -0
- package/dist/chunk-G7575D5X.mjs +67 -0
- package/dist/chunk-G7575D5X.mjs.map +1 -0
- package/dist/chunk-I7OBHZLB.mjs +75 -0
- package/dist/chunk-I7OBHZLB.mjs.map +1 -0
- package/dist/chunk-INA3KRJK.cjs +1863 -0
- package/dist/chunk-INA3KRJK.cjs.map +1 -0
- package/dist/chunk-RZFKZ2CA.cjs +77 -0
- package/dist/chunk-RZFKZ2CA.cjs.map +1 -0
- package/dist/chunk-VRJQZOCH.mjs +107 -0
- package/dist/chunk-VRJQZOCH.mjs.map +1 -0
- package/dist/chunk-X53667JS.mjs +102 -0
- package/dist/chunk-X53667JS.mjs.map +1 -0
- package/dist/chunk-XEHKVFPJ.mjs +49 -0
- package/dist/chunk-XEHKVFPJ.mjs.map +1 -0
- package/dist/index.cjs +112 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +103 -0
- package/dist/index.d.ts +103 -0
- package/dist/index.mjs +14 -0
- package/dist/index.mjs.map +1 -0
- package/dist/lite-CMz-Yosm.d.cts +662 -0
- package/dist/lite-CMz-Yosm.d.ts +662 -0
- package/dist/lite.cjs +70 -0
- package/dist/lite.cjs.map +1 -0
- package/dist/lite.d.cts +1 -0
- package/dist/lite.d.ts +1 -0
- package/dist/lite.mjs +8 -0
- package/dist/lite.mjs.map +1 -0
- package/package.json +68 -0
package/README.md
ADDED
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
# pdfnova
|
|
2
|
+
|
|
3
|
+
**PDFium-powered PDF library for JavaScript.** Chrome-grade rendering via WebAssembly with full TypeScript types. Supports text extraction, search, bookmarks, annotations, forms, and digital signatures.
|
|
4
|
+
|
|
5
|
+
Built on [`@embedpdf/pdfium`](https://www.npmjs.com/package/@embedpdf/pdfium) — the real PDFium engine (used in Chrome) compiled to WebAssembly.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install pdfnova
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Two Tiers
|
|
14
|
+
|
|
15
|
+
| | pdfnova/lite | pdfnova (full) |
|
|
16
|
+
| ------------------------ | ------------ | -------------- |
|
|
17
|
+
| **JS Bundle (minified)** | ~3KB | ~5KB |
|
|
18
|
+
| **WASM Binary** | 4.4MB on disk / ~1.5MB over the wire (Brotli) | |
|
|
19
|
+
| Rendering | Yes | Yes |
|
|
20
|
+
| Text extraction | Yes | Yes |
|
|
21
|
+
| Text layer (DOM) | Yes | Yes |
|
|
22
|
+
| Search | Yes | Yes |
|
|
23
|
+
| Bookmarks/TOC | Yes | Yes |
|
|
24
|
+
| Virtualization | Yes | Yes |
|
|
25
|
+
| Worker/OffscreenCanvas | Yes | Yes |
|
|
26
|
+
| Annotations (read/write) | — | Yes |
|
|
27
|
+
| Form filling/flattening | — | Yes |
|
|
28
|
+
| Digital signatures | — | Yes |
|
|
29
|
+
| doc.save() | — | Yes |
|
|
30
|
+
|
|
31
|
+
> The WASM binary is fetched once and cached in IndexedDB — subsequent page loads are instant with zero network cost. Both tiers share the same binary — the lite/full distinction controls which TypeScript API features are available.
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
// Lightweight — render, text, search, bookmarks
|
|
35
|
+
import { PDFDocument } from "pdfnova/lite";
|
|
36
|
+
|
|
37
|
+
// Full — everything above + annotations, forms, signatures
|
|
38
|
+
import { PDFDocument } from "pdfnova";
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Quick Start
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
import { PDFDocument } from "pdfnova/lite";
|
|
45
|
+
|
|
46
|
+
// Open from URL, ArrayBuffer, File, Blob, or base64 data URI
|
|
47
|
+
const doc = await PDFDocument.open("/report.pdf");
|
|
48
|
+
|
|
49
|
+
// Document info
|
|
50
|
+
console.log(doc.pageCount); // 42
|
|
51
|
+
console.log(doc.metadata); // { title, author, subject, ... }
|
|
52
|
+
console.log(doc.outline); // OutlineItem[] (bookmarks tree)
|
|
53
|
+
|
|
54
|
+
// Render a page
|
|
55
|
+
const page = doc.getPage(0);
|
|
56
|
+
const canvas = document.createElement("canvas");
|
|
57
|
+
await page.render(canvas, { scale: 2 });
|
|
58
|
+
|
|
59
|
+
// Text extraction with character-level precision
|
|
60
|
+
const text = page.getText();
|
|
61
|
+
const spans = page.getTextSpans(); // TextSpan[] with x, y, width, height
|
|
62
|
+
|
|
63
|
+
// Build a selectable text layer over the canvas
|
|
64
|
+
page.createTextLayer(container);
|
|
65
|
+
|
|
66
|
+
// Full-text search
|
|
67
|
+
const results = doc.search("quarterly revenue");
|
|
68
|
+
|
|
69
|
+
// Cleanup
|
|
70
|
+
doc.close();
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Rendering
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
const page = doc.getPage(0);
|
|
77
|
+
|
|
78
|
+
// Render to canvas
|
|
79
|
+
await page.render(canvas, {
|
|
80
|
+
scale: 2, // 2x resolution
|
|
81
|
+
rotation: 90, // 0, 90, 180, 270
|
|
82
|
+
background: "#ffffff",
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
// Render to ImageData (no DOM required)
|
|
86
|
+
const imageData = await page.renderToImageData({ scale: 1.5 });
|
|
87
|
+
|
|
88
|
+
// Thumbnails
|
|
89
|
+
import { PageRenderer } from "pdfnova/lite";
|
|
90
|
+
await PageRenderer.renderThumbnail(page, thumbCanvas, 200);
|
|
91
|
+
|
|
92
|
+
// Fit-to-width scale calculation
|
|
93
|
+
const scale = PageRenderer.fitWidthScale(page, containerWidth);
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Virtual Renderer
|
|
97
|
+
|
|
98
|
+
For large documents, only render visible pages:
|
|
99
|
+
|
|
100
|
+
```typescript
|
|
101
|
+
import { VirtualRenderer } from "pdfnova/lite";
|
|
102
|
+
|
|
103
|
+
const renderer = new VirtualRenderer({
|
|
104
|
+
container: document.getElementById("viewer")!,
|
|
105
|
+
scale: 1.5,
|
|
106
|
+
overscan: 2, // render 2 pages above/below viewport
|
|
107
|
+
cacheSize: 10, // LRU cache for rendered pages
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
await renderer.setDocument(doc);
|
|
111
|
+
renderer.scrollToPage(5);
|
|
112
|
+
console.log(renderer.getCurrentPage());
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Text Layer
|
|
116
|
+
|
|
117
|
+
pdfnova uses PDFium's character-level bounding boxes for pixel-perfect text selection:
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
// Span-level positioning (fast, good enough for most use cases)
|
|
121
|
+
const layer = page.createTextLayer(container);
|
|
122
|
+
|
|
123
|
+
// Character-level positioning (slower but pixel-perfect)
|
|
124
|
+
import { TextLayerBuilder } from "pdfnova/lite";
|
|
125
|
+
const builder = new TextLayerBuilder(wasm, bridge);
|
|
126
|
+
builder.buildCharLevel(textPagePtr, container, page.width, page.height, scale);
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Search
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
// Search a single page
|
|
133
|
+
const pageResults = page.search("revenue", { caseSensitive: true });
|
|
134
|
+
|
|
135
|
+
// Search entire document
|
|
136
|
+
const allResults = doc.search("quarterly revenue", { wholeWord: true });
|
|
137
|
+
|
|
138
|
+
// Each result has:
|
|
139
|
+
// - pageIndex, charIndex, charCount
|
|
140
|
+
// - rects (TextRect[] for highlighting)
|
|
141
|
+
// - text (matched text)
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Bookmarks / Table of Contents
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
const outline = doc.outline;
|
|
148
|
+
// OutlineItem { title, pageIndex, children: OutlineItem[] }
|
|
149
|
+
|
|
150
|
+
for (const item of outline) {
|
|
151
|
+
console.log(`${item.title} → page ${item.pageIndex + 1}`);
|
|
152
|
+
for (const child of item.children) {
|
|
153
|
+
console.log(` ${child.title} → page ${child.pageIndex + 1}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Annotations (full tier)
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
import { PDFDocument, AnnotationType } from "pdfnova";
|
|
162
|
+
|
|
163
|
+
const doc = await PDFDocument.open(data);
|
|
164
|
+
const page = doc.getPage(0);
|
|
165
|
+
|
|
166
|
+
// Read existing annotations
|
|
167
|
+
const annotations = await page.getAnnotations();
|
|
168
|
+
|
|
169
|
+
// Add a highlight annotation
|
|
170
|
+
await page.addAnnotation({
|
|
171
|
+
type: AnnotationType.Highlight,
|
|
172
|
+
rect: { left: 72, top: 720, right: 300, bottom: 700 },
|
|
173
|
+
color: { r: 255, g: 235, b: 59, a: 128 },
|
|
174
|
+
contents: "Important section",
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
// Remove an annotation
|
|
178
|
+
await page.removeAnnotation(0);
|
|
179
|
+
|
|
180
|
+
// Save modified PDF
|
|
181
|
+
const bytes = await doc.save();
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Form Filling (full tier)
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
import { PDFDocument } from "pdfnova";
|
|
188
|
+
|
|
189
|
+
const doc = await PDFDocument.open(formPdf);
|
|
190
|
+
|
|
191
|
+
// Read all form fields
|
|
192
|
+
const fields = await doc.getFormFields();
|
|
193
|
+
// FormFieldData { name, type, value, isChecked, pageIndex }
|
|
194
|
+
|
|
195
|
+
// Fill fields
|
|
196
|
+
await doc.setFormField("name", "John Doe");
|
|
197
|
+
await doc.setFormField("email", "john@example.com");
|
|
198
|
+
|
|
199
|
+
// Flatten forms (make non-interactive)
|
|
200
|
+
await doc.flattenForms();
|
|
201
|
+
|
|
202
|
+
// Save
|
|
203
|
+
const filled = await doc.save();
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Digital Signatures (full tier)
|
|
207
|
+
|
|
208
|
+
```typescript
|
|
209
|
+
import { PDFDocument } from "pdfnova";
|
|
210
|
+
|
|
211
|
+
const doc = await PDFDocument.open(signedPdf);
|
|
212
|
+
|
|
213
|
+
const signatures = await doc.getSignatures();
|
|
214
|
+
// SignatureData { index, contents, byteRange, subFilter, reason, signingTime }
|
|
215
|
+
|
|
216
|
+
// Format signature info
|
|
217
|
+
import { SignatureInfo } from "pdfnova";
|
|
218
|
+
for (const sig of signatures) {
|
|
219
|
+
console.log(SignatureInfo.formatSummary(sig));
|
|
220
|
+
console.log(SignatureInfo.getSignatureFormat(sig.subFilter));
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
## Worker Pool
|
|
225
|
+
|
|
226
|
+
Render pages concurrently across multiple Web Workers:
|
|
227
|
+
|
|
228
|
+
```typescript
|
|
229
|
+
import { WorkerPool } from "pdfnova/lite";
|
|
230
|
+
|
|
231
|
+
const pool = new WorkerPool(4); // 4 workers
|
|
232
|
+
await pool.init({ tier: "lite" });
|
|
233
|
+
|
|
234
|
+
// Render multiple pages in parallel
|
|
235
|
+
const images = await pool.renderPages([0, 1, 2, 3], { scale: 2 });
|
|
236
|
+
|
|
237
|
+
pool.destroy();
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
## Authenticated URLs
|
|
241
|
+
|
|
242
|
+
```typescript
|
|
243
|
+
const doc = await PDFDocument.open(
|
|
244
|
+
"https://api.example.com/documents/123/download",
|
|
245
|
+
{
|
|
246
|
+
headers: { Authorization: "Bearer eyJ..." },
|
|
247
|
+
credentials: "include",
|
|
248
|
+
},
|
|
249
|
+
);
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Password-Protected PDFs
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
const doc = await PDFDocument.open(encryptedPdf, {
|
|
256
|
+
password: "secret123",
|
|
257
|
+
});
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## Custom WASM URL
|
|
261
|
+
|
|
262
|
+
By default, pdfnova loads the PDFium WASM binary from jsDelivr CDN. To self-host:
|
|
263
|
+
|
|
264
|
+
```typescript
|
|
265
|
+
const doc = await PDFDocument.open(data, {
|
|
266
|
+
wasmUrl: "https://cdn.example.com/pdfium.wasm",
|
|
267
|
+
});
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
You can get the WASM binary from `node_modules/@embedpdf/pdfium/dist/pdfium.wasm` and serve it from your own infrastructure.
|
|
271
|
+
|
|
272
|
+
## API Reference
|
|
273
|
+
|
|
274
|
+
### PDFDocument
|
|
275
|
+
|
|
276
|
+
| Method/Property | Description |
|
|
277
|
+
| ------------------------------------ | -------------------------------------------------------------------------------- |
|
|
278
|
+
| `PDFDocument.open(source, options?)` | Open a PDF from URL, ArrayBuffer, File, Blob, or data URI |
|
|
279
|
+
| `.pageCount` | Number of pages |
|
|
280
|
+
| `.metadata` | `{ title, author, subject, keywords, creator, producer, creationDate, modDate }` |
|
|
281
|
+
| `.outline` | Bookmark tree (`OutlineItem[]`) |
|
|
282
|
+
| `.permissions` | `{ print, copy, modify, annotate, fillForms, ... }` |
|
|
283
|
+
| `.getPage(index)` | Get a page (0-indexed) |
|
|
284
|
+
| `.search(query, options?)` | Search entire document |
|
|
285
|
+
| `.getFormFields()` | Read form fields (full tier) |
|
|
286
|
+
| `.setFormField(name, value)` | Fill a form field (full tier) |
|
|
287
|
+
| `.flattenForms()` | Flatten forms (full tier) |
|
|
288
|
+
| `.getSignatures()` | Read digital signatures (full tier) |
|
|
289
|
+
| `.save()` | Save modified PDF as Uint8Array (full tier) |
|
|
290
|
+
| `.close()` | Free all WASM memory |
|
|
291
|
+
|
|
292
|
+
### PDFPage
|
|
293
|
+
|
|
294
|
+
| Method/Property | Description |
|
|
295
|
+
| ------------------------------ | ------------------------------ |
|
|
296
|
+
| `.pageIndex` | 0-based page index |
|
|
297
|
+
| `.width` / `.height` | Page dimensions in PDF points |
|
|
298
|
+
| `.render(canvas, options?)` | Render to canvas |
|
|
299
|
+
| `.renderToImageData(options?)` | Render to ImageData |
|
|
300
|
+
| `.getText()` | Extract plain text |
|
|
301
|
+
| `.getTextSpans()` | Extract text with positions |
|
|
302
|
+
| `.getCharBoxes()` | Character-level bounding boxes |
|
|
303
|
+
| `.createTextLayer(container)` | Build selectable text layer |
|
|
304
|
+
| `.search(query, options?)` | Search this page |
|
|
305
|
+
| `.getLinks()` | Extract hyperlinks |
|
|
306
|
+
| `.getAnnotations()` | Read annotations (full tier) |
|
|
307
|
+
| `.addAnnotation(options)` | Add annotation (full tier) |
|
|
308
|
+
| `.removeAnnotation(index)` | Remove annotation (full tier) |
|
|
309
|
+
| `.close()` | Free page resources |
|
|
310
|
+
|
|
311
|
+
## How WASM Loading Works
|
|
312
|
+
|
|
313
|
+
pdfnova uses [`@embedpdf/pdfium`](https://www.npmjs.com/package/@embedpdf/pdfium) for the pre-built PDFium WebAssembly binary. No manual compilation is needed.
|
|
314
|
+
|
|
315
|
+
1. On first use, `WasmLoader` fetches `pdfium.wasm` (4.4MB) from CDN — ~1.5MB with Brotli compression (standard on CDNs)
|
|
316
|
+
2. The binary is cached in **IndexedDB** — subsequent visits load instantly with zero network cost
|
|
317
|
+
3. The module is initialized via `PDFiumExt_Init()` and adapted to pdfnova's typed interface
|
|
318
|
+
4. All downstream API calls go through the real PDFium C engine via the WASM bridge
|
|
319
|
+
|
|
320
|
+
To override the WASM URL (e.g., for air-gapped environments), pass `wasmUrl` in `PDFDocument.open()` options.
|
|
321
|
+
|
|
322
|
+
To clear the cached binary: `WasmLoader.clearCache()`
|
|
323
|
+
|
|
324
|
+
## Development
|
|
325
|
+
|
|
326
|
+
```bash
|
|
327
|
+
npm install # Install dependencies
|
|
328
|
+
npm run build # TypeScript check + tsup build
|
|
329
|
+
npm test # Run all 71 tests
|
|
330
|
+
npm run test:watch # Watch mode
|
|
331
|
+
npm run test:coverage # With V8 coverage report
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
## License
|
|
335
|
+
|
|
336
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"AnnotationReader-ADHPZ3V5.mjs"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkDVMAQ62T_cjs = require('./chunk-DVMAQ62T.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "AnnotationReader", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkDVMAQ62T_cjs.AnnotationReader; }
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=AnnotationReader-C5XLXGWS.cjs.map
|
|
12
|
+
//# sourceMappingURL=AnnotationReader-C5XLXGWS.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"AnnotationReader-C5XLXGWS.cjs"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkRZFKZ2CA_cjs = require('./chunk-RZFKZ2CA.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "AnnotationWriter", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkRZFKZ2CA_cjs.AnnotationWriter; }
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=AnnotationWriter-N3Y4KTPI.cjs.map
|
|
12
|
+
//# sourceMappingURL=AnnotationWriter-N3Y4KTPI.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"AnnotationWriter-N3Y4KTPI.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"AnnotationWriter-XWY5N6AZ.mjs"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk7FGOUG4Z_cjs = require('./chunk-7FGOUG4Z.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "FormFiller", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunk7FGOUG4Z_cjs.FormFiller; }
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=FormFiller-2O4MOQYV.cjs.map
|
|
12
|
+
//# sourceMappingURL=FormFiller-2O4MOQYV.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"FormFiller-2O4MOQYV.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"FormFiller-6DLWMRN5.mjs"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkCPMUWWNS_cjs = require('./chunk-CPMUWWNS.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "FormFlattener", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkCPMUWWNS_cjs.FormFlattener; }
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=FormFlattener-5MWLLH7W.cjs.map
|
|
12
|
+
//# sourceMappingURL=FormFlattener-5MWLLH7W.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"FormFlattener-5MWLLH7W.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"FormFlattener-YQRQ3QOY.mjs"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkG2FA6VKV_cjs = require('./chunk-G2FA6VKV.cjs');
|
|
4
|
+
require('./chunk-2YFCKMVK.cjs');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "FormReader", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkG2FA6VKV_cjs.FormReader; }
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=FormReader-QAEDFD77.cjs.map
|
|
13
|
+
//# sourceMappingURL=FormReader-QAEDFD77.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"FormReader-QAEDFD77.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"FormReader-XEF3T5LD.mjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"SignatureVerifier-2IR7UQGU.mjs"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkETSUOY4U_cjs = require('./chunk-ETSUOY4U.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "SignatureVerifier", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkETSUOY4U_cjs.SignatureVerifier; }
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=SignatureVerifier-4KWQA7X6.cjs.map
|
|
12
|
+
//# sourceMappingURL=SignatureVerifier-4KWQA7X6.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"SignatureVerifier-4KWQA7X6.cjs"}
|