@build-qube/papyra 0.1.0 → 0.3.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 +46 -1
- package/dist/attachments.d.ts +76 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +65 -0
- package/dist/attachments.js.map +1 -0
- package/dist/canvas.d.ts +27 -2
- package/dist/canvas.d.ts.map +1 -1
- package/dist/canvas.js +58 -5
- package/dist/canvas.js.map +1 -1
- package/dist/document.d.ts +179 -4
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +311 -12
- package/dist/document.js.map +1 -1
- package/dist/encode.d.ts +2 -2
- package/dist/encode.d.ts.map +1 -1
- package/dist/encode.js +1 -1
- package/dist/encode.js.map +1 -1
- package/dist/encoded.d.ts +34 -5
- package/dist/encoded.d.ts.map +1 -1
- package/dist/encoded.js +28 -0
- package/dist/encoded.js.map +1 -1
- package/dist/errors.d.ts +45 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +69 -0
- package/dist/errors.js.map +1 -0
- package/dist/fingerprint.d.ts +18 -0
- package/dist/fingerprint.d.ts.map +1 -0
- package/dist/fingerprint.js +48 -0
- package/dist/fingerprint.js.map +1 -0
- package/dist/index.d.ts +14 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/links.d.ts +53 -0
- package/dist/links.d.ts.map +1 -0
- package/dist/links.js +26 -0
- package/dist/links.js.map +1 -0
- package/dist/outline.d.ts +9 -1
- package/dist/outline.d.ts.map +1 -1
- package/dist/outline.js +9 -3
- package/dist/outline.js.map +1 -1
- package/dist/structure.d.ts +119 -0
- package/dist/structure.d.ts.map +1 -0
- package/dist/structure.js +115 -0
- package/dist/structure.js.map +1 -0
- package/dist/text.d.ts +20 -0
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +9 -0
- package/dist/text.js.map +1 -1
- package/dist/types.d.ts +75 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/viewport.d.ts +129 -0
- package/dist/viewport.d.ts.map +1 -0
- package/dist/viewport.js +163 -0
- package/dist/viewport.js.map +1 -0
- package/package.json +2 -2
package/dist/document.js
CHANGED
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { PdfDocument as NativeDocument, } from '@build-qube/papyra-native';
|
|
2
|
+
import { toAttachment } from './attachments.js';
|
|
2
3
|
import { RenderCache } from './cache.js';
|
|
3
|
-
import { PageImage } from './encode.js';
|
|
4
|
+
import { PageImage, svgPage } from './encode.js';
|
|
5
|
+
import { rethrowLoadError } from './errors.js';
|
|
6
|
+
import { fingerprint } from './fingerprint.js';
|
|
7
|
+
import { toPageLink } from './links.js';
|
|
4
8
|
import { buildOutlineTree } from './outline.js';
|
|
5
9
|
import { currentRuntime, hardwareConcurrency, init, MAX_WASM_CONCURRENCY, } from './runtime.js';
|
|
6
10
|
import { DEFAULT_PRIORITY, Scheduler } from './scheduler.js';
|
|
7
11
|
import { searchPageText } from './search.js';
|
|
8
12
|
import { toBytes } from './source.js';
|
|
13
|
+
import { buildStructTree } from './structure.js';
|
|
9
14
|
import { pageTextBytes, toPageText } from './text.js';
|
|
10
15
|
const DEFAULT_DPI = 72;
|
|
11
16
|
/**
|
|
@@ -24,6 +29,16 @@ const DEFAULT_CACHE_BYTES = 128 * 1024 * 1024;
|
|
|
24
29
|
* and a repeated search never re-extracts.
|
|
25
30
|
*/
|
|
26
31
|
const DEFAULT_TEXT_CACHE_BYTES = 32 * 1024 * 1024;
|
|
32
|
+
/**
|
|
33
|
+
* Bytes of page links to keep.
|
|
34
|
+
*
|
|
35
|
+
* Not an option, unlike the render and text budgets: links are two orders of
|
|
36
|
+
* magnitude smaller again — a page of a linked table of contents is a few hundred
|
|
37
|
+
* bytes — so 4 MB holds tens of thousands of them and there is nothing to tune.
|
|
38
|
+
*/
|
|
39
|
+
const LINK_CACHE_BYTES = 4 * 1024 * 1024;
|
|
40
|
+
/** Rough bytes per cached link: two objects, a rect, and a short string. */
|
|
41
|
+
const LINK_BYTES = 96;
|
|
27
42
|
/**
|
|
28
43
|
* Where text extraction sits in the queue by default.
|
|
29
44
|
*
|
|
@@ -31,6 +46,30 @@ const DEFAULT_TEXT_CACHE_BYTES = 32 * 1024 * 1024;
|
|
|
31
46
|
* than one that takes another beat to fill in.
|
|
32
47
|
*/
|
|
33
48
|
const DEFAULT_TEXT_PRIORITY = 3;
|
|
49
|
+
/**
|
|
50
|
+
* Cache- and coalescing-key suffix for the annotation switch.
|
|
51
|
+
*
|
|
52
|
+
* Empty in the default case, so the ordinary key keeps the shape it has always had.
|
|
53
|
+
* The suffix has to exist at all because the scheduler coalesces on this string and
|
|
54
|
+
* the cache is looked up by it: without it, asking for a page with annotations off
|
|
55
|
+
* would be served the bitmap that still has them drawn on.
|
|
56
|
+
*/
|
|
57
|
+
function annotationKey(options) {
|
|
58
|
+
return options.annotations === false ? ':noannots' : '';
|
|
59
|
+
}
|
|
60
|
+
/** napi omits absent strings rather than nulling them; normalise to one shape. */
|
|
61
|
+
function toMetadata(info) {
|
|
62
|
+
return {
|
|
63
|
+
title: info.title ?? null,
|
|
64
|
+
author: info.author ?? null,
|
|
65
|
+
subject: info.subject ?? null,
|
|
66
|
+
keywords: info.keywords ?? null,
|
|
67
|
+
creator: info.creator ?? null,
|
|
68
|
+
producer: info.producer ?? null,
|
|
69
|
+
created: info.created ?? null,
|
|
70
|
+
modified: info.modified ?? null,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
34
73
|
/** Wire an `AbortSignal` to a queued job. Cancelling only drops work not yet started. */
|
|
35
74
|
function attachSignal(handle, signal) {
|
|
36
75
|
if (!signal)
|
|
@@ -43,14 +82,26 @@ function attachSignal(handle, signal) {
|
|
|
43
82
|
once: true,
|
|
44
83
|
});
|
|
45
84
|
}
|
|
46
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Open a PDF from bytes, an `ArrayBuffer`, a `Blob`, or a `File`.
|
|
87
|
+
*
|
|
88
|
+
* Throws {@link PasswordRequiredError} when the document is encrypted and no
|
|
89
|
+
* {@link OpenOptions.password} was given, and {@link IncorrectPasswordError} when one
|
|
90
|
+
* was given and rejected. Both extend {@link PasswordError}, so a viewer that shows
|
|
91
|
+
* one dialog for both can catch the base.
|
|
92
|
+
*/
|
|
47
93
|
export async function open(source, options = {}) {
|
|
48
94
|
init();
|
|
49
95
|
const bytes = await toBytes(source);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
96
|
+
try {
|
|
97
|
+
const inner = options.password === undefined
|
|
98
|
+
? NativeDocument.load(bytes)
|
|
99
|
+
: NativeDocument.loadWithPassword(bytes, options.password);
|
|
100
|
+
return new Document(inner, fingerprint(bytes), options);
|
|
101
|
+
}
|
|
102
|
+
catch (e) {
|
|
103
|
+
rethrowLoadError(e);
|
|
104
|
+
}
|
|
54
105
|
}
|
|
55
106
|
/**
|
|
56
107
|
* An open PDF, and the queue and caches that serve it.
|
|
@@ -67,19 +118,44 @@ export class Document {
|
|
|
67
118
|
#limit;
|
|
68
119
|
#cache;
|
|
69
120
|
#text;
|
|
121
|
+
#links;
|
|
122
|
+
/** In-flight link reads, so two callers on one page share a single task. */
|
|
123
|
+
#linksPending = new Map();
|
|
70
124
|
/** Memoised by {@link outline}; the outline cannot change under us. */
|
|
71
125
|
#outline;
|
|
126
|
+
/** Memoised by {@link attachments}. */
|
|
127
|
+
#attachments;
|
|
128
|
+
/** Memoised by {@link structTree}. */
|
|
129
|
+
#structure;
|
|
130
|
+
/** Memoised by {@link pageLabels}. */
|
|
131
|
+
#labels;
|
|
132
|
+
/** Memoised by {@link metadata}. */
|
|
133
|
+
#metadata;
|
|
72
134
|
/** Memoised by {@link indexText}. */
|
|
73
135
|
#indexed;
|
|
136
|
+
/**
|
|
137
|
+
* A stable identifier for this document's bytes.
|
|
138
|
+
*
|
|
139
|
+
* Sixteen hex characters, for keying whatever you remember per document — the page
|
|
140
|
+
* it was left on, a zoom level, a set of highlights. Two `open` calls on the same
|
|
141
|
+
* file always agree.
|
|
142
|
+
*
|
|
143
|
+
* It is a hash of the file, **not** the PDF's own `/ID`: the engine exposes no
|
|
144
|
+
* trailer accessor, so that identifier is out of reach. The practical difference is
|
|
145
|
+
* that saving an incremental update changes this while `/ID` would have survived.
|
|
146
|
+
*/
|
|
147
|
+
fingerprint;
|
|
74
148
|
/** @internal — construct via {@link open}. */
|
|
75
|
-
constructor(inner, options = {}) {
|
|
149
|
+
constructor(inner, fingerprintOfBytes, options = {}) {
|
|
76
150
|
this.#inner = inner;
|
|
151
|
+
this.fingerprint = fingerprintOfBytes;
|
|
77
152
|
this.#limit = Math.max(1, options.concurrency ?? defaultConcurrency());
|
|
78
153
|
this.#scheduler = new Scheduler(this.#limit, {
|
|
79
154
|
yieldToUrgent: options.yieldToUrgent,
|
|
80
155
|
});
|
|
81
156
|
this.#cache = new RenderCache(options.cacheBytes ?? DEFAULT_CACHE_BYTES, (page) => page.data.byteLength);
|
|
82
157
|
this.#text = new RenderCache(options.textCacheBytes ?? DEFAULT_TEXT_CACHE_BYTES, pageTextBytes);
|
|
158
|
+
this.#links = new RenderCache(LINK_CACHE_BYTES, (links) => links.length * LINK_BYTES);
|
|
83
159
|
}
|
|
84
160
|
/** Rendered pages held for reuse, and how often that has paid off. */
|
|
85
161
|
get cache() {
|
|
@@ -101,6 +177,20 @@ export class Document {
|
|
|
101
177
|
get pageCount() {
|
|
102
178
|
return this.#inner.pageCount;
|
|
103
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* The PDF specification version the file declares, e.g. `'1.7'`.
|
|
182
|
+
*
|
|
183
|
+
* Deliberately not part of {@link Document.metadata}: that is what the producer
|
|
184
|
+
* chose to say about the document, while this is a structural property read from
|
|
185
|
+
* the file's header — and from the catalog, which overrides it for 1.4 and later,
|
|
186
|
+
* so an incrementally saved file reports the version it was last written as.
|
|
187
|
+
*
|
|
188
|
+
* `'1.0'` is worth treating with suspicion. Genuine PDF 1.0 files are close to
|
|
189
|
+
* extinct, and it is also what a file with an unreadable header reports.
|
|
190
|
+
*/
|
|
191
|
+
get pdfVersion() {
|
|
192
|
+
return this.#inner.pdfVersion ?? null;
|
|
193
|
+
}
|
|
104
194
|
/**
|
|
105
195
|
* The document outline — bookmarks, the table of contents — as a tree.
|
|
106
196
|
*
|
|
@@ -130,6 +220,174 @@ export class Document {
|
|
|
130
220
|
});
|
|
131
221
|
return this.#outline;
|
|
132
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* What the document says about itself: title, author, dates, the tool that wrote it.
|
|
225
|
+
*
|
|
226
|
+
* Synchronous — the engine reads the information dictionary while loading, so this
|
|
227
|
+
* only decodes strings. Every field is independently `null`, and none of it is
|
|
228
|
+
* verified; `title` in particular is often a filename or missing entirely.
|
|
229
|
+
*/
|
|
230
|
+
get metadata() {
|
|
231
|
+
this.#metadata ??= toMetadata(this.#inner.info());
|
|
232
|
+
return this.#metadata;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* The label printed on each page, one entry per page.
|
|
236
|
+
*
|
|
237
|
+
* Resolves to an **empty array** when the document defines no page labels, which is
|
|
238
|
+
* the common case — that is the signal to number pages by index yourself. A
|
|
239
|
+
* document that defines labels but says nothing about a particular page gives that
|
|
240
|
+
* page an empty string, which is a different answer.
|
|
241
|
+
*
|
|
242
|
+
* Worth honouring wherever a page number is shown: a document with front matter
|
|
243
|
+
* numbers its first pages i, ii, iii, and a viewer that says "page 4 of 300" when
|
|
244
|
+
* the sheet reads "A101" is describing a document nobody else can see.
|
|
245
|
+
*
|
|
246
|
+
* The walk runs off the event loop and the result is memoised.
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```ts
|
|
250
|
+
* const labels = await doc.pageLabels();
|
|
251
|
+
* const shown = labels[index] || String(index + 1);
|
|
252
|
+
* ```
|
|
253
|
+
*/
|
|
254
|
+
async pageLabels() {
|
|
255
|
+
this.#labels ??= this.#inner.pageLabels().catch((e) => {
|
|
256
|
+
// A failed walk must not be cached as a permanent absence of labels.
|
|
257
|
+
this.#labels = undefined;
|
|
258
|
+
throw e;
|
|
259
|
+
});
|
|
260
|
+
return this.#labels;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* The document structure tree, if the document is tagged.
|
|
264
|
+
*
|
|
265
|
+
* Resolves to an **empty array** for an untagged document, which is the common
|
|
266
|
+
* case — most PDFs carry no `/StructTreeRoot` at all. That emptiness is the signal
|
|
267
|
+
* to fall back to {@link Document.pageText} on its own.
|
|
268
|
+
*
|
|
269
|
+
* What it buys, when it is there, is the thing extraction otherwise cannot get:
|
|
270
|
+
* the reading order the author declared. {@link Document.pageText} reports lines in
|
|
271
|
+
* content-stream order, and a two-column page is free to draw its columns
|
|
272
|
+
* interleaved. Pass both to {@link readingOrder} to resolve it.
|
|
273
|
+
*
|
|
274
|
+
* The walk runs off the event loop and the result is memoised — it is one walk for
|
|
275
|
+
* the whole document, not one per page.
|
|
276
|
+
*
|
|
277
|
+
* @example
|
|
278
|
+
* ```ts
|
|
279
|
+
* const [text, tree] = await Promise.all([
|
|
280
|
+
* doc.pageText(0),
|
|
281
|
+
* doc.structTree(),
|
|
282
|
+
* ]);
|
|
283
|
+
* for (const { line, node } of readingOrder(text, tree)) {
|
|
284
|
+
* console.log(node?.role ?? '-', line.text);
|
|
285
|
+
* }
|
|
286
|
+
* ```
|
|
287
|
+
*/
|
|
288
|
+
async structTree() {
|
|
289
|
+
this.#structure ??= this.#inner
|
|
290
|
+
.structTree()
|
|
291
|
+
.then(buildStructTree)
|
|
292
|
+
// A failed walk must not be cached as a permanent absence of structure.
|
|
293
|
+
.catch((e) => {
|
|
294
|
+
this.#structure = undefined;
|
|
295
|
+
throw e;
|
|
296
|
+
});
|
|
297
|
+
return this.#structure;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* The files embedded in the document, in the order it files them.
|
|
301
|
+
*
|
|
302
|
+
* Resolves to an **empty array** when there are none, which is the common case.
|
|
303
|
+
* Metadata only — {@link Document.attachmentData} fetches the bytes, so listing a
|
|
304
|
+
* document's attachments never decompresses one.
|
|
305
|
+
*
|
|
306
|
+
* Worth honouring even in a viewer that has no use for the files themselves: a
|
|
307
|
+
* ZUGFeRD or Factur-X invoice keeps its machine-readable half here, and a reader
|
|
308
|
+
* that never mentions it leaves the user retyping data the document is carrying.
|
|
309
|
+
* See {@link isInvoiceAttachment}.
|
|
310
|
+
*
|
|
311
|
+
* The walk runs off the event loop and the result is memoised.
|
|
312
|
+
*
|
|
313
|
+
* @example
|
|
314
|
+
* ```ts
|
|
315
|
+
* for (const file of await doc.attachments()) {
|
|
316
|
+
* const bytes = await doc.attachmentData(file.index);
|
|
317
|
+
* await write(file.name, bytes);
|
|
318
|
+
* }
|
|
319
|
+
* ```
|
|
320
|
+
*/
|
|
321
|
+
async attachments() {
|
|
322
|
+
this.#attachments ??= this.#inner
|
|
323
|
+
.attachments()
|
|
324
|
+
.then((files) => files.map(toAttachment))
|
|
325
|
+
// A failed walk must not be cached as a permanent absence of attachments.
|
|
326
|
+
.catch((e) => {
|
|
327
|
+
this.#attachments = undefined;
|
|
328
|
+
throw e;
|
|
329
|
+
});
|
|
330
|
+
return this.#attachments;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Decompress one embedded file, by its {@link Attachment.index}.
|
|
334
|
+
*
|
|
335
|
+
* Not cached: the bytes are the caller's to keep or drop, and holding every
|
|
336
|
+
* attachment a document was ever asked for is the cost {@link Document.attachments}
|
|
337
|
+
* is shaped to avoid. Rejects if the index names no attachment, or if the stream
|
|
338
|
+
* cannot be decoded.
|
|
339
|
+
*/
|
|
340
|
+
async attachmentData(index) {
|
|
341
|
+
return this.#inner.attachmentData(index);
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* The links on one page — where they are, and where they go.
|
|
345
|
+
*
|
|
346
|
+
* Rectangles are in the same 72-DPI top-left space as {@link Document.pageText} and
|
|
347
|
+
* {@link Document.pageSize}, so placing them over a render is one multiply; see
|
|
348
|
+
* {@link scaleRect}. Only links that resolve to something actionable are reported.
|
|
349
|
+
*
|
|
350
|
+
* Unlike text extraction this never interprets a content stream — it is an
|
|
351
|
+
* object-graph read, roughly a thousandth the cost of rendering the page — so it
|
|
352
|
+
* does **not** go through the priority queue. Making a link layer wait behind
|
|
353
|
+
* renders would add latency a viewer can feel, for work that costs nothing.
|
|
354
|
+
* Results are cached, and two calls for the same page share one read.
|
|
355
|
+
*
|
|
356
|
+
* @example
|
|
357
|
+
* ```ts
|
|
358
|
+
* const scale = rendered.width / doc.pageSize(index).width;
|
|
359
|
+
* for (const link of await doc.links(index)) {
|
|
360
|
+
* const { x, y, width, height } = scaleRect(link.rect, scale);
|
|
361
|
+
* // ...position an anchor over the canvas
|
|
362
|
+
* }
|
|
363
|
+
* ```
|
|
364
|
+
*/
|
|
365
|
+
async links(index) {
|
|
366
|
+
const key = `links:${index}`;
|
|
367
|
+
const hit = this.#links.get(key);
|
|
368
|
+
if (hit)
|
|
369
|
+
return hit;
|
|
370
|
+
const pending = this.#linksPending.get(index);
|
|
371
|
+
if (pending)
|
|
372
|
+
return pending;
|
|
373
|
+
const read = this.#inner
|
|
374
|
+
.pageLinks(index)
|
|
375
|
+
.then((native) => {
|
|
376
|
+
// `toPageLink` only returns null for a link with no resolvable target, which
|
|
377
|
+
// the bindings do not emit — the filter is here so a future one cannot leak
|
|
378
|
+
// a null into the array.
|
|
379
|
+
const links = native
|
|
380
|
+
.map(toPageLink)
|
|
381
|
+
.filter((link) => link !== null);
|
|
382
|
+
this.#links.set(key, links);
|
|
383
|
+
return links;
|
|
384
|
+
})
|
|
385
|
+
.finally(() => {
|
|
386
|
+
this.#linksPending.delete(index);
|
|
387
|
+
});
|
|
388
|
+
this.#linksPending.set(index, read);
|
|
389
|
+
return read;
|
|
390
|
+
}
|
|
133
391
|
/** Page dimensions in PDF points (1/72 inch). */
|
|
134
392
|
pageSize(index) {
|
|
135
393
|
return this.#inner.pageSize(index);
|
|
@@ -174,9 +432,50 @@ export class Document {
|
|
|
174
432
|
// A distinct key space from `render`, so an image request never coalesces onto a
|
|
175
433
|
// pending raw render (different return type) or vice versa.
|
|
176
434
|
const handle = this.#scheduler.submit({
|
|
177
|
-
key: `image:${index}@${dpi.toFixed(4)}`,
|
|
435
|
+
key: `image:${index}@${dpi.toFixed(4)}${annotationKey(options)}`,
|
|
436
|
+
priority: options.priority ?? DEFAULT_PRIORITY,
|
|
437
|
+
run: () => this.#inner.renderPageImageAsync(index, dpi, options.annotations, options.signal).then((img) => new PageImage(img)),
|
|
438
|
+
});
|
|
439
|
+
attachSignal(handle, options.signal);
|
|
440
|
+
return handle;
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Convert a page to SVG — vector output, not pixels.
|
|
444
|
+
*
|
|
445
|
+
* Paths stay paths and text stays glyph outlines, so the result scales to any size
|
|
446
|
+
* and can be edited downstream. That is the trade: an SVG of a dense drawing is
|
|
447
|
+
* larger than a WebP of the same page at screen size and slower for a browser to
|
|
448
|
+
* paint, but it is the only output that survives being scaled up.
|
|
449
|
+
*
|
|
450
|
+
* Conversion is content-stream interpretation without rasterisation — roughly the
|
|
451
|
+
* non-preemptible portion of a render — so it shares the scheduler with everything
|
|
452
|
+
* else and honours {@link SvgOptions.priority}. **Not cached**, for the same reason
|
|
453
|
+
* {@link renderImage} is not.
|
|
454
|
+
*
|
|
455
|
+
* @example
|
|
456
|
+
* ```ts
|
|
457
|
+
* const page = await doc.renderSvg(0, { background: 'transparent' });
|
|
458
|
+
* await writeFile('page-0.svg', page.markup);
|
|
459
|
+
* ```
|
|
460
|
+
*/
|
|
461
|
+
async renderSvg(index, options = {}) {
|
|
462
|
+
return this.svgHandle(index, options).promise;
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* As {@link renderSvg}, but returns the handle so the job can be reprioritised,
|
|
466
|
+
* cancelled, or timed — the same relationship `imageHandle` has to `renderImage`.
|
|
467
|
+
*/
|
|
468
|
+
svgHandle(index, options = {}) {
|
|
469
|
+
if (index < 0 || index >= this.pageCount) {
|
|
470
|
+
throw new RangeError(`papyra: page ${index} is out of range (0..${this.pageCount - 1})`);
|
|
471
|
+
}
|
|
472
|
+
const opaque = options.background !== 'transparent';
|
|
473
|
+
const handle = this.#scheduler.submit({
|
|
474
|
+
// The background is part of the key: the scheduler coalesces same-key requests,
|
|
475
|
+
// and an opaque and a transparent conversion of one page are different output.
|
|
476
|
+
key: `svg:${index}${opaque ? '' : ':transparent'}${annotationKey(options)}`,
|
|
178
477
|
priority: options.priority ?? DEFAULT_PRIORITY,
|
|
179
|
-
run: () => this.#inner.
|
|
478
|
+
run: () => this.#inner.renderPageSvgAsync(index, opaque, options.annotations, options.signal).then(svgPage),
|
|
180
479
|
});
|
|
181
480
|
attachSignal(handle, options.signal);
|
|
182
481
|
return handle;
|
|
@@ -199,14 +498,14 @@ export class Document {
|
|
|
199
498
|
*/
|
|
200
499
|
render(index, options = {}) {
|
|
201
500
|
const dpi = this.#resolveDpi(index, options);
|
|
202
|
-
const key = `${index}@${dpi.toFixed(4)}`;
|
|
501
|
+
const key = `${index}@${dpi.toFixed(4)}${annotationKey(options)}`;
|
|
203
502
|
const hit = this.#cache.get(key);
|
|
204
503
|
if (hit)
|
|
205
504
|
return cachedHandle(key, hit);
|
|
206
505
|
const handle = this.#scheduler.submit({
|
|
207
506
|
key,
|
|
208
507
|
priority: options.priority ?? DEFAULT_PRIORITY,
|
|
209
|
-
run: () => this.#inner.renderPageAsync(index, dpi).then((page) => {
|
|
508
|
+
run: () => this.#inner.renderPageAsync(index, dpi, options.annotations).then((page) => {
|
|
210
509
|
this.#cache.set(key, page);
|
|
211
510
|
return page;
|
|
212
511
|
}),
|
|
@@ -254,7 +553,7 @@ export class Document {
|
|
|
254
553
|
let dpi = DEFAULT_DPI;
|
|
255
554
|
for (let i = start; i < end; i++)
|
|
256
555
|
dpi = this.#resolveDpi(i, options);
|
|
257
|
-
return (await this.#inner.renderPagesAsync(start, end, dpi));
|
|
556
|
+
return (await this.#inner.renderPagesAsync(start, end, dpi, options.annotations));
|
|
258
557
|
}
|
|
259
558
|
const out = [];
|
|
260
559
|
for await (const { page, bitmap } of this.stream({
|
package/dist/document.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
|
package/dist/encode.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type PageImage as NativePageImage } from '@build-qube/papyra-native';
|
|
2
2
|
import { type EncodedImage, type EncodeOptions } from './encoded.js';
|
|
3
3
|
import type { RenderedPage } from './types.js';
|
|
4
|
-
export type { EncodedFormat, EncodedImage, EncodeOptions } from './encoded.js';
|
|
5
|
-
export { encodedImage, mimeType } from './encoded.js';
|
|
4
|
+
export type { EncodedFormat, EncodedImage, EncodeOptions, RasterFormat, SvgPage, } from './encoded.js';
|
|
5
|
+
export { encodedImage, mimeType, svgPage } from './encoded.js';
|
|
6
6
|
/**
|
|
7
7
|
* Encode a page you already hold — a cache hit, or one you have just painted.
|
|
8
8
|
*
|
package/dist/encode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,IAAI,eAAe,EAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,YAAY,
|
|
1
|
+
{"version":3,"file":"encode.d.ts","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,IAAI,eAAe,EAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,aAAa,EAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,YAAY,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/D;;;;;;GAMG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAYvB;AAED;;;;;;;GAOG;AACH,qBAAa,SAAS;;IAGpB,YAAY,KAAK,EAAE,eAAe,EAEjC;IAED,8BAA8B;IAC9B,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,+BAA+B;IAC/B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,mFAAmF;IACnF,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,kEAAkE;IAC5D,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAQ/D;IAED,4EAA4E;IAC5E,MAAM,CAAC,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,SAAS,CAAM,yBAE7D;IAED,mFAAmF;IACnF,KAAK,CAAC,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,GAAG,SAAS,CAAM,yBAE5D;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAM,yBAEnE;IAED;;;OAGG;IACH,SAAS,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtD;CACF"}
|
package/dist/encode.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { encodeBitmap, } from '@build-qube/papyra-native';
|
|
2
2
|
import { encodedImage, } from './encoded.js';
|
|
3
|
-
export { encodedImage, mimeType } from './encoded.js';
|
|
3
|
+
export { encodedImage, mimeType, svgPage } from './encoded.js';
|
|
4
4
|
/**
|
|
5
5
|
* Encode a page you already hold — a cache hit, or one you have just painted.
|
|
6
6
|
*
|
package/dist/encode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode.js","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,YAAY,GACb,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"encode.js","sourceRoot":"","sources":["../src/encode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAGL,YAAY,GACb,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAkB,EAClB,OAAO,GAAkB,EAAE;IAE3B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,YAAY,CAC9B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,EACX,MAAsB,EACtB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,MAAM,CACf,CAAC;IACF,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,SAAS;IACX,MAAM,CAAkB;IAEjC,YAAY,KAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,8BAA8B;IAC9B,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,+BAA+B;IAC/B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,mFAAmF;IACnF,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IAED,kEAAkE;IAClE,KAAK,CAAC,MAAM,CAAC,OAAO,GAAkB,EAAE;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CACpC,MAAsB,EACtB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,MAAM,CACf,CAAC;QACF,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,4EAA4E;IAC5E,MAAM,CAAC,OAAO,GAA8C,EAAE;QAC5D,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,OAAO,GAA8C,EAAE;QAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,OAAgB,EAAE,OAAO,GAAkC,EAAE;QAClE,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,OAAO,GAAkB,EAAE;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAC1B,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAiB,EAC1C,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,MAAM,CACf,CAAC;IACJ,CAAC;CACF"}
|
package/dist/encoded.d.ts
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
* imports `encodeBitmap` as a value. See CLAUDE.md.
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
|
-
* Containers papyra can
|
|
10
|
-
* the browser build free of a C toolchain — so there is no lossy WebP and
|
|
9
|
+
* Containers papyra can rasterise a page into. All three encoders are pure Rust — that
|
|
10
|
+
* is what keeps the browser build free of a C toolchain — so there is no lossy WebP and
|
|
11
|
+
* no AVIF.
|
|
11
12
|
*
|
|
12
13
|
* - `webp` is lossless VP8L, and the default: on page content (line art, text, flat
|
|
13
14
|
* fills) it is ~3x smaller than PNG for roughly the same encode time.
|
|
@@ -16,13 +17,24 @@
|
|
|
16
17
|
* alpha channel; transparent pixels are composited onto white, matching how pages
|
|
17
18
|
* are rendered.
|
|
18
19
|
*/
|
|
19
|
-
export type
|
|
20
|
+
export type RasterFormat = 'webp' | 'png' | 'jpeg';
|
|
21
|
+
/**
|
|
22
|
+
* Every container papyra can write, {@link RasterFormat} plus `svg`.
|
|
23
|
+
*
|
|
24
|
+
* `svg` is separate from the others everywhere it matters: it comes off
|
|
25
|
+
* `Document.renderSvg`, not off pixels, so it takes no DPI and no quality — which is
|
|
26
|
+
* why {@link EncodeOptions.format} accepts only a {@link RasterFormat}.
|
|
27
|
+
*/
|
|
28
|
+
export type EncodedFormat = RasterFormat | 'svg';
|
|
20
29
|
/** MIME type for an encoded format, e.g. `'webp'` -> `'image/webp'`. */
|
|
21
30
|
export declare function mimeType(format: EncodedFormat): string;
|
|
22
31
|
/** Which container to write, and how hard to squeeze. */
|
|
23
32
|
export interface EncodeOptions {
|
|
24
|
-
/**
|
|
25
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Defaults to `'webp'`. Rasters only — SVG is not an encoding of a bitmap, so it
|
|
35
|
+
* comes from `Document.renderSvg` instead.
|
|
36
|
+
*/
|
|
37
|
+
format?: RasterFormat;
|
|
26
38
|
/** JPEG only, 1-100. Defaults to 80. Ignored by the lossless formats. */
|
|
27
39
|
quality?: number;
|
|
28
40
|
/** Abort a request that has not started yet. */
|
|
@@ -52,6 +64,23 @@ export interface EncodedImage {
|
|
|
52
64
|
*/
|
|
53
65
|
toDataUrl(): string;
|
|
54
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* One page as SVG. An {@link EncodedImage} whose markup is also readable as a string,
|
|
69
|
+
* because the usual thing to do with an SVG is inline it rather than hand a browser
|
|
70
|
+
* a URL.
|
|
71
|
+
*/
|
|
72
|
+
export interface SvgPage extends EncodedImage {
|
|
73
|
+
readonly format: 'svg';
|
|
74
|
+
/** The SVG document itself, a single `<svg>` element sized in PDF points. */
|
|
75
|
+
readonly markup: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Wrap SVG markup as an {@link SvgPage}.
|
|
79
|
+
*
|
|
80
|
+
* `bytes` is encoded on first access: inlining the markup is the common case, and a
|
|
81
|
+
* page of dense line art is megabytes of text that no one asked to have copied.
|
|
82
|
+
*/
|
|
83
|
+
export declare function svgPage(markup: string): SvgPage;
|
|
55
84
|
/**
|
|
56
85
|
* Wrap already-encoded bytes as an {@link EncodedImage}.
|
|
57
86
|
*
|
package/dist/encoded.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoded.d.ts","sourceRoot":"","sources":["../src/encoded.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH
|
|
1
|
+
{"version":3,"file":"encoded.d.ts","sourceRoot":"","sources":["../src/encoded.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,KAAK,CAAC;AASjD,wEAAwE;AACxE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAEtD;AAED,yDAAyD;AACzD,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,2FAA2F;AAC3F,MAAM,WAAW,YAAY;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,iDAAiD;IACjD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,MAAM,IAAI,IAAI,CAAC;IACf;;;;;;OAMG;IACH,SAAS,IAAI,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,IAAI,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAQ,SAAQ,YAAY;IAC3C,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAqB/C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,aAAa,GACpB,YAAY,CAYd"}
|
package/dist/encoded.js
CHANGED
|
@@ -2,11 +2,39 @@ const MIME = {
|
|
|
2
2
|
webp: 'image/webp',
|
|
3
3
|
png: 'image/png',
|
|
4
4
|
jpeg: 'image/jpeg',
|
|
5
|
+
svg: 'image/svg+xml',
|
|
5
6
|
};
|
|
6
7
|
/** MIME type for an encoded format, e.g. `'webp'` -> `'image/webp'`. */
|
|
7
8
|
export function mimeType(format) {
|
|
8
9
|
return MIME[format];
|
|
9
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Wrap SVG markup as an {@link SvgPage}.
|
|
13
|
+
*
|
|
14
|
+
* `bytes` is encoded on first access: inlining the markup is the common case, and a
|
|
15
|
+
* page of dense line art is megabytes of text that no one asked to have copied.
|
|
16
|
+
*/
|
|
17
|
+
export function svgPage(markup) {
|
|
18
|
+
const mime = MIME.svg;
|
|
19
|
+
let encoded;
|
|
20
|
+
const bytes = () => {
|
|
21
|
+
encoded ??= new TextEncoder().encode(markup);
|
|
22
|
+
return encoded;
|
|
23
|
+
};
|
|
24
|
+
return {
|
|
25
|
+
markup,
|
|
26
|
+
format: 'svg',
|
|
27
|
+
mime,
|
|
28
|
+
get bytes() {
|
|
29
|
+
return bytes();
|
|
30
|
+
},
|
|
31
|
+
toBlob: () => new Blob([markup], { type: mime }),
|
|
32
|
+
toBlobUrl() {
|
|
33
|
+
return URL.createObjectURL(this.toBlob());
|
|
34
|
+
},
|
|
35
|
+
toDataUrl: () => `data:${mime};base64,${base64(bytes())}`,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
10
38
|
/**
|
|
11
39
|
* Wrap already-encoded bytes as an {@link EncodedImage}.
|
|
12
40
|
*
|
package/dist/encoded.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoded.js","sourceRoot":"","sources":["../src/encoded.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encoded.js","sourceRoot":"","sources":["../src/encoded.ts"],"names":[],"mappings":"AA8BA,MAAM,IAAI,GAAkC;IAC1C,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,WAAW;IAChB,IAAI,EAAE,YAAY;IAClB,GAAG,EAAE,eAAe;CACrB,CAAC;AAEF,wEAAwE;AACxE,MAAM,UAAU,QAAQ,CAAC,MAAqB;IAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAmDD;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;IACtB,IAAI,OAA+B,CAAC;IACpC,MAAM,KAAK,GAAG,GAAe,EAAE;QAC7B,OAAO,KAAK,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO;QACL,MAAM;QACN,MAAM,EAAE,KAAK;QACb,IAAI;QACJ,IAAI,KAAK;YACP,OAAO,KAAK,EAAE,CAAC;QACjB,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAChD,SAAS;YACP,OAAO,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,WAAW,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;KAC1D,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAiB,EACjB,MAAqB;IAErB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO;QACL,KAAK;QACL,MAAM;QACN,IAAI;QACJ,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACvD,SAAS;YACP,OAAO,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,IAAI,WAAW,MAAM,CAAC,KAAK,CAAC,EAAE;KACxD,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,MAAM,CAAC,KAAiB;IAC/B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC7C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACf,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,MAAM,CAAC,KAAiB;IAC/B,MAAM,GAAG,GACP,UAGD,CAAC,MAAM,CAAC;IACT,0EAA0E;IAC1E,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEnD,kFAAkF;IAClF,+CAA+C;IAC/C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,KAAK,GAAG,MAAM,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC7C,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
|