edytor 1.0.0-rc.2 → 1.0.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 (653) hide show
  1. package/README.md +65 -25
  2. package/dist/block/block.svelte.d.ts +10 -85
  3. package/dist/block/block.svelte.js +47 -141
  4. package/dist/block/colors.d.ts +0 -9
  5. package/dist/block/colors.js +1 -18
  6. package/dist/block/contentRange.d.ts +5 -1
  7. package/dist/block/contentRange.js +15 -16
  8. package/dist/block/inlineBlock.svelte.d.ts +8 -10
  9. package/dist/block/inlineBlock.svelte.js +14 -22
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.d.ts +6 -1
  13. package/dist/clipboard/htmlFlow.js +26 -13
  14. package/dist/clipboard/insertClipboardFragment.js +5 -4
  15. package/dist/clipboard/moveText.js +16 -8
  16. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  17. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  18. package/dist/cloudflare/DocumentRoom.d.ts +22 -17
  19. package/dist/cloudflare/DocumentRoom.js +10 -5
  20. package/dist/cloudflare/index.d.ts +1 -1
  21. package/dist/cloudflare/index.js +1 -1
  22. package/dist/cloudflare/move.d.ts +1 -18
  23. package/dist/cloudflare/move.js +2 -48
  24. package/dist/cloudflare/room/admission.d.ts +1 -60
  25. package/dist/cloudflare/room/admission.js +25 -29
  26. package/dist/cloudflare/room/comments.d.ts +1 -3
  27. package/dist/cloudflare/room/comments.js +6 -6
  28. package/dist/cloudflare/room/context.d.ts +20 -82
  29. package/dist/cloudflare/room/context.js +8 -8
  30. package/dist/cloudflare/room/forged.d.ts +1 -1
  31. package/dist/cloudflare/room/forged.js +2 -12
  32. package/dist/cloudflare/room/frames.d.ts +1 -1
  33. package/dist/cloudflare/room/frames.js +1 -1
  34. package/dist/cloudflare/room/history.d.ts +1 -25
  35. package/dist/cloudflare/room/history.js +39 -54
  36. package/dist/cloudflare/room/moves.d.ts +1 -13
  37. package/dist/cloudflare/room/moves.js +33 -57
  38. package/dist/cloudflare/room/presence.d.ts +1 -11
  39. package/dist/cloudflare/room/presence.js +4 -4
  40. package/dist/cloudflare/room/purge.d.ts +1 -2
  41. package/dist/cloudflare/room/purge.js +2 -2
  42. package/dist/cloudflare/room/replicas.d.ts +1 -7
  43. package/dist/cloudflare/room/replicas.js +2 -2
  44. package/dist/cloudflare/room/storage.d.ts +9 -30
  45. package/dist/cloudflare/room/storage.js +52 -104
  46. package/dist/cloudflare/room/updates.d.ts +4 -4
  47. package/dist/cloudflare/room/updates.js +17 -24
  48. package/dist/cloudflare/room/validation.d.ts +1 -5
  49. package/dist/cloudflare/room/validation.js +16 -37
  50. package/dist/collaboration/RemoteSelections.svelte +13 -17
  51. package/dist/collaboration/comments/client.d.ts +2 -2
  52. package/dist/collaboration/comments/client.js +1 -1
  53. package/dist/collaboration/history/index.d.ts +5 -5
  54. package/dist/collaboration/history/index.js +5 -5
  55. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  56. package/dist/collaboration/history/panel.svelte.js +223 -0
  57. package/dist/collaboration/providers.d.ts +12 -3
  58. package/dist/collaboration/providers.js +5 -4
  59. package/dist/components/Block.svelte +160 -119
  60. package/dist/components/Block.svelte.d.ts +8 -3
  61. package/dist/components/Content.svelte +91 -44
  62. package/dist/components/CustomMark.svelte +46 -0
  63. package/dist/components/CustomMark.svelte.d.ts +11 -0
  64. package/dist/components/Edytor.svelte +80 -95
  65. package/dist/components/Edytor.svelte.d.ts +8 -12
  66. package/dist/components/InlineBlock.svelte +4 -9
  67. package/dist/components/Mark.svelte +46 -35
  68. package/dist/components/Mark.svelte.d.ts +7 -0
  69. package/dist/components/Ranges.svelte +96 -0
  70. package/dist/components/Ranges.svelte.d.ts +19 -0
  71. package/dist/components/Suggestion.svelte +3 -2
  72. package/dist/components/Text.svelte +48 -14
  73. package/dist/components/Text.svelte.d.ts +1 -1
  74. package/dist/crdt/admission.d.ts +2 -9
  75. package/dist/crdt/admission.js +3 -9
  76. package/dist/crdt/attribution/attribution.d.ts +11 -72
  77. package/dist/crdt/attribution/attribution.js +5 -52
  78. package/dist/crdt/attribution/block.d.ts +0 -78
  79. package/dist/crdt/attribution/block.js +1 -144
  80. package/dist/crdt/data.d.ts +8 -13
  81. package/dist/crdt/data.js +30 -70
  82. package/dist/crdt/doc/anchors.js +4 -4
  83. package/dist/crdt/doc/content.d.ts +5 -1
  84. package/dist/crdt/doc/content.js +3 -1
  85. package/dist/crdt/doc/delete.d.ts +1 -0
  86. package/dist/crdt/doc/funnel.d.ts +0 -23
  87. package/dist/crdt/doc/funnel.js +34 -85
  88. package/dist/crdt/doc/gate.d.ts +8 -9
  89. package/dist/crdt/doc/gate.js +7 -17
  90. package/dist/crdt/doc/history.d.ts +87 -14
  91. package/dist/crdt/doc/history.js +334 -149
  92. package/dist/crdt/doc/layout.d.ts +0 -1
  93. package/dist/crdt/doc/layout.js +2 -3
  94. package/dist/crdt/doc/meta.d.ts +4 -4
  95. package/dist/crdt/doc/meta.js +10 -21
  96. package/dist/crdt/doc/moves.d.ts +4 -4
  97. package/dist/crdt/doc/moves.js +5 -5
  98. package/dist/crdt/doc/plan.d.ts +2 -0
  99. package/dist/crdt/doc/plan.js +2 -0
  100. package/dist/crdt/doc/reads.d.ts +1 -5
  101. package/dist/crdt/doc/reads.js +38 -49
  102. package/dist/crdt/doc/seed.d.ts +15 -6
  103. package/dist/crdt/doc/seed.js +27 -26
  104. package/dist/crdt/doc/split-merge.d.ts +1 -3
  105. package/dist/crdt/doc/split-merge.js +4 -5
  106. package/dist/crdt/doc/steps.d.ts +3 -7
  107. package/dist/crdt/doc/steps.js +20 -9
  108. package/dist/crdt/doc/types.d.ts +0 -10
  109. package/dist/crdt/document.d.ts +24 -115
  110. package/dist/crdt/document.js +207 -305
  111. package/dist/crdt/edytor-doc.d.ts +671 -90
  112. package/dist/crdt/edytor-doc.js +73 -149
  113. package/dist/crdt/engine-api.d.ts +15 -47
  114. package/dist/crdt/engine.d.ts +7 -17
  115. package/dist/crdt/engine.js +9 -19
  116. package/dist/crdt/flow.d.ts +9 -37
  117. package/dist/crdt/flow.js +260 -238
  118. package/dist/crdt/index.d.ts +26 -85
  119. package/dist/crdt/index.js +21 -47
  120. package/dist/crdt/operations.d.ts +24 -33
  121. package/dist/crdt/operations.js +7 -17
  122. package/dist/crdt/placement/display.d.ts +0 -2
  123. package/dist/crdt/placement/display.js +0 -15
  124. package/dist/crdt/placement/model.d.ts +160 -12
  125. package/dist/crdt/placement/model.js +413 -414
  126. package/dist/crdt/placement/rank.d.ts +1 -5
  127. package/dist/crdt/placement/rank.js +28 -38
  128. package/dist/crdt/protocol.d.ts +4 -5
  129. package/dist/crdt/protocol.js +3 -4
  130. package/dist/crdt/protocols/awareness.d.ts +3 -7
  131. package/dist/crdt/protocols/awareness.js +17 -33
  132. package/dist/crdt/protocols/envelope.d.ts +9 -29
  133. package/dist/crdt/protocols/envelope.js +8 -25
  134. package/dist/crdt/protocols/sync.d.ts +15 -30
  135. package/dist/crdt/protocols/sync.js +27 -89
  136. package/dist/crdt/providers/bound.d.ts +3 -1
  137. package/dist/crdt/providers/bound.js +3 -1
  138. package/dist/crdt/providers/container.d.ts +11 -17
  139. package/dist/crdt/providers/container.js +39 -27
  140. package/dist/crdt/providers/index.d.ts +34 -6
  141. package/dist/crdt/providers/index.js +106 -111
  142. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  143. package/dist/crdt/providers/indexeddb.js +29 -90
  144. package/dist/crdt/providers/room.d.ts +58 -2
  145. package/dist/crdt/providers/room.js +38 -21
  146. package/dist/crdt/providers/websocket.d.ts +1 -1
  147. package/dist/crdt/providers/websocket.js +3 -4
  148. package/dist/crdt/purge.d.ts +2 -2
  149. package/dist/crdt/purge.js +69 -6
  150. package/dist/crdt/rangeDelete.d.ts +4 -42
  151. package/dist/crdt/rangeDelete.js +7 -6
  152. package/dist/crdt/restore.d.ts +21 -1
  153. package/dist/crdt/restore.js +54 -59
  154. package/dist/crdt/schema.d.ts +2 -2
  155. package/dist/crdt/schema.js +4 -5
  156. package/dist/crdt/semantics.d.ts +10 -15
  157. package/dist/crdt/semantics.js +22 -21
  158. package/dist/crdt/storage.d.ts +7 -13
  159. package/dist/crdt/storage.js +10 -24
  160. package/dist/crdt/structs.d.ts +42 -47
  161. package/dist/crdt/structs.js +76 -67
  162. package/dist/crdt/tables.d.ts +9 -0
  163. package/dist/crdt/tables.js +20 -0
  164. package/dist/crdt/text/delete-index.d.ts +0 -13
  165. package/dist/crdt/text/delete-index.js +7 -14
  166. package/dist/crdt/text/deletes.d.ts +9 -22
  167. package/dist/crdt/text/deletes.js +11 -74
  168. package/dist/crdt/text/index/cache.js +3 -3
  169. package/dist/crdt/text/index/fold.d.ts +1 -2
  170. package/dist/crdt/text/index/fold.js +15 -10
  171. package/dist/crdt/text/index/layout.d.ts +0 -10
  172. package/dist/crdt/text/index/layout.js +6 -20
  173. package/dist/crdt/text/index/records.js +2 -1
  174. package/dist/crdt/text/index/report.js +5 -6
  175. package/dist/crdt/text/index/shared.d.ts +11 -4
  176. package/dist/crdt/text/index/shared.js +8 -7
  177. package/dist/crdt/text/index/state.d.ts +3 -33
  178. package/dist/crdt/text/index/state.js +2 -4
  179. package/dist/crdt/text/model.d.ts +82 -2
  180. package/dist/crdt/text/model.js +344 -354
  181. package/dist/crdt/text/rows.d.ts +0 -2
  182. package/dist/crdt/text/rows.js +0 -11
  183. package/dist/crdt/text/runs.d.ts +6 -3
  184. package/dist/crdt/text/runs.js +132 -137
  185. package/dist/crdt/text/streams.d.ts +1 -1
  186. package/dist/crdt/text/streams.js +1 -1
  187. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  188. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  189. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  190. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  191. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  193. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  194. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  195. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  196. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  197. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  198. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  199. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  200. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  201. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  202. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  203. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  204. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  205. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  206. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  207. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  208. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  209. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  210. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  211. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  213. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  214. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  216. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  217. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  218. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  219. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  220. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  221. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  222. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  223. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  224. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  225. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  226. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  227. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  228. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  229. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  230. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  231. package/dist/{plugins/blockHandles → dnd}/autoScroll.d.ts +2 -1
  232. package/dist/{plugins/blockHandles → dnd}/autoScroll.js +3 -3
  233. package/dist/dnd/pragmatic.d.ts +4 -22
  234. package/dist/dnd/pragmatic.js +7 -26
  235. package/dist/dnd/track.d.ts +14 -0
  236. package/dist/dnd/track.js +55 -0
  237. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  238. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  239. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  242. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  243. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.d.ts +36 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  302. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  303. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  304. package/dist/edytor.svelte.d.ts +34 -64
  305. package/dist/edytor.svelte.js +118 -180
  306. package/dist/events/beforeInputCommands.d.ts +6 -11
  307. package/dist/events/beforeInputCommands.js +189 -184
  308. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  309. package/dist/events/beforeInputDeleteCommands.js +153 -204
  310. package/dist/events/domTextOffset.d.ts +9 -9
  311. package/dist/events/domTextOffset.js +20 -48
  312. package/dist/events/events.utils.d.ts +0 -2
  313. package/dist/events/events.utils.js +0 -4
  314. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  315. package/dist/events/nativeInteractiveControl.js +28 -56
  316. package/dist/events/onBeforeInput.d.ts +6 -1
  317. package/dist/events/onBeforeInput.js +207 -331
  318. package/dist/events/onCopy.js +1 -5
  319. package/dist/events/onDrop.d.ts +7 -1
  320. package/dist/events/onDrop.js +33 -72
  321. package/dist/events/onFocus.d.ts +9 -4
  322. package/dist/events/onFocus.js +92 -72
  323. package/dist/events/onInput.d.ts +8 -4
  324. package/dist/events/onInput.js +34 -147
  325. package/dist/events/onKeyDown.js +55 -122
  326. package/dist/events/onPaste.d.ts +13 -1
  327. package/dist/events/onPaste.js +46 -76
  328. package/dist/index.d.ts +10 -13
  329. package/dist/index.js +3 -3
  330. package/dist/kinds.d.ts +4 -6
  331. package/dist/kinds.js +28 -27
  332. package/dist/labels.d.ts +91 -314
  333. package/dist/labels.js +180 -396
  334. package/dist/plugins/Chrome.svelte +29 -0
  335. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  336. package/dist/plugins/Control.svelte +23 -0
  337. package/dist/plugins/Control.svelte.d.ts +30 -0
  338. package/dist/plugins/anchored.svelte.d.ts +47 -0
  339. package/dist/plugins/anchored.svelte.js +73 -0
  340. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  341. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  342. package/dist/plugins/bands.svelte.d.ts +57 -0
  343. package/dist/plugins/bands.svelte.js +95 -0
  344. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -151
  345. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  346. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +63 -97
  347. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +247 -268
  348. package/dist/plugins/blockHandles/BlockHandles.svelte +46 -29
  349. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  350. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +29 -23
  351. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -162
  352. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  353. package/dist/plugins/blockHandles/dragPreview.js +20 -17
  354. package/dist/plugins/blockHandles/dropIndicator.js +52 -60
  355. package/dist/plugins/blockHandles/geometry.d.ts +46 -1
  356. package/dist/plugins/blockHandles/geometry.js +51 -4
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +59 -28
  358. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +180 -105
  359. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  360. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  361. package/dist/plugins/brand.d.ts +8 -0
  362. package/dist/plugins/brand.js +8 -0
  363. package/dist/plugins/chrome.d.ts +79 -0
  364. package/dist/plugins/chrome.js +87 -0
  365. package/dist/plugins/code/CodeHeader.svelte +12 -58
  366. package/dist/plugins/code/CodeHeader.svelte.d.ts +1 -0
  367. package/dist/plugins/code/CodePlugin.svelte +75 -56
  368. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  369. package/dist/plugins/code/LanguageMenu.svelte +25 -0
  370. package/dist/plugins/code/LanguageMenu.svelte.d.ts +9 -0
  371. package/dist/plugins/code/code.css +5 -100
  372. package/dist/plugins/code/header.svelte.d.ts +47 -0
  373. package/dist/plugins/code/header.svelte.js +141 -0
  374. package/dist/plugins/code/languageMenu.svelte.d.ts +84 -0
  375. package/dist/plugins/code/languageMenu.svelte.js +199 -0
  376. package/dist/plugins/code/languages.d.ts +21 -10
  377. package/dist/plugins/code/languages.js +39 -126
  378. package/dist/plugins/columns/ColumnResize.svelte +13 -25
  379. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  380. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  381. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  382. package/dist/plugins/columns/columns.css +7 -26
  383. package/dist/plugins/columns/resize.svelte.d.ts +14 -51
  384. package/dist/plugins/columns/resize.svelte.js +70 -164
  385. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  386. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  387. package/dist/plugins/comments/CommentsSidebar.svelte +82 -430
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +6 -7
  389. package/dist/plugins/comments/commentsPlugin.d.ts +31 -10
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +18 -129
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +2 -1
  393. package/dist/plugins/equation/EquationPlugin.svelte +123 -168
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +5 -3
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.svelte.d.ts +74 -36
  397. package/dist/plugins/equation/equation.svelte.js +74 -66
  398. package/dist/plugins/equation/importUrl.d.ts +6 -0
  399. package/dist/plugins/equation/importUrl.js +6 -0
  400. package/dist/plugins/equation/katex.d.ts +8 -0
  401. package/dist/plugins/equation/katex.js +77 -0
  402. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  403. package/dist/plugins/find/FindController.svelte.js +34 -55
  404. package/dist/plugins/find/findPlugin.d.ts +4 -8
  405. package/dist/plugins/find/findPlugin.js +29 -9
  406. package/dist/plugins/image/ImageChrome.svelte +5 -151
  407. package/dist/plugins/image/ImagePlugin.svelte +49 -117
  408. package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -24
  409. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  410. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  411. package/dist/plugins/image/controls.svelte.d.ts +6 -57
  412. package/dist/plugins/image/controls.svelte.js +51 -174
  413. package/dist/plugins/image/image.d.ts +0 -5
  414. package/dist/plugins/image/image.js +0 -3
  415. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  416. package/dist/plugins/image/toolbar.svelte.js +145 -0
  417. package/dist/plugins/index.d.ts +39 -24
  418. package/dist/plugins/index.js +30 -22
  419. package/dist/plugins/list.svelte.d.ts +128 -0
  420. package/dist/plugins/list.svelte.js +217 -0
  421. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  422. package/dist/plugins/markdownShortcuts.js +6 -5
  423. package/dist/plugins/marquee/MarqueeBox.svelte +15 -0
  424. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +9 -0
  425. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +46 -0
  426. package/dist/plugins/marquee/MarqueeController.svelte.js +243 -0
  427. package/dist/plugins/marquee/marquee.d.ts +33 -0
  428. package/dist/plugins/marquee/marquee.js +89 -0
  429. package/dist/plugins/marquee/marqueePlugin.d.ts +32 -0
  430. package/dist/plugins/marquee/marqueePlugin.js +68 -0
  431. package/dist/plugins/media/AudioPlugin.svelte +3 -88
  432. package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
  433. package/dist/plugins/media/BookmarkPlugin.svelte +124 -112
  434. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +20 -7
  435. package/dist/plugins/media/EmbedPlugin.svelte +93 -77
  436. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +21 -9
  437. package/dist/plugins/media/EmptySlot.svelte +44 -0
  438. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  439. package/dist/plugins/media/FilePlugin.svelte +35 -111
  440. package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
  441. package/dist/plugins/media/MediaEmpty.svelte +55 -112
  442. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  443. package/dist/plugins/media/SourceBlock.svelte +164 -0
  444. package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
  445. package/dist/plugins/media/VideoPlugin.svelte +4 -97
  446. package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
  447. package/dist/plugins/media/empty.svelte.d.ts +69 -0
  448. package/dist/plugins/media/empty.svelte.js +111 -0
  449. package/dist/plugins/media/media.d.ts +93 -30
  450. package/dist/plugins/media/media.js +79 -86
  451. package/dist/plugins/media/urlPaste.svelte.d.ts +9 -32
  452. package/dist/plugins/media/urlPaste.svelte.js +46 -75
  453. package/dist/plugins/mention/MentionPlugin.svelte +47 -124
  454. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +11 -23
  455. package/dist/plugins/page/PageLink.svelte +54 -38
  456. package/dist/plugins/page/PagePlugin.svelte +20 -18
  457. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  458. package/dist/plugins/page/page.d.ts +35 -9
  459. package/dist/plugins/page/page.js +3 -4
  460. package/dist/plugins/pageLink/PageLinkPlugin.svelte +52 -108
  461. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +11 -23
  462. package/dist/plugins/planned.d.ts +10 -0
  463. package/dist/plugins/planned.js +12 -0
  464. package/dist/plugins/richtext/CalloutIcon.svelte +25 -0
  465. package/dist/plugins/richtext/CalloutIcon.svelte.d.ts +9 -0
  466. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  467. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  468. package/dist/plugins/richtext/EmptyBody.svelte +25 -0
  469. package/dist/plugins/richtext/EmptyBody.svelte.d.ts +8 -0
  470. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  471. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  472. package/dist/plugins/richtext/RichTextPlugin.svelte +272 -148
  473. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +37 -18
  474. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  475. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  476. package/dist/plugins/richtext/body.d.ts +9 -0
  477. package/dist/plugins/richtext/body.js +16 -0
  478. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +97 -0
  479. package/dist/plugins/richtext/calloutIcons.svelte.js +214 -0
  480. package/dist/plugins/richtext/callouts.d.ts +15 -0
  481. package/dist/plugins/richtext/callouts.js +23 -0
  482. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  483. package/dist/plugins/richtext/controls.svelte.js +126 -0
  484. package/dist/plugins/richtext/richTextOperations.js +37 -28
  485. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +18 -11
  486. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +93 -35
  487. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +11 -24
  488. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  489. package/dist/plugins/suggestions/SuggestionBars.svelte +32 -84
  490. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  491. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -16
  492. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  493. package/dist/plugins/table/TableChrome.svelte +96 -127
  494. package/dist/plugins/table/TableChrome.svelte.d.ts +5 -1
  495. package/dist/plugins/table/TablePlugin.svelte +116 -171
  496. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  497. package/dist/plugins/table/chrome.svelte.d.ts +110 -117
  498. package/dist/plugins/table/chrome.svelte.js +643 -289
  499. package/dist/plugins/table/ops.d.ts +47 -0
  500. package/dist/plugins/table/ops.js +233 -0
  501. package/dist/plugins/table/table.css +55 -134
  502. package/dist/plugins/table/table.d.ts +26 -7
  503. package/dist/plugins/table/table.js +23 -49
  504. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  505. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  506. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  507. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  508. package/dist/plugins/toc/toc.d.ts +41 -10
  509. package/dist/plugins/toc/toc.js +2 -3
  510. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +29 -66
  511. package/dist/plugins/toolbar/ToolbarController.svelte.js +151 -76
  512. package/dist/plugins/toolbar/toolbarPlugin.d.ts +14 -13
  513. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  514. package/dist/plugins/triggers/TriggerController.svelte.d.ts +6 -45
  515. package/dist/plugins/triggers/TriggerController.svelte.js +51 -96
  516. package/dist/plugins/triggers/place.d.ts +0 -9
  517. package/dist/plugins/triggers/place.js +1 -17
  518. package/dist/plugins/triggers/triggers.d.ts +31 -9
  519. package/dist/plugins/triggers/triggers.js +82 -62
  520. package/dist/plugins/uploads.svelte.d.ts +38 -20
  521. package/dist/plugins/uploads.svelte.js +39 -32
  522. package/dist/plugins.d.ts +167 -60
  523. package/dist/selection/domSelection.d.ts +13 -4
  524. package/dist/selection/domSelection.js +110 -183
  525. package/dist/selection/pointer.svelte.d.ts +12 -10
  526. package/dist/selection/pointer.svelte.js +154 -71
  527. package/dist/selection/replaceSelection.d.ts +21 -22
  528. package/dist/selection/replaceSelection.js +60 -69
  529. package/dist/selection/selection.svelte.d.ts +5 -73
  530. package/dist/selection/selection.svelte.js +263 -542
  531. package/dist/selection/selection.utils.d.ts +34 -11
  532. package/dist/selection/selection.utils.js +128 -247
  533. package/dist/selection/visibility.d.ts +11 -8
  534. package/dist/selection/visibility.js +23 -8
  535. package/dist/session/announcer.svelte.d.ts +2 -1
  536. package/dist/session/announcer.svelte.js +7 -3
  537. package/dist/session/attempt.d.ts +33 -39
  538. package/dist/session/attempt.js +61 -53
  539. package/dist/session/bindings.js +108 -139
  540. package/dist/session/commands.d.ts +47 -22
  541. package/dist/session/commands.js +206 -208
  542. package/dist/session/composition.svelte.d.ts +2 -4
  543. package/dist/session/composition.svelte.js +55 -65
  544. package/dist/session/editing/text.d.ts +6 -0
  545. package/dist/session/editing/text.js +17 -3
  546. package/dist/session/handles.d.ts +10 -1
  547. package/dist/session/handles.js +28 -0
  548. package/dist/session/history.d.ts +0 -4
  549. package/dist/session/history.js +15 -21
  550. package/dist/session/inputRules.js +75 -84
  551. package/dist/session/keymap.d.ts +1 -6
  552. package/dist/session/keymap.js +17 -20
  553. package/dist/session/moves.d.ts +10 -10
  554. package/dist/session/moves.js +31 -59
  555. package/dist/session/navigation.d.ts +18 -3
  556. package/dist/session/navigation.js +194 -153
  557. package/dist/session/ports.d.ts +7 -0
  558. package/dist/session/selection.d.ts +4 -3
  559. package/dist/session/selection.js +8 -0
  560. package/dist/session/suggestions.svelte.d.ts +1 -1
  561. package/dist/session/suggestions.svelte.js +64 -47
  562. package/dist/session/virtual.d.ts +3 -3
  563. package/dist/session/virtual.js +18 -40
  564. package/dist/surface/attributes.d.ts +1 -0
  565. package/dist/surface/attributes.js +3 -26
  566. package/dist/surface/cells.d.ts +5 -0
  567. package/dist/surface/cells.js +5 -0
  568. package/dist/surface/lines.d.ts +32 -0
  569. package/dist/surface/lines.js +43 -0
  570. package/dist/surface/observer.svelte.d.ts +3 -20
  571. package/dist/surface/observer.svelte.js +73 -77
  572. package/dist/surface/overlay.d.ts +48 -6
  573. package/dist/surface/overlay.js +133 -23
  574. package/dist/surface/pin.svelte.d.ts +5 -0
  575. package/dist/surface/pin.svelte.js +5 -0
  576. package/dist/surface/projector.svelte.d.ts +4 -6
  577. package/dist/surface/projector.svelte.js +42 -69
  578. package/dist/text/text.svelte.d.ts +14 -40
  579. package/dist/text/text.svelte.js +35 -51
  580. package/dist/text/wordBoundary.d.ts +19 -0
  581. package/dist/text/wordBoundary.js +29 -44
  582. package/dist/themes/notion.css +315 -126
  583. package/dist/utils/json.d.ts +3 -1
  584. package/dist/utils/json.js +52 -51
  585. package/dist/utils/listen.d.ts +8 -0
  586. package/dist/utils/listen.js +19 -0
  587. package/package.json +4 -5
  588. package/dist/block/block.utils.d.ts +0 -340
  589. package/dist/block/block.utils.js +0 -356
  590. package/dist/collaboration/history/HistoryPanel.svelte +0 -525
  591. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  592. package/dist/collaboration/history/panel.d.ts +0 -43
  593. package/dist/collaboration/history/panel.js +0 -3
  594. package/dist/components/SuggestionRanges.svelte +0 -58
  595. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  596. package/dist/crdt/doc/table.d.ts +0 -21
  597. package/dist/crdt/doc/table.js +0 -288
  598. package/dist/crdt/migration/generation.d.ts +0 -58
  599. package/dist/crdt/migration/generation.js +0 -70
  600. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  601. package/dist/crdt/migration/legacy-schema.js +0 -151
  602. package/dist/crdt/migration/migrate.d.ts +0 -56
  603. package/dist/crdt/migration/migrate.js +0 -227
  604. package/dist/crdt/nodes.d.ts +0 -121
  605. package/dist/crdt/nodes.js +0 -56
  606. package/dist/crdt/text/index/checks.d.ts +0 -15
  607. package/dist/crdt/text/index/checks.js +0 -156
  608. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  609. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  610. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  611. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  612. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  613. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  614. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  615. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  616. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  617. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  618. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  619. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  620. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  621. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  622. package/dist/edytor.utils.d.ts +0 -50
  623. package/dist/edytor.utils.js +0 -67
  624. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -447
  625. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  626. package/dist/plugins/find/FindBar.svelte +0 -170
  627. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  628. package/dist/plugins/find/FindHighlights.svelte +0 -75
  629. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  630. package/dist/plugins/icons.d.ts +0 -2
  631. package/dist/plugins/icons.js +0 -63
  632. package/dist/plugins/image/ImageEmpty.svelte +0 -116
  633. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -12
  634. package/dist/plugins/keepInView.d.ts +0 -4
  635. package/dist/plugins/keepInView.js +0 -6
  636. package/dist/plugins/media/UrlPasteMenu.svelte +0 -83
  637. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -7
  638. package/dist/plugins/richtext/labels.d.ts +0 -5
  639. package/dist/plugins/richtext/labels.js +0 -3
  640. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -360
  641. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  642. package/dist/plugins/toolbar/LinkCard.svelte +0 -118
  643. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -7
  644. package/dist/plugins/toolbar/Toolbar.svelte +0 -400
  645. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  646. package/dist/plugins/triggers/TriggerMenu.svelte +0 -144
  647. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  648. package/dist/session/props.d.ts +0 -28
  649. package/dist/session/props.js +0 -162
  650. package/dist/text/deltas.d.ts +0 -22
  651. package/dist/text/deltas.js +0 -46
  652. package/dist/text/text.utils.d.ts +0 -45
  653. package/dist/text/text.utils.js +0 -199
@@ -1,56 +0,0 @@
1
- import type { EngineApi, YDoc } from '../engine-api.js';
2
- import { type JSONDoc } from '../../utils/json.js';
3
- /** The name of the migration lock of logical document `name`. */
4
- export declare const migrationBcRoom: (name: string) => string;
5
- export type MigrationStatus = 'none' | 'pending' | 'active' | 'failed' | 'rolledback';
6
- /** Durable progress. `pending` is never stored: it is the lock, reported by `status()`. */
7
- export type MigrationRecord = {
8
- v: 1;
9
- status: MigrationStatus;
10
- migratedAt?: number;
11
- rolledbackAt?: number;
12
- sourceRows?: number;
13
- sourceBytes?: number;
14
- error?: string;
15
- };
16
- export type MigrationPhase = 'claim' | 'read' | 'materialize' | 'rebuild' | 'verify' | 'persist';
17
- export type MigrateResult = {
18
- /** `active` also covers `already-active` and `nothing-to-migrate`. */
19
- status: 'active' | 'busy' | 'failed' | 'rolledback';
20
- alreadyActive?: boolean;
21
- empty?: boolean;
22
- /** The migrated v14 doc (present when this call ran the import). */
23
- doc?: YDoc;
24
- /**
25
- * The migrated state (present when this call ran the import) — restore it
26
- * through the document admission path: `loadDocument(result.update)`
27
- * lands a `hydrated` document through the gate every load crosses.
28
- * The appended row is its diff against what the generation held (the
29
- * whole state for a first import).
30
- */
31
- update?: Uint8Array;
32
- /** The materialized logical JSON with its ids (present when this call ran the import). */
33
- json?: JSONDoc;
34
- sourceRows?: number;
35
- error?: string;
36
- };
37
- export type MigrateOptions = {
38
- /** Legacy database name — defaults to the logical `name` (the v13 layout). */
39
- sourceName?: string;
40
- /** Re-run even when already `active` or `rolledback` — restores the legacy ids in place. */
41
- force?: boolean;
42
- /** `false`: return `busy` instead of queueing behind another tab's attempt. */
43
- wait?: boolean;
44
- /** Phase observer — invoked BEFORE each phase; throwing simulates a crash. */
45
- onPhase?: (phase: MigrationPhase) => void | Promise<void>;
46
- };
47
- export type Migration = ReturnType<typeof bindMigration>;
48
- /**
49
- * Bind the migration path to the vendored v14 engine module.
50
- */
51
- export declare const bindMigration: (Y: EngineApi) => {
52
- migrate: (name: string, options?: MigrateOptions) => Promise<MigrateResult>;
53
- rollback: (name: string) => Promise<void>;
54
- status: (name: string) => Promise<MigrationRecord>;
55
- waitForSettled: (name: string) => Promise<MigrationRecord>;
56
- };
@@ -1,227 +0,0 @@
1
- /**
2
- * Non-destructive v13 → v14 persistence migration.
3
- *
4
- * - READS every row of the legacy `<name>` database's `updates` store (the
5
- * v13 y-indexeddb layout) in one readonly transaction, and materializes the
6
- * logical JSON a v13 editor produced (`legacy-schema.ts`).
7
- * - WRITES the import into the generation `edytor-v14-g5:<name>`: the row is
8
- * APPENDED and the `active` record written in ONE transaction, so a
9
- * completed import is visible iff both committed. The store is append-only
10
- * for this writer as for the provider; the legacy database is never
11
- * written, so rollback stays available.
12
- * - A first import is a fresh identity appended beside whatever a live
13
- * provider already stored. `force` is a replace-edit instead: it
14
- * hydrates the generation, restores every legacy id in place
15
- * (restore-definition — delete marks cleared, type, data, placement and
16
- * content rewritten, every other block deleted) and appends that diff, so
17
- * a forced re-migration reproduces the legacy ids and two devices forcing
18
- * independently converge on one copy.
19
- *
20
- * CRDT identity, history and undo do not survive a first import (it is a
21
- * JSON-level import); logical `b_*`/`i_*` ids do, and verification compares
22
- * them.
23
- *
24
- * Attempt vs progress: the attempt is a `navigator.locks` lock named
25
- * {@link migrationBcRoom} — crash-released, so no lease, owner or poll
26
- * exists; where the platform has none (Node 22) an in-process mutex stands
27
- * in. Progress is only the durable record, which is never `pending`:
28
- * `status()` reports `pending` while the lock is held, and `wait: false`
29
- * asks for the lock `ifAvailable` and returns `busy`.
30
- */
31
- import * as idb from 'lib0-v14/indexeddb';
32
- import * as f from 'lib0-v14/function';
33
- import { asEngineDoc } from '../structs.js';
34
- import { bindEdytorDoc } from '../edytor-doc.js';
35
- import { bindLegacyReader } from './legacy-schema.js';
36
- import { keepingReplaced } from '../incarnations.js';
37
- import { generationDbName } from '../protocols/envelope.js';
38
- import { CUSTOM, decodeRow, encodeRow, readRow, openContainer, openIfExists, UPDATES, verifyOrStamp } from '../providers/container.js';
39
- import { jsonBlockToSpec, sanitizeWireJson } from '../../utils/json.js';
40
- const MIGRATION_KEY = 'migration';
41
- /** The name of the migration lock of logical document `name`. */
42
- export const migrationBcRoom = (name) => `edytor-v14-migration:${name}`;
43
- /** Where `navigator.locks` is absent, an in-process mutex (exclusive only) with its surface. */
44
- const tails = new Map();
45
- const inProcess = {
46
- request: (name, { ifAvailable }, fn) => {
47
- if (ifAvailable && tails.has(name))
48
- return Promise.resolve(fn(null));
49
- const run = (tails.get(name) ?? Promise.resolve()).then(() => fn({ name }));
50
- const tail = run.then(f.nop, f.nop);
51
- tails.set(name, tail);
52
- void tail.then(() => tails.get(name) === tail && tails.delete(name));
53
- return run;
54
- },
55
- query: async () => ({ held: [...tails.keys()].map((name) => ({ name })) })
56
- };
57
- const locks = () => globalThis.navigator?.locks ?? inProcess;
58
- const readRecord = async (db) => (await idb.rtop(idb.transact(db, [CUSTOM], 'readonly')[0].get(MIGRATION_KEY))) ?? { v: 1, status: 'none' };
59
- /**
60
- * The legacy rows, in ONE readonly transaction — the fence: a live v13
61
- * writer's rows land entirely before or after this snapshot (later rows are
62
- * the `force` path's). Never creates the legacy database.
63
- */
64
- const readLegacyRows = async (sourceName) => {
65
- const db = await openIfExists(sourceName);
66
- try {
67
- if (!db?.objectStoreNames.contains(UPDATES))
68
- return [];
69
- return (await idb.getAll(idb.transact(db, [UPDATES], 'readonly')[0])).map(decodeRow);
70
- }
71
- finally {
72
- db?.close();
73
- }
74
- };
75
- /**
76
- * Give id-less legacy blocks and atoms a deterministic `mig-<path>` id — the
77
- * one id policy: the import is built from, and verified against, this JSON.
78
- */
79
- const withFallbackIds = (b, path) => {
80
- const out = { ...b, id: b.id ?? `mig-${path}` };
81
- if (b.content && b.content.length > 0) {
82
- out.content = b.content.map((item, i) => 'text' in item ? item : { ...item, id: item.id ?? `mig-${path}-i${i}` });
83
- }
84
- if (b.children && b.children.length > 0) {
85
- out.children = b.children.map((c, i) => withFallbackIds(c, `${path}.${i}`));
86
- }
87
- return out;
88
- };
89
- /**
90
- * Bind the migration path to the vendored v14 engine module.
91
- */
92
- export const bindMigration = (Y) => {
93
- const reader = bindLegacyReader(Y);
94
- const edytorDoc = bindEdytorDoc(Y);
95
- /** The durable record — NON-CREATING: probing never leaves a database behind. */
96
- const stored = async (name) => {
97
- const db = await openIfExists(generationDbName(name));
98
- try {
99
- return db?.objectStoreNames.contains(CUSTOM)
100
- ? await readRecord(db)
101
- : { v: 1, status: 'none' };
102
- }
103
- finally {
104
- db?.close();
105
- }
106
- };
107
- /** `pending` while a tab holds the attempt (a waiter's shared hold is not one); the durable record otherwise. */
108
- const status = async (name) => {
109
- const { held = [] } = await locks().query();
110
- return held.some((lock) => lock.name === migrationBcRoom(name) && lock.mode !== 'shared')
111
- ? { v: 1, status: 'pending' }
112
- : stored(name);
113
- };
114
- /** Resolve with the durable record once no tab holds the attempt. */
115
- const waitForSettled = (name) => locks().request(migrationBcRoom(name), { mode: 'shared' }, () => stored(name));
116
- /** One attempt, run while holding the lock. */
117
- const attempt = async (name, { sourceName = name, force = false, onPhase }) => {
118
- await onPhase?.('claim');
119
- const db = await openContainer(generationDbName(name));
120
- try {
121
- const record = await readRecord(db);
122
- if (!force && record.status === 'active')
123
- return { status: 'active', alreadyActive: true };
124
- if (!force && record.status === 'rolledback')
125
- return { status: 'rolledback' };
126
- /** Progress, atomically: the appended row (if any) and the record. */
127
- const commit = async (next, row) => {
128
- const [updates, custom] = idb.transact(db, [UPDATES, CUSTOM]);
129
- try {
130
- await verifyOrStamp(name, updates, custom);
131
- if (row)
132
- await idb.addAutoKey(updates, encodeRow(row));
133
- await idb.rtop(custom.put({ v: 1, ...next }, MIGRATION_KEY));
134
- }
135
- catch (error) {
136
- try {
137
- updates.transaction.abort();
138
- }
139
- catch {
140
- // Already finished — the failed request aborted it.
141
- }
142
- throw error;
143
- }
144
- };
145
- const failed = async (error) => {
146
- await commit({ status: 'failed', error, migratedAt: Date.now() });
147
- return { status: 'failed', error };
148
- };
149
- await onPhase?.('read');
150
- const rows = await readLegacyRows(sourceName);
151
- const sourceRows = rows.length;
152
- if (sourceRows === 0) {
153
- await onPhase?.('persist');
154
- await commit({ status: 'active', migratedAt: Date.now(), sourceRows, sourceBytes: 0 });
155
- return { status: 'active', empty: true, sourceRows };
156
- }
157
- await onPhase?.('materialize');
158
- let legacy;
159
- try {
160
- // Throws PendingLegacyUpdatesError when rows carry structs whose
161
- // deps never landed — a truncated document must not activate.
162
- // Every string becomes well-formed UTF-16 (F2-M1), as the wire
163
- // would deliver it, so verify compares normalized JSON.
164
- legacy = sanitizeWireJson(reader.readLegacyJSON(rows));
165
- }
166
- catch (error) {
167
- return failed(`legacy decode failed: ${error.message}`);
168
- }
169
- const json = { children: legacy.children.map((b, i) => withFallbackIds(b, `${i}`)) };
170
- await onPhase?.('rebuild');
171
- const doc = keepingReplaced(new Y.Doc());
172
- if (force) {
173
- const [updates, custom] = idb.transact(db, [UPDATES, CUSTOM]);
174
- await verifyOrStamp(name, updates, custom);
175
- // Rows first (one transaction), then inflate: a snapshot row is v2, maybe gzip.
176
- for (const row of await idb.getAll(updates)) {
177
- const update = await readRow(row);
178
- if (update instanceof Uint8Array)
179
- Y.applyUpdate(doc, update);
180
- else
181
- Y.applyUpdateV2(doc, update.v2);
182
- }
183
- }
184
- const base = Y.encodeStateVector(doc);
185
- edytorDoc.restore(asEngineDoc(doc), json.children.map((b) => jsonBlockToSpec(b)));
186
- const update = Y.encodeStateAsUpdate(doc);
187
- await onPhase?.('verify');
188
- const check = keepingReplaced(new Y.Doc());
189
- Y.applyUpdate(check, update);
190
- if (!f.equalityDeep(edytorDoc.create(asEngineDoc(check)).toJSON(), json)) {
191
- return failed('verification failed: migrated document does not reproduce the legacy logical JSON');
192
- }
193
- await onPhase?.('persist');
194
- const sourceBytes = rows.reduce((n, r) => n + r.byteLength, 0);
195
- await commit({ status: 'active', migratedAt: Date.now(), sourceRows, sourceBytes }, Y.encodeStateAsUpdate(doc, base));
196
- return { status: 'active', doc, update, json, sourceRows };
197
- }
198
- finally {
199
- db.close();
200
- }
201
- };
202
- /**
203
- * Run the migration for logical document `name`: `active` already →
204
- * `{alreadyActive: true}`; `rolledback` → `{status: 'rolledback'}` unless
205
- * `force`; another tab mid-attempt → queue behind it (`wait: false` →
206
- * `busy`); otherwise import, verify and commit.
207
- */
208
- const migrate = (name, options = {}) => locks().request(migrationBcRoom(name), { ifAvailable: options.wait === false }, (lock) => lock === null ? { status: 'busy' } : attempt(name, options));
209
- /**
210
- * Roll back: mark the generation `rolledback` and clear its rows. The
211
- * legacy database is untouched, so a v13 stack works again on its own
212
- * data; a later `migrate` needs `force` — rollback is an operator decision.
213
- */
214
- const rollback = async (name) => {
215
- const db = await openContainer(generationDbName(name));
216
- try {
217
- const [updates, custom] = idb.transact(db, [UPDATES, CUSTOM]);
218
- const record = { v: 1, status: 'rolledback', rolledbackAt: Date.now() };
219
- await idb.rtop(custom.put(record, MIGRATION_KEY));
220
- await idb.rtop(updates.clear());
221
- }
222
- finally {
223
- db.close();
224
- }
225
- };
226
- return { migrate, rollback, status, waitForSettled };
227
- };
@@ -1,121 +0,0 @@
1
- /**
2
- * Typed node surface — `document.block(id)` handles over the semantic
3
- * model. Each handle is a thin dead-safe wrapper: ops delegate to the
4
- * facade's ownership-aware operations and return its {@link OpResult}
5
- * (`refused` on absent/merged ids).
6
- *
7
- * Handles are transaction-aware: `childIds()` etc. reflect mutations made
8
- * earlier in the same transaction.
9
- * What is COMMIT-BOUND is PUBLICATION: the change report and
10
- * `onChange` fire once per completed transaction with the final coherent
11
- * state — a mid-transaction read never publishes a partial snapshot, and
12
- * a change-then-revert transaction publishes nothing.
13
- *
14
- * Snapshot isolation: item `marks`/`data` payloads on `items`,
15
- * `project()`, `runs` and `DocChange` content are canonical deep-frozen
16
- * objects — mutating a returned snapshot throws (strict mode) or lands on
17
- * a frozen shared instance, never on live engine state.
18
- *
19
- * The read half is deliberately narrow — the consumed set: identity
20
- * (`id`, `document`), the per-block attribution record, the two content views
21
- * (transaction-aware `items`, commit-synced `runs`), `length` and
22
- * `childIds`. Richer structure reads (positions, paths, roles, anchors)
23
- * live on the facade (`positionOf`/`pathOf`/`isVoid`/`anchorAt`/…).
24
- */
25
- import type { BlockId, BlockSpec, ContentItem, InlineSpec, SplitTail } from './placement/model.js';
26
- import type { ContentRun } from './text/runs.js';
27
- import type { EdytorDoc, OpResult } from './edytor-doc.js';
28
- import type { DocumentOperations, DocumentWrites } from './operations.js';
29
- import type { BlockAttribution } from './attribution/block.js';
30
- /** A node argument: another block handle, a raw block id, or `null` for the root list. */
31
- export type NodeRef = DocBlock | BlockId | null;
32
- /**
33
- * Typed handle over one document block. Handles are dead-safe: constructing
34
- * one for an absent/merged id is legal — ops are `refused` (the underlying
35
- * facade ops guard the same way).
36
- *
37
- * Read members are getters — every access re-derives from current doc state,
38
- * so a handle obtained before a mutation sees the mutation afterwards
39
- * (including within the same transaction).
40
- */
41
- export type DocBlock = {
42
- /** Stable caller-assigned block id. */
43
- readonly id: BlockId;
44
- /** The owning document — cross-node and document-level ops live here. */
45
- readonly document: DocumentOperations;
46
- /**
47
- * Compact per-block attribution (`{createdBy, contributors,
48
- * lastChangedBy}` as durable actor ids), or `undefined` for
49
- * system/foreign blocks carrying no record. Read live per access.
50
- */
51
- readonly attribution: BlockAttribution | undefined;
52
- /**
53
- * Resolved content items of this block's display ({kind:'text'} runs and
54
- * {kind:'inline'} atoms in display order, unmerged across streams).
55
- * Reflects writes made earlier in the same transaction.
56
- */
57
- readonly items: readonly ContentItem[];
58
- /** Display length in atoms (UTF-16 text units + 1 per inline atom). */
59
- readonly length: number;
60
- /**
61
- * The maintained run view for this block — frozen, structurally shared
62
- * run arrays refreshed at transaction commit. Rendering and `DocChange`
63
- * payloads consume this; command code should use {@link items} (the
64
- * transaction-aware view) when reading mid-transaction.
65
- */
66
- readonly runs: readonly ContentRun[];
67
- /** Ordered visible child ids. */
68
- childIds(): BlockId[];
69
- insertText(offset: number, text: string, marks?: Record<string, unknown>): OpResult;
70
- deleteText(offset: number, length: number): OpResult;
71
- /** Multi-mark format over `[offset, offset+length)`; `null` values unset. */
72
- format(offset: number, length: number, marks: Record<string, unknown>): OpResult;
73
- setMark(offset: number, length: number, name: string, value: unknown): OpResult;
74
- unsetMark(offset: number, length: number, name: string): OpResult;
75
- /** Remove every mark present anywhere in the range. */
76
- clearMarks(offset: number, length: number): OpResult;
77
- insertInline(offset: number, spec: InlineSpec): OpResult;
78
- removeInline(inlineId: string): OpResult;
79
- setInlineData(inlineId: string, data: Record<string, unknown>): OpResult;
80
- /** Insert a fresh-identity child spec; `ids`: the new block. */
81
- insertChild(index: number, spec: BlockSpec): OpResult;
82
- /** Relocate this block — identity preserved; island/void rules apply. */
83
- moveTo(dest: {
84
- parent: NodeRef;
85
- index: number;
86
- }): OpResult;
87
- /** Move to the last position under `parent`. */
88
- nestUnder(parent: DocBlock | BlockId): OpResult;
89
- /** Move beside the parent (index = parent index + 1). */
90
- unNest(): OpResult;
91
- /** Split content at display `offset` into a new sibling `newId`; `ids`: the new block. */
92
- split(offset: number, newId: BlockId, tail?: SplitTail): OpResult;
93
- /** Baseline merge into the previous block in document order (a list's first item lifts out instead); `ids`: the survivor. */
94
- mergeBackward(): OpResult;
95
- /** Baseline merge pulling the next block in document order into this (a list passes its first item). */
96
- mergeForward(): OpResult;
97
- /** Engine merge primitive — `other`'s content+children claim into this. */
98
- mergeFrom(other: DocBlock | BlockId): OpResult;
99
- /** Delete (per-writer marks on this block and what it displays); the children take its slot unless `keepChildren: false`. */
100
- delete(opts?: {
101
- keepChildren?: boolean;
102
- }): OpResult;
103
- setType(type: string): OpResult;
104
- setData(data: Record<string, unknown>): OpResult;
105
- /** Baseline `setBlock` — type/data update in place; content/children replace (all-or-nothing). */
106
- set(value: Parameters<DocumentWrites['setBlock']>[1]): OpResult;
107
- /**
108
- * Fresh-identity copy of this subtree right after it; `freshId` names each
109
- * copied block and inline atom (an unanswered atom id is minted, an
110
- * unanswered block id refuses); `ids`: the copy.
111
- */
112
- duplicate(freshId: (oldId: string, kind: 'block' | 'inline') => string): OpResult;
113
- };
114
- /**
115
- * Build the `document.block(id)` node surface over an existing facade —
116
- * one cached handle per id (the facade normalized it at ingress), all
117
- * delegating to the facade's semantic ops.
118
- */
119
- export declare const bindNodes: (doc: EdytorDoc) => {
120
- block: (id: BlockId) => DocBlock;
121
- };
@@ -1,56 +0,0 @@
1
- const idOf = (ref) => ref == null ? null : typeof ref === 'string' ? ref : ref.id;
2
- /**
3
- * Build the `document.block(id)` node surface over an existing facade —
4
- * one cached handle per id (the facade normalized it at ingress), all
5
- * delegating to the facade's semantic ops.
6
- */
7
- export const bindNodes = (doc) => {
8
- const cache = new Map();
9
- const block = (id) => {
10
- const cached = cache.get(id);
11
- if (cached)
12
- return cached;
13
- const handle = {
14
- id,
15
- document: doc,
16
- get attribution() {
17
- return doc.blockAttribution(id);
18
- },
19
- get items() {
20
- return doc.contentItems(id);
21
- },
22
- get length() {
23
- return doc.displayLength(id);
24
- },
25
- get runs() {
26
- return doc.runs(id);
27
- },
28
- childIds: () => doc.childrenIds(id),
29
- insertText: (offset, text, marks) => doc.insertText(id, offset, text, marks),
30
- deleteText: (offset, length) => doc.deleteText(id, offset, length),
31
- format: (offset, length, marks) => doc.formatRange(id, offset, length, marks),
32
- setMark: (offset, length, name, value) => doc.setMark(id, offset, length, name, value),
33
- unsetMark: (offset, length, name) => doc.unsetMark(id, offset, length, name),
34
- clearMarks: (offset, length) => doc.clearMarks(id, offset, length),
35
- insertInline: (offset, spec) => doc.insertInline(id, offset, spec),
36
- removeInline: (inlineId) => doc.removeInline(id, inlineId),
37
- setInlineData: (inlineId, data) => doc.setInlineData(id, inlineId, data),
38
- insertChild: (index, spec) => doc.insertBlock({ parent: id, index }, spec),
39
- moveTo: (dest) => doc.moveBlock(id, { parent: idOf(dest.parent), index: dest.index }),
40
- nestUnder: (parent) => doc.nestBlock(id, idOf(parent)),
41
- unNest: () => doc.unNestBlock(id),
42
- split: (offset, newId, tail) => doc.splitBlock(id, offset, newId, tail),
43
- mergeBackward: () => doc.mergeBackward(id),
44
- mergeForward: () => doc.mergeForward(id),
45
- mergeFrom: (other) => doc.mergeBlocks(idOf(other), id),
46
- delete: (opts) => doc.deleteBlock(id, opts),
47
- setType: (type) => doc.setBlockType(id, type),
48
- setData: (data) => doc.setBlockData(id, data),
49
- set: (value) => doc.setBlock(id, value),
50
- duplicate: (freshId) => doc.duplicateBlock(id, freshId)
51
- };
52
- cache.set(id, handle);
53
- return handle;
54
- };
55
- return { block };
56
- };
@@ -1,15 +0,0 @@
1
- import type { IndexAnchored } from './anchored.js';
2
- import type { IndexCache } from './cache.js';
3
- import type { IndexClaims } from './claims.js';
4
- import type { IndexFold } from './fold.js';
5
- import type { IndexLayout } from './layout.js';
6
- import type { IndexPlacement } from './placement.js';
7
- import type { IndexReporter } from './report.js';
8
- import type { IndexState, Published } from './state.js';
9
- import type { IndexStreams } from './streams.js';
10
- /** The self-checks of one doc's index, over every part they compare. */
11
- export declare const indexSelfChecks: (ix: IndexState & IndexClaims & IndexStreams & IndexAnchored & IndexLayout & IndexPlacement & IndexCache & IndexFold & IndexReporter) => {
12
- check: () => void;
13
- checkPublished: (pub: Published) => void;
14
- };
15
- export type IndexSelfChecks = ReturnType<typeof indexSelfChecks>;
@@ -1,156 +0,0 @@
1
- /**
2
- * The index's self-checks (`indexChecks`, on in the test lanes): after every
3
- * fold each fact the index maintains incrementally equals its rebuild from
4
- * the replicated state, and after every report the published tree equals a
5
- * fresh walk; the first difference throws.
6
- */
7
- import { sameIds } from '../../../utils/json.js';
8
- import { childrenIndex, displayIndex, resolvePlacements } from '../../placement/model.js';
9
- import { DEAD, claimGraph, cmpStamp, delimiters, placeText, scanText } from '../model.js';
10
- import { sameRow } from '../rows.js';
11
- import { keyOf } from './shared.js';
12
- /** The self-checks of one doc's index, over every part they compare. */
13
- export const indexSelfChecks = (ix) => {
14
- const { blocks, displaysMap, rows, streamIx, placementsMap, following, cache, dirty, ownerOf, streamOf, sameClaims, targetOf, dissolve, ranker, ownShim, own0, noteFollowing, ensurePlacements, computeFresh, unfolded, reachable } = ix;
15
- /** {@link indexChecks}: every incrementally maintained fact equals its rebuild. */
16
- const check = () => {
17
- // A queued transaction whose writes this fold has not seen yet
18
- // (a follow-up a cleanup started): the index lags it until its
19
- // own fold, so there is nothing to compare yet.
20
- if (unfolded())
21
- return;
22
- const fail = (what) => {
23
- throw new Error(`[edytor index] ${what} differs from its rebuild`);
24
- };
25
- const scans = new Map();
26
- for (const rec of blocks.values())
27
- if (rec.content)
28
- scans.set(rec.id, scanText(rec.id, rec.content));
29
- for (const home of rows.keys())
30
- if (!scans.has(home))
31
- fail(`row ${home}`);
32
- for (const [home, scan] of scans) {
33
- const row = rows.get(home);
34
- if (row === undefined || row.text !== scan.text || !sameRow(row, scan))
35
- fail(`row ${home}`);
36
- }
37
- const want = delimiters(blocks, scans.values());
38
- if (want.size !== ix.delim.size || [...want].some(([b, k]) => ix.delim.get(b) !== k))
39
- fail('delimiters');
40
- const streamSig = (st) => st && `${st.home}:${st.start}-${st.end}/${st.inert.join(',')}`;
41
- const placed = new Set();
42
- for (const [home, scan] of scans)
43
- for (const st of placeText(scan, want)) {
44
- placed.add(st.block);
45
- if (streamSig(streamOf(st.block)) !== streamSig(st))
46
- fail(`stream of ${st.block} in ${home}`);
47
- }
48
- for (const b of streamIx.keys())
49
- if (!placed.has(b))
50
- fail(`stream of ${b}`);
51
- // The anchored claims (`merge.claim.anchor`): each record's effective claims, from scratch.
52
- {
53
- const moved = new Map();
54
- const stays = new Map();
55
- for (const [h, rec] of blocks) {
56
- const list = rec.listClaims ?? rec.claims;
57
- const own = [];
58
- for (const c of list) {
59
- const [t] = targetOf(h, c);
60
- if (t === h)
61
- own.push(c);
62
- else {
63
- let into = moved.get(t);
64
- if (into === undefined)
65
- moved.set(t, (into = []));
66
- into.push({ ...c, holder: h });
67
- }
68
- }
69
- stays.set(h, own);
70
- }
71
- for (const [b, rec] of blocks) {
72
- const extra = (moved.get(b) ?? []).sort((x, y) => cmpStamp(x.stamp, y.stamp));
73
- if (!sameClaims(rec.claims, [...stays.get(b), ...extra]))
74
- fail(`claims of ${b}`);
75
- }
76
- }
77
- for (const [b, c] of cache) {
78
- if (dirty.has(b))
79
- continue;
80
- const fresh = computeFresh(b).fresh;
81
- if (keyOf(fresh) !== keyOf(c.runs))
82
- fail(`runs of ${b}`);
83
- }
84
- // The claim graph, placements, children index and layout rules.
85
- ensurePlacements();
86
- const graph = claimGraph(blocks);
87
- for (const b of blocks.keys()) {
88
- if (ownerOf(b) !== (graph.owners.get(b) ?? DEAD))
89
- fail(`owner of ${b}`);
90
- if (ownShim.top(b) !== graph.top.get(b))
91
- fail(`top of ${b}`);
92
- }
93
- const shown = displayIndex(blocks, ownerOf);
94
- for (const [o, list] of shown)
95
- if (list.length !== (displaysMap.get(o)?.size ?? 0) ||
96
- list.some((b) => !displaysMap.get(o).has(b)))
97
- fail(`displays of ${o}`);
98
- for (const o of displaysMap.keys())
99
- if (!shown.has(o))
100
- fail(`displays of ${o}`);
101
- const resolved = resolvePlacements(blocks, ownerOf);
102
- if (resolved.size !== placementsMap.size)
103
- fail('placements');
104
- for (const [b, pl] of resolved) {
105
- const mine = placementsMap.get(b);
106
- if (mine?.parent !== pl.parent || mine.rank !== pl.rank)
107
- fail(`placement of ${b}`);
108
- }
109
- const same = (x, y) => x.size === y.size && [...x].every(([p, l]) => keyOf(l) === keyOf(y.get(p) ?? null));
110
- // The text orders decided afresh: a stale one shows as a slot mismatch.
111
- ranker.forget();
112
- const k0 = childrenIndex(placementsMap, own0);
113
- if (!same(k0, ix.kids0))
114
- fail('children index (before the layout rules)');
115
- const out = dissolve(k0);
116
- if (out.size !== ix.dissolved.size || [...out].some((b) => !ix.dissolved.has(b)))
117
- fail('dissolved');
118
- if (!same(childrenIndex(placementsMap, ownShim), ix.kidsMap))
119
- fail('children index');
120
- for (const [p, l] of ix.kidsMap)
121
- for (const { id, rank, reset } of l) {
122
- const slot = ix.slots.get(id);
123
- if (slot?.parent !== p || slot.rank !== rank || slot.reset !== reset)
124
- fail(`slot of ${id}`);
125
- }
126
- const follow = new Set(following);
127
- for (const id of ix.slots.keys())
128
- noteFollowing(id);
129
- if (follow.size !== following.size || [...follow].some((b) => !following.has(b)))
130
- fail('following');
131
- };
132
- /** {@link indexChecks}: the published tree the report advanced equals a fresh walk. */
133
- const checkPublished = (pub) => {
134
- // Payloads from the published nodes: the check reads no runs.
135
- const want = reachable(pub.nodes);
136
- const fail = (what) => {
137
- throw new Error(`[edytor index] published ${what} differs from its rebuild`);
138
- };
139
- if (want.order.size !== pub.order.size)
140
- fail('lists');
141
- for (const [p, ids] of want.order)
142
- if (!sameIds(ids, pub.order.get(p) ?? []))
143
- fail(`list of ${p}`);
144
- if (want.nodes.size !== pub.nodes.size)
145
- fail('blocks');
146
- for (const [id, n] of want.nodes) {
147
- const m = pub.nodes.get(id);
148
- if (m?.parent !== n.parent || m.index !== n.index)
149
- fail(`slot of ${id}`);
150
- }
151
- };
152
- return {
153
- check,
154
- checkPublished
155
- };
156
- };
@@ -1,17 +0,0 @@
1
- /**
2
- * General event handler implementation.
3
- *
4
- * @template ARG0, ARG1
5
- *
6
- * @private
7
- */
8
- export class EventHandler<ARG0, ARG1> {
9
- /**
10
- * @type {Array<function(ARG0, ARG1):void>}
11
- */
12
- l: Array<(arg0: ARG0, arg1: ARG1) => void>;
13
- }
14
- export function createEventHandler<ARG0, ARG1>(): EventHandler<ARG0, ARG1>;
15
- export function addEventHandlerListener<ARG0, ARG1>(eventHandler: EventHandler<ARG0, ARG1>, f: (arg0: ARG0, arg1: ARG1) => void): number;
16
- export function removeEventHandlerListener<ARG0, ARG1>(eventHandler: EventHandler<ARG0, ARG1>, f: (arg0: ARG0, arg1: ARG1) => void): void;
17
- export function callEventHandlerListeners<ARG0, ARG1>(eventHandler: EventHandler<ARG0, ARG1>, arg0: ARG0, arg1: ARG1): void;