@laminapdf/viewer 0.0.0-stage → 0.2.0-alpha.3

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 (58) hide show
  1. package/README.md +176 -2
  2. package/dist/canvas/cache.d.ts +35 -0
  3. package/dist/canvas/cache.d.ts.map +1 -0
  4. package/dist/canvas/cache.js +89 -0
  5. package/dist/canvas/cache.js.map +1 -0
  6. package/dist/canvas/pool.d.ts +35 -0
  7. package/dist/canvas/pool.d.ts.map +1 -0
  8. package/dist/canvas/pool.js +65 -0
  9. package/dist/canvas/pool.js.map +1 -0
  10. package/dist/client.d.ts +114 -0
  11. package/dist/client.d.ts.map +1 -0
  12. package/dist/client.js +240 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/index.d.ts +10 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +8 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/layout/page-layout.d.ts +58 -0
  19. package/dist/layout/page-layout.d.ts.map +1 -0
  20. package/dist/layout/page-layout.js +110 -0
  21. package/dist/layout/page-layout.js.map +1 -0
  22. package/dist/protocol.d.ts +107 -0
  23. package/dist/protocol.d.ts.map +1 -0
  24. package/dist/protocol.js +36 -0
  25. package/dist/protocol.js.map +1 -0
  26. package/dist/render/tiles.d.ts +17 -0
  27. package/dist/render/tiles.d.ts.map +1 -0
  28. package/dist/render/tiles.js +29 -0
  29. package/dist/render/tiles.js.map +1 -0
  30. package/dist/source.d.ts +9 -0
  31. package/dist/source.d.ts.map +1 -0
  32. package/dist/source.js +27 -0
  33. package/dist/source.js.map +1 -0
  34. package/dist/view/viewer.d.ts +135 -0
  35. package/dist/view/viewer.d.ts.map +1 -0
  36. package/dist/view/viewer.js +781 -0
  37. package/dist/view/viewer.js.map +1 -0
  38. package/dist/worker/document.d.ts +22 -0
  39. package/dist/worker/document.d.ts.map +1 -0
  40. package/dist/worker/document.js +122 -0
  41. package/dist/worker/document.js.map +1 -0
  42. package/dist/worker/entry.d.ts +2 -0
  43. package/dist/worker/entry.d.ts.map +1 -0
  44. package/dist/worker/entry.js +7 -0
  45. package/dist/worker/entry.js.map +1 -0
  46. package/dist/worker/methods.d.ts +4 -0
  47. package/dist/worker/methods.d.ts.map +1 -0
  48. package/dist/worker/methods.js +19 -0
  49. package/dist/worker/methods.js.map +1 -0
  50. package/dist/worker/render.d.ts +7 -0
  51. package/dist/worker/render.d.ts.map +1 -0
  52. package/dist/worker/render.js +22 -0
  53. package/dist/worker/render.js.map +1 -0
  54. package/dist/zoom/zoom.d.ts +44 -0
  55. package/dist/zoom/zoom.d.ts.map +1 -0
  56. package/dist/zoom/zoom.js +56 -0
  57. package/dist/zoom/zoom.js.map +1 -0
  58. package/package.json +55 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/view/viewer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type RenderDocument } from "@laminapdf/render";
2
+ import { Document } from "@laminapdf/sdk";
3
+ import type { BackendInit, OpenedDocument, SourceInit, ViewerOpenOptions, WorkerMemory } from "../protocol.js";
4
+ interface Open {
5
+ readonly id: number;
6
+ readonly model: Document;
7
+ readonly render: RenderDocument;
8
+ }
9
+ /** Loads the backend (the client asks as soon as the worker starts, before a file is chosen). */
10
+ export declare function initBackend(init: BackendInit): Promise<{
11
+ name: string;
12
+ version: string;
13
+ }>;
14
+ /** Opens the worker's document (closing any previous one) and reports its warnings as events. */
15
+ export declare function openDocument(init: SourceInit, options: ViewerOpenOptions, signal: AbortSignal): Promise<OpenedDocument>;
16
+ /** The worker's WebAssembly memory in bytes: the backend's (0 before one loads) and Lamina PDF's. */
17
+ export declare function workerMemory(): WorkerMemory;
18
+ export declare function closeDocument(): undefined;
19
+ /** The open document (`disposed` when there is none, or when `id` names a document since replaced). */
20
+ export declare function current(id?: number): Open;
21
+ export {};
22
+ //# sourceMappingURL=document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/worker/document.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,cAAc,EAEpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,QAAQ,EAAgC,MAAM,gBAAgB,CAAC;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO/G,UAAU,IAAI;IACZ,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC;AAcD,iGAAiG;AACjG,wBAAsB,WAAW,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAU/F;AAgBD,iGAAiG;AACjG,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,cAAc,CAAC,CAqDzB;AAED,qGAAqG;AACrG,wBAAgB,YAAY,IAAI,YAAY,CAG3C;AAED,wBAAgB,aAAa,IAAI,SAAS,CAGzC;AAED,uGAAuG;AACvG,wBAAgB,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAKzC"}
@@ -0,0 +1,122 @@
1
+ // The one document a viewer worker holds (ADR 0009 §2: one worker per document): Lamina PDF's
2
+ // Document for the model (page sizes, warnings, later text and structure) and a RenderDocument
3
+ // for pixels, both opened from the same bytes. The password is used here and kept nowhere else.
4
+ import { bytesSource, RenderError, } from "@laminapdf/render";
5
+ import { initHayro } from "@laminapdf/render-hayro";
6
+ import { initPdfium } from "@laminapdf/render-pdfium";
7
+ import { Document, isLaminaPdfError, wasmMemory } from "@laminapdf/sdk";
8
+ import { emit, yieldToMessages } from "@laminapdf/sdk/worker/server";
9
+ import { blobSource, readAll } from "../source.js";
10
+ let backend;
11
+ /** Backends loaded or loading, by name; a failed load is forgotten, so the next call retries. */
12
+ const loading = new Map();
13
+ let open;
14
+ let nextDocument = 1;
15
+ /** PDFium needs its `.wasm` from the app (hayro finds its own). */
16
+ function loadPdfium(wasm) {
17
+ if (wasm === undefined) {
18
+ return Promise.reject(new RenderError("render-backend-unavailable", "PDFium needs its .wasm: pass BackendInit.wasm"));
19
+ }
20
+ return initPdfium(wasm);
21
+ }
22
+ /** Loads the backend (the client asks as soon as the worker starts, before a file is chosen). */
23
+ export async function initBackend(init) {
24
+ let pending = loading.get(init.backend);
25
+ if (pending === undefined) {
26
+ pending = init.backend === "hayro" ? initHayro(init.wasm) : loadPdfium(init.wasm);
27
+ loading.set(init.backend, pending);
28
+ pending.catch(() => loading.delete(init.backend));
29
+ }
30
+ const loaded = await pending;
31
+ backend = loaded;
32
+ return { name: loaded.name, version: loaded.version };
33
+ }
34
+ function currentBackend() {
35
+ // Only a viewer bug gets here (the client loads the backend before anything else), so it stays
36
+ // an Error: the worker reports it as worker-failed, kind internal.
37
+ if (backend === undefined)
38
+ throw new Error("initBackend was not called");
39
+ return backend;
40
+ }
41
+ function closeOpen() {
42
+ if (open === undefined)
43
+ return;
44
+ open.render.close();
45
+ open.model.free();
46
+ open = undefined;
47
+ }
48
+ /** Opens the worker's document (closing any previous one) and reports its warnings as events. */
49
+ export async function openDocument(init, options, signal) {
50
+ const engine = currentBackend();
51
+ // Bytes are used as they are; a Blob is read in slices.
52
+ const bytes = init instanceof Blob
53
+ ? await readAll(blobSource(init), signal)
54
+ : init instanceof Uint8Array
55
+ ? init
56
+ : new Uint8Array(init);
57
+ const { password, limits, renderLimits } = options;
58
+ const withLimits = limits === undefined ? {} : { limits };
59
+ // Whether the file needs the password: a restarted worker can reopen it without one only if not.
60
+ // Trying without it first is cheap: opening reads the cross-reference table, not the file.
61
+ let needsPassword = false;
62
+ let model;
63
+ try {
64
+ model = Document.open(bytes, withLimits);
65
+ }
66
+ catch (e) {
67
+ if (password === undefined || password === "" || !isLaminaPdfError(e, "password-required"))
68
+ throw e;
69
+ model = Document.open(bytes, { ...withLimits, password });
70
+ needsPassword = true;
71
+ }
72
+ let render;
73
+ try {
74
+ render = engine.open(bytesSource(bytes), {
75
+ ...(password === undefined ? {} : { password }),
76
+ ...(renderLimits === undefined ? {} : { limits: renderLimits }),
77
+ });
78
+ }
79
+ catch (e) {
80
+ model.free();
81
+ throw e;
82
+ }
83
+ // A cancel sent while the synchronous opens ran is only read now: an aborted open must not
84
+ // replace the document the page still thinks is open.
85
+ await yieldToMessages();
86
+ if (signal.aborted) {
87
+ render.close();
88
+ model.free();
89
+ throw new RenderError("cancelled", "the open was cancelled");
90
+ }
91
+ // The new pair is open: only now is the previous document closed, so a failed open (a wrong
92
+ // password, a broken file) leaves it working.
93
+ closeOpen();
94
+ open = { id: nextDocument++, model, render };
95
+ // ADR 0003 warnings (a repaired xref, a dropped object) for the UI.
96
+ for (const warning of model.warnings)
97
+ emit("warning", warning);
98
+ return {
99
+ pageCount: model.pageCount,
100
+ pages: model.pages,
101
+ id: open.id,
102
+ needsPassword,
103
+ backend: { name: engine.name, version: engine.version },
104
+ };
105
+ }
106
+ /** The worker's WebAssembly memory in bytes: the backend's (0 before one loads) and Lamina PDF's. */
107
+ export function workerMemory() {
108
+ const sdk = Object.values(wasmMemory()).reduce((sum, bytes) => sum + bytes, 0);
109
+ return { backend: backend?.memory() ?? 0, sdk };
110
+ }
111
+ export function closeDocument() {
112
+ closeOpen();
113
+ return undefined;
114
+ }
115
+ /** The open document (`disposed` when there is none, or when `id` names a document since replaced). */
116
+ export function current(id) {
117
+ if (open === undefined || (id !== undefined && id !== open.id)) {
118
+ throw new RenderError("disposed", "that document is not open in this worker");
119
+ }
120
+ return open;
121
+ }
122
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/worker/document.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.d.ts","sourceRoot":"","sources":["../../src/worker/entry.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ // The viewer's document worker: `@laminapdf/sdk/worker`'s server with the viewer's methods
2
+ // added, so it speaks the same protocol (handshake, queue, cancellation, errors, crash reports).
3
+ // Started by ViewerClient (`new Worker(new URL("./worker/entry.js", import.meta.url))`).
4
+ import { serve } from "@laminapdf/sdk/worker/server";
5
+ import { viewerMethods } from "./methods.js";
6
+ serve({ methods: viewerMethods });
7
+ //# sourceMappingURL=entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entry.js","sourceRoot":"","sources":["../../src/worker/entry.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,iGAAiG;AACjG,yFAAyF;AACzF,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,KAAK,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ExtensionMethod } from "@laminapdf/sdk/worker/server";
2
+ /** The viewer's worker methods, by name (see `Methods` in protocol.ts). */
3
+ export declare const viewerMethods: Readonly<Record<string, ExtensionMethod>>;
4
+ //# sourceMappingURL=methods.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.d.ts","sourceRoot":"","sources":["../../src/worker/methods.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAKpE,2EAA2E;AAC3E,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAYnE,CAAC"}
@@ -0,0 +1,19 @@
1
+ // The viewer's methods on the document worker: the extension `entry.ts` serves, and test
2
+ // workers too, which add their own hooks on top so none ships.
3
+ import { closeDocument, current, initBackend, openDocument, workerMemory } from "./document.js";
4
+ import { render, reply } from "./render.js";
5
+ /** The viewer's worker methods, by name (see `Methods` in protocol.ts). */
6
+ export const viewerMethods = {
7
+ initBackend: { run: ([init]) => initBackend(init) },
8
+ openDocument: {
9
+ run: ([source, options], { signal }) => openDocument(source, options, signal),
10
+ },
11
+ closeDocument: { run: () => closeDocument() },
12
+ pageInfo: { run: ([index]) => current().model.pageInfo(index) },
13
+ render: {
14
+ run: ([request, id], { signal }) => render(request, id, signal),
15
+ reply: (tile) => reply(tile),
16
+ },
17
+ memory: { run: () => workerMemory() },
18
+ };
19
+ //# sourceMappingURL=methods.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/worker/methods.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,+DAA+D;AAK/D,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAE5C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,aAAa,GAA8C;IACtE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAmB,CAAC,EAAE;IAClE,YAAY,EAAE;QACZ,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,MAAoB,EAAE,OAA4B,EAAE,MAAM,CAAC;KACjH;IACD,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,EAAE;IAC7C,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAe,CAAC,EAAE;IACzE,MAAM,EAAE;QACN,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAwB,EAAE,EAAY,EAAE,MAAM,CAAC;QAC1F,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAmC,CAAC;KAC5D;IACD,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,EAAE;CACtC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { RenderedTile, RenderRequest } from "@laminapdf/render";
2
+ import { type RenderedBitmap } from "../protocol.js";
3
+ /** Renders `request` on document `id` (a render queued for a document since replaced is `disposed`). */
4
+ export declare function render(request: RenderRequest, id: number, signal: AbortSignal): RenderedTile;
5
+ /** One caller's bitmap of `tile`. */
6
+ export declare function reply(tile: RenderedTile): Promise<[RenderedBitmap, Transferable[]]>;
7
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/worker/render.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,KAAK,cAAc,EAAa,MAAM,gBAAgB,CAAC;AAGhE,wGAAwG;AACxG,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,YAAY,CAM5F;AAED,qCAAqC;AACrC,wBAAsB,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC,CAKzF"}
@@ -0,0 +1,22 @@
1
+ // Rendering in the document worker (ADR 0009 §4): the backend draws straight-alpha RGBA, the
2
+ // worker makes an ImageBitmap of it and transfers it, so the page never copies pixels. A
3
+ // coalesced render is drawn once; each caller gets its own bitmap of the same pixels.
4
+ import { emit } from "@laminapdf/sdk/worker/server";
5
+ import { renderKey } from "../protocol.js";
6
+ import { current } from "./document.js";
7
+ /** Renders `request` on document `id` (a render queued for a document since replaced is `disposed`). */
8
+ export function render(request, id, signal) {
9
+ const doc = current(id);
10
+ // The client starts its timers now (not while the render waits), and a performance test can
11
+ // see what the worker is busy with.
12
+ emit("render-start", { page: request.page, scale: request.scale, key: renderKey(request, id) });
13
+ return doc.render.render(request, { signal });
14
+ }
15
+ /** One caller's bitmap of `tile`. */
16
+ export async function reply(tile) {
17
+ const { width, height, pixels } = tile;
18
+ // Each createImageBitmap takes its own snapshot of the pixels: no copy is needed per caller.
19
+ const bitmap = await createImageBitmap(new ImageData(pixels, width, height));
20
+ return [{ bitmap, width, height }, [bitmap]];
21
+ }
22
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/worker/render.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,yFAAyF;AACzF,sFAAsF;AAGtF,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAuB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,wGAAwG;AACxG,MAAM,UAAU,MAAM,CAAC,OAAsB,EAAE,EAAU,EAAE,MAAmB;IAC5E,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IACxB,4FAA4F;IAC5F,oCAAoC;IACpC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IAChG,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAChD,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,IAAkB;IAC5C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvC,6FAA6F;IAC7F,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7E,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { type PageLayout, type PageSize, type Rotation } from "../layout/page-layout.js";
2
+ /** The fit modes. */
3
+ export type ZoomMode = "fit-width" | "fit-page" | "actual-size";
4
+ /** A zoom: a fit mode, or a percentage (100 is actual size). */
5
+ export type Zoom = ZoomMode | number;
6
+ /** The smallest zoom, in percent. */
7
+ export declare const MIN_ZOOM = 10;
8
+ /** The largest zoom, in percent. */
9
+ export declare const MAX_ZOOM = 800;
10
+ /** A scale back as a percentage. */
11
+ export declare function percentOfScale(scale: number): number;
12
+ /** A viewport's size in CSS px. */
13
+ export interface Viewport {
14
+ readonly width: number;
15
+ readonly height: number;
16
+ }
17
+ /**
18
+ * The scale (CSS px per pt) for `zoom` with `page` the reference page (the current one), the view
19
+ * `rotation`, a `viewport` and `gap` CSS px of margin around the page.
20
+ */
21
+ export declare function scaleFor(zoom: Zoom, page: PageSize, rotation: Rotation, viewport: Viewport, gap: number): number;
22
+ /** A point in the document: a page and a fraction of its box (0..1 across, 0..1 down). */
23
+ export interface DocumentPoint {
24
+ readonly page: number;
25
+ readonly x: number;
26
+ readonly y: number;
27
+ }
28
+ /** A position in viewport CSS px (from its top-left), such as the cursor. */
29
+ export interface Point {
30
+ readonly x: number;
31
+ readonly y: number;
32
+ }
33
+ /** A scroll position in CSS px. */
34
+ export interface Scroll {
35
+ readonly left: number;
36
+ readonly top: number;
37
+ }
38
+ /** Where `point` lies in the scroll content (CSS px from its top-left). */
39
+ export declare function contentPosition(layout: PageLayout, viewportWidth: number, point: DocumentPoint): Point;
40
+ /** The document point at viewport position `anchor` (CSS px from the viewport's top-left). */
41
+ export declare function pointAt(layout: PageLayout, viewportWidth: number, scroll: Scroll, anchor: Point): DocumentPoint;
42
+ /** The scroll position that puts `point` at viewport position `anchor` in `layout`. */
43
+ export declare function scrollToPoint(layout: PageLayout, viewportWidth: number, point: DocumentPoint, anchor: Point): Scroll;
44
+ //# sourceMappingURL=zoom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../src/zoom/zoom.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAW,MAAM,0BAA0B,CAAC;AAEjH,qBAAqB;AACrB,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;AAChE,gEAAgE;AAChE,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC;AAErC,qCAAqC;AACrC,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,oCAAoC;AACpC,eAAO,MAAM,QAAQ,MAAM,CAAC;AAQ5B,oCAAoC;AACpC,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,mCAAmC;AACnC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAOhH;AAED,0FAA0F;AAC1F,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,6EAA6E;AAC7E,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,mCAAmC;AACnC,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,KAAK,CAKtG;AAED,8FAA8F;AAC9F,wBAAgB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,aAAa,CAW/G;AAED,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,GAAG,MAAM,CAGpH"}
@@ -0,0 +1,56 @@
1
+ // Zoom: modes to a scale, the zoom range, and anchoring — the document point under the
2
+ // cursor (or the viewport centre) stays where it is on screen when the scale changes.
3
+ import { CSS_PX_PER_PT, rotated } from "../layout/page-layout.js";
4
+ /** The smallest zoom, in percent. */
5
+ export const MIN_ZOOM = 10;
6
+ /** The largest zoom, in percent. */
7
+ export const MAX_ZOOM = 800;
8
+ /** `percent` as CSS px per point, clamped to the range. */
9
+ function scaleOfPercent(percent) {
10
+ const p = Math.min(MAX_ZOOM, Math.max(MIN_ZOOM, percent));
11
+ return (p / 100) * CSS_PX_PER_PT;
12
+ }
13
+ /** A scale back as a percentage. */
14
+ export function percentOfScale(scale) {
15
+ return (scale / CSS_PX_PER_PT) * 100;
16
+ }
17
+ /**
18
+ * The scale (CSS px per pt) for `zoom` with `page` the reference page (the current one), the view
19
+ * `rotation`, a `viewport` and `gap` CSS px of margin around the page.
20
+ */
21
+ export function scaleFor(zoom, page, rotation, viewport, gap) {
22
+ if (typeof zoom === "number")
23
+ return scaleOfPercent(zoom);
24
+ if (zoom === "actual-size")
25
+ return CSS_PX_PER_PT;
26
+ const { width: w, height: h } = rotated(page, rotation);
27
+ const byWidth = Math.max(1, viewport.width - 2 * gap) / w;
28
+ const scale = zoom === "fit-width" ? byWidth : Math.min(byWidth, Math.max(1, viewport.height - 2 * gap) / h);
29
+ return Math.min(scaleOfPercent(MAX_ZOOM), Math.max(scaleOfPercent(MIN_ZOOM), scale));
30
+ }
31
+ /** Where `point` lies in the scroll content (CSS px from its top-left). */
32
+ export function contentPosition(layout, viewportWidth, point) {
33
+ return {
34
+ x: layout.leftOf(point.page, viewportWidth) + point.x * layout.widths[point.page],
35
+ y: layout.offsetOf(point.page) + point.y * layout.heights[point.page],
36
+ };
37
+ }
38
+ /** The document point at viewport position `anchor` (CSS px from the viewport's top-left). */
39
+ export function pointAt(layout, viewportWidth, scroll, anchor) {
40
+ const contentY = scroll.top + anchor.y;
41
+ const contentX = scroll.left + anchor.x;
42
+ const page = layout.pageAt(contentY);
43
+ const top = layout.offsetOf(page);
44
+ const left = layout.leftOf(page, viewportWidth);
45
+ return {
46
+ page,
47
+ x: (contentX - left) / layout.widths[page],
48
+ y: (contentY - top) / layout.heights[page],
49
+ };
50
+ }
51
+ /** The scroll position that puts `point` at viewport position `anchor` in `layout`. */
52
+ export function scrollToPoint(layout, viewportWidth, point, anchor) {
53
+ const at = contentPosition(layout, viewportWidth, point);
54
+ return { top: Math.max(0, at.y - anchor.y), left: Math.max(0, at.x - anchor.x) };
55
+ }
56
+ //# sourceMappingURL=zoom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zoom.js","sourceRoot":"","sources":["../../src/zoom/zoom.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,58 @@
1
1
  {
2
2
  "name": "@laminapdf/viewer",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.2.0-alpha.3",
4
+ "description": "The web reader's framework-free viewer core (ADR 0009). Part 1 (C3a): one document worker per document, hosting @laminapdf/sdk and a RenderBackend, behind a typed RPC that extends @laminapdf/sdk/worker with priorities, coalescing, cancellation, timeouts and restart.",
5
+ "license": "MIT OR Apache-2.0",
6
+ "homepage": "https://laminapdf.com",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/laudebugs/laminapdf.git",
10
+ "directory": "packages/viewer"
11
+ },
12
+ "keywords": [
13
+ "pdf",
14
+ "viewer",
15
+ "pdf-viewer",
16
+ "canvas"
17
+ ],
18
+ "type": "module",
19
+ "sideEffects": false,
20
+ "engines": {
21
+ "node": ">=22"
22
+ },
23
+ "files": [
24
+ "dist"
25
+ ],
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "default": "./dist/index.js"
30
+ },
31
+ "./package.json": "./package.json"
32
+ },
33
+ "dependencies": {
34
+ "@laminapdf/sdk": "0.2.0-alpha.3",
35
+ "@laminapdf/render-hayro": "0.2.0-alpha.3",
36
+ "@laminapdf/render": "0.2.0-alpha.3",
37
+ "@laminapdf/render-pdfium": "0.2.0-alpha.3"
38
+ },
39
+ "devDependencies": {
40
+ "@embedpdf/pdfium": "2.15.1",
41
+ "@types/node": "26.6.5",
42
+ "@vitest/browser-playwright": "5.0.5",
43
+ "playwright": "1.64.1",
44
+ "typescript": "7.0.2",
45
+ "vite": "8.3.5",
46
+ "vitest": "5.0.5",
47
+ "@laminapdf/test-utils": "0.0.0"
48
+ },
49
+ "publishConfig": {
50
+ "access": "public"
51
+ },
52
+ "scripts": {
53
+ "build:wasm": "pnpm --filter @laminapdf/render --filter @laminapdf/render-pdfium run build && pnpm --filter @laminapdf/render-hayro run build:wasm && tsc -p tsconfig.build.json",
54
+ "typecheck:wasm": "pnpm --filter @laminapdf/render --filter @laminapdf/render-pdfium run build && pnpm --filter @laminapdf/render-hayro run build:wasm && tsc -p tsconfig.build.json && tsc --noEmit -p tsconfig.json",
55
+ "perf": "node perf/run.ts",
56
+ "test:wasm": "pnpm --filter @laminapdf/render --filter @laminapdf/render-pdfium run build && pnpm --filter @laminapdf/render-hayro run build:wasm && tsc -p tsconfig.build.json && tsc --noEmit -p tsconfig.json && vitest run -c vitest.node.config.ts"
57
+ }
6
58
  }