@build-qube/papyra 0.2.0 → 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 (51) hide show
  1. package/README.md +18 -0
  2. package/dist/attachments.d.ts +76 -0
  3. package/dist/attachments.d.ts.map +1 -0
  4. package/dist/attachments.js +65 -0
  5. package/dist/attachments.js.map +1 -0
  6. package/dist/canvas.d.ts +27 -2
  7. package/dist/canvas.d.ts.map +1 -1
  8. package/dist/canvas.js +58 -5
  9. package/dist/canvas.js.map +1 -1
  10. package/dist/cells.d.ts +148 -0
  11. package/dist/cells.d.ts.map +1 -0
  12. package/dist/cells.js +144 -0
  13. package/dist/cells.js.map +1 -0
  14. package/dist/document.d.ts +61 -0
  15. package/dist/document.d.ts.map +1 -1
  16. package/dist/document.js +105 -7
  17. package/dist/document.js.map +1 -1
  18. package/dist/errors.d.ts +12 -0
  19. package/dist/errors.d.ts.map +1 -1
  20. package/dist/errors.js +17 -1
  21. package/dist/errors.js.map +1 -1
  22. package/dist/index.d.ts +18 -2
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +10 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/structure.d.ts +119 -0
  27. package/dist/structure.d.ts.map +1 -0
  28. package/dist/structure.js +115 -0
  29. package/dist/structure.js.map +1 -0
  30. package/dist/styles.d.ts +96 -0
  31. package/dist/styles.d.ts.map +1 -0
  32. package/dist/styles.js +69 -0
  33. package/dist/styles.js.map +1 -0
  34. package/dist/text.d.ts +18 -0
  35. package/dist/text.d.ts.map +1 -1
  36. package/dist/text.js.map +1 -1
  37. package/dist/tiff.d.ts +95 -0
  38. package/dist/tiff.d.ts.map +1 -0
  39. package/dist/tiff.js +78 -0
  40. package/dist/tiff.js.map +1 -0
  41. package/dist/types.d.ts +25 -0
  42. package/dist/types.d.ts.map +1 -1
  43. package/dist/viewport.d.ts +129 -0
  44. package/dist/viewport.d.ts.map +1 -0
  45. package/dist/viewport.js +163 -0
  46. package/dist/viewport.js.map +1 -0
  47. package/dist/workbook.d.ts +152 -0
  48. package/dist/workbook.d.ts.map +1 -0
  49. package/dist/workbook.js +158 -0
  50. package/dist/workbook.js.map +1 -0
  51. package/package.json +2 -2
@@ -1,10 +1,12 @@
1
1
  import { PdfDocument as NativeDocument } from '@build-qube/papyra-native';
2
+ import { type Attachment } from './attachments.js';
2
3
  import { type CacheStats } from './cache.js';
3
4
  import { PageImage, type SvgPage } from './encode.js';
4
5
  import { type PageLink } from './links.js';
5
6
  import { type OutlineNode } from './outline.js';
6
7
  import { type JobHandle } from './scheduler.js';
7
8
  import { type SearchMatch } from './search.js';
9
+ import { type StructNode } from './structure.js';
8
10
  import { type PageText } from './text.js';
9
11
  import type { DocumentMetadata, OpenOptions, PageSize, PdfSource, RenderedPage, RenderOptions, SearchOptions, StreamedPage, StreamOptions, SvgOptions } from './types.js';
10
12
  /** A queued render, plus whether it was served from cache without rendering at all. */
@@ -139,6 +141,65 @@ export declare class Document {
139
141
  * ```
140
142
  */
141
143
  pageLabels(): Promise<readonly string[]>;
144
+ /**
145
+ * The document structure tree, if the document is tagged.
146
+ *
147
+ * Resolves to an **empty array** for an untagged document, which is the common
148
+ * case — most PDFs carry no `/StructTreeRoot` at all. That emptiness is the signal
149
+ * to fall back to {@link Document.pageText} on its own.
150
+ *
151
+ * What it buys, when it is there, is the thing extraction otherwise cannot get:
152
+ * the reading order the author declared. {@link Document.pageText} reports lines in
153
+ * content-stream order, and a two-column page is free to draw its columns
154
+ * interleaved. Pass both to {@link readingOrder} to resolve it.
155
+ *
156
+ * The walk runs off the event loop and the result is memoised — it is one walk for
157
+ * the whole document, not one per page.
158
+ *
159
+ * @example
160
+ * ```ts
161
+ * const [text, tree] = await Promise.all([
162
+ * doc.pageText(0),
163
+ * doc.structTree(),
164
+ * ]);
165
+ * for (const { line, node } of readingOrder(text, tree)) {
166
+ * console.log(node?.role ?? '-', line.text);
167
+ * }
168
+ * ```
169
+ */
170
+ structTree(): Promise<StructNode[]>;
171
+ /**
172
+ * The files embedded in the document, in the order it files them.
173
+ *
174
+ * Resolves to an **empty array** when there are none, which is the common case.
175
+ * Metadata only — {@link Document.attachmentData} fetches the bytes, so listing a
176
+ * document's attachments never decompresses one.
177
+ *
178
+ * Worth honouring even in a viewer that has no use for the files themselves: a
179
+ * ZUGFeRD or Factur-X invoice keeps its machine-readable half here, and a reader
180
+ * that never mentions it leaves the user retyping data the document is carrying.
181
+ * See {@link isInvoiceAttachment}.
182
+ *
183
+ * The walk runs off the event loop and the result is memoised.
184
+ *
185
+ * @example
186
+ * ```ts
187
+ * for (const file of await doc.attachments()) {
188
+ * const bytes = await doc.attachmentData(file.index);
189
+ * await write(file.name, bytes);
190
+ * }
191
+ * ```
192
+ */
193
+ attachments(): Promise<readonly Attachment[]>;
194
+ /**
195
+ * Decompress one embedded file, by its {@link Attachment.index}.
196
+ *
197
+ * Not cached: the bytes are the caller's to keep or drop, and holding every
198
+ * attachment a document was ever asked for is the cost {@link Document.attachments}
199
+ * is shaped to avoid. Rejects if the index names no attachment, or if the stream
200
+ * cannot be decoded.
201
+ */
202
+ attachmentData(index: number): Promise<Uint8Array>;
142
203
  /**
143
204
  * The links on one page — where they are, and where they go.
144
205
  *
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
package/dist/document.js CHANGED
@@ -1,4 +1,5 @@
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
4
  import { PageImage, svgPage } from './encode.js';
4
5
  import { rethrowLoadError } from './errors.js';
@@ -9,6 +10,7 @@ import { currentRuntime, hardwareConcurrency, init, MAX_WASM_CONCURRENCY, } from
9
10
  import { DEFAULT_PRIORITY, Scheduler } from './scheduler.js';
10
11
  import { searchPageText } from './search.js';
11
12
  import { toBytes } from './source.js';
13
+ import { buildStructTree } from './structure.js';
12
14
  import { pageTextBytes, toPageText } from './text.js';
13
15
  const DEFAULT_DPI = 72;
14
16
  /**
@@ -44,6 +46,17 @@ const LINK_BYTES = 96;
44
46
  * than one that takes another beat to fill in.
45
47
  */
46
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
+ }
47
60
  /** napi omits absent strings rather than nulling them; normalise to one shape. */
48
61
  function toMetadata(info) {
49
62
  return {
@@ -110,6 +123,10 @@ export class Document {
110
123
  #linksPending = new Map();
111
124
  /** Memoised by {@link outline}; the outline cannot change under us. */
112
125
  #outline;
126
+ /** Memoised by {@link attachments}. */
127
+ #attachments;
128
+ /** Memoised by {@link structTree}. */
129
+ #structure;
113
130
  /** Memoised by {@link pageLabels}. */
114
131
  #labels;
115
132
  /** Memoised by {@link metadata}. */
@@ -242,6 +259,87 @@ export class Document {
242
259
  });
243
260
  return this.#labels;
244
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
+ }
245
343
  /**
246
344
  * The links on one page — where they are, and where they go.
247
345
  *
@@ -334,9 +432,9 @@ export class Document {
334
432
  // A distinct key space from `render`, so an image request never coalesces onto a
335
433
  // pending raw render (different return type) or vice versa.
336
434
  const handle = this.#scheduler.submit({
337
- key: `image:${index}@${dpi.toFixed(4)}`,
435
+ key: `image:${index}@${dpi.toFixed(4)}${annotationKey(options)}`,
338
436
  priority: options.priority ?? DEFAULT_PRIORITY,
339
- run: () => this.#inner.renderPageImageAsync(index, dpi, options.signal).then((img) => new PageImage(img)),
437
+ run: () => this.#inner.renderPageImageAsync(index, dpi, options.annotations, options.signal).then((img) => new PageImage(img)),
340
438
  });
341
439
  attachSignal(handle, options.signal);
342
440
  return handle;
@@ -375,9 +473,9 @@ export class Document {
375
473
  const handle = this.#scheduler.submit({
376
474
  // The background is part of the key: the scheduler coalesces same-key requests,
377
475
  // and an opaque and a transparent conversion of one page are different output.
378
- key: `svg:${index}${opaque ? '' : ':transparent'}`,
476
+ key: `svg:${index}${opaque ? '' : ':transparent'}${annotationKey(options)}`,
379
477
  priority: options.priority ?? DEFAULT_PRIORITY,
380
- run: () => this.#inner.renderPageSvgAsync(index, opaque, options.signal).then(svgPage),
478
+ run: () => this.#inner.renderPageSvgAsync(index, opaque, options.annotations, options.signal).then(svgPage),
381
479
  });
382
480
  attachSignal(handle, options.signal);
383
481
  return handle;
@@ -400,14 +498,14 @@ export class Document {
400
498
  */
401
499
  render(index, options = {}) {
402
500
  const dpi = this.#resolveDpi(index, options);
403
- const key = `${index}@${dpi.toFixed(4)}`;
501
+ const key = `${index}@${dpi.toFixed(4)}${annotationKey(options)}`;
404
502
  const hit = this.#cache.get(key);
405
503
  if (hit)
406
504
  return cachedHandle(key, hit);
407
505
  const handle = this.#scheduler.submit({
408
506
  key,
409
507
  priority: options.priority ?? DEFAULT_PRIORITY,
410
- run: () => this.#inner.renderPageAsync(index, dpi).then((page) => {
508
+ run: () => this.#inner.renderPageAsync(index, dpi, options.annotations).then((page) => {
411
509
  this.#cache.set(key, page);
412
510
  return page;
413
511
  }),
@@ -455,7 +553,7 @@ export class Document {
455
553
  let dpi = DEFAULT_DPI;
456
554
  for (let i = start; i < end; i++)
457
555
  dpi = this.#resolveDpi(i, options);
458
- return (await this.#inner.renderPagesAsync(start, end, dpi));
556
+ return (await this.#inner.renderPagesAsync(start, end, dpi, options.annotations));
459
557
  }
460
558
  const out = [];
461
559
  for await (const { page, bitmap } of this.stream({
@@ -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/errors.d.ts CHANGED
@@ -36,6 +36,18 @@ export declare class IncorrectPasswordError extends PasswordError {
36
36
  readonly retry = true;
37
37
  constructor(message?: string);
38
38
  }
39
+ /**
40
+ * A spreadsheet that is password-protected.
41
+ *
42
+ * Deliberately not a {@link PasswordError}: Excel encrypts the whole package, and
43
+ * there is no decryption here to hand a password to, so a dialog asking for one
44
+ * would only fail again. Show that the file is protected, and stop.
45
+ */
46
+ export declare class EncryptedWorkbookError extends Error {
47
+ /** Always `'EncryptedWorkbookError'`. */
48
+ readonly name = "EncryptedWorkbookError";
49
+ constructor(message?: string);
50
+ }
39
51
  /**
40
52
  * Rethrow a load failure as itself, or as the typed error it was tagged as.
41
53
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAeA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAS;CACjC;AAED,mFAAmF;AACnF,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,wCAAwC;IACxC,SAAkB,IAAI,2BAA2B;IACjD,SAAkB,KAAK,SAAS;IAChC,YAAY,OAAO,SAAmC,EAErD;CACF;AAED,gEAAgE;AAChE,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,yCAAyC;IACzC,SAAkB,IAAI,4BAA4B;IAClD,SAAkB,KAAK,QAAQ;IAC/B,YAAY,OAAO,SAAuC,EAEzD;CACF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAQtD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAS;CACjC;AAED,mFAAmF;AACnF,qBAAa,qBAAsB,SAAQ,aAAa;IACtD,wCAAwC;IACxC,SAAkB,IAAI,2BAA2B;IACjD,SAAkB,KAAK,SAAS;IAChC,YAAY,OAAO,SAAmC,EAErD;CACF;AAED,gEAAgE;AAChE,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,yCAAyC;IACzC,SAAkB,IAAI,4BAA4B;IAClD,SAAkB,KAAK,QAAQ;IAC/B,YAAY,OAAO,SAAuC,EAEzD;CACF;AAED;;;;;;GAMG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,yCAAyC;IACzC,SAAkB,IAAI,4BAA4B;IAClD,YAAY,OAAO,SAAwC,EAE1D;CACF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAQtD"}
package/dist/errors.js CHANGED
@@ -4,11 +4,13 @@
4
4
  * napi-rs gives every error it throws the same `code`, so the message is the only
5
5
  * channel a typed failure can travel through. These are stripped before the error
6
6
  * reaches a caller — keep them in step with `TAG_PASSWORD_REQUIRED` and
7
- * `TAG_INCORRECT_PASSWORD` in `packages/bindings/src/lib.rs`.
7
+ * `TAG_INCORRECT_PASSWORD` in `packages/bindings/src/lib.rs`, and `TAG_ENCRYPTED` in
8
+ * `packages/bindings/src/tables.rs`.
8
9
  */
9
10
  const TAGS = {
10
11
  'papyra/password-required': (message) => new PasswordRequiredError(message),
11
12
  'papyra/incorrect-password': (message) => new IncorrectPasswordError(message),
13
+ 'papyra/encrypted-workbook': (message) => new EncryptedWorkbookError(message),
12
14
  };
13
15
  /**
14
16
  * A document that could not be opened because of its password.
@@ -52,6 +54,20 @@ export class IncorrectPasswordError extends PasswordError {
52
54
  super(message);
53
55
  }
54
56
  }
57
+ /**
58
+ * A spreadsheet that is password-protected.
59
+ *
60
+ * Deliberately not a {@link PasswordError}: Excel encrypts the whole package, and
61
+ * there is no decryption here to hand a password to, so a dialog asking for one
62
+ * would only fail again. Show that the file is protected, and stop.
63
+ */
64
+ export class EncryptedWorkbookError extends Error {
65
+ /** Always `'EncryptedWorkbookError'`. */
66
+ name = 'EncryptedWorkbookError';
67
+ constructor(message = 'this workbook is password-protected') {
68
+ super(message);
69
+ }
70
+ }
55
71
  /**
56
72
  * Rethrow a load failure as itself, or as the typed error it was tagged as.
57
73
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,IAAI,GAAG;IACX,0BAA0B,EAAE,CAAC,OAAe,EAAE,EAAE,CAC9C,IAAI,qBAAqB,CAAC,OAAO,CAAC;IACpC,2BAA2B,EAAE,CAAC,OAAe,EAAE,EAAE,CAC/C,IAAI,sBAAsB,CAAC,OAAO,CAAC;CAC7B,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC;;;;OAIG;IACM,KAAK,GAAY,KAAK,CAAC;CACjC;AAED,mFAAmF;AACnF,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IACtD,wCAAwC;IACtB,IAAI,GAAG,uBAAuB,CAAC;IAC/B,KAAK,GAAG,KAAK,CAAC;IAChC,YAAY,OAAO,GAAG,gCAAgC;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED,gEAAgE;AAChE,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IACvD,yCAAyC;IACvB,IAAI,GAAG,wBAAwB,CAAC;IAChC,KAAK,GAAG,IAAI,CAAC;IAC/B,YAAY,OAAO,GAAG,oCAAoC;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,IAAI,GAAG;IACX,0BAA0B,EAAE,CAAC,OAAe,EAAE,EAAE,CAC9C,IAAI,qBAAqB,CAAC,OAAO,CAAC;IACpC,2BAA2B,EAAE,CAAC,OAAe,EAAE,EAAE,CAC/C,IAAI,sBAAsB,CAAC,OAAO,CAAC;IACrC,2BAA2B,EAAE,CAAC,OAAe,EAAE,EAAE,CAC/C,IAAI,sBAAsB,CAAC,OAAO,CAAC;CAC7B,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC;;;;OAIG;IACM,KAAK,GAAY,KAAK,CAAC;CACjC;AAED,mFAAmF;AACnF,MAAM,OAAO,qBAAsB,SAAQ,aAAa;IACtD,wCAAwC;IACtB,IAAI,GAAG,uBAAuB,CAAC;IAC/B,KAAK,GAAG,KAAK,CAAC;IAChC,YAAY,OAAO,GAAG,gCAAgC;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED,gEAAgE;AAChE,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IACvD,yCAAyC;IACvB,IAAI,GAAG,wBAAwB,CAAC;IAChC,KAAK,GAAG,IAAI,CAAC;IAC/B,YAAY,OAAO,GAAG,oCAAoC;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,yCAAyC;IACvB,IAAI,GAAG,wBAAwB,CAAC;IAClD,YAAY,OAAO,GAAG,qCAAqC;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IACD,MAAM,KAAK,CAAC;AACd,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /**
2
- * papyra — fast PDF rendering for Node and the browser.
2
+ * papyra — fast PDF rendering for Node and the browser, and spreadsheets and TIFF
3
+ * scans beside it.
3
4
  *
4
5
  * ```ts
5
6
  * import { open, paintToCanvas } from '@build-qube/papyra';
@@ -13,13 +14,18 @@
13
14
  * onScroll(() => job.setPriority(0));
14
15
  * ```
15
16
  */
17
+ export type { Attachment } from './attachments.js';
18
+ export { attachmentMediaType, isInvoiceAttachment, } from './attachments.js';
16
19
  export type { CacheStats } from './cache.js';
20
+ export type { PaintOptions } from './canvas.js';
17
21
  export { paintToCanvas, toImageData } from './canvas.js';
22
+ export type { BoolCell, Cell, CellKind, DateCell, DurationCell, EmptyCell, ErrorCell, MergedRange, NumberCell, TextCell, } from './cells.js';
23
+ export { CellWindow, columnName } from './cells.js';
18
24
  export type { ImageHandle, RenderHandle, SvgHandle } from './document.js';
19
25
  export { Document, open } from './document.js';
20
26
  export type { EncodedFormat, EncodedImage, EncodeOptions, RasterFormat, SvgPage, } from './encode.js';
21
27
  export { encode, encodedImage, mimeType, PageImage, svgPage, } from './encode.js';
22
- export { IncorrectPasswordError, PasswordError, PasswordRequiredError, } from './errors.js';
28
+ export { EncryptedWorkbookError, IncorrectPasswordError, PasswordError, PasswordRequiredError, } from './errors.js';
23
29
  export type { LinkTarget, PageLink } from './links.js';
24
30
  export type { DestinationKind, OutlineDestination, OutlineNode, } from './outline.js';
25
31
  export { buildOutlineTree, walkOutline } from './outline.js';
@@ -29,7 +35,17 @@ export type { JobHandle, JobTiming } from './scheduler.js';
29
35
  export { AbortError, DEFAULT_PRIORITY } from './scheduler.js';
30
36
  export type { MatchOptions, SearchMatch } from './search.js';
31
37
  export { findRanges, searchPageText } from './search.js';
38
+ export type { MarkedContent, OrderedLine, StructNode, } from './structure.js';
39
+ export { buildStructTree, readingOrder, structuredPageString, walkStructTree, } from './structure.js';
40
+ export type { BorderEdge, BorderStyle, CellStyle, ColumnSpan, HorizontalAlign, RowSize, SheetLayout, VerticalAlign, } from './styles.js';
41
+ export { cssColor } from './styles.js';
32
42
  export type { PageText, Quad, Rect, TextLine } from './text.js';
33
43
  export { lineQuad, pageString, quadBounds, scaleQuad, scaleRect, } from './text.js';
44
+ export type { TiffCompression, TiffPage, TiffRenderOptions, } from './tiff.js';
45
+ export { openTiff, TIFF_MAX_PIXELS, TiffImage } from './tiff.js';
34
46
  export type { DocumentMetadata, OpenOptions, PageSize, PdfSource, RenderedPage, RenderOptions, SearchOptions, StreamedPage, StreamOptions, SvgOptions, } from './types.js';
47
+ export type { Rotation, Viewport, ViewportOptions } from './viewport.js';
48
+ export { rotatePage, rotateSize, viewport, viewportQuad, viewportRect, } from './viewport.js';
49
+ export type { SheetInfo, SheetKind, SheetVisibility, WindowRange, WorkbookFormat, WorkbookOptions, } from './workbook.js';
50
+ export { openWorkbook, Sheet, Workbook } from './workbook.js';
35
51
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,OAAO,GACR,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,OAAO,GACR,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACvD,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,IAAI,GACL,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  /**
2
- * papyra — fast PDF rendering for Node and the browser.
2
+ * papyra — fast PDF rendering for Node and the browser, and spreadsheets and TIFF
3
+ * scans beside it.
3
4
  *
4
5
  * ```ts
5
6
  * import { open, paintToCanvas } from '@build-qube/papyra';
@@ -13,13 +14,20 @@
13
14
  * onScroll(() => job.setPriority(0));
14
15
  * ```
15
16
  */
17
+ export { attachmentMediaType, isInvoiceAttachment, } from './attachments.js';
16
18
  export { paintToCanvas, toImageData } from './canvas.js';
19
+ export { CellWindow, columnName } from './cells.js';
17
20
  export { Document, open } from './document.js';
18
21
  export { encode, encodedImage, mimeType, PageImage, svgPage, } from './encode.js';
19
- export { IncorrectPasswordError, PasswordError, PasswordRequiredError, } from './errors.js';
22
+ export { EncryptedWorkbookError, IncorrectPasswordError, PasswordError, PasswordRequiredError, } from './errors.js';
20
23
  export { buildOutlineTree, walkOutline } from './outline.js';
21
24
  export { backend, currentRuntime, hardwareConcurrency, init, } from './runtime.js';
22
25
  export { AbortError, DEFAULT_PRIORITY } from './scheduler.js';
23
26
  export { findRanges, searchPageText } from './search.js';
27
+ export { buildStructTree, readingOrder, structuredPageString, walkStructTree, } from './structure.js';
28
+ export { cssColor } from './styles.js';
24
29
  export { lineQuad, pageString, quadBounds, scaleQuad, scaleRect, } from './text.js';
30
+ export { openTiff, TIFF_MAX_PIXELS, TiffImage } from './tiff.js';
31
+ export { rotatePage, rotateSize, viewport, viewportQuad, viewportRect, } from './viewport.js';
32
+ export { openWorkbook, Sheet, Workbook } from './workbook.js';
25
33
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAQ/C,OAAO,EACL,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,OAAO,GACR,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EACL,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,IAAI,GACL,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAazD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAQ/C,OAAO,EACL,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,OAAO,GACR,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,qBAAqB,GACtB,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE7D,OAAO,EACL,OAAO,EACP,cAAc,EACd,mBAAmB,EACnB,IAAI,GACL,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAMzD,OAAO,EACL,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAWxB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,WAAW,CAAC;AAMnB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAcjE,OAAO,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,GACb,MAAM,eAAe,CAAC;AASvB,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,119 @@
1
+ import type { StructEntry as NativeEntry } from '@build-qube/papyra-native';
2
+ import type { PageText, TextLine } from './text.js';
3
+ /**
4
+ * One run of page content owned by a {@link StructNode}.
5
+ *
6
+ * The pair is what makes the join work: a marked-content id is only unique within a
7
+ * single page's content stream, so an id on its own addresses nothing.
8
+ */
9
+ export interface MarkedContent {
10
+ /** 0-based page index. */
11
+ readonly page: number;
12
+ /** Matches {@link TextLine.mcid} on that page. */
13
+ readonly mcid: number;
14
+ }
15
+ /**
16
+ * A node in the document structure tree.
17
+ *
18
+ * A tagged PDF states what its content *means* — which runs are a heading, which are
19
+ * a table cell — and, more usefully than either, what order it is meant to be read
20
+ * in. Nothing else in a PDF carries that: {@link PageText.lines} is content-stream
21
+ * order, which interleaves the columns of a two-column page.
22
+ */
23
+ export interface StructNode {
24
+ /**
25
+ * Standard structure type: `'Document'`, `'H1'`, `'P'`, `'Table'`, `'TD'`,
26
+ * `'Figure'`, and the rest of ISO 32000-1's set.
27
+ *
28
+ * Already resolved through the document's `/RoleMap`, so a file that tags its
29
+ * headings `Heading1` and maps that onto `H1` reports `'H1'` here. Word and
30
+ * InDesign both emit such files, so matching on {@link StructNode.rawRole} instead
31
+ * misses a large share of real tagged documents.
32
+ */
33
+ readonly role: string;
34
+ /**
35
+ * The document's own tag, before `/RoleMap`. Equal to {@link StructNode.role}
36
+ * unless the document remapped it.
37
+ */
38
+ readonly rawRole: string;
39
+ /**
40
+ * Content this element owns directly, in the order the tree declares it.
41
+ *
42
+ * Empty for a pure container — a `Sect` whose text all belongs to the `P`s beneath
43
+ * it — which is most interior nodes.
44
+ */
45
+ readonly content: readonly MarkedContent[];
46
+ /** `/Alt`: replacement text for a figure, and the only text an image has. */
47
+ readonly alt: string | null;
48
+ /**
49
+ * `/ActualText`: text that replaces the content rather than describing it, which is
50
+ * how a document spells out a ligature or a decorative glyph.
51
+ */
52
+ readonly actualText: string | null;
53
+ /** `/Lang`: a BCP 47 tag overriding the document language for this subtree. */
54
+ readonly lang: string | null;
55
+ /** `/T`: a human-readable title for the element, such as a table's caption. */
56
+ readonly title: string | null;
57
+ /** Nested elements, empty for a leaf. */
58
+ readonly children: StructNode[];
59
+ }
60
+ /**
61
+ * Rebuild the tree from the flat pre-order list the bindings return.
62
+ *
63
+ * The same stack-by-level pass {@link buildOutlineTree} uses, and correct for the same
64
+ * reason: pre-order guarantees a node's parent is the most recent node one level
65
+ * shallower. A level that skips a step cannot come from our own walker, and is clamped
66
+ * rather than trusted — a malformed document should flatten, not crash.
67
+ */
68
+ export declare function buildStructTree(entries: readonly NativeEntry[]): StructNode[];
69
+ /** Walk a structure tree depth-first, yielding each node with its depth. */
70
+ export declare function walkStructTree(nodes: readonly StructNode[], depth?: number): Generator<{
71
+ /** The element. */
72
+ node: StructNode;
73
+ /** How deep it sits, 0 for a root. */
74
+ depth: number;
75
+ }>;
76
+ /** One line of a page, with the structure element that claims it. */
77
+ export interface OrderedLine {
78
+ /** The line, exactly as {@link PageText} reported it. */
79
+ readonly line: TextLine;
80
+ /**
81
+ * The element whose content the line's first glyph sits in, or `null` for a line
82
+ * the structure tree does not account for.
83
+ */
84
+ readonly node: StructNode | null;
85
+ }
86
+ /**
87
+ * Put a page's lines into the reading order the document declares.
88
+ *
89
+ * This is the payoff of a tagged PDF and the one thing geometry cannot recover: on a
90
+ * two-column page the content stream may draw both columns interleaved, and no line
91
+ * grouping fixes that, because the drawing order genuinely is what it is. The
92
+ * structure tree states the intended order outright.
93
+ *
94
+ * Lines are keyed by their first glyph's {@link TextLine.mcid}, so a line is placed by
95
+ * the element that *starts* it. Ties — several lines inside one `P`, which is the
96
+ * normal case for a wrapped paragraph — keep their original relative order, so within
97
+ * an element the result is still the content stream's sequence. That is what makes
98
+ * this safe on a document whose tagging is partial.
99
+ *
100
+ * Lines with no structure element go **last**, rather than being dropped: untagged
101
+ * content is usually a running head or a page number, and losing it silently would be
102
+ * worse than putting it at the end. Pass `includeUntagged: false` to drop them.
103
+ *
104
+ * Returns the lines in content-stream order, unchanged, when the page has no tagged
105
+ * content at all — an untagged document is the common case and should not come back
106
+ * empty or reshuffled.
107
+ */
108
+ export declare function readingOrder(text: PageText, tree: readonly StructNode[], options?: {
109
+ /** Keep lines no element claims, at the end. Defaults to `true`. */
110
+ readonly includeUntagged?: boolean;
111
+ }): OrderedLine[];
112
+ /**
113
+ * Every character of a page in declared reading order, one line per entry.
114
+ *
115
+ * The structure-aware counterpart to {@link pageString}; identical to it on an
116
+ * untagged page.
117
+ */
118
+ export declare function structuredPageString(text: PageText, tree: readonly StructNode[]): string;
119
+ //# sourceMappingURL=structure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure.d.ts","sourceRoot":"","sources":["../src/structure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,IAAI,WAAW,EAE3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,yCAAyC;IACzC,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,UAAU,EAAE,CAyB7E;AAED,4EAA4E;AAC5E,wBAAiB,cAAc,CAC7B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,KAAK,SAAI,GACR,SAAS,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,UAAU,CAAC;IACjB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAKD;AAED,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,SAAS,UAAU,EAAE,EAC3B,OAAO,GAAE;IACP,oEAAoE;IACpE,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC/B,GACL,WAAW,EAAE,CA4Cf;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,SAAS,UAAU,EAAE,GAC1B,MAAM,CAIR"}