@phtngyn/cms 0.1.0-beta.0 → 0.1.0-beta.2

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 (181) hide show
  1. package/README.md +260 -6
  2. package/package.json +31 -16
  3. package/src/Authoring.d.ts +13 -1
  4. package/src/Configuration-Br7tE9Qt.d.ts +68 -0
  5. package/src/{AuthoringSchema-BQ5kbhVB.js → Configuration-CA_jvQKG.js} +599 -492
  6. package/src/Configuration-CA_jvQKG.js.map +1 -0
  7. package/src/Configuration.d.ts +2 -44
  8. package/src/Configuration.js +0 -1
  9. package/src/Configuration.js.map +1 -1
  10. package/src/{DocumentEngine-Da0kWotL.js → DocumentEngine-CgiBQU4g.js} +110 -84
  11. package/src/DocumentEngine-CgiBQU4g.js.map +1 -0
  12. package/src/DocumentModel-BB9igGC7.d.ts +34 -0
  13. package/src/DocumentModel.d.ts +2 -30
  14. package/src/DocumentModel.js +13 -3
  15. package/src/DocumentModel.js.map +1 -1
  16. package/src/Forms-BsJMev5_.d.ts +74 -0
  17. package/src/Forms-CfcI3tPU.js +79 -0
  18. package/src/Forms-CfcI3tPU.js.map +1 -0
  19. package/src/Forms-DxbkU3_5.js +367 -0
  20. package/src/Forms-DxbkU3_5.js.map +1 -0
  21. package/src/Forms.d.ts +35 -0
  22. package/src/Forms.js +13 -0
  23. package/src/Forms.js.map +1 -0
  24. package/src/HttpPaths-c9nLZ9H2.js +21 -0
  25. package/src/HttpPaths-c9nLZ9H2.js.map +1 -0
  26. package/src/I18n-DZK4CkJF.d.ts +21 -0
  27. package/src/I18n.d.ts +2 -0
  28. package/src/I18n.js +1 -0
  29. package/src/Module.js +78 -81
  30. package/src/Module.js.map +1 -1
  31. package/src/S3MediaObjects-JKMAWyVB.js +2664 -0
  32. package/src/S3MediaObjects-JKMAWyVB.js.map +1 -0
  33. package/src/Seed.d.ts +6 -0
  34. package/src/Seed.js +34 -0
  35. package/src/Seed.js.map +1 -0
  36. package/src/Seo-402YumpT.d.ts +198 -0
  37. package/src/{connection-ZGtL54qY.js → connection-B-iz0Y9Y.js} +5 -7
  38. package/src/connection-B-iz0Y9Y.js.map +1 -0
  39. package/src/{installation-BNKaVjni.js → installation-DgF2M1gL.js} +1162 -2147
  40. package/src/installation-DgF2M1gL.js.map +1 -0
  41. package/src/internal/authoring-catalog.js +153 -0
  42. package/src/internal/authoring-catalog.js.map +1 -0
  43. package/src/internal/authoring-compiler.js +2 -2
  44. package/src/internal/authoring-compiler.js.map +1 -1
  45. package/src/internal/authoring-metadata.js +68 -49
  46. package/src/internal/authoring-metadata.js.map +1 -1
  47. package/src/internal/cms-config.js +0 -1
  48. package/src/internal/cms-config.js.map +1 -1
  49. package/src/internal/configuration.js +25 -13
  50. package/src/internal/configuration.js.map +1 -1
  51. package/src/internal/document-model.js +66 -20
  52. package/src/internal/document-model.js.map +1 -1
  53. package/src/internal/form-capabilities.js +12 -0
  54. package/src/internal/form-capabilities.js.map +1 -0
  55. package/src/internal/i18n.js +47 -0
  56. package/src/internal/i18n.js.map +1 -0
  57. package/src/internal/studio-app.js +66 -0
  58. package/src/internal/studio-app.js.map +1 -0
  59. package/src/location-CFKTeK1K.js +35 -0
  60. package/src/location-CFKTeK1K.js.map +1 -0
  61. package/src/{metadata-Czvi3E4K.js → metadata-BEZPWh-3.js} +3 -72
  62. package/src/metadata-BEZPWh-3.js.map +1 -0
  63. package/src/{models-DS5ClMsH.js → models-BWm1pTAf.js} +9 -31
  64. package/src/models-BWm1pTAf.js.map +1 -0
  65. package/src/models-DwYioyNV.js +726 -0
  66. package/src/models-DwYioyNV.js.map +1 -0
  67. package/src/runtime/blocks.js +30 -0
  68. package/src/runtime/blocks.js.map +1 -0
  69. package/src/runtime/collaboration.js +9 -4
  70. package/src/runtime/collaboration.js.map +1 -1
  71. package/src/runtime/delivery/DocumentRenderer.js +10 -4
  72. package/src/runtime/delivery/DocumentRenderer.js.map +1 -1
  73. package/src/runtime/delivery/blocks.js +8 -0
  74. package/src/runtime/delivery/blocks.js.map +1 -0
  75. package/src/runtime/delivery/context.js +12 -0
  76. package/src/runtime/delivery/context.js.map +1 -0
  77. package/src/runtime/delivery/document-page.js +14 -12
  78. package/src/runtime/delivery/document-page.js.map +1 -1
  79. package/src/runtime/delivery/document.js +21 -3
  80. package/src/runtime/delivery/document.js.map +1 -1
  81. package/src/runtime/delivery/error.js +11 -0
  82. package/src/runtime/delivery/error.js.map +1 -0
  83. package/src/runtime/delivery/plugin.js +41 -0
  84. package/src/runtime/delivery/plugin.js.map +1 -0
  85. package/src/runtime/delivery/types.d.ts +5 -0
  86. package/src/runtime/delivery/useCmsDocumentSeo.d.ts +56 -0
  87. package/src/runtime/delivery/useCmsDocumentSeo.js +99 -0
  88. package/src/runtime/delivery/useCmsDocumentSeo.js.map +1 -0
  89. package/src/runtime/delivery/useDocument.js +5 -2
  90. package/src/runtime/delivery/useDocument.js.map +1 -1
  91. package/src/runtime/delivery/useDocumentQuery.js +5 -2
  92. package/src/runtime/delivery/useDocumentQuery.js.map +1 -1
  93. package/src/runtime/forms/document.js +38 -0
  94. package/src/runtime/forms/document.js.map +1 -0
  95. package/src/runtime/forms/useCmsForm.js +149 -0
  96. package/src/runtime/forms/useCmsForm.js.map +1 -0
  97. package/src/runtime/i18n/translator.js +22 -0
  98. package/src/runtime/i18n/translator.js.map +1 -0
  99. package/src/runtime/i18n/useCmsI18n.d.ts +9 -0
  100. package/src/runtime/i18n/useCmsI18n.js +29 -0
  101. package/src/runtime/i18n/useCmsI18n.js.map +1 -0
  102. package/src/runtime/installation.js +1 -1
  103. package/src/runtime/plugin.js +3 -3
  104. package/src/runtime/plugin.js.map +1 -1
  105. package/src/runtime/preview/comark-document.js +0 -1
  106. package/src/runtime/preview/comark-document.js.map +1 -1
  107. package/src/runtime/preview/connection.js +1 -1
  108. package/src/runtime/preview/controller.js +37 -11
  109. package/src/runtime/preview/controller.js.map +1 -1
  110. package/src/runtime/preview/overlay.js +65 -0
  111. package/src/runtime/preview/overlay.js.map +1 -0
  112. package/src/runtime/preview/plugin.client.js +59 -61
  113. package/src/runtime/preview/plugin.client.js.map +1 -1
  114. package/src/runtime/preview/preview.css +72 -4
  115. package/src/runtime/preview/protocol.js.map +1 -1
  116. package/src/runtime/preview/store.js +1 -1
  117. package/src/runtime/preview/targets.js +0 -1
  118. package/src/runtime/preview/targets.js.map +1 -1
  119. package/src/runtime/sitemap-entries.js +17 -0
  120. package/src/runtime/sitemap-entries.js.map +1 -0
  121. package/src/runtime/sitemap.js +24 -0
  122. package/src/runtime/sitemap.js.map +1 -0
  123. package/src/runtime/studio-app.js +5 -1
  124. package/src/runtime/studio-app.js.map +1 -1
  125. package/src/runtime/studio-entry.js +36 -0
  126. package/src/runtime/studio-entry.js.map +1 -0
  127. package/src/runtime/studio-navigation.js +11 -0
  128. package/src/runtime/studio-navigation.js.map +1 -0
  129. package/src/scalars-B2lgGUnj.js +26 -0
  130. package/src/scalars-B2lgGUnj.js.map +1 -0
  131. package/src/{store-Nl4uxEXx.js → store-DjJs3I7k.js} +12 -7
  132. package/src/store-DjJs3I7k.js.map +1 -0
  133. package/studio/CreateDocumentDialog-CTeIFlPb.js +256 -0
  134. package/studio/collaboration-DcK2F6v9.js +4566 -0
  135. package/studio/documentPlanning-Bfv-d7OU.js +29820 -0
  136. package/studio/dom-to-image-more.min-D6jGGdrW.js +877 -0
  137. package/studio/editor-Bzlh3zXt.js +30827 -0
  138. package/studio/host.css +3 -0
  139. package/studio/host.js +46614 -0
  140. package/studio/rolldown-runtime-B0aSnxlc.js +20 -0
  141. package/dist/studio/assets/ActivityEntryRow-D--fRvWI.js +0 -1
  142. package/dist/studio/assets/ActivityView-D-XBBUHb.js +0 -1
  143. package/dist/studio/assets/CreateDocumentDialog-CH8UH1QM.js +0 -1
  144. package/dist/studio/assets/DocumentsView-CxRpmAxt.js +0 -34
  145. package/dist/studio/assets/DropdownMenu-BSb1l7fr.js +0 -1
  146. package/dist/studio/assets/Input-DVao38h7.js +0 -3
  147. package/dist/studio/assets/MediaView-BHrPIjxB.js +0 -1
  148. package/dist/studio/assets/Modal-VNrXGa5C.js +0 -1
  149. package/dist/studio/assets/OverviewView-DfP6-mLZ.js +0 -1
  150. package/dist/studio/assets/Select-BJZIs9sY.js +0 -1
  151. package/dist/studio/assets/SettingsView-CerHe-ua.js +0 -1
  152. package/dist/studio/assets/Skeleton-CWJNi3nS.js +0 -1
  153. package/dist/studio/assets/StudioPageHeader-DP9HDAF2.js +0 -1
  154. package/dist/studio/assets/UsersView-cP3REkH2.js +0 -1
  155. package/dist/studio/assets/collaboration-BLnCzfvV.js +0 -4
  156. package/dist/studio/assets/context-dY4fNbn3.js +0 -1
  157. package/dist/studio/assets/editor-CE07wW83.js +0 -137
  158. package/dist/studio/assets/gateway-BAyQgCse.js +0 -10
  159. package/dist/studio/assets/index-CjoaPLhZ.js +0 -28
  160. package/dist/studio/assets/index-s2rPqCmP.css +0 -2
  161. package/dist/studio/assets/render-BkxbK2St.js +0 -83
  162. package/dist/studio/assets/rolldown-runtime-DK3Fl9T5.js +0 -1
  163. package/dist/studio/assets/useMediaLibrary-D7qR7aBf.js +0 -1
  164. package/dist/studio/index.html +0 -76
  165. package/src/AuthoringSchema-BQ5kbhVB.js.map +0 -1
  166. package/src/Configuration-BGYFD2N1.js +0 -150
  167. package/src/Configuration-BGYFD2N1.js.map +0 -1
  168. package/src/DocumentEngine-Da0kWotL.js.map +0 -1
  169. package/src/HttpPaths-86qLGB90.js +0 -15
  170. package/src/HttpPaths-86qLGB90.js.map +0 -1
  171. package/src/StudioHttp-BTLLooh0.js +0 -916
  172. package/src/StudioHttp-BTLLooh0.js.map +0 -1
  173. package/src/connection-ZGtL54qY.js.map +0 -1
  174. package/src/installation-BNKaVjni.js.map +0 -1
  175. package/src/internal/component-metadata.js +0 -37
  176. package/src/internal/component-metadata.js.map +0 -1
  177. package/src/metadata-Czvi3E4K.js.map +0 -1
  178. package/src/models-Citx8jBi.js +0 -306
  179. package/src/models-Citx8jBi.js.map +0 -1
  180. package/src/models-DS5ClMsH.js.map +0 -1
  181. package/src/store-Nl4uxEXx.js.map +0 -1
@@ -1,4 +0,0 @@
1
- var e=()=>new Map,t=t=>{let n=e();return t.forEach((e,t)=>{n.set(t,e)}),n},n=(e,t,n)=>{let r=e.get(t);return r===void 0&&e.set(t,r=n()),r},r=(e,t)=>{let n=[];for(let[r,i]of e)n.push(t(i,r));return n},i=(e,t)=>{for(let[n,r]of e)if(t(r,n))return!0;return!1},a=()=>new Set,o=e=>e[e.length-1],s=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},c=Array.from,l=(e,t)=>{for(let n=0;n<e.length;n++)if(!t(e[n],n,e))return!1;return!0},u=(e,t)=>{for(let n=0;n<e.length;n++)if(t(e[n],n,e))return!0;return!1},d=(e,t)=>{let n=Array(e);for(let r=0;r<e;r++)n[r]=t(r,n);return n},f=Array.isArray,ee=class{constructor(){this._observers=e()}on(e,t){return n(this._observers,e,a).add(t),t}once(e,t){let n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){let n=this._observers.get(e);n!==void 0&&(n.delete(t),n.size===0&&this._observers.delete(e))}emit(t,n){return c((this._observers.get(t)||e()).values()).forEach(e=>e(...n))}destroy(){this._observers=e()}},te=class{constructor(){this._observers=e()}on(e,t){n(this._observers,e,a).add(t)}once(e,t){let n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){let n=this._observers.get(e);n!==void 0&&(n.delete(t),n.size===0&&this._observers.delete(e))}emit(t,n){return c((this._observers.get(t)||e()).values()).forEach(e=>e(...n))}destroy(){this._observers=e()}},p=Math.floor,ne=Math.abs,re=(e,t)=>e<t?e:t,m=(e,t)=>e>t?e:t;Number.isNaN;var ie=e=>e===0?1/e<0:e<0,ae=1<<29,oe=2**53-1,se=-(2**53-1),ce=Number.isInteger||(e=>typeof e==`number`&&isFinite(e)&&p(e)===e);Number.isNaN,Number.parseInt;var le=String.fromCharCode;String.fromCodePoint,le(65535);var ue=e=>e.toLowerCase(),de=/^\s*/g,fe=e=>e.replace(de,``),pe=/([A-Z])/g,me=(e,t)=>fe(e.replace(pe,e=>`${t}${ue(e)}`)),he=e=>{let t=unescape(encodeURIComponent(e)),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.codePointAt(e);return r},ge=typeof TextEncoder<`u`?new TextEncoder:null,_e=ge?e=>ge.encode(e):he,ve=typeof TextDecoder>`u`?null:new TextDecoder(`utf-8`,{fatal:!0,ignoreBOM:!0});ve&&ve.decode(new Uint8Array).length===1&&(ve=null);var ye=(e,t)=>d(t,()=>e).join(``),be=class{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}},h=()=>new be,xe=e=>{let t=h();return e(t),g(t)},Se=e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t},g=e=>{let t=new Uint8Array(Se(e)),n=0;for(let r=0;r<e.bufs.length;r++){let i=e.bufs[r];t.set(i,n),n+=i.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},Ce=(e,t)=>{let n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(m(n,t)*2),e.cpos=0)},_=(e,t)=>{let n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(n*2),e.cpos=0),e.cbuf[e.cpos++]=t},we=_,v=(e,t)=>{for(;t>127;)_(e,128|127&t),t=p(t/128);_(e,127&t)},Te=(e,t)=>{let n=ie(t);for(n&&(t=-t),_(e,(t>63?128:0)|(n?64:0)|63&t),t=p(t/64);t>0;)_(e,(t>127?128:0)|127&t),t=p(t/128)},Ee=new Uint8Array(3e4),De=Ee.length/3,y=ge&&ge.encodeInto?(e,t)=>{if(t.length<De){let n=ge.encodeInto(t,Ee).written||0;v(e,n);for(let t=0;t<n;t++)_(e,Ee[t])}else b(e,_e(t))}:(e,t)=>{let n=unescape(encodeURIComponent(t)),r=n.length;v(e,r);for(let t=0;t<r;t++)_(e,n.codePointAt(t))},Oe=(e,t)=>{let n=e.cbuf.length,r=e.cpos,i=re(n-r,t.length),a=t.length-i;e.cbuf.set(t.subarray(0,i),r),e.cpos+=i,a>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(m(n*2,a)),e.cbuf.set(t.subarray(i)),e.cpos=a)},b=(e,t)=>{v(e,t.byteLength),Oe(e,t)},ke=(e,t)=>{Ce(e,t);let n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},Ae=(e,t)=>ke(e,4).setFloat32(0,t,!1),je=(e,t)=>ke(e,8).setFloat64(0,t,!1),Me=(e,t)=>ke(e,8).setBigInt64(0,t,!1),Ne=new DataView(new ArrayBuffer(4)),Pe=e=>(Ne.setFloat32(0,e),Ne.getFloat32(0)===e),Fe=(e,t)=>{switch(typeof t){case`string`:_(e,119),y(e,t);break;case`number`:ce(t)&&ne(t)<=2147483647?(_(e,125),Te(e,t)):Pe(t)?(_(e,124),Ae(e,t)):(_(e,123),je(e,t));break;case`bigint`:_(e,122),Me(e,t);break;case`object`:if(t===null)_(e,126);else if(f(t)){_(e,117),v(e,t.length);for(let n=0;n<t.length;n++)Fe(e,t[n])}else if(t instanceof Uint8Array)_(e,116),b(e,t);else{_(e,118);let n=Object.keys(t);v(e,n.length);for(let r=0;r<n.length;r++){let i=n[r];y(e,i),Fe(e,t[i])}}break;case`boolean`:_(e,t?120:121);break;default:_(e,127)}},Ie=class extends be{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&v(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}},Le=e=>{e.count>0&&(Te(e.encoder,e.count===1?e.s:-e.s),e.count>1&&v(e.encoder,e.count-2))},Re=class{constructor(){this.encoder=new be,this.s=0,this.count=0}write(e){this.s===e?this.count++:(Le(this),this.count=1,this.s=e)}toUint8Array(){return Le(this),g(this.encoder)}},ze=e=>{if(e.count>0){let t=e.diff*2+(e.count===1?0:1);Te(e.encoder,t),e.count>1&&v(e.encoder,e.count-2)}},Be=class{constructor(){this.encoder=new be,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(ze(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return ze(this),g(this.encoder)}},Ve=class{constructor(){this.sarr=[],this.s=``,this.lensE=new Re}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=``),this.lensE.write(e.length)}toUint8Array(){let e=new be;return this.sarr.push(this.s),this.s=``,y(e,this.sarr.join(``)),Oe(e,this.lensE.toUint8Array()),g(e)}},x=e=>Error(e),S=()=>{throw x(`Method unimplemented`)},C=()=>{throw x(`Unexpected case`)},He=x(`Unexpected end of array`),Ue=x(`Integer out of Range`),We=class{constructor(e){this.arr=e,this.pos=0}},w=e=>new We(e),Ge=e=>e.pos!==e.arr.length,Ke=(e,t)=>{let n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n},T=e=>Ke(e,E(e)),qe=e=>e.arr[e.pos++],E=e=>{let t=0,n=1,r=e.arr.length;for(;e.pos<r;){let r=e.arr[e.pos++];if(t+=(r&127)*n,n*=128,r<128)return t;if(t>oe)throw Ue}throw He},Je=e=>{let t=e.arr[e.pos++],n=t&63,r=64,i=(t&64)>0?-1:1;if(!(t&128))return i*n;let a=e.arr.length;for(;e.pos<a;){if(t=e.arr[e.pos++],n+=(t&127)*r,r*=128,t<128)return i*n;if(n>oe)throw Ue}throw He},D=ve?e=>ve.decode(T(e)):e=>{let t=E(e);if(t===0)return``;{let n=String.fromCodePoint(qe(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(qe(e));else for(;t>0;){let r=t<1e4?t:1e4,i=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,i),t-=r}return decodeURIComponent(escape(n))}},Ye=e=>{let t=e.pos,n=D(e);return e.pos=t,n},Xe=(e,t)=>{let n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},Ze=[e=>void 0,e=>null,Je,e=>Xe(e,4).getFloat32(0,!1),e=>Xe(e,8).getFloat64(0,!1),e=>Xe(e,8).getBigInt64(0,!1),e=>!1,e=>!0,D,e=>{let t=E(e),n={};for(let r=0;r<t;r++){let t=D(e);n[t]=Qe(e)}return n},e=>{let t=E(e),n=[];for(let r=0;r<t;r++)n.push(Qe(e));return n},T],Qe=e=>Ze[127-qe(e)](e),$e=class extends We{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return this.count===0&&(this.s=this.reader(this),this.count=Ge(this)?E(this)+1:-1),this.count--,this.s}},et=class extends We{constructor(e){super(e),this.s=0,this.count=0}read(){if(this.count===0){this.s=Je(this);let e=ie(this.s);this.count=1,e&&(this.s=-this.s,this.count=E(this)+2)}return this.count--,this.s}},tt=class extends We{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(this.count===0){let e=Je(this),t=e&1;this.diff=p(e/2),this.count=1,t&&(this.count=E(this)+2)}return this.s+=this.diff,this.count--,this.s}},nt=class{constructor(e){this.decoder=new et(e),this.str=D(this.decoder),this.spos=0}read(){let e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}};crypto.subtle;var rt=crypto.getRandomValues.bind(crypto),it=Math.random,at=()=>rt(new Uint32Array(1))[0],ot=e=>e[p(it()*e.length)],st=`10000000-1000-4000-8000-100000000000`,ct=()=>st.replace(/[018]/g,e=>(e^at()&15>>e/4).toString(16)),O=Date.now,lt=e=>new Promise(e);Promise.all.bind(Promise);var ut=e=>e===void 0?null:e,dt=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}};try{typeof localStorage<`u`&&localStorage&&(dt=localStorage)}catch{}var ft=dt,pt=Symbol(`Equality`),mt=(e,t)=>e===t||!!e?.[pt]?.(t)||!1,ht=e=>typeof e==`object`,gt=Object.assign,_t=Object.keys,vt=(e,t)=>{for(let n in e)t(e[n],n)},yt=e=>_t(e).length,bt=e=>{for(let t in e)return!1;return!0},xt=(e,t)=>{for(let n in e)if(!t(e[n],n))return!1;return!0},St=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Ct=(e,t)=>e===t||yt(e)===yt(t)&&xt(e,(e,n)=>(e!==void 0||St(t,n))&&mt(t[n],e)),wt=Object.freeze,Tt=e=>{for(let t in e){let n=e[t];(typeof n==`object`||typeof n==`function`)&&Tt(e[t])}return wt(e)},Et=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&Et(e,t,n+1)}},Dt=e=>e,Ot=(e,t)=>{if(e===t)return!0;if(e==null||t==null||e.constructor!==t.constructor&&(e.constructor||Object)!==(t.constructor||Object))return!1;if(e[pt]!=null)return e[pt](t);switch(e.constructor){case ArrayBuffer:e=new Uint8Array(e),t=new Uint8Array(t);case Uint8Array:if(e.byteLength!==t.byteLength)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;break;case Set:if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;break;case Map:if(e.size!==t.size)return!1;for(let n of e.keys())if(!t.has(n)||!Ot(e.get(n),t.get(n)))return!1;break;case void 0:case Object:if(yt(e)!==yt(t))return!1;for(let n in e)if(!St(e,n)||!Ot(e[n],t[n]))return!1;break;case Array:if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!Ot(e[n],t[n]))return!1;break;default:return!1}return!0},kt=(e,t)=>t.includes(e),At=typeof process<`u`&&process.release&&/node|io\.js/.test(process.release.name)&&Object.prototype.toString.call(typeof process<`u`?process:0)===`[object process]`,jt=typeof window<`u`&&typeof document<`u`&&!At;typeof navigator<`u`&&/Mac/.test(navigator.platform);var k,Mt=[],Nt=()=>{if(k===void 0){if(At){k=e();let t=process.argv,n=null;for(let e=0;e<t.length;e++){let r=t[e];r[0]===`-`?(n!==null&&k.set(n,``),n=r):n===null?Mt.push(r):(k.set(n,r),n=null)}n!==null&&k.set(n,``)}else typeof location==`object`?(k=e(),(location.search||`?`).slice(1).split(`&`).forEach(e=>{if(e.length!==0){let[t,n]=e.split(`=`);k.set(`--${me(t,`-`)}`,n),k.set(`-${me(t,`-`)}`,n)}})):k=e()}return k},Pt=e=>Nt().has(e),Ft=e=>ut(At?{}[e.toUpperCase().replaceAll(`-`,`_`)]:ft.getItem(e)),It=e=>Pt(`--`+e)||Ft(e)!==null,Lt=It(`production`),Rt=At&&kt({}.FORCE_COLOR,[`true`,`1`,`2`])||!Pt(`--no-colors`)&&!It(`no-color`)&&(!At||process.stdout.isTTY)&&(!At||Pt(`--color`)||Ft(`COLORTERM`)!==null||(Ft(`TERM`)||``).includes(`color`)),zt=e=>new Uint8Array(e),Bt=jt?e=>{let t=``;for(let n=0;n<e.byteLength;n++)t+=le(e[n]);return btoa(t)}:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString(`base64`),Vt=e=>{let t=zt(e.byteLength);return t.set(e),t},Ht=e=>xe(t=>Fe(t,e)),Ut=class{constructor(e,t){this.left=e,this.right=t}},A=(e,t)=>new Ut(e,t),Wt=e=>e.next()>=.5,Gt=(e,t,n)=>p(e.next()*(n+1-t)+t),Kt=(e,t,n)=>p(e.next()*(n+1-t)+t),qt=(e,t,n)=>Kt(e,t,n),Jt=e=>le(qt(e,97,122)),Yt=(e,t=0,n=20)=>{let r=qt(e,t,n),i=``;for(let t=0;t<r;t++)i+=Jt(e);return i},Xt=(e,t)=>t[qt(e,0,t.length-1)],Zt=Symbol(`0schema`),Qt=class{constructor(){this._rerrs=[]}extend(e,t,n,r=null){this._rerrs.push({path:e,expected:t,has:n,message:r})}toString(){let e=[];for(let t=this._rerrs.length-1;t>0;t--){let n=this._rerrs[t];e.push(ye(` `,(this._rerrs.length-t)*2)+`${n.path==null?``:`[${n.path}] `}${n.has} doesn't match ${n.expected}. ${n.message}`)}return e.join(`
2
- `)}},$t=(e,t)=>e===t?!0:e==null||t==null||e.constructor!==t.constructor?!1:e[pt]?mt(e,t):f(e)?l(e,e=>u(t,t=>$t(e,t))):ht(e)?xt(e,(e,n)=>$t(e,t[n])):!1,j=class{static _dilutes=!1;extends(e){let[t,n]=[this.shape,e.shape];return this.constructor._dilutes&&([n,t]=[t,n]),$t(t,n)}equals(e){return this.constructor===e.constructor&&Ot(this.shape,e.shape)}[Zt](){return!0}[pt](e){return this.equals(e)}validate(e){return this.check(e)}check(e,t){S()}get nullable(){return jn(this,Kn)}get optional(){return new ln(this)}cast(e){return Xn(e,this),e}expect(e){return Xn(e,this),e}},en=class extends j{constructor(e,t){super(),this.shape=e,this._c=t}check(e,t=void 0){let n=e?.constructor===this.shape&&(this._c==null||this._c(e));return!n&&t?.extend(null,this.shape.name,e?.constructor.name,e?.constructor===this.shape?`Check failed`:`Constructor match failed`),n}},M=(e,t=null)=>new en(e,t);M(en);var tn=class extends j{constructor(e){super(),this.shape=e}check(e,t){let n=this.shape(e);return!n&&t?.extend(null,`custom prop`,e?.constructor.name,`failed to check custom prop`),n}},N=e=>new tn(e);M(tn);var nn=class extends j{constructor(e){super(),this.shape=e}check(e,t){let n=this.shape.some(t=>t===e);return!n&&t?.extend(null,this.shape.join(` | `),e.toString()),n}},rn=(...e)=>new nn(e),an=M(nn),on=RegExp.escape||(e=>e.replace(/[().|&,$^[\]]/g,e=>`\\`+e)),sn=e=>{if(Vn.check(e))return[on(e)];if(an.check(e))return e.shape.map(e=>e+``);if(Bn.check(e))return[`[+-]?\\d+.?\\d*`];if(Hn.check(e))return[`.*`];if(Mn.check(e))return e.shape.map(sn).flat(1);C()};M(class extends j{constructor(e){super(),this.shape=e,this._r=RegExp(`^`+e.map(sn).map(e=>`(${e.join(`|`)})`).join(``)+`$`)}check(e,t){let n=this._r.exec(e)!=null;return!n&&t?.extend(null,this._r.toString(),e.toString(),`String doesn't match string template.`),n}});var cn=Symbol(`optional`),ln=class extends j{constructor(e){super(),this.shape=e}check(e,t){let n=e===void 0||this.shape.check(e);return!n&&t?.extend(null,`undefined (optional)`,`()`),n}get[cn](){return!0}},un=M(ln),dn=class extends j{check(e,t){return t?.extend(null,`never`,typeof e),!1}};new dn,M(dn);var fn=class e extends j{constructor(e,t=!1){super(),this.shape=e,this._isPartial=t}static _dilutes=!0;get partial(){return new e(this.shape,!0)}check(e,t){return e==null?(t?.extend(null,`object`,`null`),!1):xt(this.shape,(n,r)=>{let i=this._isPartial&&!St(e,r)||n.check(e[r],t);return!i&&t?.extend(r.toString(),n.toString(),typeof e[r],`Object property does not match`),i})}},pn=e=>new fn(e),mn=M(fn),hn=N(e=>e!=null&&(e.constructor===Object||e.constructor==null)),gn=class extends j{constructor(e,t){super(),this.shape={keys:e,values:t}}check(e,t){return e!=null&&xt(e,(n,r)=>{let i=this.shape.keys.check(r,t);return!i&&t?.extend(r+``,`Record`,typeof e,i?`Key doesn't match schema`:`Value doesn't match value`),i&&this.shape.values.check(n,t)})}},_n=(e,t)=>new gn(e,t),vn=M(gn),yn=class extends j{constructor(e){super(),this.shape=e}check(e,t){return e!=null&&xt(this.shape,(n,r)=>{let i=n.check(e[r],t);return!i&&t?.extend(r.toString(),`Tuple`,typeof n),i})}},bn=(...e)=>new yn(e);M(yn);var xn=class extends j{constructor(e){super(),this.shape=e.length===1?e[0]:new An(e)}check(e,t){let n=f(e)&&l(e,e=>this.shape.check(e));return!n&&t?.extend(null,`Array`,``),n}},Sn=(...e)=>new xn(e),Cn=M(xn),wn=N(e=>f(e)),Tn=class extends j{constructor(e,t){super(),this.shape=e,this._c=t}check(e,t){let n=e instanceof this.shape&&(this._c==null||this._c(e));return!n&&t?.extend(null,this.shape.name,e?.constructor.name),n}},En=(e,t=null)=>new Tn(e,t);M(Tn);var Dn=En(j),On=M(class extends j{constructor(e){super(),this.len=e.length-1,this.args=bn(...e.slice(-1)),this.res=e[this.len]}check(e,t){let n=e.constructor===Function&&e.length<=this.len;return!n&&t?.extend(null,`function`,typeof e),n}}),kn=N(e=>typeof e==`function`);M(class extends j{constructor(e){super(),this.shape=e}check(e,t){let n=l(this.shape,n=>n.check(e,t));return!n&&t?.extend(null,`Intersectinon`,typeof e),n}},e=>e.shape.length>0);var An=class extends j{static _dilutes=!0;constructor(e){super(),this.shape=e}check(e,t){let n=u(this.shape,n=>n.check(e,t));return t?.extend(null,`Union`,typeof e),n}},jn=(...e)=>e.findIndex(e=>Mn.check(e))>=0?jn(...e.map(e=>Yn(e)).map(e=>Mn.check(e)?e.shape:[e]).flat(1)):e.length===1?e[0]:new An(e),Mn=M(An),Nn=()=>!0,Pn=N(Nn),Fn=M(tn,e=>e.shape===Nn),In=N(e=>typeof e==`bigint`),Ln=N(e=>e===In),Rn=N(e=>typeof e==`symbol`);N(e=>e===Rn);var zn=N(e=>typeof e==`number`),Bn=N(e=>e===zn),Vn=N(e=>typeof e==`string`),Hn=N(e=>e===Vn),Un=N(e=>typeof e==`boolean`),Wn=N(e=>e===Un),Gn=rn(void 0);M(nn,e=>e.shape.length===1&&e.shape[0]===void 0),rn(void 0);var Kn=rn(null),qn=M(nn,e=>e.shape.length===1&&e.shape[0]===null);M(Uint8Array),M(en,e=>e.shape===Uint8Array);var Jn=jn(zn,Vn,Kn,Gn,In,Un,Rn);(()=>{let e=Sn(Pn),t=_n(Vn,Pn),n=jn(zn,Vn,Kn,Un,e,t);return e.shape=n,t.shape.values=n,n})();var Yn=e=>{if(Dn.check(e))return e;if(hn.check(e)){let t={};for(let n in e)t[n]=Yn(e[n]);return pn(t)}if(wn.check(e))return jn(...e.map(Yn));if(Jn.check(e))return rn(e);if(kn.check(e))return M(e);C()},Xn=Lt?()=>{}:(e,t)=>{let n=new Qt;if(!t.check(e,n))throw x(`Expected value to be of type ${t.constructor.name}.\n${n.toString()}`)},Zn=class{constructor(e){this.patterns=[],this.$state=e}if(e,t){return this.patterns.push({if:Yn(e),h:t}),this}else(e){return this.if(Pn,e)}done(){return(e,t)=>{for(let n=0;n<this.patterns.length;n++){let r=this.patterns[n];if(r.if.check(e))return r.h(e,t)}throw x(`Unhandled pattern`)}}},Qn=(e=>new Zn(e))(Pn).if(Bn,(e,t)=>Gt(t,se,oe)).if(Hn,(e,t)=>Yt(t)).if(Wn,(e,t)=>Wt(t)).if(Ln,(e,t)=>BigInt(Gt(t,se,oe))).if(Mn,(e,t)=>$n(t,Xt(t,e.shape))).if(mn,(e,t)=>{let n={};for(let r in e.shape){let i=e.shape[r];if(un.check(i)){if(Wt(t))continue;i=i.shape}n[r]=Qn(i,t)}return n}).if(Cn,(e,t)=>{let n=[],r=Kt(t,0,42);for(let i=0;i<r;i++)n.push($n(t,e.shape));return n}).if(an,(e,t)=>Xt(t,e.shape)).if(qn,(e,t)=>null).if(On,(e,t)=>{let n=$n(t,e.res);return()=>n}).if(Fn,(e,t)=>$n(t,Xt(t,[zn,Vn,Kn,Gn,In,Un,Sn(zn),_n(jn(`a`,`b`,`c`),zn)]))).if(vn,(e,t)=>{let n={},r=Gt(t,0,3);for(let i=0;i<r;i++){let r=$n(t,e.shape.keys);n[r]=$n(t,e.shape.values)}return n}).done(),$n=(e,t)=>Qn(Yn(t),e),P=typeof document<`u`?document:{};N(e=>e.nodeType===ir),typeof DOMParser<`u`&&new DOMParser,N(e=>e.nodeType===tr),N(e=>e.nodeType===nr);var er=e=>r(e,(e,t)=>`${t}:${e};`).join(``),tr=P.ELEMENT_NODE,nr=P.TEXT_NODE;P.CDATA_SECTION_NODE,P.COMMENT_NODE;var rr=P.DOCUMENT_NODE;P.DOCUMENT_TYPE_NODE;var ir=P.DOCUMENT_FRAGMENT_NODE;N(e=>e.nodeType===rr);var ar=(e=>class{constructor(e){this._=e}destroy(){e(this._)}})(clearTimeout),or=(e,t)=>new ar(setTimeout(t,e)),F=Symbol,sr=F(),cr=F(),lr=F(),ur=F(),dr=F(),fr=F(),pr=F(),mr=F(),hr=F(),gr=e=>{e.length===1&&e[0]?.constructor===Function&&(e=e[0]());let t=[],n=[],r=0;for(;r<e.length;r++){let n=e[r];if(n===void 0)break;if(n.constructor===String||n.constructor===Number)t.push(n);else if(n.constructor===Object)break}for(r>0&&n.push(t.join(``));r<e.length;r++){let t=e[r];t instanceof Symbol||n.push(t)}return n};O();var _r={[sr]:A(`font-weight`,`bold`),[cr]:A(`font-weight`,`normal`),[lr]:A(`color`,`blue`),[dr]:A(`color`,`green`),[ur]:A(`color`,`grey`),[fr]:A(`color`,`red`),[pr]:A(`color`,`purple`),[mr]:A(`color`,`orange`),[hr]:A(`color`,`black`)},vr=Rt?t=>{t.length===1&&t[0]?.constructor===Function&&(t=t[0]());let n=[],r=[],i=e(),a=[],o=0;for(;o<t.length;o++){let e=t[o],a=_r[e];if(a!==void 0)i.set(a.left,a.right);else{if(e===void 0)break;if(e.constructor===String||e.constructor===Number){let t=er(i);o>0||t.length>0?(n.push(`%c`+e),r.push(t)):n.push(e)}else break}}for(o>0&&(a=r,a.unshift(n.join(``)));o<t.length;o++){let e=t[o];e instanceof Symbol||a.push(e)}return a}:gr,yr=(...e)=>{console.log(...vr(e)),xr.forEach(t=>t.print(e))},br=(...e)=>{console.warn(...vr(e)),e.unshift(mr),xr.forEach(t=>t.print(e))},xr=a(),Sr=e=>({[Symbol.iterator](){return this},next:e}),Cr=(e,t)=>Sr(()=>{let n;do n=e.next();while(!n.done&&!t(n.value));return n}),wr=(e,t)=>Sr(()=>{let{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}}),Tr=class{constructor(e,t){this.clock=e,this.len=t}},Er=class{constructor(){this.clients=new Map}},Dr=(e,t,n)=>t.clients.forEach((t,r)=>{let i=e.doc.store.clients.get(r);if(i!=null){let r=i[i.length-1],a=r.id.clock+r.length;for(let r=0,o=t[r];r<t.length&&o.clock<a;o=t[++r])Vi(e,i,o.clock,o.len,n)}}),Or=(e,t)=>{let n=0,r=e.length-1;for(;n<=r;){let i=p((n+r)/2),a=e[i],o=a.clock;if(o<=t){if(t<o+a.len)return i;n=i+1}else r=i-1}return null},kr=(e,t)=>{let n=e.clients.get(t.client);return n!==void 0&&Or(n,t.clock)!==null},Ar=e=>{e.clients.forEach(e=>{e.sort((e,t)=>e.clock-t.clock);let t,n;for(t=1,n=1;t<e.length;t++){let r=e[n-1],i=e[t];r.clock+r.len>=i.clock?e[n-1]=new Tr(r.clock,m(r.len,i.clock+i.len-r.clock)):(n<t&&(e[n]=i),n++)}e.length=n})},jr=e=>{let t=new Er;for(let n=0;n<e.length;n++)e[n].clients.forEach((r,i)=>{if(!t.clients.has(i)){let a=r.slice();for(let t=n+1;t<e.length;t++)s(a,e[t].clients.get(i)||[]);t.clients.set(i,a)}});return Ar(t),t},Mr=(e,t,r,i)=>{n(e.clients,t,()=>[]).push(new Tr(r,i))},Nr=()=>new Er,Pr=e=>{let t=Nr();return e.clients.forEach((e,n)=>{let r=[];for(let t=0;t<e.length;t++){let n=e[t];if(n.deleted){let i=n.id.clock,a=n.length;if(t+1<e.length)for(let n=e[t+1];t+1<e.length&&n.deleted;n=e[++t+1])a+=n.length;r.push(new Tr(i,a))}}r.length>0&&t.clients.set(n,r)}),t},Fr=(e,t)=>{v(e.restEncoder,t.clients.size),c(t.clients.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{e.resetDsCurVal(),v(e.restEncoder,t);let r=n.length;v(e.restEncoder,r);for(let t=0;t<r;t++){let r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}})},Ir=e=>{let t=new Er,r=E(e.restDecoder);for(let i=0;i<r;i++){e.resetDsCurVal();let r=E(e.restDecoder),i=E(e.restDecoder);if(i>0){let a=n(t.clients,r,()=>[]);for(let t=0;t<i;t++)a.push(new Tr(e.readDsClock(),e.readDsLen()))}}return t},Lr=(e,t,n)=>{let r=new Er,i=E(e.restDecoder);for(let a=0;a<i;a++){e.resetDsCurVal();let i=E(e.restDecoder),a=E(e.restDecoder),o=n.clients.get(i)||[],s=L(n,i);for(let n=0;n<a;n++){let n=e.readDsClock(),a=n+e.readDsLen();if(n<s){s<a&&Mr(r,i,s,a-s);let e=R(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,Xo(t,c,n-c.id.clock)),e++);e<o.length&&(c=o[e++],c.id.clock<a);)c.deleted||(a<c.id.clock+c.length&&o.splice(e,0,Xo(t,c,a-c.id.clock)),c.delete(t))}else Mr(r,i,n,a-n)}}if(r.clients.size>0){let e=new qr;return v(e.restEncoder,0),Fr(e,r),e.toUint8Array()}return null},Rr=at,zr=class e extends ee{constructor({guid:e=ct(),collectionid:t=null,gc:n=!0,gcFilter:r=()=>!0,meta:i=null,autoLoad:a=!1,shouldLoad:o=!0}={}){super(),this.gc=n,this.gcFilter=r,this.clientID=Rr(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new Pi,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=a,this.meta=i,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=lt(e=>{this.on(`load`,()=>{this.isLoaded=!0,e(this)})});let s=()=>lt(e=>{let t=n=>{(n===void 0||n===!0)&&(this.off(`sync`,t),e())};this.on(`sync`,t)});this.on(`sync`,e=>{e===!1&&this.isSynced&&(this.whenSynced=s()),this.isSynced=e===void 0||e===!0,this.isSynced&&!this.isLoaded&&this.emit(`load`,[this])}),this.whenSynced=s()}load(){let e=this._item;e!==null&&!this.shouldLoad&&B(e.parent.doc,e=>{e.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(c(this.subdocs).map(e=>e.guid))}transact(e,t=null){return B(this,e,t)}get(e,t=U){let r=n(this.share,e,()=>{let e=new t;return e._integrate(this,null),e}),i=r.constructor;if(t!==U&&i!==t){if(i===U){let n=new t;n._map=r._map,r._map.forEach(e=>{for(;e!==null;e=e.left)e.parent=n}),n._start=r._start;for(let e=n._start;e!==null;e=e.right)e.parent=n;return n._length=r._length,this.share.set(e,n),n._integrate(this,null),n}throw Error(`Type with the name ${e} has already been defined with a different constructor`)}return r}getArray(e=``){return this.get(e,Ha)}getText(e=``){return this.get(e,co)}getMap(e=``){return this.get(e,Ga)}getXmlElement(e=``){return this.get(e,mo)}getXmlFragment(e=``){return this.get(e,fo)}toJSON(){let e={};return this.share.forEach((t,n)=>{e[n]=t.toJSON()}),e}destroy(){this.isDestroyed=!0,c(this.subdocs).forEach(e=>e.destroy());let t=this._item;if(t!==null){this._item=null;let n=t.content;n.doc=new e({guid:this.guid,...n.opts,shouldLoad:!1}),n.doc._item=t,B(t.parent.doc,e=>{let r=n.doc;t.deleted||e.subdocsAdded.add(r),e.subdocsRemoved.add(this)},null,!0)}this.emit(`destroyed`,[!0]),this.emit(`destroy`,[this]),super.destroy()}},Br=class{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return E(this.restDecoder)}readDsLen(){return E(this.restDecoder)}},Vr=class extends Br{readLeftID(){return I(E(this.restDecoder),E(this.restDecoder))}readRightID(){return I(E(this.restDecoder),E(this.restDecoder))}readClient(){return E(this.restDecoder)}readInfo(){return qe(this.restDecoder)}readString(){return D(this.restDecoder)}readParentInfo(){return E(this.restDecoder)===1}readTypeRef(){return E(this.restDecoder)}readLen(){return E(this.restDecoder)}readAny(){return Qe(this.restDecoder)}readBuf(){return Vt(T(this.restDecoder))}readJSON(){return JSON.parse(D(this.restDecoder))}readKey(){return D(this.restDecoder)}},Hr=class{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=E(this.restDecoder),this.dsCurrVal}readDsLen(){let e=E(this.restDecoder)+1;return this.dsCurrVal+=e,e}},Ur=class extends Hr{constructor(e){super(e),this.keys=[],E(e),this.keyClockDecoder=new tt(T(e)),this.clientDecoder=new et(T(e)),this.leftClockDecoder=new tt(T(e)),this.rightClockDecoder=new tt(T(e)),this.infoDecoder=new $e(T(e),qe),this.stringDecoder=new nt(T(e)),this.parentInfoDecoder=new $e(T(e),qe),this.typeRefDecoder=new et(T(e)),this.lenDecoder=new et(T(e))}readLeftID(){return new gi(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new gi(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return this.parentInfoDecoder.read()===1}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return Qe(this.restDecoder)}readBuf(){return T(this.restDecoder)}readJSON(){return Qe(this.restDecoder)}readKey(){let e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{let e=this.stringDecoder.read();return this.keys.push(e),e}}},Wr=class{constructor(){this.restEncoder=h()}toUint8Array(){return g(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){v(this.restEncoder,e)}writeDsLen(e){v(this.restEncoder,e)}},Gr=class extends Wr{writeLeftID(e){v(this.restEncoder,e.client),v(this.restEncoder,e.clock)}writeRightID(e){v(this.restEncoder,e.client),v(this.restEncoder,e.clock)}writeClient(e){v(this.restEncoder,e)}writeInfo(e){we(this.restEncoder,e)}writeString(e){y(this.restEncoder,e)}writeParentInfo(e){v(this.restEncoder,+!!e)}writeTypeRef(e){v(this.restEncoder,e)}writeLen(e){v(this.restEncoder,e)}writeAny(e){Fe(this.restEncoder,e)}writeBuf(e){b(this.restEncoder,e)}writeJSON(e){y(this.restEncoder,JSON.stringify(e))}writeKey(e){y(this.restEncoder,e)}},Kr=class{constructor(){this.restEncoder=h(),this.dsCurrVal=0}toUint8Array(){return g(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){let t=e-this.dsCurrVal;this.dsCurrVal=e,v(this.restEncoder,t)}writeDsLen(e){e===0&&C(),v(this.restEncoder,e-1),this.dsCurrVal+=e}},qr=class extends Kr{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new Be,this.clientEncoder=new Re,this.leftClockEncoder=new Be,this.rightClockEncoder=new Be,this.infoEncoder=new Ie(we),this.stringEncoder=new Ve,this.parentInfoEncoder=new Ie(we),this.typeRefEncoder=new Re,this.lenEncoder=new Re}toUint8Array(){let e=h();return v(e,0),b(e,this.keyClockEncoder.toUint8Array()),b(e,this.clientEncoder.toUint8Array()),b(e,this.leftClockEncoder.toUint8Array()),b(e,this.rightClockEncoder.toUint8Array()),b(e,g(this.infoEncoder)),b(e,this.stringEncoder.toUint8Array()),b(e,g(this.parentInfoEncoder)),b(e,this.typeRefEncoder.toUint8Array()),b(e,this.lenEncoder.toUint8Array()),Oe(e,g(this.restEncoder)),g(e)}writeLeftID(e){this.clientEncoder.write(e.client),this.leftClockEncoder.write(e.clock)}writeRightID(e){this.clientEncoder.write(e.client),this.rightClockEncoder.write(e.clock)}writeClient(e){this.clientEncoder.write(e)}writeInfo(e){this.infoEncoder.write(e)}writeString(e){this.stringEncoder.write(e)}writeParentInfo(e){this.parentInfoEncoder.write(+!!e)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){Fe(this.restEncoder,e)}writeBuf(e){b(this.restEncoder,e)}writeJSON(e){Fe(this.restEncoder,e)}writeKey(e){let t=this.keyMap.get(e);t===void 0?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}},Jr=(e,t,n,r)=>{r=m(r,t[0].id.clock);let i=R(t,r);v(e.restEncoder,t.length-i),e.writeClient(n),v(e.restEncoder,r);let a=t[i];a.write(e,r-a.id.clock);for(let n=i+1;n<t.length;n++)t[n].write(e,0)},Yr=(e,t,n)=>{let r=new Map;n.forEach((e,n)=>{L(t,n)>e&&r.set(n,e)}),Fi(t).forEach((e,t)=>{n.has(t)||r.set(t,0)}),v(e.restEncoder,r.size),c(r.entries()).sort((e,t)=>t[0]-e[0]).forEach(([n,r])=>{Jr(e,t.clients.get(n),n,r)})},Xr=(t,n)=>{let r=e(),i=E(t.restDecoder);for(let e=0;e<i;e++){let e=E(t.restDecoder),i=Array(e),a=t.readClient(),o=E(t.restDecoder);r.set(a,{i:0,refs:i});for(let r=0;r<e;r++){let e=t.readInfo();switch(31&e){case 0:{let e=t.readLen();i[r]=new G(I(a,o),e),o+=e;break}case 10:{let e=E(t.restDecoder);i[r]=new X(I(a,o),e),o+=e;break}default:{let s=!(e&192),c=new Y(I(a,o),null,(e&128)==128?t.readLeftID():null,null,(e&64)==64?t.readRightID():null,s?t.readParentInfo()?n.get(t.readString()):t.readLeftID():null,s&&(e&32)==32?t.readString():null,$o(t,e));i[r]=c,o+=c.length}}}}return r},Zr=(e,t,r)=>{let i=[],a=c(r.keys()).sort((e,t)=>e-t);if(a.length===0)return null;let o=()=>{if(a.length===0)return null;let e=r.get(a[a.length-1]);for(;e.refs.length===e.i;)if(a.pop(),a.length>0)e=r.get(a[a.length-1]);else return null;return e},s=o();if(s===null)return null;let l=new Pi,u=new Map,d=(e,t)=>{let n=u.get(e);(n==null||n>t)&&u.set(e,t)},f=s.refs[s.i++],ee=new Map,te=()=>{for(let e of i){let t=e.id.client,n=r.get(t);n?(n.i--,l.clients.set(t,n.refs.slice(n.i)),r.delete(t),n.i=0,n.refs=[]):l.clients.set(t,[e]),a=a.filter(e=>e!==t)}i.length=0};for(;;){if(f.constructor!==X){let a=n(ee,f.id.client,()=>L(t,f.id.client))-f.id.clock;if(a<0)i.push(f),d(f.id.client,f.id.clock-1),te();else{let n=f.getMissing(e,t);if(n!==null){i.push(f);let e=r.get(n)||{refs:[],i:0};if(e.refs.length===e.i)d(n,L(t,n)),te();else{f=e.refs[e.i++];continue}}else(a===0||a<f.length)&&(f.integrate(e,a),ee.set(f.id.client,f.id.clock+f.length))}}if(i.length>0)f=i.pop();else if(s!==null&&s.i<s.refs.length)f=s.refs[s.i++];else{if(s=o(),s===null)break;f=s.refs[s.i++]}}if(l.clients.size>0){let e=new qr;return Yr(e,l,new Map),v(e.restEncoder,0),{missing:u,update:e.toUint8Array()}}return null},Qr=(e,t)=>Yr(e,t.doc.store,t.beforeState),$r=(e,t,n,r=new Ur(e))=>B(t,e=>{e.local=!1;let t=!1,n=e.doc,i=n.store,a=Zr(e,i,Xr(r,n)),o=i.pendingStructs;if(o){for(let[e,n]of o.missing)if(n<L(i,e)){t=!0;break}if(a){for(let[e,t]of a.missing){let n=o.missing.get(e);(n==null||n>t)&&o.missing.set(e,t)}o.update=ia([o.update,a.update])}}else i.pendingStructs=a;let s=Lr(r,e,i);if(i.pendingDs){let t=new Ur(w(i.pendingDs));E(t.restDecoder);let n=Lr(t,e,i);i.pendingDs=s&&n?ia([s,n]):s||n}else i.pendingDs=s;if(t){let t=i.pendingStructs.update;i.pendingStructs=null,ei(e.doc,t)}},n,!1),ei=(e,t,n,r=Ur)=>{let i=w(t);$r(i,e,n,new r(i))},ti=(e,t,n)=>ei(e,t,n,Vr),ni=(e,t,n=new Map)=>{Yr(e,t.store,n),Fr(e,Pr(t.store))},ri=(e,t=new Uint8Array([0]),n=new qr)=>{ni(n,e,oi(t));let r=[n.toUint8Array()];if(e.store.pendingDs&&r.push(e.store.pendingDs),e.store.pendingStructs&&r.push(aa(e.store.pendingStructs.update,t)),r.length>1){if(n.constructor===Gr)return na(r.map((e,t)=>t===0?e:la(e)));if(n.constructor===qr)return ia(r)}return r[0]},ii=(e,t)=>ri(e,t,new Gr),ai=e=>{let t=new Map,n=E(e.restDecoder);for(let r=0;r<n;r++){let n=E(e.restDecoder),r=E(e.restDecoder);t.set(n,r)}return t},oi=e=>ai(new Br(w(e))),si=(e,t)=>(v(e.restEncoder,t.size),c(t.entries()).sort((e,t)=>t[0]-e[0]).forEach(([t,n])=>{v(e.restEncoder,t),v(e.restEncoder,n)}),e),ci=(e,t)=>si(e,Fi(t.store)),li=(e,t=new Kr)=>(e instanceof Map?si(t,e):ci(t,e),t.toUint8Array()),ui=e=>li(e,new Wr),di=class{constructor(){this.l=[]}},fi=()=>new di,pi=(e,t)=>e.l.push(t),mi=(e,t)=>{let n=e.l,r=n.length;e.l=n.filter(e=>t!==e),r===e.l.length&&console.error(`[yjs] Tried to remove event handler that doesn't exist.`)},hi=(e,t,n)=>Et(e.l,[t,n]),gi=class{constructor(e,t){this.client=e,this.clock=t}},_i=(e,t)=>e===t||e!==null&&t!==null&&e.client===t.client&&e.clock===t.clock,I=(e,t)=>new gi(e,t),vi=e=>{for(let[t,n]of e.doc.share.entries())if(n===e)return t;throw C()},yi=(e,t)=>{for(;t!==null;){if(t.parent===e)return!0;t=t.parent._item}return!1},bi=class{constructor(e,t,n,r=0){this.type=e,this.tname=t,this.item=n,this.assoc=r}},xi=e=>new bi(e.type==null?null:I(e.type.client,e.type.clock),e.tname??null,e.item==null?null:I(e.item.client,e.item.clock),e.assoc==null?0:e.assoc),Si=class{constructor(e,t,n=0){this.type=e,this.index=t,this.assoc=n}},Ci=(e,t,n=0)=>new Si(e,t,n),wi=(e,t,n)=>{let r=null,i=null;return e._item===null?i=vi(e):r=I(e._item.id.client,e._item.id.clock),new bi(r,i,t,n)},Ti=(e,t,n=0)=>{let r=e._start;if(n<0){if(t===0)return wi(e,null,n);t--}for(;r!==null;){if(!r.deleted&&r.countable){if(r.length>t)return wi(e,I(r.id.client,r.id.clock+t),n);t-=r.length}if(r.right===null&&n<0)return wi(e,r.lastId,n);r=r.right}return wi(e,null,n)},Ei=(e,t)=>{let n=Li(e,t);return{item:n,diff:t.clock-n.id.clock}},Di=(e,t,n=!0)=>{let r=t.store,i=e.item,a=e.type,o=e.tname,s=e.assoc,c=null,l=0;if(i!==null){if(L(r,i.client)<=i.clock)return null;let e=n?Jo(r,i):Ei(r,i),t=e.item;if(!(t instanceof Y))return null;if(c=t.parent,c._item===null||!c._item.deleted){l=t.deleted||!t.countable?0:e.diff+(s>=0?0:1);let n=t.left;for(;n!==null;)!n.deleted&&n.countable&&(l+=n.length),n=n.left}}else{if(o!==null)c=t.get(o);else if(a!==null){if(L(r,a.client)<=a.clock)return null;let{item:e}=n?Jo(r,a):{item:Li(r,a)};if(e instanceof Y&&e.content instanceof J)c=e.content.type;else return null}else throw C();l=s>=0?c._length:0}return Ci(c,l,e.assoc)},Oi=(e,t)=>e===t||e!==null&&t!==null&&e.tname===t.tname&&_i(e.item,t.item)&&_i(e.type,t.type)&&e.assoc===t.assoc,ki=class{constructor(e,t){this.ds=e,this.sv=t}},Ai=(e,t)=>new ki(e,t);Ai(Nr(),new Map);var ji=e=>Ai(Pr(e.store),Fi(e.store)),Mi=(e,t)=>t===void 0?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!kr(t.ds,e.id),Ni=(e,t)=>{let r=n(e.meta,Ni,a),i=e.doc.store;r.has(t)||(t.sv.forEach((t,n)=>{t<L(i,n)&&z(e,I(n,t))}),Dr(e,t.ds,e=>{}),r.add(t))},Pi=class{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}},Fi=e=>{let t=new Map;return e.clients.forEach((e,n)=>{let r=e[e.length-1];t.set(n,r.id.clock+r.length)}),t},L=(e,t)=>{let n=e.clients.get(t);if(n===void 0)return 0;let r=n[n.length-1];return r.id.clock+r.length},Ii=(e,t)=>{let n=e.clients.get(t.id.client);if(n===void 0)n=[],e.clients.set(t.id.client,n);else{let e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw C()}n.push(t)},R=(e,t)=>{let n=0,r=e.length-1,i=e[r],a=i.id.clock;if(a===t)return r;let o=p(t/(a+i.length-1)*r);for(;n<=r;){if(i=e[o],a=i.id.clock,a<=t){if(t<a+i.length)return o;n=o+1}else r=o-1;o=p((n+r)/2)}throw C()},Li=(e,t)=>{let n=e.clients.get(t.client);return n[R(n,t.clock)]},Ri=(e,t,n)=>{let r=R(t,n),i=t[r];return i.id.clock<n&&i instanceof Y?(t.splice(r+1,0,Xo(e,i,n-i.id.clock)),r+1):r},z=(e,t)=>{let n=e.doc.store.clients.get(t.client);return n[Ri(e,n,t.clock)]},zi=(e,t,n)=>{let r=t.clients.get(n.client),i=R(r,n.clock),a=r[i];return n.clock!==a.id.clock+a.length-1&&a.constructor!==G&&r.splice(i+1,0,Xo(e,a,n.clock-a.id.clock+1)),a},Bi=(e,t,n)=>{let r=e.clients.get(t.id.client);r[R(r,t.id.clock)]=n},Vi=(e,t,n,r,i)=>{if(r===0)return;let a=n+r,o=Ri(e,t,n),s;do s=t[o++],a<s.id.clock+s.length&&Ri(e,t,a),i(s);while(o<t.length&&t[o].id.clock<a)},Hi=class{constructor(e,t,n){this.doc=e,this.deleteSet=new Er,this.beforeState=Fi(e.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=t,this.meta=new Map,this.local=n,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}},Ui=(e,t)=>t.deleteSet.clients.size===0&&!i(t.afterState,(e,n)=>t.beforeState.get(n)!==e)?!1:(Ar(t.deleteSet),Qr(e,t),Fr(e,t.deleteSet),!0),Wi=(e,t,r)=>{let i=t._item;(i===null||i.id.clock<(e.beforeState.get(i.id.client)||0)&&!i.deleted)&&n(e.changed,t,a).add(r)},Gi=(e,t)=>{let n=e[t],r=e[t-1],i=t;for(;i>0;n=r,r=e[--i-1]){if(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n)){n instanceof Y&&n.parentSub!==null&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);continue}break}let a=t-i;return a&&e.splice(t+1-a,a),a},Ki=(e,t,n)=>{for(let[r,i]of e.clients.entries()){let e=t.clients.get(r);for(let r=i.length-1;r>=0;r--){let a=i[r],o=a.clock+a.len;for(let r=R(e,a.clock),i=e[r];r<e.length&&i.id.clock<o;i=e[++r]){let i=e[r];if(a.clock+a.len<=i.id.clock)break;i instanceof Y&&i.deleted&&!i.keep&&n(i)&&i.gc(t,!1)}}}},qi=(e,t)=>{e.clients.forEach((e,n)=>{let r=t.clients.get(n);for(let t=e.length-1;t>=0;t--){let n=e[t],i=re(r.length-1,1+R(r,n.clock+n.len-1));for(let e=i,t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Gi(r,e)}})},Ji=(e,t)=>{if(t<e.length){let n=e[t],r=n.doc,i=r.store,a=n.deleteSet,o=n._mergeStructs;try{Ar(a),n.afterState=Fi(n.doc.store),r.emit(`beforeObserverCalls`,[n,r]);let e=[];n.changed.forEach((t,r)=>e.push(()=>{(r._item===null||!r._item.deleted)&&r._callObserver(n,t)})),e.push(()=>{n.changedParentTypes.forEach((t,r)=>{r._dEH.l.length>0&&(r._item===null||!r._item.deleted)&&(t=t.filter(e=>e.target._item===null||!e.target._item.deleted),t.forEach(e=>{e.currentTarget=r,e._path=null}),t.sort((e,t)=>e.path.length-t.path.length),e.push(()=>{hi(r._dEH,t,n)}))}),e.push(()=>r.emit(`afterTransaction`,[n,r])),e.push(()=>{n._needFormattingCleanup&&ao(n)})}),Et(e,[])}finally{r.gc&&Ki(a,i,r.gcFilter),qi(a,i),n.afterState.forEach((e,t)=>{let r=n.beforeState.get(t)||0;if(r!==e){let e=i.clients.get(t),n=m(R(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Gi(e,t)}});for(let e=o.length-1;e>=0;e--){let{client:t,clock:n}=o[e].id,r=i.clients.get(t),a=R(r,n);a+1<r.length&&Gi(r,a+1)>1||a>0&&Gi(r,a)}if(!n.local&&n.afterState.get(r.clientID)!==n.beforeState.get(r.clientID)&&(yr(mr,sr,`[yjs] `,cr,fr,`Changed the client-id because another client seems to be using it.`),r.clientID=Rr()),r.emit(`afterTransactionCleanup`,[n,r]),r._observers.has(`update`)){let e=new Gr;Ui(e,n)&&r.emit(`update`,[e.toUint8Array(),n.origin,r,n])}if(r._observers.has(`updateV2`)){let e=new qr;Ui(e,n)&&r.emit(`updateV2`,[e.toUint8Array(),n.origin,r,n])}let{subdocsAdded:s,subdocsLoaded:c,subdocsRemoved:l}=n;(s.size>0||l.size>0||c.size>0)&&(s.forEach(e=>{e.clientID=r.clientID,e.collectionid??=r.collectionid,r.subdocs.add(e)}),l.forEach(e=>r.subdocs.delete(e)),r.emit(`subdocs`,[{loaded:c,added:s,removed:l},r,n]),l.forEach(e=>e.destroy())),e.length<=t+1?(r._transactionCleanups=[],r.emit(`afterAllTransactions`,[r,e])):Ji(e,t+1)}}},B=(e,t,n=null,r=!0)=>{let i=e._transactionCleanups,a=!1,o=null;e._transaction===null&&(a=!0,e._transaction=new Hi(e,n,r),i.push(e._transaction),i.length===1&&e.emit(`beforeAllTransactions`,[e]),e.emit(`beforeTransaction`,[e._transaction,e]));try{o=t(e._transaction)}finally{if(a){let t=e._transaction===i[0];e._transaction=null,t&&Ji(i,0)}}return o},Yi=class{constructor(e,t){this.insertions=t,this.deletions=e,this.meta=new Map}},Xi=(e,t,n)=>{Dr(e,n.deletions,n=>{n instanceof Y&&t.scope.some(t=>t===e.doc||yi(t,n))&&Yo(n,!1)})},Zi=(e,t,n)=>{let r=null,i=e.doc,a=e.scope;B(i,n=>{for(;t.length>0&&e.currStackItem===null;){let r=i.store,o=t.pop(),s=new Set,c=[],l=!1;Dr(n,o.insertions,e=>{if(e instanceof Y){if(e.redone!==null){let{item:t,diff:i}=Jo(r,e.id);i>0&&(t=z(n,I(t.id.client,t.id.clock+i))),e=t}!e.deleted&&a.some(t=>t===n.doc||yi(t,e))&&c.push(e)}}),Dr(n,o.deletions,e=>{e instanceof Y&&a.some(t=>t===n.doc||yi(t,e))&&!kr(o.insertions,e.id)&&s.add(e)}),s.forEach(t=>{l=Qo(n,t,s,o.insertions,e.ignoreRemoteMapChanges,e)!==null||l});for(let t=c.length-1;t>=0;t--){let r=c[t];e.deleteFilter(r)&&(r.delete(n),l=!0)}e.currStackItem=l?o:null}n.changed.forEach((e,t)=>{e.has(null)&&t._searchMarker&&(t._searchMarker.length=0)}),r=n},e);let o=e.currStackItem;if(o!=null){let t=r.changedParentTypes;e.emit(`stack-item-popped`,[{stackItem:o,type:n,changedParentTypes:t,origin:e},e]),e.currStackItem=null}return o},Qi=class extends ee{constructor(e,{captureTimeout:t=500,captureTransaction:n=e=>!0,deleteFilter:r=()=>!0,trackedOrigins:i=new Set([null]),ignoreRemoteMapChanges:a=!1,doc:o=f(e)?e[0].doc:e instanceof zr?e:e.doc}={}){super(),this.scope=[],this.doc=o,this.addToScope(e),this.deleteFilter=r,i.add(this),this.trackedOrigins=i,this.captureTransaction=n,this.undoStack=[],this.redoStack=[],this.undoing=!1,this.redoing=!1,this.currStackItem=null,this.lastChange=0,this.ignoreRemoteMapChanges=a,this.captureTimeout=t,this.afterTransactionHandler=e=>{if(!this.captureTransaction(e)||!this.scope.some(t=>e.changedParentTypes.has(t)||t===this.doc)||!this.trackedOrigins.has(e.origin)&&(!e.origin||!this.trackedOrigins.has(e.origin.constructor)))return;let t=this.undoing,n=this.redoing,r=t?this.redoStack:this.undoStack;t?this.stopCapturing():n||this.clear(!1,!0);let i=new Er;e.afterState.forEach((t,n)=>{let r=e.beforeState.get(n)||0,a=t-r;a>0&&Mr(i,n,r,a)});let a=O(),o=!1;if(this.lastChange>0&&a-this.lastChange<this.captureTimeout&&r.length>0&&!t&&!n){let t=r[r.length-1];t.deletions=jr([t.deletions,e.deleteSet]),t.insertions=jr([t.insertions,i])}else r.push(new Yi(e.deleteSet,i)),o=!0;!t&&!n&&(this.lastChange=a),Dr(e,e.deleteSet,t=>{t instanceof Y&&this.scope.some(n=>n===e.doc||yi(n,t))&&Yo(t,!0)});let s=[{stackItem:r[r.length-1],origin:e.origin,type:t?`redo`:`undo`,changedParentTypes:e.changedParentTypes},this];o?this.emit(`stack-item-added`,s):this.emit(`stack-item-updated`,s)},this.destroy=this.destroy.bind(this),this.doc.on(`afterTransaction`,this.afterTransactionHandler),this.doc.on(`destroy`,this.destroy)}addToScope(e){let t=new Set(this.scope);e=f(e)?e:[e],e.forEach(e=>{t.has(e)||(t.add(e),(e instanceof U?e.doc!==this.doc:e!==this.doc)&&br(`[yjs#509] Not same Y.Doc`),this.scope.push(e))})}addTrackedOrigin(e){this.trackedOrigins.add(e)}removeTrackedOrigin(e){this.trackedOrigins.delete(e)}clear(e=!0,t=!0){(e&&this.canUndo()||t&&this.canRedo())&&this.doc.transact(n=>{e&&(this.undoStack.forEach(e=>Xi(n,this,e)),this.undoStack=[]),t&&(this.redoStack.forEach(e=>Xi(n,this,e)),this.redoStack=[]),this.emit(`stack-cleared`,[{undoStackCleared:e,redoStackCleared:t}])})}stopCapturing(){this.lastChange=0}undo(){this.undoing=!0;let e;try{e=Zi(this,this.undoStack,`undo`)}finally{this.undoing=!1}return e}redo(){this.redoing=!0;let e;try{e=Zi(this,this.redoStack,`redo`)}finally{this.redoing=!1}return e}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}destroy(){this.trackedOrigins.delete(this),this.doc.off(`afterTransaction`,this.afterTransactionHandler),this.doc.off(`destroy`,this.destroy),super.destroy()}};function*$i(e){let t=E(e.restDecoder);for(let n=0;n<t;n++){let t=E(e.restDecoder),n=e.readClient(),r=E(e.restDecoder);for(let i=0;i<t;i++){let t=e.readInfo();if(t===10){let t=E(e.restDecoder);yield new X(I(n,r),t),r+=t}else if(31&t){let i=!(t&192),a=new Y(I(n,r),null,(t&128)==128?e.readLeftID():null,null,(t&64)==64?e.readRightID():null,i?e.readParentInfo()?e.readString():e.readLeftID():null,i&&(t&32)==32?e.readString():null,$o(e,t));yield a,r+=a.length}else{let t=e.readLen();yield new G(I(n,r),t),r+=t}}}}var ea=class{constructor(e,t){this.gen=$i(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do this.curr=this.gen.next().value||null;while(this.filterSkips&&this.curr!==null&&this.curr.constructor===X);return this.curr}},ta=class{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}},na=e=>ia(e,Vr,Gr),ra=(e,t)=>{if(e.constructor===G){let{client:n,clock:r}=e.id;return new G(I(n,r+t),e.length-t)}if(e.constructor===X){let{client:n,clock:r}=e.id;return new X(I(n,r+t),e.length-t)}{let n=e,{client:r,clock:i}=n.id;return new Y(I(r,i+t),null,I(r,i+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},ia=(e,t=Ur,n=qr)=>{if(e.length===1)return e[0];let r=e.map(e=>new t(w(e))),i=r.map(e=>new ea(e,!0)),a=null,o=new n,s=new ta(o);for(;i=i.filter(e=>e.curr!==null),i.sort((e,t)=>{if(e.curr.id.client===t.curr.id.client){let n=e.curr.id.clock-t.curr.id.clock;return n===0?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===X?1:-1:n}return t.curr.id.client-e.curr.id.client}),i.length!==0;){let e=i[0],t=e.curr.id.client;if(a!==null){let n=e.curr,r=!1;for(;n!==null&&n.id.clock+n.length<=a.struct.id.clock+a.struct.length&&n.id.client>=a.struct.id.client;)n=e.next(),r=!0;if(n===null||n.id.client!==t||r&&n.id.clock>a.struct.id.clock+a.struct.length)continue;if(t!==a.struct.id.client)V(s,a.struct,a.offset),a={struct:n,offset:0},e.next();else if(a.struct.id.clock+a.struct.length<n.id.clock){if(a.struct.constructor===X)a.struct.length=n.id.clock+n.length-a.struct.id.clock;else{V(s,a.struct,a.offset);let e=n.id.clock-a.struct.id.clock-a.struct.length;a={struct:new X(I(t,a.struct.id.clock+a.struct.length),e),offset:0}}}else{let t=a.struct.id.clock+a.struct.length-n.id.clock;t>0&&(a.struct.constructor===X?a.struct.length-=t:n=ra(n,t)),a.struct.mergeWith(n)||(V(s,a.struct,a.offset),a={struct:n,offset:0},e.next())}}else a={struct:e.curr,offset:0},e.next();for(let n=e.curr;n!==null&&n.id.client===t&&n.id.clock===a.struct.id.clock+a.struct.length&&n.constructor!==X;n=e.next())V(s,a.struct,a.offset),a={struct:n,offset:0}}return a!==null&&(V(s,a.struct,a.offset),a=null),sa(s),Fr(o,jr(r.map(e=>Ir(e)))),o.toUint8Array()},aa=(e,t,n=Ur,r=qr)=>{let i=oi(t),a=new r,o=new ta(a),s=new n(w(e)),c=new ea(s,!1);for(;c.curr;){let e=c.curr,t=e.id.client,n=i.get(t)||0;if(c.curr.constructor===X){c.next();continue}if(e.id.clock+e.length>n)for(V(o,e,m(n-e.id.clock,0)),c.next();c.curr&&c.curr.id.client===t;)V(o,c.curr,0),c.next();else for(;c.curr&&c.curr.id.client===t&&c.curr.id.clock+c.curr.length<=n;)c.next()}return sa(o),Fr(a,Ir(s)),a.toUint8Array()},oa=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:g(e.encoder.restEncoder)}),e.encoder.restEncoder=h(),e.written=0)},V=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&oa(e),e.written===0&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),v(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},sa=e=>{oa(e);let t=e.encoder.restEncoder;v(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){let r=e.clientStructs[n];v(t,r.written),Oe(t,r.restEncoder)}},ca=(e,t,n,r)=>{let i=new n(w(e)),a=new ea(i,!1),o=new r,s=new ta(o);for(let e=a.curr;e!==null;e=a.next())V(s,t(e),0);return sa(s),Fr(o,Ir(i)),o.toUint8Array()},la=e=>ca(e,Dt,Ur,Gr),ua=`You must not compute changes after the event-handler fired.`,da=class{constructor(e,t){this.target=e,this.currentTarget=e,this.transaction=t,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||=fa(this.currentTarget,this.target)}deletes(e){return kr(this.transaction.deleteSet,e.id)}get keys(){if(this._keys===null){if(this.transaction.doc._transactionCleanups.length===0)throw x(ua);let e=new Map,t=this.target;this.transaction.changed.get(t).forEach(n=>{if(n!==null){let r=t._map.get(n),i,a;if(this.adds(r)){let e=r.left;for(;e!==null&&this.adds(e);)e=e.left;if(this.deletes(r)){if(e!==null&&this.deletes(e))i=`delete`,a=o(e.content.getContent());else return}else e!==null&&this.deletes(e)?(i=`update`,a=o(e.content.getContent())):(i=`add`,a=void 0)}else if(this.deletes(r))i=`delete`,a=o(r.content.getContent());else return;e.set(n,{action:i,oldValue:a})}}),this._keys=e}return this._keys}get delta(){return this.changes.delta}adds(e){return e.id.clock>=(this.transaction.beforeState.get(e.id.client)||0)}get changes(){let e=this._changes;if(e===null){if(this.transaction.doc._transactionCleanups.length===0)throw x(ua);let t=this.target,n=a(),r=a(),i=[];if(e={added:n,deleted:r,delta:i,keys:this.keys},this.transaction.changed.get(t).has(null)){let e=null,a=()=>{e&&i.push(e)};for(let i=t._start;i!==null;i=i.right)i.deleted?this.deletes(i)&&!this.adds(i)&&((e===null||e.delete===void 0)&&(a(),e={delete:0}),e.delete+=i.length,r.add(i)):this.adds(i)?((e===null||e.insert===void 0)&&(a(),e={insert:[]}),e.insert=e.insert.concat(i.content.getContent()),n.add(i)):((e===null||e.retain===void 0)&&(a(),e={retain:0}),e.retain+=i.length);e!==null&&e.retain===void 0&&a()}this._changes=e}return e}},fa=(e,t)=>{let n=[];for(;t._item!==null&&t!==e;){if(t._item.parentSub!==null)n.unshift(t._item.parentSub);else{let e=0,r=t._item.parent._start;for(;r!==t._item&&r!==null;)!r.deleted&&r.countable&&(e+=r.length),r=r.right;n.unshift(e)}t=t._item.parent}return n},H=()=>{br(`Invalid access: Add Yjs type to a document before reading data.`)},pa=80,ma=0,ha=class{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=ma++}},ga=e=>{e.timestamp=ma++},_a=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=ma++},va=(e,t,n)=>{if(e.length>=pa){let r=e.reduce((e,t)=>e.timestamp<t.timestamp?e:t);return _a(r,t,n),r}{let r=new ha(t,n);return e.push(r),r}},ya=(e,t)=>{if(e._start===null||t===0||e._searchMarker===null)return null;let n=e._searchMarker.length===0?null:e._searchMarker.reduce((e,n)=>ne(t-e.index)<ne(t-n.index)?e:n),r=e._start,i=0;for(n!==null&&(r=n.p,i=n.index,ga(n));r.right!==null&&i<t;){if(!r.deleted&&r.countable){if(t<i+r.length)break;i+=r.length}r=r.right}for(;r.left!==null&&i>t;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);for(;r.left!==null&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(i-=r.length);return n!==null&&ne(n.index-i)<r.parent.length/pa?(_a(n,r,i),n):va(e._searchMarker,r,i)},ba=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){let i=e[r];if(n>0){let t=i.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(i.index-=t.length);if(t===null||t.marker===!0){e.splice(r,1);continue}i.p=t,t.marker=!0}(t<i.index||n>0&&t===i.index)&&(i.index=m(t,i.index+n))}},xa=(e,t,r)=>{let i=e,a=t.changedParentTypes;for(;n(a,e,()=>[]).push(r),e._item!==null;)e=e._item.parent;hi(i._eH,r,t)},U=class{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=fi(),this._dEH=fi(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw S()}clone(){throw S()}_write(e){}get _first(){let e=this._start;for(;e!==null&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){pi(this._eH,e)}observeDeep(e){pi(this._dEH,e)}unobserve(e){mi(this._eH,e)}unobserveDeep(e){mi(this._dEH,e)}toJSON(){}},Sa=(e,t,n)=>{e.doc??H(),t<0&&(t=e._length+t),n<0&&(n=e._length+n);let r=n-t,i=[],a=e._start;for(;a!==null&&r>0;){if(a.countable&&!a.deleted){let e=a.content.getContent();if(e.length<=t)t-=e.length;else{for(let n=t;n<e.length&&r>0;n++)i.push(e[n]),r--;t=0}}a=a.right}return i},Ca=e=>{e.doc??H();let t=[],n=e._start;for(;n!==null;){if(n.countable&&!n.deleted){let e=n.content.getContent();for(let n=0;n<e.length;n++)t.push(e[n])}n=n.right}return t},wa=(e,t)=>{let n=[],r=e._start;for(;r!==null;){if(r.countable&&Mi(r,t)){let e=r.content.getContent();for(let t=0;t<e.length;t++)n.push(e[t])}r=r.right}return n},Ta=(e,t)=>{let n=0,r=e._start;for(e.doc??H();r!==null;){if(r.countable&&!r.deleted){let i=r.content.getContent();for(let r=0;r<i.length;r++)t(i[r],n++,e)}r=r.right}},Ea=(e,t)=>{let n=[];return Ta(e,(r,i)=>{n.push(t(r,i,e))}),n},Da=e=>{let t=e._start,n=null,r=0;return{[Symbol.iterator](){return this},next:()=>{if(n===null){for(;t!==null&&t.deleted;)t=t.right;if(t===null)return{done:!0,value:void 0};n=t.content.getContent(),r=0,t=t.right}let e=n[r++];return n.length<=r&&(n=null),{done:!1,value:e}}}},Oa=(e,t)=>{e.doc??H();let n=ya(e,t),r=e._start;for(n!==null&&(r=n.p,t-=n.index);r!==null;r=r.right)if(!r.deleted&&r.countable){if(t<r.length)return r.content.getContent()[t];t-=r.length}},ka=(e,t,n,r)=>{let i=n,a=e.doc,o=a.clientID,s=a.store,c=n===null?t._start:n.right,l=[],u=()=>{l.length>0&&(i=new Y(I(o,L(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new Io(l)),i.integrate(e,0),l=[])};r.forEach(n=>{if(n===null)l.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:l.push(n);break;default:switch(u(),n.constructor){case Uint8Array:case ArrayBuffer:i=new Y(I(o,L(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new Co(new Uint8Array(n))),i.integrate(e,0);break;case zr:i=new Y(I(o,L(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new Oo(n)),i.integrate(e,0);break;default:if(n instanceof U)i=new Y(I(o,L(s,o)),i,i&&i.lastId,c,c&&c.id,t,null,new J(n)),i.integrate(e,0);else throw Error(`Unexpected content type in insert operation`)}}}),u()},Aa=()=>x(`Length exceeded!`),ja=(e,t,n,r)=>{if(n>t._length)throw Aa();if(n===0)return t._searchMarker&&ba(t._searchMarker,n,r.length),ka(e,t,null,r);let i=n,a=ya(t,n),o=t._start;for(a!==null&&(o=a.p,n-=a.index,n===0&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));o!==null;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n<o.length&&z(e,I(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&ba(t._searchMarker,i,r.length),ka(e,t,o,r)},Ma=(e,t,n)=>{let r=(t._searchMarker||[]).reduce((e,t)=>t.index>e.index?t:e,{index:0,p:t._start}).p;if(r)for(;r.right;)r=r.right;return ka(e,t,r,n)},Na=(e,t,n,r)=>{if(r===0)return;let i=n,a=r,o=ya(t,n),s=t._start;for(o!==null&&(s=o.p,n-=o.index);s!==null&&n>0;s=s.right)!s.deleted&&s.countable&&(n<s.length&&z(e,I(s.id.client,s.id.clock+n)),n-=s.length);for(;r>0&&s!==null;)s.deleted||(r<s.length&&z(e,I(s.id.client,s.id.clock+r)),s.delete(e),r-=s.length),s=s.right;if(r>0)throw Aa();t._searchMarker&&ba(t._searchMarker,i,-a+r)},Pa=(e,t,n)=>{let r=t._map.get(n);r!==void 0&&r.delete(e)},Fa=(e,t,n,r)=>{let i=t._map.get(n)||null,a=e.doc,o=a.clientID,s;if(r==null)s=new Io([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:s=new Io([r]);break;case Uint8Array:s=new Co(r);break;case zr:s=new Oo(r);break;default:if(r instanceof U)s=new J(r);else throw Error(`Unexpected content type`)}new Y(I(o,L(a.store,o)),i,i&&i.lastId,null,null,t,n,s).integrate(e,0)},Ia=(e,t)=>{e.doc??H();let n=e._map.get(t);return n!==void 0&&!n.deleted?n.content.getContent()[n.length-1]:void 0},La=e=>{let t={};return e.doc??H(),e._map.forEach((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])}),t},Ra=(e,t)=>{e.doc??H();let n=e._map.get(t);return n!==void 0&&!n.deleted},za=(e,t)=>{let n={};return e._map.forEach((e,r)=>{let i=e;for(;i!==null&&(!t.sv.has(i.id.client)||i.id.clock>=(t.sv.get(i.id.client)||0));)i=i.left;i!==null&&Mi(i,t)&&(n[r]=i.content.getContent()[i.length-1])}),n},Ba=e=>(e.doc??H(),Cr(e._map.entries(),e=>!e[1].deleted)),Va=class extends da{},Ha=class e extends U{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(t){let n=new e;return n.push(t),n}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new e}clone(){let t=new e;return t.insert(0,this.toArray().map(e=>e instanceof U?e.clone():e)),t}get length(){return this.doc??H(),this._length}_callObserver(e,t){super._callObserver(e,t),xa(this,e,new Va(this,e))}insert(e,t){this.doc===null?this._prelimContent.splice(e,0,...t):B(this.doc,n=>{ja(n,this,e,t)})}push(e){this.doc===null?this._prelimContent.push(...e):B(this.doc,t=>{Ma(t,this,e)})}unshift(e){this.insert(0,e)}delete(e,t=1){this.doc===null?this._prelimContent.splice(e,t):B(this.doc,n=>{Na(n,this,e,t)})}get(e){return Oa(this,e)}toArray(){return Ca(this)}slice(e=0,t=this.length){return Sa(this,e,t)}toJSON(){return this.map(e=>e instanceof U?e.toJSON():e)}map(e){return Ea(this,e)}forEach(e){Ta(this,e)}[Symbol.iterator](){return Da(this)}_write(e){e.writeTypeRef(Bo)}},Ua=e=>new Ha,Wa=class extends da{constructor(e,t,n){super(e,t),this.keysChanged=n}},Ga=class e extends U{constructor(e){super(),this._prelimContent=null,this._prelimContent=e===void 0?new Map:new Map(e)}_integrate(e,t){super._integrate(e,t),this._prelimContent.forEach((e,t)=>{this.set(t,e)}),this._prelimContent=null}_copy(){return new e}clone(){let t=new e;return this.forEach((e,n)=>{t.set(n,e instanceof U?e.clone():e)}),t}_callObserver(e,t){xa(this,e,new Wa(this,e,t))}toJSON(){this.doc??H();let e={};return this._map.forEach((t,n)=>{if(!t.deleted){let r=t.content.getContent()[t.length-1];e[n]=r instanceof U?r.toJSON():r}}),e}get size(){return[...Ba(this)].length}keys(){return wr(Ba(this),e=>e[0])}values(){return wr(Ba(this),e=>e[1].content.getContent()[e[1].length-1])}entries(){return wr(Ba(this),e=>[e[0],e[1].content.getContent()[e[1].length-1]])}forEach(e){this.doc??H(),this._map.forEach((t,n)=>{t.deleted||e(t.content.getContent()[t.length-1],n,this)})}[Symbol.iterator](){return this.entries()}delete(e){this.doc===null?this._prelimContent.delete(e):B(this.doc,t=>{Pa(t,this,e)})}set(e,t){return this.doc===null?this._prelimContent.set(e,t):B(this.doc,n=>{Fa(n,this,e,t)}),t}get(e){return Ia(this,e)}has(e){return Ra(this,e)}clear(){this.doc===null?this._prelimContent.clear():B(this.doc,e=>{this.forEach(function(t,n,r){Pa(e,r,n)})})}_write(e){e.writeTypeRef(Vo)}},Ka=e=>new Ga,W=(e,t)=>e===t||typeof e==`object`&&typeof t==`object`&&e&&t&&Ct(e,t),qa=class{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){switch(this.right===null&&C(),this.right.content.constructor){case K:this.right.deleted||Za(this.currentAttributes,this.right.content);break;default:this.right.deleted||(this.index+=this.right.length)}this.left=this.right,this.right=this.right.right}},Ja=(e,t,n)=>{for(;t.right!==null&&n>0;){switch(t.right.content.constructor){case K:t.right.deleted||Za(t.currentAttributes,t.right.content);break;default:t.right.deleted||(n<t.right.length&&z(e,I(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length)}t.left=t.right,t.right=t.right.right}return t},Ya=(e,t,n,r)=>{let i=new Map,a=r?ya(t,n):null;return a?Ja(e,new qa(a.p.left,a.p,a.index,i),n-a.index):Ja(e,new qa(null,t._start,0,i),n)},Xa=(e,t,n,r)=>{for(;n.right!==null&&(n.right.deleted===!0||n.right.content.constructor===K&&W(r.get(n.right.content.key),n.right.content.value));)n.right.deleted||r.delete(n.right.content.key),n.forward();let i=e.doc,a=i.clientID;r.forEach((r,o)=>{let s=n.left,c=n.right,l=new Y(I(a,L(i.store,a)),s,s&&s.lastId,c,c&&c.id,t,null,new K(o,r));l.integrate(e,0),n.right=l,n.forward()})},Za=(e,t)=>{let{key:n,value:r}=t;r===null?e.delete(n):e.set(n,r)},Qa=(e,t)=>{for(;e.right!==null&&(e.right.deleted||e.right.content.constructor===K&&W(t[e.right.content.key]??null,e.right.content.value));)e.forward()},$a=(e,t,n,r)=>{let i=e.doc,a=i.clientID,o=new Map;for(let s in r){let c=r[s],l=n.currentAttributes.get(s)??null;if(!W(l,c)){o.set(s,l);let{left:r,right:u}=n;n.right=new Y(I(a,L(i.store,a)),r,r&&r.lastId,u,u&&u.id,t,null,new K(s,c)),n.right.integrate(e,0),n.forward()}}return o},eo=(e,t,n,r,i)=>{n.currentAttributes.forEach((e,t)=>{i[t]===void 0&&(i[t]=null)});let a=e.doc,o=a.clientID;Qa(n,i);let s=$a(e,t,n,i),c=r.constructor===String?new q(r):r instanceof U?new J(r):new Ao(r),{left:l,right:u,index:d}=n;t._searchMarker&&ba(t._searchMarker,n.index,c.getLength()),u=new Y(I(o,L(a.store,o)),l,l&&l.lastId,u,u&&u.id,t,null,c),u.integrate(e,0),n.right=u,n.index=d,n.forward(),Xa(e,t,n,s)},to=(e,t,n,r,i)=>{let a=e.doc,o=a.clientID;Qa(n,i);let s=$a(e,t,n,i);iterationLoop:for(;n.right!==null&&(r>0||s.size>0&&(n.right.deleted||n.right.content.constructor===K));){if(!n.right.deleted)switch(n.right.content.constructor){case K:{let{key:t,value:a}=n.right.content,o=i[t];if(o!==void 0){if(W(o,a))s.delete(t);else{if(r===0)break iterationLoop;s.set(t,a)}n.right.delete(e)}else n.currentAttributes.set(t,a);break}default:r<n.right.length&&z(e,I(n.right.id.client,n.right.id.clock+r)),r-=n.right.length}n.forward()}if(r>0){let i=``;for(;r>0;r--)i+=`
3
- `;n.right=new Y(I(o,L(a.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new q(i)),n.right.integrate(e,0),n.forward()}Xa(e,t,n,s)},no=(t,n,r,i,a)=>{let o=n,s=e();for(;o&&(!o.countable||o.deleted);){if(!o.deleted&&o.content.constructor===K){let e=o.content;s.set(e.key,e)}o=o.right}let c=0,l=!1;for(;n!==o;){if(r===n&&(l=!0),!n.deleted){let e=n.content;switch(e.constructor){case K:{let{key:r,value:o}=e,u=i.get(r)??null;(s.get(r)!==e||u===o)&&(n.delete(t),c++,!l&&(a.get(r)??null)===o&&u!==o&&(u===null?a.delete(r):a.set(r,u))),!l&&!n.deleted&&Za(a,e);break}}}n=n.right}return c},ro=(e,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;let n=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===K){let r=t.content.key;n.has(r)?t.delete(e):n.add(r)}t=t.left}},io=n=>{let r=0;return B(n.doc,i=>{let a=n._start,o=n._start,s=e(),c=t(s);for(;o;){if(o.deleted===!1)switch(o.content.constructor){case K:Za(c,o.content);break;default:r+=no(i,a,o,s,c),s=t(c),a=o}o=o.right}}),r},ao=e=>{let t=new Set,n=e.doc;for(let[r,i]of e.afterState.entries()){let a=e.beforeState.get(r)||0;i!==a&&Vi(e,n.store.clients.get(r),a,i,e=>{!e.deleted&&e.content.constructor===K&&e.constructor!==G&&t.add(e.parent)})}B(n,n=>{Dr(e,e.deleteSet,e=>{if(e instanceof G||!e.parent._hasFormatting||t.has(e.parent))return;let r=e.parent;e.content.constructor===K?t.add(r):ro(n,e)});for(let e of t)io(e)})},oo=(e,n,r)=>{let i=r,a=t(n.currentAttributes),o=n.right;for(;r>0&&n.right!==null;){if(n.right.deleted===!1)switch(n.right.content.constructor){case J:case Ao:case q:r<n.right.length&&z(e,I(n.right.id.client,n.right.id.clock+r)),r-=n.right.length,n.right.delete(e)}n.forward()}o&&no(e,o,n.right,a,n.currentAttributes);let s=(n.left||n.right).parent;return s._searchMarker&&ba(s._searchMarker,n.index,-i+r),n},so=class extends da{constructor(e,t,n){super(e,t),this.childListChanged=!1,this.keysChanged=new Set,n.forEach(e=>{e===null?this.childListChanged=!0:this.keysChanged.add(e)})}get changes(){if(this._changes===null){let e={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=e}return this._changes}get delta(){if(this._delta===null){let e=this.target.doc,t=[];B(e,e=>{let n=new Map,r=new Map,i=this.target._start,a=null,o={},s=``,c=0,l=0,u=()=>{if(a!==null){let e=null;switch(a){case`delete`:l>0&&(e={delete:l}),l=0;break;case`insert`:(typeof s==`object`||s.length>0)&&(e={insert:s},n.size>0&&(e.attributes={},n.forEach((t,n)=>{t!==null&&(e.attributes[n]=t)}))),s=``;break;case`retain`:c>0&&(e={retain:c},bt(o)||(e.attributes=gt({},o))),c=0}e&&t.push(e),a=null}};for(;i!==null;){switch(i.content.constructor){case J:case Ao:this.adds(i)?this.deletes(i)||(u(),a=`insert`,s=i.content.getContent()[0],u()):this.deletes(i)?(a!==`delete`&&(u(),a=`delete`),l+=1):i.deleted||(a!==`retain`&&(u(),a=`retain`),c+=1);break;case q:this.adds(i)?this.deletes(i)||(a!==`insert`&&(u(),a=`insert`),s+=i.content.str):this.deletes(i)?(a!==`delete`&&(u(),a=`delete`),l+=i.length):i.deleted||(a!==`retain`&&(u(),a=`retain`),c+=i.length);break;case K:{let{key:t,value:s}=i.content;if(this.adds(i))this.deletes(i)||(W(n.get(t)??null,s)?s!==null&&i.delete(e):(a===`retain`&&u(),W(s,r.get(t)??null)?delete o[t]:o[t]=s));else if(this.deletes(i)){r.set(t,s);let e=n.get(t)??null;W(e,s)||(a===`retain`&&u(),o[t]=e)}else if(!i.deleted){r.set(t,s);let n=o[t];n!==void 0&&(W(n,s)?n!==null&&i.delete(e):(a===`retain`&&u(),s===null?delete o[t]:o[t]=s))}i.deleted||(a===`insert`&&u(),Za(n,i.content));break}}i=i.right}for(u();t.length>0;){let e=t[t.length-1];if(e.retain!==void 0&&e.attributes===void 0)t.pop();else break}}),this._delta=t}return this._delta}},co=class e extends U{constructor(e){super(),this._pending=e===void 0?[]:[()=>this.insert(0,e)],this._searchMarker=[],this._hasFormatting=!1}get length(){return this.doc??H(),this._length}_integrate(e,t){super._integrate(e,t);try{this._pending.forEach(e=>e())}catch(e){console.error(e)}this._pending=null}_copy(){return new e}clone(){let t=new e;return t.applyDelta(this.toDelta()),t}_callObserver(e,t){super._callObserver(e,t);let n=new so(this,e,t);xa(this,e,n),!e.local&&this._hasFormatting&&(e._needFormattingCleanup=!0)}toString(){this.doc??H();let e=``,t=this._start;for(;t!==null;)!t.deleted&&t.countable&&t.content.constructor===q&&(e+=t.content.str),t=t.right;return e}toJSON(){return this.toString()}applyDelta(e,{sanitize:t=!0}={}){this.doc===null?this._pending.push(()=>this.applyDelta(e)):B(this.doc,n=>{let r=new qa(null,this._start,0,new Map);for(let i=0;i<e.length;i++){let a=e[i];if(a.insert!==void 0){let o=!t&&typeof a.insert==`string`&&i===e.length-1&&r.right===null&&a.insert.slice(-1)===`
4
- `?a.insert.slice(0,-1):a.insert;(typeof o!=`string`||o.length>0)&&eo(n,this,r,o,a.attributes||{})}else a.retain===void 0?a.delete!==void 0&&oo(n,r,a.delete):to(n,this,r,a.retain,a.attributes||{})}})}toDelta(e,t,n){this.doc??H();let r=[],i=new Map,a=this.doc,o=``,s=this._start;function c(){if(o.length>0){let e={},t=!1;i.forEach((n,r)=>{t=!0,e[r]=n});let n={insert:o};t&&(n.attributes=e),r.push(n),o=``}}let l=()=>{for(;s!==null;){if(Mi(s,e)||t!==void 0&&Mi(s,t))switch(s.content.constructor){case q:{let r=i.get(`ychange`);e!==void 0&&!Mi(s,e)?(r===void 0||r.user!==s.id.client||r.type!==`removed`)&&(c(),i.set(`ychange`,n?n(`removed`,s.id):{type:`removed`})):t!==void 0&&!Mi(s,t)?(r===void 0||r.user!==s.id.client||r.type!==`added`)&&(c(),i.set(`ychange`,n?n(`added`,s.id):{type:`added`})):r!==void 0&&(c(),i.delete(`ychange`)),o+=s.content.str;break}case J:case Ao:{c();let e={insert:s.content.getContent()[0]};if(i.size>0){let t={};e.attributes=t,i.forEach((e,n)=>{t[n]=e})}r.push(e);break}case K:Mi(s,e)&&(c(),Za(i,s.content))}s=s.right}c()};return e||t?B(a,n=>{e&&Ni(n,e),t&&Ni(n,t),l()},`cleanup`):l(),r}insert(e,t,n){if(t.length<=0)return;let r=this.doc;r===null?this._pending.push(()=>this.insert(e,t,n)):B(r,r=>{let i=Ya(r,this,e,!n);n||(n={},i.currentAttributes.forEach((e,t)=>{n[t]=e})),eo(r,this,i,t,n)})}insertEmbed(e,t,n){let r=this.doc;r===null?this._pending.push(()=>this.insertEmbed(e,t,n||{})):B(r,r=>{let i=Ya(r,this,e,!n);eo(r,this,i,t,n||{})})}delete(e,t){if(t===0)return;let n=this.doc;n===null?this._pending.push(()=>this.delete(e,t)):B(n,n=>{oo(n,Ya(n,this,e,!0),t)})}format(e,t,n){if(t===0)return;let r=this.doc;r===null?this._pending.push(()=>this.format(e,t,n)):B(r,r=>{let i=Ya(r,this,e,!1);i.right!==null&&to(r,this,i,t,n)})}removeAttribute(e){this.doc===null?this._pending.push(()=>this.removeAttribute(e)):B(this.doc,t=>{Pa(t,this,e)})}setAttribute(e,t){this.doc===null?this._pending.push(()=>this.setAttribute(e,t)):B(this.doc,n=>{Fa(n,this,e,t)})}getAttribute(e){return Ia(this,e)}getAttributes(){return La(this)}_write(e){e.writeTypeRef(Ho)}},lo=e=>new co,uo=class{constructor(e,t=()=>!0){this._filter=t,this._root=e,this._currentNode=e._start,this._firstCall=!0,e.doc??H()}[Symbol.iterator](){return this}next(){let e=this._currentNode,t=e&&e.content&&e.content.type;if(e!==null&&(!this._firstCall||e.deleted||!this._filter(t)))do if(t=e.content.type,!e.deleted&&(t.constructor===mo||t.constructor===fo)&&t._start!==null)e=t._start;else for(;e!==null;){let t=e.next;if(t!==null){e=t;break}e=e.parent===this._root?null:e.parent._item}while(e!==null&&(e.deleted||!this._filter(e.content.type)));return this._firstCall=!1,e===null?{value:void 0,done:!0}:(this._currentNode=e,{value:e.content.type,done:!1})}},fo=class e extends U{constructor(){super(),this._prelimContent=[]}get firstChild(){let e=this._first;return e?e.content.getContent()[0]:null}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new e}clone(){let t=new e;return t.insert(0,this.toArray().map(e=>e instanceof U?e.clone():e)),t}get length(){return this.doc??H(),this._prelimContent===null?this._length:this._prelimContent.length}createTreeWalker(e){return new uo(this,e)}querySelector(e){e=e.toUpperCase();let t=new uo(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e).next();return t.done?null:t.value}querySelectorAll(e){return e=e.toUpperCase(),c(new uo(this,t=>t.nodeName&&t.nodeName.toUpperCase()===e))}_callObserver(e,t){xa(this,e,new go(this,t,e))}toString(){return Ea(this,e=>e.toString()).join(``)}toJSON(){return this.toString()}toDOM(e=document,t={},n){let r=e.createDocumentFragment();return n!==void 0&&n._createAssociation(r,this),Ta(this,i=>{r.insertBefore(i.toDOM(e,t,n),null)}),r}insert(e,t){this.doc===null?this._prelimContent.splice(e,0,...t):B(this.doc,n=>{ja(n,this,e,t)})}insertAfter(e,t){if(this.doc!==null)B(this.doc,n=>{let r=e&&e instanceof U?e._item:e;ka(n,this,r,t)});else{let n=this._prelimContent,r=e===null?0:n.findIndex(t=>t===e)+1;if(r===0&&e!==null)throw x(`Reference item not found`);n.splice(r,0,...t)}}delete(e,t=1){this.doc===null?this._prelimContent.splice(e,t):B(this.doc,n=>{Na(n,this,e,t)})}toArray(){return Ca(this)}push(e){this.insert(this.length,e)}unshift(e){this.insert(0,e)}get(e){return Oa(this,e)}slice(e=0,t=this.length){return Sa(this,e,t)}forEach(e){Ta(this,e)}_write(e){e.writeTypeRef(Wo)}},po=e=>new fo,mo=class e extends fo{constructor(e=`UNDEFINED`){super(),this.nodeName=e,this._prelimAttrs=new Map}get nextSibling(){let e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){let e=this._item?this._item.prev:null;return e?e.content.type:null}_integrate(e,t){super._integrate(e,t),this._prelimAttrs.forEach((e,t)=>{this.setAttribute(t,e)}),this._prelimAttrs=null}_copy(){return new e(this.nodeName)}clone(){let t=new e(this.nodeName);return vt(this.getAttributes(),(e,n)=>{t.setAttribute(n,e)}),t.insert(0,this.toArray().map(e=>e instanceof U?e.clone():e)),t}toString(){let e=this.getAttributes(),t=[],n=[];for(let t in e)n.push(t);n.sort();let r=n.length;for(let i=0;i<r;i++){let r=n[i];t.push(r+`="`+e[r]+`"`)}let i=this.nodeName.toLocaleLowerCase();return`<${i}${t.length>0?` `+t.join(` `):``}>${super.toString()}</${i}>`}removeAttribute(e){this.doc===null?this._prelimAttrs.delete(e):B(this.doc,t=>{Pa(t,this,e)})}setAttribute(e,t){this.doc===null?this._prelimAttrs.set(e,t):B(this.doc,n=>{Fa(n,this,e,t)})}getAttribute(e){return Ia(this,e)}hasAttribute(e){return Ra(this,e)}getAttributes(e){return e?za(this,e):La(this)}toDOM(e=document,t={},n){let r=e.createElement(this.nodeName),i=this.getAttributes();for(let e in i){let t=i[e];typeof t==`string`&&r.setAttribute(e,t)}return Ta(this,i=>{r.appendChild(i.toDOM(e,t,n))}),n!==void 0&&n._createAssociation(r,this),r}_write(e){e.writeTypeRef(Uo),e.writeKey(this.nodeName)}},ho=e=>new mo(e.readKey()),go=class extends da{constructor(e,t,n){super(e,n),this.childListChanged=!1,this.attributesChanged=new Set,t.forEach(e=>{e===null?this.childListChanged=!0:this.attributesChanged.add(e)})}},_o=class e extends Ga{constructor(e){super(),this.hookName=e}_copy(){return new e(this.hookName)}clone(){let t=new e(this.hookName);return this.forEach((e,n)=>{t.set(n,e)}),t}toDOM(e=document,t={},n){let r=t[this.hookName],i;return i=r===void 0?document.createElement(this.hookName):r.createDom(this),i.setAttribute(`data-yjs-hook`,this.hookName),n!==void 0&&n._createAssociation(i,this),i}_write(e){e.writeTypeRef(Go),e.writeKey(this.hookName)}},vo=e=>new _o(e.readKey()),yo=class e extends co{get nextSibling(){let e=this._item?this._item.next:null;return e?e.content.type:null}get prevSibling(){let e=this._item?this._item.prev:null;return e?e.content.type:null}_copy(){return new e}clone(){let t=new e;return t.applyDelta(this.toDelta()),t}toDOM(e=document,t,n){let r=e.createTextNode(this.toString());return n!==void 0&&n._createAssociation(r,this),r}toString(){return this.toDelta().map(e=>{let t=[];for(let n in e.attributes){let r=[];for(let t in e.attributes[n])r.push({key:t,value:e.attributes[n][t]});r.sort((e,t)=>e.key<t.key?-1:1),t.push({nodeName:n,attrs:r})}t.sort((e,t)=>e.nodeName<t.nodeName?-1:1);let n=``;for(let e=0;e<t.length;e++){let r=t[e];n+=`<${r.nodeName}`;for(let e=0;e<r.attrs.length;e++){let t=r.attrs[e];n+=` ${t.key}="${t.value}"`}n+=`>`}n+=e.insert;for(let e=t.length-1;e>=0;e--)n+=`</${t[e].nodeName}>`;return n}).join(``)}toJSON(){return this.toString()}_write(e){e.writeTypeRef(Ko)}},bo=e=>new yo,xo=class{constructor(e,t){this.id=e,this.length=t}get deleted(){throw S()}mergeWith(e){return!1}write(e,t,n){throw S()}integrate(e,t){throw S()}},So=0,G=class extends xo{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){t>0&&(this.id.clock+=t,this.length-=t),Ii(e.doc.store,this)}write(e,t){e.writeInfo(So),e.writeLen(this.length-t)}getMissing(e,t){return null}},Co=class e{constructor(e){this.content=e}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new e(this.content)}splice(e){throw S()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeBuf(this.content)}getRef(){return 3}},wo=e=>new Co(e.readBuf()),To=class e{constructor(e){this.len=e}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new e(this.len)}splice(t){let n=new e(this.len-t);return this.len=t,n}mergeWith(e){return this.len+=e.len,!0}integrate(e,t){Mr(e.deleteSet,t.id.client,t.id.clock,this.len),t.markDeleted()}delete(e){}gc(e){}write(e,t){e.writeLen(this.len-t)}getRef(){return 1}},Eo=e=>new To(e.readLen()),Do=(e,t)=>new zr({guid:e,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1}),Oo=class e{constructor(e){e._item&&console.error(`This document was already integrated as a sub-document. You should create a second instance instead with the same guid.`),this.doc=e;let t={};this.opts=t,e.gc||(t.gc=!1),e.autoLoad&&(t.autoLoad=!0),e.meta!==null&&(t.meta=e.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new e(Do(this.doc.guid,this.opts))}splice(e){throw S()}mergeWith(e){return!1}integrate(e,t){this.doc._item=t,e.subdocsAdded.add(this.doc),this.doc.shouldLoad&&e.subdocsLoaded.add(this.doc)}delete(e){e.subdocsAdded.has(this.doc)?e.subdocsAdded.delete(this.doc):e.subdocsRemoved.add(this.doc)}gc(e){}write(e,t){e.writeString(this.doc.guid),e.writeAny(this.opts)}getRef(){return 9}},ko=e=>new Oo(Do(e.readString(),e.readAny())),Ao=class e{constructor(e){this.embed=e}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new e(this.embed)}splice(e){throw S()}mergeWith(e){return!1}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeJSON(this.embed)}getRef(){return 5}},jo=e=>new Ao(e.readJSON()),K=class e{constructor(e,t){this.key=e,this.value=t}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new e(this.key,this.value)}splice(e){throw S()}mergeWith(e){return!1}integrate(e,t){let n=t.parent;n._searchMarker=null,n._hasFormatting=!0}delete(e){}gc(e){}write(e,t){e.writeKey(this.key),e.writeJSON(this.value)}getRef(){return 6}},Mo=e=>new K(e.readKey(),e.readJSON()),No=class e{constructor(e){this.arr=e}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new e(this.arr)}splice(t){let n=new e(this.arr.slice(t));return this.arr=this.arr.slice(0,t),n}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){let n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){let t=this.arr[r];e.writeString(t===void 0?`undefined`:JSON.stringify(t))}}getRef(){return 2}},Po=e=>{let t=e.readLen(),n=[];for(let r=0;r<t;r++){let t=e.readString();t===`undefined`?n.push(void 0):n.push(JSON.parse(t))}return new No(n)},Fo=Ft(`node_env`)===`development`,Io=class e{constructor(e){this.arr=e,Fo&&Tt(e)}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new e(this.arr)}splice(t){let n=new e(this.arr.slice(t));return this.arr=this.arr.slice(0,t),n}mergeWith(e){return this.arr=this.arr.concat(e.arr),!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){let n=this.arr.length;e.writeLen(n-t);for(let r=t;r<n;r++){let t=this.arr[r];e.writeAny(t)}}getRef(){return 8}},Lo=e=>{let t=e.readLen(),n=[];for(let r=0;r<t;r++)n.push(e.readAny());return new Io(n)},q=class e{constructor(e){this.str=e}getLength(){return this.str.length}getContent(){return this.str.split(``)}isCountable(){return!0}copy(){return new e(this.str)}splice(t){let n=new e(this.str.slice(t));this.str=this.str.slice(0,t);let r=this.str.charCodeAt(t-1);return r>=55296&&r<=56319&&(this.str=this.str.slice(0,t-1)+`�`,n.str=`�`+n.str.slice(1)),n}mergeWith(e){return this.str+=e.str,!0}integrate(e,t){}delete(e){}gc(e){}write(e,t){e.writeString(t===0?this.str:this.str.slice(t))}getRef(){return 4}},Ro=e=>new q(e.readString()),zo=[Ua,Ka,lo,ho,po,vo,bo],Bo=0,Vo=1,Ho=2,Uo=3,Wo=4,Go=5,Ko=6,J=class e{constructor(e){this.type=e}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new e(this.type._copy())}splice(e){throw S()}mergeWith(e){return!1}integrate(e,t){this.type._integrate(e.doc,t)}delete(e){let t=this.type._start;for(;t!==null;)t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e),t=t.right;this.type._map.forEach(t=>{t.deleted?t.id.clock<(e.beforeState.get(t.id.client)||0)&&e._mergeStructs.push(t):t.delete(e)}),e.changed.delete(this.type)}gc(e){let t=this.type._start;for(;t!==null;)t.gc(e,!0),t=t.right;this.type._start=null,this.type._map.forEach(t=>{for(;t!==null;)t.gc(e,!0),t=t.left}),this.type._map=new Map}write(e,t){this.type._write(e)}getRef(){return 7}},qo=e=>new J(zo[e.readTypeRef()](e)),Jo=(e,t)=>{let n=t,r=0,i;do r>0&&(n=I(n.client,n.clock+r)),i=Li(e,n),r=n.clock-i.id.clock,n=i.redone;while(n!==null&&i instanceof Y);return{item:i,diff:r}},Yo=(e,t)=>{for(;e!==null&&e.keep!==t;)e.keep=t,e=e.parent._item},Xo=(e,t,n)=>{let{client:r,clock:i}=t.id,a=new Y(I(r,i+n),t,I(r,i+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&a.markDeleted(),t.keep&&(a.keep=!0),t.redone!==null&&(a.redone=I(t.redone.client,t.redone.clock+n)),t.right=a,a.right!==null&&(a.right.left=a),e._mergeStructs.push(a),a.parentSub!==null&&a.right===null&&a.parent._map.set(a.parentSub,a),t.length=n,a},Zo=(e,t)=>u(e,e=>kr(e.deletions,t)),Qo=(e,t,n,r,i,a)=>{let o=e.doc,s=o.store,c=o.clientID,l=t.redone;if(l!==null)return z(e,l);let u=t.parent._item,d=null,f;if(u!==null&&u.deleted===!0){if(u.redone===null&&(!n.has(u)||Qo(e,u,n,r,i,a)===null))return null;for(;u.redone!==null;)u=z(e,u.redone)}let ee=u===null?t.parent:u.content.type;if(t.parentSub===null){for(d=t.left,f=t;d!==null;){let t=d;for(;t!==null&&t.parent._item!==u;)t=t.redone===null?null:z(e,t.redone);if(t!==null&&t.parent._item===u){d=t;break}d=d.left}for(;f!==null;){let t=f;for(;t!==null&&t.parent._item!==u;)t=t.redone===null?null:z(e,t.redone);if(t!==null&&t.parent._item===u){f=t;break}f=f.right}}else{if(f=null,t.right&&!i){for(d=t;d!==null&&d.right!==null&&(d.right.redone||kr(r,d.right.id)||Zo(a.undoStack,d.right.id)||Zo(a.redoStack,d.right.id));)for(d=d.right;d.redone;)d=z(e,d.redone);if(d&&d.right!==null)return null}else d=ee._map.get(t.parentSub)||null;d!==null&&d.parent._item!==u&&(d=ee._map.get(t.parentSub)||null)}let te=I(c,L(s,c)),p=new Y(te,d,d&&d.lastId,f,f&&f.id,ee,t.parentSub,t.content.copy());return t.redone=te,Yo(p,!0),p.integrate(e,0),p},Y=class e extends xo{constructor(e,t,n,r,i,a,o,s){super(e,s.getLength()),this.origin=n,this.left=t,this.right=r,this.rightOrigin=i,this.parent=a,this.parentSub=o,this.redone=null,this.content=s,this.info=this.content.isCountable()?2:0}set marker(e){(this.info&8)>0!==e&&(this.info^=8)}get marker(){return(this.info&8)>0}get keep(){return(this.info&1)>0}set keep(e){this.keep!==e&&(this.info^=1)}get countable(){return(this.info&2)>0}get deleted(){return(this.info&4)>0}set deleted(e){this.deleted!==e&&(this.info^=4)}markDeleted(){this.info|=4}getMissing(t,n){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=L(n,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=L(n,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===gi&&this.id.client!==this.parent.client&&this.parent.clock>=L(n,this.parent.client))return this.parent.client;if(this.origin&&=(this.left=zi(t,n,this.origin),this.left.lastId),this.rightOrigin&&=(this.right=z(t,this.rightOrigin),this.right.id),this.left&&this.left.constructor===G||this.right&&this.right.constructor===G)this.parent=null;else if(!this.parent)this.left&&this.left.constructor===e?(this.parent=this.left.parent,this.parentSub=this.left.parentSub):this.right&&this.right.constructor===e&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);else if(this.parent.constructor===gi){let e=Li(n,this.parent);this.parent=e.constructor===G?null:e.content.type}return null}integrate(e,t){if(t>0&&(this.id.clock+=t,this.left=zi(e,e.doc.store,I(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(t),this.length-=t),this.parent){if(!this.left&&(!this.right||this.right.left!==null)||this.left&&this.left.right!==this.right){let t=this.left,n;if(t!==null)n=t.right;else if(this.parentSub!==null)for(n=this.parent._map.get(this.parentSub)||null;n!==null&&n.left!==null;)n=n.left;else n=this.parent._start;let r=new Set,i=new Set;for(;n!==null&&n!==this.right;){if(i.add(n),r.add(n),_i(this.origin,n.origin)){if(n.id.client<this.id.client)t=n,r.clear();else if(_i(this.rightOrigin,n.rightOrigin))break}else if(n.origin!==null&&i.has(Li(e.doc.store,n.origin)))r.has(Li(e.doc.store,n.origin))||(t=n,r.clear());else break;n=n.right}this.left=t}if(this.left!==null){let e=this.left.right;this.right=e,this.left.right=this}else{let e;if(this.parentSub!==null)for(e=this.parent._map.get(this.parentSub)||null;e!==null&&e.left!==null;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}this.right===null?this.parentSub!==null&&(this.parent._map.set(this.parentSub,this),this.left!==null&&this.left.delete(e)):this.right.left=this,this.parentSub===null&&this.countable&&!this.deleted&&(this.parent._length+=this.length),Ii(e.doc.store,this),this.content.integrate(e,this),Wi(e,this.parent,this.parentSub),(this.parent._item!==null&&this.parent._item.deleted||this.parentSub!==null&&this.right!==null)&&this.delete(e)}else new G(this.id,this.length).integrate(e,0)}get next(){let e=this.right;for(;e!==null&&e.deleted;)e=e.right;return e}get prev(){let e=this.left;for(;e!==null&&e.deleted;)e=e.left;return e}get lastId(){return this.length===1?this.id:I(this.id.client,this.id.clock+this.length-1)}mergeWith(e){if(this.constructor===e.constructor&&_i(e.origin,this.lastId)&&this.right===e&&_i(this.rightOrigin,e.rightOrigin)&&this.id.client===e.id.client&&this.id.clock+this.length===e.id.clock&&this.deleted===e.deleted&&this.redone===null&&e.redone===null&&this.content.constructor===e.content.constructor&&this.content.mergeWith(e.content)){let t=this.parent._searchMarker;return t&&t.forEach(t=>{t.p===e&&(t.p=this,!this.deleted&&this.countable&&(t.index-=this.length))}),e.keep&&(this.keep=!0),this.right=e.right,this.right!==null&&(this.right.left=this),this.length+=e.length,!0}return!1}delete(e){if(!this.deleted){let t=this.parent;this.countable&&this.parentSub===null&&(t._length-=this.length),this.markDeleted(),Mr(e.deleteSet,this.id.client,this.id.clock,this.length),Wi(e,t,this.parentSub),this.content.delete(e)}}gc(e,t){if(!this.deleted)throw C();this.content.gc(e),t?Bi(e,this,new G(this.id,this.length)):this.content=new To(this.length)}write(e,t){let n=t>0?I(this.id.client,this.id.clock+t-1):this.origin,r=this.rightOrigin,i=this.parentSub,a=this.content.getRef()&31|(n===null?0:128)|(r===null?0:64)|(i===null?0:32);if(e.writeInfo(a),n!==null&&e.writeLeftID(n),r!==null&&e.writeRightID(r),n===null&&r===null){let t=this.parent;if(t._item!==void 0){let n=t._item;if(n===null){let n=vi(t);e.writeParentInfo(!0),e.writeString(n)}else e.writeParentInfo(!1),e.writeLeftID(n.id)}else t.constructor===String?(e.writeParentInfo(!0),e.writeString(t)):t.constructor===gi?(e.writeParentInfo(!1),e.writeLeftID(t)):C();i!==null&&e.writeString(i)}this.content.write(e,t)}},$o=(e,t)=>es[t&31](e),es=[()=>{C()},Eo,Po,wo,Ro,jo,Mo,qo,Lo,ko,()=>{C()}],ts=10,X=class extends xo{get deleted(){return!0}delete(){}mergeWith(e){return this.constructor===e.constructor&&(this.length+=e.length,!0)}integrate(e,t){C()}write(e,t){e.writeInfo(ts),v(e.restEncoder,this.length-t)}getMissing(e,t){return null}},ns=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:{},rs=`__ $YJS$ __`;ns[rs]===!0&&console.error(`Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438`),ns[rs]=!0;var is=3e4,as=class extends te{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval(()=>{let e=O();this.getLocalState()!==null&&15e3<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());let t=[];this.meta.forEach((n,r)=>{r!==this.clientID&&3e4<=e-n.lastUpdated&&this.states.has(r)&&t.push(r)}),t.length>0&&os(this,t,`timeout`)},p(is/10)),e.on(`destroy`,()=>{this.destroy()}),this.setLocalState({})}destroy(){this.emit(`destroy`,[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){let t=this.clientID,n=this.meta.get(t),r=n===void 0?0:n.clock+1,i=this.states.get(t);e===null?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:r,lastUpdated:O()});let a=[],o=[],s=[],c=[];e===null?c.push(t):i==null?e!=null&&a.push(t):(o.push(t),Ot(i,e)||s.push(t)),(a.length>0||s.length>0||c.length>0)&&this.emit(`change`,[{added:a,updated:s,removed:c},`local`]),this.emit(`update`,[{added:a,updated:o,removed:c},`local`])}setLocalStateField(e,t){let n=this.getLocalState();n!==null&&this.setLocalState({...n,[e]:t})}getStates(){return this.states}},os=(e,t,n)=>{let r=[];for(let n=0;n<t.length;n++){let i=t[n];if(e.states.has(i)){if(e.states.delete(i),i===e.clientID){let t=e.meta.get(i);e.meta.set(i,{clock:t.clock+1,lastUpdated:O()})}r.push(i)}}r.length>0&&(e.emit(`change`,[{added:[],updated:[],removed:r},n]),e.emit(`update`,[{added:[],updated:[],removed:r},n]))},ss=(e,t,n=e.states)=>{let r=t.length,i=h();v(i,r);for(let a=0;a<r;a++){let r=t[a],o=n.get(r)||null,s=e.meta.get(r).clock;v(i,r),v(i,s),y(i,JSON.stringify(o))}return g(i)},cs=(e,t,n)=>{let r=w(t),i=O(),a=[],o=[],s=[],c=[],l=E(r);for(let t=0;t<l;t++){let t=E(r),n=E(r),l=JSON.parse(D(r)),u=e.meta.get(t),d=e.states.get(t),f=u===void 0?0:u.clock;(f<n||f===n&&l===null&&e.states.has(t))&&(l===null?t===e.clientID&&e.getLocalState()!=null?n++:e.states.delete(t):e.states.set(t,l),e.meta.set(t,{clock:n,lastUpdated:i}),u===void 0&&l!==null?a.push(t):u!==void 0&&l===null?c.push(t):l!==null&&(Ot(l,d)||s.push(t),o.push(t)))}(a.length>0||s.length>0||c.length>0)&&e.emit(`change`,[{added:a,updated:s,removed:c},n]),(a.length>0||o.length>0||c.length>0)&&e.emit(`update`,[{added:a,updated:o,removed:c},n])},ls=()=>{let e=!0;return(t,n)=>{if(e){e=!1;try{t()}finally{e=!0}}else n!==void 0&&n()}},us=/[\uD800-\uDBFF]/,ds=/[\uDC00-\uDFFF]/,fs=(e,t)=>{let n=0,r=0;for(;n<e.length&&n<t.length&&e[n]===t[n];)n++;for(n>0&&us.test(e[n-1])&&n--;r+n<e.length&&r+n<t.length&&e[e.length-r-1]===t[t.length-r-1];)r++;return r>0&&ds.test(e[e.length-r])&&r--,{index:n,remove:e.length-n-r,insert:t.slice(n,t.length-r)}},Z=(e,t)=>e>>>t|e<<32-t,ps=e=>Z(e,2)^Z(e,13)^Z(e,22),ms=e=>Z(e,6)^Z(e,11)^Z(e,25),hs=e=>Z(e,7)^Z(e,18)^e>>>3,gs=e=>Z(e,17)^Z(e,19)^e>>>10,_s=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),vs=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ys=class{constructor(){let e=new ArrayBuffer(320);this._H=new Uint32Array(e,0,8),this._H.set(vs),this._W=new Uint32Array(e,64,64)}_updateHash(){let e=this._H,t=this._W;for(let e=16;e<64;e++)t[e]=gs(t[e-2])+t[e-7]+hs(t[e-15])+t[e-16];let n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],s=e[5],c=e[6],l=e[7];for(let e=0,u,d;e<64;e++)u=l+ms(o)+(o&s^~o&c)+_s[e]+t[e]>>>0,d=ps(n)+(n&r^n&i^r&i)>>>0,l=c,c=s,s=o,o=a+u>>>0,a=i,i=r,r=n,n=u+d>>>0;e[0]+=n,e[1]+=r,e[2]+=i,e[3]+=a,e[4]+=o,e[5]+=s,e[6]+=c,e[7]+=l}digest(e){let t=0;for(;t+56<=e.length;){let n=0;for(;n<16&&t+3<e.length;n++)this._W[n]=e[t++]<<24|e[t++]<<16|e[t++]<<8|e[t++];if(t%64!=0){for(this._W.fill(0,n,16);t<e.length;)this._W[n]|=e[t]<<(3-t%4)*8,t++;this._W[n]|=128<<(3-t%4)*8}this._updateHash()}let n=t%64!=0;this._W.fill(0,0,16);let r=0;for(;t<e.length;r++)for(let n=3;n>=0&&t<e.length;n--)this._W[r]|=e[t++]<<n*8;n||(this._W[r-(t%4==0?0:1)]|=128<<(3-t%4)*8),this._W[14]=e.byteLength/ae,this._W[15]=e.byteLength*8,this._updateHash();let i=new Uint8Array(32);for(let e=0;e<this._H.length;e++)for(let t=0;t<4;t++)i[e*4+t]=this._H[e]>>>(3-t)*8;return i}},bs=e=>new ys().digest(e),xs=function(e){return e[e.Token=0]=`Token`,e[e.PermissionDenied=1]=`PermissionDenied`,e[e.Authenticated=2]=`Authenticated`,e}({}),Ss=(e,t)=>{v(e,xs.Token),y(e,t)},Cs=(e,t,n,r)=>{switch(E(e)){case xs.Token:t();break;case xs.PermissionDenied:n(D(e));break;case xs.Authenticated:r(D(e))}},ws=e=>Array.from(e.entries()).map(([e,t])=>({clientId:e,...t})),Ts=`\0`;function Es(e,t){return e+Ts+t}function Ds(e){let t=e.indexOf(Ts);return t===-1?{documentName:e,sessionId:null}:{documentName:e.substring(0,t),sessionId:e.substring(t+1)}}var Os=function(e){return e[e.Connecting=0]=`Connecting`,e[e.Open=1]=`Open`,e[e.Closing=2]=`Closing`,e[e.Closed=3]=`Closed`,e}({});function ks(e){return e||={},{delay:e.delay===void 0?200:e.delay,initialDelay:e.initialDelay===void 0?0:e.initialDelay,minDelay:e.minDelay===void 0?0:e.minDelay,maxDelay:e.maxDelay===void 0?0:e.maxDelay,factor:e.factor===void 0?0:e.factor,maxAttempts:e.maxAttempts===void 0?3:e.maxAttempts,timeout:e.timeout===void 0?0:e.timeout,jitter:e.jitter===!0,initialJitter:e.initialJitter===!0,handleError:e.handleError===void 0?null:e.handleError,handleTimeout:e.handleTimeout===void 0?null:e.handleTimeout,beforeAttempt:e.beforeAttempt===void 0?null:e.beforeAttempt,calculateDelay:e.calculateDelay===void 0?null:e.calculateDelay}}async function As(e){return new Promise(t=>setTimeout(t,e))}function js(e,t){let n=t.delay;if(n===0)return 0;if(t.factor&&(n*=t.factor**(e.attemptNum-1),t.maxDelay!==0&&(n=Math.min(n,t.maxDelay))),t.jitter){let e=Math.ceil(t.minDelay);n=Math.floor(Math.random()*(Math.floor(n)-e+1))+e}return Math.round(n)}async function Ms(e,t){let n=ks(t);for(let e of[`delay`,`initialDelay`,`minDelay`,`maxDelay`,`maxAttempts`,`timeout`]){let t=n[e];if(!Number.isInteger(t)||t<0)throw Error(`Value for ${e} must be an integer greater than or equal to 0`)}if(n.factor.constructor!==Number||n.factor<0)throw Error(`Value for factor must be a number greater than or equal to 0`);if(n.delay<n.minDelay)throw Error(`delay cannot be less than minDelay (delay: ${n.delay}, minDelay: ${n.minDelay}`);let r={attemptNum:0,attemptsRemaining:n.maxAttempts?n.maxAttempts:-1,aborted:!1,abort(){r.aborted=!0}},i=n.calculateDelay||js;async function a(){if(n.beforeAttempt&&n.beforeAttempt(r,n),r.aborted){let e=Error(`Attempt aborted`);throw e.code=`ATTEMPT_ABORTED`,e}let t=async e=>{if(n.handleError&&await n.handleError(e,r,n),r.aborted||r.attemptsRemaining===0)throw e;r.attemptNum++;let t=i(r,n);return t&&await As(t),a()};return r.attemptsRemaining>0&&r.attemptsRemaining--,n.timeout?new Promise((i,a)=>{let o=setTimeout(()=>{if(n.handleTimeout)try{i(n.handleTimeout(r,n))}catch(e){a(e)}else{let e=Error(`Retry timeout (attemptNum: ${r.attemptNum}, timeout: ${n.timeout})`);e.code=`ATTEMPT_TIMEOUT`,a(e)}},n.timeout);e(r,n).then(e=>{clearTimeout(o),i(e)}).catch(e=>{clearTimeout(o),t(e).then(i).catch(a)})}):e(r,n).catch(t)}let o=n.calculateDelay?n.calculateDelay(r,n):n.initialDelay;if(o&&await As(o),r.attemptNum<1&&n.initialJitter){let e=i(r,n);e&&await As(e)}return a()}var Ns=(e,t)=>{v(e,0),b(e,ui(t))},Ps=(e,t,n)=>{v(e,1),b(e,ii(t,n))},Fs=(e,t,n)=>Ps(t,n,T(e)),Is=(e,t,n,r)=>{try{ti(t,T(e),n)}catch(e){r?.(e),console.error(`Caught error while handling a Yjs update`,e)}},Ls=(e,t)=>{v(e,2),b(e,t)},Rs=Is,zs=(e,t,n,r,i)=>{let a=E(e);switch(a){case 0:Fs(e,t,n);break;case 1:Is(e,n,r,i);break;case 2:Rs(e,n,r,i);break;default:throw Error(`Unknown message type`)}return a},Bs=class{constructor(){this.callbacks={}}on(e,t){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(t),this}emit(e,...t){let n=this.callbacks[e];return n&&n.forEach(e=>e.apply(this,t)),this}off(e,t){let n=this.callbacks[e];return n&&(t?this.callbacks[e]=n.filter(e=>e!==t):delete this.callbacks[e]),this}removeAllListeners(){this.callbacks={}}},Vs=class{constructor(e){this.data=e,this.encoder=h(),this.decoder=w(new Uint8Array(this.data))}peekVarString(){return Ye(this.decoder)}readVarUint(){return E(this.decoder)}readVarString(){return D(this.decoder)}readVarUint8Array(){return T(this.decoder)}writeVarUint(e){return v(this.encoder,e)}writeVarString(e){return y(this.encoder,e)}writeVarUint8Array(e){return b(this.encoder,e)}length(){return Se(this.encoder)}},Q=function(e){return e[e.Sync=0]=`Sync`,e[e.Awareness=1]=`Awareness`,e[e.Auth=2]=`Auth`,e[e.QueryAwareness=3]=`QueryAwareness`,e[e.Stateless=5]=`Stateless`,e[e.CLOSE=7]=`CLOSE`,e[e.SyncStatus=8]=`SyncStatus`,e[e.Ping=9]=`Ping`,e[e.Pong=10]=`Pong`,e}({}),$=function(e){return e.Connecting=`connecting`,e.Connected=`connected`,e.Disconnected=`disconnected`,e}({}),Hs=class{constructor(){this.encoder=h()}get(e){return e.encoder}toUint8Array(){return g(this.encoder)}},Us=class extends Hs{constructor(...e){super(...e),this.type=Q.CLOSE,this.description=`Ask the server to close the connection`}get(e){return y(this.encoder,e.documentName),v(this.encoder,this.type),this.encoder}},Ws=class e extends Bs{static{this.DEDUPLICATABLE_TYPES=new Set([Q.Awareness,Q.QueryAwareness])}constructor(e){super(),this.messageQueue=[],this.configuration={url:``,autoConnect:!0,preserveTrailingSlash:!1,document:void 0,WebSocketPolyfill:void 0,messageReconnectTimeout:3e4,delay:1e3,initialDelay:0,factor:2,maxAttempts:0,minDelay:1e3,maxDelay:3e4,jitter:!0,timeout:0,onOpen:()=>null,onConnect:()=>null,onMessage:()=>null,onOutgoingMessage:()=>null,onStatus:()=>null,onDisconnect:()=>null,onClose:()=>null,onDestroy:()=>null,onAwarenessUpdate:()=>null,onAwarenessChange:()=>null,handleTimeout:null,providerMap:new Map},this.webSocket=null,this.webSocketHandlers={},this.shouldConnect=!0,this.status=$.Disconnected,this.lastMessageReceived=0,this.identifier=0,this.intervals={connectionChecker:null},this.connectionAttempt=null,this.receivedOnOpenPayload=void 0,this.closeTries=0,this.setConfiguration(e),this.configuration.WebSocketPolyfill=e.WebSocketPolyfill?e.WebSocketPolyfill:WebSocket,this.on(`open`,this.configuration.onOpen),this.on(`open`,this.onOpen.bind(this)),this.on(`connect`,this.configuration.onConnect),this.on(`message`,this.configuration.onMessage),this.on(`outgoingMessage`,this.configuration.onOutgoingMessage),this.on(`status`,this.configuration.onStatus),this.on(`disconnect`,this.configuration.onDisconnect),this.on(`close`,this.configuration.onClose),this.on(`destroy`,this.configuration.onDestroy),this.on(`awarenessUpdate`,this.configuration.onAwarenessUpdate),this.on(`awarenessChange`,this.configuration.onAwarenessChange),this.on(`close`,this.onClose.bind(this)),this.on(`message`,this.onMessage.bind(this)),this.intervals.connectionChecker=setInterval(this.checkConnection.bind(this),this.configuration.messageReconnectTimeout/10),this.shouldConnect&&this.connect()}async onOpen(e){this.status=$.Connected,this.emit(`status`,{status:$.Connected}),this.cancelWebsocketRetry=void 0,this.receivedOnOpenPayload=e}attach(e){let t=e.effectiveName,n=this.configuration.providerMap.get(t);if(n&&n!==e&&n.isAuthenticated)throw Error(`Cannot attach two providers with the same effective name "${t}". Use sessionAwareness: true to multiplex providers with the same document name.`);this.configuration.providerMap.set(t,e),this.status===$.Disconnected&&this.shouldConnect&&this.connect(),this.receivedOnOpenPayload&&this.status===$.Connected&&e.onOpen(this.receivedOnOpenPayload)}detach(e){let t=e.effectiveName;this.configuration.providerMap.has(t)&&(e.send(Us,{documentName:t}),this.configuration.providerMap.delete(t))}setConfiguration(e={}){this.configuration={...this.configuration,...e},this.configuration.autoConnect||(this.shouldConnect=!1)}async connect(){if(this.status===$.Connected)return;this.cancelWebsocketRetry&&=(this.cancelWebsocketRetry(),void 0),this.receivedOnOpenPayload=void 0,this.shouldConnect=!0;let{retryPromise:e,cancelFunc:t}=(()=>{let e=!1;return{retryPromise:Ms(this.createWebSocketConnection.bind(this),{delay:this.configuration.delay,initialDelay:this.configuration.initialDelay,factor:this.configuration.factor,maxAttempts:this.configuration.maxAttempts,minDelay:this.configuration.minDelay,maxDelay:this.configuration.maxDelay,jitter:this.configuration.jitter,timeout:this.configuration.timeout,handleTimeout:this.configuration.handleTimeout,beforeAttempt:t=>{(!this.shouldConnect||e)&&t.abort()}}).catch(e=>{if(e&&e.code!==`ATTEMPT_ABORTED`)throw e}),cancelFunc:()=>{e=!0}}})();return this.cancelWebsocketRetry=t,e}attachWebSocketListeners(e,t){let{identifier:n}=e,r=e=>this.emit(`message`,e),i=e=>this.emit(`close`,{event:e}),a=e=>this.emit(`open`,e),o=e=>{t(e)};this.webSocketHandlers[n]={message:r,close:i,open:a,error:o};let s=this.webSocketHandlers[e.identifier];Object.keys(s).forEach(t=>{e.addEventListener(t,s[t])})}cleanupWebSocket(){if(!this.webSocket)return;let{identifier:e}=this.webSocket,t=this.webSocketHandlers[e];Object.keys(t).forEach(n=>{this.webSocket?.removeEventListener(n,t[n]),delete this.webSocketHandlers[e]}),this.webSocket.close(),this.webSocket=null}createWebSocketConnection(){return new Promise((e,t)=>{this.webSocket&&(this.messageQueue=[],this.cleanupWebSocket()),this.lastMessageReceived=0,this.identifier+=1;let n=new this.configuration.WebSocketPolyfill(this.url);n.binaryType=`arraybuffer`,n.identifier=this.identifier,this.attachWebSocketListeners(n,t),this.webSocket=n,this.status=$.Connecting,this.emit(`status`,{status:$.Connecting}),this.connectionAttempt={resolve:e,reject:t}})}onMessage(e){this.resolveConnectionAttempt(),this.lastMessageReceived=O();let t=new Uint8Array(e.data);if(t.length===1&&t[0]===Q.Ping){this.sendPong();return}let n=new Vs(t).peekVarString();this.configuration.providerMap.get(n)?.onMessage(e)}sendPong(){let e=h();v(e,Q.Pong),this.send(g(e))}resolveConnectionAttempt(){this.connectionAttempt&&(this.connectionAttempt.resolve(),this.connectionAttempt=null,this.status=$.Connected,this.emit(`status`,{status:$.Connected}),this.emit(`connect`),this.messageQueue.forEach(e=>this.send(e)),this.messageQueue=[])}stopConnectionAttempt(){this.connectionAttempt=null}rejectConnectionAttempt(){this.connectionAttempt?.reject(),this.connectionAttempt=null}checkConnection(){this.status===$.Connected&&this.lastMessageReceived&&(this.configuration.messageReconnectTimeout>=O()-this.lastMessageReceived||(this.closeTries+=1,this.closeTries>2?(this.onClose({event:{code:4408,reason:`forced`}}),this.closeTries=0):(this.webSocket?.close(),this.messageQueue=[])))}get serverUrl(){if(this.configuration.preserveTrailingSlash)return this.configuration.url;let e=this.configuration.url;for(;e[e.length-1]===`/`;)e=e.slice(0,e.length-1);return e}get url(){return this.serverUrl}disconnect(){if(this.shouldConnect=!1,this.webSocket!==null)try{this.webSocket.close(),this.messageQueue=[]}catch(e){console.error(e)}}parseQueuedMessage(e){try{let t=w(e);return{documentName:D(t),messageType:E(t)}}catch{return null}}addToQueue(t){if(t instanceof Uint8Array){let n=this.parseQueuedMessage(t);n&&e.DEDUPLICATABLE_TYPES.has(n.messageType)&&(this.messageQueue=this.messageQueue.filter(e=>{if(!(e instanceof Uint8Array))return!0;let t=this.parseQueuedMessage(e);return!t||t.documentName!==n.documentName||t.messageType!==n.messageType}))}this.messageQueue.push(t)}send(e){this.webSocket?.readyState===Os.Open?this.webSocket.send(e):this.addToQueue(e)}onClose({event:e}){this.closeTries=0,this.cleanupWebSocket(),this.connectionAttempt&&this.rejectConnectionAttempt(),this.status=$.Disconnected,this.emit(`status`,{status:$.Disconnected}),this.emit(`disconnect`,{event:e}),!this.cancelWebsocketRetry&&this.shouldConnect&&setTimeout(()=>{this.connect()},this.configuration.delay)}destroy(){this.emit(`destroy`),clearInterval(this.intervals.connectionChecker),this.stopConnectionAttempt(),this.disconnect(),this.removeAllListeners(),this.cleanupWebSocket()}},Gs=class{constructor(e){this.message=e}apply(e,t){let{message:n}=this,r=n.readVarUint(),i=n.length();switch(r){case Q.Sync:this.applySyncMessage(e,t);break;case Q.Awareness:this.applyAwarenessMessage(e);break;case Q.Auth:this.applyAuthMessage(e);break;case Q.QueryAwareness:this.applyQueryAwarenessMessage(e);break;case Q.Stateless:e.receiveStateless(D(n.decoder));break;case Q.SyncStatus:this.applySyncStatusMessage(e,Je(n.decoder)===1);break;case Q.CLOSE:{let t={code:1e3,reason:D(n.decoder)};e.onClose(),e.configuration.onClose({event:t}),e.forwardClose({event:t});break}default:console.error(`Can’t apply message of unknown type: ${r}`)}n.length()>i+1&&e.send(Hs,{encoder:n.encoder})}applySyncMessage(e,t){let{message:n}=this;n.writeVarUint(Q.Sync);let r=zs(n.decoder,n.encoder,e.document,e);t&&r===1&&(e.synced=!0)}applySyncStatusMessage(e,t){t&&e.decrementUnsyncedChanges()}applyAwarenessMessage(e){if(!e.awareness)return;let{message:t}=this;cs(e.awareness,t.readVarUint8Array(),e)}applyAuthMessage(e){let{message:t}=this;Cs(t.decoder,e.sendToken.bind(e),e.permissionDeniedHandler.bind(e),e.authenticatedHandler.bind(e))}applyQueryAwarenessMessage(e){if(!e.awareness)return;let{message:t}=this;t.writeVarUint(Q.Awareness),t.writeVarUint8Array(ss(e.awareness,Array.from(e.awareness.getStates().keys())))}},Ks=class{constructor(e,t={}){this.message=new e,this.encoder=this.message.get(t)}create(){return g(this.encoder)}send(e){e?.send(this.create())}},qs=`4.6.0`,Js=class extends Hs{constructor(...e){super(...e),this.type=Q.Auth,this.description=`Authentication`}get(e){if(e.token===void 0)throw Error("The authentication message requires `token` as an argument.");return y(this.encoder,e.documentName),v(this.encoder,this.type),Ss(this.encoder,e.token),y(this.encoder,qs),this.encoder}},Ys=class extends Hs{constructor(...e){super(...e),this.type=Q.Awareness,this.description=`Awareness states update`}get(e){if(e.awareness===void 0)throw Error(`The awareness message requires awareness as an argument`);if(e.clients===void 0)throw Error(`The awareness message requires clients as an argument`);y(this.encoder,e.documentName),v(this.encoder,this.type);let t;return t=e.states===void 0?ss(e.awareness,e.clients):ss(e.awareness,e.clients,e.states),b(this.encoder,t),this.encoder}},Xs=class extends Hs{constructor(...e){super(...e),this.type=Q.Stateless,this.description=`A stateless message`}get(e){return y(this.encoder,e.documentName),v(this.encoder,this.type),y(this.encoder,e.payload??``),this.encoder}},Zs=class extends Hs{constructor(...e){super(...e),this.type=Q.Sync,this.description=`First sync step`}get(e){if(e.document===void 0)throw Error(`The sync step one message requires document as an argument`);return y(this.encoder,e.documentName),v(this.encoder,this.type),Ns(this.encoder,e.document),this.encoder}},Qs=class extends Hs{constructor(...e){super(...e),this.type=Q.Sync,this.description=`A document update`}get(e){return y(this.encoder,e.documentName),v(this.encoder,this.type),Ls(this.encoder,e.update),this.encoder}},$s=class extends Error{constructor(...e){super(...e),this.code=1001}},ec=class extends Bs{get effectiveName(){return this.configuration.sessionAwareness?Es(this.configuration.name,this.sessionId):this.configuration.name}constructor(e){super(),this.configuration={name:``,document:void 0,awareness:void 0,token:null,sessionAwareness:!1,forceSyncInterval:!1,flushDelay:!1,onAuthenticated:()=>null,onAuthenticationFailed:()=>null,onOpen:()=>null,onConnect:()=>null,onMessage:()=>null,onOutgoingMessage:()=>null,onSynced:()=>null,onStatus:()=>null,onDisconnect:()=>null,onClose:()=>null,onDestroy:()=>null,onAwarenessUpdate:()=>null,onAwarenessChange:()=>null,onStateless:()=>null,onUnsyncedChanges:()=>null},this.isSynced=!1,this.unsyncedChanges=0,this.isAuthenticated=!1,this.authorizedScope=void 0,this.manageSocket=!1,this._isAttached=!1,this.pendingUpdates=[],this.pendingAwarenessClients=new Set,this.flushTimeout=null,this.sessionId=Math.random().toString(36).slice(2),this.intervals={forceSync:null},this.boundDocumentUpdateHandler=this.documentUpdateHandler.bind(this),this.boundAwarenessUpdateHandler=this.awarenessUpdateHandler.bind(this),this.boundPageHide=this.pageHide.bind(this),this.boundOnOpen=this.onOpen.bind(this),this.boundOnClose=this.onClose.bind(this),this.forwardConnect=()=>this.emit(`connect`),this.forwardStatus=e=>this.emit(`status`,e),this.forwardClose=e=>this.emit(`close`,e),this.forwardDisconnect=e=>this.emit(`disconnect`,e),this.forwardDestroy=()=>this.emit(`destroy`),this.setConfiguration(e),this.configuration.document=e.document?e.document:new zr,this.configuration.awareness=e.awareness===void 0?new as(this.document):e.awareness,this.on(`open`,this.configuration.onOpen),this.on(`message`,this.configuration.onMessage),this.on(`outgoingMessage`,this.configuration.onOutgoingMessage),this.on(`synced`,this.configuration.onSynced),this.on(`destroy`,this.configuration.onDestroy),this.on(`awarenessUpdate`,this.configuration.onAwarenessUpdate),this.on(`awarenessChange`,this.configuration.onAwarenessChange),this.on(`stateless`,this.configuration.onStateless),this.on(`unsyncedChanges`,this.configuration.onUnsyncedChanges),this.on(`authenticated`,this.configuration.onAuthenticated),this.on(`authenticationFailed`,this.configuration.onAuthenticationFailed),this.awareness?.on(`update`,()=>{this.emit(`awarenessUpdate`,{states:ws(this.awareness.getStates())})}),this.awareness?.on(`change`,()=>{this.emit(`awarenessChange`,{states:ws(this.awareness.getStates())})}),this.document.on(`update`,this.boundDocumentUpdateHandler),this.awareness?.on(`update`,this.boundAwarenessUpdateHandler),this.registerEventListeners(),this.configuration.forceSyncInterval&&typeof this.configuration.forceSyncInterval==`number`&&(this.intervals.forceSync=setInterval(this.forceSync.bind(this),this.configuration.forceSyncInterval)),this.manageSocket&&this.attach()}setConfiguration(e={}){e.websocketProvider||(this.manageSocket=!0,this.configuration.websocketProvider=new Ws(e)),this.configuration={...this.configuration,...e}}get document(){return this.configuration.document}get isAttached(){return this._isAttached}get awareness(){return this.configuration.awareness}get hasUnsyncedChanges(){return this.unsyncedChanges>0}resetUnsyncedChanges(){this.unsyncedChanges=1,this.emit(`unsyncedChanges`,{number:this.unsyncedChanges})}incrementUnsyncedChanges(){this.unsyncedChanges+=1,this.emit(`unsyncedChanges`,{number:this.unsyncedChanges})}decrementUnsyncedChanges(){this.unsyncedChanges>0&&--this.unsyncedChanges,this.unsyncedChanges===0&&(this.synced=!0),this.emit(`unsyncedChanges`,{number:this.unsyncedChanges})}forceSync(){this.resetUnsyncedChanges(),this.send(Zs,{document:this.document,documentName:this.effectiveName})}pageHide(){this.awareness&&os(this.awareness,[this.document.clientID],`page hide`)}registerEventListeners(){typeof window>`u`||!(`addEventListener`in window)||window.addEventListener(`pagehide`,this.boundPageHide)}sendStateless(e){this.send(Xs,{documentName:this.effectiveName,payload:e})}async sendToken(){let e;try{e=await this.getToken()}catch(e){this.permissionDeniedHandler(`Failed to get token during sendToken(): ${e}`);return}this.send(Js,{token:e??``,documentName:this.effectiveName})}get batchingEnabled(){return!!this.configuration.flushDelay&&typeof this.configuration.flushDelay==`number`}documentUpdateHandler(e,t){if(t!==this){if(!this.batchingEnabled){this.incrementUnsyncedChanges(),this.send(Qs,{update:e,documentName:this.effectiveName});return}this.pendingUpdates.length===0&&this.incrementUnsyncedChanges(),this.pendingUpdates.push(e),this.scheduleFlush()}}awarenessUpdateHandler({added:e,updated:t,removed:n},r){if(r===this)return;let i=e.concat(t).concat(n);if(!this.batchingEnabled){this.send(Ys,{awareness:this.awareness,clients:i,documentName:this.effectiveName});return}for(let e of i)this.pendingAwarenessClients.add(e);this.scheduleFlush()}scheduleFlush(){this.flushTimeout===null&&(this.flushTimeout=setTimeout(()=>{this.flushTimeout=null,this.flushPendingUpdates()},this.configuration.flushDelay))}flushPendingUpdates(){if(this.flushTimeout!==null&&(clearTimeout(this.flushTimeout),this.flushTimeout=null),this.pendingUpdates.length>0){let e=this.pendingUpdates.length===1?this.pendingUpdates[0]:na(this.pendingUpdates);this.pendingUpdates=[],this.send(Qs,{update:e,documentName:this.effectiveName})}if(this.pendingAwarenessClients.size>0){let e=Array.from(this.pendingAwarenessClients);this.pendingAwarenessClients.clear(),this.send(Ys,{awareness:this.awareness,clients:e,documentName:this.effectiveName})}}get synced(){return this.isSynced}set synced(e){this.isSynced!==e&&(this.isSynced=e,e&&this.emit(`synced`,{state:e}))}receiveStateless(e){this.emit(`stateless`,{payload:e})}async connect(){if(this.manageSocket)return this.configuration.websocketProvider.connect();console.warn(`HocuspocusProvider::connect() is deprecated and does not do anything. Please connect/disconnect on the websocketProvider, or attach/deattach providers.`)}disconnect(){if(this.manageSocket)return this.configuration.websocketProvider.disconnect();console.warn(`HocuspocusProvider::disconnect() is deprecated and does not do anything. Please connect/disconnect on the websocketProvider, or attach/deattach providers.`)}async onOpen(e){this.isAuthenticated=!1,this.emit(`open`,{event:e}),await this.sendToken(),this.startSync()}async getToken(){return typeof this.configuration.token==`function`?await this.configuration.token():this.configuration.token}startSync(){this.resetUnsyncedChanges(),this.send(Zs,{document:this.document,documentName:this.effectiveName}),this.awareness&&this.awareness.getLocalState()!==null&&this.send(Ys,{awareness:this.awareness,clients:[this.document.clientID],documentName:this.effectiveName})}send(e,t){if(!this._isAttached)return;let n=new Ks(e,t);this.emit(`outgoingMessage`,{message:n.message}),n.send(this.configuration.websocketProvider)}onMessage(e){let t=new Vs(e.data),{documentName:n}=Ds(t.readVarString());t.writeVarString(this.effectiveName),this.emit(`message`,{event:e,message:new Vs(e.data)}),new Gs(t).apply(this,!0)}onClose(){this.isAuthenticated=!1,this.synced=!1,this.flushTimeout!==null&&(clearTimeout(this.flushTimeout),this.flushTimeout=null),this.pendingUpdates=[],this.pendingAwarenessClients.clear(),this.awareness&&os(this.awareness,Array.from(this.awareness.getStates().keys()).filter(e=>e!==this.document.clientID),this)}destroy(){this.emit(`destroy`),this.intervals.forceSync&&clearInterval(this.intervals.forceSync),this.awareness&&(os(this.awareness,[this.document.clientID],`provider destroy`),this.awareness.off(`update`,this.boundAwarenessUpdateHandler),this.awareness.destroy()),this.flushPendingUpdates(),this.document.off(`update`,this.boundDocumentUpdateHandler),this.removeAllListeners(),this.detach(),this.manageSocket&&this.configuration.websocketProvider.destroy(),!(typeof window>`u`||!(`removeEventListener`in window))&&window.removeEventListener(`pagehide`,this.boundPageHide)}detach(){this.configuration.websocketProvider.off(`connect`,this.configuration.onConnect),this.configuration.websocketProvider.off(`connect`,this.forwardConnect),this.configuration.websocketProvider.off(`status`,this.forwardStatus),this.configuration.websocketProvider.off(`status`,this.configuration.onStatus),this.configuration.websocketProvider.off(`open`,this.boundOnOpen),this.configuration.websocketProvider.off(`close`,this.boundOnClose),this.configuration.websocketProvider.off(`close`,this.configuration.onClose),this.configuration.websocketProvider.off(`close`,this.forwardClose),this.configuration.websocketProvider.off(`disconnect`,this.configuration.onDisconnect),this.configuration.websocketProvider.off(`disconnect`,this.forwardDisconnect),this.configuration.websocketProvider.off(`destroy`,this.configuration.onDestroy),this.configuration.websocketProvider.off(`destroy`,this.forwardDestroy),this.configuration.websocketProvider.detach(this),this._isAttached=!1}attach(){this._isAttached||=(this.configuration.websocketProvider.on(`connect`,this.configuration.onConnect),this.configuration.websocketProvider.on(`connect`,this.forwardConnect),this.configuration.websocketProvider.on(`status`,this.configuration.onStatus),this.configuration.websocketProvider.on(`status`,this.forwardStatus),this.configuration.websocketProvider.on(`open`,this.boundOnOpen),this.configuration.websocketProvider.on(`close`,this.boundOnClose),this.configuration.websocketProvider.on(`close`,this.configuration.onClose),this.configuration.websocketProvider.on(`close`,this.forwardClose),this.configuration.websocketProvider.on(`disconnect`,this.configuration.onDisconnect),this.configuration.websocketProvider.on(`disconnect`,this.forwardDisconnect),this.configuration.websocketProvider.on(`destroy`,this.configuration.onDestroy),this.configuration.websocketProvider.on(`destroy`,this.forwardDestroy),this.configuration.websocketProvider.attach(this),!0)}permissionDeniedHandler(e){this.emit(`authenticationFailed`,{reason:e}),this.isAuthenticated=!1}authenticatedHandler(e){this.isAuthenticated=!0,this.authorizedScope=e,this.emit(`authenticated`,{scope:e})}setAwarenessField(e,t){if(!this.awareness)throw new $s(`Cannot set awareness field "${e}" to ${JSON.stringify(t)}. You have disabled Awareness for this provider by explicitly passing awareness: null in the provider configuration.`);this.awareness.setLocalStateField(e,t)}};export{vi as A,jt as B,I as C,ii as D,Ai as E,wa as F,C as G,_t as H,or as I,a as J,m as K,P as L,yi as M,Dr as N,ui as O,ji as P,Ht as R,Nr as S,Ti as T,ot as U,xt as V,S as W,n as X,e as Y,yo as _,K as a,Oi as b,zr as c,ki as d,Qi as f,fo as g,mo as h,ls as i,kr as j,R as k,Y as l,co as m,bs as n,q as o,Ga as p,re as q,fs as r,J as s,ec as t,bi as u,ti as v,xi as w,Di as x,ei as y,Bt as z};