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
@@ -52,11 +52,9 @@
52
52
  * left out of the ack), the rest applied. Compaction reclaims the
53
53
  * waiting deletes of client ids no user registered and no socket holds;
54
54
  * `dropWaitingDeletes()` every one.
55
- * - storage format: the generation record says `storage: 'v2'` —
56
- * snapshots in the v2 encoding, compressed in place after they are
57
- * stored (`compressLater`), inflated at start (`inflate`); update and
58
- * pending records stay v1. A container without `storage` (0.1.0-next.22)
59
- * is all v1, and its next compaction rewrites it.
55
+ * - storage format: every record holds an update in the engine's one
56
+ * encoding; a snapshot is compressed in place after it is stored
57
+ * (`#compressLater`) and inflated at start (`inflate`).
60
58
  * - a Step2 serves the STORED state: the engine's pending structs (waiting
61
59
  * for a dependency, never stored) are not served.
62
60
  * - a frame larger than `maxFrameBytes` (32 MiB) goes out as chunks the
@@ -128,6 +126,8 @@ export declare const DEFAULT_SAVE_AFTER = 2000;
128
126
  * about 100 MB at worst. Raise it for documents of long text.
129
127
  */
130
128
  export declare const DEFAULT_MAX_DOCUMENT_BYTES: number;
129
+ /** The share of the document quota past which the room logs its size, by default. */
130
+ export declare const DEFAULT_DOCUMENT_WARNING = 0.8;
131
131
  /**
132
132
  * The largest frame a socket may send, reassembled from chunks: room for a
133
133
  * whole document at the default quota (a client seeding an empty room).
@@ -211,6 +211,8 @@ export type DocumentRoomEnv = {
211
211
  EDYTOR_COMPACT_AFTER?: string | number;
212
212
  EDYTOR_SAVE_AFTER?: string | number;
213
213
  EDYTOR_MAX_DOCUMENT_BYTES?: string | number;
214
+ /** The share of the document quota past which the room logs its size (`documentWarning`). */
215
+ EDYTOR_DOCUMENT_WARNING?: string | number;
214
216
  EDYTOR_MAX_INBOUND_FRAME_BYTES?: string | number;
215
217
  EDYTOR_MAX_BUFFERED_BYTES?: string | number;
216
218
  EDYTOR_MAX_UPDATES_PER_SECOND?: string | number;
@@ -290,6 +292,8 @@ export type Timing = {
290
292
  export type RoomMetrics = {
291
293
  /** The document's size as the document quota measures it: its records, uncompressed. */
292
294
  documentBytes: number;
295
+ /** The document quota (`maxDocumentBytes`): writes past it are refused (`4413`). */
296
+ documentLimit: number;
293
297
  /** What its rows take in storage (a snapshot compressed). */
294
298
  storedBytes: number;
295
299
  /** Logical records stored (the generation record included), and their rows. */
@@ -366,6 +370,11 @@ export type RoomLogEntry = {
366
370
  edytor: 'quota';
367
371
  user: string;
368
372
  quota: string;
373
+ } | {
374
+ edytor: 'size';
375
+ bytes: number;
376
+ limit: number;
377
+ share: number;
369
378
  } | {
370
379
  edytor: 'denied';
371
380
  user: string;
@@ -378,12 +387,6 @@ export type RoomLogEntry = {
378
387
  edytor: 'fault';
379
388
  reason: 'storage' | 'internal';
380
389
  detail: string;
381
- } | {
382
- edytor: 'convert';
383
- from: number;
384
- to: number;
385
- blocks: number;
386
- bytes: number;
387
390
  } | {
388
391
  edytor: 'move';
389
392
  moveId: string;
@@ -400,12 +403,11 @@ export type RoomLogEntry = {
400
403
  };
401
404
  /** `pending`: deletes of items the room does not hold yet (they wait for them). */
402
405
  type RowKind = 'generation' | 'update' | 'snapshot' | 'pending';
403
- /** A stored record, reassembled: its kind, record number, bytes, and whether they are v2 (a v2 container's snapshot). */
406
+ /** A stored record, reassembled: its kind, record number and bytes. */
404
407
  export type StoredRecord = {
405
408
  kind: RowKind;
406
409
  record: number;
407
410
  bytes: Uint8Array<ArrayBuffer>;
408
- v2: boolean;
409
411
  };
410
412
  /** A block as `validate` reads it, before or after a frame. */
411
413
  export type ValidatedBlock = {
@@ -495,6 +497,12 @@ export type AttachRoomOptions = {
495
497
  tablePrefix?: string;
496
498
  /** Largest document, in stored bytes (default {@link DEFAULT_MAX_DOCUMENT_BYTES}). */
497
499
  maxDocumentBytes?: number;
500
+ /**
501
+ * The share of `maxDocumentBytes` past which the room logs the
502
+ * document's size (`size`, once per crossing), above 0 and at most 1
503
+ * (default {@link DEFAULT_DOCUMENT_WARNING}, 0.8).
504
+ */
505
+ documentWarning?: number;
498
506
  /** Largest frame a socket may send, reassembled (default {@link DEFAULT_MAX_INBOUND_FRAME_BYTES}). */
499
507
  maxInboundFrameBytes?: number;
500
508
  /**
@@ -588,6 +596,7 @@ export declare class AttachedDocument {
588
596
  readonly compactAfter: number;
589
597
  readonly saveAfter: number;
590
598
  readonly maxDocumentBytes: number;
599
+ readonly documentWarning: number;
591
600
  readonly maxInboundFrameBytes: number;
592
601
  readonly maxBufferedBytes: number;
593
602
  readonly maxUpdatesPerSecond: number;
@@ -608,10 +617,6 @@ export declare class AttachedDocument {
608
617
  } | {
609
618
  kind: 'restored';
610
619
  records: number;
611
- } | {
612
- kind: 'converted';
613
- from: number;
614
- records: number;
615
620
  };
616
621
  /** The room's parts and what they share (`room/context.ts`). */
617
622
  private readonly room;
@@ -52,11 +52,9 @@
52
52
  * left out of the ack), the rest applied. Compaction reclaims the
53
53
  * waiting deletes of client ids no user registered and no socket holds;
54
54
  * `dropWaitingDeletes()` every one.
55
- * - storage format: the generation record says `storage: 'v2'` —
56
- * snapshots in the v2 encoding, compressed in place after they are
57
- * stored (`compressLater`), inflated at start (`inflate`); update and
58
- * pending records stay v1. A container without `storage` (0.1.0-next.22)
59
- * is all v1, and its next compaction rewrites it.
55
+ * - storage format: every record holds an update in the engine's one
56
+ * encoding; a snapshot is compressed in place after it is stored
57
+ * (`#compressLater`) and inflated at start (`inflate`).
60
58
  * - a Step2 serves the STORED state: the engine's pending structs (waiting
61
59
  * for a dependency, never stored) are not served.
62
60
  * - a frame larger than `maxFrameBytes` (32 MiB) goes out as chunks the
@@ -137,6 +135,8 @@ export const DEFAULT_SAVE_AFTER = 2000;
137
135
  * about 100 MB at worst. Raise it for documents of long text.
138
136
  */
139
137
  export const DEFAULT_MAX_DOCUMENT_BYTES = 2 * 1024 * 1024;
138
+ /** The share of the document quota past which the room logs its size, by default. */
139
+ export const DEFAULT_DOCUMENT_WARNING = 0.8;
140
140
  /**
141
141
  * The largest frame a socket may send, reassembled from chunks: room for a
142
142
  * whole document at the default quota (a client seeding an empty room).
@@ -200,6 +200,7 @@ export class AttachedDocument {
200
200
  compactAfter;
201
201
  saveAfter;
202
202
  maxDocumentBytes;
203
+ documentWarning;
203
204
  maxInboundFrameBytes;
204
205
  maxBufferedBytes;
205
206
  maxUpdatesPerSecond;
@@ -225,6 +226,8 @@ export class AttachedDocument {
225
226
  this.compactAfter = knob(options.compactAfter, DEFAULT_COMPACT_AFTER, 1e9);
226
227
  this.saveAfter = knob(options.saveAfter, DEFAULT_SAVE_AFTER, 1e9);
227
228
  this.maxDocumentBytes = knob(options.maxDocumentBytes, DEFAULT_MAX_DOCUMENT_BYTES, QUOTA_CEILING);
229
+ const warning = Number(options.documentWarning);
230
+ this.documentWarning = warning > 0 && warning <= 1 ? warning : DEFAULT_DOCUMENT_WARNING;
228
231
  this.maxInboundFrameBytes = knob(options.maxInboundFrameBytes, DEFAULT_MAX_INBOUND_FRAME_BYTES, QUOTA_CEILING);
229
232
  this.maxBufferedBytes = Math.max(this.maxInboundFrameBytes, knob(options.maxBufferedBytes, 2 * this.maxInboundFrameBytes, QUOTA_CEILING));
230
233
  this.maxUpdatesPerSecond = knob(options.maxUpdatesPerSecond, DEFAULT_MAX_UPDATES_PER_SECOND, QUOTA_CEILING);
@@ -492,6 +495,7 @@ export class AttachedDocument {
492
495
  const { counters } = room;
493
496
  return {
494
497
  documentBytes: room.storage.documentBytes,
498
+ documentLimit: room.limits.maxDocumentBytes,
495
499
  storedBytes: stored?.bytes ?? 0,
496
500
  records: stored?.records ?? 0,
497
501
  rows: stored?.rows ?? 0,
@@ -649,6 +653,7 @@ export class DocumentRoom extends DurableObject {
649
653
  compactAfter: Number(knobs.EDYTOR_COMPACT_AFTER),
650
654
  saveAfter: Number(knobs.EDYTOR_SAVE_AFTER),
651
655
  maxDocumentBytes: Number(knobs.EDYTOR_MAX_DOCUMENT_BYTES),
656
+ documentWarning: Number(knobs.EDYTOR_DOCUMENT_WARNING),
652
657
  maxInboundFrameBytes: Number(knobs.EDYTOR_MAX_INBOUND_FRAME_BYTES),
653
658
  maxBufferedBytes: Number(knobs.EDYTOR_MAX_BUFFERED_BYTES),
654
659
  maxUpdatesPerSecond: Number(knobs.EDYTOR_MAX_UPDATES_PER_SECOND),
@@ -4,7 +4,7 @@
4
4
  * `cloudflare:workers`); built on the Worker-safe CRDT entry. Documented in
5
5
  * the site's `server/` section (room, authorization, extending, protocol).
6
6
  */
7
- export { DocumentRoom, AttachedDocument, attachRoom, SOCKET_TAG, closedSocket, type AttachRoomOptions, type CommentOptions, DEFAULT_COMPACT_AFTER, DEFAULT_MAX_ROW_BYTES, DEFAULT_SAVE_AFTER, DEFAULT_MAX_DOCUMENT_BYTES, DEFAULT_MAX_INBOUND_FRAME_BYTES, DEFAULT_MAX_BUFFERED_BYTES, DEFAULT_MAX_UPDATES_PER_SECOND, DEFAULT_MAX_PRESENCE_BYTES, DEFAULT_MAX_PRESENCE_PER_SECOND, DEFAULT_MAX_PRESENCE_FANOUT, DEFAULT_MAX_COMMENT_BYTES, DEFAULT_MAX_COMMENT_REQUESTS_PER_SECOND, MAX_REFUSALS, MAX_WAITING_DELETES, ROOM_ORIGIN, RESTORE_ORIGIN, PURGE_ORIGIN, IDENTITY_HEADERS, PROBE_HEADER, noTimers, type Attachment, type DocumentRoomEnv, type LoadedDocument, type Refusal, type ReplicaOwner, type SavedDocument, type SocketIdentity, type StoredRecord, type FrameValidation, type ValidatedBlock, type RoomMetrics, type RoomLogEntry, type RestoreResult, type Timing } from './DocumentRoom.js';
7
+ export { DocumentRoom, AttachedDocument, attachRoom, SOCKET_TAG, closedSocket, type AttachRoomOptions, type CommentOptions, DEFAULT_COMPACT_AFTER, DEFAULT_MAX_ROW_BYTES, DEFAULT_SAVE_AFTER, DEFAULT_MAX_DOCUMENT_BYTES, DEFAULT_DOCUMENT_WARNING, DEFAULT_MAX_INBOUND_FRAME_BYTES, DEFAULT_MAX_BUFFERED_BYTES, DEFAULT_MAX_UPDATES_PER_SECOND, DEFAULT_MAX_PRESENCE_BYTES, DEFAULT_MAX_PRESENCE_PER_SECOND, DEFAULT_MAX_PRESENCE_FANOUT, DEFAULT_MAX_COMMENT_BYTES, DEFAULT_MAX_COMMENT_REQUESTS_PER_SECOND, MAX_REFUSALS, MAX_WAITING_DELETES, ROOM_ORIGIN, RESTORE_ORIGIN, PURGE_ORIGIN, IDENTITY_HEADERS, PROBE_HEADER, noTimers, type Attachment, type DocumentRoomEnv, type LoadedDocument, type Refusal, type ReplicaOwner, type SavedDocument, type SocketIdentity, type StoredRecord, type FrameValidation, type ValidatedBlock, type RoomMetrics, type RoomLogEntry, type RestoreResult, type Timing } from './DocumentRoom.js';
8
8
  export { DEFAULT_RETENTION_DAYS, HISTORY_MAX_VALUE_BYTES, R2_HISTORY_MAX_VALUE_BYTES, ROOM_HISTORY_MAX_BYTES, ROOM_HISTORY_MAX_VALUE_BYTES, kvHistory, r2History, roomHistory, type HistoryEntry, type HistoryMetadata, type HistoryOptions, type HistoryRoomStorage, type HistoryStore, type HistoryStoreFactory, type HistoryStoreRecord, type KVLike, type R2BucketLike } from './history.js';
9
9
  export { type PurgeReport } from '../crdt/purge.js';
10
10
  export { COMMENT_ROW_BYTES, COMMENT_STATUS, MAX_COMMENT_LENGTH, MAX_COMMENTS_PER_THREAD, MAX_THREADS, commentAnchors, commentBytes, decideComment, type ThreadComment, type CommentActor, type CommentChange, type CommentOutcome, type CommentRefusal, type CommentRequest, type CommentRun, type CommentSnapshot, type CommentThread } from '../crdt/protocols/comments.js';
@@ -4,7 +4,7 @@
4
4
  * `cloudflare:workers`); built on the Worker-safe CRDT entry. Documented in
5
5
  * the site's `server/` section (room, authorization, extending, protocol).
6
6
  */
7
- export { DocumentRoom, AttachedDocument, attachRoom, SOCKET_TAG, closedSocket, DEFAULT_COMPACT_AFTER, DEFAULT_MAX_ROW_BYTES, DEFAULT_SAVE_AFTER, DEFAULT_MAX_DOCUMENT_BYTES, DEFAULT_MAX_INBOUND_FRAME_BYTES, DEFAULT_MAX_BUFFERED_BYTES, DEFAULT_MAX_UPDATES_PER_SECOND, DEFAULT_MAX_PRESENCE_BYTES, DEFAULT_MAX_PRESENCE_PER_SECOND, DEFAULT_MAX_PRESENCE_FANOUT, DEFAULT_MAX_COMMENT_BYTES, DEFAULT_MAX_COMMENT_REQUESTS_PER_SECOND, MAX_REFUSALS, MAX_WAITING_DELETES, ROOM_ORIGIN, RESTORE_ORIGIN, PURGE_ORIGIN, IDENTITY_HEADERS, PROBE_HEADER, noTimers } from './DocumentRoom.js';
7
+ export { DocumentRoom, AttachedDocument, attachRoom, SOCKET_TAG, closedSocket, DEFAULT_COMPACT_AFTER, DEFAULT_MAX_ROW_BYTES, DEFAULT_SAVE_AFTER, DEFAULT_MAX_DOCUMENT_BYTES, DEFAULT_DOCUMENT_WARNING, DEFAULT_MAX_INBOUND_FRAME_BYTES, DEFAULT_MAX_BUFFERED_BYTES, DEFAULT_MAX_UPDATES_PER_SECOND, DEFAULT_MAX_PRESENCE_BYTES, DEFAULT_MAX_PRESENCE_PER_SECOND, DEFAULT_MAX_PRESENCE_FANOUT, DEFAULT_MAX_COMMENT_BYTES, DEFAULT_MAX_COMMENT_REQUESTS_PER_SECOND, MAX_REFUSALS, MAX_WAITING_DELETES, ROOM_ORIGIN, RESTORE_ORIGIN, PURGE_ORIGIN, IDENTITY_HEADERS, PROBE_HEADER, noTimers } from './DocumentRoom.js';
8
8
  export { DEFAULT_RETENTION_DAYS, HISTORY_MAX_VALUE_BYTES, R2_HISTORY_MAX_VALUE_BYTES, ROOM_HISTORY_MAX_BYTES, ROOM_HISTORY_MAX_VALUE_BYTES, kvHistory, r2History, roomHistory } from './history.js';
9
9
  export {} from '../crdt/purge.js';
10
10
  export { COMMENT_ROW_BYTES, COMMENT_STATUS, MAX_COMMENT_LENGTH, MAX_COMMENTS_PER_THREAD, MAX_THREADS, commentAnchors, commentBytes, decideComment } from '../crdt/protocols/comments.js';
@@ -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) {