@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.
Files changed (270) hide show
  1. package/README.md +1 -1
  2. package/es/_virtual/_commonjs-dynamic-modules.es.js +7 -0
  3. package/es/_virtual/_commonjs-dynamic-modules.es.js.map +1 -0
  4. package/es/_virtual/_commonjsHelpers.es.js +42 -0
  5. package/es/_virtual/_commonjsHelpers.es.js.map +1 -0
  6. package/es/_virtual/quill-cursors.es.js +5 -0
  7. package/es/_virtual/quill-cursors.es.js.map +1 -0
  8. package/es/_virtual/simplepeer.min.es.js +5 -0
  9. package/es/_virtual/simplepeer.min.es.js.map +1 -0
  10. package/es/index.es.js +2 -0
  11. package/es/index.es.js.map +1 -1
  12. package/es/modules/collaborative-editing/awareness/awareness.es.js +93 -0
  13. package/es/modules/collaborative-editing/awareness/awareness.es.js.map +1 -0
  14. package/es/modules/collaborative-editing/awareness/index.es.js +8 -0
  15. package/es/modules/collaborative-editing/awareness/index.es.js.map +1 -0
  16. package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js +12 -0
  17. package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js.map +1 -0
  18. package/es/modules/collaborative-editing/collaborative-editing.es.js +105 -0
  19. package/es/modules/collaborative-editing/collaborative-editing.es.js.map +1 -0
  20. package/es/modules/collaborative-editing/index.es.js +6 -0
  21. package/es/modules/collaborative-editing/index.es.js.map +1 -0
  22. package/es/modules/collaborative-editing/module.es.js +35 -0
  23. package/es/modules/collaborative-editing/module.es.js.map +1 -0
  24. package/es/modules/collaborative-editing/provider/providerRegistry.es.js +28 -0
  25. package/es/modules/collaborative-editing/provider/providerRegistry.es.js.map +1 -0
  26. package/es/modules/collaborative-editing/provider/webrtc.es.js +99 -0
  27. package/es/modules/collaborative-editing/provider/webrtc.es.js.map +1 -0
  28. package/es/modules/collaborative-editing/provider/websocket.es.js +111 -0
  29. package/es/modules/collaborative-editing/provider/websocket.es.js.map +1 -0
  30. package/es/modules/collaborative-editing/types.es.js +2 -0
  31. package/es/modules/collaborative-editing/types.es.js.map +1 -0
  32. package/es/modules/custom-image/options.es.js +1 -1
  33. package/es/modules/custom-image/options.es.js.map +1 -1
  34. package/es/modules/index.es.js +1 -0
  35. package/es/modules/index.es.js.map +1 -1
  36. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.es.js +112 -0
  37. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.es.js.map +1 -0
  38. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.es.js +133 -0
  39. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.es.js.map +1 -0
  40. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.es.js +59 -0
  41. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.es.js.map +1 -0
  42. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.es.js +75 -0
  43. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.es.js.map +1 -0
  44. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.es.js +5 -0
  45. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.es.js.map +1 -0
  46. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.es.js +422 -0
  47. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.es.js.map +1 -0
  48. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.es.js +142 -0
  49. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.es.js.map +1 -0
  50. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.es.js +484 -0
  51. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.es.js.map +1 -0
  52. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.es.js +79 -0
  53. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.es.js.map +1 -0
  54. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.es.js +13 -0
  55. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.es.js.map +1 -0
  56. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.es.js +69 -0
  57. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.es.js.map +1 -0
  58. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.es.js +124 -0
  59. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.es.js.map +1 -0
  60. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.es.js +92 -0
  61. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.es.js.map +1 -0
  62. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.es.js +38 -0
  63. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.es.js.map +1 -0
  64. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.es.js +7 -0
  65. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.es.js.map +1 -0
  66. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.es.js +99 -0
  67. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.es.js.map +1 -0
  68. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.es.js +288 -0
  69. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.es.js.map +1 -0
  70. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.es.js +47 -0
  71. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.es.js.map +1 -0
  72. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.es.js +37 -0
  73. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.es.js.map +1 -0
  74. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.es.js +64 -0
  75. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.es.js.map +1 -0
  76. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.es.js +19 -0
  77. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.es.js.map +1 -0
  78. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.es.js +31 -0
  79. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.es.js.map +1 -0
  80. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.es.js +72 -0
  81. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.es.js.map +1 -0
  82. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.es.js +128 -0
  83. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.es.js.map +1 -0
  84. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.es.js +22 -0
  85. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.es.js.map +1 -0
  86. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.es.js +50 -0
  87. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.es.js.map +1 -0
  88. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.es.js +24 -0
  89. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.es.js.map +1 -0
  90. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.es.js +11 -0
  91. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.es.js.map +1 -0
  92. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.es.js +44 -0
  93. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.es.js.map +1 -0
  94. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.es.js +95 -0
  95. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.es.js.map +1 -0
  96. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.es.js +7 -0
  97. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.es.js.map +1 -0
  98. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.es.js +28 -0
  99. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.es.js.map +1 -0
  100. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.es.js +5 -0
  101. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.es.js.map +1 -0
  102. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.es.js +20 -0
  103. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.es.js.map +1 -0
  104. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.es.js +7 -0
  105. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.es.js.map +1 -0
  106. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.es.js +113 -0
  107. package/es/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.es.js.map +1 -0
  108. package/es/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.es.js +1796 -0
  109. package/es/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.es.js.map +1 -0
  110. package/es/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.es.js +2620 -0
  111. package/es/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.es.js.map +1 -0
  112. 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
  113. 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
  114. package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.es.js +20 -0
  115. package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.es.js.map +1 -0
  116. package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.es.js +232 -0
  117. package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.es.js.map +1 -0
  118. package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.es.js +58 -0
  119. package/es/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.es.js.map +1 -0
  120. 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
  121. 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
  122. package/es/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/crypto.es.js +94 -0
  123. 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
  124. 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
  125. 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
  126. 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
  127. 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
  128. package/es/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.es.js +7653 -0
  129. package/es/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.es.js.map +1 -0
  130. package/lib/_virtual/_commonjs-dynamic-modules.cjs.js +7 -0
  131. package/lib/_virtual/_commonjs-dynamic-modules.cjs.js.map +1 -0
  132. package/lib/_virtual/_commonjsHelpers.cjs.js +42 -0
  133. package/lib/_virtual/_commonjsHelpers.cjs.js.map +1 -0
  134. package/lib/_virtual/quill-cursors.cjs.js +5 -0
  135. package/lib/_virtual/quill-cursors.cjs.js.map +1 -0
  136. package/lib/_virtual/simplepeer.min.cjs.js +5 -0
  137. package/lib/_virtual/simplepeer.min.cjs.js.map +1 -0
  138. package/lib/index.cjs.js +4 -2
  139. package/lib/index.cjs.js.map +1 -1
  140. package/lib/modules/collaborative-editing/awareness/awareness.cjs.js +93 -0
  141. package/lib/modules/collaborative-editing/awareness/awareness.cjs.js.map +1 -0
  142. package/lib/modules/collaborative-editing/awareness/index.cjs.js +8 -0
  143. package/lib/modules/collaborative-editing/awareness/index.cjs.js.map +1 -0
  144. package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js +12 -0
  145. package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js.map +1 -0
  146. package/lib/modules/collaborative-editing/collaborative-editing.cjs.js +105 -0
  147. package/lib/modules/collaborative-editing/collaborative-editing.cjs.js.map +1 -0
  148. package/lib/modules/collaborative-editing/index.cjs.js +6 -0
  149. package/lib/modules/collaborative-editing/index.cjs.js.map +1 -0
  150. package/lib/modules/collaborative-editing/module.cjs.js +35 -0
  151. package/lib/modules/collaborative-editing/module.cjs.js.map +1 -0
  152. package/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js +28 -0
  153. package/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js.map +1 -0
  154. package/lib/modules/collaborative-editing/provider/webrtc.cjs.js +99 -0
  155. package/lib/modules/collaborative-editing/provider/webrtc.cjs.js.map +1 -0
  156. package/lib/modules/collaborative-editing/provider/websocket.cjs.js +111 -0
  157. package/lib/modules/collaborative-editing/provider/websocket.cjs.js.map +1 -0
  158. package/lib/modules/collaborative-editing/types.cjs.js +2 -0
  159. package/lib/modules/collaborative-editing/types.cjs.js.map +1 -0
  160. package/lib/modules/custom-image/options.cjs.js +1 -1
  161. package/lib/modules/custom-image/options.cjs.js.map +1 -1
  162. package/lib/modules/index.cjs.js +1 -0
  163. package/lib/modules/index.cjs.js.map +1 -1
  164. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.cjs.js +112 -0
  165. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/array.cjs.js.map +1 -0
  166. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.cjs.js +133 -0
  167. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/binary.cjs.js.map +1 -0
  168. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.cjs.js +59 -0
  169. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/broadcastchannel.cjs.js.map +1 -0
  170. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.cjs.js +75 -0
  171. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/buffer.cjs.js.map +1 -0
  172. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.cjs.js +5 -0
  173. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/conditions.cjs.js.map +1 -0
  174. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.cjs.js +422 -0
  175. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/decoding.cjs.js.map +1 -0
  176. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.cjs.js +142 -0
  177. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/dom.cjs.js.map +1 -0
  178. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.cjs.js +484 -0
  179. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/encoding.cjs.js.map +1 -0
  180. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.cjs.js +79 -0
  181. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/environment.cjs.js.map +1 -0
  182. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.cjs.js +13 -0
  183. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/error.cjs.js.map +1 -0
  184. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.cjs.js +69 -0
  185. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/eventloop.cjs.js.map +1 -0
  186. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.cjs.js +124 -0
  187. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/function.cjs.js.map +1 -0
  188. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.cjs.js +92 -0
  189. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/indexeddb.cjs.js.map +1 -0
  190. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.cjs.js +38 -0
  191. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/iterator.cjs.js.map +1 -0
  192. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.cjs.js +7 -0
  193. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/json.cjs.js.map +1 -0
  194. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.cjs.js +288 -0
  195. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.cjs.js.map +1 -0
  196. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.cjs.js +99 -0
  197. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/logging.common.cjs.js.map +1 -0
  198. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.cjs.js +47 -0
  199. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/map.cjs.js.map +1 -0
  200. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.cjs.js +37 -0
  201. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/math.cjs.js.map +1 -0
  202. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.cjs.js +64 -0
  203. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/metric.cjs.js.map +1 -0
  204. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.cjs.js +19 -0
  205. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/mutex.cjs.js.map +1 -0
  206. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.cjs.js +31 -0
  207. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/number.cjs.js.map +1 -0
  208. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.cjs.js +72 -0
  209. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/object.cjs.js.map +1 -0
  210. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.cjs.js +128 -0
  211. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/observable.cjs.js.map +1 -0
  212. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.cjs.js +22 -0
  213. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/pair.cjs.js.map +1 -0
  214. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.cjs.js +50 -0
  215. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/promise.cjs.js.map +1 -0
  216. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.cjs.js +24 -0
  217. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/random.cjs.js.map +1 -0
  218. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.cjs.js +11 -0
  219. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/set.cjs.js.map +1 -0
  220. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.cjs.js +44 -0
  221. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/storage.cjs.js.map +1 -0
  222. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.cjs.js +94 -0
  223. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/string.cjs.js.map +1 -0
  224. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.cjs.js +7 -0
  225. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/symbol.cjs.js.map +1 -0
  226. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.cjs.js +28 -0
  227. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/time.cjs.js.map +1 -0
  228. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.cjs.js +5 -0
  229. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/traits.cjs.js.map +1 -0
  230. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.cjs.js +20 -0
  231. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/url.cjs.js.map +1 -0
  232. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.cjs.js +7 -0
  233. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/webcrypto.cjs.js.map +1 -0
  234. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.cjs.js +113 -0
  235. package/lib/node_modules/.pnpm/lib0@0.2.114/node_modules/lib0/websocket.cjs.js.map +1 -0
  236. package/lib/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.cjs.js +1796 -0
  237. package/lib/node_modules/.pnpm/quill-cursors@4.0.4/node_modules/quill-cursors/dist/quill-cursors.cjs.js.map +1 -0
  238. package/lib/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.cjs.js +2620 -0
  239. package/lib/node_modules/.pnpm/simple-peer@9.11.1/node_modules/simple-peer/simplepeer.min.cjs.js.map +1 -0
  240. 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
  241. 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
  242. package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.cjs.js +20 -0
  243. package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/auth.cjs.js.map +1 -0
  244. package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.cjs.js +232 -0
  245. package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/awareness.cjs.js.map +1 -0
  246. package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.cjs.js +58 -0
  247. package/lib/node_modules/.pnpm/y-protocols@1.0.6_yjs@13.6.27/node_modules/y-protocols/sync.cjs.js.map +1 -0
  248. 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
  249. 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
  250. package/lib/node_modules/.pnpm/y-webrtc@10.3.0_yjs@13.6.27/node_modules/y-webrtc/src/crypto.cjs.js +94 -0
  251. 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
  252. 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
  253. 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
  254. 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
  255. 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
  256. package/lib/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.cjs.js +7653 -0
  257. package/lib/node_modules/.pnpm/yjs@13.6.27/node_modules/yjs/dist/yjs.cjs.js.map +1 -0
  258. package/package.json +9 -2
  259. package/types/modules/collaborative-editing/awareness/awareness.d.ts +29 -0
  260. package/types/modules/collaborative-editing/awareness/index.d.ts +2 -0
  261. package/types/modules/collaborative-editing/awareness/y-indexeddb.d.ts +3 -0
  262. package/types/modules/collaborative-editing/collaborative-editing.d.ts +25 -0
  263. package/types/modules/collaborative-editing/index.d.ts +2 -0
  264. package/types/modules/collaborative-editing/module.d.ts +12 -0
  265. package/types/modules/collaborative-editing/provider/index.d.ts +3 -0
  266. package/types/modules/collaborative-editing/provider/providerRegistry.d.ts +26 -0
  267. package/types/modules/collaborative-editing/provider/webrtc.d.ts +37 -0
  268. package/types/modules/collaborative-editing/provider/websocket.d.ts +41 -0
  269. package/types/modules/collaborative-editing/types.d.ts +37 -0
  270. 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
- [![All Contributors](https://img.shields.io/badge/all_contributors-6-orange.svg?style=flat-square)](#contributors-)
5
+ [![All Contributors](https://img.shields.io/badge/all_contributors-10-orange.svg?style=flat-square)](#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,5 @@
1
+ var quillCursors = { exports: {} };
2
+ export {
3
+ quillCursors as __module
4
+ };
5
+ //# sourceMappingURL=quill-cursors.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quill-cursors.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,5 @@
1
+ var simplepeer_min = { exports: {} };
2
+ export {
3
+ simplepeer_min as __module
4
+ };
5
+ //# sourceMappingURL=simplepeer.min.es.js.map
@@ -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,
@@ -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,8 @@
1
+ import { bindAwarenessToCursors, setupAwareness } from "./awareness.es.js";
2
+ import { setupIndexedDB } from "./y-indexeddb.es.js";
3
+ export {
4
+ bindAwarenessToCursors,
5
+ setupAwareness,
6
+ setupIndexedDB
7
+ };
8
+ //# sourceMappingURL=index.es.js.map
@@ -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,6 @@
1
+ import { CollaborationModule } from "./module.es.js";
2
+ import "./types.es.js";
3
+ export {
4
+ CollaborationModule
5
+ };
6
+ //# sourceMappingURL=index.es.js.map
@@ -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;"}