yjs-bundle
Version:
bundles several yjs packages in a single module in order to avoid "Yjs was already imported" problems
1 lines • 217 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):(e="undefined"!=typeof globalThis?globalThis:e||self,function(){var n=e.yjs,r=e.yjs={};t(r),r.noConflict=function(){return e.yjs=n,r}}())}(this,(function(e){"use strict";const t=()=>new Map,n=e=>{const n=t();return e.forEach(((e,t)=>{n.set(t,e)})),n},r=(e,t,n)=>{let r=e.get(t);return void 0===r&&e.set(t,r=n()),r},s=()=>new Set,i=e=>e[e.length-1],o=(e,t)=>{for(let n=0;n<t.length;n++)e.push(t[n])},a=Array.from,c=Array.isArray;class l{constructor(){this._observers=t()}on(e,t){return r(this._observers,e,s).add(t),t}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,n){return a((this._observers.get(e)||t()).values()).forEach((e=>e(...n)))}destroy(){this._observers=t()}}class h{constructor(){this._observers=t()}on(e,t){r(this._observers,e,s).add(t)}once(e,t){const n=(...r)=>{this.off(e,n),t(...r)};this.on(e,n)}off(e,t){const n=this._observers.get(e);void 0!==n&&(n.delete(t),0===n.size&&this._observers.delete(e))}emit(e,n){return a((this._observers.get(e)||t()).values()).forEach((e=>e(...n)))}destroy(){this._observers=t()}}const u=Math.floor,d=Math.abs,f=Math.log10,p=(e,t)=>e<t?e:t,g=(e,t)=>e>t?e:t,y=Math.pow,m=e=>0!==e?e<0:1/e<0,w=64,b=128,_=127,v=Number.MAX_SAFE_INTEGER,E=Number.isInteger||(e=>"number"==typeof e&&isFinite(e)&&u(e)===e),k=String.fromCharCode,C=/^\s*/g,S=/([A-Z])/g,T=(e,t)=>(e=>e.replace(C,""))(e.replace(S,(e=>`${t}${(e=>e.toLowerCase())(e)}`))),A="undefined"!=typeof TextEncoder?new TextEncoder:null,R=A?e=>A.encode(e):e=>{const 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};let D="undefined"==typeof TextDecoder?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});D&&1===D.decode(new Uint8Array).length&&(D=null);const I=(e,t)=>((e,t)=>{const n=new Array(e);for(let r=0;r<e;r++)n[r]=t(r,n);return n})(t,(()=>e)).join("");class x{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const M=()=>new x,L=e=>{let t=e.cpos;for(let n=0;n<e.bufs.length;n++)t+=e.bufs[n].length;return t},O=e=>{const t=new Uint8Array(L(e));let n=0;for(let r=0;r<e.bufs.length;r++){const s=e.bufs[r];t.set(s,n),n+=s.length}return t.set(new Uint8Array(e.cbuf.buffer,0,e.cpos),n),t},N=(e,t)=>{const n=e.cbuf.length;e.cpos===n&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(2*n),e.cpos=0),e.cbuf[e.cpos++]=t},U=N,P=(e,t)=>{for(;t>_;)N(e,b|_&t),t=u(t/128);N(e,_&t)},F=(e,t)=>{const n=m(t);for(n&&(t=-t),N(e,(t>63?b:0)|(n?w:0)|63&t),t=u(t/64);t>0;)N(e,(t>_?b:0)|_&t),t=u(t/128)},j=new Uint8Array(3e4),B=j.length/3,V=A&&A.encodeInto?(e,t)=>{if(t.length<B){const n=A.encodeInto(t,j).written||0;P(e,n);for(let t=0;t<n;t++)N(e,j[t])}else H(e,R(t))}:(e,t)=>{const n=unescape(encodeURIComponent(t)),r=n.length;P(e,r);for(let t=0;t<r;t++)N(e,n.codePointAt(t))},W=(e,t)=>{const n=e.cbuf.length,r=e.cpos,s=p(n-r,t.length),i=t.length-s;e.cbuf.set(t.subarray(0,s),r),e.cpos+=s,i>0&&(e.bufs.push(e.cbuf),e.cbuf=new Uint8Array(g(2*n,i)),e.cbuf.set(t.subarray(s)),e.cpos=i)},H=(e,t)=>{P(e,t.byteLength),W(e,t)},q=(e,t)=>{((e,t)=>{const n=e.cbuf.length;n-e.cpos<t&&(e.bufs.push(new Uint8Array(e.cbuf.buffer,0,e.cpos)),e.cbuf=new Uint8Array(2*g(n,t)),e.cpos=0)})(e,t);const n=new DataView(e.cbuf.buffer,e.cpos,t);return e.cpos+=t,n},z=new DataView(new ArrayBuffer(4)),K=(e,t)=>{switch(typeof t){case"string":N(e,119),V(e,t);break;case"number":E(t)&&d(t)<=2147483647?(N(e,125),F(e,t)):(n=t,z.setFloat32(0,n),z.getFloat32(0)===n?(N(e,124),((e,t)=>{q(e,4).setFloat32(0,t,!1)})(e,t)):(N(e,123),((e,t)=>{q(e,8).setFloat64(0,t,!1)})(e,t)));break;case"bigint":N(e,122),((e,t)=>{q(e,8).setBigInt64(0,t,!1)})(e,t);break;case"object":if(null===t)N(e,126);else if(c(t)){N(e,117),P(e,t.length);for(let n=0;n<t.length;n++)K(e,t[n])}else if(t instanceof Uint8Array)N(e,116),H(e,t);else{N(e,118);const n=Object.keys(t);P(e,n.length);for(let r=0;r<n.length;r++){const s=n[r];V(e,s),K(e,t[s])}}break;case"boolean":N(e,t?120:121);break;default:N(e,127)}var n};class Y extends x{constructor(e){super(),this.w=e,this.s=null,this.count=0}write(e){this.s===e?this.count++:(this.count>0&&P(this,this.count-1),this.count=1,this.w(this,e),this.s=e)}}const J=e=>{e.count>0&&(F(e.encoder,1===e.count?e.s:-e.s),e.count>1&&P(e.encoder,e.count-2))};class ${constructor(){this.encoder=new x,this.s=0,this.count=0}write(e){this.s===e?this.count++:(J(this),this.count=1,this.s=e)}toUint8Array(){return J(this),O(this.encoder)}}const G=e=>{if(e.count>0){const t=2*e.diff+(1===e.count?0:1);F(e.encoder,t),e.count>1&&P(e.encoder,e.count-2)}};class X{constructor(){this.encoder=new x,this.s=0,this.count=0,this.diff=0}write(e){this.diff===e-this.s?(this.s=e,this.count++):(G(this),this.count=1,this.diff=e-this.s,this.s=e)}toUint8Array(){return G(this),O(this.encoder)}}class Z{constructor(){this.sarr=[],this.s="",this.lensE=new $}write(e){this.s+=e,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(e.length)}toUint8Array(){const e=new x;return this.sarr.push(this.s),this.s="",V(e,this.sarr.join("")),W(e,this.lensE.toUint8Array()),O(e)}}const Q=e=>new Error(e),ee=()=>{throw Q("Method unimplemented")},te=()=>{throw Q("Unexpected case")},ne=Q("Unexpected end of array"),re=Q("Integer out of Range");class se{constructor(e){this.arr=e,this.pos=0}}const ie=e=>new se(e),oe=e=>e.pos!==e.arr.length,ae=e=>((e,t)=>{const n=new Uint8Array(e.arr.buffer,e.pos+e.arr.byteOffset,t);return e.pos+=t,n})(e,le(e)),ce=e=>e.arr[e.pos++],le=e=>{let t=0,n=1;const r=e.arr.length;for(;e.pos<r;){const r=e.arr[e.pos++];if(t+=(r&_)*n,n*=128,r<b)return t;if(t>v)throw re}throw ne},he=e=>{let t=e.arr[e.pos++],n=63&t,r=64;const s=(t&w)>0?-1:1;if(!(t&b))return s*n;const i=e.arr.length;for(;e.pos<i;){if(t=e.arr[e.pos++],n+=(t&_)*r,r*=128,t<b)return s*n;if(n>v)throw re}throw ne},ue=D?e=>D.decode(ae(e)):e=>{let t=le(e);if(0===t)return"";{let n=String.fromCodePoint(ce(e));if(--t<100)for(;t--;)n+=String.fromCodePoint(ce(e));else for(;t>0;){const r=t<1e4?t:1e4,s=e.arr.subarray(e.pos,e.pos+r);e.pos+=r,n+=String.fromCodePoint.apply(null,s),t-=r}return decodeURIComponent(escape(n))}},de=(e,t)=>{const n=new DataView(e.arr.buffer,e.arr.byteOffset+e.pos,t);return e.pos+=t,n},fe=[e=>{},e=>null,he,e=>de(e,4).getFloat32(0,!1),e=>de(e,8).getFloat64(0,!1),e=>de(e,8).getBigInt64(0,!1),e=>!1,e=>!0,ue,e=>{const t=le(e),n={};for(let r=0;r<t;r++){n[ue(e)]=pe(e)}return n},e=>{const t=le(e),n=[];for(let r=0;r<t;r++)n.push(pe(e));return n},ae],pe=e=>fe[127-ce(e)](e);class ge extends se{constructor(e,t){super(e),this.reader=t,this.s=null,this.count=0}read(){return 0===this.count&&(this.s=this.reader(this),oe(this)?this.count=le(this)+1:this.count=-1),this.count--,this.s}}class ye extends se{constructor(e){super(e),this.s=0,this.count=0}read(){if(0===this.count){this.s=he(this);const e=m(this.s);this.count=1,e&&(this.s=-this.s,this.count=le(this)+2)}return this.count--,this.s}}class me extends se{constructor(e){super(e),this.s=0,this.count=0,this.diff=0}read(){if(0===this.count){const e=he(this),t=1&e;this.diff=u(e/2),this.count=1,t&&(this.count=le(this)+2)}return this.s+=this.diff,this.count--,this.s}}class we{constructor(e){this.decoder=new ye(e),this.str=ue(this.decoder),this.spos=0}read(){const e=this.spos+this.decoder.read(),t=this.str.slice(this.spos,e);return this.spos=e,t}}const be=crypto.getRandomValues.bind(crypto),_e=Math.random,ve=()=>be(new Uint32Array(1))[0],Ee=[1e7]+-1e3+-4e3+-8e3+-1e11,ke=()=>Ee.replace(/[018]/g,(e=>(e^ve()&15>>e/4).toString(16))),Ce=Date.now,Se=e=>new Promise(e);Promise.all.bind(Promise);const Te=e=>Promise.resolve(e),Ae=e=>void 0===e?null:e;let Re=new class{constructor(){this.map=new Map}setItem(e,t){this.map.set(e,t)}getItem(e){return this.map.get(e)}},De=!0;try{"undefined"!=typeof localStorage&&localStorage&&(Re=localStorage,De=!1)}catch(e){}const Ie=Re,xe=Object.assign,Me=Object.keys,Le=e=>Me(e).length,Oe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Ne=(e,t,n=0)=>{try{for(;n<e.length;n++)e[n](...t)}finally{n<e.length&&Ne(e,t,n+1)}},Ue=()=>{},Pe=e=>e,Fe=(e,t)=>{if(null==e||null==t)return((e,t)=>e===t)(e,t);if(e.constructor!==t.constructor)return!1;if(e===t)return!0;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(const n of e)if(!t.has(n))return!1;break;case Map:if(e.size!==t.size)return!1;for(const n of e.keys())if(!t.has(n)||!Fe(e.get(n),t.get(n)))return!1;break;case Object:if(Le(e)!==Le(t))return!1;for(const n in e)if(!Oe(e,n)||!Fe(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(!Fe(e[n],t[n]))return!1;break;default:return!1}return!0},je="undefined"!=typeof process&&process.release&&/node|io\.js/.test(process.release.name)&&"[object process]"===Object.prototype.toString.call("undefined"!=typeof process?process:0),Be="undefined"!=typeof window&&"undefined"!=typeof document&&!je;let Ve;"undefined"!=typeof navigator&&/Mac/.test(navigator.platform);const We=e=>(()=>{if(void 0===Ve)if(je){Ve=t();const e=process.argv;let n=null;for(let t=0;t<e.length;t++){const r=e[t];"-"===r[0]?(null!==n&&Ve.set(n,""),n=r):null!==n&&(Ve.set(n,r),n=null)}null!==n&&Ve.set(n,"")}else"object"==typeof location?(Ve=t(),(location.search||"?").slice(1).split("&").forEach((e=>{if(0!==e.length){const[t,n]=e.split("=");Ve.set(`--${T(t,"-")}`,n),Ve.set(`-${T(t,"-")}`,n)}}))):Ve=t();return Ve})().has(e),He=e=>Ae(je?process.env[e.toUpperCase().replaceAll("-","_")]:Ie.getItem(e));var qe;We("--"+(qe="production"))||He(qe);const ze=je&&(Ke=process.env.FORCE_COLOR,["true","1","2"].includes(Ke));var Ke;const Ye=!We("no-colors")&&(!je||process.stdout.isTTY||ze)&&(!je||We("color")||ze||null!==He("COLORTERM")||(He("TERM")||"").includes("color")),Je=e=>new Uint8Array(e),$e=Be?e=>{let t="";for(let n=0;n<e.byteLength;n++)t+=k(e[n]);return btoa(t)}:e=>Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"),Ge=Be?e=>{const t=atob(e),n=Je(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}:e=>{const t=Buffer.from(e,"base64");return((e,t,n)=>new Uint8Array(e,t,n))(t.buffer,t.byteOffset,t.byteLength)};class Xe{constructor(e,t){this.left=e,this.right=t}}const Ze=(e,t)=>new Xe(e,t),Qe="undefined"!=typeof document?document:{};"undefined"!=typeof DOMParser&&new DOMParser;Qe.ELEMENT_NODE,Qe.TEXT_NODE,Qe.CDATA_SECTION_NODE,Qe.COMMENT_NODE,Qe.DOCUMENT_NODE,Qe.DOCUMENT_TYPE_NODE,Qe.DOCUMENT_FRAGMENT_NODE;const et=JSON.stringify,tt=Symbol,nt=tt(),rt=tt(),st=tt(),it=tt(),ot=tt(),at=tt(),ct=tt(),lt=tt(),ht=tt(),ut=[ot,ct,lt,st];let dt=0,ft=Ce();const pt={[nt]:Ze("font-weight","bold"),[rt]:Ze("font-weight","normal"),[st]:Ze("color","blue"),[ot]:Ze("color","green"),[it]:Ze("color","grey"),[at]:Ze("color","red"),[ct]:Ze("color","purple"),[lt]:Ze("color","orange"),[ht]:Ze("color","black")},gt=Ye?e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());const n=[],r=[],s=t();let i=[],o=0;for(;o<e.length;o++){const t=e[o],i=pt[t];if(void 0!==i)s.set(i.left,i.right);else{if(void 0===t)break;if(t.constructor!==String&&t.constructor!==Number)break;{const e=((e,t)=>{const n=[];for(const[r,s]of e)n.push(t(s,r));return n})(s,((e,t)=>`${t}:${e};`)).join("");o>0||e.length>0?(n.push("%c"+t),r.push(e)):n.push(t)}}}for(o>0&&(i=r,i.unshift(n.join("")));o<e.length;o++){const t=e[o];t instanceof Symbol||i.push(t)}return i}:e=>{1===e.length&&e[0]?.constructor===Function&&(e=e[0]());const t=[];let n=0;for(;n<e.length;n++){const r=e[n];void 0===r||r.constructor===String||r.constructor===Number||r.constructor===Object&&t.push(JSON.stringify(r))}return t},yt=(...e)=>{console.log(...gt(e)),mt.forEach((t=>t.print(e)))},mt=s(),wt=e=>({[Symbol.iterator](){return this},next:e}),bt=(e,t)=>wt((()=>{const{done:n,value:r}=e.next();return{done:n,value:n?void 0:t(r)}}));class _t{constructor(e,t){this.clock=e,this.len=t}}class vt{constructor(){this.clients=new Map}}const Et=(e,t,n)=>t.clients.forEach(((t,r)=>{const s=e.doc.store.clients.get(r);for(let r=0;r<t.length;r++){const i=t[r];Mn(e,s,i.clock,i.len,n)}})),kt=(e,t)=>{const n=e.clients.get(t.client);return void 0!==n&&null!==((e,t)=>{let n=0,r=e.length-1;for(;n<=r;){const s=u((n+r)/2),i=e[s],o=i.clock;if(o<=t){if(t<o+i.len)return s;n=s+1}else r=s-1}return null})(n,t.clock)},Ct=e=>{e.clients.forEach((e=>{let t,n;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,n=1;t<e.length;t++){const r=e[n-1],s=e[t];r.clock+r.len>=s.clock?r.len=g(r.len,s.clock+s.len-r.clock):(n<t&&(e[n]=s),n++)}e.length=n}))},St=e=>{const t=new vt;for(let n=0;n<e.length;n++)e[n].clients.forEach(((r,s)=>{if(!t.clients.has(s)){const i=r.slice();for(let t=n+1;t<e.length;t++)o(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}}));return Ct(t),t},Tt=(e,t,n,s)=>{r(e.clients,t,(()=>[])).push(new _t(n,s))},At=()=>new vt,Rt=e=>{const t=At();return e.clients.forEach(((e,n)=>{const r=[];for(let t=0;t<e.length;t++){const n=e[t];if(n.deleted){const s=n.id.clock;let i=n.length;if(t+1<e.length)for(let n=e[t+1];t+1<e.length&&n.deleted;n=e[1+ ++t])i+=n.length;r.push(new _t(s,i))}}r.length>0&&t.clients.set(n,r)})),t},Dt=(e,t)=>{P(e.restEncoder,t.clients.size),a(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,n])=>{e.resetDsCurVal(),P(e.restEncoder,t);const r=n.length;P(e.restEncoder,r);for(let t=0;t<r;t++){const r=n[t];e.writeDsClock(r.clock),e.writeDsLen(r.len)}}))},It=e=>{const t=new vt,n=le(e.restDecoder);for(let s=0;s<n;s++){e.resetDsCurVal();const n=le(e.restDecoder),s=le(e.restDecoder);if(s>0){const i=r(t.clients,n,(()=>[]));for(let t=0;t<s;t++)i.push(new _t(e.readDsClock(),e.readDsLen()))}}return t},xt=(e,t,n)=>{const r=new vt,s=le(e.restDecoder);for(let i=0;i<s;i++){e.resetDsCurVal();const s=le(e.restDecoder),i=le(e.restDecoder),o=n.clients.get(s)||[],a=Sn(n,s);for(let n=0;n<i;n++){const n=e.readDsClock(),i=n+e.readDsLen();if(n<a){a<i&&Tt(r,s,a,i-a);let e=An(o,n),c=o[e];for(!c.deleted&&c.id.clock<n&&(o.splice(e+1,0,As(t,c,n-c.id.clock)),e++);e<o.length&&(c=o[e++],c.id.clock<i);)c.deleted||(i<c.id.clock+c.length&&o.splice(e,0,As(t,c,i-c.id.clock)),c.delete(t))}else Tt(r,s,n,i-n)}}if(r.clients.size>0){const e=new Wt;return P(e.restEncoder,0),Dt(e,r),e.toUint8Array()}return null},Mt=(e,t)=>{if(e.clients.size!==t.clients.size)return!1;for(const[n,r]of e.clients.entries()){const e=t.clients.get(n);if(void 0===e||r.length!==e.length)return!1;for(let t=0;t<r.length;t++){const n=r[t],s=e[t];if(n.clock!==s.clock||n.len!==s.len)return!1}}return!0},Lt=ve;class Ot extends l{constructor({guid:e=ke(),collectionid:t=null,gc:n=!0,gcFilter:r=(()=>!0),meta:s=null,autoLoad:i=!1,shouldLoad:o=!0}={}){super(),this.gc=n,this.gcFilter=r,this.clientID=Lt(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new kn,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=o,this.autoLoad=i,this.meta=s,this.isLoaded=!1,this.isSynced=!1,this.whenLoaded=Se((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const a=()=>Se((e=>{const t=n=>{void 0!==n&&!0!==n||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=a()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=a()}load(){const e=this._item;null===e||this.shouldLoad||Bn(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(a(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return Bn(this,e,t)}get(e,t=gr){const n=r(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),s=n.constructor;if(t!==gr&&s!==t){if(s===gr){const r=new t;r._map=n._map,n._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=r})),r._start=n._start;for(let e=r._start;null!==e;e=e.right)e.parent=r;return r._length=n._length,this.share.set(e,r),r._integrate(this,null),r}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return n}getArray(e=""){return this.get(e,Or)}getText(e=""){return this.get(e,Zr)}getMap(e=""){return this.get(e,Ur)}getXmlElement(e=""){return this.get(e,ts)}getXmlFragment(e=""){return this.get(e,es)}toJSON(){const e={};return this.share.forEach(((t,n)=>{e[n]=t.toJSON()})),e}destroy(){a(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new Ot({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,Bn(e.parent.doc,(n=>{const r=t.doc;e.deleted||n.subdocsAdded.add(r),n.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class Nt{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return le(this.restDecoder)}readDsLen(){return le(this.restDecoder)}}class Ut extends Nt{readLeftID(){return cn(le(this.restDecoder),le(this.restDecoder))}readRightID(){return cn(le(this.restDecoder),le(this.restDecoder))}readClient(){return le(this.restDecoder)}readInfo(){return ce(this.restDecoder)}readString(){return ue(this.restDecoder)}readParentInfo(){return 1===le(this.restDecoder)}readTypeRef(){return le(this.restDecoder)}readLen(){return le(this.restDecoder)}readAny(){return pe(this.restDecoder)}readBuf(){return(e=>{const t=Je(e.byteLength);return t.set(e),t})(ae(this.restDecoder))}readJSON(){return JSON.parse(ue(this.restDecoder))}readKey(){return ue(this.restDecoder)}}class Pt{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=le(this.restDecoder),this.dsCurrVal}readDsLen(){const e=le(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class Ft extends Pt{constructor(e){super(e),this.keys=[],le(e),this.keyClockDecoder=new me(ae(e)),this.clientDecoder=new ye(ae(e)),this.leftClockDecoder=new me(ae(e)),this.rightClockDecoder=new me(ae(e)),this.infoDecoder=new ge(ae(e),ce),this.stringDecoder=new we(ae(e)),this.parentInfoDecoder=new ge(ae(e),ce),this.typeRefDecoder=new ye(ae(e)),this.lenDecoder=new ye(ae(e))}readLeftID(){return new on(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new on(this.clientDecoder.read(),this.rightClockDecoder.read())}readClient(){return this.clientDecoder.read()}readInfo(){return this.infoDecoder.read()}readString(){return this.stringDecoder.read()}readParentInfo(){return 1===this.parentInfoDecoder.read()}readTypeRef(){return this.typeRefDecoder.read()}readLen(){return this.lenDecoder.read()}readAny(){return pe(this.restDecoder)}readBuf(){return ae(this.restDecoder)}readJSON(){return pe(this.restDecoder)}readKey(){const e=this.keyClockDecoder.read();if(e<this.keys.length)return this.keys[e];{const e=this.stringDecoder.read();return this.keys.push(e),e}}}class jt{constructor(){this.restEncoder=M()}toUint8Array(){return O(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){P(this.restEncoder,e)}writeDsLen(e){P(this.restEncoder,e)}}class Bt extends jt{writeLeftID(e){P(this.restEncoder,e.client),P(this.restEncoder,e.clock)}writeRightID(e){P(this.restEncoder,e.client),P(this.restEncoder,e.clock)}writeClient(e){P(this.restEncoder,e)}writeInfo(e){U(this.restEncoder,e)}writeString(e){V(this.restEncoder,e)}writeParentInfo(e){P(this.restEncoder,e?1:0)}writeTypeRef(e){P(this.restEncoder,e)}writeLen(e){P(this.restEncoder,e)}writeAny(e){K(this.restEncoder,e)}writeBuf(e){H(this.restEncoder,e)}writeJSON(e){V(this.restEncoder,JSON.stringify(e))}writeKey(e){V(this.restEncoder,e)}}class Vt{constructor(){this.restEncoder=M(),this.dsCurrVal=0}toUint8Array(){return O(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,P(this.restEncoder,t)}writeDsLen(e){0===e&&te(),P(this.restEncoder,e-1),this.dsCurrVal+=e}}class Wt extends Vt{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new X,this.clientEncoder=new $,this.leftClockEncoder=new X,this.rightClockEncoder=new X,this.infoEncoder=new Y(U),this.stringEncoder=new Z,this.parentInfoEncoder=new Y(U),this.typeRefEncoder=new $,this.lenEncoder=new $}toUint8Array(){const e=M();return P(e,0),H(e,this.keyClockEncoder.toUint8Array()),H(e,this.clientEncoder.toUint8Array()),H(e,this.leftClockEncoder.toUint8Array()),H(e,this.rightClockEncoder.toUint8Array()),H(e,O(this.infoEncoder)),H(e,this.stringEncoder.toUint8Array()),H(e,O(this.parentInfoEncoder)),H(e,this.typeRefEncoder.toUint8Array()),H(e,this.lenEncoder.toUint8Array()),W(e,O(this.restEncoder)),O(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?1:0)}writeTypeRef(e){this.typeRefEncoder.write(e)}writeLen(e){this.lenEncoder.write(e)}writeAny(e){K(this.restEncoder,e)}writeBuf(e){H(this.restEncoder,e)}writeJSON(e){K(this.restEncoder,e)}writeKey(e){const t=this.keyMap.get(e);void 0===t?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(e)):this.keyClockEncoder.write(t)}}const Ht=(e,t,n)=>{const r=new Map;n.forEach(((e,n)=>{Sn(t,n)>e&&r.set(n,e)})),Cn(t).forEach(((e,t)=>{n.has(t)||r.set(t,0)})),P(e.restEncoder,r.size),a(r.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([n,r])=>{((e,t,n,r)=>{r=g(r,t[0].id.clock);const s=An(t,r);P(e.restEncoder,t.length-s),e.writeClient(n),P(e.restEncoder,r);const i=t[s];i.write(e,r-i.id.clock);for(let n=s+1;n<t.length;n++)t[n].write(e,0)})(e,t.clients.get(n),n,r)}))},qt=(e,n,s,i=new Ft(e))=>Bn(n,(e=>{e.local=!1;let n=!1;const s=e.doc,o=s.store,c=((e,n)=>{const r=t(),s=le(e.restDecoder);for(let t=0;t<s;t++){const t=le(e.restDecoder),s=new Array(t),i=e.readClient();let o=le(e.restDecoder);r.set(i,{i:0,refs:s});for(let r=0;r<t;r++){const t=e.readInfo();switch(31&t){case 0:{const t=e.readLen();s[r]=new os(cn(i,o),t),o+=t;break}case 10:{const t=le(e.restDecoder);s[r]=new Ls(cn(i,o),t),o+=t;break}default:{const a=!(192&t),c=new Is(cn(i,o),null,(t&b)===b?e.readLeftID():null,null,(t&w)===w?e.readRightID():null,a?e.readParentInfo()?n.get(e.readString()):e.readLeftID():null,!a||32&~t?null:e.readString(),xs(e,t));s[r]=c,o+=c.length}}}}return r})(i,s),l=((e,t,n)=>{const s=[];let i=a(n.keys()).sort(((e,t)=>e-t));if(0===i.length)return null;const o=()=>{if(0===i.length)return null;let e=n.get(i[i.length-1]);for(;e.refs.length===e.i;){if(i.pop(),!(i.length>0))return null;e=n.get(i[i.length-1])}return e};let c=o();if(null===c)return null;const l=new kn,h=new Map,u=(e,t)=>{const n=h.get(e);(null==n||n>t)&&h.set(e,t)};let d=c.refs[c.i++];const f=new Map,p=()=>{for(const e of s){const t=e.id.client,r=n.get(t);r?(r.i--,l.clients.set(t,r.refs.slice(r.i)),n.delete(t),r.i=0,r.refs=[]):l.clients.set(t,[e]),i=i.filter((e=>e!==t))}s.length=0};for(;;){if(d.constructor!==Ls){const i=r(f,d.id.client,(()=>Sn(t,d.id.client)))-d.id.clock;if(i<0)s.push(d),u(d.id.client,d.id.clock-1),p();else{const r=d.getMissing(e,t);if(null!==r){s.push(d);const e=n.get(r)||{refs:[],i:0};if(e.refs.length!==e.i){d=e.refs[e.i++];continue}u(r,Sn(t,r)),p()}else(0===i||i<d.length)&&(d.integrate(e,i),f.set(d.id.client,d.id.clock+d.length))}}if(s.length>0)d=s.pop();else if(null!==c&&c.i<c.refs.length)d=c.refs[c.i++];else{if(c=o(),null===c)break;d=c.refs[c.i++]}}if(l.clients.size>0){const e=new Wt;return Ht(e,l,new Map),P(e.restEncoder,0),{missing:h,update:e.toUint8Array()}}return null})(e,o,c),h=o.pendingStructs;if(h){for(const[e,t]of h.missing)if(t<Sn(o,e)){n=!0;break}if(l){for(const[e,t]of l.missing){const n=h.missing.get(e);(null==n||n>t)&&h.missing.set(e,t)}h.update=Zn([h.update,l.update])}}else o.pendingStructs=l;const u=xt(i,e,o);if(o.pendingDs){const t=new Ft(ie(o.pendingDs));le(t.restDecoder);const n=xt(t,e,o);o.pendingDs=u&&n?Zn([u,n]):u||n}else o.pendingDs=u;if(n){const t=o.pendingStructs.update;o.pendingStructs=null,zt(e.doc,t)}}),s,!1),zt=(e,t,n,r=Ft)=>{const s=ie(t);qt(s,e,n,new r(s))},Kt=(e,t,n)=>zt(e,t,n,Ut),Yt=(e,t=new Uint8Array([0]),n=new Wt)=>{((e,t,n=new Map)=>{Ht(e,t.store,n),Dt(e,Rt(t.store))})(n,e,Gt(t));const r=[n.toUint8Array()];if(e.store.pendingDs&&r.push(e.store.pendingDs),e.store.pendingStructs&&r.push(Qn(e.store.pendingStructs.update,t)),r.length>1){if(n.constructor===Bt)return Jn(r.map(((e,t)=>0===t?e:ir(e))));if(n.constructor===Wt)return Zn(r)}return r[0]},Jt=(e,t)=>Yt(e,t,new Bt),$t=e=>{const t=new Map,n=le(e.restDecoder);for(let r=0;r<n;r++){const n=le(e.restDecoder),r=le(e.restDecoder);t.set(n,r)}return t},Gt=e=>$t(new Nt(ie(e))),Xt=(e,t)=>(P(e.restEncoder,t.size),a(t.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,n])=>{P(e.restEncoder,t),P(e.restEncoder,n)})),e),Zt=(e,t=new Vt)=>(e instanceof Map?Xt(t,e):((e,t)=>{Xt(e,Cn(t.store))})(t,e),t.toUint8Array()),Qt=e=>Zt(e,new jt);class en{constructor(){this.l=[]}}const tn=()=>new en,nn=(e,t)=>e.l.push(t),rn=(e,t)=>{const 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.")},sn=(e,t,n)=>Ne(e.l,[t,n]);class on{constructor(e,t){this.client=e,this.clock=t}}const an=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,cn=(e,t)=>new on(e,t),ln=(e,t)=>{P(e,t.client),P(e,t.clock)},hn=e=>cn(le(e),le(e)),un=e=>{for(const[t,n]of e.doc.share.entries())if(n===e)return t;throw te()},dn=(e,t)=>{for(;null!==t;){if(t.parent===e)return!0;t=t.parent._item}return!1};class fn{constructor(e,t,n,r=0){this.type=e,this.tname=t,this.item=n,this.assoc=r}}class pn{constructor(e,t,n=0){this.type=e,this.index=t,this.assoc=n}}const gn=(e,t,n)=>{let r=null,s=null;return null===e._item?s=un(e):r=cn(e._item.id.client,e._item.id.clock),new fn(r,s,t,n)};class yn{constructor(e,t){this.ds=e,this.sv=t}}const mn=(e,t=new Vt)=>(Dt(t,e.ds),Xt(t,e.sv),t.toUint8Array()),wn=(e,t=new Pt(ie(e)))=>new yn(It(t),$t(t)),bn=(e,t)=>new yn(e,t),_n=bn(At(),new Map),vn=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!kt(t.ds,e.id),En=(e,t)=>{const n=r(e.meta,En,s),i=e.doc.store;n.has(t)||(t.sv.forEach(((t,n)=>{t<Sn(i,n)&&In(e,cn(n,t))})),Et(e,t.ds,(e=>{})),n.add(t))};class kn{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Cn=e=>{const t=new Map;return e.clients.forEach(((e,n)=>{const r=e[e.length-1];t.set(n,r.id.clock+r.length)})),t},Sn=(e,t)=>{const n=e.clients.get(t);if(void 0===n)return 0;const r=n[n.length-1];return r.id.clock+r.length},Tn=(e,t)=>{let n=e.clients.get(t.id.client);if(void 0===n)n=[],e.clients.set(t.id.client,n);else{const e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw te()}n.push(t)},An=(e,t)=>{let n=0,r=e.length-1,s=e[r],i=s.id.clock;if(i===t)return r;let o=u(t/(i+s.length-1)*r);for(;n<=r;){if(s=e[o],i=s.id.clock,i<=t){if(t<i+s.length)return o;n=o+1}else r=o-1;o=u((n+r)/2)}throw te()},Rn=(e,t)=>{const n=e.clients.get(t.client);return n[An(n,t.clock)]},Dn=(e,t,n)=>{const r=An(t,n),s=t[r];return s.id.clock<n&&s instanceof Is?(t.splice(r+1,0,As(e,s,n-s.id.clock)),r+1):r},In=(e,t)=>{const n=e.doc.store.clients.get(t.client);return n[Dn(e,n,t.clock)]},xn=(e,t,n)=>{const r=t.clients.get(n.client),s=An(r,n.clock),i=r[s];return n.clock!==i.id.clock+i.length-1&&i.constructor!==os&&r.splice(s+1,0,As(e,i,n.clock-i.id.clock+1)),i},Mn=(e,t,n,r,s)=>{if(0===r)return;const i=n+r;let o,a=Dn(e,t,n);do{o=t[a++],i<o.id.clock+o.length&&Dn(e,t,i),s(o)}while(a<t.length&&t[a].id.clock<i)};class Ln{constructor(e,t,n){this.doc=e,this.deleteSet=new vt,this.beforeState=Cn(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}}const On=(e,t)=>!(0===t.deleteSet.clients.size&&!((e,t)=>{for(const[n,r]of e)if(t(r,n))return!0;return!1})(t.afterState,((e,n)=>t.beforeState.get(n)!==e)))&&(Ct(t.deleteSet),((e,t)=>{Ht(e,t.doc.store,t.beforeState)})(e,t),Dt(e,t.deleteSet),!0),Nn=(e,t,n)=>{const i=t._item;(null===i||i.id.clock<(e.beforeState.get(i.id.client)||0)&&!i.deleted)&&r(e.changed,t,s).add(n)},Un=(e,t)=>{let n=e[t],r=e[t-1],s=t;for(;s>0&&(r.deleted===n.deleted&&r.constructor===n.constructor&&r.mergeWith(n));n=r,r=e[--s-1])n instanceof Is&&null!==n.parentSub&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,r);const i=t-s;return i&&e.splice(t+1-i,i),i},Pn=(e,t,n)=>{for(const[r,s]of e.clients.entries()){const e=t.clients.get(r);for(let r=s.length-1;r>=0;r--){const i=s[r],o=i.clock+i.len;for(let r=An(e,i.clock),s=e[r];r<e.length&&s.id.clock<o;s=e[++r]){const s=e[r];if(i.clock+i.len<=s.id.clock)break;s instanceof Is&&s.deleted&&!s.keep&&n(s)&&s.gc(t,!1)}}}},Fn=(e,t)=>{e.clients.forEach(((e,n)=>{const r=t.clients.get(n);for(let t=e.length-1;t>=0;t--){const n=e[t];for(let e=p(r.length-1,1+An(r,n.clock+n.len-1)),t=r[e];e>0&&t.id.clock>=n.clock;t=r[e])e-=1+Un(r,e)}}))},jn=(e,t)=>{if(t<e.length){const n=e[t],r=n.doc,s=r.store,i=n.deleteSet,o=n._mergeStructs;try{Ct(i),n.afterState=Cn(n.doc.store),r.emit("beforeObserverCalls",[n,r]);const e=[];n.changed.forEach(((t,r)=>e.push((()=>{null!==r._item&&r._item.deleted||r._callObserver(n,t)})))),e.push((()=>{n.changedParentTypes.forEach(((e,t)=>{t._dEH.l.length>0&&(null===t._item||!t._item.deleted)&&((e=e.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=t,e._path=null})),e.sort(((e,t)=>e.path.length-t.path.length)),sn(t._dEH,e,n))}))})),e.push((()=>r.emit("afterTransaction",[n,r]))),Ne(e,[]),n._needFormattingCleanup&&$r(n)}finally{r.gc&&Pn(i,s,r.gcFilter),Fn(i,s),n.afterState.forEach(((e,t)=>{const r=n.beforeState.get(t)||0;if(r!==e){const e=s.clients.get(t),n=g(An(e,r),1);for(let t=e.length-1;t>=n;)t-=1+Un(e,t)}}));for(let e=o.length-1;e>=0;e--){const{client:t,clock:n}=o[e].id,r=s.clients.get(t),i=An(r,n);i+1<r.length&&Un(r,i+1)>1||i>0&&Un(r,i)}if(n.local||n.afterState.get(r.clientID)===n.beforeState.get(r.clientID)||(yt(lt,nt,"[yjs] ",rt,at,"Changed the client-id because another client seems to be using it."),r.clientID=Lt()),r.emit("afterTransactionCleanup",[n,r]),r._observers.has("update")){const e=new Bt;On(e,n)&&r.emit("update",[e.toUint8Array(),n.origin,r,n])}if(r._observers.has("updateV2")){const e=new Wt;On(e,n)&&r.emit("updateV2",[e.toUint8Array(),n.origin,r,n])}const{subdocsAdded:a,subdocsLoaded:c,subdocsRemoved:l}=n;(a.size>0||l.size>0||c.size>0)&&(a.forEach((e=>{e.clientID=r.clientID,null==e.collectionid&&(e.collectionid=r.collectionid),r.subdocs.add(e)})),l.forEach((e=>r.subdocs.delete(e))),r.emit("subdocs",[{loaded:c,added:a,removed:l},r,n]),l.forEach((e=>e.destroy()))),e.length<=t+1?(r._transactionCleanups=[],r.emit("afterAllTransactions",[r,e])):jn(e,t+1)}}},Bn=(e,t,n=null,r=!0)=>{const s=e._transactionCleanups;let i=!1,o=null;null===e._transaction&&(i=!0,e._transaction=new Ln(e,n,r),s.push(e._transaction),1===s.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{o=t(e._transaction)}finally{if(i){const t=e._transaction===s[0];e._transaction=null,t&&jn(s,0)}}return o};class Vn{constructor(e,t){this.insertions=t,this.deletions=e,this.meta=new Map}}const Wn=(e,t,n)=>{Et(e,n.deletions,(e=>{e instanceof Is&&t.scope.some((t=>dn(t,e)))&&Ts(e,!1)}))},Hn=(e,t,n)=>{let r=null;const s=e.doc,i=e.scope;if(Bn(s,(n=>{for(;t.length>0&&null===e.currStackItem;){const r=s.store,o=t.pop(),a=new Set,c=[];let l=!1;Et(n,o.insertions,(e=>{if(e instanceof Is){if(null!==e.redone){let{item:t,diff:s}=Ss(r,e.id);s>0&&(t=In(n,cn(t.id.client,t.id.clock+s))),e=t}!e.deleted&&i.some((t=>dn(t,e)))&&c.push(e)}})),Et(n,o.deletions,(e=>{e instanceof Is&&i.some((t=>dn(t,e)))&&!kt(o.insertions,e.id)&&a.add(e)})),a.forEach((t=>{l=null!==Ds(n,t,a,o.insertions,e.ignoreRemoteMapChanges,e)||l}));for(let t=c.length-1;t>=0;t--){const 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),null!=e.currStackItem){const t=r.changedParentTypes;e.emit("stack-item-popped",[{stackItem:e.currStackItem,type:n,changedParentTypes:t,origin:e},e]),e.currStackItem=null}return e.currStackItem};class qn{constructor(e,t){this.gen=function*(e){const t=le(e.restDecoder);for(let n=0;n<t;n++){const t=le(e.restDecoder),n=e.readClient();let r=le(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=le(e.restDecoder);yield new Ls(cn(n,r),t),r+=t}else if(31&t){const s=!(192&t),i=new Is(cn(n,r),null,(t&b)===b?e.readLeftID():null,null,(t&w)===w?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,!s||32&~t?null:e.readString(),xs(e,t));yield i,r+=i.length}else{const t=e.readLen();yield new os(cn(n,r),t),r+=t}}}}(e),this.curr=null,this.done=!1,this.filterSkips=t,this.next()}next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===Ls);return this.curr}}const zn=(e,t=Ft)=>{const n=[],r=new t(ie(e)),s=new qn(r,!1);for(let e=s.curr;null!==e;e=s.next())n.push(e);yt("Structs: ",n);const i=It(r);yt("DeleteSet: ",i)},Kn=(e,t=Ft)=>{const n=[],r=new t(ie(e)),s=new qn(r,!1);for(let e=s.curr;null!==e;e=s.next())n.push(e);return{structs:n,ds:It(r)}};class Yn{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const Jn=e=>Zn(e,Ut,Bt),$n=(e,t=Vt,n=Ft)=>{const r=new t,s=new qn(new n(ie(e)),!1);let i=s.curr;if(null!==i){let e=0,t=i.id.client,n=0!==i.id.clock,o=n?0:i.id.clock+i.length;for(;null!==i;i=s.next())t!==i.id.client&&(0!==o&&(e++,P(r.restEncoder,t),P(r.restEncoder,o)),t=i.id.client,o=0,n=0!==i.id.clock),i.constructor===Ls&&(n=!0),n||(o=i.id.clock+i.length);0!==o&&(e++,P(r.restEncoder,t),P(r.restEncoder,o));const a=M();return P(a,e),((e,t)=>{W(e,O(t))})(a,r.restEncoder),r.restEncoder=a,r.toUint8Array()}return P(r.restEncoder,0),r.toUint8Array()},Gn=(e,t=Ft)=>{const n=new Map,r=new Map,s=new qn(new t(ie(e)),!1);let i=s.curr;if(null!==i){let e=i.id.client,t=i.id.clock;for(n.set(e,t);null!==i;i=s.next())e!==i.id.client&&(r.set(e,t),n.set(i.id.client,i.id.clock),e=i.id.client),t=i.id.clock+i.length;r.set(e,t)}return{from:n,to:r}},Xn=(e,t)=>{if(e.constructor===os){const{client:n,clock:r}=e.id;return new os(cn(n,r+t),e.length-t)}if(e.constructor===Ls){const{client:n,clock:r}=e.id;return new Ls(cn(n,r+t),e.length-t)}{const n=e,{client:r,clock:s}=n.id;return new Is(cn(r,s+t),null,cn(r,s+t-1),null,n.rightOrigin,n.parent,n.parentSub,n.content.splice(t))}},Zn=(e,t=Ft,n=Wt)=>{if(1===e.length)return e[0];const r=e.map((e=>new t(ie(e))));let s=r.map((e=>new qn(e,!0))),i=null;const o=new n,a=new Yn(o);for(;s=s.filter((e=>null!==e.curr)),s.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const n=e.curr.id.clock-t.curr.id.clock;return 0===n?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===Ls?1:-1:n}return t.curr.id.client-e.curr.id.client})),0!==s.length;){const e=s[0],t=e.curr.id.client;if(null!==i){let n=e.curr,r=!1;for(;null!==n&&n.id.clock+n.length<=i.struct.id.clock+i.struct.length&&n.id.client>=i.struct.id.client;)n=e.next(),r=!0;if(null===n||n.id.client!==t||r&&n.id.clock>i.struct.id.clock+i.struct.length)continue;if(t!==i.struct.id.client)tr(a,i.struct,i.offset),i={struct:n,offset:0},e.next();else if(i.struct.id.clock+i.struct.length<n.id.clock)if(i.struct.constructor===Ls)i.struct.length=n.id.clock+n.length-i.struct.id.clock;else{tr(a,i.struct,i.offset);const e=n.id.clock-i.struct.id.clock-i.struct.length;i={struct:new Ls(cn(t,i.struct.id.clock+i.struct.length),e),offset:0}}else{const t=i.struct.id.clock+i.struct.length-n.id.clock;t>0&&(i.struct.constructor===Ls?i.struct.length-=t:n=Xn(n,t)),i.struct.mergeWith(n)||(tr(a,i.struct,i.offset),i={struct:n,offset:0},e.next())}}else i={struct:e.curr,offset:0},e.next();for(let n=e.curr;null!==n&&n.id.client===t&&n.id.clock===i.struct.id.clock+i.struct.length&&n.constructor!==Ls;n=e.next())tr(a,i.struct,i.offset),i={struct:n,offset:0}}null!==i&&(tr(a,i.struct,i.offset),i=null),nr(a);const c=r.map((e=>It(e))),l=St(c);return Dt(o,l),o.toUint8Array()},Qn=(e,t,n=Ft,r=Wt)=>{const s=Gt(t),i=new r,o=new Yn(i),a=new n(ie(e)),c=new qn(a,!1);for(;c.curr;){const e=c.curr,t=e.id.client,n=s.get(t)||0;if(c.curr.constructor!==Ls)if(e.id.clock+e.length>n)for(tr(o,e,g(n-e.id.clock,0)),c.next();c.curr&&c.curr.id.client===t;)tr(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();else c.next()}nr(o);const l=It(a);return Dt(i,l),i.toUint8Array()},er=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:O(e.encoder.restEncoder)}),e.encoder.restEncoder=M(),e.written=0)},tr=(e,t,n)=>{e.written>0&&e.currClient!==t.id.client&&er(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),P(e.encoder.restEncoder,t.id.clock+n)),t.write(e.encoder,n),e.written++},nr=e=>{er(e);const t=e.encoder.restEncoder;P(t,e.clientStructs.length);for(let n=0;n<e.clientStructs.length;n++){const r=e.clientStructs[n];P(t,r.written),W(t,r.restEncoder)}},rr=(e,t,n,r)=>{const s=new n(ie(e)),i=new qn(s,!1),o=new r,a=new Yn(o);for(let e=i.curr;null!==e;e=i.next())tr(a,t(e),0);nr(a);const c=It(s);return Dt(o,c),o.toUint8Array()},sr=({formatting:e=!0,subdocs:n=!0,yxml:s=!0}={})=>{let i=0;const o=t(),a=t(),c=t(),l=t();return l.set(null,null),t=>{switch(t.constructor){case os:case Ls:return t;case Is:{const h=t,u=h.content;switch(u.constructor){case cs:break;case Cs:if(s){const e=u.type;e instanceof ts&&(e.nodeName=r(a,e.nodeName,(()=>"node-"+i))),e instanceof rs&&(e.hookName=r(a,e.hookName,(()=>"hook-"+i)))}break;case ps:{const e=u;e.arr=e.arr.map((()=>i));break}case as:u.content=new Uint8Array([i]);break;case hs:{const e=u;n&&(e.opts={},e.doc.guid=i+"");break}case us:u.embed={};break;case ds:{const t=u;e&&(t.key=r(c,t.key,(()=>i+"")),t.value=r(l,t.value,(()=>({i:i}))));break}case fs:{const e=u;e.arr=e.arr.map((()=>i));break}case gs:{const e=u;e.str=I(i%10+"",e.str.length);break}default:te()}return h.parentSub&&(h.parentSub=r(o,h.parentSub,(()=>i+""))),i++,t}default:te()}}},ir=e=>rr(e,Pe,Ft,Bt),or="You must not compute changes after the event-handler fired.";class ar{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||(this._path=cr(this.currentTarget,this.target))}deletes(e){return kt(this.transaction.deleteSet,e.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw Q(or);const e=new Map,t=this.target;this.transaction.changed.get(t).forEach((n=>{if(null!==n){const r=t._map.get(n);let s,o;if(this.adds(r)){let e=r.left;for(;null!==e&&this.adds(e);)e=e.left;if(this.deletes(r)){if(null===e||!this.deletes(e))return;s="delete",o=i(e.content.getContent())}else null!==e&&this.deletes(e)?(s="update",o=i(e.content.getContent())):(s="add",o=void 0)}else{if(!this.deletes(r))return;s="delete",o=i(r.content.getContent())}e.set(n,{action:s,oldValue:o})}})),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(null===e){if(0===this.transaction.doc._transactionCleanups.length)throw Q(or);const t=this.target,n=s(),r=s(),i=[];e={added:n,deleted:r,delta:i,keys:this.keys};if(this.transaction.changed.get(t).has(null)){let e=null;const s=()=>{e&&i.push(e)};for(let i=t._start;null!==i;i=i.right)i.deleted?this.deletes(i)&&!this.adds(i)&&(null!==e&&void 0!==e.delete||(s(),e={delete:0}),e.delete+=i.length,r.add(i)):this.adds(i)?(null!==e&&void 0!==e.insert||(s(),e={insert:[]}),e.insert=e.insert.concat(i.content.getContent()),n.add(i)):(null!==e&&void 0!==e.retain||(s(),e={retain:0}),e.retain+=i.length);null!==e&&void 0===e.retain&&s()}this._changes=e}return e}}const cr=(e,t)=>{const n=[];for(;null!==t._item&&t!==e;){if(null!==t._item.parentSub)n.unshift(t._item.parentSub);else{let e=0,r=t._item.parent._start;for(;r!==t._item&&null!==r;)r.deleted||e++,r=r.right;n.unshift(e)}t=t._item.parent}return n};let lr=0;class hr{constructor(e,t){e.marker=!0,this.p=e,this.index=t,this.timestamp=lr++}}const ur=(e,t,n)=>{e.p.marker=!1,e.p=t,t.marker=!0,e.index=n,e.timestamp=lr++},dr=(e,t)=>{if(null===e._start||0===t||null===e._searchMarker)return null;const n=0===e._searchMarker.length?null:e._searchMarker.reduce(((e,n)=>d(t-e.index)<d(t-n.index)?e:n));let r=e._start,s=0;for(null!==n&&(r=n.p,s=n.index,(e=>{e.timestamp=lr++})(n));null!==r.right&&s<t;){if(!r.deleted&&r.countable){if(t<s+r.length)break;s+=r.length}r=r.right}for(;null!==r.left&&s>t;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);for(;null!==r.left&&r.left.id.client===r.id.client&&r.left.id.clock+r.left.length===r.id.clock;)r=r.left,!r.deleted&&r.countable&&(s-=r.length);return null!==n&&d(n.index-s)<r.parent.length/80?(ur(n,r,s),n):((e,t,n)=>{if(e.length>=80){const r=e.reduce(((e,t)=>e.timestamp<t.timestamp?e:t));return ur(r,t,n),r}{const r=new hr(t,n);return e.push(r),r}})(e._searchMarker,r,s)},fr=(e,t,n)=>{for(let r=e.length-1;r>=0;r--){const s=e[r];if(n>0){let t=s.p;for(t.marker=!1;t&&(t.deleted||!t.countable);)t=t.left,t&&!t.deleted&&t.countable&&(s.index-=t.length);if(null===t||!0===t.marker){e.splice(r,1);continue}s.p=t,t.marker=!0}(t<s.index||n>0&&t===s.index)&&(s.index=g(t,s.index+n))}},pr=(e,t,n)=>{const s=e,i=t.changedParentTypes;for(;r(i,e,(()=>[])).push(n),null!==e._item;)e=e._item.parent;sn(s._eH,n,t)};class gr{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=tn(),this._dEH=tn(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(e,t){this.doc=e,this._item=t}_copy(){throw ee()}clone(){throw ee()}_write(e){}get _first(){let e=this._start;for(;null!==e&&e.deleted;)e=e.right;return e}_callObserver(e,t){!e.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(e){nn(this._eH,e)}observeDeep(e){nn(this._dEH,e)}unobserve(e){rn(this._eH,e)}unobserveDeep(e){rn(this._dEH,e)}toJSON(){}}const yr=(e,t,n)=>{t<0&&(t=e._length+t),n<0&&(n=e._length+n);let r=n-t;const s=[];let i=e._start;for(;null!==i&&r>0;){if(i.countable&&!i.deleted){const e=i.content.getContent();if(e.length<=t)t-=e.length;else{for(let n=t;n<e.length&&r>0;n++)s.push(e[n]),r--;t=0}}i=i.right}return s},mr=e=>{const t=[];let n=e._start;for(;null!==n;){if(n.countable&&!n.deleted){const e=n.content.getContent();for(let n=0;n<e.length;n++)t.push(e[n])}n=n.right}return t},wr=(e,t)=>{let n=0,r=e._start;for(;null!==r;){if(r.countable&&!r.deleted){const s=r.content.getContent();for(let r=0;r<s.length;r++)t(s[r],n++,e)}r=r.right}},br=(e,t)=>{const n=[];return wr(e,((r,s)=>{n.push(t(r,s,e))})),n},_r=e=>{let t=e._start,n=null,r=0;return{[Symbol.iterator](){return this},next:()=>{if(null===n){for(;null!==t&&t.deleted;)t=t.right;if(null===t)return{done:!0,value:void 0};n=t.content.getContent(),r=0,t=t.right}const e=n[r++];return n.length<=r&&(n=null),{done:!1,value:e}}}},vr=(e,t)=>{const n=dr(e,t);let r=e._start;for(null!==n&&(r=n.p,t-=n.index);null!==r;r=r.right)if(!r.deleted&&r.countable){if(t<r.length)return r.content.getContent()[t];t-=r.length}},Er=(e,t,n,r)=>{let s=n;const i=e.doc,o=i.clientID,a=i.store,c=null===n?t._start:n.right;let l=[];const h=()=>{l.length>0&&(s=new Is(cn(o,Sn(a,o)),s,s&&s.lastId,c,c&&c.id,t,null,new ps(l)),s.integrate(e,0),l=[])};r.forEach((n=>{if(null===n)l.push(n);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:l.push(n);break;default:switch(h(),n.constructor){case Uint8Array:case ArrayBuffer:s=new Is(cn(o,Sn(a,o)),s,s&&s.lastId,c,c&&c.id,t,null,new as(new Uint8Array(n))),s.integrate(e,0);break;case Ot:s=new Is(cn(o,Sn(a,o)),s,s&&s.lastId,c,c&&c.id,t,null,new hs(n)),s.integrate(e,0);break;default:if(!(n instanceof gr))throw new Error("Unexpected content type in insert operation");s=new Is(cn(o,Sn(a,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Cs(n)),s.integrate(e,0)}}})),h()},kr=()=>Q("Length exceeded!"),Cr=(e,t,n,r)=>{if(n>t._length)throw kr();if(0===n)return t._searchMarker&&fr(t._searchMarker,n,r.length),Er(e,t,null,r);const s=n,i=dr(t,n);let o=t._start;for(null!==i&&(o=i.p,0===(n-=i.index)&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));null!==o;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n<o.length&&In(e,cn(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&fr(t._searchMarker,s,r.length),Er(e,t,o,r)},Sr=(e,t,n,r)=>{if(0===r)return;const s=n,i=r,o=dr(t,n);let a=t._start;for(null!==o&&(a=o.p,n-=o.index);null!==a&&n>0;a=a.right)!a.deleted&&a.countable&&(n<a.length&&In(e,cn(a.id.client,a.id.clock+n)),n-=a.length);for(;r>0&&null!==a;)a.deleted||(r<a.length&&In(e,cn(a.id.client,a.id.clock+r)),a.delete(e),r-=a.length),a=a.right;if(r>0)throw kr();t._searchMarker&&fr(t._searchMarker,s,-i+r)},Tr=(e,t,n)=>{const r=t._map.get(n);void 0!==r&&r.delete(e)},Ar=(e,t,n,r)=>{const s=t._map.get(n)||null,i=e.doc,o=i.clientID;let a;if(null==r)a=new ps([r]);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:a=new ps([r]);break;case Uint8Array:a=new as(r);break;case Ot:a=new hs(r);break;default:if(!(r instanceof gr))throw new Error("Unexpected content type");a=new Cs(r)}new Is(cn(o,Sn(i.store,o)),s,s&&s.lastId,null,null,t,n,a).integrate(e,0)},Rr=(e,t)=>{const n=e._map.get(t);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},Dr=e=>{const t={};return e._map.forEach(((e,n)=>{e.deleted||(t[n]=e.content.getContent()[e.length-1])})),t},Ir=(e,t)=>{const n=e._map.get(t);return void 0!==n&&!n.deleted},xr=(e,t)=>{const n={};return e._map.forEach(((e,r)=>{let s=e;for(;null!==s&&(!t.sv.has(s.id.client)||s.id.clock>=(t.sv.get(s.id.client)||0));)s=s.left;null!==s&&vn(s,t)&&(n[r]=s.content.getContent()[s.length-1])})),n},Mr=e=>{return t=e.entries(),n=e=>!e[1].deleted,wt((()=>{let e;do{e=t.next()}while(!e.done&&!n(e.value));return e}));var t,n};class Lr extends ar{constructor(e,t){super(e,t),this._transaction=t}}class Or extends gr{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(e){const t=new Or;return t.push(e),t}_integrate(e,t){super._integrate(e,t),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new Or}clone(){const e=new Or;return e.insert(0,this.toArray().map((e=>e instanceof gr?e.clone():e))),e}get length(){return null===this._prelimContent?this._length:this._prelimContent.length}_callObserver(e,t){super._callObserver(e,t),pr(this,e,new Lr(this,e))}insert(e,t){null!==this.doc?Bn(this.doc,(n=>{Cr(n,this,e,t)})):this._prelimContent.splice(e,0,...t)}push(e){null!==this.doc?Bn(this.doc,(t=>{((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;Er(e,t,r,n)})(t,this,e)})):this._prelimContent.push(...e)}unshift(e){this.insert(0,e)}delete(e,t=1){null!==this.doc?Bn(this.doc,(n=>{Sr(n,this,e,t)})):this._prelimContent.splice(e,t)}get(e){return vr(this,e)}toArray(){return mr(this)}slice(e=0,t=this.length){return yr(this,e,t)}toJSON(){return this.map((e=>e instanceof gr?e.toJSON():e))}map(e){return br(this,e)}forEach(e){wr(this,e)}[Symbol.iterator](){return _r(this)}_write(e){e.writeTypeRef(ms)}}class Nr extends ar{constructor(e,t,n){super(e,t),this.keysChanged=n}}class Ur extends gr{constructor(e){super(),this._prelimContent=null,this._prelimContent=void 0===e?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 Ur}clone(){const e=new Ur;return this.forEach(((t,n)=>{e.set(n,t instanceof gr?t.clone():t)})),e}_callObserver(e,t){pr(this,e,new Nr(this,e,t))}toJSON(){const e={};return this._map.forEach(((t,n)=>{if(!t.deleted){const r=t.content.getContent()[t.length-1];e[n]=r instanceof gr?r.toJSON():r}})),e}get size(){return[...Mr(this._map)].length}keys(){return bt(Mr(this._map),(e=>e[0]))}values(){return bt(Mr(this._map),(e=>e[1].content.getContent()[e[1].length-1]))}entries(){return bt(Mr(this._map),(e=>[e[0],e[1].content.getContent()[e[1].length-1]]))}forEach(e){this._map.forEach(((t,n)=>{t.deleted||e(t.content.getContent()[t.length-1],n,this)}))}[Symbol.iterator](){return this.entries()}delete(e){null!==this.doc?Bn(this.doc,(t=>{Tr(t,this,e)})):this._prelimContent.delete(e)}set(e,t){return null!==this.doc?Bn(this.doc,(n=>{Ar(n,this,e,t)})):this._prelimContent.set(e,t),t}get(e){return Rr(this,e)}has(e){return Ir(this,e)}clear(){null!==this.doc?Bn(this.doc,(e=>{this.forEach((function(t,n,r){Tr(e,r,n)}))})):this._prelimContent.clear()}_write(e){e.writeTypeRef(ws)}}const Pr=(e,t)=>e===t||"object"==typeof e&&"object"==typeof t&&e&&t&&((e,t)=>e===t||Le(e)===Le(t)&&((e,t)=>{for(const n in e)if(!t(e[n],n))return!1;return!0})(e,((e,n)=>(void 0!==e||Oe(t,n))&&t[n]===e)))(e,t);class Fr{constructor(e,t,n,r){this.left=e,this.right=t,this.index=n,this.currentAttributes=r}forward(){if(null===this.right&&te(),this.right.content.constructor===ds)this.right.deleted||Wr(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}}const jr=(e,t,n)=>{for(;null!==t.right&&n>0;){if(t.right.content.constructor===ds)t.right.deleted||Wr(t.currentAttributes,t.right.content);else t.right.deleted||(n<t.right.length&&In(e,cn(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},Br=(e,t,n,r)=>{const s=new Map,i=r?dr(t,n):null;if(i){const t=new Fr(i.p.left,i.p,i.index,s);return jr(e,t,n-i.index)}{const r=new F