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
@@ -69,11 +69,7 @@ export declare const encodeRank: (segs: readonly RankSeg[]) => string;
69
69
  * strictly-between key always exist (modulo the documented VMIN bound).
70
70
  */
71
71
  export declare const rankBetween: (left: string | undefined, right: string | undefined, clientId: number, rand?: () => number, compact?: boolean) => string;
72
- /**
73
- * The digit of the run marker data arrays wrote up to 0.1.0-next.21 (a run
74
- * of that form is the marker segment, then ranks of the client's own): still
75
- * read as a run, so what a client inserts there stays in it.
76
- */
72
+ /** The base of the run band: a run member's digit lies just above it. */
77
73
  export declare const RANK_RUN: number;
78
74
  /**
79
75
  * A rank in `(left, right)` for an insert right after `left` — one rule for
@@ -66,6 +66,10 @@ export class RankSpaceExhausted extends Error {
66
66
  this.name = 'RankSpaceExhausted';
67
67
  }
68
68
  }
69
+ /** A rank this module cannot encode, a malformed rank, or bounds out of order (a caller's error). */
70
+ const bad = (what) => {
71
+ throw new Error(`rank: ${what}`);
72
+ };
69
73
  /** `n` (≥ 0) as exactly `width` base-64 places. */
70
74
  const places = (n, width) => {
71
75
  let out = '';
@@ -74,7 +78,7 @@ const places = (n, width) => {
74
78
  n = Math.floor(n / BASE);
75
79
  }
76
80
  if (n > 0)
77
- throw new Error(`rank encode overflow: value exceeds ${width} places`);
81
+ bad('overflow');
78
82
  return out;
79
83
  };
80
84
  /** How many base-64 places `m` (≥ 1) takes. */
@@ -87,13 +91,13 @@ const width = (m) => {
87
91
  /** A signed integer as a self-delimiting, order-preserving string. */
88
92
  const encInt = (v) => {
89
93
  if (!Number.isSafeInteger(v))
90
- throw new Error(`rank encode: bad digit ${v}`);
94
+ bad('digit');
91
95
  if (v === 0)
92
96
  return 'H';
93
97
  const m = Math.abs(v);
94
98
  const k = width(m);
95
99
  if (k > MAX_PLACES)
96
- throw new Error(`rank encode overflow: ${v}`);
100
+ bad('overflow');
97
101
  if (v > 0)
98
102
  return String.fromCharCode(ZERO + k) + places(m, k);
99
103
  // Complemented: a greater magnitude sorts first.
@@ -102,16 +106,14 @@ const encInt = (v) => {
102
106
  /** The integer at `s[i]`, and where it ends. */
103
107
  const decInt = (s, i) => {
104
108
  const k = s.charCodeAt(i) - ZERO;
105
- if (Number.isNaN(k) || Math.abs(k) > MAX_PLACES)
106
- throw new Error(`rank decode: bad length at ${i}`);
107
109
  const n = Math.abs(k);
108
- if (i + 1 + n > s.length)
109
- throw new Error(`rank decode: truncated at ${i}`);
110
+ if (Number.isNaN(k) || n > MAX_PLACES || i + 1 + n > s.length)
111
+ bad('malformed');
110
112
  let x = 0;
111
113
  for (let j = i + 1; j <= i + n; j++) {
112
114
  const d = ALPHABET.indexOf(s[j]);
113
115
  if (d < 0)
114
- throw new Error(`rank decode: bad char ${s[j]}`);
116
+ bad('malformed');
115
117
  x = x * BASE + d;
116
118
  }
117
119
  const v = k === 0 ? 0 : k > 0 ? x : -(BASE ** n - 1 - x);
@@ -120,7 +122,7 @@ const decInt = (s, i) => {
120
122
  /** Decode a rank string into its segment array (`t: Infinity` where a segment has no tie). */
121
123
  export const decodeRank = (rank) => {
122
124
  if (rank.length === 0)
123
- throw new Error('rank decode: empty');
125
+ bad('malformed');
124
126
  const segs = [];
125
127
  for (let i = 0; i < rank.length;) {
126
128
  const [v, j] = decInt(rank, i);
@@ -131,7 +133,7 @@ export const decodeRank = (rank) => {
131
133
  segs.push({ v, t });
132
134
  }
133
135
  if (segs[segs.length - 1].t === Infinity)
134
- throw new Error('rank decode: untied last segment');
136
+ bad('malformed');
135
137
  return segs;
136
138
  };
137
139
  /** Encode segments back to the persisted string form. */
@@ -139,7 +141,7 @@ export const encodeRank = (segs) => {
139
141
  let out = '';
140
142
  for (const { v, t } of segs) {
141
143
  if (v < RANK_VMIN || v > RANK_VMAX)
142
- throw new Error(`rank encode overflow: digit ${v}`);
144
+ bad('overflow');
143
145
  out += encInt(v);
144
146
  if (t !== Infinity)
145
147
  out += TIE + encInt(t);
@@ -170,9 +172,8 @@ const APPEND_WINDOW = 2 ** 16;
170
172
  export const rankBetween = (left, right, clientId, rand = Math.random, compact = true) => {
171
173
  const L = left === undefined ? [] : decodeRank(left);
172
174
  const R = right === undefined ? [] : decodeRank(right);
173
- if (left !== undefined && right !== undefined && left >= right) {
174
- throw new Error(`rankBetween: left >= right (${left} !< ${right})`);
175
- }
175
+ if (left !== undefined && right !== undefined && left >= right)
176
+ bad('left >= right');
176
177
  const rightOpen = right === undefined;
177
178
  const path = [];
178
179
  // `locked`: the emitted prefix already sorts below the right bound.
@@ -209,9 +210,8 @@ export const rankBetween = (left, right, clientId, rand = Math.random, compact =
209
210
  // Right bound ended while left continues: valid only when `locked`
210
211
  // already holds (an earlier copied segment was < the right's). If not,
211
212
  // right is a proper prefix of left — i.e. right < left, caller error.
212
- if (!rightOpen && !locked) {
213
- throw new Error(`rankBetween: right bound is a prefix of left (right < left)`);
214
- }
213
+ if (!rightOpen && !locked)
214
+ bad('left >= right');
215
215
  // No right bound at this level (open, or `locked` below it): emit
216
216
  // within the bounded append window — dense growth, and one more
217
217
  // level per exhausted gap, not one per insert (SW12-crdt-2).
@@ -254,16 +254,12 @@ export const rankBetween = (left, right, clientId, rand = Math.random, compact =
254
254
  else if (c > 0 && !locked) {
255
255
  // Never locked and left's segment exceeds right's at the first
256
256
  // differing level → left > right (invalid bounds — caller error).
257
- throw new Error(`rankBetween: left >= right at level ${i}`);
257
+ bad('left >= right');
258
258
  }
259
259
  path.push(lSeg);
260
260
  }
261
261
  };
262
- /**
263
- * The digit of the run marker data arrays wrote up to 0.1.0-next.21 (a run
264
- * of that form is the marker segment, then ranks of the client's own): still
265
- * read as a run, so what a client inserts there stays in it.
266
- */
262
+ /** The base of the run band: a run member's digit lies just above it. */
267
263
  export const RANK_RUN = -(2 ** 30);
268
264
  /**
269
265
  * A run member's digit lies in `(RANK_RUN, RANK_RUN + RUN_BAND)`: below every
@@ -297,25 +293,25 @@ export const rankAfter = (left, right, client, rand = Math.random) => {
297
293
  const top = encodeRank([{ v: RANK_RUN + RUN_BAND, t: 0 }]);
298
294
  /**
299
295
  * `prefix` and a rank after `after` (`undefined`: the run opens) in the
300
- * run: inside the band when `band`. Opening, it takes the band's middle,
301
- * or a digit below the run's first member; at the run's end it appends as
302
- * an open end does (a window, not half the band); else between the two.
296
+ * run, inside the band. Opening, it takes the band's middle, or a digit
297
+ * below the run's first member; at the run's end it appends as an open
298
+ * end does (a window, not half the band); else between the two.
303
299
  */
304
- const own = (prefix, after, band) => {
300
+ const own = (prefix, after) => {
305
301
  const tail = (r) => r && r.length > prefix.length && r.startsWith(prefix) ? r.slice(prefix.length) : undefined;
306
302
  let next = tail(right);
307
- if (band && next !== undefined && next > top)
303
+ if (next !== undefined && next > top)
308
304
  next = undefined;
309
305
  let mine;
310
306
  if (after === undefined) {
311
307
  if (next === undefined)
312
308
  mine = encodeRank([{ v: RUN_START, t: client }]);
313
- else if (band && next > bottom)
309
+ else if (next > bottom)
314
310
  mine = rankBetween(bottom, next, client, rand, false);
315
311
  else
316
312
  return plain();
317
313
  }
318
- else if (next === undefined && band) {
314
+ else if (next === undefined) {
319
315
  const append = rankBetween(after, undefined, client, rand, false);
320
316
  mine = append < top ? append : rankBetween(after, top, client, rand, false);
321
317
  }
@@ -326,17 +322,11 @@ export const rankAfter = (left, right, client, rand = Math.random) => {
326
322
  };
327
323
  // A member of the client's run: the next member, inside the band.
328
324
  if (last.t === client && inRun(last.v))
329
- return own(encodeRank(segs.slice(0, -1)), encodeRank([last]), true);
330
- // A run of the earlier form (the marker, then the client's ranks): stays in it.
331
- const k = segs.findLastIndex((g) => g.v === RANK_RUN);
332
- if (k >= 0 && segs[k].t === client) {
333
- const prefix = encodeRank(segs.slice(0, k + 1));
334
- return own(prefix, left.length > prefix.length ? left.slice(prefix.length) : undefined, false);
335
- }
325
+ return own(encodeRank(segs.slice(0, -1)), encodeRank([last]));
336
326
  // A rank the client made: its run opens right after it. The prefix keeps
337
327
  // `left`'s tie: a peer's rank of the same digit and a greater tie
338
328
  // then sorts after the whole run, never between `left` and it.
339
329
  if (last.t === client)
340
- return own(left, undefined, true);
330
+ return own(left, undefined);
341
331
  return plain();
342
332
  };
@@ -16,7 +16,7 @@
16
16
  * codec that needs no `Awareness` instance (whose sweep timer blocks
17
17
  * hibernation);
18
18
  * - the admission gates (`assertAdmission`, `inspectAdmission`, …) that
19
- * diagnostics and migration tooling read;
19
+ * diagnostics read;
20
20
  * - the raw provider classes behind `createIndexeddbSync` and
21
21
  * `createWebsocketSync` (`IndexeddbPersistence`, `WebsocketProvider`)
22
22
  * and `storeState`.
@@ -24,15 +24,14 @@
24
24
  * `pnpm check:worker` keeps this graph Worker-safe; the site's
25
25
  * `server/protocol` page documents the contract.
26
26
  */
27
- export { bindCrdt, type Crdt, type EngineApi, type EngineDoc, type EngineNode, type EngineDeepEvent, type EngineTransaction, type EngineItemRef, type YNode, type YItem, type YDoc, type YUndoManager, type YTransaction } from './index.js';
27
+ export { bindCrdt, type Crdt, type EngineApi, type EngineDoc, type EngineNode, type EngineTransaction, type EngineItemRef, type YNode, type YItem, type YDoc, type YUndoManager, type YTransaction } from './index.js';
28
28
  export { SCHEMA_VERSION, META_KEY } from './edytor-doc.js';
29
- export { GENERATION, generationWord, frame, PROTOCOL_VERSION, GENERATION_RECORD, STORED_GENERATION_RECORD, STORAGE_FORMAT, GenerationMismatchError, readProtocolVersion, type GenerationRecord, type StorageFormat } from './protocols/envelope.js';
30
- export { PREVIOUS_SCHEMA, isPreviousGenerationRecord } from './migration/generation.js';
29
+ export { GENERATION, generationWord, frame, PROTOCOL_VERSION, GENERATION_RECORD, GenerationMismatchError, readProtocolVersion, type GenerationRecord } from './protocols/envelope.js';
31
30
  export { messageSync, messageAwareness, messageAuth, messageQueryAwareness, messageSaved, messageChunk, messageComments, MAX_FRAME_BYTES, chunkFrame, createChunkReader, ChunkLimitError, type ChunkReader, CLOSE } from './providers/room.js';
32
31
  export { messageYjsSyncStep1, messageYjsSyncStep2, messageYjsUpdate, type SyncProtocol } from './protocols/sync.js';
33
32
  export { messagePermissionDenied, messageReadOnly, writePermissionDenied, writeReadOnly } from './protocols/auth.js';
34
33
  export { commentsSubscribe, commentsSnapshot, commentsChange, writeCommentsSubscribe, writeCommentsSnapshot, writeCommentsChange, readCommentsMessage, type CommentChange, type CommentMessage, type CommentSnapshot, type CommentThread, type ThreadComment } from './protocols/comments.js';
35
- export { applyAwarenessUpdate, encodeAwarenessUpdate, modifyAwarenessUpdate, readAwarenessEntries, writeAwarenessEntries, type AwarenessEntry } from './protocols/awareness.js';
34
+ export { applyAwarenessUpdate, encodeAwarenessUpdate, readAwarenessEntries, writeAwarenessEntries, type AwarenessEntry } from './protocols/awareness.js';
36
35
  export { createDecoder, readVarUint, readVarUint8Array, type Decoder } from 'lib0-v14/decoding';
37
36
  export { writeVarUint8Array, type Encoder } from 'lib0-v14/encoding';
38
37
  export { assertAdmission, assertSchema, assertUsableDoc, checkSchema, inspectAdmission, isInitialized, registryEmpty, schemaVersion, SchemaMismatchError, UndecodableUpdateError, UnsupportedDocError, type AdmissionResult, type AdmissionVerdict, type SchemaProblem } from './admission.js';
@@ -16,7 +16,7 @@
16
16
  * codec that needs no `Awareness` instance (whose sweep timer blocks
17
17
  * hibernation);
18
18
  * - the admission gates (`assertAdmission`, `inspectAdmission`, …) that
19
- * diagnostics and migration tooling read;
19
+ * diagnostics read;
20
20
  * - the raw provider classes behind `createIndexeddbSync` and
21
21
  * `createWebsocketSync` (`IndexeddbPersistence`, `WebsocketProvider`)
22
22
  * and `storeState`.
@@ -28,14 +28,13 @@
28
28
  export { bindCrdt } from './index.js';
29
29
  // ── The frame contract and the generation ──────────────────────────────
30
30
  export { SCHEMA_VERSION, META_KEY } from './edytor-doc.js';
31
- export { GENERATION, generationWord, frame, PROTOCOL_VERSION, GENERATION_RECORD, STORED_GENERATION_RECORD, STORAGE_FORMAT, GenerationMismatchError, readProtocolVersion } from './protocols/envelope.js';
32
- export { PREVIOUS_SCHEMA, isPreviousGenerationRecord } from './migration/generation.js';
31
+ export { GENERATION, generationWord, frame, PROTOCOL_VERSION, GENERATION_RECORD, GenerationMismatchError, readProtocolVersion } from './protocols/envelope.js';
33
32
  // ── Message types, acknowledgements and chunks ─────────────────────────
34
33
  export { messageSync, messageAwareness, messageAuth, messageQueryAwareness, messageSaved, messageChunk, messageComments, MAX_FRAME_BYTES, chunkFrame, createChunkReader, ChunkLimitError, CLOSE } from './providers/room.js';
35
34
  export { messageYjsSyncStep1, messageYjsSyncStep2, messageYjsUpdate } from './protocols/sync.js';
36
35
  export { messagePermissionDenied, messageReadOnly, writePermissionDenied, writeReadOnly } from './protocols/auth.js';
37
36
  export { commentsSubscribe, commentsSnapshot, commentsChange, writeCommentsSubscribe, writeCommentsSnapshot, writeCommentsChange, readCommentsMessage } from './protocols/comments.js';
38
- export { applyAwarenessUpdate, encodeAwarenessUpdate, modifyAwarenessUpdate, readAwarenessEntries, writeAwarenessEntries } from './protocols/awareness.js';
37
+ export { applyAwarenessUpdate, encodeAwarenessUpdate, readAwarenessEntries, writeAwarenessEntries } from './protocols/awareness.js';
39
38
  // Minimal wire codec for frame bodies (lib0 — the codec the frames are
40
39
  // written with): read the header/subtype/payload, write a payload into a
41
40
  // `frame` callback's encoder.
@@ -32,12 +32,12 @@ type AwarenessEvents = {
32
32
  * outdated, and remote states expire after {@link outdatedTimeout}.
33
33
  */
34
34
  export declare class Awareness extends IsolatedObservable<AwarenessEvents> {
35
+ #private;
35
36
  doc: AwarenessDoc;
36
37
  clientID: number;
37
38
  /** Maps from client id to client state */
38
39
  states: AwarenessStates;
39
40
  meta: Map<number, MetaClientState>;
40
- private _checkInterval;
41
41
  /**
42
42
  * Idempotence guard — `destroy()` is reachable twice through the
43
43
  * OWNED-doc + OWNED-awareness composition: `EdytorDocument.destroy()`
@@ -59,6 +59,7 @@ export declare class Awareness extends IsolatedObservable<AwarenessEvents> {
59
59
  * peers. This change is propagated to remote clients.
60
60
  */
61
61
  export declare const removeAwarenessStates: (awareness: Awareness, clients: number[], origin: unknown) => void;
62
+ /** The update carrying `clients`' entries of `awareness` (their states in `states`). */
62
63
  export declare const encodeAwarenessUpdate: (awareness: Awareness, clients: number[], states?: AwarenessStates) => Uint8Array;
63
64
  /** One awareness entry on the wire: a client's clock and state (`null` = removed). */
64
65
  export type AwarenessEntry = {
@@ -72,13 +73,8 @@ export type AwarenessEntry = {
72
73
  * must not hold timers (a hibernating Durable Object) can track presence.
73
74
  */
74
75
  export declare const readAwarenessEntries: (update: Uint8Array) => AwarenessEntry[];
75
- /** Instance-free awareness codec: encode entries as an update (the wire format of {@link encodeAwarenessUpdate}). */
76
+ /** Instance-free awareness codec: encode entries as an update. */
76
77
  export declare const writeAwarenessEntries: (entries: readonly AwarenessEntry[]) => Uint8Array;
77
- /**
78
- * Modify the content of an awareness update before re-encoding it to an
79
- * awareness update — e.g. a central server preventing identity hijacking.
80
- */
81
- export declare const modifyAwarenessUpdate: (update: Uint8Array, modify: (state: Record<string, unknown> | null) => Record<string, unknown> | null) => Uint8Array;
82
78
  /**
83
79
  * Apply an encoded awareness update. `origin` is forwarded on the emitted
84
80
  * change/update events.
@@ -14,11 +14,11 @@
14
14
  * wire compatibility is not peer compatibility (presence payload versioning
15
15
  * is the presence layer's concern).
16
16
  */
17
+ import { jsonEquals } from '../../utils/json.js';
17
18
  import * as encoding from 'lib0-v14/encoding';
18
19
  import * as decoding from 'lib0-v14/decoding';
19
20
  import * as time from 'lib0-v14/time';
20
21
  import * as math from 'lib0-v14/math';
21
- import * as f from 'lib0-v14/function';
22
22
  import { IsolatedObservable } from './observable.js';
23
23
  export const outdatedTimeout = 30000;
24
24
  /**
@@ -33,7 +33,7 @@ export class Awareness extends IsolatedObservable {
33
33
  /** Maps from client id to client state */
34
34
  states;
35
35
  meta;
36
- _checkInterval;
36
+ #checkInterval;
37
37
  /**
38
38
  * Idempotence guard — `destroy()` is reachable twice through the
39
39
  * OWNED-doc + OWNED-awareness composition: `EdytorDocument.destroy()`
@@ -49,7 +49,7 @@ export class Awareness extends IsolatedObservable {
49
49
  this.clientID = doc.clientID;
50
50
  this.states = new Map();
51
51
  this.meta = new Map();
52
- this._checkInterval = setInterval(() => {
52
+ this.#checkInterval = setInterval(() => {
53
53
  const now = time.getUnixTime();
54
54
  const localMeta = this.meta.get(this.clientID);
55
55
  if (this.getLocalState() !== null &&
@@ -73,7 +73,7 @@ export class Awareness extends IsolatedObservable {
73
73
  // Node returns a `Timeout` (has `unref`), browsers a number — a stale-
74
74
  // state sweep must never be the thing keeping a node/SSR process alive
75
75
  // (a server-rendered component can't run its client teardown path).
76
- this._checkInterval.unref?.();
76
+ this.#checkInterval.unref?.();
77
77
  doc.on('destroy', () => {
78
78
  this.destroy();
79
79
  });
@@ -87,7 +87,7 @@ export class Awareness extends IsolatedObservable {
87
87
  this.emit('destroy', [this]);
88
88
  this.setLocalState(null);
89
89
  super.destroy();
90
- clearInterval(this._checkInterval);
90
+ clearInterval(this.#checkInterval);
91
91
  }
92
92
  getLocalState() {
93
93
  return this.states.get(this.clientID) || null;
@@ -121,7 +121,7 @@ export class Awareness extends IsolatedObservable {
121
121
  }
122
122
  else {
123
123
  updated.push(clientID);
124
- if (!f.equalityDeep(prevState, state)) {
124
+ if (!jsonEquals(prevState, state)) {
125
125
  filteredUpdated.push(clientID);
126
126
  }
127
127
  }
@@ -168,20 +168,12 @@ export const removeAwarenessStates = (awareness, clients, origin) => {
168
168
  awareness.emit('update', [{ added: [], updated: [], removed }, origin]);
169
169
  }
170
170
  };
171
- export const encodeAwarenessUpdate = (awareness, clients, states = awareness.states) => {
172
- const len = clients.length;
173
- const encoder = encoding.createEncoder();
174
- encoding.writeVarUint(encoder, len);
175
- for (let i = 0; i < len; i++) {
176
- const clientID = clients[i];
177
- const state = states.get(clientID) || null;
178
- const clock = awareness.meta.get(clientID).clock;
179
- encoding.writeVarUint(encoder, clientID);
180
- encoding.writeVarUint(encoder, clock);
181
- encoding.writeVarString(encoder, JSON.stringify(state));
182
- }
183
- return encoding.toUint8Array(encoder);
184
- };
171
+ /** The update carrying `clients`' entries of `awareness` (their states in `states`). */
172
+ export const encodeAwarenessUpdate = (awareness, clients, states = awareness.states) => writeAwarenessEntries(clients.map((clientID) => ({
173
+ clientID,
174
+ clock: awareness.meta.get(clientID).clock,
175
+ state: states.get(clientID) || null
176
+ })));
185
177
  /**
186
178
  * Instance-free awareness codec: decode an update into its entries. Pure —
187
179
  * no `Awareness` (whose constructor starts an interval), so a relay that
@@ -195,7 +187,7 @@ export const readAwarenessEntries = (update) => {
195
187
  state: JSON.parse(decoding.readVarString(decoder))
196
188
  }));
197
189
  };
198
- /** Instance-free awareness codec: encode entries as an update (the wire format of {@link encodeAwarenessUpdate}). */
190
+ /** Instance-free awareness codec: encode entries as an update. */
199
191
  export const writeAwarenessEntries = (entries) => encoding.encode((encoder) => {
200
192
  encoding.writeVarUint(encoder, entries.length);
201
193
  for (const { clientID, clock, state } of entries) {
@@ -204,27 +196,19 @@ export const writeAwarenessEntries = (entries) => encoding.encode((encoder) => {
204
196
  encoding.writeVarString(encoder, JSON.stringify(state));
205
197
  }
206
198
  });
207
- /**
208
- * Modify the content of an awareness update before re-encoding it to an
209
- * awareness update — e.g. a central server preventing identity hijacking.
210
- */
211
- export const modifyAwarenessUpdate = (update, modify) => writeAwarenessEntries(readAwarenessEntries(update).map((entry) => ({ ...entry, state: modify(entry.state) })));
212
199
  /**
213
200
  * Apply an encoded awareness update. `origin` is forwarded on the emitted
214
201
  * change/update events.
215
202
  */
216
203
  export const applyAwarenessUpdate = (awareness, update, origin) => {
217
- const decoder = decoding.createDecoder(update);
218
204
  const timestamp = time.getUnixTime();
219
205
  const added = [];
220
206
  const updated = [];
221
207
  const filteredUpdated = [];
222
208
  const removed = [];
223
- const len = decoding.readVarUint(decoder);
224
- for (let i = 0; i < len; i++) {
225
- const clientID = decoding.readVarUint(decoder);
226
- let clock = decoding.readVarUint(decoder);
227
- const state = JSON.parse(decoding.readVarString(decoder));
209
+ for (const entry of readAwarenessEntries(update)) {
210
+ const { clientID, state } = entry;
211
+ let { clock } = entry;
228
212
  const clientMeta = awareness.meta.get(clientID);
229
213
  const prevState = awareness.states.get(clientID);
230
214
  const currClock = clientMeta === undefined ? 0 : clientMeta.clock;
@@ -255,7 +239,7 @@ export const applyAwarenessUpdate = (awareness, update, origin) => {
255
239
  removed.push(clientID);
256
240
  }
257
241
  else if (state !== null) {
258
- if (!f.equalityDeep(state, prevState)) {
242
+ if (!jsonEquals(state, prevState)) {
259
243
  filteredUpdated.push(clientID);
260
244
  }
261
245
  updated.push(clientID);
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * ```
9
9
  * varuint GENERATION | varuint messageType | payload
10
- * GENERATION = PROTOCOL_VERSION * 1000 + SCHEMA_VERSION (14005 at schema 5)
10
+ * GENERATION = PROTOCOL_VERSION * 1000 + SCHEMA_VERSION (14006 at schema 6)
11
11
  * ```
12
12
  *
13
13
  * The word names the whole generation — engine and wire (the protocol,
@@ -35,47 +35,27 @@ export declare const generationWord: (schema: number) => number;
35
35
  export declare const GENERATION: number;
36
36
  /**
37
37
  * Storage-generation prefix for the v14 IndexedDB databases: one database
38
- * per schema generation since generation 5, so a generation-4 store is
39
- * left as it was (rollback) beside its successor.
38
+ * per schema generation, so an earlier generation's store is left as it
39
+ * was beside its successor (and never read).
40
40
  */
41
- export declare const GENERATION_PREFIX = "edytor-v14-g5:";
42
- /** The prefix of the IndexedDB databases of schema generations 1 to 4. */
43
- export declare const PREVIOUS_GENERATION_PREFIX = "edytor-v14:";
41
+ export declare const GENERATION_PREFIX: string;
44
42
  /** The IndexedDB name a v14 provider uses for logical document `name`. */
45
43
  export declare const generationDbName: (name: string) => string;
46
44
  /**
47
- * How a container stores its snapshots: `'v1'` (the
48
- * update encoding, every container before it) or `'v2'` (the columnar
49
- * encoding, gzip-compressed where the platform has `CompressionStream`;
50
- * a compressed snapshot starts with gzip's `1f 8b`, a v2 update with
51
- * `00`). Update rows stay v1 in both: a keystroke's update is smaller in
52
- * v1 (24 bytes against 28, a one-character delete 13 against 24).
45
+ * Record written to the `custom` store marking a DB as this generation's.
46
+ * Every row of a container holds an update in the engine's one encoding;
47
+ * a snapshot row may be gzip-compressed (`crdt/storage.ts`).
53
48
  */
54
- export type StorageFormat = 'v1' | 'v2';
55
- /** Record written to the `custom` store marking a DB as this generation's. */
56
49
  export type GenerationRecord = {
57
50
  engine: 'yjs-v14';
58
51
  protocol: number;
59
52
  schema: number;
60
- /** Absent: `'v1'` (written before the v2 snapshots). */
61
- storage?: StorageFormat;
62
53
  };
63
54
  export declare const GENERATION_KEY = "generation";
64
- /** This generation's wire and schema (the storage format aside: {@link STORED_GENERATION_RECORD}). */
55
+ /** This generation's record. */
65
56
  export declare const GENERATION_RECORD: GenerationRecord;
66
- /** The storage format this build writes its snapshots in. */
67
- export declare const STORAGE_FORMAT: StorageFormat;
68
- /** The record this build stamps a container with (its generation and its storage format). */
69
- export declare const STORED_GENERATION_RECORD: GenerationRecord;
70
- /**
71
- * Is `v` this generation's container record? A record without `schema` was
72
- * written before the schema joined the generation, by builds that spoke
73
- * schema 1 only — it is a schema-1 record. A storage format this build
74
- * does not read (a later one) is another generation's.
75
- */
57
+ /** Is `v` this generation's container record? Any other is refused, never read. */
76
58
  export declare const isGenerationRecord: (v: unknown) => v is GenerationRecord;
77
- /** The storage format of a container record ({@link isGenerationRecord} first). */
78
- export declare const storageOf: (record: GenerationRecord) => StorageFormat;
79
59
  export declare class GenerationMismatchError extends Error {
80
60
  readonly dbName: string;
81
61
  readonly found: unknown;
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * ```
9
9
  * varuint GENERATION | varuint messageType | payload
10
- * GENERATION = PROTOCOL_VERSION * 1000 + SCHEMA_VERSION (14005 at schema 5)
10
+ * GENERATION = PROTOCOL_VERSION * 1000 + SCHEMA_VERSION (14006 at schema 6)
11
11
  * ```
12
12
  *
13
13
  * The word names the whole generation — engine and wire (the protocol,
@@ -36,47 +36,30 @@ export const generationWord = (schema) => PROTOCOL_VERSION * 1000 + schema;
36
36
  export const GENERATION = generationWord(SCHEMA_VERSION);
37
37
  /**
38
38
  * Storage-generation prefix for the v14 IndexedDB databases: one database
39
- * per schema generation since generation 5, so a generation-4 store is
40
- * left as it was (rollback) beside its successor.
39
+ * per schema generation, so an earlier generation's store is left as it
40
+ * was beside its successor (and never read).
41
41
  */
42
- export const GENERATION_PREFIX = 'edytor-v14-g5:';
43
- /** The prefix of the IndexedDB databases of schema generations 1 to 4. */
44
- export const PREVIOUS_GENERATION_PREFIX = 'edytor-v14:';
42
+ export const GENERATION_PREFIX = `edytor-v14-g${SCHEMA_VERSION}:`;
45
43
  /** The IndexedDB name a v14 provider uses for logical document `name`. */
46
44
  export const generationDbName = (name) => GENERATION_PREFIX + name;
47
45
  export const GENERATION_KEY = 'generation';
48
- /** This generation's wire and schema (the storage format aside: {@link STORED_GENERATION_RECORD}). */
46
+ /** This generation's record. */
49
47
  export const GENERATION_RECORD = {
50
48
  engine: 'yjs-v14',
51
49
  protocol: PROTOCOL_VERSION,
52
50
  schema: SCHEMA_VERSION
53
51
  };
54
- /** The storage format this build writes its snapshots in. */
55
- export const STORAGE_FORMAT = 'v2';
56
- /** The record this build stamps a container with (its generation and its storage format). */
57
- export const STORED_GENERATION_RECORD = {
58
- ...GENERATION_RECORD,
59
- storage: STORAGE_FORMAT
60
- };
61
- /**
62
- * Is `v` this generation's container record? A record without `schema` was
63
- * written before the schema joined the generation, by builds that spoke
64
- * schema 1 only — it is a schema-1 record. A storage format this build
65
- * does not read (a later one) is another generation's.
66
- */
52
+ /** Is `v` this generation's container record? Any other is refused, never read. */
67
53
  export const isGenerationRecord = (v) => typeof v === 'object' &&
68
54
  v !== null &&
69
55
  v.engine === GENERATION_RECORD.engine &&
70
56
  v.protocol === GENERATION_RECORD.protocol &&
71
- (v.schema ?? 1) === SCHEMA_VERSION &&
72
- [undefined, 'v1', 'v2'].includes(v.storage);
73
- /** The storage format of a container record ({@link isGenerationRecord} first). */
74
- export const storageOf = (record) => record.storage ?? 'v1';
57
+ v.schema === SCHEMA_VERSION;
75
58
  export class GenerationMismatchError extends Error {
76
59
  dbName;
77
60
  found;
78
61
  constructor(dbName, found) {
79
- super(`Stored document "${dbName}" is not a v14 document generation of this schema (found ${JSON.stringify(found)}). It is never applied — run the migration path, or re-import the document from JSON.`);
62
+ super(`Stored document "${dbName}" is not a v14 document generation of this schema (found ${JSON.stringify(found)}). It is never applied — re-import the document from JSON.`);
80
63
  this.dbName = dbName;
81
64
  this.found = found;
82
65
  this.name = 'GenerationMismatchError';
@@ -7,38 +7,28 @@
7
7
  * (`applyRemote`) and are stamped with a non-null `remoteApplyOrigin` so
8
8
  * echo suppression + undo exclusion keep working.
9
9
  *
10
- * Wire format (y-protocols' layout; SyncStep2 in the v2 encoding since
11
- * schema generation 5):
10
+ * Wire format (y-protocols' layout; every update in the engine's one
11
+ * encoding, the columnar one upstream calls v2, since schema generation 6):
12
12
  *
13
13
  * ```
14
14
  * varuint messageType | payload
15
15
  * messageType 0 (SyncStep1): varuint8array stateVector
16
- * messageType 1 (SyncStep2): varuint8array update (v2, columnar)
17
- * messageType 2 (Update): varuint8array update (v1)
16
+ * messageType 1 (SyncStep2): varuint8array update
17
+ * messageType 2 (Update): varuint8array update
18
18
  * ```
19
19
  *
20
- * A SyncStep2 carries a state — a document's or what a peer lacks — and
21
- * the v2 encoding is smaller on any such batch (a 1,000-block document:
22
- * 280,557 → 220,444 bytes, gzip 55,016 → 28,476). An Update carries one
23
- * transaction, and v1 is smaller for most of those (a one-character
24
- * delete 13 vs 24 bytes, a block move 62 vs 84, a block delete 43 vs 65),
25
- * so updates stay v1: what the engine emits on `doc.on('update')` is
26
- * relayed as it is. A receiver converts a SyncStep2 to v1
27
- * ({@link step2Update}) and applies it through the one inbound path. That does NOT mean v13 and v14 peers are interchangeable — the
28
- * provider layer (`providers/*`) wraps every message in the protocol-version
29
- * envelope (`protocols/envelope.ts`) so engines that do not speak v14 never
30
- * reach `readSyncMessage`.
20
+ * What the engine emits on `doc.on('update')` is relayed as it is, and a
21
+ * SyncStep2 is applied through the same inbound path as an Update. That
22
+ * does NOT mean v13 and v14 peers are interchangeable — the provider layer
23
+ * (`providers/*`) wraps every message in the protocol-version envelope
24
+ * (`protocols/envelope.ts`) so engines that do not speak v14 never reach
25
+ * {@link applyRemote}.
31
26
  *
32
- * API boundary — two tiers:
33
- *
34
- * - RAW readers (`readSyncStep1`, `readSyncStep2`, `readUpdate`,
35
- * `readSyncMessage`) apply through the inbound refusal but report
36
- * nothing, and `readSyncMessage` THROWS on an unknown message type. They
37
- * exist for harnesses/custom transports; the shipped providers do not
38
- * route room traffic through them.
39
- * - The path the providers use lives in `providers/room.ts`:
40
- * `applyRemote` + per-type dispatch, so a refused payload never mutates
41
- * the live doc and an unknown type is a reported drop, not a throw.
27
+ * One inbound path: every payload a client or a server receives applies
28
+ * through `applyRemote`, which refuses a forged schema stamp before
29
+ * anything integrates; the providers dispatch by message type in
30
+ * `providers/room.ts` (an unknown type is a reported drop), the room in
31
+ * `cloudflare/room/admission.ts`.
42
32
  *
43
33
  * Engine functions are injected (`bindSync(Y)`): `src/lib` never
44
34
  * runtime-imports the vendored `.js` (see `engine-api.ts`), so the caller
@@ -68,12 +58,7 @@ export declare const bindSync: (Y: EngineApi) => {
68
58
  remoteApplyOrigin: symbol;
69
59
  writeSyncStep1: (encoder: encoding.Encoder, doc: YDoc) => void;
70
60
  writeSyncStep2: (encoder: encoding.Encoder, doc: YDoc, encodedStateVector?: Uint8Array) => void;
71
- step2Update: (payload: Uint8Array) => Uint8Array;
72
- readSyncStep1: (decoder: decoding.Decoder, encoder: encoding.Encoder, doc: YDoc) => void;
73
- readSyncStep2: (decoder: decoding.Decoder, doc: YDoc, transactionOrigin: unknown, errorHandler?: (error: Error) => unknown) => void;
74
61
  writeUpdate: (encoder: encoding.Encoder, update: Uint8Array) => void;
75
- readUpdate: (decoder: decoding.Decoder, doc: YDoc, transactionOrigin: unknown, errorHandler?: (error: Error) => unknown) => void;
76
- readSyncMessage: (decoder: decoding.Decoder, encoder: encoding.Encoder, doc: YDoc, transactionOrigin: unknown, errorHandler?: (error: Error) => unknown) => number;
77
62
  applyRemote: (doc: YDoc, update: Uint8Array, transactionOrigin: unknown, errorHandler?: (error: Error) => unknown) => {
78
63
  applied: boolean;
79
64
  problem: SchemaProblem | null;