docxodus 12.1.0 → 12.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 (87) hide show
  1. package/README.md +14 -4
  2. package/dist/editor.bundle.js +137 -23
  3. package/dist/editor.d.ts +25 -3
  4. package/dist/editor.d.ts.map +1 -1
  5. package/dist/editor.js +132 -13
  6. package/dist/editor.js.map +1 -1
  7. package/dist/embed.bundle.js +1163 -48
  8. package/dist/embed.d.ts +30 -1
  9. package/dist/embed.d.ts.map +1 -1
  10. package/dist/embed.iife.js +1163 -48
  11. package/dist/embed.js +124 -13
  12. package/dist/embed.js.map +1 -1
  13. package/dist/export-assets.json +33 -33
  14. package/dist/history-checkpoints.d.ts +48 -0
  15. package/dist/history-checkpoints.d.ts.map +1 -0
  16. package/dist/history-checkpoints.js +100 -0
  17. package/dist/history-checkpoints.js.map +1 -0
  18. package/dist/history-controls.d.ts +30 -0
  19. package/dist/history-controls.d.ts.map +1 -0
  20. package/dist/history-controls.js +333 -0
  21. package/dist/history-controls.js.map +1 -0
  22. package/dist/history-indexeddb.d.ts +12 -0
  23. package/dist/history-indexeddb.d.ts.map +1 -0
  24. package/dist/history-indexeddb.js +154 -0
  25. package/dist/history-indexeddb.js.map +1 -0
  26. package/dist/history.d.ts +265 -0
  27. package/dist/history.d.ts.map +1 -0
  28. package/dist/history.js +307 -0
  29. package/dist/history.js.map +1 -0
  30. package/dist/index.d.ts +10 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +23 -2
  33. package/dist/index.js.map +1 -1
  34. package/dist/ribbon-chrome.d.ts +2 -2
  35. package/dist/ribbon-chrome.d.ts.map +1 -1
  36. package/dist/ribbon-chrome.js +6 -4
  37. package/dist/ribbon-chrome.js.map +1 -1
  38. package/dist/ribbon.js +42 -9
  39. package/dist/ribbon.js.map +1 -1
  40. package/dist/session.js +1 -1
  41. package/dist/session.js.map +1 -1
  42. package/dist/types.d.ts +2 -0
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/types.js.map +1 -1
  45. package/dist/wasm/_framework/DocumentFormat.OpenXml.Framework.wasm +0 -0
  46. package/dist/wasm/_framework/DocumentFormat.OpenXml.Framework.wasm.br +0 -0
  47. package/dist/wasm/_framework/DocumentFormat.OpenXml.wasm +0 -0
  48. package/dist/wasm/_framework/DocumentFormat.OpenXml.wasm.br +0 -0
  49. package/dist/wasm/_framework/Docxodus.wasm +0 -0
  50. package/dist/wasm/_framework/Docxodus.wasm.br +0 -0
  51. package/dist/wasm/_framework/DocxodusWasm.wasm +0 -0
  52. package/dist/wasm/_framework/DocxodusWasm.wasm.br +0 -0
  53. package/dist/wasm/_framework/System.Collections.Concurrent.wasm +0 -0
  54. package/dist/wasm/_framework/System.Collections.Concurrent.wasm.br +0 -0
  55. package/dist/wasm/_framework/System.Collections.wasm +0 -0
  56. package/dist/wasm/_framework/System.Collections.wasm.br +0 -0
  57. package/dist/wasm/_framework/System.IO.Compression.wasm +0 -0
  58. package/dist/wasm/_framework/System.IO.Compression.wasm.br +0 -0
  59. package/dist/wasm/_framework/System.IO.Packaging.wasm +0 -0
  60. package/dist/wasm/_framework/System.IO.Packaging.wasm.br +0 -0
  61. package/dist/wasm/_framework/System.Linq.Expressions.wasm +0 -0
  62. package/dist/wasm/_framework/System.Linq.Expressions.wasm.br +0 -0
  63. package/dist/wasm/_framework/System.Memory.wasm +0 -0
  64. package/dist/wasm/_framework/System.Memory.wasm.br +0 -0
  65. package/dist/wasm/_framework/System.Net.Http.wasm +0 -0
  66. package/dist/wasm/_framework/System.Net.Http.wasm.br +0 -0
  67. package/dist/wasm/_framework/System.Private.CoreLib.wasm +0 -0
  68. package/dist/wasm/_framework/System.Private.CoreLib.wasm.br +0 -0
  69. package/dist/wasm/_framework/System.Private.Xml.Linq.wasm +0 -0
  70. package/dist/wasm/_framework/System.Private.Xml.Linq.wasm.br +0 -0
  71. package/dist/wasm/_framework/System.Private.Xml.wasm +0 -0
  72. package/dist/wasm/_framework/System.Private.Xml.wasm.br +0 -0
  73. package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm +0 -0
  74. package/dist/wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm.br +0 -0
  75. package/dist/wasm/_framework/System.Runtime.wasm +0 -0
  76. package/dist/wasm/_framework/System.Runtime.wasm.br +0 -0
  77. package/dist/wasm/_framework/System.Security.Cryptography.wasm +0 -0
  78. package/dist/wasm/_framework/System.Security.Cryptography.wasm.br +0 -0
  79. package/dist/wasm/_framework/System.Text.Json.wasm +0 -0
  80. package/dist/wasm/_framework/System.Text.Json.wasm.br +0 -0
  81. package/dist/wasm/_framework/System.Text.RegularExpressions.wasm +0 -0
  82. package/dist/wasm/_framework/System.Text.RegularExpressions.wasm.br +0 -0
  83. package/dist/wasm/_framework/dotnet.boot.js +21 -21
  84. package/dist/wasm/_framework/dotnet.boot.js.br +0 -0
  85. package/dist/wasm/_framework/dotnet.native.wasm +0 -0
  86. package/dist/wasm/_framework/dotnet.native.wasm.br +0 -0
  87. package/package.json +6 -3
package/dist/embed.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * ```html
8
8
  * <div id="doc"></div>
9
9
  * <script type="module">
10
- * import { createViewer } from "https://cdn.jsdelivr.net/npm/docxodus@12.0.1/dist/embed.bundle.js";
10
+ * import { createViewer } from "https://cdn.jsdelivr.net/npm/docxodus@12.2.0/dist/embed.bundle.js";
11
11
  * await createViewer("#doc", "./contract.docx");
12
12
  * </script>
13
13
  * ```
@@ -28,6 +28,7 @@
28
28
  import { initialize, getWasmExports, convertDocxToHtml, } from "./index.js";
29
29
  import { DocxEditor } from "./editor.js";
30
30
  import { mountRibbon } from "./ribbon.js";
31
+ import { DocxHistoryError } from './history.js';
31
32
  // Everything the main entry exports is re-exported so the CDN bundle is a
32
33
  // one-stop surface (convert, compare, diff, sessions, annotations, ...).
33
34
  export * from "./index.js";
@@ -294,6 +295,20 @@ export async function toDocumentBytes(source) {
294
295
  }
295
296
  throw new Error("Docxodus embed: unsupported document source");
296
297
  }
298
+ function scopedDocumentFragment(mount, html) {
299
+ const parsed = new DOMParser().parseFromString(html, 'text/html');
300
+ const fragment = document.createDocumentFragment();
301
+ parsed.querySelectorAll('style').forEach((sourceStyle) => {
302
+ const style = document.createElement('style');
303
+ style.textContent = sourceStyle.textContent;
304
+ scopeStyleElement(style, mount.selector);
305
+ fragment.appendChild(style);
306
+ });
307
+ const body = document.createElement('template');
308
+ body.innerHTML = parsed.body.innerHTML;
309
+ fragment.appendChild(body.content);
310
+ return fragment;
311
+ }
297
312
  /**
298
313
  * Render a read-only DOCX viewer into `container`.
299
314
  *
@@ -314,18 +329,7 @@ export async function createViewer(container, source, options = {}) {
314
329
  renderFootnotesAndEndnotes: true,
315
330
  ...opts,
316
331
  });
317
- const parsed = new DOMParser().parseFromString(lastHtml, "text/html");
318
- const fragment = document.createDocumentFragment();
319
- parsed.querySelectorAll("style").forEach((sourceStyle) => {
320
- const style = document.createElement("style");
321
- style.textContent = sourceStyle.textContent;
322
- scopeStyleElement(style, mount.selector);
323
- fragment.appendChild(style);
324
- });
325
- const body = document.createElement("template");
326
- body.innerHTML = parsed.body.innerHTML;
327
- fragment.appendChild(body.content);
328
- mount.root.replaceChildren(fragment);
332
+ mount.root.replaceChildren(scopedDocumentFragment(mount, lastHtml));
329
333
  };
330
334
  await render(source, conversion);
331
335
  return {
@@ -339,6 +343,113 @@ export async function createViewer(container, source, options = {}) {
339
343
  },
340
344
  };
341
345
  }
346
+ /** Render accepted DOCX history and follow host-delivered log notifications.
347
+ * Storage/replay validation stays in the core. A refresh prepares verified bytes and HTML before
348
+ * advancing the displayed head; failures retain the previous frame. Calls serialize in order.
349
+ * Historical previews pause live painting, not log catch-up; resume explicitly returns to live.
350
+ * This coarse path renders full checkpoints, not fine-grained keystrokes or concurrent rebasing. */
351
+ export async function createHistoryViewer(container, history, documentId, options = {}) {
352
+ const el = resolveContainer(container);
353
+ const { wasmBasePath, maxEntriesToScan = 10000, ...conversion } = options;
354
+ if (!Number.isSafeInteger(maxEntriesToScan) || maxEntriesToScan <= 0 || maxEntriesToScan > 0x7fffffff)
355
+ throw new RangeError('Invalid history scan budget.');
356
+ await ensureWasm(wasmBasePath);
357
+ const mount = createScopedMount(el);
358
+ let accepted = null;
359
+ let acceptedBytes = null;
360
+ let displayedBytes = null;
361
+ let shownSequence = '0';
362
+ let following = true;
363
+ let closed = false;
364
+ let html = '';
365
+ let queue = Promise.resolve();
366
+ const clone = (value) => JSON.parse(JSON.stringify(value));
367
+ const assertOpen = () => {
368
+ if (closed)
369
+ throw new DocxHistoryError('Closed', 'History viewer is destroyed.');
370
+ };
371
+ const enqueue = (action) => {
372
+ const result = queue.then(() => { assertOpen(); return action(); });
373
+ queue = result.then(() => undefined, () => undefined);
374
+ return result;
375
+ };
376
+ const sameHead = (a, b) => a.revision === b.revision
377
+ && a.state.length === b.state.length && a.state.digest.algorithm === b.state.digest.algorithm
378
+ && a.state.digest.value === b.state.digest.value;
379
+ const paint = async (bytes, sequence) => {
380
+ const nextHtml = await convertDocxToHtml(bytes, { renderFootnotesAndEndnotes: true, ...conversion });
381
+ assertOpen();
382
+ const fragment = scopedDocumentFragment(mount, nextHtml);
383
+ // The only DOM commit point. No awaits or fallible conversion follows it.
384
+ mount.root.replaceChildren(fragment);
385
+ html = nextHtml;
386
+ displayedBytes = bytes;
387
+ shownSequence = sequence;
388
+ };
389
+ const refresh = async (resume = false) => {
390
+ const update = await history.readChangesSince(documentId, accepted?.view.head ?? null, maxEntriesToScan);
391
+ assertOpen();
392
+ const duplicate = accepted !== null && sameHead(accepted.view.head, update.view.head);
393
+ const bytes = duplicate ? acceptedBytes : await history.exportVersion(documentId, update.view.version.id);
394
+ assertOpen();
395
+ const wantLive = following || resume;
396
+ const changedContent = accepted === null
397
+ || accepted.view.state.snapshot.contentDigest.value !== update.view.state.snapshot.contentDigest.value
398
+ || accepted.view.state.epoch !== update.view.state.epoch;
399
+ if (wantLive && (changedContent || !following))
400
+ await paint(bytes, update.view.state.sequence);
401
+ else if (wantLive) {
402
+ // A tail can return to the same OPC content without an epoch change. The DOM need not
403
+ // change, but its logical position and exact downloadable checkpoint must still advance.
404
+ displayedBytes = bytes;
405
+ shownSequence = update.view.state.sequence;
406
+ }
407
+ assertOpen();
408
+ accepted = update;
409
+ acceptedBytes = bytes;
410
+ if (wantLive)
411
+ following = true;
412
+ return clone(update);
413
+ };
414
+ const showSequence = async (sequence) => {
415
+ const bytes = await history.materialize(documentId, sequence, maxEntriesToScan);
416
+ assertOpen();
417
+ await paint(bytes, sequence);
418
+ following = false;
419
+ };
420
+ const viewer = {
421
+ element: el,
422
+ get html() { return html; },
423
+ get head() { assertOpen(); return clone(accepted.view.head); },
424
+ get sequence() { return shownSequence; },
425
+ get following() { return following; },
426
+ refresh: () => enqueue(() => refresh()),
427
+ showSequence: (sequence) => enqueue(() => showSequence(sequence)),
428
+ showTime: (cutoff) => enqueue(async () => {
429
+ const sequence = await history.resolveSequenceAtTime(documentId, cutoff, maxEntriesToScan);
430
+ assertOpen();
431
+ await showSequence(sequence);
432
+ }),
433
+ resume: () => enqueue(() => refresh(true)),
434
+ exportDisplayed: () => { assertOpen(); return displayedBytes.slice(); },
435
+ destroy: () => {
436
+ if (closed)
437
+ return;
438
+ closed = true;
439
+ acceptedBytes = null;
440
+ displayedBytes = null;
441
+ mount.root.remove();
442
+ },
443
+ };
444
+ try {
445
+ await viewer.refresh();
446
+ return viewer;
447
+ }
448
+ catch (error) {
449
+ viewer.destroy();
450
+ throw error;
451
+ }
452
+ }
342
453
  /**
343
454
  * Open an editable DOCX editor in `container`.
344
455
  *
package/dist/embed.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"embed.js","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embed.js","sourceRoot":"","sources":["../src/embed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EACL,UAAU,EACV,cAAc,EACd,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,0EAA0E;AAC1E,yEAAyE;AACzE,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AASzC;;;;GAIG;AACH,MAAM,UAAU,GAAW,CAAC,GAAG,EAAE;IAC/B,IAAI,CAAC;QACH,MAAM,EAAE,GACN,OAAO,QAAQ,KAAK,WAAW;YAC7B,CAAC,CAAE,QAAQ,CAAC,aAA0C;YACtD,CAAC,CAAC,IAAI,CAAC;QACX,IAAI,EAAE,EAAE,GAAG;YAAE,OAAO,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC,EAAE,CAAC;AAEL;;;;GAIG;AACH,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAC5B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,UAAU,CAAC,YAAqB;IAC7C,IAAI,YAAY;QAAE,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,aAAa,EAAE,CAAC;IAC5B,IAAI,CAAC,GAAG;QAAE,OAAO,UAAU,EAAE,CAAC,CAAC,6CAA6C;IAC5E,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,SAA+B;IACvD,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAc,SAAS,CAAC,CAAC;IAC1D,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,SAAS,GAAG,CAAC,CAAC;IAC9E,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,6EAA6E;AAC7E,4EAA4E;AAC5E,gFAAgF;AAChF,6EAA6E;AAC7E,+EAA+E;AAC/E,2EAA2E;AAC3E,MAAM,eAAe,GAAG,0BAA0B,CAAC;AACnD,MAAM,iBAAiB,GAAG,4BAA4B,CAAC;AACvD,IAAI,eAAe,GAAG,CAAC,CAAC;AAOxB,SAAS,iBAAiB,CAAC,SAAsB;IAC/C,IAAI,EAAU,CAAC;IACf,GAAG,CAAC;QACF,EAAE,GAAG,IAAI,EAAE,eAAe,EAAE,CAAC;IAC/B,CAAC,QAAQ,QAAQ,CAAC,aAAa,CAAC,IAAI,eAAe,KAAK,EAAE,IAAI,CAAC,EAAE;IAEjE,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACvC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,eAAe,KAAK,EAAE,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED,kGAAkG;AAClG,SAAS,iBAAiB,CAAC,YAAoB;IAC7C,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,OAAO,GAAG,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,EAAE,KAAK,KAAK;gBAAE,KAAK,GAAG,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YAC7B,KAAK,GAAG,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG;YAAE,WAAW,EAAE,CAAC;aACzB,IAAI,EAAE,KAAK,GAAG;YAAE,WAAW,EAAE,CAAC;aAC9B,IAAI,EAAE,KAAK,GAAG;YAAE,QAAQ,EAAE,CAAC;aAC3B,IAAI,EAAE,KAAK,GAAG;YAAE,QAAQ,EAAE,CAAC;aAC3B,IAAI,EAAE,KAAK,GAAG,IAAI,WAAW,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC3D,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACpD,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACjD,OAAO,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB,EAAE,YAAoB;IAC3D,IAAI,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,2EAA2E;IAC3E,6EAA6E;IAC7E,wDAAwD;IACxD,SAAS,CAAC;QACR,MAAM,KAAK,GAAG,uCAAuC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK;YAAE,MAAM;QAClB,YAAY,GAAG,IAAI,CAAC;QACpB,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,UAAU,EAAE,CAAC;YACf,SAAS,GAAG,IAAI,CAAC;YACjB,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,KAAK,CAAC;YAClB,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,CAAC,YAAY;QAAE,OAAO,GAAG,YAAY,IAAI,SAAS,EAAE,CAAC;IACzD,IAAI,CAAC,SAAS;QAAE,OAAO,YAAY,CAAC;IACpC,IAAI,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,GAAG,YAAY,IAAI,SAAS,EAAE,CAAC;IACjF,OAAO,GAAG,YAAY,GAAG,SAAS,EAAE,CAAC;AACvC,CAAC;AAOD,SAAS,aAAa,CAAC,SAA0B,EAAE,YAAoB;IACrE,6EAA6E;IAC7E,8EAA8E;IAC9E,iDAAiD;IACjD,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;YACzE,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,IAAoB,CAAC;YACvC,SAAS,CAAC,YAAY,GAAG,iBAAiB,CAAC,SAAS,CAAC,YAAY,CAAC;iBAC/D,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;iBACxD,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,SAAS;QACX,CAAC;QACD,MAAM,QAAQ,GAAG,IAA0C,CAAC;QAC5D,IAAI,QAAQ,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACnE,aAAa,CAAC,QAA2B,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAuB,EAAE,YAAoB;IACtE,IAAI,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC;QAAE,OAAO;IAElD,6EAA6E;IAC7E,4EAA4E;IAC5E,8DAA8D;IAC9D,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAC7C,CAAC,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,KAA6B,CAAC;QACnD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QACvE,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACnC,KAAK,CAAC,YAAY,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,iDAAiD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB,EAAE,YAAoB;IACjE,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACtE,MAAM,CAAC,gBAAgB,CAAmB,OAAO,CAAC;SAC/C,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;IAC9D,OAAO,oBAAoB,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAChE,CAAC;AAED,6FAA6F;AAC7F,SAAS,yBAAyB,CAChC,OAA0B,EAC1B,YAAoB;IAEpB,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,yBAAyB,CAAC;IACpE,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAChD,8FAA8F;IAC9F,gGAAgG;IAChG,gGAAgG;IAChG,0CAA0C;IAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACrC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;IACvD,IAAI,mBAAmB,EAAE,CAAC;QACxB,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,CACvC,mBAAmB,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;IACD,6FAA6F;IAC7F,0FAA0F;IAC1F,8FAA8F;IAC9F,gGAAgG;IAChG,2DAA2D;IAC3D,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACjD,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,CAAC,gBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE,CACpC,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;IACjE,CAAC;IACD,OAAO;QACL,iBAAiB,EAAE,MAAM;QACzB,iBAAiB,EAAE;YACjB,yBAAyB,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE,CACrC,mBAAmB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,YAAY,CAAC;SACtD;KACF,CAAC;AACJ,CAAC;AAED,6CAA6C;AAC7C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAsB;IAC1D,IAAI,MAAM,YAAY,UAAU;QAAE,OAAO,MAAM,CAAC;IAChD,IAAI,MAAM,YAAY,WAAW;QAAE,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACjE,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,MAAM,YAAY,IAAI,EAAE,CAAC;QAC1D,OAAO,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,6CAA6C,MAAM,WAAW,QAAQ,CAAC,MAAM,GAAG,CACjF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACjE,CAAC;AAkBD,SAAS,sBAAsB,CAAC,KAAkB,EAAE,IAAY;IAC9D,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;IACnD,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;QAC5C,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;IACvC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAA+B,EAC/B,MAAsB,EACtB,UAA6B,EAAE;IAE/B,MAAM,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC;IAChD,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAEpC,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,EAAE,GAAmB,EAAE,IAAuB,EAAE,EAAE;QACpE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;QACzC,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE;YACxC,0BAA0B,EAAE,IAAI;YAChC,GAAG,IAAI;SACR,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC,CAAC;IAEF,MAAM,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjC,OAAO;QACL,OAAO,EAAE,EAAE;QACX,IAAI,IAAI;YACN,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,MAAM,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9D,OAAO,EAAE,GAAG,EAAE;YACZ,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC;AA0BD;;;;oGAIoG;AACpG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,SAA+B,EAAE,OAA0B,EACnG,UAAkB,EAAE,UAAoC,EAAE;IAC1D,MAAM,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,EAAE,YAAY,EAAE,gBAAgB,GAAG,KAAM,EAAE,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC;IAC3E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,IAAI,CAAC,IAAI,gBAAgB,GAAG,UAAU;QACnG,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;IACvD,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,QAAQ,GAA6B,IAAI,CAAC;IAC9C,IAAI,aAAa,GAAsB,IAAI,CAAC;IAC5C,IAAI,cAAc,GAAsB,IAAI,CAAC;IAC7C,IAAI,aAAa,GAAoB,GAAG,CAAC;IACzC,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAI,KAAQ,EAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,MAAM;YAAE,MAAM,IAAI,gBAAgB,CAAC,QAAQ,EAAE,8BAA8B,CAAC,CAAC;IACnF,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAI,MAAwB,EAAc,EAAE;QAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,CAAc,EAAE,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;WACzE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS;WAC1F,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IAEnD,MAAM,KAAK,GAAG,KAAK,EAAE,KAAiB,EAAE,QAAyB,EAAE,EAAE;QACnE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,EAAE,0BAA0B,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;QACrG,UAAU,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzD,0EAA0E;QAC1E,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,GAAG,QAAQ,CAAC;QAAC,cAAc,GAAG,KAAK,CAAC;QAAC,aAAa,GAAG,QAAQ,CAAC;IACpE,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAA8B,EAAE;QACnE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACzG,UAAU,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtF,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,aAAc,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3G,UAAU,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,SAAS,IAAI,MAAM,CAAC;QACrC,MAAM,cAAc,GAAG,QAAQ,KAAK,IAAI;eACnC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK;eACnG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC3D,IAAI,QAAQ,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC;YAAE,MAAM,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aAC1F,IAAI,QAAQ,EAAE,CAAC;YAClB,sFAAsF;YACtF,yFAAyF;YACzF,cAAc,GAAG,KAAK,CAAC;YAAC,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QACrE,CAAC;QACD,UAAU,EAAE,CAAC;QACb,QAAQ,GAAG,MAAM,CAAC;QAAC,aAAa,GAAG,KAAK,CAAC;QACzC,IAAI,QAAQ;YAAE,SAAS,GAAG,IAAI,CAAC;QAC/B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,KAAK,EAAE,QAAyB,EAAE,EAAE;QACvD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QAChF,UAAU,EAAE,CAAC;QACb,MAAM,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC7B,SAAS,GAAG,KAAK,CAAC;IACpB,CAAC,CAAC;IACF,MAAM,MAAM,GAAsB;QAChC,OAAO,EAAE,EAAE;QACX,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;QAC3B,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,QAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/D,IAAI,QAAQ,KAAK,OAAO,aAAa,CAAC,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC;QACrC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACjE,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YACvC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAC3F,UAAU,EAAE,CAAC;YACb,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,CAAC;QACF,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1C,eAAe,EAAE,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,OAAO,cAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxE,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,MAAM;gBAAE,OAAO;YACnB,MAAM,GAAG,IAAI,CAAC;YAAC,aAAa,GAAG,IAAI,CAAC;YAAC,cAAc,GAAG,IAAI,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;KACF,CAAC;IACF,IAAI,CAAC;QAAC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QAAC,OAAO,MAAM,CAAC;IAAC,CAAC;IAC9C,OAAO,KAAK,EAAE,CAAC;QAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAAC,MAAM,KAAK,CAAC;IAAC,CAAC;AAClD,CAAC;AAOD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAA+B,EAC/B,MAA8B,EAC9B,UAA+B,EAAE;IAEjC,MAAM,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACpC,2EAA2E;IAC3E,4DAA4D;IAC5D,MAAM,OAAO,GAAG,yBAAyB,CACvC,cAAc,EAAkC,EAChD,KAAK,CAAC,QAAQ,CACf,CAAC;IACF,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,IAAI;YACnB,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC;YAC1D,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACzF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAOD,uFAAuF;AACvF,SAAS,cAAc,CAAC,MAAyC;IAC/D,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;QACnG,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,SAAS,CAAC;IAC9C,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAA+B,EAC/B,MAA8B,EAC9B,UAAqC,EAAE;IAEvC,MAAM,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IACnD,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACpC,gFAAgF;IAChF,gFAAgF;IAChF,+EAA+E;IAC/E,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;IACjC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE;QACrC,YAAY,EAAE,aAAa,CAAC,YAAY,IAAI,cAAc,CAAC,MAAM,CAAC;QAClE,8EAA8E;QAC9E,0EAA0E;QAC1E,KAAK,EAAE,MAAM;QACb,GAAG,aAAa;QAChB,sEAAsE;QACtE,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;QAC/B,4EAA4E;QAC5E,wEAAwE;QACxE,MAAM,CAAC,UAAU,CACf,yBAAyB,CACvB,cAAc,EAAkC,EAChD,GAAG,KAAK,CAAC,QAAQ,qBAAqB,CACvC,CACF,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;QAEpE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;;YAC3D,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QAE9E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schema": "https://docxodus.dev/schemas/export/export-assets/v1",
3
3
  "schemaVersion": 1,
4
- "packageVersion": "12.1.0",
4
+ "packageVersion": "12.3.0",
5
5
  "assets": [
6
6
  {
7
7
  "path": "./docxodus.worker.js",
@@ -36,32 +36,32 @@
36
36
  {
37
37
  "path": "./wasm/_framework/DocumentFormat.OpenXml.Framework.wasm",
38
38
  "mediaType": "application/wasm",
39
- "byteLength": 366869,
40
- "sha256": "3d5b7ad69bffcb9517fdc9ce9b9591ae4bc91cf721c7262fc815074eaae7d216"
39
+ "byteLength": 367893,
40
+ "sha256": "a5bed4f1e476463870f86f1c491557bde79e41aa2d0547618e1ae17945cc5e17"
41
41
  },
42
42
  {
43
43
  "path": "./wasm/_framework/DocumentFormat.OpenXml.wasm",
44
44
  "mediaType": "application/wasm",
45
45
  "byteLength": 5212953,
46
- "sha256": "cc079bb1c838d74bfeab2f3956972f321001930f965eff8b2646c3b1c969cffe"
46
+ "sha256": "48668843e91d6c04832dea17fe7db03016302560a53aa5d11a586f52fea4641e"
47
47
  },
48
48
  {
49
49
  "path": "./wasm/_framework/Docxodus.wasm",
50
50
  "mediaType": "application/wasm",
51
- "byteLength": 3472665,
52
- "sha256": "f42c48646d24cf09d621c575e476731eaff7117a82c20a495b9378b5512957d8"
51
+ "byteLength": 4023577,
52
+ "sha256": "462062967aa6d6a7bf4003ae4a743de465c3a7819cd53d238056d2db18860e9c"
53
53
  },
54
54
  {
55
55
  "path": "./wasm/_framework/DocxodusWasm.wasm",
56
56
  "mediaType": "application/wasm",
57
- "byteLength": 491285,
58
- "sha256": "9600c0ac776615f0fea0aff0831b6f32a040f23932c5df6dd8f26ffb69a7775e"
57
+ "byteLength": 507669,
58
+ "sha256": "e62162fadea88ced9e30e8b9be94dd717fe79969ef0515b11aa01a4cc38e7105"
59
59
  },
60
60
  {
61
61
  "path": "./wasm/_framework/System.Collections.Concurrent.wasm",
62
62
  "mediaType": "application/wasm",
63
63
  "byteLength": 23829,
64
- "sha256": "2215ea6d01e8313b1104a5b95faf68dccec0a579b9f326ba3fa1cbb725e69b01"
64
+ "sha256": "c66981ef3497fc369fb144157fb048fcb28d54b4f6219dc01387d5f6f1ee4e9b"
65
65
  },
66
66
  {
67
67
  "path": "./wasm/_framework/System.Collections.Immutable.wasm",
@@ -84,8 +84,8 @@
84
84
  {
85
85
  "path": "./wasm/_framework/System.Collections.wasm",
86
86
  "mediaType": "application/wasm",
87
- "byteLength": 61717,
88
- "sha256": "1dc11541b69a254c8b41b267d02a7e02ebd0b809a4380cd7155f816b80124b2f"
87
+ "byteLength": 62229,
88
+ "sha256": "d8aba69be9b8c6bc4e2da673a10287ed479f4cd33a0423aa08292291729f8b9d"
89
89
  },
90
90
  {
91
91
  "path": "./wasm/_framework/System.ComponentModel.Primitives.wasm",
@@ -114,14 +114,14 @@
114
114
  {
115
115
  "path": "./wasm/_framework/System.IO.Compression.wasm",
116
116
  "mediaType": "application/wasm",
117
- "byteLength": 89877,
118
- "sha256": "48a4208dd7075f8343924246ee34b4e03061556d81dd15bcc37e7672d64ddc80"
117
+ "byteLength": 112917,
118
+ "sha256": "40c8f37b71f7f0429245bddc090660df4e7da9e5f4be9ebb790573161d8e725b"
119
119
  },
120
120
  {
121
121
  "path": "./wasm/_framework/System.IO.Packaging.wasm",
122
122
  "mediaType": "application/wasm",
123
123
  "byteLength": 88341,
124
- "sha256": "f6695960ff93c0bd4784ea8d2917bac879d8f070ac66a29128e234f56420c2ce"
124
+ "sha256": "336ff68a141b295922fd4e64d24874b3ac7ba7519965637de764edf4e14b22c5"
125
125
  },
126
126
  {
127
127
  "path": "./wasm/_framework/System.IO.Pipelines.wasm",
@@ -133,7 +133,7 @@
133
133
  "path": "./wasm/_framework/System.Linq.Expressions.wasm",
134
134
  "mediaType": "application/wasm",
135
135
  "byteLength": 75541,
136
- "sha256": "38a18382c6d86d7176621723a13f4cfa613e3285222f920613c5a1c3301ca2a8"
136
+ "sha256": "3e995b01db75188ddfbe1cd7d6a9c79a5e5157accae2c014c3f8e738a6c0d5d2"
137
137
  },
138
138
  {
139
139
  "path": "./wasm/_framework/System.Linq.wasm",
@@ -145,13 +145,13 @@
145
145
  "path": "./wasm/_framework/System.Memory.wasm",
146
146
  "mediaType": "application/wasm",
147
147
  "byteLength": 15637,
148
- "sha256": "f5fd6888f083cd0859e27da37798e5fb19d47a01792b240d3ed31bb81ce4103f"
148
+ "sha256": "932580e803adc1d782b98664ab4fc9322b44700d0cd3acd15f56b365a9ac0d3a"
149
149
  },
150
150
  {
151
151
  "path": "./wasm/_framework/System.Net.Http.wasm",
152
152
  "mediaType": "application/wasm",
153
- "byteLength": 138517,
154
- "sha256": "2deb253f2e7a57c6170367ca2ce761ec44330257a85252f6d06f9d9aee25ea4a"
153
+ "byteLength": 139029,
154
+ "sha256": "11a8214a232ccb048b1677eb7cae573db85590b5662a60ce6d4a87f151aa8867"
155
155
  },
156
156
  {
157
157
  "path": "./wasm/_framework/System.Net.Primitives.wasm",
@@ -168,8 +168,8 @@
168
168
  {
169
169
  "path": "./wasm/_framework/System.Private.CoreLib.wasm",
170
170
  "mediaType": "application/wasm",
171
- "byteLength": 1633045,
172
- "sha256": "4d684545efddaa892132c2a1ae289fd89d27fe1ade2faf55a371670c05990dae"
171
+ "byteLength": 1650965,
172
+ "sha256": "813b21d926c9350da8bd3e24fb3feed29826219a15ecd4c9abcac61bbba4405e"
173
173
  },
174
174
  {
175
175
  "path": "./wasm/_framework/System.Private.Uri.wasm",
@@ -181,31 +181,31 @@
181
181
  "path": "./wasm/_framework/System.Private.Xml.Linq.wasm",
182
182
  "mediaType": "application/wasm",
183
183
  "byteLength": 66837,
184
- "sha256": "7c0b4dc24daae58740211451c2d9a3a7a6fb1684819ee3eaa2271d1fb29aa4b1"
184
+ "sha256": "e552e04d433e84f3eab3ebdc03deb723e915f0872401beed920cbf7764845084"
185
185
  },
186
186
  {
187
187
  "path": "./wasm/_framework/System.Private.Xml.wasm",
188
188
  "mediaType": "application/wasm",
189
- "byteLength": 814357,
190
- "sha256": "6ea158996e13afeed46f4c0efc0a50c83bfc1c672fa79a4b09f1e8787b5f1186"
189
+ "byteLength": 893205,
190
+ "sha256": "373b21d63467cd116241edee5631e4b376a03cb04a40af30c843fce836723b83"
191
191
  },
192
192
  {
193
193
  "path": "./wasm/_framework/System.Runtime.InteropServices.JavaScript.wasm",
194
194
  "mediaType": "application/wasm",
195
195
  "byteLength": 43797,
196
- "sha256": "2492156b63e60d7a3bec8119d23650a55955736278a9d89a5ec112ac3cf67f9b"
196
+ "sha256": "32cdacd4bc6b19490dcff9ee0f3a5fc8cf59860e2b508d4c97b3ecb1963da73e"
197
197
  },
198
198
  {
199
199
  "path": "./wasm/_framework/System.Runtime.wasm",
200
200
  "mediaType": "application/wasm",
201
201
  "byteLength": 7957,
202
- "sha256": "764c94f1590d89ba55bbe20535febae25696c77cfcfcf51670120bd3f3899144"
202
+ "sha256": "98dcb93c81ebc5006cf53c1daaee5b645431fb82aaa232ebe8abea801b7ab090"
203
203
  },
204
204
  {
205
205
  "path": "./wasm/_framework/System.Security.Cryptography.wasm",
206
206
  "mediaType": "application/wasm",
207
- "byteLength": 24853,
208
- "sha256": "63d9e6254d97c673891492dd9b47f1fd163c9a38222aa0e22ec1ff41ea383e43"
207
+ "byteLength": 25365,
208
+ "sha256": "b13fda07394f658bfbc62baf960c66ed00273c4bc6b88f498f248974875c322d"
209
209
  },
210
210
  {
211
211
  "path": "./wasm/_framework/System.Text.Encodings.Web.wasm",
@@ -216,14 +216,14 @@
216
216
  {
217
217
  "path": "./wasm/_framework/System.Text.Json.wasm",
218
218
  "mediaType": "application/wasm",
219
- "byteLength": 313109,
220
- "sha256": "33be0ec5581bf3d2f06bea262a9df0744bd2b593d191b3e04063d652b35d94fe"
219
+ "byteLength": 319253,
220
+ "sha256": "2ac232862e33154b80d4dc738f5b5a696ee96f5d435de7cba804ecc1673350eb"
221
221
  },
222
222
  {
223
223
  "path": "./wasm/_framework/System.Text.RegularExpressions.wasm",
224
224
  "mediaType": "application/wasm",
225
225
  "byteLength": 258325,
226
- "sha256": "88efe9338e443be97fa945260e575d2074819b110376d105ab9da1af6ecb2828"
226
+ "sha256": "282a9d69941dce33ba2187a24789b751173f0d6fb0181372a2ba413ff8d8264c"
227
227
  },
228
228
  {
229
229
  "path": "./wasm/_framework/System.Xml.Linq.wasm",
@@ -247,7 +247,7 @@
247
247
  "path": "./wasm/_framework/dotnet.boot.js",
248
248
  "mediaType": "text/javascript",
249
249
  "byteLength": 9374,
250
- "sha256": "1d12c4a0fd969902b3072fa4763028263ec239199b69057061bd98192f1d6d12"
250
+ "sha256": "650f4e7f246dd2ee509849399ddda33f4d3ef840128d27ec265dc5d8592889f7"
251
251
  },
252
252
  {
253
253
  "path": "./wasm/_framework/dotnet.js",
@@ -264,8 +264,8 @@
264
264
  {
265
265
  "path": "./wasm/_framework/dotnet.native.wasm",
266
266
  "mediaType": "application/wasm",
267
- "byteLength": 8276254,
268
- "sha256": "363202acedd18abc01a91f7e9e3feb94367e4938e1f07ad9ba30778d519c41df"
267
+ "byteLength": 8549433,
268
+ "sha256": "8edd26071337e35bef463c79cc0cc1026d73ea3ac77e823661492e1fd4411b90"
269
269
  },
270
270
  {
271
271
  "path": "./wasm/_framework/dotnet.runtime.js",
@@ -0,0 +1,48 @@
1
+ import type { DocxHistoryDocument, DocxHistoryView, DocxVersionMetadata, HistoryBlobReference, HistoryHead } from './history.js';
2
+ /** Persist the entire request before publication. Bytes are structured-cloneable, not JSON. */
3
+ export type HistoryCheckpointRequest = {
4
+ id: string;
5
+ documentId: string;
6
+ metadata: DocxVersionMetadata;
7
+ } & ({
8
+ kind: 'save';
9
+ head: HistoryHead | null;
10
+ bytes: Uint8Array;
11
+ } | {
12
+ kind: 'restore';
13
+ head: HistoryHead;
14
+ target: HistoryBlobReference;
15
+ });
16
+ /** Host-owned durable outbox, scoped to one document. Methods resolve only after commit.
17
+ * put must atomically return the existing request or insert and return the supplied one.
18
+ * Existing inputs must never change, even for the same ID. remove must match the ID.
19
+ * Share exclusion between tabs/clients. Never clear an uncertain publication to start another. */
20
+ export interface HistoryCheckpointJournal {
21
+ read(): Promise<HistoryCheckpointRequest | null>;
22
+ put(request: HistoryCheckpointRequest): Promise<HistoryCheckpointRequest>;
23
+ remove(requestId: string): Promise<void>;
24
+ }
25
+ /** Explicit checkpoint commands. No editor ownership, timers, automatic retries or subscriptions.
26
+ * Keep this instance for the document's editing session; refresh only when the user requests it. */
27
+ export declare class HistoryCheckpoints {
28
+ readonly document: DocxHistoryDocument;
29
+ private readonly journal;
30
+ private current;
31
+ private request;
32
+ private running;
33
+ private stale;
34
+ private constructor();
35
+ /** Pass an already captured view when opening its exact version in an editor (for example, after import). */
36
+ static open(document: DocxHistoryDocument, journal: HistoryCheckpointJournal, view?: DocxHistoryView | null): Promise<HistoryCheckpoints>;
37
+ get view(): DocxHistoryView | null;
38
+ get hasPending(): boolean;
39
+ get needsRefresh(): boolean;
40
+ refresh(): Promise<DocxHistoryView | null>;
41
+ save(bytes: Uint8Array, metadata: DocxVersionMetadata): Promise<DocxHistoryView>;
42
+ restore(target: HistoryBlobReference, metadata: DocxVersionMetadata): Promise<DocxHistoryView>;
43
+ retry(): Promise<DocxHistoryView>;
44
+ private start;
45
+ private publish;
46
+ private exclusive;
47
+ }
48
+ //# sourceMappingURL=history-checkpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-checkpoints.d.ts","sourceRoot":"","sources":["../src/history-checkpoints.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEjI,+FAA+F;AAC/F,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,GAAG,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,CAAC,CAAC;AAE1E;;;kGAGkG;AAClG,MAAM,WAAW,wBAAwB;IACvC,IAAI,IAAI,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;IACjD,GAAG,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC1E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED;oGACoG;AACpG,qBAAa,kBAAkB;IAMT,QAAQ,CAAC,QAAQ,EAAE,mBAAmB;IAAE,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpF,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO;IAEP,6GAA6G;WAChG,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,wBAAwB,EAChF,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAW7D,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAA0C;IAC5E,IAAI,UAAU,IAAI,OAAO,CAAkC;IAC3D,IAAI,YAAY,IAAI,OAAO,CAAuB;IAE5C,OAAO,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAQ1C,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAKhF,OAAO,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAM9F,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;YAOzB,KAAK;YASL,OAAO;YA2BP,SAAS;CAKxB"}
@@ -0,0 +1,100 @@
1
+ import { DocxHistoryError } from './history.js';
2
+ /** Explicit checkpoint commands. No editor ownership, timers, automatic retries or subscriptions.
3
+ * Keep this instance for the document's editing session; refresh only when the user requests it. */
4
+ export class HistoryCheckpoints {
5
+ constructor(document, journal) {
6
+ this.document = document;
7
+ this.journal = journal;
8
+ this.current = null;
9
+ this.request = null;
10
+ this.running = false;
11
+ this.stale = false;
12
+ }
13
+ /** Pass an already captured view when opening its exact version in an editor (for example, after import). */
14
+ static async open(document, journal, view) {
15
+ const controls = new HistoryCheckpoints(document, journal);
16
+ controls.request = structuredClone(await journal.read());
17
+ if (controls.request && controls.request.documentId !== document.documentId)
18
+ throw new DocxHistoryError('InvalidRequest', 'The pending checkpoint belongs to another document.');
19
+ controls.current = view === undefined ? await document.read() : structuredClone(view);
20
+ if (controls.current && controls.current.state.documentId !== document.documentId)
21
+ throw new DocxHistoryError('InvalidRequest', 'The captured view belongs to another document.');
22
+ return controls;
23
+ }
24
+ get view() { return structuredClone(this.current); }
25
+ get hasPending() { return this.request !== null; }
26
+ get needsRefresh() { return this.stale; }
27
+ async refresh() {
28
+ return this.exclusive(async () => {
29
+ this.current = await this.document.read();
30
+ this.stale = false;
31
+ return this.view;
32
+ });
33
+ }
34
+ async save(bytes, metadata) {
35
+ return this.start({ kind: 'save', head: this.current?.head ?? null, bytes,
36
+ id: crypto.randomUUID(), documentId: this.document.documentId, metadata });
37
+ }
38
+ async restore(target, metadata) {
39
+ if (!this.current)
40
+ throw new DocxHistoryError('NotFound', 'Save a checkpoint before restoring a version.');
41
+ return this.start({ kind: 'restore', head: this.current.head, target,
42
+ id: crypto.randomUUID(), documentId: this.document.documentId, metadata });
43
+ }
44
+ async retry() {
45
+ return this.exclusive(async () => {
46
+ if (!this.request)
47
+ throw new DocxHistoryError('InvalidRequest', 'There is no pending checkpoint.');
48
+ return this.publish();
49
+ });
50
+ }
51
+ async start(request) {
52
+ return this.exclusive(async () => {
53
+ if (this.request)
54
+ throw new DocxHistoryError('PendingRequest', 'Retry the pending checkpoint first.');
55
+ if (this.stale)
56
+ throw new DocxHistoryError('StaleHead', 'Refresh history before saving again.');
57
+ this.request = structuredClone(request);
58
+ return this.publish();
59
+ });
60
+ }
61
+ async publish() {
62
+ const intended = this.request;
63
+ // Retry persistence too: an outbox acknowledgement can be lost independently of publication.
64
+ const request = await this.journal.put(structuredClone(intended));
65
+ this.request = structuredClone(request);
66
+ if (request.id !== intended.id)
67
+ throw new DocxHistoryError('PendingRequest', 'Another tab has a pending checkpoint. Retry it before saving your draft.');
68
+ let view;
69
+ try {
70
+ view = request.kind === 'save'
71
+ ? await this.document.createVersion(request.head, request.bytes, request.metadata, request.id)
72
+ : await this.document.restoreVersion(request.head, request.target, request.metadata, request.id);
73
+ }
74
+ catch (error) {
75
+ if (error instanceof DocxHistoryError && error.code === 'StaleHead') {
76
+ this.stale = true;
77
+ await this.journal.remove(request.id);
78
+ this.request = null;
79
+ }
80
+ throw error;
81
+ }
82
+ // Idempotent retries may return an older version. Retain that exact view, never substitute latest.
83
+ this.current = view;
84
+ await this.journal.remove(request.id);
85
+ this.request = null;
86
+ return this.view;
87
+ }
88
+ async exclusive(action) {
89
+ if (this.running)
90
+ throw new DocxHistoryError('Busy', 'A history command is still running.');
91
+ this.running = true;
92
+ try {
93
+ return await action();
94
+ }
95
+ finally {
96
+ this.running = false;
97
+ }
98
+ }
99
+ }
100
+ //# sourceMappingURL=history-checkpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-checkpoints.js","sourceRoot":"","sources":["../src/history-checkpoints.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { DocxHistoryReader, DocxHistoryView } from './history.js';
2
+ import type { HistoryCheckpoints } from './history-checkpoints.js';
3
+ export interface HistoryControlsOptions {
4
+ reader: DocxHistoryReader;
5
+ /** Omit for a read-only archive. Must belong to reader. */
6
+ checkpoints?: HistoryCheckpoints;
7
+ /** Capture the open draft on Save only. The panel never replaces editor content. */
8
+ capture?: () => Uint8Array | Promise<Uint8Array>;
9
+ author?: string;
10
+ documentName?: string;
11
+ /** Render in a separate preview; reject on failure, preserving the previous document. */
12
+ preview: (bytes: Uint8Array, title: string) => void | Promise<void>;
13
+ /** Defaults to a browser download. */
14
+ download?: (bytes: Uint8Array, filename: string) => void | Promise<void>;
15
+ /** Called after an acknowledged checkpoint, before the list refreshes. Retries may return an older view. */
16
+ onCheckpoint?: (view: DocxHistoryView, action: 'save' | 'restore' | 'retry') => void | Promise<void>;
17
+ pageSize?: number;
18
+ }
19
+ export interface HistoryControls {
20
+ readonly element: HTMLElement;
21
+ /** Initial metadata load. No document export or checkpoint is implicit. */
22
+ readonly ready: Promise<void>;
23
+ refresh(): Promise<void>;
24
+ /** Removes controls and awaits their active call. The host may then close its reader/client. */
25
+ destroy(): Promise<void>;
26
+ }
27
+ /** Mount explicit document-history controls. Persistence and preview/editor ownership stay with the host. */
28
+ export declare function mountHistoryControls(container: HTMLElement, options: HistoryControlsOptions): HistoryControls;
29
+ export declare function historyControlError(error: unknown, pending?: boolean): string;
30
+ //# sourceMappingURL=history-controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-controls.d.ts","sourceRoot":"","sources":["../src/history-controls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAgE,MAAM,cAAc,CAAC;AACrI,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,sCAAsC;IACtC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,4GAA4G;IAC5G,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,gGAAgG;IAChG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,6GAA6G;AAC7G,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAM7G;AAwOD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,UAAQ,GAAG,MAAM,CAU3E"}