@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
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
4
4
|
|
|
5
|
-
[](#contributors-)
|
|
6
6
|
|
|
7
7
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
8
8
|
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
function commonjsRequire(path) {
|
|
2
|
+
throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
|
|
3
|
+
}
|
|
4
|
+
export {
|
|
5
|
+
commonjsRequire
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=_commonjs-dynamic-modules.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_commonjs-dynamic-modules.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
2
|
+
function getDefaultExportFromCjs(x) {
|
|
3
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
4
|
+
}
|
|
5
|
+
function getDefaultExportFromNamespaceIfPresent(n) {
|
|
6
|
+
return n && Object.prototype.hasOwnProperty.call(n, "default") ? n["default"] : n;
|
|
7
|
+
}
|
|
8
|
+
function getDefaultExportFromNamespaceIfNotNamed(n) {
|
|
9
|
+
return n && Object.prototype.hasOwnProperty.call(n, "default") && Object.keys(n).length === 1 ? n["default"] : n;
|
|
10
|
+
}
|
|
11
|
+
function getAugmentedNamespace(n) {
|
|
12
|
+
if (n.__esModule) return n;
|
|
13
|
+
var f = n.default;
|
|
14
|
+
if (typeof f == "function") {
|
|
15
|
+
var a = function a2() {
|
|
16
|
+
if (this instanceof a2) {
|
|
17
|
+
return Reflect.construct(f, arguments, this.constructor);
|
|
18
|
+
}
|
|
19
|
+
return f.apply(this, arguments);
|
|
20
|
+
};
|
|
21
|
+
a.prototype = f.prototype;
|
|
22
|
+
} else a = {};
|
|
23
|
+
Object.defineProperty(a, "__esModule", { value: true });
|
|
24
|
+
Object.keys(n).forEach(function(k) {
|
|
25
|
+
var d = Object.getOwnPropertyDescriptor(n, k);
|
|
26
|
+
Object.defineProperty(a, k, d.get ? d : {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function() {
|
|
29
|
+
return n[k];
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
return a;
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
commonjsGlobal,
|
|
37
|
+
getAugmentedNamespace,
|
|
38
|
+
getDefaultExportFromCjs,
|
|
39
|
+
getDefaultExportFromNamespaceIfNotNamed,
|
|
40
|
+
getDefaultExportFromNamespaceIfPresent
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=_commonjsHelpers.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_commonjsHelpers.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quill-cursors.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simplepeer.min.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/es/index.es.js
CHANGED
|
@@ -14,6 +14,7 @@ import { EmojiBlot } from "./formats/emoji.es.js";
|
|
|
14
14
|
import { SoftBreak } from "./formats/soft-break.es.js";
|
|
15
15
|
import { StrikeBlot } from "./formats/strike.es.js";
|
|
16
16
|
import { Video } from "./formats/video.es.js";
|
|
17
|
+
import { CollaborationModule } from "./modules/collaborative-editing/module.es.js";
|
|
17
18
|
import { CustomClipboard } from "./modules/custom-clipboard.es.js";
|
|
18
19
|
import { Action } from "./modules/custom-image/actions/action.es.js";
|
|
19
20
|
import { CustomResizeAction } from "./modules/custom-image/actions/custom-resize-action.es.js";
|
|
@@ -52,6 +53,7 @@ export {
|
|
|
52
53
|
BetterToolbar,
|
|
53
54
|
BlotFormatter,
|
|
54
55
|
BlotSpec,
|
|
56
|
+
CollaborationModule,
|
|
55
57
|
ColorPicker,
|
|
56
58
|
CustomClipboard,
|
|
57
59
|
CustomImage,
|
package/es/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { createAbsolutePositionFromRelativePosition, createRelativePositionFromJSON, createRelativePositionFromTypeIndex, compareRelativePositions } from "../../../node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.es.js";
|
|
2
|
+
function setupAwareness(options, defaultAwareness) {
|
|
3
|
+
if (!defaultAwareness) return null;
|
|
4
|
+
const awareness = defaultAwareness;
|
|
5
|
+
if (options == null ? void 0 : options.state) {
|
|
6
|
+
awareness.setLocalStateField("user", options.state);
|
|
7
|
+
}
|
|
8
|
+
return awareness;
|
|
9
|
+
}
|
|
10
|
+
function bindAwarenessToCursors(awareness, cursorsModule, quill, yText) {
|
|
11
|
+
if (!cursorsModule || !awareness) return;
|
|
12
|
+
const doc = yText.doc;
|
|
13
|
+
const updateCursor = (clientId, state) => {
|
|
14
|
+
try {
|
|
15
|
+
if ((state == null ? void 0 : state.cursor) && clientId !== awareness.clientID) {
|
|
16
|
+
const user = state.user || {};
|
|
17
|
+
const color = user.color || "#ff6b6b";
|
|
18
|
+
const name = user.name || `User ${clientId}`;
|
|
19
|
+
cursorsModule.createCursor(clientId.toString(), name, color);
|
|
20
|
+
const anchor = createAbsolutePositionFromRelativePosition(createRelativePositionFromJSON(state.cursor.anchor), doc);
|
|
21
|
+
const head = createAbsolutePositionFromRelativePosition(createRelativePositionFromJSON(state.cursor.head), doc);
|
|
22
|
+
if (anchor && head && anchor.type === yText && clientId) {
|
|
23
|
+
setTimeout(() => {
|
|
24
|
+
cursorsModule.moveCursor(clientId.toString(), {
|
|
25
|
+
index: anchor.index,
|
|
26
|
+
length: head.index - anchor.index
|
|
27
|
+
});
|
|
28
|
+
}, 0);
|
|
29
|
+
}
|
|
30
|
+
} else {
|
|
31
|
+
cursorsModule.removeCursor(clientId.toString());
|
|
32
|
+
}
|
|
33
|
+
} catch (err) {
|
|
34
|
+
console.error("Cursor update failed:", err);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const selectionChangeHandler = (range) => {
|
|
38
|
+
setTimeout(() => {
|
|
39
|
+
var _a;
|
|
40
|
+
if (range) {
|
|
41
|
+
const anchor = createRelativePositionFromTypeIndex(yText, range.index);
|
|
42
|
+
const head = createRelativePositionFromTypeIndex(yText, range.index + range.length);
|
|
43
|
+
const currentState = awareness.getLocalState();
|
|
44
|
+
if (!(currentState == null ? void 0 : currentState.cursor) || !compareRelativePositions(anchor, currentState.cursor.anchor) || !compareRelativePositions(head, currentState.cursor.head)) {
|
|
45
|
+
awareness.setLocalStateField("cursor", { anchor, head });
|
|
46
|
+
}
|
|
47
|
+
} else {
|
|
48
|
+
if (((_a = awareness.getLocalState()) == null ? void 0 : _a.cursor) !== null) {
|
|
49
|
+
awareness.setLocalStateField("cursor", null);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}, 0);
|
|
53
|
+
};
|
|
54
|
+
const changeHandler = ({ added, updated, removed }) => {
|
|
55
|
+
if (quill.composition.isComposing) return;
|
|
56
|
+
const states = awareness.getStates();
|
|
57
|
+
added.forEach((id) => {
|
|
58
|
+
updateCursor(id, states.get(id));
|
|
59
|
+
});
|
|
60
|
+
updated.forEach((id) => {
|
|
61
|
+
updateCursor(id, states.get(id));
|
|
62
|
+
});
|
|
63
|
+
removed.forEach((id) => {
|
|
64
|
+
cursorsModule.removeCursor(id.toString());
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
awareness.on("change", changeHandler);
|
|
68
|
+
quill.on("editor-change", (eventName, ...args) => {
|
|
69
|
+
if (quill.composition.isComposing) return;
|
|
70
|
+
if (eventName === "text-change") {
|
|
71
|
+
if (args[2] === "user") {
|
|
72
|
+
const range = quill.getSelection();
|
|
73
|
+
selectionChangeHandler(range);
|
|
74
|
+
}
|
|
75
|
+
} else if (eventName === "selection-change") {
|
|
76
|
+
if (args[2] === "user") {
|
|
77
|
+
selectionChangeHandler(args[0]);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
awareness.getStates().forEach((state, clientId) => {
|
|
82
|
+
updateCursor(clientId, state);
|
|
83
|
+
});
|
|
84
|
+
return () => {
|
|
85
|
+
awareness.off("change", changeHandler);
|
|
86
|
+
quill.off("editor-change", selectionChangeHandler);
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
export {
|
|
90
|
+
bindAwarenessToCursors,
|
|
91
|
+
setupAwareness
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=awareness.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"awareness.es.js","sources":["../../../../../src/modules/collaborative-editing/awareness/awareness.ts"],"sourcesContent":["import type QuillCursors from 'quill-cursors'\r\nimport type { Awareness } from 'y-protocols/awareness'\r\nimport type FluentEditor from '../../../core/fluent-editor'\r\nimport * as Y from 'yjs'\r\n\r\nexport interface AwarenessState {\r\n name?: string\r\n color?: string\r\n}\r\n\r\nexport interface AwarenessEvents {\r\n change?: (changes: { added: number[], updated: number[], removed: number[] }, transactionOrigin: any) => void\r\n update?: ({ added, updated, removed }: { added: number[], updated: number[], removed: number[] }, origin: any) => void\r\n destroy?: () => void\r\n}\r\n\r\nexport interface AwarenessOptions {\r\n state?: AwarenessState\r\n events?: AwarenessEvents\r\n timeout?: number | undefined\r\n}\r\n\r\nexport function setupAwareness(options?: AwarenessOptions, defaultAwareness?: Awareness): Awareness | null {\r\n if (!defaultAwareness) return null\r\n\r\n const awareness = defaultAwareness\r\n\r\n if (options?.state) {\r\n awareness.setLocalStateField('user', options.state)\r\n }\r\n\r\n return awareness\r\n}\r\n\r\nexport function bindAwarenessToCursors(\r\n awareness: Awareness,\r\n cursorsModule: QuillCursors,\r\n quill: FluentEditor,\r\n yText: Y.Text,\r\n): (() => void) | void {\r\n if (!cursorsModule || !awareness) return\r\n\r\n const doc = yText.doc!\r\n\r\n const updateCursor = (clientId: number, state: any) => {\r\n try {\r\n if (state?.cursor && clientId !== awareness.clientID) {\r\n const user = state.user || {}\r\n const color = user.color || '#ff6b6b'\r\n const name = user.name || `User ${clientId}`\r\n\r\n cursorsModule.createCursor(clientId.toString(), name, color)\r\n\r\n const anchor = Y.createAbsolutePositionFromRelativePosition(Y.createRelativePositionFromJSON(state.cursor.anchor), doc)\r\n const head = Y.createAbsolutePositionFromRelativePosition(Y.createRelativePositionFromJSON(state.cursor.head), doc)\r\n\r\n if (anchor && head && anchor.type === yText && clientId) {\r\n setTimeout(() => {\r\n cursorsModule.moveCursor(clientId.toString(), {\r\n index: anchor.index,\r\n length: head.index - anchor.index,\r\n })\r\n }, 0)\r\n }\r\n }\r\n else {\r\n cursorsModule.removeCursor(clientId.toString())\r\n }\r\n }\r\n catch (err) {\r\n console.error('Cursor update failed:', err)\r\n }\r\n }\r\n\r\n const selectionChangeHandler = (range: { index: number, length: number } | null) => {\r\n setTimeout(() => {\r\n if (range) {\r\n const anchor = Y.createRelativePositionFromTypeIndex(yText, range.index)\r\n const head = Y.createRelativePositionFromTypeIndex(yText, range.index + range.length)\r\n\r\n const currentState = awareness.getLocalState()\r\n if (!currentState?.cursor\r\n || !Y.compareRelativePositions(anchor, currentState.cursor.anchor)\r\n || !Y.compareRelativePositions(head, currentState.cursor.head)) {\r\n awareness.setLocalStateField('cursor', { anchor, head })\r\n }\r\n }\r\n else {\r\n if (awareness.getLocalState()?.cursor !== null) {\r\n awareness.setLocalStateField('cursor', null)\r\n }\r\n }\r\n }, 0)\r\n }\r\n\r\n const changeHandler = ({ added, updated, removed }: {\r\n added: number[]\r\n updated: number[]\r\n removed: number[]\r\n }) => {\r\n if (quill.composition.isComposing) return\r\n const states = awareness.getStates()\r\n\r\n added.forEach((id) => {\r\n updateCursor(id, states.get(id))\r\n })\r\n\r\n updated.forEach((id) => {\r\n updateCursor(id, states.get(id))\r\n })\r\n\r\n removed.forEach((id) => {\r\n cursorsModule.removeCursor(id.toString())\r\n })\r\n }\r\n\r\n awareness.on('change', changeHandler)\r\n quill.on('editor-change', (eventName, ...args) => {\r\n if (quill.composition.isComposing) return\r\n if (eventName === 'text-change') {\r\n if (args[2] === 'user') {\r\n const range = quill.getSelection()\r\n selectionChangeHandler(range)\r\n }\r\n }\r\n else if (eventName === 'selection-change') {\r\n if (args[2] === 'user') {\r\n selectionChangeHandler(args[0] as { index: number, length: number } | null)\r\n }\r\n }\r\n })\r\n\r\n awareness.getStates().forEach((state, clientId) => {\r\n updateCursor(clientId, state)\r\n })\r\n\r\n return () => {\r\n awareness.off('change', changeHandler)\r\n quill.off('editor-change', selectionChangeHandler)\r\n }\r\n}\r\n"],"names":["Y.createAbsolutePositionFromRelativePosition","Y.createRelativePositionFromJSON","Y.createRelativePositionFromTypeIndex","Y.compareRelativePositions"],"mappings":";AAsBgB,SAAA,eAAe,SAA4B,kBAAgD;AACrG,MAAA,CAAC,iBAAyB,QAAA;AAE9B,QAAM,YAAY;AAElB,MAAI,mCAAS,OAAO;AACR,cAAA,mBAAmB,QAAQ,QAAQ,KAAK;AAAA,EAAA;AAG7C,SAAA;AACT;AAEO,SAAS,uBACd,WACA,eACA,OACA,OACqB;AACjB,MAAA,CAAC,iBAAiB,CAAC,UAAW;AAElC,QAAM,MAAM,MAAM;AAEZ,QAAA,eAAe,CAAC,UAAkB,UAAe;AACjD,QAAA;AACF,WAAI,+BAAO,WAAU,aAAa,UAAU,UAAU;AAC9C,cAAA,OAAO,MAAM,QAAQ,CAAC;AACtB,cAAA,QAAQ,KAAK,SAAS;AAC5B,cAAM,OAAO,KAAK,QAAQ,QAAQ,QAAQ;AAE1C,sBAAc,aAAa,SAAS,SAAS,GAAG,MAAM,KAAK;AAErD,cAAA,SAASA,2CAA6CC,+BAAiC,MAAM,OAAO,MAAM,GAAG,GAAG;AAChH,cAAA,OAAOD,2CAA6CC,+BAAiC,MAAM,OAAO,IAAI,GAAG,GAAG;AAElH,YAAI,UAAU,QAAQ,OAAO,SAAS,SAAS,UAAU;AACvD,qBAAW,MAAM;AACD,0BAAA,WAAW,SAAS,YAAY;AAAA,cAC5C,OAAO,OAAO;AAAA,cACd,QAAQ,KAAK,QAAQ,OAAO;AAAA,YAAA,CAC7B;AAAA,aACA,CAAC;AAAA,QAAA;AAAA,MACN,OAEG;AACW,sBAAA,aAAa,SAAS,UAAU;AAAA,MAAA;AAAA,aAG3C,KAAK;AACF,cAAA,MAAM,yBAAyB,GAAG;AAAA,IAAA;AAAA,EAE9C;AAEM,QAAA,yBAAyB,CAAC,UAAoD;AAClF,eAAW,MAAM;;AACf,UAAI,OAAO;AACT,cAAM,SAASC,oCAAsC,OAAO,MAAM,KAAK;AACvE,cAAM,OAAOA,oCAAsC,OAAO,MAAM,QAAQ,MAAM,MAAM;AAE9E,cAAA,eAAe,UAAU,cAAc;AAC7C,YAAI,EAAC,6CAAc,WACd,CAACC,yBAA2B,QAAQ,aAAa,OAAO,MAAM,KAC9D,CAACA,yBAA2B,MAAM,aAAa,OAAO,IAAI,GAAG;AAChE,oBAAU,mBAAmB,UAAU,EAAE,QAAQ,MAAM;AAAA,QAAA;AAAA,MACzD,OAEG;AACH,cAAI,eAAU,oBAAV,mBAA2B,YAAW,MAAM;AACpC,oBAAA,mBAAmB,UAAU,IAAI;AAAA,QAAA;AAAA,MAC7C;AAAA,OAED,CAAC;AAAA,EACN;AAEA,QAAM,gBAAgB,CAAC,EAAE,OAAO,SAAS,cAInC;AACA,QAAA,MAAM,YAAY,YAAa;AAC7B,UAAA,SAAS,UAAU,UAAU;AAE7B,UAAA,QAAQ,CAAC,OAAO;AACpB,mBAAa,IAAI,OAAO,IAAI,EAAE,CAAC;AAAA,IAAA,CAChC;AAEO,YAAA,QAAQ,CAAC,OAAO;AACtB,mBAAa,IAAI,OAAO,IAAI,EAAE,CAAC;AAAA,IAAA,CAChC;AAEO,YAAA,QAAQ,CAAC,OAAO;AACR,oBAAA,aAAa,GAAG,UAAU;AAAA,IAAA,CACzC;AAAA,EACH;AAEU,YAAA,GAAG,UAAU,aAAa;AACpC,QAAM,GAAG,iBAAiB,CAAC,cAAc,SAAS;AAC5C,QAAA,MAAM,YAAY,YAAa;AACnC,QAAI,cAAc,eAAe;AAC3B,UAAA,KAAK,CAAC,MAAM,QAAQ;AAChB,cAAA,QAAQ,MAAM,aAAa;AACjC,+BAAuB,KAAK;AAAA,MAAA;AAAA,IAC9B,WAEO,cAAc,oBAAoB;AACrC,UAAA,KAAK,CAAC,MAAM,QAAQ;AACC,+BAAA,KAAK,CAAC,CAA6C;AAAA,MAAA;AAAA,IAC5E;AAAA,EACF,CACD;AAED,YAAU,UAAU,EAAE,QAAQ,CAAC,OAAO,aAAa;AACjD,iBAAa,UAAU,KAAK;AAAA,EAAA,CAC7B;AAED,SAAO,MAAM;AACD,cAAA,IAAI,UAAU,aAAa;AAC/B,UAAA,IAAI,iBAAiB,sBAAsB;AAAA,EACnD;AACF;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IndexeddbPersistence } from "../../../node_modules/.pnpm/y-indexeddb@9.0.12_yjs@13.6.27/node_modules/y-indexeddb/src/y-indexeddb.es.js";
|
|
2
|
+
function setupIndexedDB(doc) {
|
|
3
|
+
const fullDbName = `tiny-editor-${doc.guid}`;
|
|
4
|
+
new IndexeddbPersistence(fullDbName, doc);
|
|
5
|
+
return () => {
|
|
6
|
+
indexedDB.deleteDatabase(fullDbName);
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
export {
|
|
10
|
+
setupIndexedDB
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=y-indexeddb.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"y-indexeddb.es.js","sources":["../../../../../src/modules/collaborative-editing/awareness/y-indexeddb.ts"],"sourcesContent":["import type { Doc } from 'yjs'\r\nimport { IndexeddbPersistence } from 'y-indexeddb'\r\n\r\nexport function setupIndexedDB(doc: Doc): () => void {\r\n const fullDbName = `tiny-editor-${doc.guid}`\r\n\r\n new IndexeddbPersistence(fullDbName, doc)\r\n\r\n return (): void => {\r\n indexedDB.deleteDatabase(fullDbName)\r\n }\r\n}\r\n"],"names":[],"mappings":";AAGO,SAAS,eAAe,KAAsB;AAC7C,QAAA,aAAa,eAAe,IAAI,IAAI;AAEtC,MAAA,qBAAqB,YAAY,GAAG;AAExC,SAAO,MAAY;AACjB,cAAU,eAAe,UAAU;AAAA,EACrC;AACF;"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
import QuillCursors from "../../node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.es.js";
|
|
5
|
+
import { Awareness } from "../../node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.es.js";
|
|
6
|
+
import { QuillBinding } from "../../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";
|
|
7
|
+
import { Doc } from "../../node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.es.js";
|
|
8
|
+
import "./awareness/index.es.js";
|
|
9
|
+
import { setupIndexedDB } from "./awareness/y-indexeddb.es.js";
|
|
10
|
+
import { createProvider } from "./provider/providerRegistry.es.js";
|
|
11
|
+
import { setupAwareness, bindAwarenessToCursors } from "./awareness/awareness.es.js";
|
|
12
|
+
class CollaborativeEditor {
|
|
13
|
+
constructor(quill, options) {
|
|
14
|
+
__publicField(this, "ydoc", new Doc());
|
|
15
|
+
__publicField(this, "provider");
|
|
16
|
+
__publicField(this, "awareness");
|
|
17
|
+
__publicField(this, "cursors");
|
|
18
|
+
__publicField(this, "cleanupBindings", null);
|
|
19
|
+
__publicField(this, "clearIndexedDB", null);
|
|
20
|
+
this.quill = quill;
|
|
21
|
+
this.options = options;
|
|
22
|
+
this.ydoc = this.options.ydoc || new Doc();
|
|
23
|
+
if (this.options.cursors !== false) {
|
|
24
|
+
const cursorsOptions = typeof this.options.cursors === "object" ? this.options.cursors : {};
|
|
25
|
+
this.cursors = new QuillCursors(quill, cursorsOptions);
|
|
26
|
+
}
|
|
27
|
+
if (this.options.awareness) {
|
|
28
|
+
const awareness = setupAwareness(this.options.awareness, new Awareness(this.ydoc));
|
|
29
|
+
if (!awareness) {
|
|
30
|
+
throw new Error("Failed to initialize awareness");
|
|
31
|
+
}
|
|
32
|
+
this.awareness = awareness;
|
|
33
|
+
} else {
|
|
34
|
+
this.awareness = new Awareness(this.ydoc);
|
|
35
|
+
}
|
|
36
|
+
if (this.options.provider) {
|
|
37
|
+
const providerConfig = this.options.provider;
|
|
38
|
+
try {
|
|
39
|
+
const provider = createProvider({
|
|
40
|
+
doc: this.ydoc,
|
|
41
|
+
options: providerConfig.options,
|
|
42
|
+
type: providerConfig.type,
|
|
43
|
+
awareness: this.awareness,
|
|
44
|
+
onConnect: this.options.onConnect,
|
|
45
|
+
onDisconnect: this.options.onDisconnect,
|
|
46
|
+
onError: this.options.onError,
|
|
47
|
+
onSyncChange: this.options.onSyncChange
|
|
48
|
+
});
|
|
49
|
+
this.provider = provider;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
console.warn(
|
|
52
|
+
`[yjs] Error creating provider of type ${providerConfig.type}:`,
|
|
53
|
+
error
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (this.provider) {
|
|
58
|
+
const ytext = this.ydoc.getText("tiny-editor");
|
|
59
|
+
this.cleanupBindings = bindAwarenessToCursors(this.awareness, this.cursors, quill, ytext) || null;
|
|
60
|
+
new QuillBinding(
|
|
61
|
+
ytext,
|
|
62
|
+
this.quill,
|
|
63
|
+
this.awareness
|
|
64
|
+
);
|
|
65
|
+
} else {
|
|
66
|
+
console.error("Failed to initialize collaborative editor: no valid provider configured");
|
|
67
|
+
}
|
|
68
|
+
if (this.options.offline !== false) {
|
|
69
|
+
this.clearIndexedDB = setupIndexedDB(this.ydoc);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
getAwareness() {
|
|
73
|
+
return this.awareness;
|
|
74
|
+
}
|
|
75
|
+
getProvider() {
|
|
76
|
+
return this.provider;
|
|
77
|
+
}
|
|
78
|
+
getYDoc() {
|
|
79
|
+
return this.ydoc;
|
|
80
|
+
}
|
|
81
|
+
get isConnected() {
|
|
82
|
+
var _a;
|
|
83
|
+
return ((_a = this.provider) == null ? void 0 : _a.isConnected) ?? false;
|
|
84
|
+
}
|
|
85
|
+
get isSynced() {
|
|
86
|
+
var _a;
|
|
87
|
+
return ((_a = this.provider) == null ? void 0 : _a.isSynced) ?? false;
|
|
88
|
+
}
|
|
89
|
+
getCursors() {
|
|
90
|
+
return this.cursors;
|
|
91
|
+
}
|
|
92
|
+
async destroy() {
|
|
93
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
94
|
+
(_a = this.cleanupBindings) == null ? void 0 : _a.call(this);
|
|
95
|
+
(_c = (_b = this.provider) == null ? void 0 : _b.destroy) == null ? void 0 : _c.call(_b);
|
|
96
|
+
(_d = this.cursors) == null ? void 0 : _d.clearCursors();
|
|
97
|
+
(_f = (_e = this.awareness) == null ? void 0 : _e.destroy) == null ? void 0 : _f.call(_e);
|
|
98
|
+
(_g = this.clearIndexedDB) == null ? void 0 : _g.call(this);
|
|
99
|
+
(_i = (_h = this.ydoc) == null ? void 0 : _h.destroy) == null ? void 0 : _i.call(_h);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
export {
|
|
103
|
+
CollaborativeEditor
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=collaborative-editing.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collaborative-editing.es.js","sources":["../../../../src/modules/collaborative-editing/collaborative-editing.ts"],"sourcesContent":["import type FluentEditor from '../../fluent-editor'\r\nimport type { UnifiedProvider } from './provider/providerRegistry'\r\nimport type { YjsOptions } from './types'\r\nimport QuillCursors from 'quill-cursors'\r\nimport { Awareness } from 'y-protocols/awareness'\r\nimport { QuillBinding } from 'y-quill'\r\nimport * as Y from 'yjs'\r\nimport { bindAwarenessToCursors, setupAwareness } from './awareness'\r\nimport { setupIndexedDB } from './awareness/y-indexeddb'\r\nimport { createProvider } from './provider/providerRegistry'\r\n\r\nexport class CollaborativeEditor {\r\n private ydoc: Y.Doc = new Y.Doc()\r\n private provider: UnifiedProvider\r\n private awareness: Awareness\r\n private cursors: QuillCursors | null\r\n private cleanupBindings: (() => void) | null = null\r\n private clearIndexedDB: (() => void) | null = null\r\n\r\n constructor(\r\n public quill: FluentEditor,\r\n public options: YjsOptions,\r\n ) {\r\n this.ydoc = this.options.ydoc || new Y.Doc()\r\n\r\n if (this.options.cursors !== false) {\r\n const cursorsOptions = typeof this.options.cursors === 'object' ? this.options.cursors : {}\r\n this.cursors = new QuillCursors(quill, cursorsOptions)\r\n }\r\n\r\n if (this.options.awareness) {\r\n const awareness = setupAwareness(this.options.awareness, new Awareness(this.ydoc))\r\n if (!awareness) {\r\n throw new Error('Failed to initialize awareness')\r\n }\r\n this.awareness = awareness\r\n }\r\n else {\r\n this.awareness = new Awareness(this.ydoc)\r\n }\r\n\r\n if (this.options.provider) {\r\n const providerConfig = this.options.provider\r\n try {\r\n const provider = createProvider({\r\n doc: this.ydoc,\r\n options: providerConfig.options,\r\n type: providerConfig.type,\r\n awareness: this.awareness,\r\n onConnect: this.options.onConnect,\r\n onDisconnect: this.options.onDisconnect,\r\n onError: this.options.onError,\r\n onSyncChange: this.options.onSyncChange,\r\n })\r\n this.provider = provider\r\n }\r\n catch (error) {\r\n console.warn(\r\n `[yjs] Error creating provider of type ${providerConfig.type}:`,\r\n error,\r\n )\r\n }\r\n }\r\n\r\n if (this.provider) {\r\n const ytext = this.ydoc.getText('tiny-editor')\r\n this.cleanupBindings = bindAwarenessToCursors(this.awareness, this.cursors, quill, ytext) || null\r\n new QuillBinding(\r\n ytext,\r\n this.quill,\r\n this.awareness,\r\n )\r\n }\r\n else {\r\n console.error('Failed to initialize collaborative editor: no valid provider configured')\r\n }\r\n\r\n if (this.options.offline !== false) {\r\n this.clearIndexedDB = setupIndexedDB(this.ydoc)\r\n }\r\n }\r\n\r\n public getAwareness() {\r\n return this.awareness\r\n }\r\n\r\n public getProvider() {\r\n return this.provider\r\n }\r\n\r\n public getYDoc() {\r\n return this.ydoc\r\n }\r\n\r\n get isConnected() {\r\n return this.provider?.isConnected ?? false\r\n }\r\n\r\n get isSynced() {\r\n return this.provider?.isSynced ?? false\r\n }\r\n\r\n public getCursors() {\r\n return this.cursors\r\n }\r\n\r\n public async destroy() {\r\n this.cleanupBindings?.()\r\n this.provider?.destroy?.()\r\n this.cursors?.clearCursors()\r\n this.awareness?.destroy?.()\r\n this.clearIndexedDB?.()\r\n this.ydoc?.destroy?.()\r\n }\r\n}\r\n"],"names":["Y.Doc"],"mappings":";;;;;;;;;;;AAWO,MAAM,oBAAoB;AAAA,EAQ/B,YACS,OACA,SACP;AAVM,gCAAc,IAAIA,IAAM;AACxB;AACA;AACA;AACA,2CAAuC;AACvC,0CAAsC;AAGrC,SAAA,QAAA;AACA,SAAA,UAAA;AAEP,SAAK,OAAO,KAAK,QAAQ,QAAQ,IAAIA,IAAM;AAEvC,QAAA,KAAK,QAAQ,YAAY,OAAO;AAC5B,YAAA,iBAAiB,OAAO,KAAK,QAAQ,YAAY,WAAW,KAAK,QAAQ,UAAU,CAAC;AAC1F,WAAK,UAAU,IAAI,aAAa,OAAO,cAAc;AAAA,IAAA;AAGnD,QAAA,KAAK,QAAQ,WAAW;AACpB,YAAA,YAAY,eAAe,KAAK,QAAQ,WAAW,IAAI,UAAU,KAAK,IAAI,CAAC;AACjF,UAAI,CAAC,WAAW;AACR,cAAA,IAAI,MAAM,gCAAgC;AAAA,MAAA;AAElD,WAAK,YAAY;AAAA,IAAA,OAEd;AACH,WAAK,YAAY,IAAI,UAAU,KAAK,IAAI;AAAA,IAAA;AAGtC,QAAA,KAAK,QAAQ,UAAU;AACnB,YAAA,iBAAiB,KAAK,QAAQ;AAChC,UAAA;AACF,cAAM,WAAW,eAAe;AAAA,UAC9B,KAAK,KAAK;AAAA,UACV,SAAS,eAAe;AAAA,UACxB,MAAM,eAAe;AAAA,UACrB,WAAW,KAAK;AAAA,UAChB,WAAW,KAAK,QAAQ;AAAA,UACxB,cAAc,KAAK,QAAQ;AAAA,UAC3B,SAAS,KAAK,QAAQ;AAAA,UACtB,cAAc,KAAK,QAAQ;AAAA,QAAA,CAC5B;AACD,aAAK,WAAW;AAAA,eAEX,OAAO;AACJ,gBAAA;AAAA,UACN,yCAAyC,eAAe,IAAI;AAAA,UAC5D;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAGF,QAAI,KAAK,UAAU;AACjB,YAAM,QAAQ,KAAK,KAAK,QAAQ,aAAa;AACxC,WAAA,kBAAkB,uBAAuB,KAAK,WAAW,KAAK,SAAS,OAAO,KAAK,KAAK;AACzF,UAAA;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,MACP;AAAA,IAAA,OAEG;AACH,cAAQ,MAAM,yEAAyE;AAAA,IAAA;AAGrF,QAAA,KAAK,QAAQ,YAAY,OAAO;AAC7B,WAAA,iBAAiB,eAAe,KAAK,IAAI;AAAA,IAAA;AAAA,EAChD;AAAA,EAGK,eAAe;AACpB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGP,cAAc;AACnB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGP,UAAU;AACf,WAAO,KAAK;AAAA,EAAA;AAAA,EAGd,IAAI,cAAc;;AACT,aAAA,UAAK,aAAL,mBAAe,gBAAe;AAAA,EAAA;AAAA,EAGvC,IAAI,WAAW;;AACN,aAAA,UAAK,aAAL,mBAAe,aAAY;AAAA,EAAA;AAAA,EAG7B,aAAa;AAClB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGd,MAAa,UAAU;;AACrB,eAAK,oBAAL;AACA,qBAAK,aAAL,mBAAe,YAAf;AACA,eAAK,YAAL,mBAAc;AACd,qBAAK,cAAL,mBAAgB,YAAhB;AACA,eAAK,mBAAL;AACA,qBAAK,SAAL,mBAAW,YAAX;AAAA,EAAqB;AAEzB;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
import { CollaborativeEditor } from "./collaborative-editing.es.js";
|
|
5
|
+
class CollaborationModule {
|
|
6
|
+
constructor(quill, options) {
|
|
7
|
+
__publicField(this, "collaborativeEditor");
|
|
8
|
+
this.quill = quill;
|
|
9
|
+
this.options = options;
|
|
10
|
+
this.collaborativeEditor = new CollaborativeEditor(quill, options);
|
|
11
|
+
window.addEventListener(
|
|
12
|
+
"beforeunload",
|
|
13
|
+
() => {
|
|
14
|
+
void this.collaborativeEditor.destroy().catch((err) => console.warn("[yjs] destroy failed:", err));
|
|
15
|
+
},
|
|
16
|
+
{ once: true }
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
getCursors() {
|
|
20
|
+
return this.collaborativeEditor.getCursors();
|
|
21
|
+
}
|
|
22
|
+
getAwareness() {
|
|
23
|
+
return this.collaborativeEditor.getAwareness();
|
|
24
|
+
}
|
|
25
|
+
getProvider() {
|
|
26
|
+
return this.collaborativeEditor.getProvider();
|
|
27
|
+
}
|
|
28
|
+
async destroy() {
|
|
29
|
+
await this.collaborativeEditor.destroy();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
CollaborationModule
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=module.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.es.js","sources":["../../../../src/modules/collaborative-editing/module.ts"],"sourcesContent":["import type FluentEditor from '../../fluent-editor'\r\nimport { CollaborativeEditor } from './collaborative-editing'\r\n\r\nexport class CollaborationModule {\r\n private collaborativeEditor: CollaborativeEditor\r\n\r\n constructor(public quill: FluentEditor, public options: any) {\r\n this.collaborativeEditor = new CollaborativeEditor(quill, options)\r\n\r\n window.addEventListener(\r\n 'beforeunload',\r\n () => { void this.collaborativeEditor.destroy().catch(err => console.warn('[yjs] destroy failed:', err)) },\r\n { once: true },\r\n )\r\n }\r\n\r\n public getCursors() {\r\n return this.collaborativeEditor.getCursors()\r\n }\r\n\r\n public getAwareness() {\r\n return this.collaborativeEditor.getAwareness()\r\n }\r\n\r\n public getProvider() {\r\n return this.collaborativeEditor.getProvider()\r\n }\r\n\r\n public async destroy() {\r\n await this.collaborativeEditor.destroy()\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;AAGO,MAAM,oBAAoB;AAAA,EAG/B,YAAmB,OAA4B,SAAc;AAFrD;AAEW,SAAA,QAAA;AAA4B,SAAA,UAAA;AAC7C,SAAK,sBAAsB,IAAI,oBAAoB,OAAO,OAAO;AAE1D,WAAA;AAAA,MACL;AAAA,MACA,MAAM;AAAO,aAAA,KAAK,oBAAoB,QAAA,EAAU,MAAM,SAAO,QAAQ,KAAK,yBAAyB,GAAG,CAAC;AAAA,MAAE;AAAA,MACzG,EAAE,MAAM,KAAK;AAAA,IACf;AAAA,EAAA;AAAA,EAGK,aAAa;AACX,WAAA,KAAK,oBAAoB,WAAW;AAAA,EAAA;AAAA,EAGtC,eAAe;AACb,WAAA,KAAK,oBAAoB,aAAa;AAAA,EAAA;AAAA,EAGxC,cAAc;AACZ,WAAA,KAAK,oBAAoB,YAAY;AAAA,EAAA;AAAA,EAG9C,MAAa,UAAU;AACf,UAAA,KAAK,oBAAoB,QAAQ;AAAA,EAAA;AAE3C;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { WebRTCProviderWrapper } from "./webrtc.es.js";
|
|
2
|
+
import { WebsocketProviderWrapper } from "./websocket.es.js";
|
|
3
|
+
const providerRegistry = {
|
|
4
|
+
websocket: WebsocketProviderWrapper,
|
|
5
|
+
webrtc: WebRTCProviderWrapper
|
|
6
|
+
};
|
|
7
|
+
function registerProviderType(type, providerClass) {
|
|
8
|
+
providerRegistry[type] = providerClass;
|
|
9
|
+
}
|
|
10
|
+
function getProviderClass(type) {
|
|
11
|
+
return providerRegistry[type];
|
|
12
|
+
}
|
|
13
|
+
function createProvider({
|
|
14
|
+
type,
|
|
15
|
+
...props
|
|
16
|
+
}) {
|
|
17
|
+
const ProviderClass = getProviderClass(type);
|
|
18
|
+
if (!ProviderClass) {
|
|
19
|
+
throw new Error(`Provider type "${type}" not found in registry`);
|
|
20
|
+
}
|
|
21
|
+
return new ProviderClass(props);
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
createProvider,
|
|
25
|
+
getProviderClass,
|
|
26
|
+
registerProviderType
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=providerRegistry.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerRegistry.es.js","sources":["../../../../../src/modules/collaborative-editing/provider/providerRegistry.ts"],"sourcesContent":["import type { Awareness } from 'y-protocols/awareness'\r\nimport type * as Y from 'yjs'\r\nimport type { ProviderEventHandlers } from '../types'\r\nimport { WebRTCProviderWrapper } from './webrtc'\r\nimport { WebsocketProviderWrapper } from './websocket'\r\n\r\nexport type ProviderRegistry = Record<string, ProviderConstructor>\r\n\r\nexport type ProviderConstructor<T = any> = new (\r\n props: ProviderConstructorProps<T>\r\n) => UnifiedProvider\r\n\r\nexport type ProviderConstructorProps<T = any> = {\r\n options: T\r\n awareness?: Awareness\r\n doc?: Y.Doc\r\n} & ProviderEventHandlers\r\n\r\nexport interface UnifiedProvider extends ProviderEventHandlers {\r\n awareness: Awareness\r\n document: Y.Doc\r\n type: 'webrtc' | 'websocket' | string\r\n connect: () => void\r\n destroy: () => void\r\n disconnect: () => void\r\n isConnected: boolean\r\n isSynced: boolean\r\n}\r\n\r\nconst providerRegistry: ProviderRegistry = {\r\n websocket: WebsocketProviderWrapper,\r\n webrtc: WebRTCProviderWrapper,\r\n}\r\n\r\nexport function registerProviderType<T>(type: string, providerClass: ProviderConstructor<T>) {\r\n providerRegistry[type as string]\r\n = providerClass as ProviderConstructor\r\n}\r\n\r\nexport function getProviderClass(type: string): ProviderConstructor | undefined {\r\n return providerRegistry[type]\r\n}\r\n\r\nexport function createProvider({\r\n type,\r\n ...props\r\n}: ProviderConstructorProps & {\r\n type: string\r\n}) {\r\n const ProviderClass = getProviderClass(type)\r\n\r\n if (!ProviderClass) {\r\n throw new Error(`Provider type \"${type}\" not found in registry`)\r\n }\r\n\r\n return new ProviderClass(props)\r\n}\r\n"],"names":[],"mappings":";;AA6BA,MAAM,mBAAqC;AAAA,EACzC,WAAW;AAAA,EACX,QAAQ;AACV;AAEgB,SAAA,qBAAwB,MAAc,eAAuC;AAC3F,mBAAiB,IAAc,IAC3B;AACN;AAEO,SAAS,iBAAiB,MAA+C;AAC9E,SAAO,iBAAiB,IAAI;AAC9B;AAEO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA,GAAG;AACL,GAEG;AACK,QAAA,gBAAgB,iBAAiB,IAAI;AAE3C,MAAI,CAAC,eAAe;AAClB,UAAM,IAAI,MAAM,kBAAkB,IAAI,yBAAyB;AAAA,EAAA;AAG1D,SAAA,IAAI,cAAc,KAAK;AAChC;"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
import { WebrtcProvider } from "../../../node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/y-webrtc.es.js";
|
|
5
|
+
import { Doc } from "../../../node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.es.js";
|
|
6
|
+
class WebRTCProviderWrapper {
|
|
7
|
+
constructor({
|
|
8
|
+
awareness,
|
|
9
|
+
doc,
|
|
10
|
+
options,
|
|
11
|
+
onConnect,
|
|
12
|
+
onDisconnect,
|
|
13
|
+
onError,
|
|
14
|
+
onSyncChange
|
|
15
|
+
}) {
|
|
16
|
+
__publicField(this, "provider");
|
|
17
|
+
__publicField(this, "_isConnected", false);
|
|
18
|
+
__publicField(this, "_isSynced", false);
|
|
19
|
+
__publicField(this, "onConnect");
|
|
20
|
+
__publicField(this, "onDisconnect");
|
|
21
|
+
__publicField(this, "onError");
|
|
22
|
+
__publicField(this, "onSyncChange");
|
|
23
|
+
__publicField(this, "document");
|
|
24
|
+
__publicField(this, "awareness");
|
|
25
|
+
__publicField(this, "type");
|
|
26
|
+
__publicField(this, "connect", () => {
|
|
27
|
+
try {
|
|
28
|
+
this.provider.connect();
|
|
29
|
+
} catch (error) {
|
|
30
|
+
console.warn("[yjs] Error connecting WebRTC provider:", error);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
__publicField(this, "destroy", () => {
|
|
34
|
+
try {
|
|
35
|
+
this.provider.destroy();
|
|
36
|
+
} catch (error) {
|
|
37
|
+
console.warn("[yjs] Error destroying WebRTC provider:", error);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
__publicField(this, "disconnect", () => {
|
|
41
|
+
try {
|
|
42
|
+
this.provider.disconnect();
|
|
43
|
+
this._isConnected = false;
|
|
44
|
+
this._isSynced = false;
|
|
45
|
+
} catch (error) {
|
|
46
|
+
console.warn("[yjs] Error disconnecting WebRTC provider:", error);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
this.onConnect = onConnect;
|
|
50
|
+
this.onDisconnect = onDisconnect;
|
|
51
|
+
this.onError = onError;
|
|
52
|
+
this.onSyncChange = onSyncChange;
|
|
53
|
+
this.document = doc || new Doc();
|
|
54
|
+
try {
|
|
55
|
+
this.provider = new WebrtcProvider(options.roomName, this.document, {
|
|
56
|
+
awareness,
|
|
57
|
+
...options
|
|
58
|
+
});
|
|
59
|
+
this.provider.on("status", (status) => {
|
|
60
|
+
var _a, _b, _c, _d;
|
|
61
|
+
const wasConnected = this._isConnected;
|
|
62
|
+
this._isConnected = status.connected;
|
|
63
|
+
if (status.connected) {
|
|
64
|
+
if (!wasConnected) {
|
|
65
|
+
(_a = this.onConnect) == null ? void 0 : _a.call(this);
|
|
66
|
+
}
|
|
67
|
+
if (!this._isSynced) {
|
|
68
|
+
this._isSynced = true;
|
|
69
|
+
(_b = this.onSyncChange) == null ? void 0 : _b.call(this, true);
|
|
70
|
+
}
|
|
71
|
+
} else {
|
|
72
|
+
if (wasConnected) {
|
|
73
|
+
(_c = this.onDisconnect) == null ? void 0 : _c.call(this);
|
|
74
|
+
if (this._isSynced) {
|
|
75
|
+
this._isSynced = false;
|
|
76
|
+
(_d = this.onSyncChange) == null ? void 0 : _d.call(this, false);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
} catch (error) {
|
|
82
|
+
console.warn("[yjs] Error creating WebRTC provider:", error);
|
|
83
|
+
onError == null ? void 0 : onError(error instanceof Error ? error : new Error(String(error)));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
get isConnected() {
|
|
87
|
+
return this._isConnected;
|
|
88
|
+
}
|
|
89
|
+
get isSynced() {
|
|
90
|
+
return this._isSynced;
|
|
91
|
+
}
|
|
92
|
+
getProvider() {
|
|
93
|
+
return this.provider;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export {
|
|
97
|
+
WebRTCProviderWrapper
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=webrtc.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webrtc.es.js","sources":["../../../../../src/modules/collaborative-editing/provider/webrtc.ts"],"sourcesContent":["import type { Awareness } from 'y-protocols/awareness'\r\nimport type { ProviderEventHandlers } from '../types'\r\nimport type { UnifiedProvider } from './providerRegistry'\r\nimport { WebrtcProvider } from 'y-webrtc'\r\nimport * as Y from 'yjs'\r\n\r\nexport interface WebRTCProviderOptions {\r\n roomName: string\r\n filterBcConns?: boolean\r\n maxConns?: number\r\n password?: string\r\n peerOpts?: Record<string, unknown>\r\n signaling?: string[]\r\n}\r\n\r\nexport class WebRTCProviderWrapper implements UnifiedProvider {\r\n private provider: WebrtcProvider\r\n private _isConnected = false\r\n private _isSynced = false\r\n\r\n onConnect?: () => void\r\n onDisconnect?: () => void\r\n onError?: (error: Error) => void\r\n onSyncChange?: (isSynced: boolean) => void\r\n\r\n document: Y.Doc\r\n awareness: Awareness\r\n type: 'webrtc'\r\n\r\n connect = () => {\r\n try {\r\n this.provider.connect()\r\n }\r\n catch (error) {\r\n console.warn('[yjs] Error connecting WebRTC provider:', error)\r\n }\r\n }\r\n\r\n destroy = () => {\r\n try {\r\n this.provider.destroy()\r\n }\r\n catch (error) {\r\n console.warn('[yjs] Error destroying WebRTC provider:', error)\r\n }\r\n }\r\n\r\n disconnect = () => {\r\n try {\r\n this.provider.disconnect()\r\n this._isConnected = false\r\n this._isSynced = false\r\n }\r\n catch (error) {\r\n console.warn('[yjs] Error disconnecting WebRTC provider:', error)\r\n }\r\n }\r\n\r\n constructor({\r\n awareness,\r\n doc,\r\n options,\r\n onConnect,\r\n onDisconnect,\r\n onError,\r\n onSyncChange,\r\n }: {\r\n options: WebRTCProviderOptions\r\n awareness?: Awareness\r\n doc?: Y.Doc\r\n } & ProviderEventHandlers) {\r\n this.onConnect = onConnect\r\n this.onDisconnect = onDisconnect\r\n this.onError = onError\r\n this.onSyncChange = onSyncChange\r\n\r\n this.document = doc || new Y.Doc()\r\n try {\r\n this.provider = new WebrtcProvider(options.roomName, this.document, {\r\n awareness,\r\n ...options,\r\n })\r\n\r\n this.provider.on('status', (status: { connected: boolean }) => {\r\n const wasConnected = this._isConnected\r\n this._isConnected = status.connected\r\n if (status.connected) {\r\n if (!wasConnected) {\r\n this.onConnect?.()\r\n }\r\n if (!this._isSynced) {\r\n this._isSynced = true\r\n this.onSyncChange?.(true)\r\n }\r\n }\r\n else {\r\n if (wasConnected) {\r\n this.onDisconnect?.()\r\n\r\n if (this._isSynced) {\r\n this._isSynced = false\r\n this.onSyncChange?.(false)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n catch (error) {\r\n console.warn('[yjs] Error creating WebRTC provider:', error)\r\n onError?.(error instanceof Error ? error : new Error(String(error)))\r\n }\r\n }\r\n\r\n get isConnected() {\r\n return this._isConnected\r\n }\r\n\r\n get isSynced() {\r\n return this._isSynced\r\n }\r\n\r\n getProvider() {\r\n return this.provider\r\n }\r\n}\r\n"],"names":["Y.Doc"],"mappings":";;;;;AAeO,MAAM,sBAAiD;AAAA,EA2C5D,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,GAKyB;AAtDnB;AACA,wCAAe;AACf,qCAAY;AAEpB;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA,mCAAU,MAAM;AACV,UAAA;AACF,aAAK,SAAS,QAAQ;AAAA,eAEjB,OAAO;AACJ,gBAAA,KAAK,2CAA2C,KAAK;AAAA,MAAA;AAAA,IAEjE;AAEA,mCAAU,MAAM;AACV,UAAA;AACF,aAAK,SAAS,QAAQ;AAAA,eAEjB,OAAO;AACJ,gBAAA,KAAK,2CAA2C,KAAK;AAAA,MAAA;AAAA,IAEjE;AAEA,sCAAa,MAAM;AACb,UAAA;AACF,aAAK,SAAS,WAAW;AACzB,aAAK,eAAe;AACpB,aAAK,YAAY;AAAA,eAEZ,OAAO;AACJ,gBAAA,KAAK,8CAA8C,KAAK;AAAA,MAAA;AAAA,IAEpE;AAeE,SAAK,YAAY;AACjB,SAAK,eAAe;AACpB,SAAK,UAAU;AACf,SAAK,eAAe;AAEpB,SAAK,WAAW,OAAO,IAAIA,IAAM;AAC7B,QAAA;AACF,WAAK,WAAW,IAAI,eAAe,QAAQ,UAAU,KAAK,UAAU;AAAA,QAClE;AAAA,QACA,GAAG;AAAA,MAAA,CACJ;AAED,WAAK,SAAS,GAAG,UAAU,CAAC,WAAmC;;AAC7D,cAAM,eAAe,KAAK;AAC1B,aAAK,eAAe,OAAO;AAC3B,YAAI,OAAO,WAAW;AACpB,cAAI,CAAC,cAAc;AACjB,uBAAK,cAAL;AAAA,UAAiB;AAEf,cAAA,CAAC,KAAK,WAAW;AACnB,iBAAK,YAAY;AACjB,uBAAK,iBAAL,8BAAoB;AAAA,UAAI;AAAA,QAC1B,OAEG;AACH,cAAI,cAAc;AAChB,uBAAK,iBAAL;AAEA,gBAAI,KAAK,WAAW;AAClB,mBAAK,YAAY;AACjB,yBAAK,iBAAL,8BAAoB;AAAA,YAAK;AAAA,UAC3B;AAAA,QACF;AAAA,MACF,CACD;AAAA,aAEI,OAAO;AACJ,cAAA,KAAK,yCAAyC,KAAK;AACjD,yCAAA,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAAA,IAAC;AAAA,EACrE;AAAA,EAGF,IAAI,cAAc;AAChB,WAAO,KAAK;AAAA,EAAA;AAAA,EAGd,IAAI,WAAW;AACb,WAAO,KAAK;AAAA,EAAA;AAAA,EAGd,cAAc;AACZ,WAAO,KAAK;AAAA,EAAA;AAEhB;"}
|