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.
- package/README.md +21 -39
- package/dist/block/block.svelte.d.ts +11 -84
- package/dist/block/block.svelte.js +30 -134
- package/dist/block/colors.d.ts +0 -9
- package/dist/block/colors.js +1 -18
- package/dist/block/contentRange.d.ts +5 -1
- package/dist/block/contentRange.js +15 -16
- package/dist/block/inlineBlock.svelte.d.ts +11 -9
- package/dist/block/inlineBlock.svelte.js +18 -21
- package/dist/clipboard/createClipboardFragment.js +22 -64
- package/dist/clipboard/fragmentData.js +17 -42
- package/dist/clipboard/htmlFlow.js +7 -7
- package/dist/clipboard/insertClipboardFragment.js +5 -4
- package/dist/clipboard/moveText.js +16 -8
- package/dist/clipboard/serializeClipboardFragment.d.ts +2 -0
- package/dist/clipboard/serializeClipboardFragment.js +32 -28
- package/dist/cloudflare/DocumentRoom.d.ts +4 -17
- package/dist/cloudflare/DocumentRoom.js +3 -5
- package/dist/cloudflare/move.d.ts +1 -18
- package/dist/cloudflare/move.js +2 -48
- package/dist/cloudflare/room/admission.d.ts +1 -60
- package/dist/cloudflare/room/admission.js +25 -29
- package/dist/cloudflare/room/comments.d.ts +1 -3
- package/dist/cloudflare/room/comments.js +6 -6
- package/dist/cloudflare/room/context.d.ts +25 -82
- package/dist/cloudflare/room/context.js +8 -8
- package/dist/cloudflare/room/forged.d.ts +1 -1
- package/dist/cloudflare/room/forged.js +2 -12
- package/dist/cloudflare/room/frames.d.ts +1 -1
- package/dist/cloudflare/room/frames.js +1 -1
- package/dist/cloudflare/room/history.d.ts +1 -25
- package/dist/cloudflare/room/history.js +39 -54
- package/dist/cloudflare/room/moves.d.ts +1 -13
- package/dist/cloudflare/room/moves.js +33 -57
- package/dist/cloudflare/room/presence.d.ts +1 -11
- package/dist/cloudflare/room/presence.js +4 -4
- package/dist/cloudflare/room/purge.d.ts +1 -2
- package/dist/cloudflare/room/purge.js +2 -2
- package/dist/cloudflare/room/replicas.d.ts +1 -7
- package/dist/cloudflare/room/replicas.js +2 -2
- package/dist/cloudflare/room/storage.d.ts +3 -32
- package/dist/cloudflare/room/storage.js +33 -108
- package/dist/cloudflare/room/updates.d.ts +4 -4
- package/dist/cloudflare/room/updates.js +17 -24
- package/dist/cloudflare/room/validation.d.ts +1 -5
- package/dist/cloudflare/room/validation.js +16 -37
- package/dist/collaboration/RemoteSelections.svelte +13 -17
- package/dist/collaboration/awarenessSelection.d.ts +22 -1
- package/dist/collaboration/awarenessSelection.js +42 -0
- package/dist/collaboration/comments/client.d.ts +2 -2
- package/dist/collaboration/comments/client.js +1 -1
- package/dist/collaboration/history/index.d.ts +5 -5
- package/dist/collaboration/history/index.js +5 -5
- package/dist/collaboration/history/panel.svelte.d.ts +91 -0
- package/dist/collaboration/history/panel.svelte.js +223 -0
- package/dist/collaboration/providers.d.ts +12 -3
- package/dist/collaboration/providers.js +5 -4
- package/dist/components/Block.svelte +42 -56
- package/dist/components/Block.svelte.d.ts +7 -5
- package/dist/components/Content.svelte +1 -5
- package/dist/components/Edytor.svelte +82 -99
- package/dist/components/Edytor.svelte.d.ts +16 -13
- package/dist/components/InlineBlock.svelte +1 -1
- package/dist/components/Ranges.svelte +96 -0
- package/dist/components/Ranges.svelte.d.ts +19 -0
- package/dist/components/Suggestion.svelte +3 -2
- package/dist/components/Text.svelte +2 -5
- package/dist/components/Text.svelte.d.ts +1 -1
- package/dist/crdt/admission.d.ts +2 -9
- package/dist/crdt/admission.js +3 -9
- package/dist/crdt/attribution/attribution.d.ts +11 -72
- package/dist/crdt/attribution/attribution.js +5 -52
- package/dist/crdt/attribution/block.d.ts +0 -78
- package/dist/crdt/attribution/block.js +1 -144
- package/dist/crdt/data.d.ts +18 -13
- package/dist/crdt/data.js +49 -71
- package/dist/crdt/doc/anchors.js +4 -4
- package/dist/crdt/doc/content.d.ts +5 -1
- package/dist/crdt/doc/content.js +3 -1
- package/dist/crdt/doc/delete.d.ts +1 -0
- package/dist/crdt/doc/funnel.d.ts +0 -23
- package/dist/crdt/doc/funnel.js +34 -85
- package/dist/crdt/doc/gate.d.ts +8 -9
- package/dist/crdt/doc/gate.js +7 -17
- package/dist/crdt/doc/history.d.ts +87 -14
- package/dist/crdt/doc/history.js +334 -149
- package/dist/crdt/doc/layout.d.ts +0 -1
- package/dist/crdt/doc/layout.js +2 -3
- package/dist/crdt/doc/meta.d.ts +4 -4
- package/dist/crdt/doc/meta.js +10 -21
- package/dist/crdt/doc/moves.d.ts +4 -4
- package/dist/crdt/doc/moves.js +5 -5
- package/dist/crdt/doc/plan.d.ts +2 -0
- package/dist/crdt/doc/plan.js +2 -0
- package/dist/crdt/doc/reads.d.ts +8 -5
- package/dist/crdt/doc/reads.js +49 -50
- package/dist/crdt/doc/seed.d.ts +15 -6
- package/dist/crdt/doc/seed.js +27 -26
- package/dist/crdt/doc/split-merge.d.ts +1 -3
- package/dist/crdt/doc/split-merge.js +4 -5
- package/dist/crdt/doc/steps.d.ts +3 -7
- package/dist/crdt/doc/steps.js +20 -9
- package/dist/crdt/doc/types.d.ts +0 -10
- package/dist/crdt/document.d.ts +32 -115
- package/dist/crdt/document.js +216 -302
- package/dist/crdt/edytor-doc.d.ts +689 -90
- package/dist/crdt/edytor-doc.js +74 -149
- package/dist/crdt/engine-api.d.ts +15 -47
- package/dist/crdt/engine.d.ts +7 -17
- package/dist/crdt/engine.js +9 -19
- package/dist/crdt/flow.d.ts +9 -37
- package/dist/crdt/flow.js +260 -238
- package/dist/crdt/index.d.ts +32 -85
- package/dist/crdt/index.js +21 -47
- package/dist/crdt/operations.d.ts +24 -33
- package/dist/crdt/operations.js +8 -17
- package/dist/crdt/placement/display.d.ts +0 -2
- package/dist/crdt/placement/display.js +0 -15
- package/dist/crdt/placement/model.d.ts +160 -12
- package/dist/crdt/placement/model.js +413 -414
- package/dist/crdt/placement/rank.d.ts +1 -5
- package/dist/crdt/placement/rank.js +28 -38
- package/dist/crdt/props.d.ts +32 -0
- package/dist/crdt/props.js +172 -0
- package/dist/crdt/protocol.d.ts +4 -5
- package/dist/crdt/protocol.js +3 -4
- package/dist/crdt/protocols/awareness.d.ts +3 -7
- package/dist/crdt/protocols/awareness.js +17 -33
- package/dist/crdt/protocols/envelope.d.ts +9 -29
- package/dist/crdt/protocols/envelope.js +8 -25
- package/dist/crdt/protocols/sync.d.ts +15 -30
- package/dist/crdt/protocols/sync.js +27 -89
- package/dist/crdt/providers/bound.d.ts +3 -1
- package/dist/crdt/providers/bound.js +3 -1
- package/dist/crdt/providers/container.d.ts +11 -17
- package/dist/crdt/providers/container.js +39 -27
- package/dist/crdt/providers/index.d.ts +34 -6
- package/dist/crdt/providers/index.js +106 -111
- package/dist/crdt/providers/indexeddb.d.ts +2 -12
- package/dist/crdt/providers/indexeddb.js +29 -90
- package/dist/crdt/providers/room.d.ts +58 -2
- package/dist/crdt/providers/room.js +38 -21
- package/dist/crdt/providers/websocket.d.ts +1 -1
- package/dist/crdt/providers/websocket.js +3 -4
- package/dist/crdt/purge.d.ts +2 -2
- package/dist/crdt/purge.js +69 -6
- package/dist/crdt/rangeDelete.d.ts +4 -42
- package/dist/crdt/rangeDelete.js +7 -6
- package/dist/crdt/restore.d.ts +21 -1
- package/dist/crdt/restore.js +54 -59
- package/dist/crdt/schema.d.ts +2 -2
- package/dist/crdt/schema.js +4 -5
- package/dist/crdt/semantics.d.ts +10 -15
- package/dist/crdt/semantics.js +22 -21
- package/dist/crdt/storage.d.ts +7 -13
- package/dist/crdt/storage.js +10 -24
- package/dist/crdt/structs.d.ts +42 -47
- package/dist/crdt/structs.js +76 -67
- package/dist/crdt/tables.d.ts +9 -0
- package/dist/crdt/tables.js +20 -0
- package/dist/crdt/text/delete-index.d.ts +0 -13
- package/dist/crdt/text/delete-index.js +7 -14
- package/dist/crdt/text/deletes.d.ts +9 -22
- package/dist/crdt/text/deletes.js +11 -74
- package/dist/crdt/text/index/cache.js +3 -3
- package/dist/crdt/text/index/fold.d.ts +1 -2
- package/dist/crdt/text/index/fold.js +15 -10
- package/dist/crdt/text/index/layout.d.ts +0 -10
- package/dist/crdt/text/index/layout.js +6 -20
- package/dist/crdt/text/index/records.js +2 -1
- package/dist/crdt/text/index/report.js +5 -6
- package/dist/crdt/text/index/shared.d.ts +11 -4
- package/dist/crdt/text/index/shared.js +8 -7
- package/dist/crdt/text/index/state.d.ts +3 -33
- package/dist/crdt/text/index/state.js +2 -4
- package/dist/crdt/text/model.d.ts +82 -2
- package/dist/crdt/text/model.js +344 -354
- package/dist/crdt/text/rows.d.ts +0 -2
- package/dist/crdt/text/rows.js +0 -11
- package/dist/crdt/text/runs.d.ts +6 -3
- package/dist/crdt/text/runs.js +132 -137
- package/dist/crdt/text/streams.d.ts +1 -1
- package/dist/crdt/text/streams.js +1 -1
- package/dist/crdt/vendor/yjs/API-NOTES.md +25 -8
- package/dist/crdt/vendor/yjs/UPSTREAM.md +288 -8
- package/dist/crdt/vendor/yjs/dts/global.d.ts +5 -26
- package/dist/crdt/vendor/yjs/dts/index.d.ts +10 -15
- package/dist/crdt/vendor/yjs/dts/structs/AbstractStruct.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/structs/Item.d.ts +14 -219
- package/dist/crdt/vendor/yjs/dts/structs/Skip.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/utils/BlockSet.d.ts +2 -2
- package/dist/crdt/vendor/yjs/dts/utils/Doc.d.ts +12 -123
- package/dist/crdt/vendor/yjs/dts/utils/ID.d.ts +1 -1
- package/dist/crdt/vendor/yjs/dts/utils/RangeCursor.d.ts +37 -58
- package/dist/crdt/vendor/yjs/dts/utils/Transaction.d.ts +3 -78
- package/dist/crdt/vendor/yjs/dts/utils/UpdateDecoder.d.ts +2 -81
- package/dist/crdt/vendor/yjs/dts/utils/UpdateEncoder.d.ts +2 -74
- package/dist/crdt/vendor/yjs/dts/utils/encoding-helpers.d.ts +4 -4
- package/dist/crdt/vendor/yjs/dts/utils/encoding.d.ts +6 -18
- package/dist/crdt/vendor/yjs/dts/utils/ids.d.ts +12 -237
- package/dist/crdt/vendor/yjs/dts/utils/positions.d.ts +5 -0
- package/dist/crdt/vendor/yjs/dts/utils/redo.d.ts +3 -0
- package/dist/crdt/vendor/yjs/dts/utils/transaction-helpers.d.ts +1 -3
- package/dist/crdt/vendor/yjs/dts/utils/updates.d.ts +6 -23
- package/dist/crdt/vendor/yjs/dts/ynode.d.ts +73 -498
- package/dist/crdt/vendor/yjs/global.d.ts +5 -26
- package/dist/crdt/vendor/yjs/src/index.js +11 -25
- package/dist/crdt/vendor/yjs/src/structs/AbstractStruct.js +1 -1
- package/dist/crdt/vendor/yjs/src/structs/GC.js +1 -1
- package/dist/crdt/vendor/yjs/src/structs/Item.js +10 -372
- package/dist/crdt/vendor/yjs/src/structs/Skip.js +1 -1
- package/dist/crdt/vendor/yjs/src/utils/BlockSet.js +2 -2
- package/dist/crdt/vendor/yjs/src/utils/Doc.js +14 -170
- package/dist/crdt/vendor/yjs/src/utils/ID.js +1 -1
- package/dist/crdt/vendor/yjs/src/utils/RangeCursor.js +61 -128
- package/dist/crdt/vendor/yjs/src/utils/StructStore.js +0 -22
- package/dist/crdt/vendor/yjs/src/utils/Transaction.js +17 -282
- package/dist/crdt/vendor/yjs/src/utils/UpdateDecoder.js +3 -130
- package/dist/crdt/vendor/yjs/src/utils/UpdateEncoder.js +2 -132
- package/dist/crdt/vendor/yjs/src/utils/encoding-helpers.js +4 -4
- package/dist/crdt/vendor/yjs/src/utils/encoding.js +49 -146
- package/dist/crdt/vendor/yjs/src/utils/ids.js +23 -900
- package/dist/crdt/vendor/yjs/src/utils/positions.js +115 -0
- package/dist/crdt/vendor/yjs/src/utils/redo.js +143 -0
- package/dist/crdt/vendor/yjs/src/utils/transaction-helpers.js +10 -127
- package/dist/crdt/vendor/yjs/src/utils/updates.js +7 -50
- package/dist/crdt/vendor/yjs/src/ynode.js +261 -2226
- package/dist/dnd/autoScroll.js +1 -2
- package/dist/{plugins/blockHandles → dnd}/dropIndicator.d.ts +2 -2
- package/dist/{plugins/blockHandles → dnd}/dropIndicator.js +52 -60
- package/dist/{plugins/blockHandles → dnd}/geometry.d.ts +4 -3
- package/dist/{plugins/blockHandles → dnd}/geometry.js +6 -6
- package/dist/dnd/placement.d.ts +200 -0
- package/dist/dnd/placement.js +426 -0
- package/dist/dnd/pragmatic.d.ts +4 -22
- package/dist/dnd/pragmatic.js +7 -26
- package/dist/dnd/track.d.ts +14 -0
- package/dist/dnd/track.js +55 -0
- package/dist/dnd/vendor/pragmatic/UPSTREAM.md +103 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/LICENSE +21 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/bind-all.js +46 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/bind.js +7 -0
- package/dist/dnd/vendor/pragmatic/bind-event-listener/index.js +2 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/LICENSE.md +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter-native-data-key.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.d.ts +57 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/adapter/element-adapter.js +306 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.d.ts +8 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/adapter.js +10 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.d.ts +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/element/set-custom-native-drag-preview.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/entry-point/types.d.ts +1 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/get-element-from-point-without-honey-pot.js +12 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/honey-pot-data-attribute.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/is-honey-pot-element.js +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/honey-pot-fix/make-honey-pot-fix.js +333 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/internal-types.d.ts +350 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/dispatch-consumer-event.js +128 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/lifecycle-manager.js +340 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/ledger/usage-ledger.js +32 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-adapter.js +59 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-drop-target.js +288 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/make-adapter/make-monitor.js +85 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/combine.js +6 -0
- 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
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/set-custom-native-drag-preview.js +153 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/element/custom-native-drag-preview/types.d.ts +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/public-utils/once.js +13 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/add-attribute.js +7 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/android.js +10 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/count-events-for-safari.js +104 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-from-another-window.js +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window-in-safari.js +12 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/changing-window/is-leaving-window.js +55 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/detect-broken-drag.js +48 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/get-input.js +14 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-firefox.js +13 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/is-safari.js +19 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/max-z-index.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/text-media-type.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/media-types/url-media-type.js +6 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/popover-reset-styles.js +40 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop/util/supports-popover.js +16 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/LICENSE.md +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.d.ts +4 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/entry-point/element.js +8 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/internal-types.d.ts +50 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/data-attributes.js +9 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/get-scroll-by.js +117 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/make-api.js +90 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/over-element/try-scroll.js +183 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/axis.js +22 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/can-scroll-on-edge.js +17 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/configuration.js +49 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/edges.js +9 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/engagement-history.js +43 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-over-element-hitbox.js +50 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-percentage-in-range.js +19 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/get-scroll-change.js +106 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-axis-allowed.js +3 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/is-within.js +11 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/scheduler.js +104 -0
- package/dist/dnd/vendor/pragmatic/pragmatic-drag-and-drop-auto-scroll/shared/side.js +6 -0
- package/dist/dnd/vendor/pragmatic/raf-schd/LICENSE +21 -0
- package/dist/dnd/vendor/pragmatic/raf-schd/raf-schd.esm.js +34 -0
- package/dist/edytor.svelte.d.ts +46 -63
- package/dist/edytor.svelte.js +126 -181
- package/dist/events/beforeInputCommands.d.ts +6 -11
- package/dist/events/beforeInputCommands.js +189 -181
- package/dist/events/beforeInputDeleteCommands.d.ts +20 -1
- package/dist/events/beforeInputDeleteCommands.js +153 -204
- package/dist/events/domTextOffset.d.ts +9 -9
- package/dist/events/domTextOffset.js +20 -48
- package/dist/events/events.utils.d.ts +0 -2
- package/dist/events/events.utils.js +0 -4
- package/dist/events/nativeInteractiveControl.d.ts +13 -13
- package/dist/events/nativeInteractiveControl.js +28 -56
- package/dist/events/onBeforeInput.d.ts +6 -1
- package/dist/events/onBeforeInput.js +207 -331
- package/dist/events/onCopy.js +1 -5
- package/dist/events/onDrop.d.ts +7 -1
- package/dist/events/onDrop.js +64 -78
- package/dist/events/onFocus.d.ts +9 -4
- package/dist/events/onFocus.js +45 -67
- package/dist/events/onInput.d.ts +8 -4
- package/dist/events/onInput.js +34 -147
- package/dist/events/onKeyDown.js +55 -122
- package/dist/events/onPaste.d.ts +14 -1
- package/dist/events/onPaste.js +51 -76
- package/dist/index.d.ts +11 -15
- package/dist/index.js +3 -3
- package/dist/kinds.d.ts +4 -6
- package/dist/kinds.js +28 -27
- package/dist/labels.d.ts +83 -320
- package/dist/labels.js +181 -408
- package/dist/plugins/Chrome.svelte +29 -0
- package/dist/plugins/Chrome.svelte.d.ts +32 -0
- package/dist/plugins/Control.svelte +23 -0
- package/dist/plugins/Control.svelte.d.ts +30 -0
- package/dist/plugins/anchored.svelte.d.ts +47 -0
- package/dist/plugins/anchored.svelte.js +73 -0
- package/dist/plugins/arrowMove/arrowMove.d.ts +2 -1
- package/dist/plugins/arrowMove/arrowMove.js +9 -5
- package/dist/plugins/bands.svelte.d.ts +57 -0
- package/dist/plugins/bands.svelte.js +95 -0
- package/dist/plugins/blockHandles/BlockHandle.svelte +14 -154
- package/dist/plugins/blockHandles/BlockHandle.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/BlockHandleController.svelte.d.ts +21 -196
- package/dist/plugins/blockHandles/BlockHandleController.svelte.js +158 -573
- package/dist/plugins/blockHandles/BlockHandles.svelte +15 -23
- package/dist/plugins/blockHandles/BlockHandles.svelte.d.ts +2 -2
- package/dist/plugins/blockHandles/blockHandlesPlugin.d.ts +25 -39
- package/dist/plugins/blockHandles/blockHandlesPlugin.js +130 -185
- package/dist/plugins/blockHandles/dragPreview.d.ts +8 -6
- package/dist/plugins/blockHandles/dragPreview.js +18 -16
- package/dist/plugins/blockMenu/BlockMenuController.svelte.d.ts +28 -38
- package/dist/plugins/blockMenu/BlockMenuController.svelte.js +116 -183
- package/dist/plugins/blockMenu/blockMenuPlugin.d.ts +1 -3
- package/dist/plugins/blockMenu/blockMenuPlugin.js +12 -29
- package/dist/plugins/brand.d.ts +8 -0
- package/dist/plugins/brand.js +8 -0
- package/dist/plugins/chrome.d.ts +45 -38
- package/dist/plugins/chrome.js +59 -36
- package/dist/plugins/code/CodeHeader.svelte +8 -38
- package/dist/plugins/code/CodePlugin.svelte +53 -56
- package/dist/plugins/code/CodePlugin.svelte.d.ts +0 -2
- package/dist/plugins/code/LanguageMenu.svelte +16 -125
- package/dist/plugins/code/LanguageMenu.svelte.d.ts +2 -1
- package/dist/plugins/code/code.css +5 -117
- package/dist/plugins/code/header.svelte.d.ts +2 -11
- package/dist/plugins/code/header.svelte.js +11 -38
- package/dist/plugins/code/languageMenu.svelte.d.ts +12 -32
- package/dist/plugins/code/languageMenu.svelte.js +30 -160
- package/dist/plugins/code/languages.d.ts +9 -22
- package/dist/plugins/code/languages.js +39 -128
- package/dist/plugins/columns/ColumnResize.svelte +16 -27
- package/dist/plugins/columns/ColumnResize.svelte.d.ts +1 -1
- package/dist/plugins/columns/ColumnsPlugin.svelte +46 -78
- package/dist/plugins/columns/ColumnsPlugin.svelte.d.ts +0 -12
- package/dist/plugins/columns/columns.css +7 -26
- package/dist/plugins/columns/gaps.d.ts +7 -5
- package/dist/plugins/columns/gaps.js +11 -6
- package/dist/plugins/columns/resize.svelte.d.ts +17 -54
- package/dist/plugins/columns/resize.svelte.js +80 -173
- package/dist/plugins/comments/CommentsController.svelte.d.ts +1 -4
- package/dist/plugins/comments/CommentsController.svelte.js +14 -25
- package/dist/plugins/comments/CommentsSidebar.svelte +82 -431
- package/dist/plugins/comments/CommentsSidebar.svelte.d.ts +4 -2
- package/dist/plugins/comments/commentsPlugin.d.ts +25 -9
- package/dist/plugins/comments/commentsPlugin.js +12 -10
- package/dist/plugins/equation/EquationEditor.svelte +16 -130
- package/dist/plugins/equation/EquationEditor.svelte.d.ts +1 -2
- package/dist/plugins/equation/EquationPlugin.svelte +109 -172
- package/dist/plugins/equation/EquationPlugin.svelte.d.ts +3 -2
- package/dist/plugins/equation/EquationView.svelte +20 -11
- package/dist/plugins/equation/equation.css +7 -0
- package/dist/plugins/equation/equation.svelte.d.ts +37 -24
- package/dist/plugins/equation/equation.svelte.js +20 -94
- package/dist/plugins/equation/katex.js +6 -9
- package/dist/plugins/fileDrop.d.ts +28 -0
- package/dist/plugins/fileDrop.js +116 -0
- package/dist/plugins/find/FindController.svelte.d.ts +8 -13
- package/dist/plugins/find/FindController.svelte.js +34 -55
- package/dist/plugins/find/findPlugin.d.ts +4 -8
- package/dist/plugins/find/findPlugin.js +29 -9
- package/dist/plugins/image/ImageChrome.svelte +6 -167
- package/dist/plugins/image/ImageChrome.svelte.d.ts +0 -2
- package/dist/plugins/image/ImagePlugin.svelte +71 -151
- package/dist/plugins/image/ImagePlugin.svelte.d.ts +12 -41
- package/dist/plugins/image/ImageToolbarHost.svelte +37 -0
- package/dist/plugins/image/ImageToolbarHost.svelte.d.ts +9 -0
- package/dist/plugins/image/controls.svelte.d.ts +6 -36
- package/dist/plugins/image/controls.svelte.js +43 -212
- package/dist/plugins/image/image.css +17 -0
- package/dist/plugins/image/image.d.ts +0 -5
- package/dist/plugins/image/image.js +0 -3
- package/dist/plugins/image/toolbar.svelte.d.ts +69 -0
- package/dist/plugins/image/toolbar.svelte.js +145 -0
- package/dist/plugins/index.d.ts +30 -26
- package/dist/plugins/index.js +28 -22
- package/dist/plugins/list.svelte.d.ts +128 -0
- package/dist/plugins/list.svelte.js +217 -0
- package/dist/plugins/markdownShortcuts.d.ts +1 -1
- package/dist/plugins/markdownShortcuts.js +10 -9
- package/dist/plugins/marquee/MarqueeBox.svelte +3 -20
- package/dist/plugins/marquee/MarqueeBox.svelte.d.ts +1 -1
- package/dist/plugins/marquee/MarqueeController.svelte.d.ts +0 -2
- package/dist/plugins/marquee/MarqueeController.svelte.js +20 -23
- package/dist/plugins/marquee/marquee.js +4 -21
- package/dist/plugins/marquee/marqueePlugin.d.ts +4 -3
- package/dist/plugins/marquee/marqueePlugin.js +16 -15
- package/dist/plugins/media/AudioPlugin.svelte +13 -88
- package/dist/plugins/media/AudioPlugin.svelte.d.ts +11 -4
- package/dist/plugins/media/BookmarkPlugin.svelte +113 -120
- package/dist/plugins/media/BookmarkPlugin.svelte.d.ts +10 -15
- package/dist/plugins/media/EmbedPlugin.svelte +82 -86
- package/dist/plugins/media/EmbedPlugin.svelte.d.ts +11 -17
- package/dist/plugins/media/EmptySlot.svelte +44 -0
- package/dist/plugins/media/EmptySlot.svelte.d.ts +25 -0
- package/dist/plugins/media/FilePlugin.svelte +45 -113
- package/dist/plugins/media/FilePlugin.svelte.d.ts +21 -4
- package/dist/plugins/media/MediaEmpty.svelte +51 -90
- package/dist/plugins/media/MediaEmpty.svelte.d.ts +26 -10
- package/dist/plugins/media/SourceBlock.svelte +200 -0
- package/dist/plugins/media/SourceBlock.svelte.d.ts +34 -0
- package/dist/plugins/media/UploadPreview.svelte +32 -0
- package/dist/plugins/media/UploadPreview.svelte.d.ts +11 -0
- package/dist/plugins/media/VideoPlugin.svelte +14 -97
- package/dist/plugins/media/VideoPlugin.svelte.d.ts +12 -5
- package/dist/plugins/media/empty.svelte.d.ts +47 -46
- package/dist/plugins/media/empty.svelte.js +67 -60
- package/dist/plugins/media/media.d.ts +97 -44
- package/dist/plugins/media/media.js +77 -99
- package/dist/plugins/media/upload.css +23 -0
- package/dist/plugins/media/urlPaste.svelte.d.ts +6 -37
- package/dist/plugins/media/urlPaste.svelte.js +32 -102
- package/dist/plugins/mention/MentionPlugin.svelte +84 -126
- package/dist/plugins/mention/MentionPlugin.svelte.d.ts +17 -27
- package/dist/plugins/mention/mention.css +6 -0
- package/dist/plugins/page/PageLink.svelte +54 -38
- package/dist/plugins/page/PagePlugin.svelte +20 -18
- package/dist/plugins/page/PagePlugin.svelte.d.ts +2 -4
- package/dist/plugins/page/page.d.ts +35 -9
- package/dist/plugins/page/page.js +3 -4
- package/dist/plugins/pageLink/PageLinkPlugin.svelte +154 -109
- package/dist/plugins/pageLink/PageLinkPlugin.svelte.d.ts +19 -26
- package/dist/plugins/pageLink/pageLink.css +6 -0
- package/dist/plugins/planned.d.ts +10 -0
- package/dist/plugins/planned.js +12 -0
- package/dist/plugins/richtext/CalloutIcon.svelte +13 -26
- package/dist/plugins/richtext/CalloutIconPicker.svelte +26 -0
- package/dist/plugins/richtext/CalloutIconPicker.svelte.d.ts +9 -0
- package/dist/plugins/richtext/EmptyBody.svelte +13 -20
- package/dist/plugins/richtext/RichTextControl.svelte +39 -0
- package/dist/plugins/richtext/RichTextControl.svelte.d.ts +8 -0
- package/dist/plugins/richtext/RichTextPlugin.svelte +174 -183
- package/dist/plugins/richtext/RichTextPlugin.svelte.d.ts +34 -34
- package/dist/plugins/richtext/TodoCheckbox.svelte +10 -21
- package/dist/plugins/richtext/TodoCheckbox.svelte.d.ts +0 -2
- package/dist/plugins/richtext/body.js +2 -2
- package/dist/plugins/richtext/calloutIcons.svelte.d.ts +50 -55
- package/dist/plugins/richtext/calloutIcons.svelte.js +86 -174
- package/dist/plugins/richtext/callouts.d.ts +15 -0
- package/dist/plugins/richtext/callouts.js +23 -0
- package/dist/plugins/richtext/controls.svelte.d.ts +110 -0
- package/dist/plugins/richtext/controls.svelte.js +126 -0
- package/dist/plugins/richtext/richTextOperations.js +37 -28
- package/dist/plugins/richtext/richtext.css +6 -0
- package/dist/plugins/slashMenu/SlashMenuController.svelte.d.ts +2 -14
- package/dist/plugins/slashMenu/SlashMenuController.svelte.js +34 -71
- package/dist/plugins/slashMenu/slashMenuPlugin.d.ts +9 -26
- package/dist/plugins/slashMenu/slashMenuPlugin.js +27 -68
- package/dist/plugins/suggestions/SuggestionBars.svelte +27 -84
- package/dist/plugins/suggestions/SuggestionBars.svelte.d.ts +9 -3
- package/dist/plugins/suggestions/suggestionsPlugin.d.ts +10 -18
- package/dist/plugins/suggestions/suggestionsPlugin.js +9 -24
- package/dist/plugins/table/TableChrome.svelte +40 -124
- package/dist/plugins/table/TablePlugin.svelte +106 -168
- package/dist/plugins/table/TablePlugin.svelte.d.ts +0 -4
- package/dist/plugins/table/chrome.svelte.d.ts +38 -141
- package/dist/plugins/table/chrome.svelte.js +340 -589
- package/dist/plugins/table/ops.d.ts +47 -0
- package/dist/plugins/table/ops.js +233 -0
- package/dist/plugins/table/table.css +16 -152
- package/dist/plugins/table/table.d.ts +15 -14
- package/dist/plugins/table/table.js +22 -16
- package/dist/plugins/toc/TableOfContents.svelte +32 -38
- package/dist/plugins/toc/TableOfContents.svelte.d.ts +1 -5
- package/dist/plugins/toc/TocPlugin.svelte +22 -22
- package/dist/plugins/toc/TocPlugin.svelte.d.ts +4 -6
- package/dist/plugins/toc/toc.d.ts +41 -10
- package/dist/plugins/toc/toc.js +2 -3
- package/dist/plugins/toolbar/ToolbarController.svelte.d.ts +4 -68
- package/dist/plugins/toolbar/ToolbarController.svelte.js +63 -89
- package/dist/plugins/toolbar/toolbarPlugin.d.ts +8 -18
- package/dist/plugins/toolbar/toolbarPlugin.js +28 -43
- package/dist/plugins/triggers/TriggerController.svelte.d.ts +4 -68
- package/dist/plugins/triggers/TriggerController.svelte.js +48 -129
- package/dist/plugins/triggers/place.d.ts +0 -9
- package/dist/plugins/triggers/place.js +1 -17
- package/dist/plugins/triggers/triggers.d.ts +31 -9
- package/dist/plugins/triggers/triggers.js +82 -62
- package/dist/plugins/uploads.svelte.d.ts +55 -24
- package/dist/plugins/uploads.svelte.js +123 -50
- package/dist/plugins.d.ts +187 -66
- package/dist/selection/domSelection.d.ts +13 -4
- package/dist/selection/domSelection.js +110 -183
- package/dist/selection/pointer.svelte.d.ts +8 -10
- package/dist/selection/pointer.svelte.js +32 -73
- package/dist/selection/replaceSelection.d.ts +21 -22
- package/dist/selection/replaceSelection.js +60 -69
- package/dist/selection/selection.svelte.d.ts +5 -73
- package/dist/selection/selection.svelte.js +224 -542
- package/dist/selection/selection.utils.d.ts +34 -11
- package/dist/selection/selection.utils.js +128 -247
- package/dist/selection/visibility.d.ts +3 -8
- package/dist/selection/visibility.js +7 -5
- package/dist/session/announcer.svelte.d.ts +2 -1
- package/dist/session/announcer.svelte.js +7 -3
- package/dist/session/attempt.d.ts +43 -39
- package/dist/session/attempt.js +62 -55
- package/dist/session/bindings.js +117 -145
- package/dist/session/commands.d.ts +47 -22
- package/dist/session/commands.js +208 -208
- package/dist/session/composition.svelte.d.ts +2 -4
- package/dist/session/composition.svelte.js +55 -65
- package/dist/session/editing/text.d.ts +6 -0
- package/dist/session/editing/text.js +17 -3
- package/dist/session/handles.d.ts +10 -1
- package/dist/session/handles.js +28 -0
- package/dist/session/history.d.ts +0 -4
- package/dist/session/history.js +16 -21
- package/dist/session/inputRules.d.ts +6 -3
- package/dist/session/inputRules.js +78 -83
- package/dist/session/keymap.d.ts +1 -6
- package/dist/session/keymap.js +17 -20
- package/dist/session/moves.d.ts +43 -10
- package/dist/session/moves.js +101 -59
- package/dist/session/navigation.d.ts +10 -2
- package/dist/session/navigation.js +140 -172
- package/dist/session/ports.d.ts +2 -7
- package/dist/session/props.d.ts +25 -25
- package/dist/session/props.js +62 -159
- package/dist/session/selection.d.ts +4 -3
- package/dist/session/selection.js +5 -0
- package/dist/session/suggestions.svelte.d.ts +1 -1
- package/dist/session/suggestions.svelte.js +42 -47
- package/dist/session/uploads.d.ts +29 -0
- package/dist/session/uploads.js +10 -0
- package/dist/session/virtual.d.ts +3 -3
- package/dist/session/virtual.js +18 -40
- package/dist/surface/attributes.d.ts +1 -0
- package/dist/surface/attributes.js +3 -26
- package/dist/surface/cells.d.ts +5 -0
- package/dist/surface/cells.js +5 -0
- package/dist/surface/lines.d.ts +2 -2
- package/dist/surface/lines.js +1 -1
- package/dist/surface/observer.svelte.d.ts +3 -20
- package/dist/surface/observer.svelte.js +52 -72
- package/dist/surface/overlay.d.ts +41 -3
- package/dist/surface/overlay.js +92 -37
- package/dist/surface/pin.svelte.d.ts +5 -0
- package/dist/surface/pin.svelte.js +5 -0
- package/dist/surface/projector.svelte.d.ts +4 -6
- package/dist/surface/projector.svelte.js +42 -69
- package/dist/text/text.svelte.d.ts +14 -40
- package/dist/text/text.svelte.js +35 -51
- package/dist/text/wordBoundary.d.ts +19 -0
- package/dist/text/wordBoundary.js +29 -44
- package/dist/themes/notion.css +272 -106
- package/dist/utils/json.d.ts +3 -1
- package/dist/utils/json.js +52 -51
- package/dist/utils/listen.d.ts +8 -0
- package/dist/utils/listen.js +19 -0
- package/package.json +4 -5
- package/dist/block/block.utils.d.ts +0 -340
- package/dist/block/block.utils.js +0 -356
- package/dist/collaboration/history/HistoryPanel.svelte +0 -554
- package/dist/collaboration/history/HistoryPanel.svelte.d.ts +0 -7
- package/dist/collaboration/history/panel.d.ts +0 -61
- package/dist/collaboration/history/panel.js +0 -3
- package/dist/components/SuggestionRanges.svelte +0 -58
- package/dist/components/SuggestionRanges.svelte.d.ts +0 -7
- package/dist/crdt/doc/table.d.ts +0 -21
- package/dist/crdt/doc/table.js +0 -288
- package/dist/crdt/migration/generation.d.ts +0 -58
- package/dist/crdt/migration/generation.js +0 -70
- package/dist/crdt/migration/legacy-schema.d.ts +0 -61
- package/dist/crdt/migration/legacy-schema.js +0 -151
- package/dist/crdt/migration/migrate.d.ts +0 -56
- package/dist/crdt/migration/migrate.js +0 -227
- package/dist/crdt/nodes.d.ts +0 -121
- package/dist/crdt/nodes.js +0 -56
- package/dist/crdt/text/index/checks.d.ts +0 -15
- package/dist/crdt/text/index/checks.js +0 -156
- package/dist/crdt/vendor/yjs/dts/utils/EventHandler.d.ts +0 -17
- package/dist/crdt/vendor/yjs/dts/utils/RelativePosition.d.ts +0 -80
- package/dist/crdt/vendor/yjs/dts/utils/UndoManager.d.ts +0 -205
- package/dist/crdt/vendor/yjs/dts/utils/YEvent.d.ts +0 -93
- package/dist/crdt/vendor/yjs/dts/utils/meta.d.ts +0 -25
- package/dist/crdt/vendor/yjs/dts/utils/renderer-helpers.d.ts +0 -98
- package/dist/crdt/vendor/yjs/dts/utils/schemas.d.ts +0 -2
- package/dist/crdt/vendor/yjs/src/utils/EventHandler.js +0 -75
- package/dist/crdt/vendor/yjs/src/utils/RelativePosition.js +0 -301
- package/dist/crdt/vendor/yjs/src/utils/UndoManager.js +0 -554
- package/dist/crdt/vendor/yjs/src/utils/YEvent.js +0 -158
- package/dist/crdt/vendor/yjs/src/utils/meta.js +0 -74
- package/dist/crdt/vendor/yjs/src/utils/renderer-helpers.js +0 -186
- package/dist/crdt/vendor/yjs/src/utils/schemas.js +0 -3
- package/dist/edytor.utils.d.ts +0 -50
- package/dist/edytor.utils.js +0 -67
- package/dist/plugins/blockMenu/BlockMenu.svelte +0 -335
- package/dist/plugins/blockMenu/BlockMenu.svelte.d.ts +0 -9
- package/dist/plugins/find/FindBar.svelte +0 -170
- package/dist/plugins/find/FindBar.svelte.d.ts +0 -9
- package/dist/plugins/find/FindHighlights.svelte +0 -75
- package/dist/plugins/find/FindHighlights.svelte.d.ts +0 -9
- package/dist/plugins/icons.d.ts +0 -2
- package/dist/plugins/icons.js +0 -63
- package/dist/plugins/image/ImageEmpty.svelte +0 -93
- package/dist/plugins/image/ImageEmpty.svelte.d.ts +0 -15
- package/dist/plugins/image/empty.svelte.d.ts +0 -56
- package/dist/plugins/image/empty.svelte.js +0 -83
- package/dist/plugins/keepInView.d.ts +0 -4
- package/dist/plugins/keepInView.js +0 -6
- package/dist/plugins/media/UrlPasteMenu.svelte +0 -92
- package/dist/plugins/media/UrlPasteMenu.svelte.d.ts +0 -9
- package/dist/plugins/richtext/CalloutIconMenu.svelte +0 -98
- package/dist/plugins/richtext/CalloutIconMenu.svelte.d.ts +0 -9
- package/dist/plugins/richtext/labels.d.ts +0 -9
- package/dist/plugins/richtext/labels.js +0 -7
- package/dist/plugins/slashMenu/SlashMenu.svelte +0 -276
- package/dist/plugins/slashMenu/SlashMenu.svelte.d.ts +0 -11
- package/dist/plugins/table/dragPreview.d.ts +0 -29
- package/dist/plugins/table/dragPreview.js +0 -103
- package/dist/plugins/toolbar/LinkCard.svelte +0 -122
- package/dist/plugins/toolbar/LinkCard.svelte.d.ts +0 -9
- package/dist/plugins/toolbar/Toolbar.svelte +0 -349
- package/dist/plugins/toolbar/Toolbar.svelte.d.ts +0 -9
- package/dist/plugins/triggers/TriggerMenu.svelte +0 -135
- package/dist/plugins/triggers/TriggerMenu.svelte.d.ts +0 -7
- package/dist/text/deltas.d.ts +0 -22
- package/dist/text/deltas.js +0 -46
- package/dist/text/text.utils.d.ts +0 -45
- package/dist/text/text.utils.js +0 -199
- /package/dist/{plugins/columns → dnd}/stacking.d.ts +0 -0
- /package/dist/{plugins/columns → dnd}/stacking.js +0 -0
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
import * as error from 'lib0-v14/error'
|
|
2
|
-
import * as map from 'lib0-v14/map'
|
|
3
1
|
import * as math from 'lib0-v14/math'
|
|
4
|
-
import * as logging from 'lib0-v14/logging'
|
|
5
2
|
import { callAll } from 'lib0-v14/function'
|
|
6
3
|
|
|
7
|
-
import {
|
|
8
|
-
import { getStateVector } from './StructStore.js'
|
|
9
|
-
import { callEventHandlerListeners } from './EventHandler.js'
|
|
10
|
-
import { createIdSet, iterateStructsByIdSet } from './ids.js'
|
|
11
|
-
import { GC } from '../structs/GC.js'
|
|
12
|
-
import { YEvent } from './YEvent.js'
|
|
4
|
+
import { createIdSet } from './ids.js'
|
|
13
5
|
import { writeUpdateMessageFromTransaction } from './encoding-helpers.js'
|
|
14
|
-
import {
|
|
15
|
-
import { findIndexSS,
|
|
6
|
+
import { UpdateEncoder } from './UpdateEncoder.js'
|
|
7
|
+
import { findIndexSS, tryGcDeleteSet, tryMerge, tryToMergeWithLefts } from './transaction-helpers.js'
|
|
16
8
|
import * as random from 'lib0-v14/random'
|
|
17
9
|
|
|
18
10
|
export const generateNewClientId = random.uint53
|
|
@@ -20,25 +12,10 @@ export const generateNewClientId = random.uint53
|
|
|
20
12
|
/**
|
|
21
13
|
* A transaction is created for every change on the Yjs model. It is possible
|
|
22
14
|
* to bundle changes on the Yjs model in a single transaction to
|
|
23
|
-
* minimize the number
|
|
24
|
-
* If possible the user of this library should bundle as many changes as
|
|
25
|
-
* possible. Here is an example to illustrate the advantages of bundling:
|
|
15
|
+
* minimize the number of messages sent.
|
|
26
16
|
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* const map = ydoc.get('map')
|
|
30
|
-
* // Log content when change is triggered
|
|
31
|
-
* map.observe(() => {
|
|
32
|
-
* console.log('change triggered')
|
|
33
|
-
* })
|
|
34
|
-
* // Each change on the map type triggers a log message:
|
|
35
|
-
* map.setAttr('a', 0) // => "change triggered"
|
|
36
|
-
* map.setAttr('b', 0) // => "change triggered"
|
|
37
|
-
* // When put in a transaction, it will trigger the log after the transaction:
|
|
38
|
-
* ydoc.transact(() => {
|
|
39
|
-
* map.setAttr('a', 1)
|
|
40
|
-
* map.setAttr('b', 1)
|
|
41
|
-
* }) // => "change triggered"
|
|
17
|
+
* YP19: a commit is told through the document's events (`commit`, then
|
|
18
|
+
* `afterTransaction`); nodes have no observers.
|
|
42
19
|
*
|
|
43
20
|
* @public
|
|
44
21
|
*/
|
|
@@ -58,25 +35,10 @@ export class Transaction {
|
|
|
58
35
|
* Describes the set of deleted items by ids
|
|
59
36
|
*/
|
|
60
37
|
this.deleteSet = createIdSet()
|
|
61
|
-
/**
|
|
62
|
-
* Describes the set of items that are cleaned up / deleted by ids. It is a subset of
|
|
63
|
-
* this.deleteSet
|
|
64
|
-
*/
|
|
65
|
-
this.cleanUps = createIdSet()
|
|
66
38
|
/**
|
|
67
39
|
* Describes the set of inserted items by ids
|
|
68
40
|
*/
|
|
69
41
|
this.insertSet = createIdSet()
|
|
70
|
-
/**
|
|
71
|
-
* Holds the state before the transaction started.
|
|
72
|
-
* @type {Map<Number,Number>?}
|
|
73
|
-
*/
|
|
74
|
-
this._beforeState = null
|
|
75
|
-
/**
|
|
76
|
-
* Holds the state after the transaction.
|
|
77
|
-
* @type {Map<Number,Number>?}
|
|
78
|
-
*/
|
|
79
|
-
this._afterState = null
|
|
80
42
|
/**
|
|
81
43
|
* All types that were directly modified (property added or child
|
|
82
44
|
* inserted/deleted). New types are not included in this Set.
|
|
@@ -84,12 +46,6 @@ export class Transaction {
|
|
|
84
46
|
* @type {Map<YNode,Set<String|null>>}
|
|
85
47
|
*/
|
|
86
48
|
this.changed = new Map()
|
|
87
|
-
/**
|
|
88
|
-
* Stores the events for the types that observe also child elements.
|
|
89
|
-
* It is mainly used by `observeDeep`.
|
|
90
|
-
* @type {Map<YNode,Array<YEvent<any>>>}
|
|
91
|
-
*/
|
|
92
|
-
this.changedParentTypes = new Map()
|
|
93
49
|
/**
|
|
94
50
|
* @type {Array<AbstractStruct>}
|
|
95
51
|
*/
|
|
@@ -98,112 +54,14 @@ export class Transaction {
|
|
|
98
54
|
* @type {any}
|
|
99
55
|
*/
|
|
100
56
|
this.origin = origin
|
|
101
|
-
/**
|
|
102
|
-
* Stores meta information on the transaction
|
|
103
|
-
* @type {Map<any,any>}
|
|
104
|
-
*/
|
|
105
|
-
this.meta = new Map()
|
|
106
57
|
/**
|
|
107
58
|
* Whether this change originates from this doc.
|
|
108
59
|
* @type {boolean}
|
|
109
60
|
*/
|
|
110
61
|
this.local = local
|
|
111
|
-
/**
|
|
112
|
-
* @type {Set<Doc>}
|
|
113
|
-
*/
|
|
114
|
-
this.subdocsAdded = new Set()
|
|
115
|
-
/**
|
|
116
|
-
* @type {Set<Doc>}
|
|
117
|
-
*/
|
|
118
|
-
this.subdocsRemoved = new Set()
|
|
119
|
-
/**
|
|
120
|
-
* @type {Set<Doc>}
|
|
121
|
-
*/
|
|
122
|
-
this.subdocsLoaded = new Set()
|
|
123
|
-
/**
|
|
124
|
-
* @type {boolean}
|
|
125
|
-
*/
|
|
126
|
-
this._needFormattingCleanup = false
|
|
127
|
-
this._done = false
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Holds the state before the transaction started.
|
|
132
|
-
*
|
|
133
|
-
* @deprecated
|
|
134
|
-
* @type {Map<Number,Number>}
|
|
135
|
-
*/
|
|
136
|
-
get beforeState () {
|
|
137
|
-
if (this._beforeState == null) {
|
|
138
|
-
const sv = getStateVector(this.doc.store)
|
|
139
|
-
this.insertSet.clients.forEach((ranges, client) => {
|
|
140
|
-
sv.set(client, ranges.getIds()[0].clock)
|
|
141
|
-
})
|
|
142
|
-
this._beforeState = sv
|
|
143
|
-
}
|
|
144
|
-
return this._beforeState
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Holds the state after the transaction.
|
|
149
|
-
*
|
|
150
|
-
* @deprecated
|
|
151
|
-
* @type {Map<Number,Number>}
|
|
152
|
-
*/
|
|
153
|
-
get afterState () {
|
|
154
|
-
if (!this._done) error.unexpectedCase()
|
|
155
|
-
if (this._afterState == null) {
|
|
156
|
-
const sv = getStateVector(this.doc.store)
|
|
157
|
-
this.insertSet.clients.forEach((_ranges, client) => {
|
|
158
|
-
const ranges = _ranges.getIds()
|
|
159
|
-
const d = ranges[ranges.length - 1]
|
|
160
|
-
sv.set(client, d.clock + d.len)
|
|
161
|
-
})
|
|
162
|
-
this._afterState = sv
|
|
163
|
-
}
|
|
164
|
-
return this._afterState
|
|
165
62
|
}
|
|
166
63
|
}
|
|
167
64
|
|
|
168
|
-
/**
|
|
169
|
-
* This function is experimental and subject to change / be removed.
|
|
170
|
-
*
|
|
171
|
-
* Ideally, we don't need this function at all. Formats should be cleaned up
|
|
172
|
-
* automatically after each change. This function iterates twice over the complete YText type
|
|
173
|
-
* and removes unnecessary formats. This is also helpful for testing.
|
|
174
|
-
*
|
|
175
|
-
* This function won't be exported anymore as soon as there is confidence that the YText type works as intended.
|
|
176
|
-
*
|
|
177
|
-
* @param {YNode} type
|
|
178
|
-
* @return {number} How many formats have been cleaned up.
|
|
179
|
-
*/
|
|
180
|
-
export const cleanupYTextFormatting = type => {
|
|
181
|
-
if (!type.doc?.cleanupFormatting) return 0
|
|
182
|
-
let res = 0
|
|
183
|
-
transact(/** @type {Doc} */ (type.doc), transaction => {
|
|
184
|
-
let start = /** @type {Item} */ (type._start)
|
|
185
|
-
let end = type._start
|
|
186
|
-
let startFormats = map.create()
|
|
187
|
-
const currentFormats = map.copy(startFormats)
|
|
188
|
-
while (end) {
|
|
189
|
-
if (end.deleted === false) {
|
|
190
|
-
switch (end.content.constructor) {
|
|
191
|
-
case ContentFormat:
|
|
192
|
-
updateCurrentFormats(currentFormats, /** @type {ContentFormat} */ (end.content))
|
|
193
|
-
break
|
|
194
|
-
default:
|
|
195
|
-
res += cleanupFormattingGap(transaction, start, end, startFormats, currentFormats)
|
|
196
|
-
startFormats = map.copy(currentFormats)
|
|
197
|
-
start = end
|
|
198
|
-
break
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
end = end.right
|
|
202
|
-
}
|
|
203
|
-
})
|
|
204
|
-
return res
|
|
205
|
-
}
|
|
206
|
-
|
|
207
65
|
/**
|
|
208
66
|
* @param {Array<Transaction>} transactionCleanups
|
|
209
67
|
* @param {number} i
|
|
@@ -211,68 +69,23 @@ export const cleanupYTextFormatting = type => {
|
|
|
211
69
|
const cleanupTransactions = (transactionCleanups, i) => {
|
|
212
70
|
if (i < transactionCleanups.length) {
|
|
213
71
|
const transaction = transactionCleanups[i]
|
|
214
|
-
transaction._done = true
|
|
215
72
|
const doc = transaction.doc
|
|
216
73
|
const store = doc.store
|
|
217
74
|
const ds = transaction.deleteSet
|
|
218
75
|
const mergeStructs = transaction._mergeStructs
|
|
219
76
|
// insertIntoIdSet(store.ds, ds)
|
|
220
77
|
try {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
* Each callback is called even if the other ones throw errors.
|
|
226
|
-
*
|
|
227
|
-
* @type {Array<function():void>}
|
|
228
|
-
*/
|
|
229
|
-
const fs = []
|
|
230
|
-
// observe events on changed types. Deleted types are included: `callTypeObservers` tracks
|
|
231
|
-
// the event in `changedParentTypes` unconditionally (so changes inside a deleted type — e.g.
|
|
232
|
-
// a suggestion-deleted tombstone that a custom renderer still renders — bubble to live
|
|
233
|
-
// ancestors) and decides itself whether the type's own observers fire.
|
|
234
|
-
transaction.changed.forEach((subs, itemtype) =>
|
|
235
|
-
fs.push(() => {
|
|
236
|
-
itemtype._callObserver(transaction, subs)
|
|
78
|
+
// A remote change may have moved what a search marker counted: drop them.
|
|
79
|
+
if (!transaction.local) {
|
|
80
|
+
transaction.changed.forEach((_subs, type) => {
|
|
81
|
+
if (type._searchMarker) type._searchMarker.length = 0
|
|
237
82
|
})
|
|
238
|
-
)
|
|
239
|
-
fs.push(() => {
|
|
240
|
-
// deep observe events + the RDT `'delta'` channel. `changedParentTypes` holds the changed
|
|
241
|
-
// type AND all of its ancestors, so both `observeDeep` and `'delta'` bubble identically.
|
|
242
|
-
transaction.changedParentTypes.forEach((events, type) => {
|
|
243
|
-
// We need to think about the possibility that the user transforms the
|
|
244
|
-
// Y.Doc in the event.
|
|
245
|
-
// Deleted types are tracked (so changes inside them bubble to live ancestors) but fire
|
|
246
|
-
// only while something still renders them — i.e. they have a renderer attached.
|
|
247
|
-
if (type._item !== null && type._item.deleted && type._renderer === null) return
|
|
248
|
-
const hasDeep = type._dEH.l.length > 0
|
|
249
|
-
const hasDeltaListeners = (type._observers.get('delta')?.size ?? 0) > 0
|
|
250
|
-
const maintaining = type._delta !== null
|
|
251
|
-
if (!hasDeep && !hasDeltaListeners && !maintaining) return
|
|
252
|
-
/**
|
|
253
|
-
* @type {YEvent<any>}
|
|
254
|
-
*/
|
|
255
|
-
const deepEventHandler = events.find(event => event.target === type) || new YEvent(type, transaction, new Set(null))
|
|
256
|
-
if (hasDeep) {
|
|
257
|
-
callEventHandlerListeners(type._dEH, deepEventHandler, transaction)
|
|
258
|
-
}
|
|
259
|
-
if (hasDeltaListeners || maintaining) {
|
|
260
|
-
// the type-rooted deep delta of this transaction (a nested `modify` chain for ancestors)
|
|
261
|
-
const change = /** @type {any} */ (deepEventHandler.getDelta({ renderer: type._renderer, deep: true }).done())
|
|
262
|
-
// a base-renderer type doesn't render deleted content, so a change that happened
|
|
263
|
-
// entirely inside a deleted subtree renders to an empty delta — don't emit those no-ops
|
|
264
|
-
if (!change.isEmpty()) {
|
|
265
|
-
type._delta?.apply(change) // keep the cache current (incl. ancestors and diff-renderer attributions) — builder API only, see the YNode._delta fingerprint-memo invariant
|
|
266
|
-
if (hasDeltaListeners) type.emit('delta', [change, transaction.origin])
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
})
|
|
270
|
-
})
|
|
271
|
-
fs.push(() => doc.emit('afterTransaction', [transaction, doc]))
|
|
272
|
-
callAll(fs, [])
|
|
273
|
-
if (transaction._needFormattingCleanup && doc.cleanupFormatting) {
|
|
274
|
-
cleanupYTextAfterTransaction(transaction)
|
|
275
83
|
}
|
|
84
|
+
// Each listener runs even if another throws (the first error is rethrown).
|
|
85
|
+
callAll([
|
|
86
|
+
() => doc.emit('commit', [transaction, doc]),
|
|
87
|
+
() => doc.emit('afterTransaction', [transaction, doc])
|
|
88
|
+
], [])
|
|
276
89
|
} finally {
|
|
277
90
|
// Replace deleted items with ItemDeleted / GC.
|
|
278
91
|
// This is where content is actually remove from the Yjs Doc.
|
|
@@ -308,38 +121,16 @@ const cleanupTransactions = (transactionCleanups, i) => {
|
|
|
308
121
|
}
|
|
309
122
|
}
|
|
310
123
|
if (!transaction.local && transaction.insertSet.clients.has(doc.clientID)) {
|
|
311
|
-
|
|
124
|
+
console.log('[yjs] Changed the client-id because another client seems to be using it.') // YP15
|
|
312
125
|
doc.clientID = generateNewClientId()
|
|
313
126
|
}
|
|
314
|
-
// @todo Merge all the transactions into one and provide send the data as a single update message
|
|
315
|
-
doc.emit('afterTransactionCleanup', [transaction, doc])
|
|
316
127
|
if (doc._observers.has('update')) {
|
|
317
|
-
const encoder = new
|
|
128
|
+
const encoder = new UpdateEncoder()
|
|
318
129
|
const hasContent = writeUpdateMessageFromTransaction(encoder, transaction)
|
|
319
130
|
if (hasContent) {
|
|
320
131
|
doc.emit('update', [encoder.toUint8Array(), transaction.origin, doc, transaction])
|
|
321
132
|
}
|
|
322
133
|
}
|
|
323
|
-
if (doc._observers.has('updateV2')) {
|
|
324
|
-
const encoder = new UpdateEncoderV2()
|
|
325
|
-
const hasContent = writeUpdateMessageFromTransaction(encoder, transaction)
|
|
326
|
-
if (hasContent) {
|
|
327
|
-
doc.emit('updateV2', [encoder.toUint8Array(), transaction.origin, doc, transaction])
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
const { subdocsAdded, subdocsLoaded, subdocsRemoved } = transaction
|
|
331
|
-
if (subdocsAdded.size > 0 || subdocsRemoved.size > 0 || subdocsLoaded.size > 0) {
|
|
332
|
-
subdocsAdded.forEach(subdoc => {
|
|
333
|
-
subdoc.clientID = doc.clientID
|
|
334
|
-
if (subdoc.collectionid == null) {
|
|
335
|
-
subdoc.collectionid = doc.collectionid
|
|
336
|
-
}
|
|
337
|
-
doc.subdocs.add(subdoc)
|
|
338
|
-
})
|
|
339
|
-
subdocsRemoved.forEach(subdoc => doc.subdocs.delete(subdoc))
|
|
340
|
-
doc.emit('subdocs', [{ loaded: subdocsLoaded, added: subdocsAdded, removed: subdocsRemoved }, doc, transaction])
|
|
341
|
-
subdocsRemoved.forEach(subdoc => subdoc.destroy())
|
|
342
|
-
}
|
|
343
134
|
|
|
344
135
|
if (transactionCleanups.length <= i + 1) {
|
|
345
136
|
doc._transactionCleanups = []
|
|
@@ -351,62 +142,6 @@ const cleanupTransactions = (transactionCleanups, i) => {
|
|
|
351
142
|
}
|
|
352
143
|
}
|
|
353
144
|
|
|
354
|
-
// YP10 begin
|
|
355
|
-
/**
|
|
356
|
-
* Origin of the formatting cleanup that follows a remote transaction. The
|
|
357
|
-
* cleanup is a write this document makes on its own (it deletes format items
|
|
358
|
-
* a remote change made redundant): providers must still broadcast it, like
|
|
359
|
-
* any local write, but no UndoManager tracks it — an origin nobody tracks
|
|
360
|
-
* instead of `null`, the untyped-local origin every default undo manager
|
|
361
|
-
* captures.
|
|
362
|
-
*/
|
|
363
|
-
const formattingCleanupOrigin = Symbol('yjs.formatting-cleanup')
|
|
364
|
-
// YP10 end
|
|
365
|
-
|
|
366
|
-
/**
|
|
367
|
-
* This will be called by the transaction once the event handlers are called to potentially cleanup
|
|
368
|
-
* formats.
|
|
369
|
-
*
|
|
370
|
-
* @param {Transaction} transaction
|
|
371
|
-
*/
|
|
372
|
-
export const cleanupYTextAfterTransaction = transaction => {
|
|
373
|
-
/**
|
|
374
|
-
* @type {Set<YNode>}
|
|
375
|
-
*/
|
|
376
|
-
const needFullCleanup = new Set()
|
|
377
|
-
// check if another formatting item was inserted
|
|
378
|
-
const doc = transaction.doc
|
|
379
|
-
iterateStructsByIdSet(transaction, transaction.insertSet, (item) => {
|
|
380
|
-
if (
|
|
381
|
-
!item.deleted && /** @type {Item} */ (item).content.constructor === ContentFormat && item.constructor !== GC
|
|
382
|
-
) {
|
|
383
|
-
needFullCleanup.add(/** @type {any} */ (item).parent)
|
|
384
|
-
}
|
|
385
|
-
})
|
|
386
|
-
// cleanup in a new transaction
|
|
387
|
-
transact(doc, (t) => {
|
|
388
|
-
iterateStructsByIdSet(transaction, transaction.deleteSet, item => {
|
|
389
|
-
if (item instanceof GC || !(/** @type {YNode} */ (item.parent)._hasFormatting) || needFullCleanup.has(/** @type {YNode} */ (item.parent))) {
|
|
390
|
-
return
|
|
391
|
-
}
|
|
392
|
-
const parent = /** @type {YNode} */ (item.parent)
|
|
393
|
-
if (item.content.constructor === ContentFormat) {
|
|
394
|
-
needFullCleanup.add(parent)
|
|
395
|
-
} else {
|
|
396
|
-
// If no format was inserted or deleted, we can make due with contextless
|
|
397
|
-
// formatting cleanups.
|
|
398
|
-
// Contextless: it is not necessary to compute currentFormats for the affected position.
|
|
399
|
-
cleanupContextlessFormattingGap(t, item)
|
|
400
|
-
}
|
|
401
|
-
})
|
|
402
|
-
// If a formatting item was inserted, we simply clean the whole type.
|
|
403
|
-
// We need to compute currentFormats for the current position anyway.
|
|
404
|
-
for (const yText of needFullCleanup) {
|
|
405
|
-
cleanupYTextFormatting(yText)
|
|
406
|
-
}
|
|
407
|
-
}, formattingCleanupOrigin) // YP10
|
|
408
|
-
}
|
|
409
|
-
|
|
410
145
|
/**
|
|
411
146
|
* Implements the functionality of `y.transact(()=>{..})`
|
|
412
147
|
*
|
|
@@ -1,131 +1,8 @@
|
|
|
1
|
-
import * as buffer from 'lib0-v14/buffer'
|
|
2
1
|
import * as decoding from 'lib0-v14/decoding'
|
|
3
2
|
|
|
4
|
-
import { ID
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* @typedef {IdSetDecoderV1 | IdSetDecoderV2} IdSetDecoder
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export class IdSetDecoderV1 {
|
|
11
|
-
/**
|
|
12
|
-
* @param {decoding.Decoder} decoder
|
|
13
|
-
*/
|
|
14
|
-
constructor (decoder) {
|
|
15
|
-
this.restDecoder = decoder
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
resetDsCurVal () {
|
|
19
|
-
// nop
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @return {number}
|
|
24
|
-
*/
|
|
25
|
-
readDsClock () {
|
|
26
|
-
return decoding.readVarUint(this.restDecoder)
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @return {number}
|
|
31
|
-
*/
|
|
32
|
-
readDsLen () {
|
|
33
|
-
return decoding.readVarUint(this.restDecoder)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export class UpdateDecoderV1 extends IdSetDecoderV1 {
|
|
38
|
-
/**
|
|
39
|
-
* @return {ID}
|
|
40
|
-
*/
|
|
41
|
-
readLeftID () {
|
|
42
|
-
return createID(decoding.readVarUint(this.restDecoder), decoding.readVarUint(this.restDecoder))
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @return {ID}
|
|
47
|
-
*/
|
|
48
|
-
readRightID () {
|
|
49
|
-
return createID(decoding.readVarUint(this.restDecoder), decoding.readVarUint(this.restDecoder))
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Read the next client id.
|
|
54
|
-
* Use this in favor of readID whenever possible to reduce the number of objects created.
|
|
55
|
-
*/
|
|
56
|
-
readClient () {
|
|
57
|
-
return decoding.readVarUint(this.restDecoder)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* @return {number} info An unsigned 8-bit integer
|
|
62
|
-
*/
|
|
63
|
-
readInfo () {
|
|
64
|
-
return decoding.readUint8(this.restDecoder)
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* @return {string}
|
|
69
|
-
*/
|
|
70
|
-
readString () {
|
|
71
|
-
return decoding.readVarString(this.restDecoder)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* @return {boolean} isKey
|
|
76
|
-
*/
|
|
77
|
-
readParentInfo () {
|
|
78
|
-
return decoding.readVarUint(this.restDecoder) === 1
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* @return {number} info An unsigned 8-bit integer
|
|
83
|
-
*/
|
|
84
|
-
readTypeRef () {
|
|
85
|
-
return decoding.readVarUint(this.restDecoder)
|
|
86
|
-
}
|
|
3
|
+
import { ID } from './ID.js'
|
|
87
4
|
|
|
88
|
-
|
|
89
|
-
* Write len of a struct - well suited for Opt RLE encoder.
|
|
90
|
-
*
|
|
91
|
-
* @return {number} len
|
|
92
|
-
*/
|
|
93
|
-
readLen () {
|
|
94
|
-
return decoding.readVarUint(this.restDecoder)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* @return {any}
|
|
99
|
-
*/
|
|
100
|
-
readAny () {
|
|
101
|
-
return decoding.readAny(this.restDecoder)
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
/**
|
|
105
|
-
* @return {Uint8Array}
|
|
106
|
-
*/
|
|
107
|
-
readBuf () {
|
|
108
|
-
return buffer.copyUint8Array(decoding.readVarUint8Array(this.restDecoder))
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Legacy implementation uses JSON parse. We use any-decoding in v2.
|
|
113
|
-
*
|
|
114
|
-
* @return {any}
|
|
115
|
-
*/
|
|
116
|
-
readJSON () {
|
|
117
|
-
return JSON.parse(decoding.readVarString(this.restDecoder))
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* @return {string}
|
|
122
|
-
*/
|
|
123
|
-
readKey () {
|
|
124
|
-
return decoding.readVarString(this.restDecoder)
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
export class IdSetDecoderV2 {
|
|
5
|
+
export class IdSetDecoder {
|
|
129
6
|
/**
|
|
130
7
|
* @param {decoding.Decoder} decoder
|
|
131
8
|
*/
|
|
@@ -159,7 +36,7 @@ export class IdSetDecoderV2 {
|
|
|
159
36
|
}
|
|
160
37
|
}
|
|
161
38
|
|
|
162
|
-
export class
|
|
39
|
+
export class UpdateDecoder extends IdSetDecoder {
|
|
163
40
|
/**
|
|
164
41
|
* @param {decoding.Decoder} decoder
|
|
165
42
|
*/
|
|
@@ -258,10 +135,6 @@ export class UpdateDecoderV2 extends IdSetDecoderV2 {
|
|
|
258
135
|
}
|
|
259
136
|
|
|
260
137
|
/**
|
|
261
|
-
* This is mainly here for legacy purposes.
|
|
262
|
-
*
|
|
263
|
-
* Initial we incoded objects using JSON. Now we use the much faster lib0-v14/any-encoder. This method mainly exists for legacy purposes for the v1 encoder.
|
|
264
|
-
*
|
|
265
138
|
* @return {any}
|
|
266
139
|
*/
|
|
267
140
|
readJSON () {
|
|
@@ -1,126 +1,7 @@
|
|
|
1
1
|
import * as error from 'lib0-v14/error'
|
|
2
2
|
import * as encoding from 'lib0-v14/encoding'
|
|
3
3
|
|
|
4
|
-
export class
|
|
5
|
-
constructor () {
|
|
6
|
-
this.restEncoder = encoding.createEncoder()
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
toUint8Array () {
|
|
10
|
-
return encoding.toUint8Array(this.restEncoder)
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
resetIdSetCurVal () {
|
|
14
|
-
// nop
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* @param {number} clock
|
|
19
|
-
*/
|
|
20
|
-
writeIdSetClock (clock) {
|
|
21
|
-
encoding.writeVarUint(this.restEncoder, clock)
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* @param {number} len
|
|
26
|
-
*/
|
|
27
|
-
writeIdSetLen (len) {
|
|
28
|
-
encoding.writeVarUint(this.restEncoder, len)
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export class UpdateEncoderV1 extends IdSetEncoderV1 {
|
|
33
|
-
/**
|
|
34
|
-
* @param {ID} id
|
|
35
|
-
*/
|
|
36
|
-
writeLeftID (id) {
|
|
37
|
-
encoding.writeVarUint(this.restEncoder, id.client)
|
|
38
|
-
encoding.writeVarUint(this.restEncoder, id.clock)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* @param {ID} id
|
|
43
|
-
*/
|
|
44
|
-
writeRightID (id) {
|
|
45
|
-
encoding.writeVarUint(this.restEncoder, id.client)
|
|
46
|
-
encoding.writeVarUint(this.restEncoder, id.clock)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Use writeClient and writeClock instead of writeID if possible.
|
|
51
|
-
* @param {number} client
|
|
52
|
-
*/
|
|
53
|
-
writeClient (client) {
|
|
54
|
-
encoding.writeVarUint(this.restEncoder, client)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* @param {number} info An unsigned 8-bit integer
|
|
59
|
-
*/
|
|
60
|
-
writeInfo (info) {
|
|
61
|
-
encoding.writeUint8(this.restEncoder, info)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* @param {string} s
|
|
66
|
-
*/
|
|
67
|
-
writeString (s) {
|
|
68
|
-
encoding.writeVarString(this.restEncoder, s)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* @param {boolean} isYKey
|
|
73
|
-
*/
|
|
74
|
-
writeParentInfo (isYKey) {
|
|
75
|
-
encoding.writeVarUint(this.restEncoder, isYKey ? 1 : 0)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* @param {number} info An unsigned 8-bit integer
|
|
80
|
-
*/
|
|
81
|
-
writeTypeRef (info) {
|
|
82
|
-
encoding.writeVarUint(this.restEncoder, info)
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Write len of a struct - well suited for Opt RLE encoder.
|
|
87
|
-
*
|
|
88
|
-
* @param {number} len
|
|
89
|
-
*/
|
|
90
|
-
writeLen (len) {
|
|
91
|
-
encoding.writeVarUint(this.restEncoder, len)
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* @param {any} any
|
|
96
|
-
*/
|
|
97
|
-
writeAny (any) {
|
|
98
|
-
encoding.writeAny(this.restEncoder, any)
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* @param {Uint8Array} buf
|
|
103
|
-
*/
|
|
104
|
-
writeBuf (buf) {
|
|
105
|
-
encoding.writeVarUint8Array(this.restEncoder, buf)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* @param {any} embed
|
|
110
|
-
*/
|
|
111
|
-
writeJSON (embed) {
|
|
112
|
-
encoding.writeVarString(this.restEncoder, JSON.stringify(embed))
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* @param {string} key
|
|
117
|
-
*/
|
|
118
|
-
writeKey (key) {
|
|
119
|
-
encoding.writeVarString(this.restEncoder, key)
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export class IdSetEncoderV2 {
|
|
4
|
+
export class IdSetEncoder {
|
|
124
5
|
constructor () {
|
|
125
6
|
this.restEncoder = encoding.createEncoder() // encodes all the rest / non-optimized
|
|
126
7
|
this.dsCurrVal = 0
|
|
@@ -155,7 +36,7 @@ export class IdSetEncoderV2 {
|
|
|
155
36
|
}
|
|
156
37
|
}
|
|
157
38
|
|
|
158
|
-
export class
|
|
39
|
+
export class UpdateEncoder extends IdSetEncoder {
|
|
159
40
|
constructor () {
|
|
160
41
|
super()
|
|
161
42
|
/**
|
|
@@ -272,10 +153,6 @@ export class UpdateEncoderV2 extends IdSetEncoderV2 {
|
|
|
272
153
|
}
|
|
273
154
|
|
|
274
155
|
/**
|
|
275
|
-
* This is mainly here for legacy purposes.
|
|
276
|
-
*
|
|
277
|
-
* Initial we incoded objects using JSON. Now we use the much faster lib0-v14/any-encoder. This method mainly exists for legacy purposes for the v1 encoder.
|
|
278
|
-
*
|
|
279
156
|
* @param {any} embed
|
|
280
157
|
*/
|
|
281
158
|
writeJSON (embed) {
|
|
@@ -314,10 +191,3 @@ export class UpdateEncoderV2 extends IdSetEncoderV2 {
|
|
|
314
191
|
}
|
|
315
192
|
}
|
|
316
193
|
}
|
|
317
|
-
|
|
318
|
-
/**
|
|
319
|
-
* @typedef {IdSetEncoderV1 | IdSetEncoderV2} IdSetEncoder
|
|
320
|
-
*/
|
|
321
|
-
/**
|
|
322
|
-
* @typedef {UpdateEncoderV1 | UpdateEncoderV2} UpdateEncoder
|
|
323
|
-
*/
|