@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":"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,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,OAAO,EACP,OAAO,GAIR,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAQL,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;AAkExE,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,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,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,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IACvC,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,IAAI,CAAC,SAAS,EAAE,CAAC;IACxB,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,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;YAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,SAAS,EAAE,aAAa,KAAK,IAAI,EAAE,CAAC;oBAC3C,mEAAmE;oBACnE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;oBACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;oBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;wBACzF,QAAQ,EAAE,QAAQ,CAAC,QAAQ;qBAC5B,CAAC,CAAmB,CAAC;oBACtB,mFAAmF;oBACnF,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACnD,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvD,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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"}
@@ -0,0 +1,113 @@
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
+ /** Why the document can't be edited now. */
4
+ export type EditBlock =
5
+ /** No document is open. */
6
+ "no-document"
7
+ /** It is encrypted: its edits can't be written yet (E11 adds encrypting on save). */
8
+ | "encrypted"
9
+ /** An edit failed and couldn't be undone: it must be opened again. */
10
+ | "diverged";
11
+ /** What the edit session's interface reads. */
12
+ export interface EditSessionState {
13
+ readonly history: EditHistory;
14
+ /** A call is running, or waiting for the one before it. */
15
+ readonly busy: boolean;
16
+ /** Why editing is blocked; undefined when it isn't. */
17
+ readonly blocked: EditBlock | undefined;
18
+ /** The last undo or redo that left part of a step (or all of it) alone, until the next edit. */
19
+ readonly notice: RevertedStep | undefined;
20
+ /** How long the last call took from the call to its pages redrawn, in ms (E1 plan §6's measure). */
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;
24
+ }
25
+ /** What the session drives: the viewer's edit calls, which redraw the pages they touch. */
26
+ export interface EditSessionHost {
27
+ applyEdit(ops: readonly Op[], options: {
28
+ readonly label: string;
29
+ }): Promise<EditResult>;
30
+ undoEdit(): Promise<EditResult>;
31
+ redoEdit(): Promise<EditResult>;
32
+ goToStep(position: number): Promise<EditResult>;
33
+ /** The worker's history now, read after a call failed (a failed edit can clear the steps undone). */
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>;
41
+ }
42
+ /** Called after an undo or redo, with each step it took back or made again. */
43
+ export type RevertListener = (reverted: readonly RevertedStep[]) => void;
44
+ /** A call of the session that failed: which, the edit's label for an edit, and why. */
45
+ export interface EditFailure {
46
+ readonly call: "apply" | "undo" | "redo" | "goTo";
47
+ readonly label?: string;
48
+ readonly error: unknown;
49
+ }
50
+ /** Called when a call failed, so the interface can say so: nothing else reports it. */
51
+ export type FailureListener = (failure: EditFailure) => void;
52
+ /**
53
+ * A session with no document, which can do nothing: what an interface reads while none is open,
54
+ * in place of a store of its own.
55
+ */
56
+ export declare const CLOSED_SESSION: {
57
+ /** The closed state: no steps, nothing unsaved, edits blocked. */
58
+ readonly getState: () => EditSessionState;
59
+ /** Never calls `listener`: a closed session doesn't change. */
60
+ readonly subscribe: (_listener: () => void) => (() => void);
61
+ /** Does nothing. */
62
+ readonly undo: () => Promise<undefined>;
63
+ /** Does nothing. */
64
+ readonly redo: () => Promise<undefined>;
65
+ /** Does nothing. */
66
+ readonly goTo: (_position: number) => Promise<undefined>;
67
+ };
68
+ /** The open document's edit session (`viewer.edits`). */
69
+ export declare class EditSession {
70
+ #private;
71
+ constructor(host: EditSessionHost, now?: () => number);
72
+ /** The session now: its history, whether a call is running, and why edits are blocked, if they are. */
73
+ getState: () => EditSessionState;
74
+ /** Calls `listener` whenever the state changes; returns the function that stops it. */
75
+ subscribe: (listener: () => void) => (() => void);
76
+ /** Calls `listener` after each undo or redo, with what it did; returns the function that stops it. */
77
+ onReverted(listener: RevertListener): () => void;
78
+ /**
79
+ * Calls `listener` when a call fails (the edit, undo, redo or move changed nothing); returns the
80
+ * function that stops it. The call's promise rejects too.
81
+ */
82
+ onFailed(listener: FailureListener): () => void;
83
+ /** Starts over for `document` (undefined: none is open). */
84
+ reset(document: OpenedDocument | undefined): void;
85
+ /**
86
+ * Takes a history the worker gave outside a call of this session: a restarted worker's replay,
87
+ * or an empty one when the edits were lost.
88
+ */
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>;
104
+ /** Applies `ops` as one step named `label` ("Rotate page 5"). Rejects as the edit failed. */
105
+ apply(ops: readonly Op[], label: string): Promise<EditResult>;
106
+ /** Undoes the newest done step; resolves undefined when there was none. */
107
+ undo(): Promise<EditResult | undefined>;
108
+ /** Redoes the oldest undone step; resolves undefined when there was none. */
109
+ redo(): Promise<EditResult | undefined>;
110
+ /** Undoes or redoes steps until `position` of them are done, in one call. */
111
+ goTo(position: number): Promise<EditResult | undefined>;
112
+ }
113
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/edit/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,232 @@
1
+ // The edit session as the page sees it (E1 plan §5): a store of the open document's history, which
2
+ // the worker holds, and the calls that change it. Calls run one after another in the order they
3
+ // were made, so three quick presses of Undo undo three steps; each redraws the pages it touched
4
+ // before the next starts. The store's state is what an interface reads: the steps, whether a call
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). 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.
9
+ import { EMPTY_HISTORY, } from "../protocol.js";
10
+ const CLOSED = {
11
+ history: EMPTY_HISTORY,
12
+ busy: false,
13
+ blocked: "no-document",
14
+ notice: undefined,
15
+ lastMs: undefined,
16
+ saving: false,
17
+ };
18
+ /**
19
+ * A session with no document, which can do nothing: what an interface reads while none is open,
20
+ * in place of a store of its own.
21
+ */
22
+ export const CLOSED_SESSION = {
23
+ /** The closed state: no steps, nothing unsaved, edits blocked. */
24
+ getState: () => CLOSED,
25
+ /** Never calls `listener`: a closed session doesn't change. */
26
+ subscribe: (_listener) => () => undefined,
27
+ /** Does nothing. */
28
+ undo: () => Promise.resolve(undefined),
29
+ /** Does nothing. */
30
+ redo: () => Promise.resolve(undefined),
31
+ /** Does nothing. */
32
+ goTo: (_position) => Promise.resolve(undefined),
33
+ };
34
+ /** The open document's edit session (`viewer.edits`). */
35
+ export class EditSession {
36
+ #host;
37
+ #listeners = new Set();
38
+ #reverted = new Set();
39
+ #failed = new Set();
40
+ #state = CLOSED;
41
+ /** The calls waiting, the newest last: each starts when the one before it settles. */
42
+ #queue = Promise.resolve();
43
+ #waiting = 0;
44
+ /** Counts documents, so an answer for one since replaced changes nothing. */
45
+ #turn = 0;
46
+ #now;
47
+ constructor(host, now = () => performance.now()) {
48
+ this.#host = host;
49
+ this.#now = now;
50
+ }
51
+ /** The session now: its history, whether a call is running, and why edits are blocked, if they are. */
52
+ getState = () => this.#state;
53
+ /** Calls `listener` whenever the state changes; returns the function that stops it. */
54
+ subscribe = (listener) => {
55
+ this.#listeners.add(listener);
56
+ return () => this.#listeners.delete(listener);
57
+ };
58
+ /** Calls `listener` after each undo or redo, with what it did; returns the function that stops it. */
59
+ onReverted(listener) {
60
+ this.#reverted.add(listener);
61
+ return () => this.#reverted.delete(listener);
62
+ }
63
+ /**
64
+ * Calls `listener` when a call fails (the edit, undo, redo or move changed nothing); returns the
65
+ * function that stops it. The call's promise rejects too.
66
+ */
67
+ onFailed(listener) {
68
+ this.#failed.add(listener);
69
+ return () => this.#failed.delete(listener);
70
+ }
71
+ /** Starts over for `document` (undefined: none is open). */
72
+ reset(document) {
73
+ this.#turn += 1;
74
+ this.#set({
75
+ history: EMPTY_HISTORY,
76
+ blocked: document === undefined ? "no-document" : document.encrypted ? "encrypted" : undefined,
77
+ notice: undefined,
78
+ lastMs: undefined,
79
+ saving: false,
80
+ });
81
+ }
82
+ /**
83
+ * Takes a history the worker gave outside a call of this session: a restarted worker's replay,
84
+ * or an empty one when the edits were lost.
85
+ */
86
+ follow(history) {
87
+ this.#set({ history, ...(history.diverged ? { blocked: "diverged" } : {}) });
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
+ }
138
+ /** Applies `ops` as one step named `label` ("Rotate page 5"). Rejects as the edit failed. */
139
+ apply(ops, label) {
140
+ return this.#run(() => this.#host.applyEdit(ops, { label }), true, { call: "apply", label });
141
+ }
142
+ /** Undoes the newest done step; resolves undefined when there was none. */
143
+ undo() {
144
+ return this.#run(() => (this.#state.history.position > 0 ? this.#host.undoEdit() : undefined), false, {
145
+ call: "undo",
146
+ });
147
+ }
148
+ /** Redoes the oldest undone step; resolves undefined when there was none. */
149
+ redo() {
150
+ // Read once the calls before it are done: an undo queued just before makes a step to redo.
151
+ return this.#run(() => {
152
+ const { history } = this.#state;
153
+ return history.position < history.steps.length ? this.#host.redoEdit() : undefined;
154
+ }, false, { call: "redo" });
155
+ }
156
+ /** Undoes or redoes steps until `position` of them are done, in one call. */
157
+ goTo(position) {
158
+ return this.#run(() => (position === this.#state.history.position ? undefined : this.#host.goToStep(position)), false, { call: "goTo" });
159
+ }
160
+ /**
161
+ * Runs `call` after the calls before it, unless editing is blocked by then; takes its history.
162
+ * An edit (`clears`) drops the last partial undo's notice.
163
+ */
164
+ #run(call, clears, what) {
165
+ const turn = this.#turn;
166
+ this.#waiting += 1;
167
+ this.#set({ busy: true });
168
+ const run = this.#queue.then(async () => {
169
+ const { blocked } = this.#state;
170
+ if (turn !== this.#turn)
171
+ throw new Error("the document was closed");
172
+ if (blocked !== undefined)
173
+ throw new Error(`the document can't be edited: ${blocked}`);
174
+ const started = this.#now();
175
+ try {
176
+ const result = await call();
177
+ if (result !== undefined && turn === this.#turn)
178
+ this.#took(result, clears, this.#now() - started);
179
+ return result;
180
+ }
181
+ catch (error) {
182
+ await this.#failedCall(turn, { ...what, error });
183
+ throw error;
184
+ }
185
+ });
186
+ const settled = run.finally(() => {
187
+ this.#waiting -= 1;
188
+ if (this.#waiting === 0)
189
+ this.#set({ busy: false });
190
+ });
191
+ this.#queue = settled.catch(() => undefined);
192
+ return run;
193
+ }
194
+ /** After a failed call: the worker's history read again, and the failure told to the listeners. */
195
+ async #failedCall(turn, failure) {
196
+ await this.#reread(turn);
197
+ if (turn !== this.#turn)
198
+ return;
199
+ for (const listener of [...this.#failed])
200
+ listener(failure);
201
+ }
202
+ /** Reads the worker's history after a failed call; a document that diverged blocks editing. */
203
+ async #reread(turn) {
204
+ try {
205
+ const history = await this.#host.editHistory();
206
+ if (turn === this.#turn)
207
+ this.follow(history);
208
+ }
209
+ catch {
210
+ // The document went (closed, or the worker restarted): its own reset or replay follows.
211
+ }
212
+ }
213
+ #took(result, clears, ms) {
214
+ const reverted = result.reverted ?? [];
215
+ const notice = [...reverted].reverse().find((step) => step.outcome !== "applied");
216
+ this.#set({
217
+ history: result.history,
218
+ lastMs: ms,
219
+ ...(clears ? { notice: undefined } : notice === undefined ? {} : { notice }),
220
+ ...(result.history.diverged ? { blocked: "diverged" } : {}),
221
+ });
222
+ if (reverted.length > 0)
223
+ for (const listener of [...this.#reverted])
224
+ listener(reverted);
225
+ }
226
+ #set(next) {
227
+ this.#state = { ...this.#state, ...next };
228
+ for (const listener of [...this.#listeners])
229
+ listener();
230
+ }
231
+ }
232
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/edit/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { Op } from "@laminapdf/sdk";
2
+ import { type EditHistory, type EditResult, type ReplayedStep } from "./protocol.js";
3
+ /** The steps of the open document's edit session and how many of them are undone. */
4
+ export declare class EditLog {
5
+ #private;
6
+ /** The history the worker last answered. */
7
+ get history(): EditHistory;
8
+ /** Whether there is anything a new worker would lose. */
9
+ get empty(): boolean;
10
+ /** Forgets everything: a document opened, closed, or its edits lost. */
11
+ reset(): void;
12
+ /**
13
+ * A save wrote the document as `history` has it, and a new worker opens that file: every step
14
+ * so far is in it, so the log starts over from here.
15
+ */
16
+ saved(history: EditHistory): void;
17
+ /**
18
+ * Takes the worker's answer to a call: an edit's `ops` under the step it made, the oldest steps
19
+ * the depth limit dropped kept apart (they are still part of the document, so a replay needs
20
+ * them), and the steps the answer no longer lists forgotten.
21
+ */
22
+ take(result: EditResult, edit?: {
23
+ readonly ops: readonly Op[];
24
+ readonly label: string;
25
+ }): void;
26
+ /**
27
+ * What a new worker replays: every step, then how many of the newest to undo; undefined when
28
+ * the replay couldn't reproduce the document (a partial or skipped undo or redo).
29
+ */
30
+ replay(): {
31
+ readonly steps: readonly ReplayedStep[];
32
+ readonly undone: number;
33
+ } | undefined;
34
+ /** Takes a new worker's answer to the replay: its steps have new IDs, in the same order. */
35
+ replayed(result: EditResult): void;
36
+ }
37
+ //# sourceMappingURL=edit-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-log.d.ts","sourceRoot":"","sources":["../src/edit-log.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAiB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAOpG,qFAAqF;AACrF,qBAAa,OAAO;;IAkBlB,4CAA4C;IAC5C,IAAI,OAAO,IAAI,WAAW,CAEzB;IAED,yDAAyD;IACzD,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,wEAAwE;IACxE,KAAK,IAAI,IAAI,CAMZ;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAIhC;IAED;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAkB7F;IAED;;;OAGG;IACH,MAAM,IAAI;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAQzF;IAED,4FAA4F;IAC5F,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAIjC;CACF"}
@@ -0,0 +1,98 @@
1
+ // What the page keeps of an edit session so a restarted worker can take it back (ViewerClient's
2
+ // restart): the ops of every step still in the document, with their labels and times, and the
3
+ // history the worker last answered. The worker holds the session itself; this copy only ever
4
+ // replays it into a new worker, which applies the steps again and undoes the undone ones. After a
5
+ // save, the new worker opens the saved file, so only the steps since the save are replayed.
6
+ import { EMPTY_HISTORY } from "./protocol.js";
7
+ /** The steps of the open document's edit session and how many of them are undone. */
8
+ export class EditLog {
9
+ /** The steps the depth limit dropped from the history, oldest first: still part of the document. */
10
+ #dropped = [];
11
+ /** The history's steps, oldest first. */
12
+ #steps = [];
13
+ #history = EMPTY_HISTORY;
14
+ /**
15
+ * Whether applying the steps again reproduces the document: not once an undo or redo restored
16
+ * only part of a step, or nothing (a later change kept its value), since the replay can't
17
+ * recreate the change that made it so.
18
+ */
19
+ #replayable = true;
20
+ /**
21
+ * The absolute position of the last save this log saw (`saved`), whose file a new worker opens:
22
+ * the steps before it are in that file. Undefined while the file is the one opened.
23
+ */
24
+ #savedAt;
25
+ /** The history the worker last answered. */
26
+ get history() {
27
+ return this.#history;
28
+ }
29
+ /** Whether there is anything a new worker would lose. */
30
+ get empty() {
31
+ return this.#dropped.length === 0 && this.#steps.length === 0;
32
+ }
33
+ /** Forgets everything: a document opened, closed, or its edits lost. */
34
+ reset() {
35
+ this.#dropped = [];
36
+ this.#steps = [];
37
+ this.#history = EMPTY_HISTORY;
38
+ this.#replayable = true;
39
+ this.#savedAt = undefined;
40
+ }
41
+ /**
42
+ * A save wrote the document as `history` has it, and a new worker opens that file: every step
43
+ * so far is in it, so the log starts over from here.
44
+ */
45
+ saved(history) {
46
+ this.reset();
47
+ this.#history = history;
48
+ this.#savedAt = history.dropped + history.position;
49
+ }
50
+ /**
51
+ * Takes the worker's answer to a call: an edit's `ops` under the step it made, the oldest steps
52
+ * the depth limit dropped kept apart (they are still part of the document, so a replay needs
53
+ * them), and the steps the answer no longer lists forgotten.
54
+ */
55
+ take(result, edit) {
56
+ if (result.reverted?.some((step) => step.outcome !== "applied"))
57
+ this.#replayable = false;
58
+ const { steps, dropped } = result.history;
59
+ const newest = steps.at(-1);
60
+ if (edit !== undefined && newest !== undefined && !this.#steps.some((s) => s.id === newest.id)) {
61
+ this.#steps.push({ id: newest.id, ops: edit.ops, label: newest.label, at: newest.at });
62
+ }
63
+ // The depth limit dropped the oldest steps of the last answer, as many as `dropped` grew by:
64
+ // still part of the document, so a replay needs those this log holds (since a save, the older
65
+ // ones are in the saved file). A step gone otherwise was cleared by a new edit.
66
+ const newlyDropped = Math.max(0, dropped - this.#history.dropped);
67
+ const droppedIds = new Set(this.#history.steps.slice(0, newlyDropped).map((s) => s.id));
68
+ for (const { id, ops, label, at } of this.#steps)
69
+ if (droppedIds.has(id))
70
+ this.#dropped.push({ ops, label, at });
71
+ const kept = new Set(steps.map((s) => s.id));
72
+ this.#steps = this.#steps.filter((s) => kept.has(s.id));
73
+ // Undone past the save: the steps it would take apply to a file the new worker never opens.
74
+ if (this.#savedAt !== undefined && dropped + result.history.position < this.#savedAt)
75
+ this.#replayable = false;
76
+ this.#history = result.history;
77
+ }
78
+ /**
79
+ * What a new worker replays: every step, then how many of the newest to undo; undefined when
80
+ * the replay couldn't reproduce the document (a partial or skipped undo or redo).
81
+ */
82
+ replay() {
83
+ if (!this.#replayable)
84
+ return undefined;
85
+ const { steps, position, dropped } = this.#history;
86
+ const logged = [...this.#dropped, ...this.#steps.map(({ ops, label, at }) => ({ ops, label, at }))];
87
+ // Since a save, the steps done are those past its position.
88
+ const undone = this.#savedAt === undefined ? steps.length - position : logged.length - (dropped + position - this.#savedAt);
89
+ return { steps: logged, undone };
90
+ }
91
+ /** Takes a new worker's answer to the replay: its steps have new IDs, in the same order. */
92
+ replayed(result) {
93
+ const ids = result.history.steps.map((s) => s.id);
94
+ this.#steps = this.#steps.map((step, i) => ({ ...step, id: ids[i] ?? step.id }));
95
+ this.#history = result.history;
96
+ }
97
+ }
98
+ //# sourceMappingURL=edit-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-log.js","sourceRoot":"","sources":["../src/edit-log.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,12 @@ export declare class FindController {
67
67
  matches: readonly (readonly number[])[];
68
68
  current: number | undefined;
69
69
  };
70
+ /**
71
+ * Searches `pages` again for the query (an edit changed their text, or turned them), replacing
72
+ * their matches without moving the view. While a search runs, they are searched again once it
73
+ * ends, since it may have read them before the edit.
74
+ */
75
+ refresh(pages: readonly number[]): void;
70
76
  /** Stops the search and drops the results: a new document opened. */
71
77
  reset(): void;
72
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/find/controller.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAK7C,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,iEAAiE;IACjE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,wGAAwG;IACxG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B;AAED,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,IAAI,CACF,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;IACtC,SAAS,IAAI,MAAM,CAAC;IACpB,WAAW,IAAI,MAAM,CAAC;IACtB,kFAAkF;IAClF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACrD,uCAAuC;IACvC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACvC;AAoBD,gEAAgE;AAChE,qBAAa,cAAc;;IAYzB,YAAY,IAAI,EAAE,QAAQ,EAEzB;IAED,yDAAyD;IACzD,QAAQ,QAAO,SAAS,CAAgB;IAExC,mHAAmH;IACnH,SAAS,aAAc,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAG9C;IAEF,kGAAkG;IAClG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,IAAI,CAanD;IAED,mEAAmE;IACnE,IAAI,IAAI,IAAI,CAEX;IAED,sEAAsE;IACtE,QAAQ,IAAI,IAAI,CAEf;IAED,+FAA+F;IAC/F,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1B;IAED;;;OAGG;IACH,OAAO,IAAI,SAAS,UAAU,EAAE,CAQ/B;IAED,4DAA4D;IAC5D,KAAK,IAAI,IAAI,CAEZ;IAED,6EAA6E;IAC7E,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAKhG;IAED,qEAAqE;IACrE,KAAK,IAAI,IAAI,CAMZ;CAsHF"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/find/controller.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAK7C,+DAA+D;AAC/D,MAAM,WAAW,SAAS;IACxB,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uGAAuG;IACvG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2BAA2B;IAC3B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,iEAAiE;IACjE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,wGAAwG;IACxG,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B;AAED,8DAA8D;AAC9D,MAAM,WAAW,QAAQ;IACvB,IAAI,CACF,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;IACtC,SAAS,IAAI,MAAM,CAAC;IACpB,WAAW,IAAI,MAAM,CAAC;IACtB,kFAAkF;IAClF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACrD,uCAAuC;IACvC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACvC;AAoBD,gEAAgE;AAChE,qBAAa,cAAc;;IAczB,YAAY,IAAI,EAAE,QAAQ,EAEzB;IAED,yDAAyD;IACzD,QAAQ,QAAO,SAAS,CAAgB;IAExC,mHAAmH;IACnH,SAAS,aAAc,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAG9C;IAEF,kGAAkG;IAClG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,IAAI,CAcnD;IAED,mEAAmE;IACnE,IAAI,IAAI,IAAI,CAEX;IAED,sEAAsE;IACtE,QAAQ,IAAI,IAAI,CAEf;IAED,+FAA+F;IAC/F,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1B;IAED;;;OAGG;IACH,OAAO,IAAI,SAAS,UAAU,EAAE,CAQ/B;IAED,4DAA4D;IAC5D,KAAK,IAAI,IAAI,CAEZ;IAED,6EAA6E;IAC7E,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAKhG;IAED;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CActC;IAED,qEAAqE;IACrE,KAAK,IAAI,IAAI,CAOZ;CA0JF"}