@opentiny/fluent-editor 4.0.0-alpha.6 → 4.0.0-alpha.7
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 +1 -1
- package/es/_virtual/_commonjs-dynamic-modules.es.js +7 -0
- package/es/_virtual/_commonjs-dynamic-modules.es.js.map +1 -0
- package/es/_virtual/_commonjsHelpers.es.js +42 -0
- package/es/_virtual/_commonjsHelpers.es.js.map +1 -0
- package/es/_virtual/quill-cursors.es.js +5 -0
- package/es/_virtual/quill-cursors.es.js.map +1 -0
- package/es/_virtual/simplepeer.min.es.js +5 -0
- package/es/_virtual/simplepeer.min.es.js.map +1 -0
- package/es/index.es.js +2 -0
- package/es/index.es.js.map +1 -1
- package/es/modules/collaborative-editing/awareness/awareness.es.js +93 -0
- package/es/modules/collaborative-editing/awareness/awareness.es.js.map +1 -0
- package/es/modules/collaborative-editing/awareness/index.es.js +8 -0
- package/es/modules/collaborative-editing/awareness/index.es.js.map +1 -0
- package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js +12 -0
- package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js.map +1 -0
- package/es/modules/collaborative-editing/collaborative-editing.es.js +105 -0
- package/es/modules/collaborative-editing/collaborative-editing.es.js.map +1 -0
- package/es/modules/collaborative-editing/index.es.js +6 -0
- package/es/modules/collaborative-editing/index.es.js.map +1 -0
- package/es/modules/collaborative-editing/module.es.js +35 -0
- package/es/modules/collaborative-editing/module.es.js.map +1 -0
- package/es/modules/collaborative-editing/provider/providerRegistry.es.js +28 -0
- package/es/modules/collaborative-editing/provider/providerRegistry.es.js.map +1 -0
- package/es/modules/collaborative-editing/provider/webrtc.es.js +99 -0
- package/es/modules/collaborative-editing/provider/webrtc.es.js.map +1 -0
- package/es/modules/collaborative-editing/provider/websocket.es.js +111 -0
- package/es/modules/collaborative-editing/provider/websocket.es.js.map +1 -0
- package/es/modules/collaborative-editing/types.es.js +2 -0
- package/es/modules/collaborative-editing/types.es.js.map +1 -0
- package/es/modules/custom-image/options.es.js +1 -1
- package/es/modules/custom-image/options.es.js.map +1 -1
- package/es/modules/index.es.js +1 -0
- package/es/modules/index.es.js.map +1 -1
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.es.js +112 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.es.js +133 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.es.js +59 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.es.js +75 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.es.js +5 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.es.js +422 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.es.js +142 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.es.js +484 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.es.js +79 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.es.js +13 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.es.js +69 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.es.js +124 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.es.js +92 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.es.js +38 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.es.js +7 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.es.js +99 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.es.js +288 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.es.js +47 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.es.js +37 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.es.js +64 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.es.js +19 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.es.js +31 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.es.js +72 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.es.js +128 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.es.js +22 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.es.js +50 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.es.js +24 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.es.js +11 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.es.js +44 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.es.js +95 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.es.js +7 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.es.js +28 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.es.js +5 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.es.js +20 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.es.js +7 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.es.js.map +1 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.es.js +113 -0
- package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.es.js.map +1 -0
- package/es/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.es.js +1796 -0
- package/es/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.es.js.map +1 -0
- package/es/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.es.js +2620 -0
- package/es/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.es.js.map +1 -0
- package/es/node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.27/node_modules/y-indexeddb/src/y-indexeddb.es.js +155 -0
- package/es/node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.27/node_modules/y-indexeddb/src/y-indexeddb.es.js.map +1 -0
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.es.js +20 -0
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.es.js.map +1 -0
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.es.js +232 -0
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.es.js.map +1 -0
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.es.js +58 -0
- package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.es.js.map +1 -0
- package/es/node_modules/.pnpm/y-quill@1.0.0_quill-cursors@4.0.4_quill@2.0.3_patch_hash_dnirvjhpzdmsvdidsclwslxxji__yjs@13.6.27/node_modules/y-quill/src/y-quill.es.js +157 -0
- package/es/node_modules/.pnpm/y-quill@1.0.0_quill-cursors@4.0.4_quill@2.0.3_patch_hash_dnirvjhpzdmsvdidsclwslxxji__yjs@13.6.27/node_modules/y-quill/src/y-quill.es.js.map +1 -0
- package/es/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/crypto.es.js +94 -0
- package/es/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/crypto.es.js.map +1 -0
- package/es/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/y-webrtc.es.js +537 -0
- package/es/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/y-webrtc.es.js.map +1 -0
- package/es/node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.27/node_modules/y-websocket/src/y-websocket.es.js +380 -0
- package/es/node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.27/node_modules/y-websocket/src/y-websocket.es.js.map +1 -0
- package/es/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.es.js +7653 -0
- package/es/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.es.js.map +1 -0
- package/lib/_virtual/_commonjs-dynamic-modules.cjs.js +7 -0
- package/lib/_virtual/_commonjs-dynamic-modules.cjs.js.map +1 -0
- package/lib/_virtual/_commonjsHelpers.cjs.js +42 -0
- package/lib/_virtual/_commonjsHelpers.cjs.js.map +1 -0
- package/lib/_virtual/quill-cursors.cjs.js +5 -0
- package/lib/_virtual/quill-cursors.cjs.js.map +1 -0
- package/lib/_virtual/simplepeer.min.cjs.js +5 -0
- package/lib/_virtual/simplepeer.min.cjs.js.map +1 -0
- package/lib/index.cjs.js +4 -2
- package/lib/index.cjs.js.map +1 -1
- package/lib/modules/collaborative-editing/awareness/awareness.cjs.js +93 -0
- package/lib/modules/collaborative-editing/awareness/awareness.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/awareness/index.cjs.js +8 -0
- package/lib/modules/collaborative-editing/awareness/index.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js +12 -0
- package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/collaborative-editing.cjs.js +105 -0
- package/lib/modules/collaborative-editing/collaborative-editing.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/index.cjs.js +6 -0
- package/lib/modules/collaborative-editing/index.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/module.cjs.js +35 -0
- package/lib/modules/collaborative-editing/module.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js +28 -0
- package/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/provider/webrtc.cjs.js +99 -0
- package/lib/modules/collaborative-editing/provider/webrtc.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/provider/websocket.cjs.js +111 -0
- package/lib/modules/collaborative-editing/provider/websocket.cjs.js.map +1 -0
- package/lib/modules/collaborative-editing/types.cjs.js +2 -0
- package/lib/modules/collaborative-editing/types.cjs.js.map +1 -0
- package/lib/modules/custom-image/options.cjs.js +1 -1
- package/lib/modules/custom-image/options.cjs.js.map +1 -1
- package/lib/modules/index.cjs.js +1 -0
- package/lib/modules/index.cjs.js.map +1 -1
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.cjs.js +112 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.cjs.js +133 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.cjs.js +59 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.cjs.js +75 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.cjs.js +5 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.cjs.js +422 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.cjs.js +142 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.cjs.js +484 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.cjs.js +79 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.cjs.js +13 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.cjs.js +69 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.cjs.js +124 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.cjs.js +92 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.cjs.js +38 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.cjs.js +7 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.cjs.js +288 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.cjs.js +99 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.cjs.js +47 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.cjs.js +37 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.cjs.js +64 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.cjs.js +19 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.cjs.js +31 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.cjs.js +72 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.cjs.js +128 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.cjs.js +22 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.cjs.js +50 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.cjs.js +24 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.cjs.js +11 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.cjs.js +44 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.cjs.js +94 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.cjs.js +7 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.cjs.js +28 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.cjs.js +5 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.cjs.js +20 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.cjs.js +7 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.cjs.js +113 -0
- package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.cjs.js +1796 -0
- package/lib/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.cjs.js +2620 -0
- package/lib/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.27/node_modules/y-indexeddb/src/y-indexeddb.cjs.js +155 -0
- package/lib/node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.27/node_modules/y-indexeddb/src/y-indexeddb.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.cjs.js +20 -0
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.cjs.js +232 -0
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.cjs.js +58 -0
- package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/y-quill@1.0.0_quill-cursors@4.0.4_quill@2.0.3_patch_hash_dnirvjhpzdmsvdidsclwslxxji__yjs@13.6.27/node_modules/y-quill/src/y-quill.cjs.js +157 -0
- package/lib/node_modules/.pnpm/y-quill@1.0.0_quill-cursors@4.0.4_quill@2.0.3_patch_hash_dnirvjhpzdmsvdidsclwslxxji__yjs@13.6.27/node_modules/y-quill/src/y-quill.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/crypto.cjs.js +94 -0
- package/lib/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/crypto.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/y-webrtc.cjs.js +537 -0
- package/lib/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/y-webrtc.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.27/node_modules/y-websocket/src/y-websocket.cjs.js +380 -0
- package/lib/node_modules/.pnpm/y-websocket@3.0.0_yjs@13.6.27/node_modules/y-websocket/src/y-websocket.cjs.js.map +1 -0
- package/lib/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.cjs.js +7653 -0
- package/lib/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.cjs.js.map +1 -0
- package/package.json +9 -2
- package/types/modules/collaborative-editing/awareness/awareness.d.ts +29 -0
- package/types/modules/collaborative-editing/awareness/index.d.ts +2 -0
- package/types/modules/collaborative-editing/awareness/y-indexeddb.d.ts +3 -0
- package/types/modules/collaborative-editing/collaborative-editing.d.ts +25 -0
- package/types/modules/collaborative-editing/index.d.ts +2 -0
- package/types/modules/collaborative-editing/module.d.ts +12 -0
- package/types/modules/collaborative-editing/provider/index.d.ts +3 -0
- package/types/modules/collaborative-editing/provider/providerRegistry.d.ts +26 -0
- package/types/modules/collaborative-editing/provider/webrtc.d.ts +37 -0
- package/types/modules/collaborative-editing/provider/websocket.d.ts +41 -0
- package/types/modules/collaborative-editing/types.d.ts +37 -0
- package/types/modules/index.d.ts +1 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const yjs = require("../../../../yjs@13.6.27/node_modules/yjs/dist/yjs.cjs.js");
|
|
4
|
+
const indexeddb = require("../../../../lib0@0.2.114/node_modules/lib0/indexeddb.cjs.js");
|
|
5
|
+
const promise = require("../../../../lib0@0.2.114/node_modules/lib0/promise.cjs.js");
|
|
6
|
+
const observable = require("../../../../lib0@0.2.114/node_modules/lib0/observable.cjs.js");
|
|
7
|
+
const customStoreName = "custom";
|
|
8
|
+
const updatesStoreName = "updates";
|
|
9
|
+
const PREFERRED_TRIM_SIZE = 500;
|
|
10
|
+
const fetchUpdates = (idbPersistence, beforeApplyUpdatesCallback = () => {
|
|
11
|
+
}, afterApplyUpdatesCallback = () => {
|
|
12
|
+
}) => {
|
|
13
|
+
const [updatesStore] = indexeddb.transact(
|
|
14
|
+
/** @type {IDBDatabase} */
|
|
15
|
+
idbPersistence.db,
|
|
16
|
+
[updatesStoreName]
|
|
17
|
+
);
|
|
18
|
+
return indexeddb.getAll(updatesStore, indexeddb.createIDBKeyRangeLowerBound(idbPersistence._dbref, false)).then((updates) => {
|
|
19
|
+
if (!idbPersistence._destroyed) {
|
|
20
|
+
beforeApplyUpdatesCallback(updatesStore);
|
|
21
|
+
yjs.transact(idbPersistence.doc, () => {
|
|
22
|
+
updates.forEach((val) => yjs.applyUpdate(idbPersistence.doc, val));
|
|
23
|
+
}, idbPersistence, false);
|
|
24
|
+
afterApplyUpdatesCallback(updatesStore);
|
|
25
|
+
}
|
|
26
|
+
}).then(() => indexeddb.getLastKey(updatesStore).then((lastKey) => {
|
|
27
|
+
idbPersistence._dbref = lastKey + 1;
|
|
28
|
+
})).then(() => indexeddb.count(updatesStore).then((cnt) => {
|
|
29
|
+
idbPersistence._dbsize = cnt;
|
|
30
|
+
})).then(() => updatesStore);
|
|
31
|
+
};
|
|
32
|
+
const storeState = (idbPersistence, forceStore = true) => fetchUpdates(idbPersistence).then((updatesStore) => {
|
|
33
|
+
if (forceStore || idbPersistence._dbsize >= PREFERRED_TRIM_SIZE) {
|
|
34
|
+
indexeddb.addAutoKey(updatesStore, yjs.encodeStateAsUpdate(idbPersistence.doc)).then(() => indexeddb.del(updatesStore, indexeddb.createIDBKeyRangeUpperBound(idbPersistence._dbref, true))).then(() => indexeddb.count(updatesStore).then((cnt) => {
|
|
35
|
+
idbPersistence._dbsize = cnt;
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
const clearDocument = (name) => indexeddb.deleteDB(name);
|
|
40
|
+
class IndexeddbPersistence extends observable.Observable {
|
|
41
|
+
/**
|
|
42
|
+
* @param {string} name
|
|
43
|
+
* @param {Y.Doc} doc
|
|
44
|
+
*/
|
|
45
|
+
constructor(name, doc) {
|
|
46
|
+
super();
|
|
47
|
+
this.doc = doc;
|
|
48
|
+
this.name = name;
|
|
49
|
+
this._dbref = 0;
|
|
50
|
+
this._dbsize = 0;
|
|
51
|
+
this._destroyed = false;
|
|
52
|
+
this.db = null;
|
|
53
|
+
this.synced = false;
|
|
54
|
+
this._db = indexeddb.openDB(
|
|
55
|
+
name,
|
|
56
|
+
(db) => indexeddb.createStores(db, [
|
|
57
|
+
["updates", { autoIncrement: true }],
|
|
58
|
+
["custom"]
|
|
59
|
+
])
|
|
60
|
+
);
|
|
61
|
+
this.whenSynced = promise.create((resolve) => this.on("synced", () => resolve(this)));
|
|
62
|
+
this._db.then((db) => {
|
|
63
|
+
this.db = db;
|
|
64
|
+
const beforeApplyUpdatesCallback = (updatesStore) => indexeddb.addAutoKey(updatesStore, yjs.encodeStateAsUpdate(doc));
|
|
65
|
+
const afterApplyUpdatesCallback = () => {
|
|
66
|
+
if (this._destroyed) return this;
|
|
67
|
+
this.synced = true;
|
|
68
|
+
this.emit("synced", [this]);
|
|
69
|
+
};
|
|
70
|
+
fetchUpdates(this, beforeApplyUpdatesCallback, afterApplyUpdatesCallback);
|
|
71
|
+
});
|
|
72
|
+
this._storeTimeout = 1e3;
|
|
73
|
+
this._storeTimeoutId = null;
|
|
74
|
+
this._storeUpdate = (update, origin) => {
|
|
75
|
+
if (this.db && origin !== this) {
|
|
76
|
+
const [updatesStore] = indexeddb.transact(
|
|
77
|
+
/** @type {IDBDatabase} */
|
|
78
|
+
this.db,
|
|
79
|
+
[updatesStoreName]
|
|
80
|
+
);
|
|
81
|
+
indexeddb.addAutoKey(updatesStore, update);
|
|
82
|
+
if (++this._dbsize >= PREFERRED_TRIM_SIZE) {
|
|
83
|
+
if (this._storeTimeoutId !== null) {
|
|
84
|
+
clearTimeout(this._storeTimeoutId);
|
|
85
|
+
}
|
|
86
|
+
this._storeTimeoutId = setTimeout(() => {
|
|
87
|
+
storeState(this, false);
|
|
88
|
+
this._storeTimeoutId = null;
|
|
89
|
+
}, this._storeTimeout);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
doc.on("update", this._storeUpdate);
|
|
94
|
+
this.destroy = this.destroy.bind(this);
|
|
95
|
+
doc.on("destroy", this.destroy);
|
|
96
|
+
}
|
|
97
|
+
destroy() {
|
|
98
|
+
if (this._storeTimeoutId) {
|
|
99
|
+
clearTimeout(this._storeTimeoutId);
|
|
100
|
+
}
|
|
101
|
+
this.doc.off("update", this._storeUpdate);
|
|
102
|
+
this.doc.off("destroy", this.destroy);
|
|
103
|
+
this._destroyed = true;
|
|
104
|
+
return this._db.then((db) => {
|
|
105
|
+
db.close();
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Destroys this instance and removes all data from indexeddb.
|
|
110
|
+
*
|
|
111
|
+
* @return {Promise<void>}
|
|
112
|
+
*/
|
|
113
|
+
clearData() {
|
|
114
|
+
return this.destroy().then(() => {
|
|
115
|
+
indexeddb.deleteDB(this.name);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* @param {String | number | ArrayBuffer | Date} key
|
|
120
|
+
* @return {Promise<String | number | ArrayBuffer | Date | any>}
|
|
121
|
+
*/
|
|
122
|
+
get(key) {
|
|
123
|
+
return this._db.then((db) => {
|
|
124
|
+
const [custom] = indexeddb.transact(db, [customStoreName], "readonly");
|
|
125
|
+
return indexeddb.get(custom, key);
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* @param {String | number | ArrayBuffer | Date} key
|
|
130
|
+
* @param {String | number | ArrayBuffer | Date} value
|
|
131
|
+
* @return {Promise<String | number | ArrayBuffer | Date>}
|
|
132
|
+
*/
|
|
133
|
+
set(key, value) {
|
|
134
|
+
return this._db.then((db) => {
|
|
135
|
+
const [custom] = indexeddb.transact(db, [customStoreName]);
|
|
136
|
+
return indexeddb.put(custom, value, key);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @param {String | number | ArrayBuffer | Date} key
|
|
141
|
+
* @return {Promise<undefined>}
|
|
142
|
+
*/
|
|
143
|
+
del(key) {
|
|
144
|
+
return this._db.then((db) => {
|
|
145
|
+
const [custom] = indexeddb.transact(db, [customStoreName]);
|
|
146
|
+
return indexeddb.del(custom, key);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.IndexeddbPersistence = IndexeddbPersistence;
|
|
151
|
+
exports.PREFERRED_TRIM_SIZE = PREFERRED_TRIM_SIZE;
|
|
152
|
+
exports.clearDocument = clearDocument;
|
|
153
|
+
exports.fetchUpdates = fetchUpdates;
|
|
154
|
+
exports.storeState = storeState;
|
|
155
|
+
//# sourceMappingURL=y-indexeddb.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"y-indexeddb.cjs.js","sources":["../../../../../../../../../../node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.27/node_modules/y-indexeddb/src/y-indexeddb.js"],"sourcesContent":["import * as Y from 'yjs'\nimport * as idb from 'lib0/indexeddb'\nimport * as promise from 'lib0/promise'\nimport { Observable } from 'lib0/observable'\n\nconst customStoreName = 'custom'\nconst updatesStoreName = 'updates'\n\nexport const PREFERRED_TRIM_SIZE = 500\n\n/**\n * @param {IndexeddbPersistence} idbPersistence\n * @param {function(IDBObjectStore):void} [beforeApplyUpdatesCallback]\n * @param {function(IDBObjectStore):void} [afterApplyUpdatesCallback]\n */\nexport const fetchUpdates = (idbPersistence, beforeApplyUpdatesCallback = () => {}, afterApplyUpdatesCallback = () => {}) => {\n const [updatesStore] = idb.transact(/** @type {IDBDatabase} */ (idbPersistence.db), [updatesStoreName]) // , 'readonly')\n return idb.getAll(updatesStore, idb.createIDBKeyRangeLowerBound(idbPersistence._dbref, false)).then(updates => {\n if (!idbPersistence._destroyed) {\n beforeApplyUpdatesCallback(updatesStore)\n Y.transact(idbPersistence.doc, () => {\n updates.forEach(val => Y.applyUpdate(idbPersistence.doc, val))\n }, idbPersistence, false)\n afterApplyUpdatesCallback(updatesStore)\n }\n })\n .then(() => idb.getLastKey(updatesStore).then(lastKey => { idbPersistence._dbref = lastKey + 1 }))\n .then(() => idb.count(updatesStore).then(cnt => { idbPersistence._dbsize = cnt }))\n .then(() => updatesStore)\n}\n\n/**\n * @param {IndexeddbPersistence} idbPersistence\n * @param {boolean} forceStore\n */\nexport const storeState = (idbPersistence, forceStore = true) =>\n fetchUpdates(idbPersistence)\n .then(updatesStore => {\n if (forceStore || idbPersistence._dbsize >= PREFERRED_TRIM_SIZE) {\n idb.addAutoKey(updatesStore, Y.encodeStateAsUpdate(idbPersistence.doc))\n .then(() => idb.del(updatesStore, idb.createIDBKeyRangeUpperBound(idbPersistence._dbref, true)))\n .then(() => idb.count(updatesStore).then(cnt => { idbPersistence._dbsize = cnt }))\n }\n })\n\n/**\n * @param {string} name\n */\nexport const clearDocument = name => idb.deleteDB(name)\n\n/**\n * @extends Observable<string>\n */\nexport class IndexeddbPersistence extends Observable {\n /**\n * @param {string} name\n * @param {Y.Doc} doc\n */\n constructor (name, doc) {\n super()\n this.doc = doc\n this.name = name\n this._dbref = 0\n this._dbsize = 0\n this._destroyed = false\n /**\n * @type {IDBDatabase|null}\n */\n this.db = null\n this.synced = false\n this._db = idb.openDB(name, db =>\n idb.createStores(db, [\n ['updates', { autoIncrement: true }],\n ['custom']\n ])\n )\n /**\n * @type {Promise<IndexeddbPersistence>}\n */\n this.whenSynced = promise.create(resolve => this.on('synced', () => resolve(this)))\n\n this._db.then(db => {\n this.db = db\n /**\n * @param {IDBObjectStore} updatesStore\n */\n const beforeApplyUpdatesCallback = (updatesStore) => idb.addAutoKey(updatesStore, Y.encodeStateAsUpdate(doc))\n const afterApplyUpdatesCallback = () => {\n if (this._destroyed) return this\n this.synced = true\n this.emit('synced', [this])\n }\n fetchUpdates(this, beforeApplyUpdatesCallback, afterApplyUpdatesCallback)\n })\n /**\n * Timeout in ms untill data is merged and persisted in idb.\n */\n this._storeTimeout = 1000\n /**\n * @type {any}\n */\n this._storeTimeoutId = null\n /**\n * @param {Uint8Array} update\n * @param {any} origin\n */\n this._storeUpdate = (update, origin) => {\n if (this.db && origin !== this) {\n const [updatesStore] = idb.transact(/** @type {IDBDatabase} */ (this.db), [updatesStoreName])\n idb.addAutoKey(updatesStore, update)\n if (++this._dbsize >= PREFERRED_TRIM_SIZE) {\n // debounce store call\n if (this._storeTimeoutId !== null) {\n clearTimeout(this._storeTimeoutId)\n }\n this._storeTimeoutId = setTimeout(() => {\n storeState(this, false)\n this._storeTimeoutId = null\n }, this._storeTimeout)\n }\n }\n }\n doc.on('update', this._storeUpdate)\n this.destroy = this.destroy.bind(this)\n doc.on('destroy', this.destroy)\n }\n\n destroy () {\n if (this._storeTimeoutId) {\n clearTimeout(this._storeTimeoutId)\n }\n this.doc.off('update', this._storeUpdate)\n this.doc.off('destroy', this.destroy)\n this._destroyed = true\n return this._db.then(db => {\n db.close()\n })\n }\n\n /**\n * Destroys this instance and removes all data from indexeddb.\n *\n * @return {Promise<void>}\n */\n clearData () {\n return this.destroy().then(() => {\n idb.deleteDB(this.name)\n })\n }\n\n /**\n * @param {String | number | ArrayBuffer | Date} key\n * @return {Promise<String | number | ArrayBuffer | Date | any>}\n */\n get (key) {\n return this._db.then(db => {\n const [custom] = idb.transact(db, [customStoreName], 'readonly')\n return idb.get(custom, key)\n })\n }\n\n /**\n * @param {String | number | ArrayBuffer | Date} key\n * @param {String | number | ArrayBuffer | Date} value\n * @return {Promise<String | number | ArrayBuffer | Date>}\n */\n set (key, value) {\n return this._db.then(db => {\n const [custom] = idb.transact(db, [customStoreName])\n return idb.put(custom, value, key)\n })\n }\n\n /**\n * @param {String | number | ArrayBuffer | Date} key\n * @return {Promise<undefined>}\n */\n del (key) {\n return this._db.then(db => {\n const [custom] = idb.transact(db, [customStoreName])\n return idb.del(custom, key)\n })\n }\n}\n"],"names":["idb.transact","idb.getAll","idb.createIDBKeyRangeLowerBound","Y.transact","Y.applyUpdate","idb.getLastKey","idb.count","idb.addAutoKey","Y.encodeStateAsUpdate","idb.del","idb.createIDBKeyRangeUpperBound","idb.deleteDB","Observable","idb.openDB","idb.createStores","promise.create","idb.get","idb.put"],"mappings":"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","x_google_ignoreList":[0]}
|
package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.cjs.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
require("../../../yjs@13.6.27/node_modules/yjs/dist/yjs.cjs.js");
|
|
4
|
+
const encoding = require("../../../lib0@0.2.114/node_modules/lib0/encoding.cjs.js");
|
|
5
|
+
const decoding = require("../../../lib0@0.2.114/node_modules/lib0/decoding.cjs.js");
|
|
6
|
+
const messagePermissionDenied = 0;
|
|
7
|
+
const writePermissionDenied = (encoder, reason) => {
|
|
8
|
+
encoding.writeVarUint(encoder, messagePermissionDenied);
|
|
9
|
+
encoding.writeVarString(encoder, reason);
|
|
10
|
+
};
|
|
11
|
+
const readAuthMessage = (decoder, y, permissionDeniedHandler) => {
|
|
12
|
+
switch (decoding.readVarUint(decoder)) {
|
|
13
|
+
case messagePermissionDenied:
|
|
14
|
+
permissionDeniedHandler(y, decoding.readVarString(decoder));
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
exports.messagePermissionDenied = messagePermissionDenied;
|
|
18
|
+
exports.readAuthMessage = readAuthMessage;
|
|
19
|
+
exports.writePermissionDenied = writePermissionDenied;
|
|
20
|
+
//# sourceMappingURL=auth.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.cjs.js","sources":["../../../../../../../../../node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.js"],"sourcesContent":["\nimport * as Y from 'yjs' // eslint-disable-line\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\n\nexport const messagePermissionDenied = 0\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {string} reason\n */\nexport const writePermissionDenied = (encoder, reason) => {\n encoding.writeVarUint(encoder, messagePermissionDenied)\n encoding.writeVarString(encoder, reason)\n}\n\n/**\n * @callback PermissionDeniedHandler\n * @param {any} y\n * @param {string} reason\n */\n\n/**\n *\n * @param {decoding.Decoder} decoder\n * @param {Y.Doc} y\n * @param {PermissionDeniedHandler} permissionDeniedHandler\n */\nexport const readAuthMessage = (decoder, y, permissionDeniedHandler) => {\n switch (decoding.readVarUint(decoder)) {\n case messagePermissionDenied: permissionDeniedHandler(y, decoding.readVarString(decoder))\n }\n}\n"],"names":["encoding.writeVarUint","encoding.writeVarString","decoding.readVarUint","decoding.readVarString"],"mappings":";;;;;AAKY,MAAC,0BAA0B;AAM3B,MAAC,wBAAwB,CAAC,SAAS,WAAW;AACxDA,WAAqB,aAAC,SAAS,uBAAuB;AACtDC,WAAuB,eAAC,SAAS,MAAM;AACzC;AAcY,MAAC,kBAAkB,CAAC,SAAS,GAAG,4BAA4B;AACtE,UAAQC,SAAAA,YAAqB,OAAO,GAAC;AAAA,IACnC,KAAK;AAAyB,8BAAwB,GAAGC,SAAAA,cAAuB,OAAO,CAAC;AAAA,EAC5F;AACA;;;;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const encoding = require("../../../lib0@0.2.114/node_modules/lib0/encoding.cjs.js");
|
|
4
|
+
const decoding = require("../../../lib0@0.2.114/node_modules/lib0/decoding.cjs.js");
|
|
5
|
+
const time = require("../../../lib0@0.2.114/node_modules/lib0/time.cjs.js");
|
|
6
|
+
const math = require("../../../lib0@0.2.114/node_modules/lib0/math.cjs.js");
|
|
7
|
+
const observable = require("../../../lib0@0.2.114/node_modules/lib0/observable.cjs.js");
|
|
8
|
+
const _function = require("../../../lib0@0.2.114/node_modules/lib0/function.cjs.js");
|
|
9
|
+
require("../../../yjs@13.6.27/node_modules/yjs/dist/yjs.cjs.js");
|
|
10
|
+
const outdatedTimeout = 3e4;
|
|
11
|
+
class Awareness extends observable.Observable {
|
|
12
|
+
/**
|
|
13
|
+
* @param {Y.Doc} doc
|
|
14
|
+
*/
|
|
15
|
+
constructor(doc) {
|
|
16
|
+
super();
|
|
17
|
+
this.doc = doc;
|
|
18
|
+
this.clientID = doc.clientID;
|
|
19
|
+
this.states = /* @__PURE__ */ new Map();
|
|
20
|
+
this.meta = /* @__PURE__ */ new Map();
|
|
21
|
+
this._checkInterval = /** @type {any} */
|
|
22
|
+
setInterval(() => {
|
|
23
|
+
const now = time.getUnixTime();
|
|
24
|
+
if (this.getLocalState() !== null && outdatedTimeout / 2 <= now - /** @type {{lastUpdated:number}} */
|
|
25
|
+
this.meta.get(this.clientID).lastUpdated) {
|
|
26
|
+
this.setLocalState(this.getLocalState());
|
|
27
|
+
}
|
|
28
|
+
const remove = [];
|
|
29
|
+
this.meta.forEach((meta, clientid) => {
|
|
30
|
+
if (clientid !== this.clientID && outdatedTimeout <= now - meta.lastUpdated && this.states.has(clientid)) {
|
|
31
|
+
remove.push(clientid);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
if (remove.length > 0) {
|
|
35
|
+
removeAwarenessStates(this, remove, "timeout");
|
|
36
|
+
}
|
|
37
|
+
}, math.floor(outdatedTimeout / 10));
|
|
38
|
+
doc.on("destroy", () => {
|
|
39
|
+
this.destroy();
|
|
40
|
+
});
|
|
41
|
+
this.setLocalState({});
|
|
42
|
+
}
|
|
43
|
+
destroy() {
|
|
44
|
+
this.emit("destroy", [this]);
|
|
45
|
+
this.setLocalState(null);
|
|
46
|
+
super.destroy();
|
|
47
|
+
clearInterval(this._checkInterval);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* @return {Object<string,any>|null}
|
|
51
|
+
*/
|
|
52
|
+
getLocalState() {
|
|
53
|
+
return this.states.get(this.clientID) || null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* @param {Object<string,any>|null} state
|
|
57
|
+
*/
|
|
58
|
+
setLocalState(state) {
|
|
59
|
+
const clientID = this.clientID;
|
|
60
|
+
const currLocalMeta = this.meta.get(clientID);
|
|
61
|
+
const clock = currLocalMeta === void 0 ? 0 : currLocalMeta.clock + 1;
|
|
62
|
+
const prevState = this.states.get(clientID);
|
|
63
|
+
if (state === null) {
|
|
64
|
+
this.states.delete(clientID);
|
|
65
|
+
} else {
|
|
66
|
+
this.states.set(clientID, state);
|
|
67
|
+
}
|
|
68
|
+
this.meta.set(clientID, {
|
|
69
|
+
clock,
|
|
70
|
+
lastUpdated: time.getUnixTime()
|
|
71
|
+
});
|
|
72
|
+
const added = [];
|
|
73
|
+
const updated = [];
|
|
74
|
+
const filteredUpdated = [];
|
|
75
|
+
const removed = [];
|
|
76
|
+
if (state === null) {
|
|
77
|
+
removed.push(clientID);
|
|
78
|
+
} else if (prevState == null) {
|
|
79
|
+
if (state != null) {
|
|
80
|
+
added.push(clientID);
|
|
81
|
+
}
|
|
82
|
+
} else {
|
|
83
|
+
updated.push(clientID);
|
|
84
|
+
if (!_function.equalityDeep(prevState, state)) {
|
|
85
|
+
filteredUpdated.push(clientID);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {
|
|
89
|
+
this.emit("change", [{ added, updated: filteredUpdated, removed }, "local"]);
|
|
90
|
+
}
|
|
91
|
+
this.emit("update", [{ added, updated, removed }, "local"]);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* @param {string} field
|
|
95
|
+
* @param {any} value
|
|
96
|
+
*/
|
|
97
|
+
setLocalStateField(field, value) {
|
|
98
|
+
const state = this.getLocalState();
|
|
99
|
+
if (state !== null) {
|
|
100
|
+
this.setLocalState({
|
|
101
|
+
...state,
|
|
102
|
+
[field]: value
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* @return {Map<number,Object<string,any>>}
|
|
108
|
+
*/
|
|
109
|
+
getStates() {
|
|
110
|
+
return this.states;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const removeAwarenessStates = (awareness, clients, origin) => {
|
|
114
|
+
const removed = [];
|
|
115
|
+
for (let i = 0; i < clients.length; i++) {
|
|
116
|
+
const clientID = clients[i];
|
|
117
|
+
if (awareness.states.has(clientID)) {
|
|
118
|
+
awareness.states.delete(clientID);
|
|
119
|
+
if (clientID === awareness.clientID) {
|
|
120
|
+
const curMeta = (
|
|
121
|
+
/** @type {MetaClientState} */
|
|
122
|
+
awareness.meta.get(clientID)
|
|
123
|
+
);
|
|
124
|
+
awareness.meta.set(clientID, {
|
|
125
|
+
clock: curMeta.clock + 1,
|
|
126
|
+
lastUpdated: time.getUnixTime()
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
removed.push(clientID);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (removed.length > 0) {
|
|
133
|
+
awareness.emit("change", [{ added: [], updated: [], removed }, origin]);
|
|
134
|
+
awareness.emit("update", [{ added: [], updated: [], removed }, origin]);
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
const encodeAwarenessUpdate = (awareness, clients, states = awareness.states) => {
|
|
138
|
+
const len = clients.length;
|
|
139
|
+
const encoder = encoding.createEncoder();
|
|
140
|
+
encoding.writeVarUint(encoder, len);
|
|
141
|
+
for (let i = 0; i < len; i++) {
|
|
142
|
+
const clientID = clients[i];
|
|
143
|
+
const state = states.get(clientID) || null;
|
|
144
|
+
const clock = (
|
|
145
|
+
/** @type {MetaClientState} */
|
|
146
|
+
awareness.meta.get(clientID).clock
|
|
147
|
+
);
|
|
148
|
+
encoding.writeVarUint(encoder, clientID);
|
|
149
|
+
encoding.writeVarUint(encoder, clock);
|
|
150
|
+
encoding.writeVarString(encoder, JSON.stringify(state));
|
|
151
|
+
}
|
|
152
|
+
return encoding.toUint8Array(encoder);
|
|
153
|
+
};
|
|
154
|
+
const modifyAwarenessUpdate = (update, modify) => {
|
|
155
|
+
const decoder = decoding.createDecoder(update);
|
|
156
|
+
const encoder = encoding.createEncoder();
|
|
157
|
+
const len = decoding.readVarUint(decoder);
|
|
158
|
+
encoding.writeVarUint(encoder, len);
|
|
159
|
+
for (let i = 0; i < len; i++) {
|
|
160
|
+
const clientID = decoding.readVarUint(decoder);
|
|
161
|
+
const clock = decoding.readVarUint(decoder);
|
|
162
|
+
const state = JSON.parse(decoding.readVarString(decoder));
|
|
163
|
+
const modifiedState = modify(state);
|
|
164
|
+
encoding.writeVarUint(encoder, clientID);
|
|
165
|
+
encoding.writeVarUint(encoder, clock);
|
|
166
|
+
encoding.writeVarString(encoder, JSON.stringify(modifiedState));
|
|
167
|
+
}
|
|
168
|
+
return encoding.toUint8Array(encoder);
|
|
169
|
+
};
|
|
170
|
+
const applyAwarenessUpdate = (awareness, update, origin) => {
|
|
171
|
+
const decoder = decoding.createDecoder(update);
|
|
172
|
+
const timestamp = time.getUnixTime();
|
|
173
|
+
const added = [];
|
|
174
|
+
const updated = [];
|
|
175
|
+
const filteredUpdated = [];
|
|
176
|
+
const removed = [];
|
|
177
|
+
const len = decoding.readVarUint(decoder);
|
|
178
|
+
for (let i = 0; i < len; i++) {
|
|
179
|
+
const clientID = decoding.readVarUint(decoder);
|
|
180
|
+
let clock = decoding.readVarUint(decoder);
|
|
181
|
+
const state = JSON.parse(decoding.readVarString(decoder));
|
|
182
|
+
const clientMeta = awareness.meta.get(clientID);
|
|
183
|
+
const prevState = awareness.states.get(clientID);
|
|
184
|
+
const currClock = clientMeta === void 0 ? 0 : clientMeta.clock;
|
|
185
|
+
if (currClock < clock || currClock === clock && state === null && awareness.states.has(clientID)) {
|
|
186
|
+
if (state === null) {
|
|
187
|
+
if (clientID === awareness.clientID && awareness.getLocalState() != null) {
|
|
188
|
+
clock++;
|
|
189
|
+
} else {
|
|
190
|
+
awareness.states.delete(clientID);
|
|
191
|
+
}
|
|
192
|
+
} else {
|
|
193
|
+
awareness.states.set(clientID, state);
|
|
194
|
+
}
|
|
195
|
+
awareness.meta.set(clientID, {
|
|
196
|
+
clock,
|
|
197
|
+
lastUpdated: timestamp
|
|
198
|
+
});
|
|
199
|
+
if (clientMeta === void 0 && state !== null) {
|
|
200
|
+
added.push(clientID);
|
|
201
|
+
} else if (clientMeta !== void 0 && state === null) {
|
|
202
|
+
removed.push(clientID);
|
|
203
|
+
} else if (state !== null) {
|
|
204
|
+
if (!_function.equalityDeep(state, prevState)) {
|
|
205
|
+
filteredUpdated.push(clientID);
|
|
206
|
+
}
|
|
207
|
+
updated.push(clientID);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {
|
|
212
|
+
awareness.emit("change", [{
|
|
213
|
+
added,
|
|
214
|
+
updated: filteredUpdated,
|
|
215
|
+
removed
|
|
216
|
+
}, origin]);
|
|
217
|
+
}
|
|
218
|
+
if (added.length > 0 || updated.length > 0 || removed.length > 0) {
|
|
219
|
+
awareness.emit("update", [{
|
|
220
|
+
added,
|
|
221
|
+
updated,
|
|
222
|
+
removed
|
|
223
|
+
}, origin]);
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
exports.Awareness = Awareness;
|
|
227
|
+
exports.applyAwarenessUpdate = applyAwarenessUpdate;
|
|
228
|
+
exports.encodeAwarenessUpdate = encodeAwarenessUpdate;
|
|
229
|
+
exports.modifyAwarenessUpdate = modifyAwarenessUpdate;
|
|
230
|
+
exports.outdatedTimeout = outdatedTimeout;
|
|
231
|
+
exports.removeAwarenessStates = removeAwarenessStates;
|
|
232
|
+
//# sourceMappingURL=awareness.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awareness.cjs.js","sources":["../../../../../../../../../node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.js"],"sourcesContent":["/**\n * @module awareness-protocol\n */\n\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as time from 'lib0/time'\nimport * as math from 'lib0/math'\nimport { Observable } from 'lib0/observable'\nimport * as f from 'lib0/function'\nimport * as Y from 'yjs' // eslint-disable-line\n\nexport const outdatedTimeout = 30000\n\n/**\n * @typedef {Object} MetaClientState\n * @property {number} MetaClientState.clock\n * @property {number} MetaClientState.lastUpdated unix timestamp\n */\n\n/**\n * The Awareness class implements a simple shared state protocol that can be used for non-persistent data like awareness information\n * (cursor, username, status, ..). Each client can update its own local state and listen to state changes of\n * remote clients. Every client may set a state of a remote peer to `null` to mark the client as offline.\n *\n * Each client is identified by a unique client id (something we borrow from `doc.clientID`). A client can override\n * its own state by propagating a message with an increasing timestamp (`clock`). If such a message is received, it is\n * applied if the known state of that client is older than the new state (`clock < newClock`). If a client thinks that\n * a remote client is offline, it may propagate a message with\n * `{ clock: currentClientClock, state: null, client: remoteClient }`. If such a\n * message is received, and the known clock of that client equals the received clock, it will override the state with `null`.\n *\n * Before a client disconnects, it should propagate a `null` state with an updated clock.\n *\n * Awareness states must be updated every 30 seconds. Otherwise the Awareness instance will delete the client state.\n *\n * @extends {Observable<string>}\n */\nexport class Awareness extends Observable {\n /**\n * @param {Y.Doc} doc\n */\n constructor (doc) {\n super()\n this.doc = doc\n /**\n * @type {number}\n */\n this.clientID = doc.clientID\n /**\n * Maps from client id to client state\n * @type {Map<number, Object<string, any>>}\n */\n this.states = new Map()\n /**\n * @type {Map<number, MetaClientState>}\n */\n this.meta = new Map()\n this._checkInterval = /** @type {any} */ (setInterval(() => {\n const now = time.getUnixTime()\n if (this.getLocalState() !== null && (outdatedTimeout / 2 <= now - /** @type {{lastUpdated:number}} */ (this.meta.get(this.clientID)).lastUpdated)) {\n // renew local clock\n this.setLocalState(this.getLocalState())\n }\n /**\n * @type {Array<number>}\n */\n const remove = []\n this.meta.forEach((meta, clientid) => {\n if (clientid !== this.clientID && outdatedTimeout <= now - meta.lastUpdated && this.states.has(clientid)) {\n remove.push(clientid)\n }\n })\n if (remove.length > 0) {\n removeAwarenessStates(this, remove, 'timeout')\n }\n }, math.floor(outdatedTimeout / 10)))\n doc.on('destroy', () => {\n this.destroy()\n })\n this.setLocalState({})\n }\n\n destroy () {\n this.emit('destroy', [this])\n this.setLocalState(null)\n super.destroy()\n clearInterval(this._checkInterval)\n }\n\n /**\n * @return {Object<string,any>|null}\n */\n getLocalState () {\n return this.states.get(this.clientID) || null\n }\n\n /**\n * @param {Object<string,any>|null} state\n */\n setLocalState (state) {\n const clientID = this.clientID\n const currLocalMeta = this.meta.get(clientID)\n const clock = currLocalMeta === undefined ? 0 : currLocalMeta.clock + 1\n const prevState = this.states.get(clientID)\n if (state === null) {\n this.states.delete(clientID)\n } else {\n this.states.set(clientID, state)\n }\n this.meta.set(clientID, {\n clock,\n lastUpdated: time.getUnixTime()\n })\n const added = []\n const updated = []\n const filteredUpdated = []\n const removed = []\n if (state === null) {\n removed.push(clientID)\n } else if (prevState == null) {\n if (state != null) {\n added.push(clientID)\n }\n } else {\n updated.push(clientID)\n if (!f.equalityDeep(prevState, state)) {\n filteredUpdated.push(clientID)\n }\n }\n if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {\n this.emit('change', [{ added, updated: filteredUpdated, removed }, 'local'])\n }\n this.emit('update', [{ added, updated, removed }, 'local'])\n }\n\n /**\n * @param {string} field\n * @param {any} value\n */\n setLocalStateField (field, value) {\n const state = this.getLocalState()\n if (state !== null) {\n this.setLocalState({\n ...state,\n [field]: value\n })\n }\n }\n\n /**\n * @return {Map<number,Object<string,any>>}\n */\n getStates () {\n return this.states\n }\n}\n\n/**\n * Mark (remote) clients as inactive and remove them from the list of active peers.\n * This change will be propagated to remote clients.\n *\n * @param {Awareness} awareness\n * @param {Array<number>} clients\n * @param {any} origin\n */\nexport const removeAwarenessStates = (awareness, clients, origin) => {\n const removed = []\n for (let i = 0; i < clients.length; i++) {\n const clientID = clients[i]\n if (awareness.states.has(clientID)) {\n awareness.states.delete(clientID)\n if (clientID === awareness.clientID) {\n const curMeta = /** @type {MetaClientState} */ (awareness.meta.get(clientID))\n awareness.meta.set(clientID, {\n clock: curMeta.clock + 1,\n lastUpdated: time.getUnixTime()\n })\n }\n removed.push(clientID)\n }\n }\n if (removed.length > 0) {\n awareness.emit('change', [{ added: [], updated: [], removed }, origin])\n awareness.emit('update', [{ added: [], updated: [], removed }, origin])\n }\n}\n\n/**\n * @param {Awareness} awareness\n * @param {Array<number>} clients\n * @return {Uint8Array}\n */\nexport const encodeAwarenessUpdate = (awareness, clients, states = awareness.states) => {\n const len = clients.length\n const encoder = encoding.createEncoder()\n encoding.writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n const clientID = clients[i]\n const state = states.get(clientID) || null\n const clock = /** @type {MetaClientState} */ (awareness.meta.get(clientID)).clock\n encoding.writeVarUint(encoder, clientID)\n encoding.writeVarUint(encoder, clock)\n encoding.writeVarString(encoder, JSON.stringify(state))\n }\n return encoding.toUint8Array(encoder)\n}\n\n/**\n * Modify the content of an awareness update before re-encoding it to an awareness update.\n *\n * This might be useful when you have a central server that wants to ensure that clients\n * cant hijack somebody elses identity.\n *\n * @param {Uint8Array} update\n * @param {function(any):any} modify\n * @return {Uint8Array}\n */\nexport const modifyAwarenessUpdate = (update, modify) => {\n const decoder = decoding.createDecoder(update)\n const encoder = encoding.createEncoder()\n const len = decoding.readVarUint(decoder)\n encoding.writeVarUint(encoder, len)\n for (let i = 0; i < len; i++) {\n const clientID = decoding.readVarUint(decoder)\n const clock = decoding.readVarUint(decoder)\n const state = JSON.parse(decoding.readVarString(decoder))\n const modifiedState = modify(state)\n encoding.writeVarUint(encoder, clientID)\n encoding.writeVarUint(encoder, clock)\n encoding.writeVarString(encoder, JSON.stringify(modifiedState))\n }\n return encoding.toUint8Array(encoder)\n}\n\n/**\n * @param {Awareness} awareness\n * @param {Uint8Array} update\n * @param {any} origin This will be added to the emitted change event\n */\nexport const applyAwarenessUpdate = (awareness, update, origin) => {\n const decoder = decoding.createDecoder(update)\n const timestamp = time.getUnixTime()\n const added = []\n const updated = []\n const filteredUpdated = []\n const removed = []\n const len = decoding.readVarUint(decoder)\n for (let i = 0; i < len; i++) {\n const clientID = decoding.readVarUint(decoder)\n let clock = decoding.readVarUint(decoder)\n const state = JSON.parse(decoding.readVarString(decoder))\n const clientMeta = awareness.meta.get(clientID)\n const prevState = awareness.states.get(clientID)\n const currClock = clientMeta === undefined ? 0 : clientMeta.clock\n if (currClock < clock || (currClock === clock && state === null && awareness.states.has(clientID))) {\n if (state === null) {\n // never let a remote client remove this local state\n if (clientID === awareness.clientID && awareness.getLocalState() != null) {\n // remote client removed the local state. Do not remote state. Broadcast a message indicating\n // that this client still exists by increasing the clock\n clock++\n } else {\n awareness.states.delete(clientID)\n }\n } else {\n awareness.states.set(clientID, state)\n }\n awareness.meta.set(clientID, {\n clock,\n lastUpdated: timestamp\n })\n if (clientMeta === undefined && state !== null) {\n added.push(clientID)\n } else if (clientMeta !== undefined && state === null) {\n removed.push(clientID)\n } else if (state !== null) {\n if (!f.equalityDeep(state, prevState)) {\n filteredUpdated.push(clientID)\n }\n updated.push(clientID)\n }\n }\n }\n if (added.length > 0 || filteredUpdated.length > 0 || removed.length > 0) {\n awareness.emit('change', [{\n added, updated: filteredUpdated, removed\n }, origin])\n }\n if (added.length > 0 || updated.length > 0 || removed.length > 0) {\n awareness.emit('update', [{\n added, updated, removed\n }, origin])\n }\n}\n"],"names":["Observable","time.getUnixTime","math.floor","f.equalityDeep","encoding.createEncoder","encoding.writeVarUint","encoding.writeVarString","encoding.toUint8Array","decoding.createDecoder","decoding.readVarUint","decoding.readVarString"],"mappings":"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","x_google_ignoreList":[0]}
|
package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.cjs.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const encoding = require("../../../lib0@0.2.114/node_modules/lib0/encoding.cjs.js");
|
|
4
|
+
const decoding = require("../../../lib0@0.2.114/node_modules/lib0/decoding.cjs.js");
|
|
5
|
+
const yjs = require("../../../yjs@13.6.27/node_modules/yjs/dist/yjs.cjs.js");
|
|
6
|
+
const messageYjsSyncStep1 = 0;
|
|
7
|
+
const messageYjsSyncStep2 = 1;
|
|
8
|
+
const messageYjsUpdate = 2;
|
|
9
|
+
const writeSyncStep1 = (encoder, doc) => {
|
|
10
|
+
encoding.writeVarUint(encoder, messageYjsSyncStep1);
|
|
11
|
+
const sv = yjs.encodeStateVector(doc);
|
|
12
|
+
encoding.writeVarUint8Array(encoder, sv);
|
|
13
|
+
};
|
|
14
|
+
const writeSyncStep2 = (encoder, doc, encodedStateVector) => {
|
|
15
|
+
encoding.writeVarUint(encoder, messageYjsSyncStep2);
|
|
16
|
+
encoding.writeVarUint8Array(encoder, yjs.encodeStateAsUpdate(doc, encodedStateVector));
|
|
17
|
+
};
|
|
18
|
+
const readSyncStep1 = (decoder, encoder, doc) => writeSyncStep2(encoder, doc, decoding.readVarUint8Array(decoder));
|
|
19
|
+
const readSyncStep2 = (decoder, doc, transactionOrigin) => {
|
|
20
|
+
try {
|
|
21
|
+
yjs.applyUpdate(doc, decoding.readVarUint8Array(decoder), transactionOrigin);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.error("Caught error while handling a Yjs update", error);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
const writeUpdate = (encoder, update) => {
|
|
27
|
+
encoding.writeVarUint(encoder, messageYjsUpdate);
|
|
28
|
+
encoding.writeVarUint8Array(encoder, update);
|
|
29
|
+
};
|
|
30
|
+
const readUpdate = readSyncStep2;
|
|
31
|
+
const readSyncMessage = (decoder, encoder, doc, transactionOrigin) => {
|
|
32
|
+
const messageType = decoding.readVarUint(decoder);
|
|
33
|
+
switch (messageType) {
|
|
34
|
+
case messageYjsSyncStep1:
|
|
35
|
+
readSyncStep1(decoder, encoder, doc);
|
|
36
|
+
break;
|
|
37
|
+
case messageYjsSyncStep2:
|
|
38
|
+
readSyncStep2(decoder, doc, transactionOrigin);
|
|
39
|
+
break;
|
|
40
|
+
case messageYjsUpdate:
|
|
41
|
+
readUpdate(decoder, doc, transactionOrigin);
|
|
42
|
+
break;
|
|
43
|
+
default:
|
|
44
|
+
throw new Error("Unknown message type");
|
|
45
|
+
}
|
|
46
|
+
return messageType;
|
|
47
|
+
};
|
|
48
|
+
exports.messageYjsSyncStep1 = messageYjsSyncStep1;
|
|
49
|
+
exports.messageYjsSyncStep2 = messageYjsSyncStep2;
|
|
50
|
+
exports.messageYjsUpdate = messageYjsUpdate;
|
|
51
|
+
exports.readSyncMessage = readSyncMessage;
|
|
52
|
+
exports.readSyncStep1 = readSyncStep1;
|
|
53
|
+
exports.readSyncStep2 = readSyncStep2;
|
|
54
|
+
exports.readUpdate = readUpdate;
|
|
55
|
+
exports.writeSyncStep1 = writeSyncStep1;
|
|
56
|
+
exports.writeSyncStep2 = writeSyncStep2;
|
|
57
|
+
exports.writeUpdate = writeUpdate;
|
|
58
|
+
//# sourceMappingURL=sync.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.cjs.js","sources":["../../../../../../../../../node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.js"],"sourcesContent":["/**\n * @module sync-protocol\n */\n\nimport * as encoding from 'lib0/encoding'\nimport * as decoding from 'lib0/decoding'\nimport * as Y from 'yjs'\n\n/**\n * @typedef {Map<number, number>} StateMap\n */\n\n/**\n * Core Yjs defines two message types:\n * • YjsSyncStep1: Includes the State Set of the sending client. When received, the client should reply with YjsSyncStep2.\n * • YjsSyncStep2: Includes all missing structs and the complete delete set. When received, the client is assured that it\n * received all information from the remote client.\n *\n * In a peer-to-peer network, you may want to introduce a SyncDone message type. Both parties should initiate the connection\n * with SyncStep1. When a client received SyncStep2, it should reply with SyncDone. When the local client received both\n * SyncStep2 and SyncDone, it is assured that it is synced to the remote client.\n *\n * In a client-server model, you want to handle this differently: The client should initiate the connection with SyncStep1.\n * When the server receives SyncStep1, it should reply with SyncStep2 immediately followed by SyncStep1. The client replies\n * with SyncStep2 when it receives SyncStep1. Optionally the server may send a SyncDone after it received SyncStep2, so the\n * client knows that the sync is finished. There are two reasons for this more elaborated sync model: 1. This protocol can\n * easily be implemented on top of http and websockets. 2. The server should only reply to requests, and not initiate them.\n * Therefore it is necessary that the client initiates the sync.\n *\n * Construction of a message:\n * [messageType : varUint, message definition..]\n *\n * Note: A message does not include information about the room name. This must to be handled by the upper layer protocol!\n *\n * stringify[messageType] stringifies a message definition (messageType is already read from the bufffer)\n */\n\nexport const messageYjsSyncStep1 = 0\nexport const messageYjsSyncStep2 = 1\nexport const messageYjsUpdate = 2\n\n/**\n * Create a sync step 1 message based on the state of the current shared document.\n *\n * @param {encoding.Encoder} encoder\n * @param {Y.Doc} doc\n */\nexport const writeSyncStep1 = (encoder, doc) => {\n encoding.writeVarUint(encoder, messageYjsSyncStep1)\n const sv = Y.encodeStateVector(doc)\n encoding.writeVarUint8Array(encoder, sv)\n}\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {Y.Doc} doc\n * @param {Uint8Array} [encodedStateVector]\n */\nexport const writeSyncStep2 = (encoder, doc, encodedStateVector) => {\n encoding.writeVarUint(encoder, messageYjsSyncStep2)\n encoding.writeVarUint8Array(encoder, Y.encodeStateAsUpdate(doc, encodedStateVector))\n}\n\n/**\n * Read SyncStep1 message and reply with SyncStep2.\n *\n * @param {decoding.Decoder} decoder The reply to the received message\n * @param {encoding.Encoder} encoder The received message\n * @param {Y.Doc} doc\n */\nexport const readSyncStep1 = (decoder, encoder, doc) =>\n writeSyncStep2(encoder, doc, decoding.readVarUint8Array(decoder))\n\n/**\n * Read and apply Structs and then DeleteStore to a y instance.\n *\n * @param {decoding.Decoder} decoder\n * @param {Y.Doc} doc\n * @param {any} transactionOrigin\n */\nexport const readSyncStep2 = (decoder, doc, transactionOrigin) => {\n try {\n Y.applyUpdate(doc, decoding.readVarUint8Array(decoder), transactionOrigin)\n } catch (error) {\n // This catches errors that are thrown by event handlers\n console.error('Caught error while handling a Yjs update', error)\n }\n}\n\n/**\n * @param {encoding.Encoder} encoder\n * @param {Uint8Array} update\n */\nexport const writeUpdate = (encoder, update) => {\n encoding.writeVarUint(encoder, messageYjsUpdate)\n encoding.writeVarUint8Array(encoder, update)\n}\n\n/**\n * Read and apply Structs and then DeleteStore to a y instance.\n *\n * @param {decoding.Decoder} decoder\n * @param {Y.Doc} doc\n * @param {any} transactionOrigin\n */\nexport const readUpdate = readSyncStep2\n\n/**\n * @param {decoding.Decoder} decoder A message received from another client\n * @param {encoding.Encoder} encoder The reply message. Does not need to be sent if empty.\n * @param {Y.Doc} doc\n * @param {any} transactionOrigin\n */\nexport const readSyncMessage = (decoder, encoder, doc, transactionOrigin) => {\n const messageType = decoding.readVarUint(decoder)\n switch (messageType) {\n case messageYjsSyncStep1:\n readSyncStep1(decoder, encoder, doc)\n break\n case messageYjsSyncStep2:\n readSyncStep2(decoder, doc, transactionOrigin)\n break\n case messageYjsUpdate:\n readUpdate(decoder, doc, transactionOrigin)\n break\n default:\n throw new Error('Unknown message type')\n }\n return messageType\n}\n"],"names":["encoding.writeVarUint","Y.encodeStateVector","encoding.writeVarUint8Array","Y.encodeStateAsUpdate","decoding.readVarUint8Array","Y.applyUpdate","decoding.readVarUint"],"mappings":";;;;;AAqCY,MAAC,sBAAsB;AACvB,MAAC,sBAAsB;AACvB,MAAC,mBAAmB;AAQpB,MAAC,iBAAiB,CAAC,SAAS,QAAQ;AAC9CA,WAAqB,aAAC,SAAS,mBAAmB;AAClD,QAAM,KAAKC,IAAAA,kBAAoB,GAAG;AAClCC,WAA2B,mBAAC,SAAS,EAAE;AACzC;AAOY,MAAC,iBAAiB,CAAC,SAAS,KAAK,uBAAuB;AAClEF,WAAqB,aAAC,SAAS,mBAAmB;AAClDE,WAAAA,mBAA4B,SAASC,wBAAsB,KAAK,kBAAkB,CAAC;AACrF;AASY,MAAC,gBAAgB,CAAC,SAAS,SAAS,QAC9C,eAAe,SAAS,KAAKC,SAAAA,kBAA2B,OAAO,CAAC;AAStD,MAAC,gBAAgB,CAAC,SAAS,KAAK,sBAAsB;AAChE,MAAI;AACFC,QAAAA,YAAc,KAAKD,2BAA2B,OAAO,GAAG,iBAAiB;AAAA,EAC1E,SAAQ,OAAO;AAEd,YAAQ,MAAM,4CAA4C,KAAK;AAAA,EACnE;AACA;AAMY,MAAC,cAAc,CAAC,SAAS,WAAW;AAC9CJ,WAAqB,aAAC,SAAS,gBAAgB;AAC/CE,WAA2B,mBAAC,SAAS,MAAM;AAC7C;AASY,MAAC,aAAa;AAQd,MAAC,kBAAkB,CAAC,SAAS,SAAS,KAAK,sBAAsB;AAC3E,QAAM,cAAcI,SAAAA,YAAqB,OAAO;AAChD,UAAQ,aAAW;AAAA,IACjB,KAAK;AACH,oBAAc,SAAS,SAAS,GAAG;AACnC;AAAA,IACF,KAAK;AACH,oBAAc,SAAS,KAAK,iBAAiB;AAC7C;AAAA,IACF,KAAK;AACH,iBAAW,SAAS,KAAK,iBAAiB;AAC1C;AAAA,IACF;AACE,YAAM,IAAI,MAAM,sBAAsB;AAAA,EAC5C;AACE,SAAO;AACT;;;;;;;;;;;","x_google_ignoreList":[0]}
|