@build-qube/papyra 0.3.0 → 0.5.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 (82) hide show
  1. package/README.md +12 -1
  2. package/dist/attachments.d.ts +6 -1
  3. package/dist/attachments.d.ts.map +1 -1
  4. package/dist/attachments.js +6 -1
  5. package/dist/attachments.js.map +1 -1
  6. package/dist/cache.d.ts +5 -0
  7. package/dist/cache.d.ts.map +1 -1
  8. package/dist/cache.js +8 -0
  9. package/dist/cache.js.map +1 -1
  10. package/dist/canvas.d.ts +2 -2
  11. package/dist/canvas.d.ts.map +1 -1
  12. package/dist/canvas.js +20 -7
  13. package/dist/canvas.js.map +1 -1
  14. package/dist/cells.d.ts +148 -0
  15. package/dist/cells.d.ts.map +1 -0
  16. package/dist/cells.js +144 -0
  17. package/dist/cells.js.map +1 -0
  18. package/dist/core.d.ts +53 -0
  19. package/dist/core.d.ts.map +1 -0
  20. package/dist/core.js +38 -0
  21. package/dist/core.js.map +1 -0
  22. package/dist/document.d.ts +28 -20
  23. package/dist/document.d.ts.map +1 -1
  24. package/dist/document.js +79 -360
  25. package/dist/document.js.map +1 -1
  26. package/dist/engine.d.ts +327 -0
  27. package/dist/engine.d.ts.map +1 -0
  28. package/dist/engine.js +485 -0
  29. package/dist/engine.js.map +1 -0
  30. package/dist/errors.d.ts +14 -1
  31. package/dist/errors.d.ts.map +1 -1
  32. package/dist/errors.js +19 -2
  33. package/dist/errors.js.map +1 -1
  34. package/dist/fingerprint.d.ts +2 -1
  35. package/dist/fingerprint.d.ts.map +1 -1
  36. package/dist/fingerprint.js +2 -1
  37. package/dist/fingerprint.js.map +1 -1
  38. package/dist/index.d.ts +10 -24
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +7 -11
  41. package/dist/index.js.map +1 -1
  42. package/dist/links.d.ts +6 -1
  43. package/dist/links.d.ts.map +1 -1
  44. package/dist/links.js +6 -1
  45. package/dist/links.js.map +1 -1
  46. package/dist/office.d.ts +85 -0
  47. package/dist/office.d.ts.map +1 -0
  48. package/dist/office.js +135 -0
  49. package/dist/office.js.map +1 -0
  50. package/dist/papyra-engine.d.ts +68 -0
  51. package/dist/papyra-engine.d.ts.map +1 -0
  52. package/dist/papyra-engine.js +173 -0
  53. package/dist/papyra-engine.js.map +1 -0
  54. package/dist/runtime.d.ts +7 -0
  55. package/dist/runtime.d.ts.map +1 -1
  56. package/dist/runtime.js +11 -0
  57. package/dist/runtime.js.map +1 -1
  58. package/dist/scheduler.d.ts +10 -2
  59. package/dist/scheduler.d.ts.map +1 -1
  60. package/dist/scheduler.js +26 -7
  61. package/dist/scheduler.js.map +1 -1
  62. package/dist/source.d.ts +1 -1
  63. package/dist/source.js +1 -1
  64. package/dist/styles.d.ts +96 -0
  65. package/dist/styles.d.ts.map +1 -0
  66. package/dist/styles.js +69 -0
  67. package/dist/styles.js.map +1 -0
  68. package/dist/text.d.ts +6 -1
  69. package/dist/text.d.ts.map +1 -1
  70. package/dist/text.js +6 -1
  71. package/dist/text.js.map +1 -1
  72. package/dist/tiff.d.ts +95 -0
  73. package/dist/tiff.d.ts.map +1 -0
  74. package/dist/tiff.js +78 -0
  75. package/dist/tiff.js.map +1 -0
  76. package/dist/types.d.ts +22 -2
  77. package/dist/types.d.ts.map +1 -1
  78. package/dist/workbook.d.ts +152 -0
  79. package/dist/workbook.d.ts.map +1 -0
  80. package/dist/workbook.js +158 -0
  81. package/dist/workbook.js.map +1 -0
  82. package/package.json +24 -3
@@ -1,24 +1,15 @@
1
- import { PdfDocument as NativeDocument } from '@build-qube/papyra-native';
2
- import { type Attachment } from './attachments.js';
3
- import { type CacheStats } from './cache.js';
1
+ import type { Attachment } from './attachments.js';
2
+ import type { CacheStats } from './cache.js';
4
3
  import { PageImage, type SvgPage } from './encode.js';
5
- import { type PageLink } from './links.js';
6
- import { type OutlineNode } from './outline.js';
4
+ import { type Capabilities, type PdfDoc } from './engine.js';
5
+ import type { PageLink } from './links.js';
6
+ import type { OutlineNode } from './outline.js';
7
+ import { type PapyraEngine } from './papyra-engine.js';
7
8
  import { type JobHandle } from './scheduler.js';
8
- import { type SearchMatch } from './search.js';
9
- import { type StructNode } from './structure.js';
9
+ import type { SearchMatch } from './search.js';
10
+ import type { StructNode } from './structure.js';
10
11
  import { type PageText } from './text.js';
11
- import type { DocumentMetadata, OpenOptions, PageSize, PdfSource, RenderedPage, RenderOptions, SearchOptions, StreamedPage, StreamOptions, SvgOptions } from './types.js';
12
- /** A queued render, plus whether it was served from cache without rendering at all. */
13
- export interface RenderHandle extends JobHandle<RenderedPage> {
14
- /**
15
- * The page was already in the cache and nothing was queued.
16
- *
17
- * `promise` still resolves normally, so this only matters for instrumentation —
18
- * a cache hit costs none of the ~93ms floor a real render does.
19
- */
20
- readonly cached: boolean;
21
- }
12
+ import type { DocumentMetadata, OpenOptions, PageSize, PdfSource, RenderedPage, RenderHandle, RenderOptions, SearchOptions, StreamedPage, StreamOptions, SvgOptions } from './types.js';
22
13
  /**
23
14
  * A queued export render. No `cached` flag: unlike {@link RenderHandle} the image path
24
15
  * never comes from the cache, which is keyed by page and size with no format dimension.
@@ -44,8 +35,11 @@ export declare function open(source: PdfSource, options?: OpenOptions): Promise<
44
35
  * Every page-level call goes through one shared scheduler, so a thumbnail sweep can
45
36
  * never starve the page on screen — attach a {@link RenderOptions.priority} and the
46
37
  * queue reorders around it. Construct via {@link open}, not `new`.
38
+ *
39
+ * A {@link PdfDoc} in its own right: a viewer written against engines can be handed
40
+ * one of these and will reach it through papyra's engine.
47
41
  */
48
- export declare class Document {
42
+ export declare class Document implements PdfDoc {
49
43
  #private;
50
44
  /**
51
45
  * A stable identifier for this document's bytes.
@@ -60,11 +54,25 @@ export declare class Document {
60
54
  */
61
55
  readonly fingerprint: string;
62
56
  /** @internal — construct via {@link open}. */
63
- constructor(inner: NativeDocument, fingerprintOfBytes: string, options?: OpenOptions);
57
+ constructor(doc: PdfDoc, engine: PapyraEngine);
58
+ /** The engine that opened this document: always papyra's own. */
59
+ get engine(): string;
60
+ /** Everything: papyra's engine implements every optional capability. */
61
+ get capabilities(): Capabilities;
64
62
  /** Rendered pages held for reuse, and how often that has paid off. */
65
63
  get cache(): CacheStats;
66
64
  /** Drop every cached page. */
67
65
  clearCache(): void;
66
+ /**
67
+ * Release this document: its caches, and its queue's claim on the engine. Every
68
+ * method and getter that reaches the queue or a cache throws afterwards, the stats
69
+ * and a second `close` included; what the handle was opened with — `pageCount`,
70
+ * `fingerprint`, `engine`, `capabilities` — stays readable. Work already running
71
+ * finishes, but nothing it produces is cached. Optional — an unreachable document
72
+ * is collected — but it frees the caches at once rather than whenever the
73
+ * collector gets to them.
74
+ */
75
+ close(): Promise<void>;
68
76
  /** Pages queued but not yet started, pages rendering, and the longest wait so far. */
69
77
  get queued(): {
70
78
  /** Submitted but not started. These are the ones priority can still reorder. */
@@ -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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"}