edytor 1.0.0-rc.3 → 2.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 (667) hide show
  1. package/README.md +21 -39
  2. package/dist/block/block.svelte.d.ts +11 -84
  3. package/dist/block/block.svelte.js +30 -134
  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 +11 -9
  9. package/dist/block/inlineBlock.svelte.js +18 -21
  10. package/dist/clipboard/createClipboardFragment.js +22 -64
  11. package/dist/clipboard/fragmentData.js +17 -42
  12. package/dist/clipboard/htmlFlow.js +7 -7
  13. package/dist/clipboard/insertClipboardFragment.js +5 -4
  14. package/dist/clipboard/moveText.js +16 -8
  15. package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
  16. package/dist/clipboard/serializeClipboardFragment.js +32 -28
  17. package/dist/cloudflare/DocumentRoom.d.ts +4 -17
  18. package/dist/cloudflare/DocumentRoom.js +3 -5
  19. package/dist/cloudflare/move.d.ts +1 -18
  20. package/dist/cloudflare/move.js +2 -48
  21. package/dist/cloudflare/room/admission.d.ts +1 -60
  22. package/dist/cloudflare/room/admission.js +25 -29
  23. package/dist/cloudflare/room/comments.d.ts +1 -3
  24. package/dist/cloudflare/room/comments.js +6 -6
  25. package/dist/cloudflare/room/context.d.ts +25 -82
  26. package/dist/cloudflare/room/context.js +8 -8
  27. package/dist/cloudflare/room/forged.d.ts +1 -1
  28. package/dist/cloudflare/room/forged.js +2 -12
  29. package/dist/cloudflare/room/frames.d.ts +1 -1
  30. package/dist/cloudflare/room/frames.js +1 -1
  31. package/dist/cloudflare/room/history.d.ts +1 -25
  32. package/dist/cloudflare/room/history.js +39 -54
  33. package/dist/cloudflare/room/moves.d.ts +1 -13
  34. package/dist/cloudflare/room/moves.js +33 -57
  35. package/dist/cloudflare/room/presence.d.ts +1 -11
  36. package/dist/cloudflare/room/presence.js +4 -4
  37. package/dist/cloudflare/room/purge.d.ts +1 -2
  38. package/dist/cloudflare/room/purge.js +2 -2
  39. package/dist/cloudflare/room/replicas.d.ts +1 -7
  40. package/dist/cloudflare/room/replicas.js +2 -2
  41. package/dist/cloudflare/room/storage.d.ts +3 -32
  42. package/dist/cloudflare/room/storage.js +33 -108
  43. package/dist/cloudflare/room/updates.d.ts +4 -4
  44. package/dist/cloudflare/room/updates.js +17 -24
  45. package/dist/cloudflare/room/validation.d.ts +1 -5
  46. package/dist/cloudflare/room/validation.js +16 -37
  47. package/dist/collaboration/RemoteSelections.svelte +13 -17
  48. package/dist/collaboration/awarenessSelection.d.ts +22 -1
  49. package/dist/collaboration/awarenessSelection.js +42 -0
  50. package/dist/collaboration/comments/client.d.ts +2 -2
  51. package/dist/collaboration/comments/client.js +1 -1
  52. package/dist/collaboration/history/index.d.ts +5 -5
  53. package/dist/collaboration/history/index.js +5 -5
  54. package/dist/collaboration/history/panel.svelte.d.ts +91 -0
  55. package/dist/collaboration/history/panel.svelte.js +223 -0
  56. package/dist/collaboration/providers.d.ts +12 -3
  57. package/dist/collaboration/providers.js +5 -4
  58. package/dist/components/Block.svelte +42 -56
  59. package/dist/components/Block.svelte.d.ts +7 -5
  60. package/dist/components/Content.svelte +1 -5
  61. package/dist/components/Edytor.svelte +82 -99
  62. package/dist/components/Edytor.svelte.d.ts +16 -13
  63. package/dist/components/InlineBlock.svelte +1 -1
  64. package/dist/components/Ranges.svelte +96 -0
  65. package/dist/components/Ranges.svelte.d.ts +19 -0
  66. package/dist/components/Suggestion.svelte +3 -2
  67. package/dist/components/Text.svelte +2 -5
  68. package/dist/components/Text.svelte.d.ts +1 -1
  69. package/dist/crdt/admission.d.ts +2 -9
  70. package/dist/crdt/admission.js +3 -9
  71. package/dist/crdt/attribution/attribution.d.ts +11 -72
  72. package/dist/crdt/attribution/attribution.js +5 -52
  73. package/dist/crdt/attribution/block.d.ts +0 -78
  74. package/dist/crdt/attribution/block.js +1 -144
  75. package/dist/crdt/data.d.ts +18 -13
  76. package/dist/crdt/data.js +49 -71
  77. package/dist/crdt/doc/anchors.js +4 -4
  78. package/dist/crdt/doc/content.d.ts +5 -1
  79. package/dist/crdt/doc/content.js +3 -1
  80. package/dist/crdt/doc/delete.d.ts +1 -0
  81. package/dist/crdt/doc/funnel.d.ts +0 -23
  82. package/dist/crdt/doc/funnel.js +34 -85
  83. package/dist/crdt/doc/gate.d.ts +8 -9
  84. package/dist/crdt/doc/gate.js +7 -17
  85. package/dist/crdt/doc/history.d.ts +87 -14
  86. package/dist/crdt/doc/history.js +334 -149
  87. package/dist/crdt/doc/layout.d.ts +0 -1
  88. package/dist/crdt/doc/layout.js +2 -3
  89. package/dist/crdt/doc/meta.d.ts +4 -4
  90. package/dist/crdt/doc/meta.js +10 -21
  91. package/dist/crdt/doc/moves.d.ts +4 -4
  92. package/dist/crdt/doc/moves.js +5 -5
  93. package/dist/crdt/doc/plan.d.ts +2 -0
  94. package/dist/crdt/doc/plan.js +2 -0
  95. package/dist/crdt/doc/reads.d.ts +8 -5
  96. package/dist/crdt/doc/reads.js +49 -50
  97. package/dist/crdt/doc/seed.d.ts +15 -6
  98. package/dist/crdt/doc/seed.js +27 -26
  99. package/dist/crdt/doc/split-merge.d.ts +1 -3
  100. package/dist/crdt/doc/split-merge.js +4 -5
  101. package/dist/crdt/doc/steps.d.ts +3 -7
  102. package/dist/crdt/doc/steps.js +20 -9
  103. package/dist/crdt/doc/types.d.ts +0 -10
  104. package/dist/crdt/document.d.ts +32 -115
  105. package/dist/crdt/document.js +216 -302
  106. package/dist/crdt/edytor-doc.d.ts +689 -90
  107. package/dist/crdt/edytor-doc.js +74 -149
  108. package/dist/crdt/engine-api.d.ts +15 -47
  109. package/dist/crdt/engine.d.ts +7 -17
  110. package/dist/crdt/engine.js +9 -19
  111. package/dist/crdt/flow.d.ts +9 -37
  112. package/dist/crdt/flow.js +260 -238
  113. package/dist/crdt/index.d.ts +32 -85
  114. package/dist/crdt/index.js +21 -47
  115. package/dist/crdt/operations.d.ts +24 -33
  116. package/dist/crdt/operations.js +8 -17
  117. package/dist/crdt/placement/display.d.ts +0 -2
  118. package/dist/crdt/placement/display.js +0 -15
  119. package/dist/crdt/placement/model.d.ts +160 -12
  120. package/dist/crdt/placement/model.js +413 -414
  121. package/dist/crdt/placement/rank.d.ts +1 -5
  122. package/dist/crdt/placement/rank.js +28 -38
  123. package/dist/crdt/props.d.ts +32 -0
  124. package/dist/crdt/props.js +172 -0
  125. package/dist/crdt/protocol.d.ts +4 -5
  126. package/dist/crdt/protocol.js +3 -4
  127. package/dist/crdt/protocols/awareness.d.ts +3 -7
  128. package/dist/crdt/protocols/awareness.js +17 -33
  129. package/dist/crdt/protocols/envelope.d.ts +9 -29
  130. package/dist/crdt/protocols/envelope.js +8 -25
  131. package/dist/crdt/protocols/sync.d.ts +15 -30
  132. package/dist/crdt/protocols/sync.js +27 -89
  133. package/dist/crdt/providers/bound.d.ts +3 -1
  134. package/dist/crdt/providers/bound.js +3 -1
  135. package/dist/crdt/providers/container.d.ts +11 -17
  136. package/dist/crdt/providers/container.js +39 -27
  137. package/dist/crdt/providers/index.d.ts +34 -6
  138. package/dist/crdt/providers/index.js +106 -111
  139. package/dist/crdt/providers/indexeddb.d.ts +2 -12
  140. package/dist/crdt/providers/indexeddb.js +29 -90
  141. package/dist/crdt/providers/room.d.ts +58 -2
  142. package/dist/crdt/providers/room.js +38 -21
  143. package/dist/crdt/providers/websocket.d.ts +1 -1
  144. package/dist/crdt/providers/websocket.js +3 -4
  145. package/dist/crdt/purge.d.ts +2 -2
  146. package/dist/crdt/purge.js +69 -6
  147. package/dist/crdt/rangeDelete.d.ts +4 -42
  148. package/dist/crdt/rangeDelete.js +7 -6
  149. package/dist/crdt/restore.d.ts +21 -1
  150. package/dist/crdt/restore.js +54 -59
  151. package/dist/crdt/schema.d.ts +2 -2
  152. package/dist/crdt/schema.js +4 -5
  153. package/dist/crdt/semantics.d.ts +10 -15
  154. package/dist/crdt/semantics.js +22 -21
  155. package/dist/crdt/storage.d.ts +7 -13
  156. package/dist/crdt/storage.js +10 -24
  157. package/dist/crdt/structs.d.ts +42 -47
  158. package/dist/crdt/structs.js +76 -67
  159. package/dist/crdt/tables.d.ts +9 -0
  160. package/dist/crdt/tables.js +20 -0
  161. package/dist/crdt/text/delete-index.d.ts +0 -13
  162. package/dist/crdt/text/delete-index.js +7 -14
  163. package/dist/crdt/text/deletes.d.ts +9 -22
  164. package/dist/crdt/text/deletes.js +11 -74
  165. package/dist/crdt/text/index/cache.js +3 -3
  166. package/dist/crdt/text/index/fold.d.ts +1 -2
  167. package/dist/crdt/text/index/fold.js +15 -10
  168. package/dist/crdt/text/index/layout.d.ts +0 -10
  169. package/dist/crdt/text/index/layout.js +6 -20
  170. package/dist/crdt/text/index/records.js +2 -1
  171. package/dist/crdt/text/index/report.js +5 -6
  172. package/dist/crdt/text/index/shared.d.ts +11 -4
  173. package/dist/crdt/text/index/shared.js +8 -7
  174. package/dist/crdt/text/index/state.d.ts +3 -33
  175. package/dist/crdt/text/index/state.js +2 -4
  176. package/dist/crdt/text/model.d.ts +82 -2
  177. package/dist/crdt/text/model.js +344 -354
  178. package/dist/crdt/text/rows.d.ts +0 -2
  179. package/dist/crdt/text/rows.js +0 -11
  180. package/dist/crdt/text/runs.d.ts +6 -3
  181. package/dist/crdt/text/runs.js +132 -137
  182. package/dist/crdt/text/streams.d.ts +1 -1
  183. package/dist/crdt/text/streams.js +1 -1
  184. package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
  185. package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
  186. package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
  187. package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
  188. package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
  189. package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
  190. package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
  191. package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
  192. package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
  193. package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
  194. package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
  195. package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
  196. package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
  197. package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
  198. package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
  199. package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
  200. package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
  201. package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
  202. package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
  203. package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
  204. package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
  205. package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
  206. package/dist/crdt/vendor/yjs/global.d.ts +5 -26
  207. package/dist/crdt/vendor/yjs/src/index.js +11 -25
  208. package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
  209. package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
  210. package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
  211. package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
  212. package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
  213. package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
  214. package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
  215. package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
  216. package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
  217. package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
  218. package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
  219. package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
  220. package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
  221. package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
  222. package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
  223. package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
  224. package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
  225. package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
  226. package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
  227. package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
  228. package/dist/dnd/autoScroll.js +1 -2
  229. package/dist/{plugins/blockHandles → dnd}/dropIndicator.d.ts +2 -2
  230. package/dist/{plugins/blockHandles → dnd}/dropIndicator.js +52 -60
  231. package/dist/{plugins/blockHandles → dnd}/geometry.d.ts +4 -3
  232. package/dist/{plugins/blockHandles → dnd}/geometry.js +6 -6
  233. package/dist/dnd/placement.d.ts +200 -0
  234. package/dist/dnd/placement.js +426 -0
  235. package/dist/dnd/pragmatic.d.ts +4 -22
  236. package/dist/dnd/pragmatic.js +7 -26
  237. package/dist/dnd/track.d.ts +14 -0
  238. package/dist/dnd/track.js +55 -0
  239. package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
  240. package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
  241. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
  242. package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
  243. package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
  244. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
  245. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
  246. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
  247. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
  248. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
  249. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
  250. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
  251. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
  252. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
  253. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
  254. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
  255. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
  256. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
  257. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
  258. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
  259. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
  260. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
  261. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
  262. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
  263. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
  264. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
  265. 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
  266. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
  267. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
  268. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
  269. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
  270. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
  271. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
  272. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
  273. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
  274. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
  275. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
  276. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
  277. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
  278. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
  279. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
  280. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
  281. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
  282. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
  283. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
  284. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
  285. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
  286. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
  287. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
  288. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
  289. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
  290. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
  291. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
  292. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
  293. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
  294. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
  295. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
  296. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
  297. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
  298. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
  299. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
  300. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
  301. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
  302. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
  303. package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
  304. package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
  305. package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
  306. package/dist/edytor.svelte.d.ts +46 -63
  307. package/dist/edytor.svelte.js +126 -181
  308. package/dist/events/beforeInputCommands.d.ts +6 -11
  309. package/dist/events/beforeInputCommands.js +189 -181
  310. package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
  311. package/dist/events/beforeInputDeleteCommands.js +153 -204
  312. package/dist/events/domTextOffset.d.ts +9 -9
  313. package/dist/events/domTextOffset.js +20 -48
  314. package/dist/events/events.utils.d.ts +0 -2
  315. package/dist/events/events.utils.js +0 -4
  316. package/dist/events/nativeInteractiveControl.d.ts +13 -13
  317. package/dist/events/nativeInteractiveControl.js +28 -56
  318. package/dist/events/onBeforeInput.d.ts +6 -1
  319. package/dist/events/onBeforeInput.js +207 -331
  320. package/dist/events/onCopy.js +1 -5
  321. package/dist/events/onDrop.d.ts +7 -1
  322. package/dist/events/onDrop.js +64 -78
  323. package/dist/events/onFocus.d.ts +9 -4
  324. package/dist/events/onFocus.js +45 -67
  325. package/dist/events/onInput.d.ts +8 -4
  326. package/dist/events/onInput.js +34 -147
  327. package/dist/events/onKeyDown.js +55 -122
  328. package/dist/events/onPaste.d.ts +14 -1
  329. package/dist/events/onPaste.js +51 -76
  330. package/dist/index.d.ts +11 -15
  331. package/dist/index.js +3 -3
  332. package/dist/kinds.d.ts +4 -6
  333. package/dist/kinds.js +28 -27
  334. package/dist/labels.d.ts +83 -320
  335. package/dist/labels.js +181 -408
  336. package/dist/plugins/Chrome.svelte +29 -0
  337. package/dist/plugins/Chrome.svelte.d.ts +32 -0
  338. package/dist/plugins/Control.svelte +23 -0
  339. package/dist/plugins/Control.svelte.d.ts +30 -0
  340. package/dist/plugins/anchored.svelte.d.ts +47 -0
  341. package/dist/plugins/anchored.svelte.js +73 -0
  342. package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
  343. package/dist/plugins/arrowMove/arrowMove.js +9 -5
  344. package/dist/plugins/bands.svelte.d.ts +57 -0
  345. package/dist/plugins/bands.svelte.js +95 -0
  346. package/dist/plugins/blockHandles/BlockHandle.svelte +14 -154
  347. package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
  348. package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +21 -196
  349. package/dist/plugins/blockHandles/BlockHandleController.svelte.js +158 -573
  350. package/dist/plugins/blockHandles/BlockHandles.svelte +15 -23
  351. package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
  352. package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +25 -39
  353. package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -185
  354. package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
  355. package/dist/plugins/blockHandles/dragPreview.js +18 -16
  356. package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +28 -38
  357. package/dist/plugins/blockMenu/BlockMenuController.svelte.js +116 -183
  358. package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
  359. package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
  360. package/dist/plugins/brand.d.ts +8 -0
  361. package/dist/plugins/brand.js +8 -0
  362. package/dist/plugins/chrome.d.ts +45 -38
  363. package/dist/plugins/chrome.js +59 -36
  364. package/dist/plugins/code/CodeHeader.svelte +8 -38
  365. package/dist/plugins/code/CodePlugin.svelte +53 -56
  366. package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
  367. package/dist/plugins/code/LanguageMenu.svelte +16 -125
  368. package/dist/plugins/code/LanguageMenu.svelte.d.ts +2 -1
  369. package/dist/plugins/code/code.css +5 -117
  370. package/dist/plugins/code/header.svelte.d.ts +2 -11
  371. package/dist/plugins/code/header.svelte.js +11 -38
  372. package/dist/plugins/code/languageMenu.svelte.d.ts +12 -32
  373. package/dist/plugins/code/languageMenu.svelte.js +30 -160
  374. package/dist/plugins/code/languages.d.ts +9 -22
  375. package/dist/plugins/code/languages.js +39 -128
  376. package/dist/plugins/columns/ColumnResize.svelte +16 -27
  377. package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
  378. package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
  379. package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
  380. package/dist/plugins/columns/columns.css +7 -26
  381. package/dist/plugins/columns/gaps.d.ts +7 -5
  382. package/dist/plugins/columns/gaps.js +11 -6
  383. package/dist/plugins/columns/resize.svelte.d.ts +17 -54
  384. package/dist/plugins/columns/resize.svelte.js +80 -173
  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 -431
  388. package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +4 -2
  389. package/dist/plugins/comments/commentsPlugin.d.ts +25 -9
  390. package/dist/plugins/comments/commentsPlugin.js +12 -10
  391. package/dist/plugins/equation/EquationEditor.svelte +16 -130
  392. package/dist/plugins/equation/EquationEditor.svelte.d.ts +1 -2
  393. package/dist/plugins/equation/EquationPlugin.svelte +109 -172
  394. package/dist/plugins/equation/EquationPlugin.svelte.d.ts +3 -2
  395. package/dist/plugins/equation/EquationView.svelte +20 -11
  396. package/dist/plugins/equation/equation.css +7 -0
  397. package/dist/plugins/equation/equation.svelte.d.ts +37 -24
  398. package/dist/plugins/equation/equation.svelte.js +20 -94
  399. package/dist/plugins/equation/katex.js +6 -9
  400. package/dist/plugins/fileDrop.d.ts +28 -0
  401. package/dist/plugins/fileDrop.js +116 -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 +6 -167
  407. package/dist/plugins/image/ImageChrome.svelte.d.ts +0 -2
  408. package/dist/plugins/image/ImagePlugin.svelte +71 -151
  409. package/dist/plugins/image/ImagePlugin.svelte.d.ts +12 -41
  410. package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
  411. package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
  412. package/dist/plugins/image/controls.svelte.d.ts +6 -36
  413. package/dist/plugins/image/controls.svelte.js +43 -212
  414. package/dist/plugins/image/image.css +17 -0
  415. package/dist/plugins/image/image.d.ts +0 -5
  416. package/dist/plugins/image/image.js +0 -3
  417. package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
  418. package/dist/plugins/image/toolbar.svelte.js +145 -0
  419. package/dist/plugins/index.d.ts +30 -26
  420. package/dist/plugins/index.js +28 -22
  421. package/dist/plugins/list.svelte.d.ts +128 -0
  422. package/dist/plugins/list.svelte.js +217 -0
  423. package/dist/plugins/markdownShortcuts.d.ts +1 -1
  424. package/dist/plugins/markdownShortcuts.js +10 -9
  425. package/dist/plugins/marquee/MarqueeBox.svelte +3 -20
  426. package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +1 -1
  427. package/dist/plugins/marquee/MarqueeController.svelte.d.ts +0 -2
  428. package/dist/plugins/marquee/MarqueeController.svelte.js +20 -23
  429. package/dist/plugins/marquee/marquee.js +4 -21
  430. package/dist/plugins/marquee/marqueePlugin.d.ts +4 -3
  431. package/dist/plugins/marquee/marqueePlugin.js +16 -15
  432. package/dist/plugins/media/AudioPlugin.svelte +13 -88
  433. package/dist/plugins/media/AudioPlugin.svelte.d.ts +11 -4
  434. package/dist/plugins/media/BookmarkPlugin.svelte +113 -120
  435. package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +10 -15
  436. package/dist/plugins/media/EmbedPlugin.svelte +82 -86
  437. package/dist/plugins/media/EmbedPlugin.svelte.d.ts +11 -17
  438. package/dist/plugins/media/EmptySlot.svelte +44 -0
  439. package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
  440. package/dist/plugins/media/FilePlugin.svelte +45 -113
  441. package/dist/plugins/media/FilePlugin.svelte.d.ts +21 -4
  442. package/dist/plugins/media/MediaEmpty.svelte +51 -90
  443. package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
  444. package/dist/plugins/media/SourceBlock.svelte +200 -0
  445. package/dist/plugins/media/SourceBlock.svelte.d.ts +34 -0
  446. package/dist/plugins/media/UploadPreview.svelte +32 -0
  447. package/dist/plugins/media/UploadPreview.svelte.d.ts +11 -0
  448. package/dist/plugins/media/VideoPlugin.svelte +14 -97
  449. package/dist/plugins/media/VideoPlugin.svelte.d.ts +12 -5
  450. package/dist/plugins/media/empty.svelte.d.ts +47 -46
  451. package/dist/plugins/media/empty.svelte.js +67 -60
  452. package/dist/plugins/media/media.d.ts +97 -44
  453. package/dist/plugins/media/media.js +77 -99
  454. package/dist/plugins/media/upload.css +23 -0
  455. package/dist/plugins/media/urlPaste.svelte.d.ts +6 -37
  456. package/dist/plugins/media/urlPaste.svelte.js +32 -102
  457. package/dist/plugins/mention/MentionPlugin.svelte +84 -126
  458. package/dist/plugins/mention/MentionPlugin.svelte.d.ts +17 -27
  459. package/dist/plugins/mention/mention.css +6 -0
  460. package/dist/plugins/page/PageLink.svelte +54 -38
  461. package/dist/plugins/page/PagePlugin.svelte +20 -18
  462. package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
  463. package/dist/plugins/page/page.d.ts +35 -9
  464. package/dist/plugins/page/page.js +3 -4
  465. package/dist/plugins/pageLink/PageLinkPlugin.svelte +154 -109
  466. package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +19 -26
  467. package/dist/plugins/pageLink/pageLink.css +6 -0
  468. package/dist/plugins/planned.d.ts +10 -0
  469. package/dist/plugins/planned.js +12 -0
  470. package/dist/plugins/richtext/CalloutIcon.svelte +13 -26
  471. package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
  472. package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
  473. package/dist/plugins/richtext/EmptyBody.svelte +13 -20
  474. package/dist/plugins/richtext/RichTextControl.svelte +39 -0
  475. package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
  476. package/dist/plugins/richtext/RichTextPlugin.svelte +174 -183
  477. package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +34 -34
  478. package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
  479. package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
  480. package/dist/plugins/richtext/body.js +2 -2
  481. package/dist/plugins/richtext/calloutIcons.svelte.d.ts +50 -55
  482. package/dist/plugins/richtext/calloutIcons.svelte.js +86 -174
  483. package/dist/plugins/richtext/callouts.d.ts +15 -0
  484. package/dist/plugins/richtext/callouts.js +23 -0
  485. package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
  486. package/dist/plugins/richtext/controls.svelte.js +126 -0
  487. package/dist/plugins/richtext/richTextOperations.js +37 -28
  488. package/dist/plugins/richtext/richtext.css +6 -0
  489. package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -14
  490. package/dist/plugins/slashMenu/SlashMenuController.svelte.js +34 -71
  491. package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +9 -26
  492. package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
  493. package/dist/plugins/suggestions/SuggestionBars.svelte +27 -84
  494. package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
  495. package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -18
  496. package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
  497. package/dist/plugins/table/TableChrome.svelte +40 -124
  498. package/dist/plugins/table/TablePlugin.svelte +106 -168
  499. package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
  500. package/dist/plugins/table/chrome.svelte.d.ts +38 -141
  501. package/dist/plugins/table/chrome.svelte.js +340 -589
  502. package/dist/plugins/table/ops.d.ts +47 -0
  503. package/dist/plugins/table/ops.js +233 -0
  504. package/dist/plugins/table/table.css +16 -152
  505. package/dist/plugins/table/table.d.ts +15 -14
  506. package/dist/plugins/table/table.js +22 -16
  507. package/dist/plugins/toc/TableOfContents.svelte +32 -38
  508. package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
  509. package/dist/plugins/toc/TocPlugin.svelte +22 -22
  510. package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
  511. package/dist/plugins/toc/toc.d.ts +41 -10
  512. package/dist/plugins/toc/toc.js +2 -3
  513. package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +4 -68
  514. package/dist/plugins/toolbar/ToolbarController.svelte.js +63 -89
  515. package/dist/plugins/toolbar/toolbarPlugin.d.ts +8 -18
  516. package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
  517. package/dist/plugins/triggers/TriggerController.svelte.d.ts +4 -68
  518. package/dist/plugins/triggers/TriggerController.svelte.js +48 -129
  519. package/dist/plugins/triggers/place.d.ts +0 -9
  520. package/dist/plugins/triggers/place.js +1 -17
  521. package/dist/plugins/triggers/triggers.d.ts +31 -9
  522. package/dist/plugins/triggers/triggers.js +82 -62
  523. package/dist/plugins/uploads.svelte.d.ts +55 -24
  524. package/dist/plugins/uploads.svelte.js +123 -50
  525. package/dist/plugins.d.ts +187 -66
  526. package/dist/selection/domSelection.d.ts +13 -4
  527. package/dist/selection/domSelection.js +110 -183
  528. package/dist/selection/pointer.svelte.d.ts +8 -10
  529. package/dist/selection/pointer.svelte.js +32 -73
  530. package/dist/selection/replaceSelection.d.ts +21 -22
  531. package/dist/selection/replaceSelection.js +60 -69
  532. package/dist/selection/selection.svelte.d.ts +5 -73
  533. package/dist/selection/selection.svelte.js +224 -542
  534. package/dist/selection/selection.utils.d.ts +34 -11
  535. package/dist/selection/selection.utils.js +128 -247
  536. package/dist/selection/visibility.d.ts +3 -8
  537. package/dist/selection/visibility.js +7 -5
  538. package/dist/session/announcer.svelte.d.ts +2 -1
  539. package/dist/session/announcer.svelte.js +7 -3
  540. package/dist/session/attempt.d.ts +43 -39
  541. package/dist/session/attempt.js +62 -55
  542. package/dist/session/bindings.js +117 -145
  543. package/dist/session/commands.d.ts +47 -22
  544. package/dist/session/commands.js +208 -208
  545. package/dist/session/composition.svelte.d.ts +2 -4
  546. package/dist/session/composition.svelte.js +55 -65
  547. package/dist/session/editing/text.d.ts +6 -0
  548. package/dist/session/editing/text.js +17 -3
  549. package/dist/session/handles.d.ts +10 -1
  550. package/dist/session/handles.js +28 -0
  551. package/dist/session/history.d.ts +0 -4
  552. package/dist/session/history.js +16 -21
  553. package/dist/session/inputRules.d.ts +6 -3
  554. package/dist/session/inputRules.js +78 -83
  555. package/dist/session/keymap.d.ts +1 -6
  556. package/dist/session/keymap.js +17 -20
  557. package/dist/session/moves.d.ts +43 -10
  558. package/dist/session/moves.js +101 -59
  559. package/dist/session/navigation.d.ts +10 -2
  560. package/dist/session/navigation.js +140 -172
  561. package/dist/session/ports.d.ts +2 -7
  562. package/dist/session/props.d.ts +25 -25
  563. package/dist/session/props.js +62 -159
  564. package/dist/session/selection.d.ts +4 -3
  565. package/dist/session/selection.js +5 -0
  566. package/dist/session/suggestions.svelte.d.ts +1 -1
  567. package/dist/session/suggestions.svelte.js +42 -47
  568. package/dist/session/uploads.d.ts +29 -0
  569. package/dist/session/uploads.js +10 -0
  570. package/dist/session/virtual.d.ts +3 -3
  571. package/dist/session/virtual.js +18 -40
  572. package/dist/surface/attributes.d.ts +1 -0
  573. package/dist/surface/attributes.js +3 -26
  574. package/dist/surface/cells.d.ts +5 -0
  575. package/dist/surface/cells.js +5 -0
  576. package/dist/surface/lines.d.ts +2 -2
  577. package/dist/surface/lines.js +1 -1
  578. package/dist/surface/observer.svelte.d.ts +3 -20
  579. package/dist/surface/observer.svelte.js +52 -72
  580. package/dist/surface/overlay.d.ts +41 -3
  581. package/dist/surface/overlay.js +92 -37
  582. package/dist/surface/pin.svelte.d.ts +5 -0
  583. package/dist/surface/pin.svelte.js +5 -0
  584. package/dist/surface/projector.svelte.d.ts +4 -6
  585. package/dist/surface/projector.svelte.js +42 -69
  586. package/dist/text/text.svelte.d.ts +14 -40
  587. package/dist/text/text.svelte.js +35 -51
  588. package/dist/text/wordBoundary.d.ts +19 -0
  589. package/dist/text/wordBoundary.js +29 -44
  590. package/dist/themes/notion.css +272 -106
  591. package/dist/utils/json.d.ts +3 -1
  592. package/dist/utils/json.js +52 -51
  593. package/dist/utils/listen.d.ts +8 -0
  594. package/dist/utils/listen.js +19 -0
  595. package/package.json +4 -5
  596. package/dist/block/block.utils.d.ts +0 -340
  597. package/dist/block/block.utils.js +0 -356
  598. package/dist/collaboration/history/HistoryPanel.svelte +0 -554
  599. package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
  600. package/dist/collaboration/history/panel.d.ts +0 -61
  601. package/dist/collaboration/history/panel.js +0 -3
  602. package/dist/components/SuggestionRanges.svelte +0 -58
  603. package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
  604. package/dist/crdt/doc/table.d.ts +0 -21
  605. package/dist/crdt/doc/table.js +0 -288
  606. package/dist/crdt/migration/generation.d.ts +0 -58
  607. package/dist/crdt/migration/generation.js +0 -70
  608. package/dist/crdt/migration/legacy-schema.d.ts +0 -61
  609. package/dist/crdt/migration/legacy-schema.js +0 -151
  610. package/dist/crdt/migration/migrate.d.ts +0 -56
  611. package/dist/crdt/migration/migrate.js +0 -227
  612. package/dist/crdt/nodes.d.ts +0 -121
  613. package/dist/crdt/nodes.js +0 -56
  614. package/dist/crdt/text/index/checks.d.ts +0 -15
  615. package/dist/crdt/text/index/checks.js +0 -156
  616. package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
  617. package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
  618. package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
  619. package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
  620. package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
  621. package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
  622. package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
  623. package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
  624. package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
  625. package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
  626. package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
  627. package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
  628. package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
  629. package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
  630. package/dist/edytor.utils.d.ts +0 -50
  631. package/dist/edytor.utils.js +0 -67
  632. package/dist/plugins/blockMenu/BlockMenu.svelte +0 -335
  633. package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
  634. package/dist/plugins/find/FindBar.svelte +0 -170
  635. package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
  636. package/dist/plugins/find/FindHighlights.svelte +0 -75
  637. package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
  638. package/dist/plugins/icons.d.ts +0 -2
  639. package/dist/plugins/icons.js +0 -63
  640. package/dist/plugins/image/ImageEmpty.svelte +0 -93
  641. package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -15
  642. package/dist/plugins/image/empty.svelte.d.ts +0 -56
  643. package/dist/plugins/image/empty.svelte.js +0 -83
  644. package/dist/plugins/keepInView.d.ts +0 -4
  645. package/dist/plugins/keepInView.js +0 -6
  646. package/dist/plugins/media/UrlPasteMenu.svelte +0 -92
  647. package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -9
  648. package/dist/plugins/richtext/CalloutIconMenu.svelte +0 -98
  649. package/dist/plugins/richtext/CalloutIconMenu.svelte.d.ts +0 -9
  650. package/dist/plugins/richtext/labels.d.ts +0 -9
  651. package/dist/plugins/richtext/labels.js +0 -7
  652. package/dist/plugins/slashMenu/SlashMenu.svelte +0 -276
  653. package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
  654. package/dist/plugins/table/dragPreview.d.ts +0 -29
  655. package/dist/plugins/table/dragPreview.js +0 -103
  656. package/dist/plugins/toolbar/LinkCard.svelte +0 -122
  657. package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -9
  658. package/dist/plugins/toolbar/Toolbar.svelte +0 -349
  659. package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
  660. package/dist/plugins/triggers/TriggerMenu.svelte +0 -135
  661. package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
  662. package/dist/text/deltas.d.ts +0 -22
  663. package/dist/text/deltas.js +0 -46
  664. package/dist/text/text.utils.d.ts +0 -45
  665. package/dist/text/text.utils.js +0 -199
  666. /package/dist/{plugins/columns → dnd}/stacking.d.ts +0 -0
  667. /package/dist/{plugins/columns → dnd}/stacking.js +0 -0
@@ -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;
@@ -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
@@ -55,7 +45,7 @@ import { asEngineDoc, attrItems } from '../structs.js';
55
45
  * is optional). Remote integration MUST always arrive under a non-null,
56
46
  * non-tracked origin:
57
47
  *
58
- * - history capture (`document.history` / `Y.UndoManager`) keeps
48
+ * - history capture (`document.history`, edytor's undo manager) keeps
59
49
  * untracked, non-local transactions out of the local undo stack — a
60
50
  * `null` origin is ambiguous (it is also the untyped-local marker), so
61
51
  * an explicit marker documents intent for `doc.on('update')`
@@ -73,6 +63,12 @@ const defaultRemoteApplyOrigin = () => Symbol('edytor-remote-apply');
73
63
  export const messageYjsSyncStep1 = 0;
74
64
  export const messageYjsSyncStep2 = 1;
75
65
  export const messageYjsUpdate = 2;
66
+ /** An inbound update that could not be read or applied: its handler hears it, the console shows it. */
67
+ const reportUpdateError = (error, errorHandler) => {
68
+ if (errorHandler != null)
69
+ errorHandler(error);
70
+ console.error('Caught error while handling a Yjs update', error);
71
+ };
76
72
  /**
77
73
  * Bind the sync protocol to a concrete engine module (the vendored v14 `Y`).
78
74
  */
@@ -85,29 +81,7 @@ export const bindSync = (Y) => {
85
81
  };
86
82
  const writeSyncStep2 = (encoder, doc, encodedStateVector) => {
87
83
  encoding.writeVarUint(encoder, messageYjsSyncStep2);
88
- encoding.writeVarUint8Array(encoder, Y.encodeStateAsUpdateV2(doc, encodedStateVector));
89
- };
90
- /** A SyncStep2 payload (v2) as the v1 update every inbound path applies. */
91
- const step2Update = (payload) => Y.convertUpdateFormatV2ToV1(payload);
92
- /** Read SyncStep1 message and reply with SyncStep2. */
93
- const readSyncStep1 = (decoder, encoder, doc) => writeSyncStep2(encoder, doc, decoding.readVarUint8Array(decoder));
94
- /**
95
- * Read and apply structs + delete set to a doc — through the same
96
- * inbound refusal as the providers ({@link applyRemote}), which report
97
- * a refused stamp; this raw reader reports only decode/apply errors.
98
- */
99
- const readSyncStep2 = (decoder, doc, transactionOrigin, errorHandler) => {
100
- let update;
101
- try {
102
- update = step2Update(decoding.readVarUint8Array(decoder));
103
- }
104
- catch (error) {
105
- if (errorHandler != null)
106
- errorHandler(error);
107
- console.error('Caught error while handling a Yjs update', error);
108
- return;
109
- }
110
- applyRemote(doc, update, transactionOrigin, errorHandler);
84
+ encoding.writeVarUint8Array(encoder, Y.encodeStateAsUpdate(doc, encodedStateVector));
111
85
  };
112
86
  /**
113
87
  * The state-vector coverage test of the join rule: does the encoded
@@ -125,10 +99,6 @@ export const bindSync = (Y) => {
125
99
  encoding.writeVarUint(encoder, messageYjsUpdate);
126
100
  encoding.writeVarUint8Array(encoder, update);
127
101
  };
128
- /** Read and apply an Update (v1) through the inbound refusal. */
129
- const readUpdate = (decoder, doc, transactionOrigin, errorHandler) => {
130
- applyRemote(doc, decoding.readVarUint8Array(decoder), transactionOrigin, errorHandler);
131
- };
132
102
  /**
133
103
  * Inbound refusal: the schema problem `parts` (decoded updates,
134
104
  * judged together) would write, or `null`. The frame already proved its
@@ -193,7 +163,7 @@ export const bindSync = (Y) => {
193
163
  /** What the engine holds pending on `doc` (structs and deletes waiting for a dependency). */
194
164
  const held = (doc) => {
195
165
  const pending = [doc.store.pendingStructs?.update, doc.store.pendingDs];
196
- return pending.flatMap((bytes) => (bytes ? [Y.decodeUpdateV2(bytes)] : []));
166
+ return pending.flatMap((bytes) => (bytes ? [Y.decodeUpdate(bytes)] : []));
197
167
  };
198
168
  /**
199
169
  * Apply one inbound update (SyncStep2 / Update payload) to the live doc
@@ -230,9 +200,7 @@ export const bindSync = (Y) => {
230
200
  : { applied: true, problem: null, discarded };
231
201
  }
232
202
  catch (error) {
233
- if (errorHandler != null)
234
- errorHandler(error);
235
- console.error('Caught error while handling a Yjs update', error);
203
+ reportUpdateError(error, errorHandler);
236
204
  return { applied: false, problem: null };
237
205
  }
238
206
  };
@@ -248,12 +216,12 @@ export const bindSync = (Y) => {
248
216
  * vector alone ignores the second field; a body without it acknowledges
249
217
  * no deletes.
250
218
  */
251
- const writeSaved = (encoder, doc, deletes, unstored = doc.store.pendingDs && Y.decodeUpdateV2(doc.store.pendingDs).ds) => {
219
+ const writeSaved = (encoder, doc, deletes, unstored = doc.store.pendingDs && Y.decodeUpdate(doc.store.pendingDs).ds) => {
252
220
  encoding.writeVarUint8Array(encoder, Y.encodeStateVector(doc));
253
221
  const held = deletes && unstored ? Y.diffIdSet(deletes, unstored) : deletes;
254
222
  if (!held || held.isEmpty())
255
223
  return;
256
- const body = new Y.UpdateEncoderV1();
224
+ const body = new Y.UpdateEncoder();
257
225
  encoding.writeVarUint(body.restEncoder, 0); // no structs
258
226
  Y.writeIdSet(body, held);
259
227
  encoding.writeVarUint8Array(encoder, body.toUint8Array());
@@ -265,31 +233,6 @@ export const bindSync = (Y) => {
265
233
  ? Y.decodeUpdate(decoding.readVarUint8Array(decoder)).ds
266
234
  : null
267
235
  });
268
- /**
269
- * Read a sync message from `decoder`; writes any reply (SyncStep2) into
270
- * `encoder`. Returns the decoded message type. Callers MUST gate the
271
- * protocol-version envelope before invoking this (see `envelope.ts`).
272
- * RAW: payloads apply through the inbound refusal (unreported) and an
273
- * unknown message type THROWS — the shipped providers dispatch through
274
- * `providers/room.ts` (`applyRemote` + reported drops) instead.
275
- */
276
- const readSyncMessage = (decoder, encoder, doc, transactionOrigin, errorHandler) => {
277
- const messageType = decoding.readVarUint(decoder);
278
- switch (messageType) {
279
- case messageYjsSyncStep1:
280
- readSyncStep1(decoder, encoder, doc);
281
- break;
282
- case messageYjsSyncStep2:
283
- readSyncStep2(decoder, doc, transactionOrigin, errorHandler);
284
- break;
285
- case messageYjsUpdate:
286
- readUpdate(decoder, doc, transactionOrigin, errorHandler);
287
- break;
288
- default:
289
- throw new Error('Unknown message type');
290
- }
291
- return messageType;
292
- };
293
236
  return {
294
237
  messageYjsSyncStep1,
295
238
  messageYjsSyncStep2,
@@ -297,12 +240,7 @@ export const bindSync = (Y) => {
297
240
  remoteApplyOrigin,
298
241
  writeSyncStep1,
299
242
  writeSyncStep2,
300
- step2Update,
301
- readSyncStep1,
302
- readSyncStep2,
303
243
  writeUpdate,
304
- readUpdate,
305
- readSyncMessage,
306
244
  applyRemote,
307
245
  lacks,
308
246
  writeSaved,
@@ -1,2 +1,4 @@
1
- import { type ProviderStack } from './index.js';
1
+ import { type PrefetchOptions, type ProviderStack } from './index.js';
2
2
  export declare const providers: ProviderStack;
3
+ /** {@link prefetchWith} over the one stack. */
4
+ export declare const prefetch: (options: PrefetchOptions) => Promise<import("./index.js").PrefetchResult>;
@@ -5,5 +5,7 @@
5
5
  * `instanceof` holds whichever entry point a consumer imported it from.
6
6
  */
7
7
  import { Y } from '../engine.js';
8
- import { bindProviders } from './index.js';
8
+ import { bindProviders, prefetchWith } from './index.js';
9
9
  export const providers = bindProviders(Y);
10
+ /** {@link prefetchWith} over the one stack. */
11
+ export const prefetch = (options) => prefetchWith(Y, providers, options);
@@ -1,25 +1,19 @@
1
1
  export declare const UPDATES = "updates";
2
2
  export declare const CUSTOM = "custom";
3
- /** Open (creating when absent) a container with its two stores. */
3
+ /** A request's result, as a promise (its failure as an `Error`). */
4
+ export declare const rtop: <T>(request: IDBRequest<T>) => Promise<T>;
5
+ /** The stores `names` of one read-write transaction on `db`. */
6
+ export declare const storesOf: (db: IDBDatabase, names: string[]) => IDBObjectStore[];
7
+ /** The greatest key of `store` (`null` when it is empty). */
8
+ export declare const lastKey: (store: IDBObjectStore) => Promise<IDBValidKey | null>;
9
+ /** Open (creating when absent) a container with its two stores; it closes when another version opens. */
4
10
  export declare const openContainer: (dbName: string) => Promise<IDBDatabase>;
5
11
  /** A row is the update's bytes in a buffer of their own. */
6
12
  export declare const encodeRow: (update: Uint8Array) => ArrayBuffer;
7
- export declare const decodeRow: (row: unknown) => Uint8Array;
8
- /**
9
- * A snapshot row (storage `'v2'`): the document in the v2 encoding,
10
- * gzip-compressed where the platform has `CompressionStream` (and that
11
- * makes it smaller). Update rows stay v1 `ArrayBuffer`s. A build from
12
- * before the v2 snapshots reads such a row as no update at all (`decodeRow` throws),
13
- * so it fails to load the store instead of misreading it.
14
- */
15
- export type SnapshotRow = {
16
- v2: ArrayBuffer;
17
- };
18
- export declare const snapshotRow: (updateV2: Uint8Array) => Promise<SnapshotRow>;
19
- /** A stored row as the update to apply: `{ v2 }` for a snapshot row (inflated). */
20
- export declare const readRow: (row: unknown) => Promise<Uint8Array | {
21
- v2: Uint8Array;
22
- }>;
13
+ /** A snapshot row: the document's state, gzip-compressed where that makes it smaller. */
14
+ export declare const snapshotRow: (update: Uint8Array) => Promise<ArrayBuffer>;
15
+ /** A stored row as the update to apply (a compressed snapshot inflated). */
16
+ export declare const readRow: (row: unknown) => Promise<Uint8Array>;
23
17
  /**
24
18
  * The one verify-or-stamp rule: a container carrying this generation's
25
19
  * record passes; an EMPTY container without a record is stamped; anything
@@ -1,38 +1,50 @@
1
1
  /**
2
2
  * The v14 IndexedDB container — one owner for the store names, the row
3
- * codec (v1 update rows, v2 snapshot rows: `room.store.v2`), the open, the non-creating probe and the ONE verify-or-stamp rule,
4
- * shared by the provider and the migrator. Rows are append-only for every
3
+ * codec (every row an update in the engine's one encoding, a snapshot
4
+ * gzip-compressed where that makes it smaller), the open, the non-creating
5
+ * probe and the ONE verify-or-stamp rule. Rows are append-only for every
5
6
  * writer (a provider's compaction appends its snapshot before deleting the
6
7
  * rows it subsumes).
7
8
  */
8
- import * as idb from 'lib0-v14/indexeddb';
9
- import { GENERATION_KEY, GenerationMismatchError, isGenerationRecord, STORED_GENERATION_RECORD } from '../protocols/envelope.js';
9
+ import { GENERATION_KEY, GenerationMismatchError, GENERATION_RECORD, isGenerationRecord } from '../protocols/envelope.js';
10
10
  import { gunzip, packed } from '../storage.js';
11
11
  export const UPDATES = 'updates';
12
12
  export const CUSTOM = 'custom';
13
- /** Open (creating when absent) a container with its two stores. */
14
- export const openContainer = (dbName) => idb.openDB(dbName, (db) => idb.createStores(db, [[UPDATES, { autoIncrement: true }], [CUSTOM]]));
15
- /** A row is the update's bytes in a buffer of their own. */
16
- export const encodeRow = (update) => update.slice().buffer;
17
- export const decodeRow = (row) => {
18
- if (row instanceof ArrayBuffer)
19
- return new Uint8Array(row);
20
- if (row instanceof Uint8Array)
21
- return row;
22
- throw new TypeError('Stored Yjs update is not binary data');
13
+ /** A request's result, as a promise (its failure as an `Error`). */
14
+ export const rtop = (request) => new Promise((resolve, reject) => {
15
+ request.onerror = () => reject(new Error(String(request.error)));
16
+ request.onsuccess = () => resolve(request.result);
17
+ });
18
+ /** The stores `names` of one read-write transaction on `db`. */
19
+ export const storesOf = (db, names) => {
20
+ const transaction = db.transaction(names, 'readwrite');
21
+ return names.map((name) => transaction.objectStore(name));
23
22
  };
24
- export const snapshotRow = async (updateV2) => ({
25
- v2: (await packed(updateV2)).slice().buffer
23
+ /** The greatest key of `store` (`null` when it is empty). */
24
+ export const lastKey = (store) => rtop(store.openKeyCursor(null, 'prev')).then((cursor) => cursor?.key ?? null);
25
+ /** Open (creating when absent) a container with its two stores; it closes when another version opens. */
26
+ export const openContainer = (dbName) => new Promise((resolve, reject) => {
27
+ const request = indexedDB.open(dbName);
28
+ request.onupgradeneeded = () => {
29
+ request.result.createObjectStore(UPDATES, { autoIncrement: true });
30
+ request.result.createObjectStore(CUSTOM);
31
+ };
32
+ request.onerror = () => reject(request.error);
33
+ request.onsuccess = () => {
34
+ const db = request.result;
35
+ db.onversionchange = () => db.close();
36
+ resolve(db);
37
+ };
26
38
  });
27
- /** A stored row as the update to apply: `{ v2 }` for a snapshot row (inflated). */
39
+ /** A row is the update's bytes in a buffer of their own. */
40
+ export const encodeRow = (update) => update.slice().buffer;
41
+ /** A snapshot row: the document's state, gzip-compressed where that makes it smaller. */
42
+ export const snapshotRow = async (update) => encodeRow(await packed(update));
43
+ /** A stored row as the update to apply (a compressed snapshot inflated). */
28
44
  export const readRow = async (row) => {
29
- if (typeof row === 'object' && row !== null && 'v2' in row) {
30
- const bytes = row.v2;
31
- if (!(bytes instanceof ArrayBuffer))
32
- throw new TypeError('Stored snapshot is not binary data');
33
- return { v2: await gunzip(new Uint8Array(bytes)) };
34
- }
35
- return decodeRow(row);
45
+ if (!(row instanceof ArrayBuffer))
46
+ throw new TypeError('Stored Yjs update is not binary data');
47
+ return gunzip(new Uint8Array(row));
36
48
  };
37
49
  /**
38
50
  * The one verify-or-stamp rule: a container carrying this generation's
@@ -41,9 +53,9 @@ export const readRow = async (row) => {
41
53
  * {@link GenerationMismatchError} — nothing inside a row is inspected.
42
54
  */
43
55
  export const verifyOrStamp = async (name, updates, custom) => {
44
- const found = await idb.get(custom, GENERATION_KEY);
45
- if (found === undefined && (await idb.count(updates)) === 0) {
46
- await idb.rtop(custom.put({ ...STORED_GENERATION_RECORD }, GENERATION_KEY));
56
+ const found = await rtop(custom.get(GENERATION_KEY));
57
+ if (found === undefined && (await rtop(updates.count())) === 0) {
58
+ await rtop(custom.put({ ...GENERATION_RECORD }, GENERATION_KEY));
47
59
  }
48
60
  else if (!isGenerationRecord(found)) {
49
61
  throw new GenerationMismatchError(name, found);
@@ -127,9 +127,6 @@ export type LastUpdatedOptions = WebsocketTarget & {
127
127
  };
128
128
  export type ProviderStack = ReturnType<typeof bindProviders>;
129
129
  export declare const bindProviders: (Y: EngineApi) => {
130
- prefetch: (options: PrefetchOptions) => Promise<PrefetchResult>;
131
- lastUpdated: (options: LastUpdatedOptions) => Promise<number | null>;
132
- documentSnapshot: (options: LastUpdatedOptions) => Promise<JSONDoc | null>;
133
130
  IndexeddbPersistence: {
134
131
  new (name: string, doc: YDoc, options?: import("./indexeddb.js").IndexeddbPersistenceOptions): {
135
132
  doc: YDoc;
@@ -153,7 +150,7 @@ export declare const bindProviders: (Y: EngineApi) => {
153
150
  bcconnected: boolean;
154
151
  disableBc: boolean;
155
152
  _ownsAwareness: boolean;
156
- _bcSubscriber: (data: ArrayBuffer, origin: unknown) => void;
153
+ _bcSubscriber: (data: ArrayBuffer | Uint8Array, origin: unknown) => void;
157
154
  _awarenessUpdateHandler: (updates: {
158
155
  added: number[];
159
156
  updated: number[];
@@ -225,7 +222,7 @@ export declare const bindProviders: (Y: EngineApi) => {
225
222
  bcChannel: string;
226
223
  bcconnected: boolean;
227
224
  disableBc: boolean;
228
- _bcSubscriber: (data: ArrayBuffer, origin: unknown) => void;
225
+ _bcSubscriber: (data: ArrayBuffer | Uint8Array, origin: unknown) => void;
229
226
  _fromTab: {};
230
227
  wsUnsuccessfulReconnects: number;
231
228
  wsLastMessageReceived: number;
@@ -292,9 +289,40 @@ export declare const bindProviders: (Y: EngineApi) => {
292
289
  _dbsize: number;
293
290
  _destroyed: boolean;
294
291
  }, forceStore?: boolean) => Promise<undefined>;
295
- clearDocument: (name: string) => Promise<any>;
292
+ clearDocument: (name: string) => Promise<void>;
296
293
  PREFERRED_TRIM_SIZE: number;
297
294
  createIndexeddbSync: (name: string) => EdytorSync;
298
295
  createWebsocketSync: (options: WebsocketSyncOptions) => WebsocketSync;
299
296
  };
300
297
  export type { IndexeddbProvider };
298
+ /**
299
+ * `[serverUrl (no trailing slash), room]` of a target, the room id checked.
300
+ * The target is `{ server, room }`; the names before them are refused, in
301
+ * a message that names the `caller` it was passed to.
302
+ */
303
+ export declare const targetOf: (caller: string, options: WebsocketTarget) => [string, string];
304
+ /**
305
+ * Keep a document fresh without opening it: load its local store
306
+ * (the one `createWebsocketSync` keeps, `edytor:<server>/<room>` unless
307
+ * `persistName` names another), dial the room once, take what it lacks
308
+ * and hand it what the store holds that the room lacks, wait until the
309
+ * room stored it, then close. Resolves with whether the room sent
310
+ * anything new; rejects with the room's refusal (`SyncRefusedError`),
311
+ * after `timeout`, or where there is no IndexedDB. Over the provider
312
+ * classes of `stack` (bound to `Y`).
313
+ */
314
+ export declare const prefetchWith: (Y: EngineApi, stack: ProviderStack, options: PrefetchOptions) => Promise<PrefetchResult>;
315
+ /**
316
+ * When the room last stored a change (ms since the epoch), or `null`:
317
+ * `?lastUpdated`, answered without opening the document. Compare it with
318
+ * when a document was last fetched to decide whether to `prefetch` it.
319
+ * Throws on an HTTP error (`403` refused, `401` expired).
320
+ */
321
+ export declare const lastUpdated: (options: LastUpdatedOptions) => Promise<number | null>;
322
+ /**
323
+ * The room's document as JSON, or `null` when it stores nothing yet:
324
+ * `?snapshot`, answered from the room's live document. Show it while a
325
+ * view's own copy hydrates: `<Edytor snapshot>`. Throws on an HTTP error
326
+ * (`403` refused, `401` expired).
327
+ */
328
+ export declare const documentSnapshot: (options: LastUpdatedOptions) => Promise<JSONDoc | null>;