edytor 1.0.0-rc.3 → 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 (642) 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 +27 -137
  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.js +7 -7
  13. package/dist/clipboard/insertClipboardFragment.js +5 -4
  14. package/dist/clipboard/moveText.js +16 -8
  15. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  16. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  17. package/dist/cloudflare/DocumentRoom.d.ts +4 -17
  18. package/dist/cloudflare/DocumentRoom.js +3 -5
  19. package/dist/cloudflare/move.d.ts +1 -18
  20. package/dist/cloudflare/move.js +2 -48
  21. package/dist/cloudflare/room/admission.d.ts +1 -60
  22. package/dist/cloudflare/room/admission.js +25 -29
  23. package/dist/cloudflare/room/comments.d.ts +1 -3
  24. package/dist/cloudflare/room/comments.js +6 -6
  25. package/dist/cloudflare/room/context.d.ts +19 -82
  26. package/dist/cloudflare/room/context.js +8 -8
  27. package/dist/cloudflare/room/forged.d.ts +1 -1
  28. package/dist/cloudflare/room/forged.js +2 -12
  29. package/dist/cloudflare/room/frames.d.ts +1 -1
  30. package/dist/cloudflare/room/frames.js +1 -1
  31. package/dist/cloudflare/room/history.d.ts +1 -25
  32. package/dist/cloudflare/room/history.js +39 -54
  33. package/dist/cloudflare/room/moves.d.ts +1 -13
  34. package/dist/cloudflare/room/moves.js +33 -57
  35. package/dist/cloudflare/room/presence.d.ts +1 -11
  36. package/dist/cloudflare/room/presence.js +4 -4
  37. package/dist/cloudflare/room/purge.d.ts +1 -2
  38. package/dist/cloudflare/room/purge.js +2 -2
  39. package/dist/cloudflare/room/replicas.d.ts +1 -7
  40. package/dist/cloudflare/room/replicas.js +2 -2
  41. package/dist/cloudflare/room/storage.d.ts +3 -32
  42. package/dist/cloudflare/room/storage.js +33 -108
  43. package/dist/cloudflare/room/updates.d.ts +4 -4
  44. package/dist/cloudflare/room/updates.js +17 -24
  45. package/dist/cloudflare/room/validation.d.ts +1 -5
  46. package/dist/cloudflare/room/validation.js +16 -37
  47. package/dist/collaboration/RemoteSelections.svelte +13 -17
  48. package/dist/collaboration/comments/client.d.ts +2 -2
  49. package/dist/collaboration/comments/client.js +1 -1
  50. package/dist/collaboration/history/index.d.ts +5 -5
  51. package/dist/collaboration/history/index.js +5 -5
  52. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  53. package/dist/collaboration/history/panel.svelte.js +223 -0
  54. package/dist/collaboration/providers.d.ts +12 -3
  55. package/dist/collaboration/providers.js +5 -4
  56. package/dist/components/Block.svelte +39 -55
  57. package/dist/components/Block.svelte.d.ts +7 -5
  58. package/dist/components/Content.svelte +1 -5
  59. package/dist/components/Edytor.svelte +53 -96
  60. package/dist/components/Edytor.svelte.d.ts +8 -12
  61. package/dist/components/Ranges.svelte +96 -0
  62. package/dist/components/Ranges.svelte.d.ts +19 -0
  63. package/dist/components/Suggestion.svelte +3 -2
  64. package/dist/components/Text.svelte +2 -5
  65. package/dist/components/Text.svelte.d.ts +1 -1
  66. package/dist/crdt/admission.d.ts +2 -9
  67. package/dist/crdt/admission.js +3 -9
  68. package/dist/crdt/attribution/attribution.d.ts +11 -72
  69. package/dist/crdt/attribution/attribution.js +5 -52
  70. package/dist/crdt/attribution/block.d.ts +0 -78
  71. package/dist/crdt/attribution/block.js +1 -144
  72. package/dist/crdt/data.d.ts +8 -13
  73. package/dist/crdt/data.js +30 -70
  74. package/dist/crdt/doc/anchors.js +4 -4
  75. package/dist/crdt/doc/content.d.ts +5 -1
  76. package/dist/crdt/doc/content.js +3 -1
  77. package/dist/crdt/doc/delete.d.ts +1 -0
  78. package/dist/crdt/doc/funnel.d.ts +0 -23
  79. package/dist/crdt/doc/funnel.js +34 -85
  80. package/dist/crdt/doc/gate.d.ts +8 -9
  81. package/dist/crdt/doc/gate.js +7 -17
  82. package/dist/crdt/doc/history.d.ts +87 -14
  83. package/dist/crdt/doc/history.js +334 -149
  84. package/dist/crdt/doc/layout.d.ts +0 -1
  85. package/dist/crdt/doc/layout.js +2 -3
  86. package/dist/crdt/doc/meta.d.ts +4 -4
  87. package/dist/crdt/doc/meta.js +10 -21
  88. package/dist/crdt/doc/moves.d.ts +4 -4
  89. package/dist/crdt/doc/moves.js +5 -5
  90. package/dist/crdt/doc/plan.d.ts +2 -0
  91. package/dist/crdt/doc/plan.js +2 -0
  92. package/dist/crdt/doc/reads.d.ts +1 -5
  93. package/dist/crdt/doc/reads.js +38 -49
  94. package/dist/crdt/doc/seed.d.ts +15 -6
  95. package/dist/crdt/doc/seed.js +27 -26
  96. package/dist/crdt/doc/split-merge.d.ts +1 -3
  97. package/dist/crdt/doc/split-merge.js +4 -5
  98. package/dist/crdt/doc/steps.d.ts +3 -7
  99. package/dist/crdt/doc/steps.js +20 -9
  100. package/dist/crdt/doc/types.d.ts +0 -10
  101. package/dist/crdt/document.d.ts +24 -115
  102. package/dist/crdt/document.js +207 -305
  103. package/dist/crdt/edytor-doc.d.ts +671 -90
  104. package/dist/crdt/edytor-doc.js +73 -149
  105. package/dist/crdt/engine-api.d.ts +15 -47
  106. package/dist/crdt/engine.d.ts +7 -17
  107. package/dist/crdt/engine.js +9 -19
  108. package/dist/crdt/flow.d.ts +9 -37
  109. package/dist/crdt/flow.js +260 -238
  110. package/dist/crdt/index.d.ts +26 -85
  111. package/dist/crdt/index.js +21 -47
  112. package/dist/crdt/operations.d.ts +24 -33
  113. package/dist/crdt/operations.js +7 -17
  114. package/dist/crdt/placement/display.d.ts +0 -2
  115. package/dist/crdt/placement/display.js +0 -15
  116. package/dist/crdt/placement/model.d.ts +160 -12
  117. package/dist/crdt/placement/model.js +413 -414
  118. package/dist/crdt/placement/rank.d.ts +1 -5
  119. package/dist/crdt/placement/rank.js +28 -38
  120. package/dist/crdt/protocol.d.ts +4 -5
  121. package/dist/crdt/protocol.js +3 -4
  122. package/dist/crdt/protocols/awareness.d.ts +3 -7
  123. package/dist/crdt/protocols/awareness.js +17 -33
  124. package/dist/crdt/protocols/envelope.d.ts +9 -29
  125. package/dist/crdt/protocols/envelope.js +8 -25
  126. package/dist/crdt/protocols/sync.d.ts +15 -30
  127. package/dist/crdt/protocols/sync.js +27 -89
  128. package/dist/crdt/providers/bound.d.ts +3 -1
  129. package/dist/crdt/providers/bound.js +3 -1
  130. package/dist/crdt/providers/container.d.ts +11 -17
  131. package/dist/crdt/providers/container.js +39 -27
  132. package/dist/crdt/providers/index.d.ts +34 -6
  133. package/dist/crdt/providers/index.js +106 -111
  134. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  135. package/dist/crdt/providers/indexeddb.js +29 -90
  136. package/dist/crdt/providers/room.d.ts +58 -2
  137. package/dist/crdt/providers/room.js +38 -21
  138. package/dist/crdt/providers/websocket.d.ts +1 -1
  139. package/dist/crdt/providers/websocket.js +3 -4
  140. package/dist/crdt/purge.d.ts +2 -2
  141. package/dist/crdt/purge.js +69 -6
  142. package/dist/crdt/rangeDelete.d.ts +4 -42
  143. package/dist/crdt/rangeDelete.js +7 -6
  144. package/dist/crdt/restore.d.ts +21 -1
  145. package/dist/crdt/restore.js +54 -59
  146. package/dist/crdt/schema.d.ts +2 -2
  147. package/dist/crdt/schema.js +4 -5
  148. package/dist/crdt/semantics.d.ts +10 -15
  149. package/dist/crdt/semantics.js +22 -21
  150. package/dist/crdt/storage.d.ts +7 -13
  151. package/dist/crdt/storage.js +10 -24
  152. package/dist/crdt/structs.d.ts +42 -47
  153. package/dist/crdt/structs.js +76 -67
  154. package/dist/crdt/tables.d.ts +9 -0
  155. package/dist/crdt/tables.js +20 -0
  156. package/dist/crdt/text/delete-index.d.ts +0 -13
  157. package/dist/crdt/text/delete-index.js +7 -14
  158. package/dist/crdt/text/deletes.d.ts +9 -22
  159. package/dist/crdt/text/deletes.js +11 -74
  160. package/dist/crdt/text/index/cache.js +3 -3
  161. package/dist/crdt/text/index/fold.d.ts +1 -2
  162. package/dist/crdt/text/index/fold.js +15 -10
  163. package/dist/crdt/text/index/layout.d.ts +0 -10
  164. package/dist/crdt/text/index/layout.js +6 -20
  165. package/dist/crdt/text/index/records.js +2 -1
  166. package/dist/crdt/text/index/report.js +5 -6
  167. package/dist/crdt/text/index/shared.d.ts +11 -4
  168. package/dist/crdt/text/index/shared.js +8 -7
  169. package/dist/crdt/text/index/state.d.ts +3 -33
  170. package/dist/crdt/text/index/state.js +2 -4
  171. package/dist/crdt/text/model.d.ts +82 -2
  172. package/dist/crdt/text/model.js +344 -354
  173. package/dist/crdt/text/rows.d.ts +0 -2
  174. package/dist/crdt/text/rows.js +0 -11
  175. package/dist/crdt/text/runs.d.ts +6 -3
  176. package/dist/crdt/text/runs.js +132 -137
  177. package/dist/crdt/text/streams.d.ts +1 -1
  178. package/dist/crdt/text/streams.js +1 -1
  179. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  180. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  181. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  182. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  183. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  184. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  185. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  186. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  187. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  188. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  189. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  190. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  191. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  192. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  193. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  194. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  195. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  196. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  197. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  198. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  199. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  200. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  201. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  202. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  203. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  204. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  205. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  206. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  207. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  208. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  209. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  210. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  211. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  212. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  213. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  214. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  215. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  216. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  217. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  218. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  219. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  220. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  221. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  222. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  223. package/dist/dnd/autoScroll.js +1 -2
  224. package/dist/dnd/pragmatic.d.ts +4 -22
  225. package/dist/dnd/pragmatic.js +7 -26
  226. package/dist/dnd/track.d.ts +14 -0
  227. package/dist/dnd/track.js +55 -0
  228. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  229. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  230. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  231. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  232. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  233. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  234. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  235. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  236. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  237. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  238. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  239. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  240. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  241. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  242. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  243. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  254. 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
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  265. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  293. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  294. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  295. package/dist/edytor.svelte.d.ts +34 -64
  296. package/dist/edytor.svelte.js +116 -180
  297. package/dist/events/beforeInputCommands.d.ts +6 -11
  298. package/dist/events/beforeInputCommands.js +185 -181
  299. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  300. package/dist/events/beforeInputDeleteCommands.js +153 -204
  301. package/dist/events/domTextOffset.d.ts +9 -9
  302. package/dist/events/domTextOffset.js +20 -48
  303. package/dist/events/events.utils.d.ts +0 -2
  304. package/dist/events/events.utils.js +0 -4
  305. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  306. package/dist/events/nativeInteractiveControl.js +28 -56
  307. package/dist/events/onBeforeInput.d.ts +6 -1
  308. package/dist/events/onBeforeInput.js +207 -331
  309. package/dist/events/onCopy.js +1 -5
  310. package/dist/events/onDrop.d.ts +1 -1
  311. package/dist/events/onDrop.js +27 -69
  312. package/dist/events/onFocus.d.ts +9 -4
  313. package/dist/events/onFocus.js +45 -67
  314. package/dist/events/onInput.d.ts +8 -4
  315. package/dist/events/onInput.js +34 -147
  316. package/dist/events/onKeyDown.js +55 -122
  317. package/dist/events/onPaste.d.ts +13 -1
  318. package/dist/events/onPaste.js +46 -76
  319. package/dist/index.d.ts +10 -14
  320. package/dist/index.js +3 -3
  321. package/dist/kinds.d.ts +4 -6
  322. package/dist/kinds.js +28 -27
  323. package/dist/labels.d.ts +81 -320
  324. package/dist/labels.js +180 -408
  325. package/dist/plugins/Chrome.svelte +29 -0
  326. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  327. package/dist/plugins/Control.svelte +23 -0
  328. package/dist/plugins/Control.svelte.d.ts +30 -0
  329. package/dist/plugins/anchored.svelte.d.ts +47 -0
  330. package/dist/plugins/anchored.svelte.js +73 -0
  331. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  332. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  333. package/dist/plugins/bands.svelte.d.ts +57 -0
  334. package/dist/plugins/bands.svelte.js +95 -0
  335. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -154
  336. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  337. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +39 -94
  338. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +190 -247
  339. package/dist/plugins/blockHandles/BlockHandles.svelte +27 -17
  340. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  341. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +25 -39
  342. package/dist/plugins/blockHandles/blockHandlesPlugin.js +129 -185
  343. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  344. package/dist/plugins/blockHandles/dragPreview.js +18 -16
  345. package/dist/plugins/blockHandles/dropIndicator.js +52 -60
  346. package/dist/plugins/blockHandles/geometry.d.ts +2 -1
  347. package/dist/plugins/blockHandles/geometry.js +6 -6
  348. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +28 -38
  349. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +116 -183
  350. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  351. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  352. package/dist/plugins/brand.d.ts +8 -0
  353. package/dist/plugins/brand.js +8 -0
  354. package/dist/plugins/chrome.d.ts +45 -38
  355. package/dist/plugins/chrome.js +59 -36
  356. package/dist/plugins/code/CodeHeader.svelte +3 -35
  357. package/dist/plugins/code/CodePlugin.svelte +50 -53
  358. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  359. package/dist/plugins/code/LanguageMenu.svelte +16 -125
  360. package/dist/plugins/code/LanguageMenu.svelte.d.ts +2 -1
  361. package/dist/plugins/code/code.css +5 -117
  362. package/dist/plugins/code/header.svelte.d.ts +2 -11
  363. package/dist/plugins/code/header.svelte.js +11 -38
  364. package/dist/plugins/code/languageMenu.svelte.d.ts +12 -32
  365. package/dist/plugins/code/languageMenu.svelte.js +30 -160
  366. package/dist/plugins/code/languages.d.ts +9 -19
  367. package/dist/plugins/code/languages.js +39 -126
  368. package/dist/plugins/columns/ColumnResize.svelte +13 -25
  369. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  370. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  371. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  372. package/dist/plugins/columns/columns.css +7 -26
  373. package/dist/plugins/columns/resize.svelte.d.ts +14 -51
  374. package/dist/plugins/columns/resize.svelte.js +70 -164
  375. package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
  376. package/dist/plugins/comments/CommentsController.svelte.js +14 -25
  377. package/dist/plugins/comments/CommentsSidebar.svelte +82 -431
  378. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +4 -2
  379. package/dist/plugins/comments/commentsPlugin.d.ts +25 -9
  380. package/dist/plugins/comments/commentsPlugin.js +12 -10
  381. package/dist/plugins/equation/EquationEditor.svelte +16 -130
  382. package/dist/plugins/equation/EquationEditor.svelte.d.ts +1 -2
  383. package/dist/plugins/equation/EquationPlugin.svelte +109 -165
  384. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +2 -2
  385. package/dist/plugins/equation/EquationView.svelte +20 -11
  386. package/dist/plugins/equation/equation.svelte.d.ts +37 -24
  387. package/dist/plugins/equation/equation.svelte.js +20 -94
  388. package/dist/plugins/equation/katex.js +6 -9
  389. package/dist/plugins/find/FindController.svelte.d.ts +8 -13
  390. package/dist/plugins/find/FindController.svelte.js +34 -55
  391. package/dist/plugins/find/findPlugin.d.ts +4 -8
  392. package/dist/plugins/find/findPlugin.js +29 -9
  393. package/dist/plugins/image/ImageChrome.svelte +6 -167
  394. package/dist/plugins/image/ImageChrome.svelte.d.ts +0 -2
  395. package/dist/plugins/image/ImagePlugin.svelte +45 -134
  396. package/dist/plugins/image/ImagePlugin.svelte.d.ts +1 -42
  397. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  398. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  399. package/dist/plugins/image/controls.svelte.d.ts +6 -36
  400. package/dist/plugins/image/controls.svelte.js +43 -212
  401. package/dist/plugins/image/image.d.ts +0 -5
  402. package/dist/plugins/image/image.js +0 -3
  403. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  404. package/dist/plugins/image/toolbar.svelte.js +145 -0
  405. package/dist/plugins/index.d.ts +31 -26
  406. package/dist/plugins/index.js +29 -22
  407. package/dist/plugins/list.svelte.d.ts +128 -0
  408. package/dist/plugins/list.svelte.js +217 -0
  409. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  410. package/dist/plugins/markdownShortcuts.js +6 -5
  411. package/dist/plugins/marquee/MarqueeBox.svelte +3 -20
  412. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +1 -1
  413. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +0 -2
  414. package/dist/plugins/marquee/MarqueeController.svelte.js +20 -23
  415. package/dist/plugins/marquee/marquee.js +4 -21
  416. package/dist/plugins/marquee/marqueePlugin.d.ts +4 -3
  417. package/dist/plugins/marquee/marqueePlugin.js +16 -15
  418. package/dist/plugins/media/AudioPlugin.svelte +3 -90
  419. package/dist/plugins/media/AudioPlugin.svelte.d.ts +1 -4
  420. package/dist/plugins/media/BookmarkPlugin.svelte +113 -120
  421. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +10 -15
  422. package/dist/plugins/media/EmbedPlugin.svelte +82 -86
  423. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +11 -17
  424. package/dist/plugins/media/EmptySlot.svelte +44 -0
  425. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  426. package/dist/plugins/media/FilePlugin.svelte +35 -113
  427. package/dist/plugins/media/FilePlugin.svelte.d.ts +12 -4
  428. package/dist/plugins/media/MediaEmpty.svelte +51 -90
  429. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  430. package/dist/plugins/media/SourceBlock.svelte +164 -0
  431. package/dist/plugins/media/SourceBlock.svelte.d.ts +33 -0
  432. package/dist/plugins/media/VideoPlugin.svelte +4 -99
  433. package/dist/plugins/media/VideoPlugin.svelte.d.ts +2 -5
  434. package/dist/plugins/media/empty.svelte.d.ts +36 -44
  435. package/dist/plugins/media/empty.svelte.js +41 -45
  436. package/dist/plugins/media/media.d.ts +90 -44
  437. package/dist/plugins/media/media.js +77 -99
  438. package/dist/plugins/media/urlPaste.svelte.d.ts +6 -37
  439. package/dist/plugins/media/urlPaste.svelte.js +32 -102
  440. package/dist/plugins/mention/MentionPlugin.svelte +42 -123
  441. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +6 -25
  442. package/dist/plugins/page/PageLink.svelte +54 -38
  443. package/dist/plugins/page/PagePlugin.svelte +20 -18
  444. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  445. package/dist/plugins/page/page.d.ts +35 -9
  446. package/dist/plugins/page/page.js +3 -4
  447. package/dist/plugins/pageLink/PageLinkPlugin.svelte +47 -107
  448. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +6 -25
  449. package/dist/plugins/planned.d.ts +10 -0
  450. package/dist/plugins/planned.js +12 -0
  451. package/dist/plugins/richtext/CalloutIcon.svelte +13 -26
  452. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  453. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  454. package/dist/plugins/richtext/EmptyBody.svelte +13 -20
  455. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  456. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  457. package/dist/plugins/richtext/RichTextPlugin.svelte +161 -177
  458. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +33 -34
  459. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  460. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  461. package/dist/plugins/richtext/body.js +2 -2
  462. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +50 -55
  463. package/dist/plugins/richtext/calloutIcons.svelte.js +86 -174
  464. package/dist/plugins/richtext/callouts.d.ts +15 -0
  465. package/dist/plugins/richtext/callouts.js +23 -0
  466. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  467. package/dist/plugins/richtext/controls.svelte.js +126 -0
  468. package/dist/plugins/richtext/richTextOperations.js +37 -28
  469. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -14
  470. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +34 -71
  471. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +9 -26
  472. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  473. package/dist/plugins/suggestions/SuggestionBars.svelte +27 -84
  474. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  475. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -18
  476. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  477. package/dist/plugins/table/TableChrome.svelte +40 -124
  478. package/dist/plugins/table/TablePlugin.svelte +106 -168
  479. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  480. package/dist/plugins/table/chrome.svelte.d.ts +38 -141
  481. package/dist/plugins/table/chrome.svelte.js +339 -589
  482. package/dist/plugins/table/ops.d.ts +47 -0
  483. package/dist/plugins/table/ops.js +233 -0
  484. package/dist/plugins/table/table.css +16 -152
  485. package/dist/plugins/table/table.d.ts +15 -14
  486. package/dist/plugins/table/table.js +22 -16
  487. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  488. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  489. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  490. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  491. package/dist/plugins/toc/toc.d.ts +41 -10
  492. package/dist/plugins/toc/toc.js +2 -3
  493. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +4 -68
  494. package/dist/plugins/toolbar/ToolbarController.svelte.js +63 -89
  495. package/dist/plugins/toolbar/toolbarPlugin.d.ts +8 -18
  496. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  497. package/dist/plugins/triggers/TriggerController.svelte.d.ts +4 -68
  498. package/dist/plugins/triggers/TriggerController.svelte.js +48 -129
  499. package/dist/plugins/triggers/place.d.ts +0 -9
  500. package/dist/plugins/triggers/place.js +1 -17
  501. package/dist/plugins/triggers/triggers.d.ts +31 -9
  502. package/dist/plugins/triggers/triggers.js +82 -62
  503. package/dist/plugins/uploads.svelte.d.ts +38 -20
  504. package/dist/plugins/uploads.svelte.js +39 -32
  505. package/dist/plugins.d.ts +154 -59
  506. package/dist/selection/domSelection.d.ts +13 -4
  507. package/dist/selection/domSelection.js +110 -183
  508. package/dist/selection/pointer.svelte.d.ts +8 -10
  509. package/dist/selection/pointer.svelte.js +32 -73
  510. package/dist/selection/replaceSelection.d.ts +21 -22
  511. package/dist/selection/replaceSelection.js +60 -69
  512. package/dist/selection/selection.svelte.d.ts +5 -73
  513. package/dist/selection/selection.svelte.js +224 -542
  514. package/dist/selection/selection.utils.d.ts +34 -11
  515. package/dist/selection/selection.utils.js +128 -247
  516. package/dist/selection/visibility.d.ts +3 -8
  517. package/dist/selection/visibility.js +7 -5
  518. package/dist/session/announcer.svelte.d.ts +2 -1
  519. package/dist/session/announcer.svelte.js +7 -3
  520. package/dist/session/attempt.d.ts +33 -39
  521. package/dist/session/attempt.js +61 -55
  522. package/dist/session/bindings.js +108 -139
  523. package/dist/session/commands.d.ts +47 -22
  524. package/dist/session/commands.js +206 -208
  525. package/dist/session/composition.svelte.d.ts +2 -4
  526. package/dist/session/composition.svelte.js +55 -65
  527. package/dist/session/editing/text.d.ts +6 -0
  528. package/dist/session/editing/text.js +17 -3
  529. package/dist/session/handles.d.ts +10 -1
  530. package/dist/session/handles.js +28 -0
  531. package/dist/session/history.d.ts +0 -4
  532. package/dist/session/history.js +15 -21
  533. package/dist/session/inputRules.js +75 -84
  534. package/dist/session/keymap.d.ts +1 -6
  535. package/dist/session/keymap.js +17 -20
  536. package/dist/session/moves.d.ts +10 -10
  537. package/dist/session/moves.js +31 -59
  538. package/dist/session/navigation.d.ts +3 -2
  539. package/dist/session/navigation.js +127 -168
  540. package/dist/session/ports.d.ts +2 -7
  541. package/dist/session/selection.d.ts +4 -3
  542. package/dist/session/selection.js +5 -0
  543. package/dist/session/suggestions.svelte.d.ts +1 -1
  544. package/dist/session/suggestions.svelte.js +42 -47
  545. package/dist/session/virtual.d.ts +3 -3
  546. package/dist/session/virtual.js +18 -40
  547. package/dist/surface/attributes.d.ts +1 -0
  548. package/dist/surface/attributes.js +3 -26
  549. package/dist/surface/cells.d.ts +5 -0
  550. package/dist/surface/cells.js +5 -0
  551. package/dist/surface/lines.d.ts +2 -2
  552. package/dist/surface/lines.js +1 -1
  553. package/dist/surface/observer.svelte.d.ts +3 -20
  554. package/dist/surface/observer.svelte.js +52 -72
  555. package/dist/surface/overlay.d.ts +41 -3
  556. package/dist/surface/overlay.js +92 -37
  557. package/dist/surface/pin.svelte.d.ts +5 -0
  558. package/dist/surface/pin.svelte.js +5 -0
  559. package/dist/surface/projector.svelte.d.ts +4 -6
  560. package/dist/surface/projector.svelte.js +42 -69
  561. package/dist/text/text.svelte.d.ts +14 -40
  562. package/dist/text/text.svelte.js +35 -51
  563. package/dist/text/wordBoundary.d.ts +19 -0
  564. package/dist/text/wordBoundary.js +29 -44
  565. package/dist/themes/notion.css +263 -106
  566. package/dist/utils/json.d.ts +3 -1
  567. package/dist/utils/json.js +52 -51
  568. package/dist/utils/listen.d.ts +8 -0
  569. package/dist/utils/listen.js +19 -0
  570. package/package.json +4 -5
  571. package/dist/block/block.utils.d.ts +0 -340
  572. package/dist/block/block.utils.js +0 -356
  573. package/dist/collaboration/history/HistoryPanel.svelte +0 -554
  574. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  575. package/dist/collaboration/history/panel.d.ts +0 -61
  576. package/dist/collaboration/history/panel.js +0 -3
  577. package/dist/components/SuggestionRanges.svelte +0 -58
  578. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  579. package/dist/crdt/doc/table.d.ts +0 -21
  580. package/dist/crdt/doc/table.js +0 -288
  581. package/dist/crdt/migration/generation.d.ts +0 -58
  582. package/dist/crdt/migration/generation.js +0 -70
  583. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  584. package/dist/crdt/migration/legacy-schema.js +0 -151
  585. package/dist/crdt/migration/migrate.d.ts +0 -56
  586. package/dist/crdt/migration/migrate.js +0 -227
  587. package/dist/crdt/nodes.d.ts +0 -121
  588. package/dist/crdt/nodes.js +0 -56
  589. package/dist/crdt/text/index/checks.d.ts +0 -15
  590. package/dist/crdt/text/index/checks.js +0 -156
  591. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  592. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  593. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  594. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  595. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  596. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  597. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  598. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  599. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  600. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  601. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  602. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  603. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  604. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  605. package/dist/edytor.utils.d.ts +0 -50
  606. package/dist/edytor.utils.js +0 -67
  607. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -335
  608. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  609. package/dist/plugins/find/FindBar.svelte +0 -170
  610. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  611. package/dist/plugins/find/FindHighlights.svelte +0 -75
  612. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  613. package/dist/plugins/icons.d.ts +0 -2
  614. package/dist/plugins/icons.js +0 -63
  615. package/dist/plugins/image/ImageEmpty.svelte +0 -93
  616. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -15
  617. package/dist/plugins/image/empty.svelte.d.ts +0 -56
  618. package/dist/plugins/image/empty.svelte.js +0 -83
  619. package/dist/plugins/keepInView.d.ts +0 -4
  620. package/dist/plugins/keepInView.js +0 -6
  621. package/dist/plugins/media/UrlPasteMenu.svelte +0 -92
  622. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -9
  623. package/dist/plugins/richtext/CalloutIconMenu.svelte +0 -98
  624. package/dist/plugins/richtext/CalloutIconMenu.svelte.d.ts +0 -9
  625. package/dist/plugins/richtext/labels.d.ts +0 -9
  626. package/dist/plugins/richtext/labels.js +0 -7
  627. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -276
  628. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  629. package/dist/plugins/table/dragPreview.d.ts +0 -29
  630. package/dist/plugins/table/dragPreview.js +0 -103
  631. package/dist/plugins/toolbar/LinkCard.svelte +0 -122
  632. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -9
  633. package/dist/plugins/toolbar/Toolbar.svelte +0 -349
  634. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  635. package/dist/plugins/triggers/TriggerMenu.svelte +0 -135
  636. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  637. package/dist/session/props.d.ts +0 -28
  638. package/dist/session/props.js +0 -162
  639. package/dist/text/deltas.d.ts +0 -22
  640. package/dist/text/deltas.js +0 -46
  641. package/dist/text/text.utils.d.ts +0 -45
  642. package/dist/text/text.utils.js +0 -199
@@ -29,6 +29,7 @@
29
29
  * `moveBlocksBetweenRooms(namespace, …)` runs steps 1–3 from the host Worker.
30
30
  */
31
31
  import type { JSONBlock } from '../utils/json.js';
32
+ import { type Unit } from '../crdt/restore.js';
32
33
  /** Where imported blocks land in the destination: under `parent` at `index`. */
33
34
  export type MoveDestination = {
34
35
  parent: string | null;
@@ -105,23 +106,6 @@ export type MoveNamespace = {
105
106
  };
106
107
  /** The default grace period: late edits are forwarded this long after the commit. */
107
108
  export declare const DEFAULT_MOVE_GRACE_DAYS = 30;
108
- /** One display unit: a character (a code point) with its marks, or an inline atom. */
109
- type Unit = {
110
- key: string;
111
- text?: string;
112
- marks?: Record<string, unknown>;
113
- atom?: JSONBlock;
114
- };
115
- /** `content` one unit each, keyed for comparison. */
116
- export declare const unitsOf: (content?: JSONBlock["content"]) => Unit[];
117
- /** Units back to JSON content (adjacent text of equal marks joined). */
118
- export declare const contentOf: (units: readonly Unit[]) => NonNullable<JSONBlock["content"]>;
119
- /** The one changed stretch from `x` to `y`: `x[p, e)` became `mid`. */
120
- export declare const hunk: (x: readonly Unit[], y: readonly Unit[]) => {
121
- p: number;
122
- e: number;
123
- mid: Unit[];
124
- };
125
109
  /**
126
110
  * Merge the source's change (`base` → `src`) into the destination's
127
111
  * (`base` → `dst`), each read as one stretch: disjoint stretches both
@@ -156,4 +140,3 @@ export declare const moveBlocksBetweenRooms: (namespace: MoveNamespace, move: {
156
140
  * cannot reach the destination itself. Returns how many batches went.
157
141
  */
158
142
  export declare const forwardLateEdits: (namespace: MoveNamespace, from: string) => Promise<number>;
159
- export {};
@@ -1,54 +1,8 @@
1
1
  import { canonKey } from '../crdt/text/model.js';
2
+ import { hunk } from '../crdt/restore.js';
2
3
  /** The default grace period: late edits are forwarded this long after the commit. */
3
4
  export const DEFAULT_MOVE_GRACE_DAYS = 30;
4
- /** `content` one unit each, keyed for comparison. */
5
- export const unitsOf = (content = []) => {
6
- const out = [];
7
- for (const item of content) {
8
- if ('text' in item && typeof item.text === 'string') {
9
- const marks = (item.marks ?? undefined);
10
- const tag = canonKey(marks ?? {});
11
- for (const ch of item.text)
12
- out.push({ key: `${ch}|${tag}`, text: ch, marks });
13
- }
14
- else {
15
- const atom = item;
16
- out.push({
17
- key: `@${atom.id ?? ''}|${atom.type}|${canonKey(atom.data ?? {})}`,
18
- atom: atom
19
- });
20
- }
21
- }
22
- return out;
23
- };
24
- /** Units back to JSON content (adjacent text of equal marks joined). */
25
- export const contentOf = (units) => {
26
- const out = [];
27
- for (const u of units) {
28
- if (u.atom !== undefined) {
29
- out.push(u.atom);
30
- continue;
31
- }
32
- const last = out[out.length - 1];
33
- if (last?.text !== undefined && canonKey(last.marks ?? {}) === canonKey(u.marks ?? {}))
34
- last.text += u.text;
35
- else
36
- out.push({ text: u.text, ...(u.marks === undefined ? {} : { marks: u.marks }) });
37
- }
38
- return out;
39
- };
40
- /** The one changed stretch from `x` to `y`: `x[p, e)` became `mid`. */
41
- export const hunk = (x, y) => {
42
- let p = 0;
43
- while (p < x.length && p < y.length && x[p].key === y[p].key)
44
- p++;
45
- let q = 0;
46
- while (q < x.length - p &&
47
- q < y.length - p &&
48
- x[x.length - 1 - q].key === y[y.length - 1 - q].key)
49
- q++;
50
- return { p, e: x.length - q, mid: y.slice(p, y.length - q) };
51
- };
5
+ // ── units and the three-way merge ─────────────────────────────────────
52
6
  /**
53
7
  * Merge the source's change (`base` → `src`) into the destination's
54
8
  * (`base` → `dst`), each read as one stretch: disjoint stretches both
@@ -18,14 +18,8 @@ export declare const allowance: <K>(allowances: {
18
18
  set(key: K, bucket: Bucket): unknown;
19
19
  }, key: K, perSecond: number, now?: number) => boolean;
20
20
  export declare class Admission {
21
+ #private;
21
22
  private readonly room;
22
- /** Each socket's update allowance. */
23
- private readonly allowances;
24
- /**
25
- * Each socket's chunked frame in flight, released when it ends or its
26
- * socket closes (memory: a wake loses it, and the socket is faulted).
27
- */
28
- private readonly chunkReaders;
29
23
  constructor(room: RoomContext);
30
24
  /** Release `ws`'s chunk sequence in flight (it closed, or was closed). */
31
25
  forget(ws: WebSocket): void;
@@ -33,17 +27,6 @@ export declare class Admission {
33
27
  message(ws: WebSocket, message: string | ArrayBuffer): void;
34
28
  /** One frame: whole as it came, or reassembled from its chunks. */
35
29
  private onFrame;
36
- /**
37
- * One chunk of a frame too large to send whole (a provider's
38
- * reconnect diff): buffered per socket into one buffer of the
39
- * sequence's announced size, the whole frame handled once its sequence
40
- * ends (`net.chunk.inbound`). A sequence announcing more than
41
- * `maxInboundFrameBytes` is a frame quota refusal, before anything is
42
- * buffered; its start is admitted by {@link admitChunks}. A part with no
43
- * sequence started — the room woke between two chunks and lost the
44
- * buffer — faults the socket (1011): its provider redials and resends.
45
- */
46
- private onChunk;
47
30
  /**
48
31
  * Admit a chunk sequence's start (`net.chunk.inbound`), before its
49
32
  * buffer is allocated: a read-only socket's is skipped, never buffered
@@ -57,57 +40,15 @@ export declare class Admission {
57
40
  sequences: number;
58
41
  bytes: number;
59
42
  };
60
- /**
61
- * A quota refused the socket's frame: it is not applied, and the
62
- * socket is closed `4413` (`quota: <name>`), a refusal its provider
63
- * reports (`onSyncRefused`) and does not redial. Never a dropped frame
64
- * on a live socket: the sender's later frames would build on it and
65
- * wait in the room's memory for good, unstored and unacknowledged; and
66
- * a redial would resend it and meet the same quota.
67
- */
68
- private overQuota;
69
43
  /**
70
44
  * The update rate quota: a token bucket per socket, refilled at
71
45
  * `maxUpdatesPerSecond` up to ten seconds' worth. `false`: over it.
72
46
  * Presence messages draw from a bucket of their own (`RoomPresence`).
73
47
  */
74
48
  private allow;
75
- /**
76
- * The document quota: would `incoming` bytes take the document
77
- * past `maxDocumentBytes`? Its measure is what its records hold and what
78
- * the engine holds waiting; update records count until compaction
79
- * collapses them, so it compacts first when they would.
80
- */
81
- private overDocument;
82
49
  private onSync;
83
50
  /** A client's Step2 or Update: admitted, applied, stored, relayed, validated, acknowledged. */
84
51
  private onUpdate;
85
- /**
86
- * A delete of items the room does not hold (a relayer's delete of an
87
- * author's edit a restore lost) waits in the engine for them: it is
88
- * stored as it arrives, so it survives eviction and compaction and
89
- * applies when the author's edit returns. Except the entries the frame's
90
- * own still-waiting rewrites replace (`stay`): those deletes wait with
91
- * the rewrites in memory, as the rewrites may never integrate. A frame
92
- * that released a pending forged stamp discarded every waiting delete
93
- * (`applyRemote`): the stored ones go too. The deletes the frame applied
94
- * from the waiting ones go back to its sender, whom the relay of the
95
- * update skips; they are returned. The cap holds here too: deletes of
96
- * the frame's own structs that wait for an origin (stored, or kept in
97
- * memory with its rewrites) pass the check before applying; when the
98
- * frame's new waiting deletes take the room past
99
- * {@link MAX_WAITING_DELETES}, they are all dropped (refusal `waiting`,
100
- * the sender's), unstored and unacknowledged. A replaced entry is
101
- * deleted by its rewrite anyway, should that integrate.
102
- */
103
- private settleDeletes;
104
- /**
105
- * Of `deletes`, those the room stored — applied, or waiting in a
106
- * `pending` record — and so acknowledges by id: never one it dropped
107
- * (the waiting cap, a stripped rewrite's replaced entry) or keeps
108
- * waiting in memory only.
109
- */
110
- private storedDeletes;
111
52
  /**
112
53
  * A frame that would write during a storage outage (`room.storage.outage`):
113
54
  * closed 1011 before it is applied, the live doc kept as stored. Its
@@ -59,18 +59,18 @@ class ChunksRefused extends Error {
59
59
  export class Admission {
60
60
  room;
61
61
  /** Each socket's update allowance. */
62
- allowances = new WeakMap();
62
+ #allowances = new WeakMap();
63
63
  /**
64
64
  * Each socket's chunked frame in flight, released when it ends or its
65
65
  * socket closes (memory: a wake loses it, and the socket is faulted).
66
66
  */
67
- chunkReaders = new Map();
67
+ #chunkReaders = new Map();
68
68
  constructor(room) {
69
69
  this.room = room;
70
70
  }
71
71
  /** Release `ws`'s chunk sequence in flight (it closed, or was closed). */
72
72
  forget(ws) {
73
- this.chunkReaders.delete(ws);
73
+ this.#chunkReaders.delete(ws);
74
74
  }
75
75
  /** One message of a document socket (`AttachedDocument.webSocketMessage`). */
76
76
  message(ws, message) {
@@ -108,7 +108,7 @@ export class Admission {
108
108
  const limit = room.limits.maxInboundFrameBytes;
109
109
  // The frame quota: never decoded past it.
110
110
  if (bytes.length > limit) {
111
- return this.overQuota(ws, attachment.user, 'frame', { bytes: bytes.length, limit });
111
+ return this.#overQuota(ws, attachment.user, 'frame', { bytes: bytes.length, limit });
112
112
  }
113
113
  const decoder = E.createDecoder(bytes);
114
114
  // 1 · Admission: the generation word, before anything is decoded.
@@ -118,7 +118,7 @@ export class Admission {
118
118
  try {
119
119
  const type = decode(() => E.readVarUint(decoder));
120
120
  if (type === E.messageChunk)
121
- return this.onChunk(ws, attachment, doc, decoder);
121
+ return this.#onChunk(ws, attachment, doc, decoder);
122
122
  if (type === E.messageSync)
123
123
  return this.onSync(ws, attachment, doc, decoder);
124
124
  if (type === E.messageAwareness) {
@@ -155,28 +155,28 @@ export class Admission {
155
155
  * sequence started — the room woke between two chunks and lost the
156
156
  * buffer — faults the socket (1011): its provider redials and resends.
157
157
  */
158
- onChunk(ws, attachment, doc, decoder) {
158
+ #onChunk(ws, attachment, doc, decoder) {
159
159
  const room = this.room;
160
- let read = this.chunkReaders.get(ws);
160
+ let read = this.#chunkReaders.get(ws);
161
161
  if (read === undefined) {
162
162
  read = E.createChunkReader(room.limits.maxInboundFrameBytes, (total) => this.admitChunks(ws, total));
163
- this.chunkReaders.set(ws, read);
163
+ this.#chunkReaders.set(ws, read);
164
164
  }
165
165
  let whole;
166
166
  try {
167
167
  whole = read(decoder);
168
168
  }
169
169
  catch (error) {
170
- this.chunkReaders.delete(ws);
170
+ this.#chunkReaders.delete(ws);
171
171
  if (error instanceof ChunkLimitError) {
172
- return this.overQuota(ws, attachment.user, 'frame', {
172
+ return this.#overQuota(ws, attachment.user, 'frame', {
173
173
  bytes: error.total,
174
174
  limit: error.limit
175
175
  });
176
176
  }
177
177
  if (error instanceof ChunksRefused) {
178
178
  if (error.quota === 'rate') {
179
- return this.overQuota(ws, attachment.user, 'rate', error.detail);
179
+ return this.#overQuota(ws, attachment.user, 'rate', error.detail);
180
180
  }
181
181
  // The room's buffer is full, not the sender at fault: it redials.
182
182
  room.note({
@@ -215,7 +215,7 @@ export class Admission {
215
215
  if (!this.allow(ws))
216
216
  throw new ChunksRefused('rate', { perSecond: room.limits.maxUpdatesPerSecond });
217
217
  let buffered = 0;
218
- for (const [other, read] of this.chunkReaders)
218
+ for (const [other, read] of this.#chunkReaders)
219
219
  if (other !== ws)
220
220
  buffered += read.buffered;
221
221
  const limit = room.limits.maxBufferedBytes;
@@ -228,7 +228,7 @@ export class Admission {
228
228
  buffered() {
229
229
  let sequences = 0;
230
230
  let bytes = 0;
231
- for (const read of this.chunkReaders.values()) {
231
+ for (const read of this.#chunkReaders.values()) {
232
232
  if (read.buffered === 0)
233
233
  continue;
234
234
  sequences++;
@@ -244,11 +244,11 @@ export class Admission {
244
244
  * wait in the room's memory for good, unstored and unacknowledged; and
245
245
  * a redial would resend it and meet the same quota.
246
246
  */
247
- overQuota(ws, user, quota, detail) {
247
+ #overQuota(ws, user, quota, detail) {
248
248
  const room = this.room;
249
249
  room.note({ reason: 'quota', detail: { user, quota, ...detail } });
250
250
  room.log({ edytor: 'quota', user, quota });
251
- this.chunkReaders.delete(ws);
251
+ this.#chunkReaders.delete(ws);
252
252
  room.presence.depart(ws);
253
253
  room.close(ws, CLOSE.quota, `quota: ${quota}`);
254
254
  }
@@ -258,7 +258,7 @@ export class Admission {
258
258
  * Presence messages draw from a bucket of their own (`RoomPresence`).
259
259
  */
260
260
  allow(ws) {
261
- return allowance(this.allowances, ws, this.room.limits.maxUpdatesPerSecond);
261
+ return allowance(this.#allowances, ws, this.room.limits.maxUpdatesPerSecond);
262
262
  }
263
263
  /**
264
264
  * The document quota: would `incoming` bytes take the document
@@ -266,7 +266,7 @@ export class Admission {
266
266
  * the engine holds waiting; update records count until compaction
267
267
  * collapses them, so it compacts first when they would.
268
268
  */
269
- overDocument(incoming, freed) {
269
+ #overDocument(incoming, freed) {
270
270
  const room = this.room;
271
271
  const { storage } = room;
272
272
  const limit = room.limits.maxDocumentBytes;
@@ -295,7 +295,7 @@ export class Admission {
295
295
  const syncType = decode(() => E.readVarUint(decoder));
296
296
  // The rate quota counts every sync message, a Step1 too (it costs a Step2).
297
297
  if (!this.allow(ws)) {
298
- return this.overQuota(ws, attachment.user, 'rate', {
298
+ return this.#overQuota(ws, attachment.user, 'rate', {
299
299
  perSecond: room.limits.maxUpdatesPerSecond
300
300
  });
301
301
  }
@@ -313,11 +313,7 @@ export class Admission {
313
313
  if (syncType !== E.messageYjsSyncStep2 && syncType !== E.messageYjsUpdate) {
314
314
  return room.refuse(ws, { reason: 'malformed', detail: `sync type ${syncType}` });
315
315
  }
316
- // A SyncStep2 is v2 on the wire: every path below reads v1.
317
- const update = decode(() => {
318
- const payload = E.readVarUint8Array(decoder);
319
- return syncType === E.messageYjsSyncStep2 ? sync.step2Update(payload) : payload;
320
- });
316
+ const update = decode(() => E.readVarUint8Array(decoder));
321
317
  const started = now();
322
318
  try {
323
319
  this.onUpdate(ws, attachment, doc, update);
@@ -345,8 +341,8 @@ export class Admission {
345
341
  }
346
342
  // The document quota, net of what the frame deletes.
347
343
  if (decoded.structs.some((struct) => !(struct instanceof Y.Skip)) &&
348
- this.overDocument(update.length, freedBy(doc, decoded.ds))) {
349
- return this.overQuota(ws, attachment.user, 'document', {
344
+ this.#overDocument(update.length, freedBy(doc, decoded.ds))) {
345
+ return this.#overQuota(ws, attachment.user, 'document', {
350
346
  bytes: storage.documentBytes,
351
347
  incoming: update.length,
352
348
  limit: room.limits.maxDocumentBytes
@@ -445,7 +441,7 @@ export class Admission {
445
441
  const stay = doc.store.pendingStructs === null
446
442
  ? Y.createIdSet()
447
443
  : replacedEntries(doc, decoded.structs, ({ id }) => !stripped.has(id.client) && storedStruct(doc, id.client, id.clock) === null);
448
- const released = room.handle(() => this.settleDeletes(ws, attachment.user, doc, waiting, stay, discarded !== undefined));
444
+ const released = room.handle(() => this.#settleDeletes(ws, attachment.user, doc, waiting, stay, discarded !== undefined));
449
445
  if (room.unstored !== null)
450
446
  return this.fault(ws, room.unstored);
451
447
  if (discarded)
@@ -464,7 +460,7 @@ export class Admission {
464
460
  return this.fault(ws, room.unstored);
465
461
  }
466
462
  // A dropped delete is not acknowledged: its sender stays unsaved.
467
- room.send(ws, savedFrame(doc, addIds(this.storedDeletes(doc, decoded.ds), released)));
463
+ room.send(ws, savedFrame(doc, addIds(this.#storedDeletes(doc, decoded.ds), released)));
468
464
  // Waiting writes the frame released are other sockets' (a relayer's
469
465
  // edit that built on an author's lost one): they are stored now, with
470
466
  // the deletes that waited with them.
@@ -491,7 +487,7 @@ export class Admission {
491
487
  * the sender's), unstored and unacknowledged. A replaced entry is
492
488
  * deleted by its rewrite anyway, should that integrate.
493
489
  */
494
- settleDeletes(ws, user, doc, waiting, stay, discarded) {
490
+ #settleDeletes(ws, user, doc, waiting, stay, discarded) {
495
491
  const room = this.room;
496
492
  const { storage } = room;
497
493
  let now = pendingDeletes(doc);
@@ -535,7 +531,7 @@ export class Admission {
535
531
  * (the waiting cap, a stripped rewrite's replaced entry) or keeps
536
532
  * waiting in memory only.
537
533
  */
538
- storedDeletes(doc, deletes) {
534
+ #storedDeletes(doc, deletes) {
539
535
  const unheld = Y.diffIdSet(deletes, heldDeletes(doc, deletes));
540
536
  return Y.diffIdSet(deletes, Y.diffIdSet(unheld, this.room.storage.storedWaiting));
541
537
  }
@@ -13,6 +13,7 @@ import { type RoomContext } from './context.js';
13
13
  /** The largest request body `routeDocumentComments` forwards, in bytes. */
14
14
  export declare const MAX_COMMENT_REQUEST_BYTES: number;
15
15
  export declare class RoomComments {
16
+ #private;
16
17
  private readonly room;
17
18
  private ready;
18
19
  /** Each verified user's HTTP request allowance (memory: a wake refills it). */
@@ -22,7 +23,6 @@ export declare class RoomComments {
22
23
  constructor(room: RoomContext);
23
24
  /** Comments are on unless the room's `comments` option is `false`. */
24
25
  get enabled(): boolean;
25
- private ensure;
26
26
  /**
27
27
  * The comments' last sequence number (`0`: none yet): the one `meta`
28
28
  * keeps, and never below a stored thread's `rev` (a generation cutover
@@ -52,8 +52,6 @@ export declare class RoomComments {
52
52
  * anchor marks removed when it removed a thread; then `onComment`.
53
53
  */
54
54
  apply(request: CommentRequest, actor: CommentActor): Promise<CommentOutcome>;
55
- /** A removed thread's anchor: its marks leave the document, as one room transaction. */
56
- private removeAnchors;
57
55
  /** Send `change` to every socket that subscribed. */
58
56
  private broadcast;
59
57
  /**
@@ -50,7 +50,7 @@ export class RoomComments {
50
50
  get enabled() {
51
51
  return this.room.options.comments !== false;
52
52
  }
53
- ensure() {
53
+ #ensure() {
54
54
  if (this.ready)
55
55
  return;
56
56
  const { sql, tables } = this.room;
@@ -134,7 +134,7 @@ export class RoomComments {
134
134
  if (!this.enabled)
135
135
  return { seq: 0, threads: [] };
136
136
  return noTimers(() => {
137
- this.ensure();
137
+ this.#ensure();
138
138
  const { sql, tables } = this.room;
139
139
  const comments = new Map();
140
140
  for (const row of sql
@@ -186,7 +186,7 @@ export class RoomComments {
186
186
  if (!this.enabled)
187
187
  return { status: 'refused', reason: 'missing', message: 'no comments' };
188
188
  const outcome = noTimers(() => {
189
- this.ensure();
189
+ this.#ensure();
190
190
  const { sql, tables } = room;
191
191
  const thread = validCommentId(request.thread) ? this.read(request.thread) : null;
192
192
  const threads = request.op === 'add'
@@ -212,7 +212,7 @@ export class RoomComments {
212
212
  this.store(decided.change);
213
213
  this.broadcast(decided.change);
214
214
  if (decided.change.type === 'removed')
215
- this.removeAnchors(decided.change.thread.id);
215
+ this.#removeAnchors(decided.change.thread.id);
216
216
  room.log({
217
217
  edytor: 'comment',
218
218
  type: decided.change.type,
@@ -233,7 +233,7 @@ export class RoomComments {
233
233
  return outcome;
234
234
  }
235
235
  /** A removed thread's anchor: its marks leave the document, as one room transaction. */
236
- removeAnchors(id) {
236
+ #removeAnchors(id) {
237
237
  const room = this.room;
238
238
  if (room.live === null || room.busy)
239
239
  return;
@@ -244,7 +244,7 @@ export class RoomComments {
244
244
  const mark = `${COMMENT_MARK}:${id}`;
245
245
  room.transact((facade) => {
246
246
  for (const run of [...runs].reverse())
247
- facade.unsetMark(run.block, run.offset, run.length, mark);
247
+ facade.formatRange(run.block, run.offset, run.length, { [mark]: null });
248
248
  });
249
249
  }
250
250
  catch (error) {