@laminapdf/viewer 0.2.0-alpha.5 → 0.2.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 (91) hide show
  1. package/README.md +48 -6
  2. package/dist/client.d.ts +60 -4
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +219 -22
  5. package/dist/client.js.map +1 -1
  6. package/dist/edit/session.d.ts +113 -0
  7. package/dist/edit/session.d.ts.map +1 -0
  8. package/dist/edit/session.js +232 -0
  9. package/dist/edit/session.js.map +1 -0
  10. package/dist/edit-log.d.ts +37 -0
  11. package/dist/edit-log.d.ts.map +1 -0
  12. package/dist/edit-log.js +98 -0
  13. package/dist/edit-log.js.map +1 -0
  14. package/dist/find/controller.d.ts +6 -0
  15. package/dist/find/controller.d.ts.map +1 -1
  16. package/dist/find/controller.js +69 -2
  17. package/dist/find/controller.js.map +1 -1
  18. package/dist/history/history.d.ts +9 -0
  19. package/dist/history/history.d.ts.map +1 -1
  20. package/dist/history/history.js.map +1 -1
  21. package/dist/index.d.ts +9 -6
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +2 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/layers/link-layer.d.ts +33 -0
  26. package/dist/layers/link-layer.d.ts.map +1 -1
  27. package/dist/layers/link-layer.js +251 -3
  28. package/dist/layers/link-layer.js.map +1 -1
  29. package/dist/layers/link-preview.d.ts +77 -0
  30. package/dist/layers/link-preview.d.ts.map +1 -0
  31. package/dist/layers/link-preview.js +202 -0
  32. package/dist/layers/link-preview.js.map +1 -0
  33. package/dist/layers/text-layer.d.ts +7 -3
  34. package/dist/layers/text-layer.d.ts.map +1 -1
  35. package/dist/layers/text-layer.js +3 -5
  36. package/dist/layers/text-layer.js.map +1 -1
  37. package/dist/layout/page-layout.d.ts +7 -0
  38. package/dist/layout/page-layout.d.ts.map +1 -1
  39. package/dist/layout/page-layout.js +15 -0
  40. package/dist/layout/page-layout.js.map +1 -1
  41. package/dist/protocol.d.ts +145 -1
  42. package/dist/protocol.d.ts.map +1 -1
  43. package/dist/protocol.js +17 -2
  44. package/dist/protocol.js.map +1 -1
  45. package/dist/thumbnails/strip.d.ts.map +1 -1
  46. package/dist/thumbnails/strip.js +34 -1
  47. package/dist/thumbnails/strip.js.map +1 -1
  48. package/dist/view/previews.d.ts +47 -0
  49. package/dist/view/previews.d.ts.map +1 -0
  50. package/dist/view/previews.js +97 -0
  51. package/dist/view/previews.js.map +1 -0
  52. package/dist/view/viewer.d.ts +85 -7
  53. package/dist/view/viewer.d.ts.map +1 -1
  54. package/dist/view/viewer.js +347 -12
  55. package/dist/view/viewer.js.map +1 -1
  56. package/dist/worker/document.d.ts +56 -5
  57. package/dist/worker/document.d.ts.map +1 -1
  58. package/dist/worker/document.js +73 -2
  59. package/dist/worker/document.js.map +1 -1
  60. package/dist/worker/edit.d.ts +60 -0
  61. package/dist/worker/edit.d.ts.map +1 -0
  62. package/dist/worker/edit.js +383 -0
  63. package/dist/worker/edit.js.map +1 -0
  64. package/dist/worker/find.d.ts +2 -2
  65. package/dist/worker/find.d.ts.map +1 -1
  66. package/dist/worker/find.js +3 -3
  67. package/dist/worker/find.js.map +1 -1
  68. package/dist/worker/fingerprint.d.ts +10 -0
  69. package/dist/worker/fingerprint.d.ts.map +1 -0
  70. package/dist/worker/fingerprint.js +42 -0
  71. package/dist/worker/fingerprint.js.map +1 -0
  72. package/dist/worker/methods.d.ts.map +1 -1
  73. package/dist/worker/methods.js +34 -0
  74. package/dist/worker/methods.js.map +1 -1
  75. package/dist/worker/navigation.d.ts +2 -2
  76. package/dist/worker/navigation.d.ts.map +1 -1
  77. package/dist/worker/navigation.js +3 -3
  78. package/dist/worker/navigation.js.map +1 -1
  79. package/dist/worker/recent-pages.d.ts +2 -0
  80. package/dist/worker/recent-pages.d.ts.map +1 -1
  81. package/dist/worker/recent-pages.js +15 -0
  82. package/dist/worker/recent-pages.js.map +1 -1
  83. package/dist/worker/session.d.ts +61 -0
  84. package/dist/worker/session.d.ts.map +1 -0
  85. package/dist/worker/session.js +159 -0
  86. package/dist/worker/session.js.map +1 -0
  87. package/dist/worker/text.d.ts +2 -2
  88. package/dist/worker/text.d.ts.map +1 -1
  89. package/dist/worker/text.js +5 -4
  90. package/dist/worker/text.js.map +1 -1
  91. package/package.json +16 -10
@@ -1 +1 @@
1
- {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/worker/methods.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,+DAA+D;AAM/D,OAAO,EACL,aAAa,EACb,OAAO,EACP,eAAe,EACf,WAAW,EACX,YAAY,EACZ,SAAS,EACT,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE7F,2EAA2E;AAC3E,MAAM,CAAC,MAAM,aAAa,GAA8C;IACtE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAmB,CAAC,EAAE;IAClE,YAAY,EAAE;QACZ,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAC7C,YAAY,CAAC,MAAoB,EAAE,OAA4B,EAAE,MAAM,EAAE,MAA4B,CAAC;KACzG;IACD,eAAe,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,EAAE;IACjD,aAAa,EAAE;QACb,GAAG,EAAE,GAAG,EAAE;YACR,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,CAAC;YACf,WAAW,EAAE,CAAC;YACd,OAAO,aAAa,EAAE,CAAC;QACzB,CAAC;KACF;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAe,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACzE,CAAC;KACF;IACD,MAAM,EAAE;QACN,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,OAAwB,EAAE,EAAY,EAAE,MAAM,CAAC;QAC1F,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAmC,CAAC;KAC5D;IACD,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,EAAE;IACrC,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE;IACvC,QAAQ,EAAE;QACR,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAe,EAAE,MAAM,CAAC;QAC/D,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAuC,CAAC;KACpE;IACD,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;IAC9D,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;IACxD,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,KAAe,EAAE,MAAM,CAAC,EAAE;IACrF,IAAI,EAAE;QACJ,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAC3C,IAAI,CAAC,KAAe,EAAE,OAAsB,EAAE,KAA0B,EAAE,MAAM,CAAC;KACpF;IACD,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;IAC1D,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAc,EAAE,MAAM,CAAC,EAAE;IAC3F,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,KAAe,EAAE,MAAM,CAAC,EAAE;IAC/E,UAAU,EAAE;QACV,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;KACF;IACD,SAAS,EAAE;QACT,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,KAAe,EAAE,OAAuB,EAAE,MAAM,CAAC;KACnG;IACD,SAAS,EAAE;QACT,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC;QAC/C,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAmB,CAAC;KAClD;CACF,CAAC"}
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/worker/methods.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,6 @@ export declare function outline(signal: AbortSignal): Promise<OutlineNode[]>;
5
5
  export declare function namedDestination(name: string, signal: AbortSignal): Promise<Target | undefined>;
6
6
  /** Page `index`'s links, in annotation order (cached). */
7
7
  export declare function pageLinks(index: number, signal: AbortSignal): Promise<readonly PageLink[]>;
8
- /** Forgets every page's links: the document closed. */
9
- export declare function forgetLinks(): void;
8
+ /** Forgets `pages`' links (an edit changed them), or every page's (the document closed). */
9
+ export declare function forgetLinks(pages?: Iterable<number>): void;
10
10
  //# sourceMappingURL=navigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/worker/navigation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAOpE,gFAAgF;AAChF,wBAAsB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAGzE;AAED,kGAAkG;AAClG,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAGrG;AAED,0DAA0D;AAC1D,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAOhG;AAED,uDAAuD;AACvD,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/worker/navigation.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAOpE,gFAAgF;AAChF,wBAAsB,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAGzE;AAED,kGAAkG;AAClG,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAGrG;AAED,0DAA0D;AAC1D,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAOhG;AAED,4FAA4F;AAC5F,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAE1D"}
@@ -27,8 +27,8 @@ export async function pageLinks(index, signal) {
27
27
  links.set(index, read);
28
28
  return read;
29
29
  }
30
- /** Forgets every page's links: the document closed. */
31
- export function forgetLinks() {
32
- links.clear();
30
+ /** Forgets `pages`' links (an edit changed them), or every page's (the document closed). */
31
+ export function forgetLinks(pages) {
32
+ links.forget(pages);
33
33
  }
34
34
  //# sourceMappingURL=navigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/worker/navigation.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,kGAAkG;AAClG,mGAAmG;AACnG,gGAAgG;AAChG,cAAc;AAGd,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9D,6BAA6B;AAC7B,MAAM,KAAK,GAAG,IAAI,WAAW,CAAsB,YAAY,CAAC,CAAC;AAEjE,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAmB;IAC/C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAAmB;IACtE,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,MAAmB;IAChE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1E,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,WAAW;IACzB,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/worker/navigation.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,kGAAkG;AAClG,mGAAmG;AACnG,gGAAgG;AAChG,cAAc;AAGd,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9D,6BAA6B;AAC7B,MAAM,KAAK,GAAG,IAAI,WAAW,CAAsB,YAAY,CAAC,CAAC;AAEjE,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAmB;IAC/C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAAmB;IACtE,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,MAAmB;IAChE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1E,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,WAAW,CAAC,KAAwB;IAClD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,CAAC"}
@@ -8,6 +8,8 @@ export declare class RecentPages<T> {
8
8
  get(index: number): T | undefined;
9
9
  /** Keeps `value` for page `index` of the open document, letting the oldest go over the budget. */
10
10
  set(index: number, value: T): void;
11
+ /** Forgets `pages` of the open document (an edit changed them), or every page (the document closed). */
12
+ forget(pages?: Iterable<number>): void;
11
13
  /** Forgets every page: the document closed. */
12
14
  clear(): void;
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"recent-pages.d.ts","sourceRoot":"","sources":["../../src/worker/recent-pages.ts"],"names":[],"mappings":"AAOA,sGAAsG;AACtG,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,gFAAgF;AAChF,qBAAa,WAAW,CAAC,CAAC;;IAMxB,YAAY,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAgB,EAGhE;IAED,yFAAyF;IACzF,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAQhC;IAED,kGAAkG;IAClG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAYjC;IAED,+CAA+C;IAC/C,KAAK,IAAI,IAAI,CAGZ;CAKF"}
1
+ {"version":3,"file":"recent-pages.d.ts","sourceRoot":"","sources":["../../src/worker/recent-pages.ts"],"names":[],"mappings":"AAOA,sGAAsG;AACtG,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,gFAAgF;AAChF,qBAAa,WAAW,CAAC,CAAC;;IAMxB,YAAY,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAgB,EAGhE;IAED,yFAAyF;IACzF,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAQhC;IAED,kGAAkG;IAClG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAYjC;IAED,wGAAwG;IACxG,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAYrC;IAED,+CAA+C;IAC/C,KAAK,IAAI,IAAI,CAGZ;CAKF"}
@@ -41,6 +41,21 @@ export class RecentPages {
41
41
  this.#weight -= this.#weigh(kept);
42
42
  }
43
43
  }
44
+ /** Forgets `pages` of the open document (an edit changed them), or every page (the document closed). */
45
+ forget(pages) {
46
+ if (pages === undefined) {
47
+ this.clear();
48
+ return;
49
+ }
50
+ for (const index of pages) {
51
+ const key = this.#key(index);
52
+ const old = this.#entries.get(key);
53
+ if (old === undefined)
54
+ continue;
55
+ this.#entries.delete(key);
56
+ this.#weight -= this.#weigh(old);
57
+ }
58
+ }
44
59
  /** Forgets every page: the document closed. */
45
60
  clear() {
46
61
  this.#entries.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"recent-pages.js","sourceRoot":"","sources":["../../src/worker/recent-pages.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,iGAAiG;AACjG,mGAAmG;AACnG,qEAAqE;AAErE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,sGAAsG;AACtG,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAE/B,gFAAgF;AAChF,MAAM,OAAO,WAAW;IACb,QAAQ,GAAG,IAAI,GAAG,EAAa,CAAC;IAChC,OAAO,CAAS;IAChB,MAAM,CAAuB;IACtC,OAAO,GAAG,CAAC,CAAC;IAEZ,YAAY,MAAc,EAAE,KAAK,GAAyB,GAAG,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,yFAAyF;IACzF,GAAG,CAAC,KAAa;QACf,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kGAAkG;IAClG,GAAG,CAAC,KAAa,EAAE,KAAQ;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;gBAAE,MAAM;YACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,KAAa;QAChB,OAAO,GAAG,OAAO,EAAE,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"recent-pages.js","sourceRoot":"","sources":["../../src/worker/recent-pages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { type EditHistory, type EditStep, type RevertedStep } from "../protocol.js";
2
+ /** One document's history. */
3
+ export interface Session {
4
+ /** The steps kept, oldest first. */
5
+ readonly steps: EditStep[];
6
+ /** How many of `steps` are done. */
7
+ position: number;
8
+ /** How many of the oldest steps the depth limit dropped. */
9
+ dropped: number;
10
+ /** The absolute position of the last save (0: the file as opened); undefined once it is on no path from here. */
11
+ saved: number | undefined;
12
+ /** The next step's ID. */
13
+ nextId: number;
14
+ /** The most steps kept. */
15
+ readonly depth: number;
16
+ }
17
+ /** An empty history for a document just opened, keeping `depth` steps. */
18
+ export declare function newSession(depth?: number): Session;
19
+ /** What the interface reads of `session`. */
20
+ export declare function historyOf(session: Session, diverged: boolean): EditHistory;
21
+ /**
22
+ * Forgets the steps undone: a new transaction cleared the model's redo stack. A save among them
23
+ * can no longer be reached.
24
+ */
25
+ export declare function clearRedo(session: Session): void;
26
+ /** Records a transaction the model committed: the steps undone go, and the oldest past the depth. */
27
+ export declare function record(session: Session, label: string, pages: readonly number[], time: number): EditStep;
28
+ /** How the model's undo or redo of one step went. */
29
+ export type Outcome = RevertedStep["outcome"];
30
+ /**
31
+ * Moves back over the newest done step, which the model just undid with `outcome`. A skipped
32
+ * undo restored nothing and left no redo entry: the step goes, and the document stays where it
33
+ * was, after it.
34
+ */
35
+ export declare function stepBack(session: Session, outcome: Outcome): RevertedStep;
36
+ /**
37
+ * Moves forward over the oldest undone step, which the model just redid with `outcome`. A skipped
38
+ * redo left no undo entry: the step goes, and the document stays where it was, before it.
39
+ */
40
+ export declare function stepForward(session: Session, outcome: Outcome): RevertedStep;
41
+ /**
42
+ * Takes out step `index`, which the model no longer has. Its two states become one: after it for
43
+ * an undo that restored nothing, before it for such a redo; the other can't be reached.
44
+ */
45
+ export declare function removeStep(session: Session, index: number, way: "undo" | "redo"): void;
46
+ /**
47
+ * Undoes or redoes steps until `target` of them are done, calling `revert` for each move (which
48
+ * makes it in the model and says how it went); `done` collects each move as it is made, so a
49
+ * caller can take them back when one fails. A skipped redo takes its step out without moving the
50
+ * position, so the target, among the steps after it, is one lower.
51
+ */
52
+ export declare function walkTo(session: Session, target: number, revert: (way: "undo" | "redo") => Promise<Outcome>, done: RevertedStep[]): Promise<void>;
53
+ /** Records the document now as the one saved, for a save that writes the file. */
54
+ export declare function markSaved(session: Session): void;
55
+ /** Empties the history and records the document now as the one saved: a save that couldn't keep it. */
56
+ export declare function clearHistory(session: Session): void;
57
+ /** A copy of `session` to go back to when a move fails half way. */
58
+ export declare function snapshot(session: Session): Session;
59
+ /** Puts `session` back as `kept` was. */
60
+ export declare function restore(session: Session, kept: Session): void;
61
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/worker/session.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAiB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnG,8BAA8B;AAC9B,MAAM,WAAW,OAAO;IACtB,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC3B,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,iHAAiH;IACjH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,KAAK,SAAgB,GAAG,OAAO,CAEzD;AAKD,6CAA6C;AAC7C,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,WAAW,CAQ1E;AAWD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAGhD;AAED,qGAAqG;AACrG,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAWxG;AAED,qDAAqD;AACrD,MAAM,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;AAE9C;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAWzE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,YAAY,CAU5E;AAUD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAStF;AAED;;;;;GAKG;AACH,wBAAsB,MAAM,CAC1B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAClD,IAAI,EAAE,YAAY,EAAE,GACnB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEhD;AAED,uGAAuG;AACvG,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAKnD;AAED,oEAAoE;AACpE,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAElD;AAED,yCAAyC;AACzC,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAO7D"}
@@ -0,0 +1,159 @@
1
+ // The edit session's history (E1 plan §5, ADR 0006 §4 and §7): what the interface lists of the op
2
+ // log the model keeps. The model holds the undo records; this holds a step per transaction, with
3
+ // its label, pages and time, and where the document stands among them. edit.ts moves both
4
+ // together, so the steps done are always the model's undo stack and the steps undone its redo
5
+ // stack, up to the same depth.
6
+ //
7
+ // Positions are counted from the document as opened: position p (absolute) is the state after the
8
+ // p-th step ever made. `saved` is the absolute position the last save wrote, so the semantic dirty
9
+ // state is the distance from it, even once the depth limit has dropped the steps back to it (undo
10
+ // can't reach it then, but every step since still counts). It is lost when the saved document is
11
+ // on no path from here any more: a new edit cleared the steps that led to it, or one was skipped.
12
+ import { HISTORY_DEPTH } from "../protocol.js";
13
+ /** An empty history for a document just opened, keeping `depth` steps. */
14
+ export function newSession(depth = HISTORY_DEPTH) {
15
+ return { steps: [], position: 0, dropped: 0, saved: 0, nextId: 1, depth };
16
+ }
17
+ /** The absolute position the document is at. */
18
+ const at = (session) => session.dropped + session.position;
19
+ /** What the interface reads of `session`. */
20
+ export function historyOf(session, diverged) {
21
+ return {
22
+ steps: [...session.steps],
23
+ position: session.position,
24
+ dropped: session.dropped,
25
+ unsaved: unsaved(session),
26
+ diverged,
27
+ };
28
+ }
29
+ /**
30
+ * Transactions between the document now and the saved one: the distance between their positions,
31
+ * or, with the saved document on no path from here, every step done (at least one: it differs).
32
+ */
33
+ function unsaved(session) {
34
+ if (session.saved === undefined)
35
+ return Math.max(1, session.position);
36
+ return Math.abs(at(session) - session.saved);
37
+ }
38
+ /**
39
+ * Forgets the steps undone: a new transaction cleared the model's redo stack. A save among them
40
+ * can no longer be reached.
41
+ */
42
+ export function clearRedo(session) {
43
+ session.steps.length = session.position;
44
+ if (session.saved !== undefined && session.saved > at(session))
45
+ session.saved = undefined;
46
+ }
47
+ /** Records a transaction the model committed: the steps undone go, and the oldest past the depth. */
48
+ export function record(session, label, pages, time) {
49
+ clearRedo(session);
50
+ const step = { id: session.nextId++, label, pages: [...pages], at: time };
51
+ session.steps.push(step);
52
+ session.position += 1;
53
+ while (session.steps.length > session.depth) {
54
+ session.steps.shift();
55
+ session.position -= 1;
56
+ session.dropped += 1;
57
+ }
58
+ return step;
59
+ }
60
+ /**
61
+ * Moves back over the newest done step, which the model just undid with `outcome`. A skipped
62
+ * undo restored nothing and left no redo entry: the step goes, and the document stays where it
63
+ * was, after it.
64
+ */
65
+ export function stepBack(session, outcome) {
66
+ const index = session.position - 1;
67
+ const step = session.steps[index];
68
+ if (step === undefined)
69
+ throw new Error("there is no step to undo");
70
+ if (outcome === "skipped") {
71
+ // The state before the step can't be reached any more; the one after it is where we are.
72
+ removeStep(session, index, "undo");
73
+ return { step, way: "undo", outcome };
74
+ }
75
+ session.position -= 1;
76
+ return { step: mark(session, index, "undo", outcome), way: "undo", outcome };
77
+ }
78
+ /**
79
+ * Moves forward over the oldest undone step, which the model just redid with `outcome`. A skipped
80
+ * redo left no undo entry: the step goes, and the document stays where it was, before it.
81
+ */
82
+ export function stepForward(session, outcome) {
83
+ const index = session.position;
84
+ const step = session.steps[index];
85
+ if (step === undefined)
86
+ throw new Error("there is no step to redo");
87
+ if (outcome === "skipped") {
88
+ removeStep(session, index, "redo");
89
+ return { step, way: "redo", outcome };
90
+ }
91
+ session.position += 1;
92
+ return { step: mark(session, index, "redo", outcome), way: "redo", outcome };
93
+ }
94
+ /** Marks step `index` partly restored by its `way`, or not, after an undo or redo that went `outcome`. */
95
+ function mark(session, index, way, outcome) {
96
+ const { partial: _, ...step } = session.steps[index];
97
+ const next = outcome === "partial" ? { ...step, partial: way } : step;
98
+ session.steps[index] = next;
99
+ return next;
100
+ }
101
+ /**
102
+ * Takes out step `index`, which the model no longer has. Its two states become one: after it for
103
+ * an undo that restored nothing, before it for such a redo; the other can't be reached.
104
+ */
105
+ export function removeStep(session, index, way) {
106
+ const before = session.dropped + index;
107
+ session.steps.splice(index, 1);
108
+ if (index < session.position)
109
+ session.position -= 1;
110
+ const { saved } = session;
111
+ if (saved === undefined)
112
+ return;
113
+ const lost = way === "undo" ? before : before + 1;
114
+ if (saved === lost)
115
+ session.saved = undefined;
116
+ else if (saved > before)
117
+ session.saved = saved - 1;
118
+ }
119
+ /**
120
+ * Undoes or redoes steps until `target` of them are done, calling `revert` for each move (which
121
+ * makes it in the model and says how it went); `done` collects each move as it is made, so a
122
+ * caller can take them back when one fails. A skipped redo takes its step out without moving the
123
+ * position, so the target, among the steps after it, is one lower.
124
+ */
125
+ export async function walkTo(session, target, revert, done) {
126
+ let goal = Math.max(0, Math.min(session.steps.length, Math.trunc(target)));
127
+ while (session.position !== goal) {
128
+ const way = session.position > goal ? "undo" : "redo";
129
+ const outcome = await revert(way);
130
+ done.push(way === "undo" ? stepBack(session, outcome) : stepForward(session, outcome));
131
+ if (way === "redo" && outcome === "skipped")
132
+ goal -= 1;
133
+ }
134
+ }
135
+ /** Records the document now as the one saved, for a save that writes the file. */
136
+ export function markSaved(session) {
137
+ session.saved = at(session);
138
+ }
139
+ /** Empties the history and records the document now as the one saved: a save that couldn't keep it. */
140
+ export function clearHistory(session) {
141
+ session.steps.length = 0;
142
+ session.position = 0;
143
+ session.dropped = 0;
144
+ session.saved = 0;
145
+ }
146
+ /** A copy of `session` to go back to when a move fails half way. */
147
+ export function snapshot(session) {
148
+ return { ...session, steps: [...session.steps] };
149
+ }
150
+ /** Puts `session` back as `kept` was. */
151
+ export function restore(session, kept) {
152
+ session.steps.length = 0;
153
+ session.steps.push(...kept.steps);
154
+ session.position = kept.position;
155
+ session.dropped = kept.dropped;
156
+ session.saved = kept.saved;
157
+ session.nextId = kept.nextId;
158
+ }
159
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/worker/session.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,6 @@ export declare function reflow(signal: AbortSignal): Promise<Reflow>;
20
20
  * blocks of their own: a selection that takes them in copies them.
21
21
  */
22
22
  export declare function readingOrder(index: number, signal: AbortSignal): Promise<ReadingBlock[]>;
23
- /** Forgets every page's text: the document closed. */
24
- export declare function forgetText(): void;
23
+ /** Forgets `pages`' text (an edit changed them), or every page's (the document closed). */
24
+ export declare function forgetText(pages?: Iterable<number>): void;
25
25
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/worker/text.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAe,MAAM,gBAAgB,CAAC;AAO7F,gGAAgG;AAChG,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAGxF;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,UAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBrG;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAG5E;AAED,sFAAsF;AACtF,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAK3E;AAED,4GAA4G;AAC5G,wBAAsB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjE;AAKD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAW9F;AAED,sDAAsD;AACtD,wBAAgB,UAAU,IAAI,IAAI,CAGjC"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/worker/text.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAe,MAAM,gBAAgB,CAAC;AAO7F,gGAAgG;AAChG,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAGxF;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,UAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBrG;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CAG5E;AAED,sFAAsF;AACtF,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAK3E;AAED,4GAA4G;AAC5G,wBAAsB,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAGjE;AAKD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAW9F;AAED,2FAA2F;AAC3F,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAIzD"}
@@ -74,9 +74,10 @@ export async function readingOrder(index, signal) {
74
74
  blocks.set(index, found);
75
75
  return found;
76
76
  }
77
- /** Forgets every page's text: the document closed. */
78
- export function forgetText() {
79
- cache.clear();
80
- blocks.clear();
77
+ /** Forgets `pages`' text (an edit changed them), or every page's (the document closed). */
78
+ export function forgetText(pages) {
79
+ const list = pages === undefined ? undefined : [...pages];
80
+ cache.forget(list);
81
+ blocks.forget(list);
81
82
  }
82
83
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/worker/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../src/worker/text.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@laminapdf/viewer",
3
- "version": "0.2.0-alpha.5",
4
- "description": "The web reader's framework-free viewer core (ADR 0009). Part 1 (C3a): one document worker per document, hosting @laminapdf/sdk and a RenderBackend, behind a typed RPC that extends @laminapdf/sdk/worker with priorities, coalescing, cancellation, timeouts and restart.",
3
+ "version": "0.2.0",
4
+ "description": "A PDF viewer for the web with no UI framework inside: smooth scrolling through long documents, sharp pages at any zoom, and parsing and rendering in a Web Worker, off the main thread.",
5
5
  "license": "MIT OR Apache-2.0",
6
6
  "homepage": "https://laminapdf.com",
7
+ "bugs": {
8
+ "url": "https://github.com/laudebugs/laminapdf/issues"
9
+ },
7
10
  "repository": {
8
11
  "type": "git",
9
12
  "url": "git+https://github.com/laudebugs/laminapdf.git",
@@ -13,7 +16,10 @@
13
16
  "pdf",
14
17
  "viewer",
15
18
  "pdf-viewer",
16
- "canvas"
19
+ "pdf-reader",
20
+ "canvas",
21
+ "web-worker",
22
+ "zoom"
17
23
  ],
18
24
  "type": "module",
19
25
  "sideEffects": false,
@@ -31,19 +37,19 @@
31
37
  "./package.json": "./package.json"
32
38
  },
33
39
  "dependencies": {
34
- "@laminapdf/sdk": "0.2.0-alpha.5",
35
- "@laminapdf/render": "0.2.0-alpha.5",
36
- "@laminapdf/render-hayro": "0.2.0-alpha.5",
37
- "@laminapdf/render-pdfium": "0.2.0-alpha.5"
40
+ "@laminapdf/sdk": "0.2.0",
41
+ "@laminapdf/render": "0.2.0",
42
+ "@laminapdf/render-hayro": "0.2.0",
43
+ "@laminapdf/render-pdfium": "0.2.0"
38
44
  },
39
45
  "devDependencies": {
40
46
  "@embedpdf/pdfium": "2.15.1",
41
- "@types/node": "26.6.5",
42
- "@vitest/browser-playwright": "5.0.5",
47
+ "@types/node": "26.6.6",
48
+ "@vitest/browser-playwright": "5.1.0",
43
49
  "playwright": "1.64.1",
44
50
  "typescript": "7.0.2",
45
51
  "vite": "8.3.5",
46
- "vitest": "5.0.5",
52
+ "vitest": "5.1.0",
47
53
  "@laminapdf/test-utils": "0.0.0"
48
54
  },
49
55
  "publishConfig": {