@laminapdf/viewer 0.2.0-alpha.6 → 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.
Files changed (55) hide show
  1. package/README.md +5 -4
  2. package/dist/client.d.ts +50 -4
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +115 -4
  5. package/dist/client.js.map +1 -1
  6. package/dist/edit/session.d.ts +24 -2
  7. package/dist/edit/session.d.ts.map +1 -1
  8. package/dist/edit/session.js +54 -1
  9. package/dist/edit/session.js.map +1 -1
  10. package/dist/edit-log.d.ts +5 -0
  11. package/dist/edit-log.d.ts.map +1 -1
  12. package/dist/edit-log.js +32 -8
  13. package/dist/edit-log.js.map +1 -1
  14. package/dist/index.d.ts +2 -2
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/protocol.d.ts +96 -1
  18. package/dist/protocol.d.ts.map +1 -1
  19. package/dist/protocol.js.map +1 -1
  20. package/dist/thumbnails/strip.d.ts +1 -1
  21. package/dist/thumbnails/strip.d.ts.map +1 -1
  22. package/dist/thumbnails/strip.js +31 -17
  23. package/dist/thumbnails/strip.js.map +1 -1
  24. package/dist/view/viewer.d.ts +2 -2
  25. package/dist/view/viewer.d.ts.map +1 -1
  26. package/dist/view/viewer.js +3 -0
  27. package/dist/view/viewer.js.map +1 -1
  28. package/dist/worker/document.d.ts +18 -5
  29. package/dist/worker/document.d.ts.map +1 -1
  30. package/dist/worker/document.js +2 -1
  31. package/dist/worker/document.js.map +1 -1
  32. package/dist/worker/edit.d.ts +30 -2
  33. package/dist/worker/edit.d.ts.map +1 -1
  34. package/dist/worker/edit.js +108 -19
  35. package/dist/worker/edit.js.map +1 -1
  36. package/dist/worker/export-tiff.d.ts +8 -0
  37. package/dist/worker/export-tiff.d.ts.map +1 -0
  38. package/dist/worker/export-tiff.js +82 -0
  39. package/dist/worker/export-tiff.js.map +1 -0
  40. package/dist/worker/export.d.ts +38 -0
  41. package/dist/worker/export.d.ts.map +1 -0
  42. package/dist/worker/export.js +175 -0
  43. package/dist/worker/export.js.map +1 -0
  44. package/dist/worker/methods.d.ts.map +1 -1
  45. package/dist/worker/methods.js +38 -2
  46. package/dist/worker/methods.js.map +1 -1
  47. package/dist/worker/navigation.d.ts +9 -1
  48. package/dist/worker/navigation.d.ts.map +1 -1
  49. package/dist/worker/navigation.js +22 -1
  50. package/dist/worker/navigation.js.map +1 -1
  51. package/dist/worker/session.d.ts +2 -0
  52. package/dist/worker/session.d.ts.map +1 -1
  53. package/dist/worker/session.js +7 -0
  54. package/dist/worker/session.js.map +1 -1
  55. package/package.json +14 -7
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  - **The view** handles layout, virtualisation, canvases and zoom.
6
6
  - **The document Web Worker**, one per open document, opens and renders the file away from the page's main thread.
7
7
 
8
- The package is private and ESM-only.
8
+ The package is ESM-only.
9
9
 
10
10
  ```ts
11
11
  import pdfiumWasm from "@embedpdf/pdfium/pdfium.wasm?url";
@@ -179,8 +179,9 @@ The client starts the Web Worker and talks to it; you call `ViewerClient`'s meth
179
179
  - Defaults are `soft` 10 s (`render-slow`) and `hard` 120 s.
180
180
  - At the hard cap the client calls `stop("hard-timeout")`. For a document that needed a password, it emits `render-stuck` instead and waits for the user's `stop()`.
181
181
  - **Crashes:** a crash is the Web Worker's `error` or `messageerror`, or a WebAssembly trap it reports, never silence.
182
- - Pending calls reject with `worker-crashed`.
183
- - A new Web Worker reopens the document from the same source, but nothing that was pending is re-sent. The UI offers Retry, so a page that crashes the engine can't loop.
182
+ - Pending calls reject with `worker-crashed`, and a new Web Worker reopens the document from the same source.
183
+ - `render()` sends again, once, in the new Web Worker, each render that was waiting when the old one was lost. The render that was drawing then isn't re-sent: its page shows an error the UI offers Retry for, so a page that crashes the engine can't loop.
184
+ - When the restart can't reopen the document (an encrypted one waits for its password), a waiting render rejects with an `AbortError`.
184
185
  - `stop()` takes the same path with `reason: "cancelled"`.
185
186
  - **Secrets:** the password crosses to the Web Worker once, when the document opens, and is kept only there. The page keeps the source and the other options.
186
187
  - After a crash of an encrypted document, `password-required` fires and the caller opens again.
@@ -272,7 +273,7 @@ The browser suites run in Chromium, Firefox and WebKit over the built package: r
272
273
  - page labels in the names;
273
274
  - the outline and a named destination of the links-and-outlines reference PDF landing on their pages.
274
275
  - Unit tests sit next to their modules (`src/**/*.test.ts`) and run in Node. They cover the layout's cost, counted in steps, and the fit modes for portrait, landscape and rotated pages. They also cover zoom anchoring, tiles, cache eviction and the pool's caps, and where each kind of destination puts the view at each rotation. `test/dependencies.test.ts` checks that `src/` imports no UI framework, and `test/types.test.ts` checks the RPC types.
275
- - Two demo pages are manual checks: run `pnpm --filter @laminapdf/viewer exec vite examples`. `examples/viewer-demo.html` is the viewer, with zoom buttons; `examples/rpc-demo.html` draws page 1 through the RPC alone. The perf harness has its own page, `perf/page/` ([Performance](#performance)).
276
+ - Two demo pages are manual checks: run `pnpm --filter @laminapdf/viewer exec vite demo`. `demo/viewer-demo.html` is the viewer, with zoom buttons; `demo/rpc-demo.html` draws page 1 through the RPC alone. `examples/` holds the examples the docs site shows, under [the examples' rules](../../docs/guidelines/examples.md); `test/browser/show-a-pdf.browser.test.ts` runs `examples/show-a-pdf.ts`. The perf harness has its own page, `perf/page/` ([Performance](#performance)).
276
277
 
277
278
  ### Performance
278
279
 
package/dist/client.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import type { RenderRequest } from "@laminapdf/render";
2
- import { type Op } from "@laminapdf/sdk";
2
+ import { type DocumentMetadata, type Op, type PlannedSave, type SaveOptions, type XmpText } from "@laminapdf/sdk";
3
3
  import { type WorkerInitOptions, type WorkerWasmSource } from "@laminapdf/sdk/worker";
4
4
  import type { FindOptions } from "./find/fold.js";
5
- import { type BackendInit, type EditHistory, type EditResult, type LoadProgress, type MethodName, type NetworkRecord, type OpenedDocument, type Params, type PolicyViolation, type PrintOptions, type Priority, type RenderedBitmap, type Result, type SourceInit, type ViewerOpenOptions, type WorkerNetworkLog } from "./protocol.js";
5
+ import { type BackendInit, type EditHistory, type EditResult, type ExportPageOptions, type ExportTiffOptions, type LoadProgress, type MethodName, type NetworkRecord, type OpenedDocument, type Params, type PolicyViolation, type PrintOptions, type Priority, type RenderedBitmap, type Result, type SavedCopy, type SourceInit, type ViewerOpenOptions, type WorkerNetworkLog } from "./protocol.js";
6
6
  /** `ViewerClient.create`'s options: the backend, Lamina PDF's WebAssembly, the timeouts, the worker and a signal to stop starting. */
7
7
  export interface ViewerOptions {
8
8
  /** The render engine; PDFium needs its `.wasm` URL from your bundler (`pdfium.wasm?url`). */
@@ -101,6 +101,13 @@ export interface ViewerCallOptions {
101
101
  /** Default `visible` for renders; document calls run above every render. */
102
102
  readonly priority?: Priority;
103
103
  }
104
+ /**
105
+ * What a `Viewer` needs of the engine it draws from: the open document, its events, renders,
106
+ * and the text, link, find, edit and save calls of the layers and the edit session it builds. A
107
+ * `ViewerClient` over its document worker is one; the desktop app's client over its engine
108
+ * process is another, so the same viewer runs on both.
109
+ */
110
+ export type ViewerEngine = Pick<ViewerClient, "document" | "on" | "render" | "pageText" | "readingOrder" | "structure" | "pageLinks" | "find" | "applyEdit" | "undoEdit" | "redoEdit" | "goToStep" | "editHistory" | "planSave" | "copyEdits" | "adoptEdits">;
104
111
  /** One document worker and the typed RPC to it. */
105
112
  export declare class ViewerClient {
106
113
  #private;
@@ -146,6 +153,26 @@ export declare class ViewerClient {
146
153
  goToStep(position: number, options?: ViewerCallOptions): Promise<EditResult>;
147
154
  /** The edit session's history, read from the worker (after a failed call, which answers none). */
148
155
  editHistory(options?: ViewerCallOptions): Promise<EditHistory>;
156
+ /** The open document's metadata as its edits leave it: Info and XMP read together. */
157
+ metadata(call?: ViewerCallOptions): Promise<DocumentMetadata>;
158
+ /** The open document's XMP metadata as text, as its edits leave it. */
159
+ xmpPacket(call?: ViewerCallOptions): Promise<XmpText>;
160
+ /** How saving the open document with `options` would go: its constraint, signatures, mode and warnings. */
161
+ planSave(options: SaveOptions, call?: ViewerCallOptions): Promise<PlannedSave>;
162
+ /**
163
+ * Writes the open document as a save with `options` would, for the caller to write where the
164
+ * file lives; the document stays unsaved until `adoptEdits(copy.token)`. Save a copy uses it
165
+ * and never adopts.
166
+ */
167
+ copyEdits(options: SaveOptions, call?: ViewerCallOptions): Promise<SavedCopy>;
168
+ /**
169
+ * Makes the copy `token` names the document's saved file, once it is written where the file
170
+ * lives: the worker rebases onto it, the history marks the point saved, and a restarted worker
171
+ * reopens that file. Emits `edit` with the history.
172
+ *
173
+ * @throws when the document changed since the copy (it stays unsaved).
174
+ */
175
+ adoptEdits(token: number, call?: ViewerCallOptions): Promise<EditHistory>;
149
176
  /**
150
177
  * Every request the document worker has made, and had blocked, since it started: what its
151
178
  * `network` and `csp-violation` events reported, including those sent before anyone listened.
@@ -184,6 +211,13 @@ export declare class ViewerClient {
184
211
  outline(options?: ViewerCallOptions): Promise<import("@laminapdf/wasm/text").OutlineNodeJs[]>;
185
212
  /** Where the named destination `name` goes, or `undefined` when the document has no such name. */
186
213
  namedDestination(name: string, options?: ViewerCallOptions): Promise<import("@laminapdf/wasm/text").TargetJs | undefined>;
214
+ /**
215
+ * How the open document asks to be shown when it opens: the page and zoom, the panel, the page
216
+ * layout and the window preferences, as its edits leave them.
217
+ */
218
+ initialView(options?: ViewerCallOptions): Promise<import("@laminapdf/wasm/text").InitialViewJs>;
219
+ /** The open document's article threads, each with its parts in reading order; empty without any. */
220
+ threads(options?: ViewerCallOptions): Promise<import("@laminapdf/wasm/text").ThreadJs[]>;
187
221
  /**
188
222
  * What a properties view shows about the open document (`@laminapdf/sdk`'s `properties()`,
189
223
  * read in the worker). It reads every object once: ask when the view opens.
@@ -194,6 +228,18 @@ export declare class ViewerClient {
194
228
  * a PNG, at `background` priority unless `options` says otherwise, so the pages in view draw first.
195
229
  */
196
230
  printPage(index: number, print: PrintOptions, options?: ViewerCallOptions): Promise<import("./protocol.js").PrintedPage>;
231
+ /**
232
+ * Page `index` drawn at `exported.dpi` and encoded as PNG or JPEG, its resolution recorded in
233
+ * the file, at `background` priority unless `options` says otherwise, so the pages in view draw
234
+ * first. One page per call: an export of many pages asks for them one after another.
235
+ */
236
+ exportPage(index: number, exported: ExportPageOptions, options?: ViewerCallOptions): Promise<import("./protocol.js").ExportedPage>;
237
+ /**
238
+ * Pages `indexes` drawn at `exported.dpi` as TIFF: one multi-page file when `exported.multiPage`
239
+ * asks for it and the pages fit the export's memory budget, else a file per page. The worker
240
+ * loads the TIFF module the first time, at `background` priority unless `options` says otherwise.
241
+ */
242
+ exportTiff(indexes: readonly number[], exported: ExportTiffOptions, options?: ViewerCallOptions): Promise<import("./protocol.js").ExportedTiff>;
197
243
  /**
198
244
  * Every byte of the open remote file as it was opened, fetched where the block cache lacks
199
245
  * them. A local file's bytes are the page's own: it never asks.
@@ -208,8 +254,8 @@ export declare class ViewerClient {
208
254
  render(request: RenderRequest, options?: ViewerCallOptions): Promise<RenderedBitmap>;
209
255
  /**
210
256
  * Stops whatever the worker is doing by terminating it (the user's Stop, or the hard cap), then
211
- * restarts it as after a crash: pending calls reject, the running one isn't re-sent, and an
212
- * encrypted document asks for its password again.
257
+ * restarts it as after a crash: pending calls reject, renders that were waiting are sent again,
258
+ * the running one isn't, and an encrypted document asks for its password again.
213
259
  */
214
260
  stop(reason?: "cancelled" | "hard-timeout"): Promise<void>;
215
261
  /** Ends the worker for good. */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,KAAK,gBAAgB,EAErB,KAAK,EAAE,EACP,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,OAAO,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,eAAe,EAEpB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,MAAM,EAEX,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAKvB,sIAAsI;AACtI,MAAM,WAAW,aAAa;IAC5B,6FAA6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,CAAC;IACvD,mGAAmG;IACnG,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IAC/B,uBAAuB;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,oCAAoC;AACpC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,cAAc,CAAC;AAE7F,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,OAAO,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,8EAA8E;IAC9E,QAAQ,EAAE,YAAY,CAAC;IACvB,wGAAwG;IACxG,cAAc,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,sHAAsH;IACtH,iBAAiB,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,iHAAiH;IACjH,OAAO,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAA;KAAE,CAAC;IAC7F,uEAAuE;IACvE,eAAe,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;KAAE,CAAC;IAC1G,oDAAoD;IACpD,aAAa,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,qGAAqG;IACrG,cAAc,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAA;KAAE,CAAC;IAC7F,4CAA4C;IAC5C,OAAO,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC;;;;OAIG;IACH,SAAS,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;KAAE,CAAC;IAChH;;;OAGG;IACH,IAAI,EAAE,UAAU,CAAC;IACjB,0FAA0F;IAC1F,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3C,6GAA6G;IAC7G,gBAAgB,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/E;AAED,wCAAwC;AACxC,MAAM,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC;AAE7C,wBAAwB;AACxB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,YAAY,EACV,UAAU,GACV,IAAI,GACJ,QAAQ,GACR,UAAU,GACV,cAAc,GACd,WAAW,GACX,WAAW,GACX,MAAM,GACN,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,aAAa,GACb,UAAU,GACV,WAAW,GACX,YAAY,CACf,CAAC;AAgCF,mDAAmD;AACnD,qBAAa,YAAY;;IAyBvB,OAAO,eAWN;IAsBD;;;OAGG;IACH,OAAa,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA8BjE;IAED,oEAAoE;IACpE,EAAE,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAEzF;IAED,yEAAyE;IACnE,IAAI,CAAC,CAAC,SAAS,UAAU,EAC7B,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,OAAO,GAAE,iBAAiB,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAO,GACjD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAepB;IAED;;;;OAIG;IACG,IAAI,CACR,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,iBAAsB,EAC/B,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,cAAc,CAAC,CAmBzB;IAQD,iCAAiC;IACjC,IAAI,QAAQ,IAAI,cAAc,GAAG,SAAS,CAEzC;IAED,sFAAsF;IAChF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAK3B;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAM5G;IAED,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAEzD;IAED,qCAAqC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAEzD;IAED,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAE3E;IAED,kGAAkG;IAC5F,WAAW,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAOnE;IAED,sFAAsF;IAChF,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGlE;IAED,uEAAuE;IACjE,SAAS,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAG1D;IAED,2GAA2G;IACrG,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAGnF;IAED;;;;OAIG;IACG,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAKlF;IAED;;;;;;OAMG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAW9E;IA8BD;;;OAGG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEjE;IAED,oFAAoF;IACpF,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,iDAEjC;IAED,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,sDAElD;IAED;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,iDAI5D;IAED;;;OAGG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,mDAIhE;IAED;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,GAAE,iBAAsB,qDAE/F;IAED,2FAA2F;IACrF,SAAS,CAAC,OAAO,CAAC,EAAE,iBAAiB,kDAG1C;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,iBAAiB,4CAEjC;IAED;;;OAGG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE,iBAAiB,2DAElC;IAED,kGAAkG;IAClG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,gEAEzD;IAED;;;OAGG;IACH,WAAW,CAAC,OAAO,CAAC,EAAE,iBAAiB,yDAEtC;IAED,oGAAoG;IACpG,OAAO,CAAC,OAAO,CAAC,EAAE,iBAAiB,sDAElC;IAED;;;OAGG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,wDAErC;IAED;;;OAGG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,GAAE,iBAAsB,gDAE5E;IAED;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,GAAE,iBAAsB,iDAErF;IAED;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,GAAE,iBAAsB,iDAElG;IAED;;;OAGG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,iBAAiB,wCAEpC;IAED,wHAAwH;IAClH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,iEAK7D;IAED;;;OAGG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,CAa7F;IAgED;;;;OAIG;IACH,IAAI,CAAC,MAAM,GAAE,WAAW,GAAG,cAA4B,GAAG,OAAO,CAAC,IAAI,CAAC,CAKtE;IAED,gCAAgC;IAChC,SAAS,IAAI,IAAI,CAKhB;CAgFF"}
package/dist/client.js CHANGED
@@ -11,10 +11,11 @@
11
11
  // (`hard-timeout`) or, for an encrypted document, `render-stuck` and a restart only on `stop()`;
12
12
  // - restart after a crash (the worker's error, messageerror or a reported trap; never silence):
13
13
  // pending calls reject with `worker-crashed`, a new worker reopens the document from the same
14
- // source, but the call that was running is never re-sent (the UI offers Retry). An encrypted
14
+ // source, and renders that were waiting are sent again once, there; the render that was running
15
+ // is never re-sent, so a page that crashes the engine can't loop (the UI offers Retry). An encrypted
15
16
  // document isn't reopened: the password lived only in the dead worker, so `password-required`
16
17
  // fires and the caller opens again with the password.
17
- import { isLaminaPdfError } from "@laminapdf/sdk";
18
+ import { isLaminaPdfError, } from "@laminapdf/sdk";
18
19
  import { connect, Emitter, } from "@laminapdf/sdk/worker";
19
20
  import { EditLog } from "./edit-log.js";
20
21
  import { FirstDraw } from "./first-draw.js";
@@ -50,6 +51,8 @@ export class ViewerClient {
50
51
  #document;
51
52
  /** The open document's edit session, kept so a restarted worker takes it back. */
52
53
  #edits = new EditLog();
54
+ /** The last copy a save wrote (`copyEdits`), until it is adopted or another replaces it. */
55
+ #copy;
53
56
  /** Opens asked for so far: each open's ticket. */
54
57
  #opens = 0;
55
58
  #recovering;
@@ -60,6 +63,8 @@ export class ViewerClient {
60
63
  #timers = new Map();
61
64
  /** The key the worker is drawing now: a render that joins it starts its timers at once. */
62
65
  #drawing;
66
+ /** The render that was drawing when the worker crashed or was stopped: it isn't sent again. */
67
+ #lost;
63
68
  constructor(pdf, options) {
64
69
  this.#pdf = pdf;
65
70
  this.#backend = options.backend;
@@ -241,6 +246,58 @@ export class ViewerClient {
241
246
  this.#edits.take({ pages: [], history });
242
247
  return history;
243
248
  }
249
+ /** The open document's metadata as its edits leave it: Info and XMP read together. */
250
+ async metadata(call) {
251
+ if (this.#recovering !== undefined)
252
+ await this.#recovering.catch(() => { });
253
+ return this.call("metadata", [this.#document?.id ?? 0], call);
254
+ }
255
+ /** The open document's XMP metadata as text, as its edits leave it. */
256
+ async xmpPacket(call) {
257
+ if (this.#recovering !== undefined)
258
+ await this.#recovering.catch(() => { });
259
+ return this.call("xmpPacket", [this.#document?.id ?? 0], call);
260
+ }
261
+ /** How saving the open document with `options` would go: its constraint, signatures, mode and warnings. */
262
+ async planSave(options, call) {
263
+ if (this.#recovering !== undefined)
264
+ await this.#recovering.catch(() => { });
265
+ return this.call("planSave", [options, this.#document?.id ?? 0], call);
266
+ }
267
+ /**
268
+ * Writes the open document as a save with `options` would, for the caller to write where the
269
+ * file lives; the document stays unsaved until `adoptEdits(copy.token)`. Save a copy uses it
270
+ * and never adopts.
271
+ */
272
+ async copyEdits(options, call) {
273
+ if (this.#recovering !== undefined)
274
+ await this.#recovering.catch(() => { });
275
+ const copy = await this.call("copyEdits", [options, this.#document?.id ?? 0], call);
276
+ this.#copy = { token: copy.token, bytes: copy.bytes };
277
+ return copy;
278
+ }
279
+ /**
280
+ * Makes the copy `token` names the document's saved file, once it is written where the file
281
+ * lives: the worker rebases onto it, the history marks the point saved, and a restarted worker
282
+ * reopens that file. Emits `edit` with the history.
283
+ *
284
+ * @throws when the document changed since the copy (it stays unsaved).
285
+ */
286
+ async adoptEdits(token, call) {
287
+ if (this.#recovering !== undefined)
288
+ await this.#recovering.catch(() => { });
289
+ const opened = this.#document;
290
+ const history = await this.call("adoptEdits", [token, opened?.id ?? 0], call);
291
+ const copy = this.#copy;
292
+ if (opened === undefined || this.#document !== opened)
293
+ return history;
294
+ this.#copy = undefined;
295
+ if (copy?.token === token && this.#reopen !== undefined)
296
+ this.#reopen = { ...this.#reopen, source: copy.bytes };
297
+ this.#edits.saved(history);
298
+ this.#events.emit("edit", { pages: [], history });
299
+ return history;
300
+ }
244
301
  /**
245
302
  * Runs one edit session call on the open document, then keeps what it changed: the pages'
246
303
  * sizes in `document`, the steps for a restart, and an `edit` event.
@@ -331,6 +388,17 @@ export class ViewerClient {
331
388
  namedDestination(name, options) {
332
389
  return this.call("namedDestination", [name], options);
333
390
  }
391
+ /**
392
+ * How the open document asks to be shown when it opens: the page and zoom, the panel, the page
393
+ * layout and the window preferences, as its edits leave them.
394
+ */
395
+ initialView(options) {
396
+ return this.call("initialView", [], options);
397
+ }
398
+ /** The open document's article threads, each with its parts in reading order; empty without any. */
399
+ threads(options) {
400
+ return this.call("threads", [], options);
401
+ }
334
402
  /**
335
403
  * What a properties view shows about the open document (`@laminapdf/sdk`'s `properties()`,
336
404
  * read in the worker). It reads every object once: ask when the view opens.
@@ -345,6 +413,22 @@ export class ViewerClient {
345
413
  printPage(index, print, options = {}) {
346
414
  return this.call("printPage", [index, print], { priority: "background", ...options });
347
415
  }
416
+ /**
417
+ * Page `index` drawn at `exported.dpi` and encoded as PNG or JPEG, its resolution recorded in
418
+ * the file, at `background` priority unless `options` says otherwise, so the pages in view draw
419
+ * first. One page per call: an export of many pages asks for them one after another.
420
+ */
421
+ exportPage(index, exported, options = {}) {
422
+ return this.call("exportPage", [index, exported], { priority: "background", ...options });
423
+ }
424
+ /**
425
+ * Pages `indexes` drawn at `exported.dpi` as TIFF: one multi-page file when `exported.multiPage`
426
+ * asks for it and the pages fit the export's memory budget, else a file per page. The worker
427
+ * loads the TIFF module the first time, at `background` priority unless `options` says otherwise.
428
+ */
429
+ exportTiff(indexes, exported, options = {}) {
430
+ return this.call("exportTiff", [indexes, exported], { priority: "background", ...options });
431
+ }
348
432
  /**
349
433
  * Every byte of the open remote file as it was opened, fetched where the block cache lacks
350
434
  * them. A local file's bytes are the page's own: it never asks.
@@ -364,6 +448,24 @@ export class ViewerClient {
364
448
  * drawn once. An aborted render rejects with `AbortError` and never paints.
365
449
  */
366
450
  async render(request, options = {}) {
451
+ const attempt = { interrupted: false };
452
+ try {
453
+ return await this.#render(request, options, attempt);
454
+ }
455
+ catch (e) {
456
+ if (!attempt.interrupted)
457
+ throw e;
458
+ }
459
+ // The worker was lost while this render waited: it is sent again, once, in the restarted
460
+ // worker (ADR 0009 §3.6). A restart that didn't reopen the document (an encrypted one waits
461
+ // for its password) leaves it nothing to draw from: it ends as cancelled, as for a new open.
462
+ await this.#recovering?.catch(() => { });
463
+ if (this.#document === undefined)
464
+ throw new DOMException("the document closed in a restart", "AbortError");
465
+ return this.#render(request, options, { interrupted: false });
466
+ }
467
+ /** One render; `attempt.interrupted` says a failure was only the worker's loss (see `render`). */
468
+ async #render(request, options, attempt) {
367
469
  const id = this.#nextRender++;
368
470
  // A restarted worker numbers its documents again: read the ID once it serves.
369
471
  if (this.#recovering !== undefined)
@@ -405,6 +507,13 @@ export class ViewerClient {
405
507
  this.#firstDraw?.drawn(documentId);
406
508
  return drawn;
407
509
  }
510
+ catch (e) {
511
+ // Lost with its worker while it waited: a restart is under way, and it wasn't the render
512
+ // drawing then, which isn't re-sent so a page that crashes the engine can't loop.
513
+ attempt.interrupted =
514
+ isLaminaPdfError(e, "worker-crashed") && this.#recovering !== undefined && key !== this.#lost;
515
+ throw e;
516
+ }
408
517
  finally {
409
518
  const own = this.#timers.get(key);
410
519
  own?.delete(timers);
@@ -418,8 +527,8 @@ export class ViewerClient {
418
527
  }
419
528
  /**
420
529
  * Stops whatever the worker is doing by terminating it (the user's Stop, or the hard cap), then
421
- * restarts it as after a crash: pending calls reject, the running one isn't re-sent, and an
422
- * encrypted document asks for its password again.
530
+ * restarts it as after a crash: pending calls reject, renders that were waiting are sent again,
531
+ * the running one isn't, and an encrypted document asks for its password again.
423
532
  */
424
533
  stop(reason = "cancelled") {
425
534
  // A restart already under way serves: a second would end the worker it is starting.
@@ -502,6 +611,8 @@ export class ViewerClient {
502
611
  #recover(reason) {
503
612
  if (this.#recovering !== undefined)
504
613
  return this.#recovering;
614
+ // Read before the lost calls' rejections run, which clear what was drawing.
615
+ this.#lost = this.#drawing;
505
616
  const recovering = (async () => {
506
617
  await this.#pdf.restart();
507
618
  await this.#pdf.request("initBackend", [this.#backend], { priority: PRIORITY.document });
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,iGAAiG;AACjG,sBAAsB;AACtB,EAAE;AACF,4FAA4F;AAC5F,gGAAgG;AAChG,2DAA2D;AAC3D,kGAAkG;AAClG,iGAAiG;AACjG,8FAA8F;AAC9F,mGAAmG;AACnG,gGAAgG;AAChG,gGAAgG;AAChG,+FAA+F;AAC/F,gGAAgG;AAChG,wDAAwD;AAGxD,OAAO,EAAE,gBAAgB,EAAW,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,OAAO,EACP,OAAO,GAIR,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAUL,QAAQ,EAKR,SAAS,GAIV,MAAM,eAAe,CAAC;AAEvB,sDAAsD;AACtD,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AA2ExE,SAAS,aAAa;IACpB,OAAO,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,mBAAmB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AAC9G,CAAC;AAED,SAAS,UAAU,CAAC,CAAU;IAC5B,OAAO,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzG,CAAC;AAED;;;;GAIG;AACH,SAAS,YAAY,CAAC,OAAoB;IACxC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,WAAW,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;QACnH,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CACnF,CAAC,MAAM,EAAe,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EACvD,GAAG,EAAE,CAAC,OAAO,CACd,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,MAAM,OAAO,YAAY;IACd,IAAI,CAAe;IACnB,QAAQ,CAAc;IACtB,SAAS,CAAmD;IAC5D,OAAO,GAAG,IAAI,OAAO,EAAgB,CAAC;IAC/C,uFAAuF;IACvF,OAAO,CAAqG;IAC5G,SAAS,CAA6B;IACtC,kFAAkF;IACzE,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;IAChC,kDAAkD;IAClD,MAAM,GAAG,CAAC,CAAC;IACX,WAAW,CAA4B;IACvC,WAAW,GAAG,CAAC,CAAC;IAChB,sGAAsG;IACtG,UAAU,CAAwB;IAClC,+GAA+G;IACtG,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IACxD,2FAA2F;IAC3F,QAAQ,CAAqB;IAE7B,YAAoB,GAAiB,EAAE,OAAsB;QAC3D,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC9D,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3D,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,MAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,MAAuB,EAAE,KAAK,EAAE,CAAC,CAChF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kFAAkF;IAClF,QAAQ,CAAC,IAAY,EAAE,IAAa;QAClC,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAA+B,CAAC,CAAC;aACjF,IAAI,IAAI,KAAK,UAAU;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAoB,CAAC,CAAC;aAC7E,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAA+B,CAAC,CAAC;aACtF,IAAI,IAAI,KAAK,eAAe;YAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,IAAqC,CAAC,CAAC;aACxG,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAoC,CAAC;YACrD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;YAC5B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE;gBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YACzE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;aAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;YACtC,2EAA2E;YAC3E,MAAM,EAAE,GAAG,EAAE,GAAG,IAAuC,CAAC;YACxD,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;gBAAE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YACrD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;gBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAsB;QACxC,wFAAwF;QACxF,2DAA2D;QAC3D,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa;YACvC,2EAA2E;YAC3E,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBACnB,MAAM,MAAM,GAAI,KAA0C,EAAE,MAAM,CAAC;gBACnE,IAAI,MAAM,YAAY,WAAW;oBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;YACpD,CAAC;YACD,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;YACnE,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;SAClE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/E,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,qFAAqF;gBACrF,IAAI,OAAO,KAAK,OAAO,CAAC,OAAO;oBAAE,MAAM,CAAC,CAAC;gBACzC,MAAM,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,gDAAgD;YAChD,GAAG,CAAC,SAAS,EAAE,CAAC;YAChB,MAAM,CAAC,CAAC;QACV,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oEAAoE;IACpE,EAAE,CAAwB,KAAQ,EAAE,QAAyC;QAC3E,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,yEAAyE;IACzE,KAAK,CAAC,IAAI,CACR,MAAS,EACT,MAAiB,EACjB,OAAO,GAAyC,EAAE;QAElD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QAC1C,+FAA+F;QAC/F,4BAA4B;QAC5B,MAAM,KAAK,GAAG,MAAM,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAClH,IAAI,CAAC;YACH,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;gBAC9C,QAAQ,EAAE,KAAK;gBACf,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;gBAC3C,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;aACtC,CAAC,CAAc,CAAC;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CACR,MAAkB,EAClB,OAAO,GAAsB,EAAE,EAC/B,IAAI,GAAsB,EAAE;QAE5B,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QACzC,MAAM,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;QAC7B,IAAI,MAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,sFAAsF;YACtF,+EAA+E;YAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzF,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,CAAC,CAAC;YAClC,MAAM,GAAG,MAAM,CAAC;QAClB,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,iFAAiF;QACjF,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,2HAA2H;IAC3H,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1E,OAAO,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3D,CAAC;IAED,iCAAiC;IACjC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,sFAAsF;IACtF,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,GAAkB,EAAE,OAAyD;QACrF,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE;YAC7G,GAAG;YACH,KAAK,EAAE,KAAK,IAAI,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IAED,+FAA+F;IAC/F,QAAQ,CAAC,OAA2B;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,qCAAqC;IACrC,QAAQ,CAAC,OAA2B;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,6FAA6F;IAC7F,QAAQ,CAAC,QAAgB,EAAE,OAA2B;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,kGAAkG;IAClG,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3E,8EAA8E;QAC9E,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAChG,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CACT,IAA+C,EAC/C,IAA8D;QAE9D,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC;QAC9B,sDAAsD;QACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3C,mEAAmE;QACnE,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QACrE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,2EAA2E;IAC3E,UAAU,CAAC,MAAsB,EAAE,MAAkB;QACnD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACtC,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,OAA2B;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,oFAAoF;IACpF,MAAM,CAAC,OAA2B;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,mDAAmD;IACnD,QAAQ,CAAC,KAAa,EAAE,OAA2B;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,OAAO,GAAsB,EAAE;QAC3D,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACrF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,OAAO,GAAsB,EAAE;QAC/D,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,KAAa,EAAE,IAAiB,EAAE,KAAwB,EAAE,OAAO,GAAsB,EAAE;QAC9F,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,SAAS,CAAC,OAA2B;QACzC,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAA2B;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,OAA2B;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,kGAAkG;IAClG,gBAAgB,CAAC,IAAY,EAAE,OAA2B;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,OAA2B;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,KAAa,EAAE,KAAmB,EAAE,OAAO,GAAsB,EAAE;QAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACxF,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,OAA2B;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,wHAAwH;IACxH,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,OAAO,GAAsB,EAAE;QAC5D,+FAA+F;QAC/F,0BAA0B;QAC1B,MAAM,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,OAAsB,EAAE,OAAO,GAAsB,EAAE;QAClE,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,8EAA8E;QAC9E,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC3E,sDAAsD;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;QAC7D,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3C,IAAI,IAA+C,CAAC;QACpD,IAAI,IAA+C,CAAC;QACpD,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,KAAK,EAAE,CAAC;YACR,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3G,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE;gBACrB,IAAI,aAAa;oBAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;;oBAEpG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CACvE,CAAC;YACN,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,CAAC;QACF,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChB,qEAAqE;QACrE,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;YACpF,0FAA0F;YAC1F,mDAAmD;YACnD,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAClC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACpB,IAAI,GAAG,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,IAAI,CAAC,QAAQ,KAAK,GAAG;oBAAE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YACvD,CAAC;YACD,KAAK,EAAE,CAAC;QACV,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,MAAM,GAAiC,WAAW;QACrD,oFAAoF;QACpF,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,gCAAgC;IAChC,SAAS;QACP,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,MAAsB;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,oFAAoF;QACpF,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE;gBAClF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC,CAAe,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,mBAAmB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACvE,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3C,mEAAmE;YACnE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACpC,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;gBACzF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;aAC5B,CAAC,CAAmB,CAAC;YACtB,mFAAmF;YACnF,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QACxD,8FAA8F;QAC9F,6FAA6F;QAC7F,IAAI,QAAQ,KAAK,QAAQ;YAAE,MAAM,IAAI,EAAE,CAAC;QACxC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC9E,CAAC;IAED,QAAQ,CAAC,MAAqB;QAC5B,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC5D,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzF,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAClG,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE;YACtC,IAAI,IAAI,CAAC,WAAW,KAAK,OAAO;gBAAE,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QACjE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { Op } from "@laminapdf/sdk";
2
- import { type EditHistory, type EditResult, type OpenedDocument, type RevertedStep } from "../protocol.js";
1
+ import type { Op, PlannedSave, SaveOptions } from "@laminapdf/sdk";
2
+ import { type EditHistory, type EditResult, type OpenedDocument, type RevertedStep, type SavedCopy } from "../protocol.js";
3
3
  /** Why the document can't be edited now. */
4
4
  export type EditBlock =
5
5
  /** No document is open. */
@@ -19,6 +19,8 @@ export interface EditSessionState {
19
19
  readonly notice: RevertedStep | undefined;
20
20
  /** How long the last call took from the call to its pages redrawn, in ms (E1 plan §6's measure). */
21
21
  readonly lastMs: number | undefined;
22
+ /** A save is writing: edits, undo and redo wait for it, and the interface says "Saving…". */
23
+ readonly saving: boolean;
22
24
  }
23
25
  /** What the session drives: the viewer's edit calls, which redraw the pages they touch. */
24
26
  export interface EditSessionHost {
@@ -30,6 +32,12 @@ export interface EditSessionHost {
30
32
  goToStep(position: number): Promise<EditResult>;
31
33
  /** The worker's history now, read after a call failed (a failed edit can clear the steps undone). */
32
34
  editHistory(): Promise<EditHistory>;
35
+ /** How a save with `options` would go. */
36
+ planSave(options: SaveOptions): Promise<PlannedSave>;
37
+ /** A copy of the document as a save with `options` writes it; the document stays unsaved. */
38
+ copyEdits(options: SaveOptions): Promise<SavedCopy>;
39
+ /** Makes the copy `token` names the saved file, once it is written. */
40
+ adoptEdits(token: number): Promise<EditHistory>;
33
41
  }
34
42
  /** Called after an undo or redo, with each step it took back or made again. */
35
43
  export type RevertListener = (reverted: readonly RevertedStep[]) => void;
@@ -79,6 +87,20 @@ export declare class EditSession {
79
87
  * or an empty one when the edits were lost.
80
88
  */
81
89
  follow(history: EditHistory): void;
90
+ /**
91
+ * How a save with `options` would go: its constraint, the signatures it would break, its mode
92
+ * and the conformance warnings. Read after the calls before it.
93
+ */
94
+ plan(options: SaveOptions): Promise<PlannedSave>;
95
+ /**
96
+ * Saves: a copy with `options`, which `write` puts where the file lives; once that worked, the
97
+ * document takes the copy as its saved file and the history marks the point saved. A failed
98
+ * plan, copy or write rejects, and the document stays unsaved. `saving` is set meanwhile, and
99
+ * edits wait.
100
+ */
101
+ save(options: SaveOptions, write: (copy: SavedCopy) => Promise<void>): Promise<SavedCopy>;
102
+ /** A copy of the document as a save with `options` writes it, which leaves it unsaved (Save a copy). */
103
+ copy(options: SaveOptions): Promise<SavedCopy>;
82
104
  /** Applies `ops` as one step named `label` ("Rotate page 5"). Rejects as the edit failed. */
83
105
  apply(ops: readonly Op[], label: string): Promise<EditResult>;
84
106
  /** Undoes the newest done step; resolves undefined when there was none. */
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/edit/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/edit/session.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,9 @@
3
3
  // were made, so three quick presses of Undo undo three steps; each redraws the pages it touched
4
4
  // before the next starts. The store's state is what an interface reads: the steps, whether a call
5
5
  // is running, why editing is blocked, and the last undo or redo that restored only part of a step,
6
- // which stays until the next edit (a toast is never the only place it shows).
6
+ // which stays until the next edit (a toast is never the only place it shows). Saves queue with the
7
+ // calls too (E1 plan §7): a save writes a copy, the caller writes it where the file lives, and only
8
+ // then does the document take it as saved; edits wait until it is done.
7
9
  import { EMPTY_HISTORY, } from "../protocol.js";
8
10
  const CLOSED = {
9
11
  history: EMPTY_HISTORY,
@@ -11,6 +13,7 @@ const CLOSED = {
11
13
  blocked: "no-document",
12
14
  notice: undefined,
13
15
  lastMs: undefined,
16
+ saving: false,
14
17
  };
15
18
  /**
16
19
  * A session with no document, which can do nothing: what an interface reads while none is open,
@@ -73,6 +76,7 @@ export class EditSession {
73
76
  blocked: document === undefined ? "no-document" : document.encrypted ? "encrypted" : undefined,
74
77
  notice: undefined,
75
78
  lastMs: undefined,
79
+ saving: false,
76
80
  });
77
81
  }
78
82
  /**
@@ -82,6 +86,55 @@ export class EditSession {
82
86
  follow(history) {
83
87
  this.#set({ history, ...(history.diverged ? { blocked: "diverged" } : {}) });
84
88
  }
89
+ /**
90
+ * How a save with `options` would go: its constraint, the signatures it would break, its mode
91
+ * and the conformance warnings. Read after the calls before it.
92
+ */
93
+ plan(options) {
94
+ return this.#queued(() => this.#host.planSave(options));
95
+ }
96
+ /**
97
+ * Saves: a copy with `options`, which `write` puts where the file lives; once that worked, the
98
+ * document takes the copy as its saved file and the history marks the point saved. A failed
99
+ * plan, copy or write rejects, and the document stays unsaved. `saving` is set meanwhile, and
100
+ * edits wait.
101
+ */
102
+ save(options, write) {
103
+ const turn = this.#turn;
104
+ return this.#queued(async () => {
105
+ this.#set({ saving: true });
106
+ try {
107
+ const copy = await this.#host.copyEdits(options);
108
+ await write(copy);
109
+ const history = await this.#host.adoptEdits(copy.token);
110
+ if (turn === this.#turn)
111
+ this.#set({ history });
112
+ return copy;
113
+ }
114
+ finally {
115
+ if (turn === this.#turn)
116
+ this.#set({ saving: false });
117
+ }
118
+ });
119
+ }
120
+ /** A copy of the document as a save with `options` writes it, which leaves it unsaved (Save a copy). */
121
+ copy(options) {
122
+ return this.#queued(() => this.#host.copyEdits(options));
123
+ }
124
+ /** Runs `call` after the calls before it, for this document only, unless editing is blocked by then. */
125
+ #queued(call) {
126
+ const turn = this.#turn;
127
+ const run = this.#queue.then(() => {
128
+ if (turn !== this.#turn)
129
+ throw new Error("the document was closed");
130
+ const { blocked } = this.#state;
131
+ if (blocked !== undefined)
132
+ throw new Error(`the document can't be saved: ${blocked}`);
133
+ return call();
134
+ });
135
+ this.#queue = run.catch(() => undefined);
136
+ return run;
137
+ }
85
138
  /** Applies `ops` as one step named `label` ("Rotate page 5"). Rejects as the edit failed. */
86
139
  apply(ops, label) {
87
140
  return this.#run(() => this.#host.applyEdit(ops, { label }), true, { call: "apply", label });
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/edit/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/edit/session.ts"],"names":[],"mappings":"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"}