UNPKG

@liascript/exporter

Version:
1 lines 100 kB
function t(t,e,r,n){Object.defineProperty(t,e,{get:r,set:n,enumerable:!0,configurable:!0})}var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},r=e.parcelRequire55a5;r.register("5Owdb",(function(e,n){t(e.exports,"Sync",(function(){return l}));var s=r("2Xs1f"),i=r("j1TWg"),o=r("hYRq7");r("dOAsX");function c(t=16){let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r="";for(let n=0;n<t;n++)r+=e.charAt(Math.floor(62*Math.random()));return r}class l{connect(t){this.room=t.room,this.course=t.course,this.password=t.password,this.isConnected=!0}destroy(){this.db.destroy(),this.cbConnection("disconnect",this.token),this.isConnected=!1}disconnect(){this.db.removePeer(),this.destroy()}uniqueID(t){let e=null;return"string"==typeof this.room&&(this.room.startsWith('"')&&this.room.endsWith('"')||this.room.startsWith("'")&&this.room.endsWith("'"))&&(e=this.room),this.course&&this.room&&(e=JSON.stringify({course:this.course,room:this.room,pw:i.getHashCode(this.password||"")})),t&&e&&(e=i.getHashCode(e+t).toString()),e||console.warn("Sync: no uniqueID"),e}sendToLia(t){this.cbRelay(t)}sync(t,e=null){this.cbConnection(t,e)}sendDisconnectError(t){this.sync("error",t)}sendConnect(){this.sync("connect",this.token),this.onConnect&&this.onConnect()}pubsubSend(t,e){var r;JSON.stringify({topic:t,message:e}),new TextEncoder;this.replyOnReceive&&(null===(r=this.onReceive)||void 0===r||r.call(this,t,e))}pubsubReceive(t){try{var e;const r=(new TextDecoder).decode(t),n=JSON.parse(r);null===(e=this.onReceive)||void 0===e||e.call(this,n.topic,n.message)}catch(t){console.warn("Sync: pubsubReceive",t.message)}}load(t,e){try{for(let r=0;r<t.length;r++){const n=document.createElement("script");n.async=!1,n.defer=!0,n.src=t[r],this.urlCounter++;let s=this;n.onload=function(){console.log("successfully loaded =>",t),s.urlCounter--,0==s.urlCounter&&e.init(!0)},n.onerror=function(r){console.warn("could not load =>",t,r),s.urlCounter=0,e.init(!1,`could not load => ${t}`)},document.head.appendChild(n)}}catch(t){console.error("load: ",t),e.init(!1,t.message)}}publish(t){switch(console.warn("publish needs to be implemented",t),t.message.cmd){case"update":break;case"join":this.db.init(t.message.param);break;case"chat":this.db.addChatMessage(t.message.param);break;case"quiz":var e,r;"quiz"===(null===(e=t.track)||void 0===e?void 0:e[0][0])&&"id"===(null===(r=t.track)||void 0===r?void 0:r[1][0])?this.db.addQuiz(t.track[0][1],t.track[1][1],t.message.param):console.warn("SyncTX wrong event ->",t);break;case"survey":var n,s;"survey"===(null===(n=t.track)||void 0===n?void 0:n[0][0])&&"id"===(null===(s=t.track)||void 0===s?void 0:s[1][0])?this.db.addSurvey(t.track[0][1],t.track[1][1],t.message.param):console.warn("SyncTX wrong event ->",t);break;case"code":var i,o;"code"===(null===(i=t.track)||void 0===i?void 0:i[0][0])&&"id"===(null===(o=t.track)||void 0===o?void 0:o[1][0])?this.db.updateCode(t.track[0][1],t.track[1][1],t.message.param.j,t.message.param.msg):console.warn("SyncTX wrong event ->",t);break;case"codes":var c;if("code"===(null===(c=t.track)||void 0===c?void 0:c[0][0])&&1===t.track.length)for(let e=0;e<t.message.param.length;e++)for(let r=0;r<t.message.param[e].length;r++)this.db.initCode(t.track[0][1],e,r,t.message.param[e][r]);else console.warn("SyncTX wrong event ->",t);break;case"cursor":var l;"code"==(null===(l=t.track)||void 0===l?void 0:l[0][0])&&this.db.setCursor(t.track[0][1],t.message.param);break;default:console.warn("SyncTX unknown command:",t.message)}}constructor(t,e,r,n,i=!1,l=!0){let a;(0,s.default)(this,"isConnected",!1),(0,s.default)(this,"replyOnReceive",!1);try{a=window.localStorage.getItem("lia-token"),a||(a=c(),window.localStorage.setItem("lia-token",a))}catch(t){console.warn("cannot write to localStorage"),a=c()}this.token=a,this.urlCounter=0,this.cbConnection=t,this.cbRelay=e,this.onConnect=r,this.onReceive=n,this.replyOnReceive=i;const h=this;this.db=new(0,o.CRDT)(a,l?(t,e)=>{if(h.db)switch(e){case"cursor":this.sync("update",{cmd:"cursor",param:t});break;case"peer":this.sync("update",{cmd:"peer",param:t});break;case"code":this.sync("update",{cmd:"code",param:t});break;case"quiz":this.sync("update",{cmd:"quiz",param:t});break;case"survey":this.sync("update",{cmd:"survey",param:t});break;case"chat":this.sync("update",{cmd:"chat",param:t});break;default:console.warn("Sync unknown origin",e)}}:void 0)}}})),r.register("hYRq7",(function(e,n){t(e.exports,"CRDT",(function(){return h}));var s=r("2Xs1f"),i=r("dM3DM"),o=r("aQXMn"),c=r("9a6qY"),l=r("j1TWg"),a=r("d8U9c");class h{init(t){this.length=Math.max(this.length,t.length),this.doc.transact((()=>{for(let e=0;e<t.length;e++)this.initMap(this.quizzes,e,t[e].q),this.initMap(this.surveys,e,t[e].s),this.initText(e,t[e].c)}),this.peerID),this.registerCallbacks(),this.fireInitialState()}fireInitialState(){const t=this.getPeers();t.length>0&&this.callback(t,"peer");const e=this.getCursors();e.length>0&&this.callback(e,"cursor");const r=new Set;for(const t of this.quizzes.keys())try{const[e]=JSON.parse(t);r.add(e)}catch(t){}r.size>0&&this.callback([...r].map((t=>({id:t,data:this.getMaps(t,this.quizzes)}))),"quiz");const n=new Set;for(const t of this.surveys.keys())try{const[e]=JSON.parse(t);n.add(e)}catch(t){}n.size>0&&this.callback([...n].map((t=>({id:t,data:this.getMaps(t,this.surveys)}))),"survey");const s=new Set;for(const t of this.codes.keys())try{const[e]=JSON.parse(t);s.add(e)}catch(t){}s.size>0&&this.callback(this.getCode(s),"code");const c=[];for(const[t,e]of this.chat.map){const r=(0,o.default)((0,i.default)({},e.val),{id:parseInt(t)});c.push(r)}c.length>0&&(c.sort(((t,e)=>t.id-e.id)),this.callback(c,"chat"))}setAwareness(t){this.awareness=t,t.setLocalState({peerID:this.peerID,color:this.getColor()}),t.on("change",(t=>{const e=this.getPeers();this.callback(e,"peer");const r=this.getCursors();r.length>0&&this.callback(r,"cursor")}))}registerCallbacks(){this.quizzes.observe((t=>{const e=new Set;t.keysChanged.forEach((t=>{try{const[r]=JSON.parse(t);e.add(r)}catch(t){}})),e.size>0&&this.callback([...e].map((t=>({id:t,data:this.getMaps(t,this.quizzes)}))),"quiz")})),this.surveys.observe((t=>{const e=new Set;t.keysChanged.forEach((t=>{try{const[r]=JSON.parse(t);e.add(r)}catch(t){}})),e.size>0&&this.callback([...e].map((t=>({id:t,data:this.getMaps(t,this.surveys)}))),"survey")})),this.chat.on("change",(t=>{const e=[];let r;for(let[n,s]of t)"add"===s.action&&(r=s.newValue,r.id=parseInt(n),e.push(r));e.length>0&&this.callback(e,"chat")})),this.codes.observeDeep((t=>{const e=new Set;for(const r of t)if(r.target===this.codes)r.keysChanged.forEach((t=>{try{const[r]=JSON.parse(t);e.add(r)}catch(t){}}));else try{const[t]=JSON.parse(r.path[0]);e.add(t)}catch(t){}e.size>0&&this.callback(this.getCode(e),"code")}))}encode(){return c.encodeStateAsUpdate(this.doc)}destroy(){this.doc.destroy()}log(){console.warn("*********** PEERS ***********"),console.warn(this.getPeers()),console.warn("*********** CURSORS ***********"),console.warn(this.getCursors()),console.warn("*********** STATE ***********"),console.warn(this.doc.toJSON())}initMap(t,e,r){if(0!==r.length)for(let n=0;n<r.length;n++){const s=r[n][this.peerID];if(void 0===s)continue;const i=JSON.stringify([e,n,this.peerID]);t.has(i)||t.set(i,s)}}initText(t,e){if(0!==e.length)for(let r=0;r<e.length;r++)for(let n=0;n<e[r].length;n++)this.initCode(t,r,n,e[r][n])}getCode(t){let e=[];for(const r of t)e.push({id:r,data:this.getAllTexts(r)});return e}getCursors(){if(!this.awareness)return[];const t=[];for(const[,e]of this.awareness.getStates())(null==e?void 0:e.cursor)&&(null==e?void 0:e.peerID)&&e.peerID!==this.peerID&&t.push(e.cursor);return t}getPeers(){if(!this.awareness)return[];const t=[];for(const[,e]of this.awareness.getStates())(null==e?void 0:e.peerID)&&t.push(e.peerID);return t}removePeer(){var t;null===(t=this.awareness)||void 0===t||t.setLocalState(null)}id(t,e,r){return void 0===r?JSON.stringify([t,e]):JSON.stringify([t,e,r])}getMaps(t,e){const r=`[${t},`,n=[];for(const[t,s]of e)if(t.startsWith(r))try{const e=JSON.parse(t);if(3!==e.length)continue;const r=e[1],i=e[2];n[r]||(n[r]={}),n[r][i]=s}catch(t){}for(let t=0;t<n.length;t++)n[t]||(n[t]={});return n}getAllTexts(t){let e,r=[];for(let n=0;this.codes.has(this.id(t,n,0));n++){let s=[];for(let r=0;this.codes.has(this.id(t,n,r));r++)e=this.codes.get(this.id(t,n,r)),s.push((null==e?void 0:e.toString())||"");r.push(s)}return r}addQuiz(t,e,r){this.addRecord(this.quizzes,t,e,r)}addSurvey(t,e,r){this.addRecord(this.surveys,t,e,r)}addRecord(t,e,r,n){t.set(JSON.stringify([e,r,this.peerID]),n)}initCode(t,e,r,n){if(!this.codes.has(this.id(t,e,r))){const s=this.doc.clientID;this.doc.clientID=0;const i=new c.Text;i.insert(0,n),this.codes.set(this.id(t,e,r),i),this.doc.clientID=s}}addChatMessage(t){this.chat.set(""+Date.now(),{color:this.getColor(),message:t,user:this.peerID})}updateCode(t,e,r,n){this.codes.has(this.id(t,e,r))&&this.doc.transact((()=>{const s=this.codes.get(this.id(t,e,r));if(void 0!==s)for(let t of n)switch(t.action){case"insert":s.insert(t.index,t.content);break;case"remove":s.delete(t.index,t.content.length);break;default:console.warn("Sync code, unknown action ->",t)}}),"code")}getColor(){return this.color||(this.color=l.getColorFor(this.peerID)),this.color}setCursor(t,e){var r;null===(r=this.awareness)||void 0===r||r.setLocalStateField("cursor",{id:this.peerID,section:t,project:e.project,file:e.file,state:e.state,color:this.getColor()})}removeCursor(){var t;null===(t=this.awareness)||void 0===t||t.setLocalStateField("cursor",null)}constructor(t,e){(0,s.default)(this,"timestamp",Date.now()),this.doc=new c.Doc,this.callback=e||((t,e)=>{console.warn("SyncDB: no callback provided")}),this.length=0,this.peerID=t,this.codes=this.doc.getMap("c"),this.quizzes=this.doc.getMap("q"),this.surveys=this.doc.getMap("s"),this.chat=new(0,a.YKeyValue)(this.doc.getArray("chat"))}}})),r.register("9a6qY",(function(n,s){t(n.exports,"Doc",(function(){return B})),t(n.exports,"Text",(function(){return Be})),t(n.exports,"applyUpdate",(function(){return $})),t(n.exports,"mergeUpdates",(function(){return Lt})),t(n.exports,"encodeStateAsUpdate",(function(){return Z})),t(n.exports,"encodeStateVector",(function(){return nt}));var i=r("dM3DM"),o=r("aQXMn"),c=r("ewMJf"),l=r("1WDbo"),a=r("bktFk"),h=r("l1iu4"),u=r("8fTKk"),d=r("4VypT"),f=r("jlSlF"),g=r("8BgnQ"),p=r("ggKo5"),w=r("cLlZH"),y=r("1efOZ"),m=r("3oYST"),b=(m=r("3oYST"),r("2JauM")),k=r("6RvfK"),v=r("8LIwu"),_=(r("fyQrk"),r("4XMSc"),r("hvB5G")),S=r("hxgBf"),x=r("6zry6");c.ObservableV2;class E{constructor(t,e){this.clock=t,this.len=e}}class D{constructor(){this.clients=new Map}}const C=(t,e,r)=>e.clients.forEach(((e,n)=>{const s=t.doc.store.clients.get(n);if(null!=s){const n=s[s.length-1],i=n.id.clock+n.length;for(let n=0,o=e[n];n<e.length&&o.clock<i;o=e[++n])Dt(t,s,o.clock,o.len,r)}})),U=(t,e)=>{const r=t.clients.get(e.client);return void 0!==r&&null!==((t,e)=>{let r=0,n=t.length-1;for(;r<=n;){const s=a.floor((r+n)/2),i=t[s],o=i.clock;if(o<=e){if(e<o+i.len)return s;r=s+1}else n=s-1}return null})(r,e.clock)},A=t=>{t.clients.forEach((t=>{let e,r;for(t.sort(((t,e)=>t.clock-e.clock)),e=1,r=1;e<t.length;e++){const n=t[r-1],s=t[e];n.clock+n.len>=s.clock?n.len=a.max(n.len,s.clock+s.len-n.clock):(r<e&&(t[r]=s),r++)}t.length=r}))},I=t=>{const e=new D;for(let r=0;r<t.length;r++)t[r].clients.forEach(((n,s)=>{if(!e.clients.has(s)){const i=n.slice();for(let e=r+1;e<t.length;e++)l.appendTo(i,t[e].clients.get(s)||[]);e.clients.set(s,i)}}));return A(e),e},T=(t,e,r,n)=>{h.setIfUndefined(t.clients,e,(()=>[])).push(new E(r,n))},O=()=>new D,M=t=>{const e=O();return t.clients.forEach(((t,r)=>{const n=[];for(let e=0;e<t.length;e++){const r=t[e];if(r.deleted){const s=r.id.clock;let i=r.length;if(e+1<t.length)for(let r=t[e+1];e+1<t.length&&r.deleted;r=t[1+ ++e])i+=r.length;n.push(new E(s,i))}}n.length>0&&e.clients.set(r,n)})),e},V=(t,e)=>{u.writeVarUint(t.restEncoder,e.clients.size),l.from(e.clients.entries()).sort(((t,e)=>e[0]-t[0])).forEach((([e,r])=>{t.resetDsCurVal(),u.writeVarUint(t.restEncoder,e);const n=r.length;u.writeVarUint(t.restEncoder,n);for(let e=0;e<n;e++){const n=r[e];t.writeDsClock(n.clock),t.writeDsLen(n.len)}}))},N=t=>{const e=new D,r=d.readVarUint(t.restDecoder);for(let n=0;n<r;n++){t.resetDsCurVal();const r=d.readVarUint(t.restDecoder),n=d.readVarUint(t.restDecoder);if(n>0){const s=h.setIfUndefined(e.clients,r,(()=>[]));for(let e=0;e<n;e++)s.push(new E(t.readDsClock(),t.readDsLen()))}}return e},R=(t,e,r)=>{const n=new D,s=d.readVarUint(t.restDecoder);for(let i=0;i<s;i++){t.resetDsCurVal();const s=d.readVarUint(t.restDecoder),i=d.readVarUint(t.restDecoder),o=r.clients.get(s)||[],c=bt(r,s);for(let r=0;r<i;r++){const r=t.readDsClock(),i=r+t.readDsLen();if(r<c){c<i&&T(n,s,c,i-c);let t=vt(o,r),l=o[t];for(!l.deleted&&l.id.clock<r&&(o.splice(t+1,0,dr(e,l,r-l.id.clock)),t++);t<o.length&&(l=o[t++],l.id.clock<i);)l.deleted||(i<l.id.clock+l.length&&o.splice(t,0,dr(e,l,i-l.id.clock)),l.delete(e))}else T(n,s,r,i-r)}}if(n.clients.size>0){const t=new X;return u.writeVarUint(t.restEncoder,0),V(t,n),t.toUint8Array()}return null},L=f.uint32;class B extends c.ObservableV2{load(){const t=this._item;null===t||this.shouldLoad||Vt(t.parent.doc,(t=>{t.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(l.from(this.subdocs).map((t=>t.guid)))}transact(t,e=null){return Vt(this,t,e)}get(t,e=re){const r=h.setIfUndefined(this.share,t,(()=>{const t=new e;return t._integrate(this,null),t})),n=r.constructor;if(e!==re&&n!==e){if(n===re){const n=new e;n._map=r._map,r._map.forEach((t=>{for(;null!==t;t=t.left)t.parent=n})),n._start=r._start;for(let t=n._start;null!==t;t=t.right)t.parent=n;return n._length=r._length,this.share.set(t,n),n._integrate(this,null),n}throw new Error(`Type with the name ${t} has already been defined with a different constructor`)}return r}getArray(t=""){return this.get(t,ke)}getText(t=""){return this.get(t,Be)}getMap(t=""){return this.get(t,_e)}getXmlElement(t=""){return this.get(t,je)}getXmlFragment(t=""){return this.get(t,Fe)}toJSON(){const t={};return this.share.forEach(((e,r)=>{t[r]=e.toJSON()})),t}destroy(){this.isDestroyed=!0,l.from(this.subdocs).forEach((t=>t.destroy()));const t=this._item;if(null!==t){this._item=null;const e=t.content;e.doc=new B((0,o.default)((0,i.default)({guid:this.guid},e.opts),{shouldLoad:!1})),e.doc._item=t,Vt(t.parent.doc,(r=>{const n=e.doc;t.deleted||r.subdocsAdded.add(n),r.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}constructor({guid:t=f.uuidv4(),collectionid:e=null,gc:r=!0,gcFilter:n=(()=>!0),meta:s=null,autoLoad:i=!1,shouldLoad:o=!0}={}){super(),this.gc=r,this.gcFilter=n,this.clientID=L(),this.guid=t,this.collectionid=e,this.share=new Map,this.store=new yt,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.isDestroyed=!1,this.whenLoaded=g.create((t=>{this.on("load",(()=>{this.isLoaded=!0,t(this)}))}));const c=()=>g.create((t=>{const e=r=>{void 0!==r&&!0!==r||(this.off("sync",e),t())};this.on("sync",e)}));this.on("sync",(t=>{!1===t&&this.isSynced&&(this.whenSynced=c()),this.isSynced=void 0===t||!0===t,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=c()}}class z{resetDsCurVal(){}readDsClock(){return d.readVarUint(this.restDecoder)}readDsLen(){return d.readVarUint(this.restDecoder)}constructor(t){this.restDecoder=t}}class F extends z{readLeftID(){return ut(d.readVarUint(this.restDecoder),d.readVarUint(this.restDecoder))}readRightID(){return ut(d.readVarUint(this.restDecoder),d.readVarUint(this.restDecoder))}readClient(){return d.readVarUint(this.restDecoder)}readInfo(){return d.readUint8(this.restDecoder)}readString(){return d.readVarString(this.restDecoder)}readParentInfo(){return 1===d.readVarUint(this.restDecoder)}readTypeRef(){return d.readVarUint(this.restDecoder)}readLen(){return d.readVarUint(this.restDecoder)}readAny(){return d.readAny(this.restDecoder)}readBuf(){return p.copyUint8Array(d.readVarUint8Array(this.restDecoder))}readJSON(){return JSON.parse(d.readVarString(this.restDecoder))}readKey(){return d.readVarString(this.restDecoder)}}class j{resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=d.readVarUint(this.restDecoder),this.dsCurrVal}readDsLen(){const t=d.readVarUint(this.restDecoder)+1;return this.dsCurrVal+=t,t}constructor(t){this.dsCurrVal=0,this.restDecoder=t}}class J extends j{readLeftID(){return new at(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new at(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 d.readAny(this.restDecoder)}readBuf(){return d.readVarUint8Array(this.restDecoder)}readJSON(){return d.readAny(this.restDecoder)}readKey(){const t=this.keyClockDecoder.read();if(t<this.keys.length)return this.keys[t];{const t=this.stringDecoder.read();return this.keys.push(t),t}}constructor(t){super(t),this.keys=[],d.readVarUint(t),this.keyClockDecoder=new d.IntDiffOptRleDecoder(d.readVarUint8Array(t)),this.clientDecoder=new d.UintOptRleDecoder(d.readVarUint8Array(t)),this.leftClockDecoder=new d.IntDiffOptRleDecoder(d.readVarUint8Array(t)),this.rightClockDecoder=new d.IntDiffOptRleDecoder(d.readVarUint8Array(t)),this.infoDecoder=new d.RleDecoder(d.readVarUint8Array(t),d.readUint8),this.stringDecoder=new d.StringDecoder(d.readVarUint8Array(t)),this.parentInfoDecoder=new d.RleDecoder(d.readVarUint8Array(t),d.readUint8),this.typeRefDecoder=new d.UintOptRleDecoder(d.readVarUint8Array(t)),this.lenDecoder=new d.UintOptRleDecoder(d.readVarUint8Array(t))}}class P{toUint8Array(){return u.toUint8Array(this.restEncoder)}resetDsCurVal(){}writeDsClock(t){u.writeVarUint(this.restEncoder,t)}writeDsLen(t){u.writeVarUint(this.restEncoder,t)}constructor(){this.restEncoder=u.createEncoder()}}class q extends P{writeLeftID(t){u.writeVarUint(this.restEncoder,t.client),u.writeVarUint(this.restEncoder,t.clock)}writeRightID(t){u.writeVarUint(this.restEncoder,t.client),u.writeVarUint(this.restEncoder,t.clock)}writeClient(t){u.writeVarUint(this.restEncoder,t)}writeInfo(t){u.writeUint8(this.restEncoder,t)}writeString(t){u.writeVarString(this.restEncoder,t)}writeParentInfo(t){u.writeVarUint(this.restEncoder,t?1:0)}writeTypeRef(t){u.writeVarUint(this.restEncoder,t)}writeLen(t){u.writeVarUint(this.restEncoder,t)}writeAny(t){u.writeAny(this.restEncoder,t)}writeBuf(t){u.writeVarUint8Array(this.restEncoder,t)}writeJSON(t){u.writeVarString(this.restEncoder,JSON.stringify(t))}writeKey(t){u.writeVarString(this.restEncoder,t)}}class W{toUint8Array(){return u.toUint8Array(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(t){const e=t-this.dsCurrVal;this.dsCurrVal=t,u.writeVarUint(this.restEncoder,e)}writeDsLen(t){0===t&&w.unexpectedCase(),u.writeVarUint(this.restEncoder,t-1),this.dsCurrVal+=t}constructor(){this.restEncoder=u.createEncoder(),this.dsCurrVal=0}}class X extends W{toUint8Array(){const t=u.createEncoder();return u.writeVarUint(t,0),u.writeVarUint8Array(t,this.keyClockEncoder.toUint8Array()),u.writeVarUint8Array(t,this.clientEncoder.toUint8Array()),u.writeVarUint8Array(t,this.leftClockEncoder.toUint8Array()),u.writeVarUint8Array(t,this.rightClockEncoder.toUint8Array()),u.writeVarUint8Array(t,u.toUint8Array(this.infoEncoder)),u.writeVarUint8Array(t,this.stringEncoder.toUint8Array()),u.writeVarUint8Array(t,u.toUint8Array(this.parentInfoEncoder)),u.writeVarUint8Array(t,this.typeRefEncoder.toUint8Array()),u.writeVarUint8Array(t,this.lenEncoder.toUint8Array()),u.writeUint8Array(t,u.toUint8Array(this.restEncoder)),u.toUint8Array(t)}writeLeftID(t){this.clientEncoder.write(t.client),this.leftClockEncoder.write(t.clock)}writeRightID(t){this.clientEncoder.write(t.client),this.rightClockEncoder.write(t.clock)}writeClient(t){this.clientEncoder.write(t)}writeInfo(t){this.infoEncoder.write(t)}writeString(t){this.stringEncoder.write(t)}writeParentInfo(t){this.parentInfoEncoder.write(t?1:0)}writeTypeRef(t){this.typeRefEncoder.write(t)}writeLen(t){this.lenEncoder.write(t)}writeAny(t){u.writeAny(this.restEncoder,t)}writeBuf(t){u.writeVarUint8Array(this.restEncoder,t)}writeJSON(t){u.writeAny(this.restEncoder,t)}writeKey(t){const e=this.keyMap.get(t);void 0===e?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(t)):this.keyClockEncoder.write(e)}constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new u.IntDiffOptRleEncoder,this.clientEncoder=new u.UintOptRleEncoder,this.leftClockEncoder=new u.IntDiffOptRleEncoder,this.rightClockEncoder=new u.IntDiffOptRleEncoder,this.infoEncoder=new u.RleEncoder(u.writeUint8),this.stringEncoder=new u.StringEncoder,this.parentInfoEncoder=new u.RleEncoder(u.writeUint8),this.typeRefEncoder=new u.UintOptRleEncoder,this.lenEncoder=new u.UintOptRleEncoder}}const G=(t,e,r)=>{const n=new Map;r.forEach(((t,r)=>{bt(e,r)>t&&n.set(r,t)})),mt(e).forEach(((t,e)=>{r.has(e)||n.set(e,0)})),u.writeVarUint(t.restEncoder,n.size),l.from(n.entries()).sort(((t,e)=>e[0]-t[0])).forEach((([r,n])=>{((t,e,r,n)=>{n=a.max(n,e[0].id.clock);const s=vt(e,n);u.writeVarUint(t.restEncoder,e.length-s),t.writeClient(r),u.writeVarUint(t.restEncoder,n);const i=e[s];i.write(t,n-i.id.clock);for(let r=s+1;r<e.length;r++)e[r].write(t,0)})(t,e.clients.get(r),r,n)}))},Y=(t,e,r,n=new J(t))=>Vt(e,(t=>{t.local=!1;let e=!1;const r=t.doc,s=r.store,i=((t,e)=>{const r=h.create(),n=d.readVarUint(t.restDecoder);for(let s=0;s<n;s++){const n=d.readVarUint(t.restDecoder),s=new Array(n),i=t.readClient();let o=d.readVarUint(t.restDecoder);r.set(i,{i:0,refs:s});for(let r=0;r<n;r++){const n=t.readInfo();switch(y.BITS5&n){case 0:{const e=t.readLen();s[r]=new Xe(ut(i,o),e),o+=e;break}case 10:{const e=d.readVarUint(t.restDecoder);s[r]=new wr(ut(i,o),e),o+=e;break}default:{const c=!(n&(y.BIT7|y.BIT8)),l=new fr(ut(i,o),null,(n&y.BIT8)===y.BIT8?t.readLeftID():null,null,(n&y.BIT7)===y.BIT7?t.readRightID():null,c?t.readParentInfo()?e.get(t.readString()):t.readLeftID():null,c&&(n&y.BIT6)===y.BIT6?t.readString():null,gr(t,n));s[r]=l,o+=l.length}}}}return r})(n,r),o=((t,e,r)=>{const n=[];let s=l.from(r.keys()).sort(((t,e)=>t-e));if(0===s.length)return null;const i=()=>{if(0===s.length)return null;let t=r.get(s[s.length-1]);for(;t.refs.length===t.i;){if(s.pop(),!(s.length>0))return null;t=r.get(s[s.length-1])}return t};let o=i();if(null===o)return null;const c=new yt,a=new Map,d=(t,e)=>{const r=a.get(t);(null==r||r>e)&&a.set(t,e)};let f=o.refs[o.i++];const g=new Map,p=()=>{for(const t of n){const e=t.id.client,n=r.get(e);n?(n.i--,c.clients.set(e,n.refs.slice(n.i)),r.delete(e),n.i=0,n.refs=[]):c.clients.set(e,[t]),s=s.filter((t=>t!==e))}n.length=0};for(;;){if(f.constructor!==wr){const s=h.setIfUndefined(g,f.id.client,(()=>bt(e,f.id.client)))-f.id.clock;if(s<0)n.push(f),d(f.id.client,f.id.clock-1),p();else{const i=f.getMissing(t,e);if(null!==i){n.push(f);const t=r.get(i)||{refs:[],i:0};if(t.refs.length!==t.i){f=t.refs[t.i++];continue}d(i,bt(e,i)),p()}else(0===s||s<f.length)&&(f.integrate(t,s),g.set(f.id.client,f.id.clock+f.length))}}if(n.length>0)f=n.pop();else if(null!==o&&o.i<o.refs.length)f=o.refs[o.i++];else{if(o=i(),null===o)break;f=o.refs[o.i++]}}if(c.clients.size>0){const t=new X;return G(t,c,new Map),u.writeVarUint(t.restEncoder,0),{missing:a,update:t.toUint8Array()}}return null})(t,s,i),c=s.pendingStructs;if(c){for(const[t,r]of c.missing)if(r<bt(s,t)){e=!0;break}if(o){for(const[t,e]of o.missing){const r=c.missing.get(t);(null==r||r>e)&&c.missing.set(t,e)}c.update=zt([c.update,o.update])}}else s.pendingStructs=o;const a=R(n,t,s);if(s.pendingDs){const e=new J(d.createDecoder(s.pendingDs));d.readVarUint(e.restDecoder);const r=R(e,t,s);s.pendingDs=a&&r?zt([a,r]):a||r}else s.pendingDs=a;if(e){const e=s.pendingStructs.update;s.pendingStructs=null,K(t.doc,e)}}),r,!1),K=(t,e,r,n=J)=>{const s=d.createDecoder(e);Y(s,t,r,new n(s))},$=(t,e,r)=>K(t,e,r,F),H=(t,e=new Uint8Array([0]),r=new X)=>{((t,e,r=new Map)=>{G(t,e.store,r),V(t,M(e.store))})(r,t,tt(e));const n=[r.toUint8Array()];if(t.store.pendingDs&&n.push(t.store.pendingDs),t.store.pendingStructs&&n.push(Ft(t.store.pendingStructs.update,e)),n.length>1){if(r.constructor===q)return Lt(n.map(((t,e)=>0===e?t:Wt(t))));if(r.constructor===X)return zt(n)}return n[0]},Z=(t,e)=>H(t,e,new q),Q=t=>{const e=new Map,r=d.readVarUint(t.restDecoder);for(let n=0;n<r;n++){const r=d.readVarUint(t.restDecoder),n=d.readVarUint(t.restDecoder);e.set(r,n)}return e},tt=t=>Q(new z(d.createDecoder(t))),et=(t,e)=>(u.writeVarUint(t.restEncoder,e.size),l.from(e.entries()).sort(((t,e)=>e[0]-t[0])).forEach((([e,r])=>{u.writeVarUint(t.restEncoder,e),u.writeVarUint(t.restEncoder,r)})),t),rt=(t,e=new W)=>(t instanceof Map?et(e,t):((t,e)=>{et(t,mt(e.store))})(e,t),e.toUint8Array()),nt=t=>rt(t,new P);class st{constructor(){this.l=[]}}const it=()=>new st,ot=(t,e)=>t.l.push(e),ct=(t,e)=>{const r=t.l,n=r.length;t.l=r.filter((t=>e!==t)),n===t.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},lt=(t,e,r)=>m.callAll(t.l,[e,r]);class at{constructor(t,e){this.client=t,this.clock=e}}const ht=(t,e)=>t===e||null!==t&&null!==e&&t.client===e.client&&t.clock===e.clock,ut=(t,e)=>new at(t,e),dt=t=>{for(const[e,r]of t.doc.share.entries())if(r===t)return e;throw w.unexpectedCase()};class ft{constructor(t,e){this.ds=t,this.sv=e}}const gt=(t,e)=>new ft(t,e),pt=(gt(O(),new Map),(t,e)=>void 0===e?!t.deleted:e.sv.has(t.id.client)&&(e.sv.get(t.id.client)||0)>t.id.clock&&!U(e.ds,t.id)),wt=(t,e)=>{const r=h.setIfUndefined(t.meta,wt,b.create),n=t.doc.store;r.has(e)||(e.sv.forEach(((e,r)=>{e<bt(n,r)&&xt(t,ut(r,e))})),C(t,e.ds,(t=>{})),r.add(e))};class yt{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const mt=t=>{const e=new Map;return t.clients.forEach(((t,r)=>{const n=t[t.length-1];e.set(r,n.id.clock+n.length)})),e},bt=(t,e)=>{const r=t.clients.get(e);if(void 0===r)return 0;const n=r[r.length-1];return n.id.clock+n.length},kt=(t,e)=>{let r=t.clients.get(e.id.client);if(void 0===r)r=[],t.clients.set(e.id.client,r);else{const t=r[r.length-1];if(t.id.clock+t.length!==e.id.clock)throw w.unexpectedCase()}r.push(e)},vt=(t,e)=>{let r=0,n=t.length-1,s=t[n],i=s.id.clock;if(i===e)return n;let o=a.floor(e/(i+s.length-1)*n);for(;r<=n;){if(s=t[o],i=s.id.clock,i<=e){if(e<i+s.length)return o;r=o+1}else n=o-1;o=a.floor((r+n)/2)}throw w.unexpectedCase()},_t=(t,e)=>{const r=t.clients.get(e.client);return r[vt(r,e.clock)]},St=(t,e,r)=>{const n=vt(e,r),s=e[n];return s.id.clock<r&&s instanceof fr?(e.splice(n+1,0,dr(t,s,r-s.id.clock)),n+1):n},xt=(t,e)=>{const r=t.doc.store.clients.get(e.client);return r[St(t,r,e.clock)]},Et=(t,e,r)=>{const n=e.clients.get(r.client),s=vt(n,r.clock),i=n[s];return r.clock!==i.id.clock+i.length-1&&i.constructor!==Xe&&n.splice(s+1,0,dr(t,i,r.clock-i.id.clock+1)),i},Dt=(t,e,r,n,s)=>{if(0===n)return;const i=r+n;let o,c=St(t,e,r);do{o=e[c++],i<o.id.clock+o.length&&St(t,e,i),s(o)}while(c<e.length&&e[c].id.clock<i)};class Ct{constructor(t,e,r){this.doc=t,this.deleteSet=new D,this.beforeState=mt(t.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=e,this.meta=new Map,this.local=r,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const Ut=(t,e)=>!(0===e.deleteSet.clients.size&&!h.any(e.afterState,((t,r)=>e.beforeState.get(r)!==t)))&&(A(e.deleteSet),((t,e)=>{G(t,e.doc.store,e.beforeState)})(t,e),V(t,e.deleteSet),!0),At=(t,e,r)=>{const n=e._item;(null===n||n.id.clock<(t.beforeState.get(n.id.client)||0)&&!n.deleted)&&h.setIfUndefined(t.changed,e,b.create).add(r)},It=(t,e)=>{let r=t[e],n=t[e-1],s=e;for(;s>0&&(n.deleted===r.deleted&&n.constructor===r.constructor&&n.mergeWith(r));r=n,n=t[--s-1])r instanceof fr&&null!==r.parentSub&&r.parent._map.get(r.parentSub)===r&&r.parent._map.set(r.parentSub,n);const i=e-s;return i&&t.splice(e+1-i,i),i},Tt=(t,e,r)=>{for(const[n,s]of t.clients.entries()){const t=e.clients.get(n);for(let n=s.length-1;n>=0;n--){const i=s[n],o=i.clock+i.len;for(let n=vt(t,i.clock),s=t[n];n<t.length&&s.id.clock<o;s=t[++n]){const s=t[n];if(i.clock+i.len<=s.id.clock)break;s instanceof fr&&s.deleted&&!s.keep&&r(s)&&s.gc(e,!1)}}}},Ot=(t,e)=>{t.clients.forEach(((t,r)=>{const n=e.clients.get(r);for(let e=t.length-1;e>=0;e--){const r=t[e];for(let t=a.min(n.length-1,1+vt(n,r.clock+r.len-1)),e=n[t];t>0&&e.id.clock>=r.clock;e=n[t])t-=1+It(n,t)}}))},Mt=(t,e)=>{if(e<t.length){const r=t[e],n=r.doc,s=n.store,i=r.deleteSet,o=r._mergeStructs;try{A(i),r.afterState=mt(r.doc.store),n.emit("beforeObserverCalls",[r,n]);const t=[];r.changed.forEach(((e,n)=>t.push((()=>{null!==n._item&&n._item.deleted||n._callObserver(r,e)})))),t.push((()=>{r.changedParentTypes.forEach(((e,n)=>{n._dEH.l.length>0&&(null===n._item||!n._item.deleted)&&((e=e.filter((t=>null===t.target._item||!t.target._item.deleted))).forEach((t=>{t.currentTarget=n,t._path=null})),e.sort(((t,e)=>t.path.length-e.path.length)),t.push((()=>{lt(n._dEH,e,r)})))})),t.push((()=>n.emit("afterTransaction",[r,n]))),t.push((()=>{r._needFormattingCleanup&&Ne(r)}))})),(0,m.callAll)(t,[])}finally{n.gc&&Tt(i,s,n.gcFilter),Ot(i,s),r.afterState.forEach(((t,e)=>{const n=r.beforeState.get(e)||0;if(n!==t){const t=s.clients.get(e),r=a.max(vt(t,n),1);for(let e=t.length-1;e>=r;)e-=1+It(t,e)}}));for(let t=o.length-1;t>=0;t--){const{client:e,clock:r}=o[t].id,n=s.clients.get(e),i=vt(n,r);i+1<n.length&&It(n,i+1)>1||i>0&&It(n,i)}if(r.local||r.afterState.get(n.clientID)===r.beforeState.get(n.clientID)||(k.print(v.ORANGE,v.BOLD,"[yjs] ",v.UNBOLD,v.RED,"Changed the client-id because another client seems to be using it."),n.clientID=L()),n.emit("afterTransactionCleanup",[r,n]),n._observers.has("update")){const t=new q;Ut(t,r)&&n.emit("update",[t.toUint8Array(),r.origin,n,r])}if(n._observers.has("updateV2")){const t=new X;Ut(t,r)&&n.emit("updateV2",[t.toUint8Array(),r.origin,n,r])}const{subdocsAdded:c,subdocsLoaded:l,subdocsRemoved:h}=r;(c.size>0||h.size>0||l.size>0)&&(c.forEach((t=>{t.clientID=n.clientID,null==t.collectionid&&(t.collectionid=n.collectionid),n.subdocs.add(t)})),h.forEach((t=>n.subdocs.delete(t))),n.emit("subdocs",[{loaded:l,added:c,removed:h},n,r]),h.forEach((t=>t.destroy()))),t.length<=e+1?(n._transactionCleanups=[],n.emit("afterAllTransactions",[n,t])):Mt(t,e+1)}}},Vt=(t,e,r=null,n=!0)=>{const s=t._transactionCleanups;let i=!1,o=null;null===t._transaction&&(i=!0,t._transaction=new Ct(t,r,n),s.push(t._transaction),1===s.length&&t.emit("beforeAllTransactions",[t]),t.emit("beforeTransaction",[t._transaction,t]));try{o=e(t._transaction)}finally{if(i){const e=t._transaction===s[0];t._transaction=null,e&&Mt(s,0)}}return o};c.ObservableV2;class Nt{next(){do{this.curr=this.gen.next().value||null}while(this.filterSkips&&null!==this.curr&&this.curr.constructor===wr);return this.curr}constructor(t,e){this.gen=function*(t){const e=d.readVarUint(t.restDecoder);for(let r=0;r<e;r++){const e=d.readVarUint(t.restDecoder),r=t.readClient();let n=d.readVarUint(t.restDecoder);for(let s=0;s<e;s++){const e=t.readInfo();if(10===e){const e=d.readVarUint(t.restDecoder);yield new wr(ut(r,n),e),n+=e}else if(y.BITS5&e){const s=!(e&(y.BIT7|y.BIT8)),i=new fr(ut(r,n),null,(e&y.BIT8)===y.BIT8?t.readLeftID():null,null,(e&y.BIT7)===y.BIT7?t.readRightID():null,s?t.readParentInfo()?t.readString():t.readLeftID():null,s&&(e&y.BIT6)===y.BIT6?t.readString():null,gr(t,e));yield i,n+=i.length}else{const e=t.readLen();yield new Xe(ut(r,n),e),n+=e}}}}(t),this.curr=null,this.done=!1,this.filterSkips=e,this.next()}}class Rt{constructor(t){this.currClient=0,this.startClock=0,this.written=0,this.encoder=t,this.clientStructs=[]}}const Lt=t=>zt(t,F,q),Bt=(t,e)=>{if(t.constructor===Xe){const{client:r,clock:n}=t.id;return new Xe(ut(r,n+e),t.length-e)}if(t.constructor===wr){const{client:r,clock:n}=t.id;return new wr(ut(r,n+e),t.length-e)}{const r=t,{client:n,clock:s}=r.id;return new fr(ut(n,s+e),null,ut(n,s+e-1),null,r.rightOrigin,r.parent,r.parentSub,r.content.splice(e))}},zt=(t,e=J,r=X)=>{if(1===t.length)return t[0];const n=t.map((t=>new e(d.createDecoder(t))));let s=n.map((t=>new Nt(t,!0))),i=null;const o=new r,c=new Rt(o);for(;s=s.filter((t=>null!==t.curr)),s.sort(((t,e)=>{if(t.curr.id.client===e.curr.id.client){const r=t.curr.id.clock-e.curr.id.clock;return 0===r?t.curr.constructor===e.curr.constructor?0:t.curr.constructor===wr?1:-1:r}return e.curr.id.client-t.curr.id.client})),0!==s.length;){const t=s[0],e=t.curr.id.client;if(null!==i){let r=t.curr,n=!1;for(;null!==r&&r.id.clock+r.length<=i.struct.id.clock+i.struct.length&&r.id.client>=i.struct.id.client;)r=t.next(),n=!0;if(null===r||r.id.client!==e||n&&r.id.clock>i.struct.id.clock+i.struct.length)continue;if(e!==i.struct.id.client)Jt(c,i.struct,i.offset),i={struct:r,offset:0},t.next();else if(i.struct.id.clock+i.struct.length<r.id.clock)if(i.struct.constructor===wr)i.struct.length=r.id.clock+r.length-i.struct.id.clock;else{Jt(c,i.struct,i.offset);const t=r.id.clock-i.struct.id.clock-i.struct.length;i={struct:new wr(ut(e,i.struct.id.clock+i.struct.length),t),offset:0}}else{const e=i.struct.id.clock+i.struct.length-r.id.clock;e>0&&(i.struct.constructor===wr?i.struct.length-=e:r=Bt(r,e)),i.struct.mergeWith(r)||(Jt(c,i.struct,i.offset),i={struct:r,offset:0},t.next())}}else i={struct:t.curr,offset:0},t.next();for(let r=t.curr;null!==r&&r.id.client===e&&r.id.clock===i.struct.id.clock+i.struct.length&&r.constructor!==wr;r=t.next())Jt(c,i.struct,i.offset),i={struct:r,offset:0}}null!==i&&(Jt(c,i.struct,i.offset),i=null),Pt(c);const l=n.map((t=>N(t))),a=I(l);return V(o,a),o.toUint8Array()},Ft=(t,e,r=J,n=X)=>{const s=tt(e),i=new n,o=new Rt(i),c=new r(d.createDecoder(t)),l=new Nt(c,!1);for(;l.curr;){const t=l.curr,e=t.id.client,r=s.get(e)||0;if(l.curr.constructor!==wr)if(t.id.clock+t.length>r)for(Jt(o,t,a.max(r-t.id.clock,0)),l.next();l.curr&&l.curr.id.client===e;)Jt(o,l.curr,0),l.next();else for(;l.curr&&l.curr.id.client===e&&l.curr.id.clock+l.curr.length<=r;)l.next();else l.next()}Pt(o);const h=N(c);return V(i,h),i.toUint8Array()},jt=t=>{t.written>0&&(t.clientStructs.push({written:t.written,restEncoder:u.toUint8Array(t.encoder.restEncoder)}),t.encoder.restEncoder=u.createEncoder(),t.written=0)},Jt=(t,e,r)=>{t.written>0&&t.currClient!==e.id.client&&jt(t),0===t.written&&(t.currClient=e.id.client,t.encoder.writeClient(e.id.client),u.writeVarUint(t.encoder.restEncoder,e.id.clock+r)),e.write(t.encoder,r),t.written++},Pt=t=>{jt(t);const e=t.encoder.restEncoder;u.writeVarUint(e,t.clientStructs.length);for(let r=0;r<t.clientStructs.length;r++){const n=t.clientStructs[r];u.writeVarUint(e,n.written),u.writeUint8Array(e,n.restEncoder)}},qt=(t,e,r,n)=>{const s=new r(d.createDecoder(t)),i=new Nt(s,!1),o=new n,c=new Rt(o);for(let t=i.curr;null!==t;t=i.next())Jt(c,e(t),0);Pt(c);const l=N(s);return V(o,l),o.toUint8Array()},Wt=t=>qt(t,m.id,J,q),Xt="You must not compute changes after the event-handler fired.";class Gt{get path(){return this._path||(this._path=Yt(this.currentTarget,this.target))}deletes(t){return U(this.transaction.deleteSet,t.id)}get keys(){if(null===this._keys){if(0===this.transaction.doc._transactionCleanups.length)throw w.create(Xt);const t=new Map,e=this.target;this.transaction.changed.get(e).forEach((r=>{if(null!==r){const n=e._map.get(r);let s,i;if(this.adds(n)){let t=n.left;for(;null!==t&&this.adds(t);)t=t.left;if(this.deletes(n)){if(null===t||!this.deletes(t))return;s="delete",i=l.last(t.content.getContent())}else null!==t&&this.deletes(t)?(s="update",i=l.last(t.content.getContent())):(s="add",i=void 0)}else{if(!this.deletes(n))return;s="delete",i=l.last(n.content.getContent())}t.set(r,{action:s,oldValue:i})}})),this._keys=t}return this._keys}get delta(){return this.changes.delta}adds(t){return t.id.clock>=(this.transaction.beforeState.get(t.id.client)||0)}get changes(){let t=this._changes;if(null===t){if(0===this.transaction.doc._transactionCleanups.length)throw w.create(Xt);const e=this.target,r=b.create(),n=b.create(),s=[];t={added:r,deleted:n,delta:s,keys:this.keys};if(this.transaction.changed.get(e).has(null)){let t=null;const i=()=>{t&&s.push(t)};for(let s=e._start;null!==s;s=s.right)s.deleted?this.deletes(s)&&!this.adds(s)&&(null!==t&&void 0!==t.delete||(i(),t={delete:0}),t.delete+=s.length,n.add(s)):this.adds(s)?(null!==t&&void 0!==t.insert||(i(),t={insert:[]}),t.insert=t.insert.concat(s.content.getContent()),r.add(s)):(null!==t&&void 0!==t.retain||(i(),t={retain:0}),t.retain+=s.length);null!==t&&void 0===t.retain&&i()}this._changes=t}return t}constructor(t,e){this.target=t,this.currentTarget=t,this.transaction=e,this._changes=null,this._keys=null,this._delta=null,this._path=null}}const Yt=(t,e)=>{const r=[];for(;null!==e._item&&e!==t;){if(null!==e._item.parentSub)r.unshift(e._item.parentSub);else{let t=0,n=e._item.parent._start;for(;n!==e._item&&null!==n;)!n.deleted&&n.countable&&(t+=n.length),n=n.right;r.unshift(t)}e=e._item.parent}return r},Kt=()=>{k.warn("Invalid access: Add Yjs type to a document before reading data.")};let $t=0;class Ht{constructor(t,e){t.marker=!0,this.p=t,this.index=e,this.timestamp=$t++}}const Zt=(t,e,r)=>{t.p.marker=!1,t.p=e,e.marker=!0,t.index=r,t.timestamp=$t++},Qt=(t,e)=>{if(null===t._start||0===e||null===t._searchMarker)return null;const r=0===t._searchMarker.length?null:t._searchMarker.reduce(((t,r)=>a.abs(e-t.index)<a.abs(e-r.index)?t:r));let n=t._start,s=0;for(null!==r&&(n=r.p,s=r.index,(t=>{t.timestamp=$t++})(r));null!==n.right&&s<e;){if(!n.deleted&&n.countable){if(e<s+n.length)break;s+=n.length}n=n.right}for(;null!==n.left&&s>e;)n=n.left,!n.deleted&&n.countable&&(s-=n.length);for(;null!==n.left&&n.left.id.client===n.id.client&&n.left.id.clock+n.left.length===n.id.clock;)n=n.left,!n.deleted&&n.countable&&(s-=n.length);return null!==r&&a.abs(r.index-s)<n.parent.length/80?(Zt(r,n,s),r):((t,e,r)=>{if(t.length>=80){const n=t.reduce(((t,e)=>t.timestamp<e.timestamp?t:e));return Zt(n,e,r),n}{const n=new Ht(e,r);return t.push(n),n}})(t._searchMarker,n,s)},te=(t,e,r)=>{for(let n=t.length-1;n>=0;n--){const s=t[n];if(r>0){let e=s.p;for(e.marker=!1;e&&(e.deleted||!e.countable);)e=e.left,e&&!e.deleted&&e.countable&&(s.index-=e.length);if(null===e||!0===e.marker){t.splice(n,1);continue}s.p=e,e.marker=!0}(e<s.index||r>0&&e===s.index)&&(s.index=a.max(e,s.index+r))}},ee=(t,e,r)=>{const n=t,s=e.changedParentTypes;for(;h.setIfUndefined(s,t,(()=>[])).push(r),null!==t._item;)t=t._item.parent;lt(n._eH,r,e)};class re{get parent(){return this._item?this._item.parent:null}_integrate(t,e){this.doc=t,this._item=e}_copy(){throw w.methodUnimplemented()}clone(){throw w.methodUnimplemented()}_write(t){}get _first(){let t=this._start;for(;null!==t&&t.deleted;)t=t.right;return t}_callObserver(t,e){!t.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(t){ot(this._eH,t)}observeDeep(t){ot(this._dEH,t)}unobserve(t){ct(this._eH,t)}unobserveDeep(t){ct(this._dEH,t)}toJSON(){}constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=it(),this._dEH=it(),this._searchMarker=null}}const ne=(t,e,r)=>{var n;null!==(n=t.doc)&&void 0!==n||Kt(),e<0&&(e=t._length+e),r<0&&(r=t._length+r);let s=r-e;const i=[];let o=t._start;for(;null!==o&&s>0;){if(o.countable&&!o.deleted){const t=o.content.getContent();if(t.length<=e)e-=t.length;else{for(let r=e;r<t.length&&s>0;r++)i.push(t[r]),s--;e=0}}o=o.right}return i},se=t=>{var e;null!==(e=t.doc)&&void 0!==e||Kt();const r=[];let n=t._start;for(;null!==n;){if(n.countable&&!n.deleted){const t=n.content.getContent();for(let e=0;e<t.length;e++)r.push(t[e])}n=n.right}return r},ie=(t,e)=>{let r=0,n=t._start;var s;for(null!==(s=t.doc)&&void 0!==s||Kt();null!==n;){if(n.countable&&!n.deleted){const s=n.content.getContent();for(let n=0;n<s.length;n++)e(s[n],r++,t)}n=n.right}},oe=(t,e)=>{const r=[];return ie(t,((n,s)=>{r.push(e(n,s,t))})),r},ce=t=>{let e=t._start,r=null,n=0;return{[Symbol.iterator](){return this},next:()=>{if(null===r){for(;null!==e&&e.deleted;)e=e.right;if(null===e)return{done:!0,value:void 0};r=e.content.getContent(),n=0,e=e.right}const t=r[n++];return r.length<=n&&(r=null),{done:!1,value:t}}}},le=(t,e)=>{var r;null!==(r=t.doc)&&void 0!==r||Kt();const n=Qt(t,e);let s=t._start;for(null!==n&&(s=n.p,e-=n.index);null!==s;s=s.right)if(!s.deleted&&s.countable){if(e<s.length)return s.content.getContent()[e];e-=s.length}},ae=(t,e,r,n)=>{let s=r;const i=t.doc,o=i.clientID,c=i.store,l=null===r?e._start:r.right;let a=[];const h=()=>{a.length>0&&(s=new fr(ut(o,bt(c,o)),s,s&&s.lastId,l,l&&l.id,e,null,new er(a)),s.integrate(t,0),a=[])};n.forEach((r=>{if(null===r)a.push(r);else switch(r.constructor){case Number:case Object:case Boolean:case Array:case String:a.push(r);break;default:switch(h(),r.constructor){case Uint8Array:case ArrayBuffer:s=new fr(ut(o,bt(c,o)),s,s&&s.lastId,l,l&&l.id,e,null,new Ge(new Uint8Array(r))),s.integrate(t,0);break;case B:s=new fr(ut(o,bt(c,o)),s,s&&s.lastId,l,l&&l.id,e,null,new $e(r)),s.integrate(t,0);break;default:if(!(r instanceof re))throw new Error("Unexpected content type in insert operation");s=new fr(ut(o,bt(c,o)),s,s&&s.lastId,l,l&&l.id,e,null,new ur(r)),s.integrate(t,0)}}})),h()},he=()=>w.create("Length exceeded!"),ue=(t,e,r,n)=>{if(r>e._length)throw he();if(0===r)return e._searchMarker&&te(e._searchMarker,r,n.length),ae(t,e,null,n);const s=r,i=Qt(e,r);let o=e._start;for(null!==i&&(o=i.p,0===(r-=i.index)&&(o=o.prev,r+=o&&o.countable&&!o.deleted?o.length:0));null!==o;o=o.right)if(!o.deleted&&o.countable){if(r<=o.length){r<o.length&&xt(t,ut(o.id.client,o.id.clock+r));break}r-=o.length}return e._searchMarker&&te(e._searchMarker,s,n.length),ae(t,e,o,n)},de=(t,e,r,n)=>{if(0===n)return;const s=r,i=n,o=Qt(e,r);let c=e._start;for(null!==o&&(c=o.p,r-=o.index);null!==c&&r>0;c=c.right)!c.deleted&&c.countable&&(r<c.length&&xt(t,ut(c.id.client,c.id.clock+r)),r-=c.length);for(;n>0&&null!==c;)c.deleted||(n<c.length&&xt(t,ut(c.id.client,c.id.clock+n)),c.delete(t),n-=c.length),c=c.right;if(n>0)throw he();e._searchMarker&&te(e._searchMarker,s,-i+n)},fe=(t,e,r)=>{const n=e._map.get(r);void 0!==n&&n.delete(t)},ge=(t,e,r,n)=>{const s=e._map.get(r)||null,i=t.doc,o=i.clientID;let c;if(null==n)c=new er([n]);else switch(n.constructor){case Number:case Object:case Boolean:case Array:case String:case Date:case BigInt:c=new er([n]);break;case Uint8Array:c=new Ge(n);break;case B:c=new $e(n);break;default:if(!(n instanceof re))throw new Error("Unexpected content type");c=new ur(n)}new fr(ut(o,bt(i.store,o)),s,s&&s.lastId,null,null,e,r,c).integrate(t,0)},pe=(t,e)=>{var r;null!==(r=t.doc)&&void 0!==r||Kt();const n=t._map.get(e);return void 0===n||n.deleted?void 0:n.content.getContent()[n.length-1]},we=t=>{const e={};var r;return null!==(r=t.doc)&&void 0!==r||Kt(),t._map.forEach(((t,r)=>{t.deleted||(e[r]=t.content.getContent()[t.length-1])})),e},ye=(t,e)=>{var r;null!==(r=t.doc)&&void 0!==r||Kt();const n=t._map.get(e);return void 0!==n&&!n.deleted},me=t=>{var e;return null!==(e=t.doc)&&void 0!==e||Kt(),_.iteratorFilter(t._map.entries(),(t=>!t[1].deleted))};class be extends Gt{}class ke extends re{static from(t){const e=new ke;return e.push(t),e}_integrate(t,e){super._integrate(t,e),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new ke}clone(){const t=new ke;return t.insert(0,this.toArray().map((t=>t instanceof re?t.clone():t))),t}get length(){var t;return null!==(t=this.doc)&&void 0!==t||Kt(),this._length}_callObserver(t,e){super._callObserver(t,e),ee(this,t,new be(this,t))}insert(t,e){null!==this.doc?Vt(this.doc,(r=>{ue(r,this,t,e)})):this._prelimContent.splice(t,0,...e)}push(t){null!==this.doc?Vt(this.doc,(e=>{((t,e,r)=>{let n=(e._searchMarker||[]).reduce(((t,e)=>e.index>t.index?e:t),{index:0,p:e._start}).p;if(n)for(;n.right;)n=n.right;ae(t,e,n,r)})(e,this,t)})):this._prelimContent.push(...t)}unshift(t){this.insert(0,t)}delete(t,e=1){null!==this.doc?Vt(this.doc,(r=>{de(r,this,t,e)})):this._prelimContent.splice(t,e)}get(t){return le(this,t)}toArray(){return se(this)}slice(t=0,e=this.length){return ne(this,t,e)}toJSON(){return this.map((t=>t instanceof re?t.toJSON():t))}map(t){return oe(this,t)}forEach(t){ie(this,t)}[Symbol.iterator](){return ce(this)}_write(t){t.writeTypeRef(sr)}constructor(){super(),this._prelimContent=[],this._searchMarker=[]}}class ve extends Gt{constructor(t,e,r){super(t,e),this.keysChanged=r}}class _e extends re{_integrate(t,e){super._integrate(t,e),this._prelimContent.forEach(((t,e)=>{this.set(e,t)})),this._prelimContent=null}_copy(){return new _e}clone(){const t=new _e;return this.forEach(((e,r)=>{t.set(r,e instanceof re?e.clone():e)})),t}_callObserver(t,e){ee(this,t,new ve(this,t,e))}toJSON(){var t;null!==(t=this.doc)&&void 0!==t||Kt();const e={};return this._map.forEach(((t,r)=>{if(!t.deleted){const n=t.content.getContent()[t.length-1];e[r]=n instanceof re?n.toJSON():n}})),e}get size(){return[...me(this)].length}keys(){return _.iteratorMap(me(this),(t=>t[0]))}values(){return _.iteratorMap(me(this),(t=>t[1].content.getContent()[t[1].length-1]))}entries(){return _.iteratorMap(me(this),(t=>[t[0],t[1].content.getContent()[t[1].length-1]]))}forEach(t){var e;null!==(e=this.doc)&&void 0!==e||Kt(),this._map.forEach(((e,r)=>{e.deleted||t(e.content.getContent()[e.length-1],r,this)}))}[Symbol.iterator](){return this.entries()}delete(t){null!==this.doc?Vt(this.doc,(e=>{fe(e,this,t)})):this._prelimContent.delete(t)}set(t,e){return null!==this.doc?Vt(this.doc,(r=>{ge(r,this,t,e)})):this._prelimContent.set(t,e),e}get(t){return pe(this,t)}has(t){return ye(this,t)}clear(){null!==this.doc?Vt(this.doc,(t=>{this.forEach((function(e,r,n){fe(t,n,r)}))})):this._prelimContent.clear()}_write(t){t.writeTypeRef(ir)}constructor(t){super(),this._prelimContent=null,this._prelimContent=void 0===t?new Map:new Map(t)}}const Se=(t,e)=>t===e||"object"==typeof t&&"object"==typeof e&&t&&e&&S.equalFlat(t,e);class xe{forward(){if(null===this.right&&w.unexpectedCase(),this.right.content.constructor===Ze)this.right.deleted||Ue(this.currentAttributes,this.right.content);else this.right.deleted||(this.index+=this.right.length);this.left=this.right,this.right=this.right.right}constructor(t,e,r,n){this.left=t,this.right=e,this.index=r,this.currentAttributes=n}}const Ee=(t,e,r)=>{for(;null!==e.right&&r>0;){if(e.right.content.constructor===Ze)e.right.deleted||Ue(e.currentAttributes,e.right.content);else e.right.deleted||(r<e.right.length&&xt(t,ut(e.right.id.client,e.right.id.clock+r)),e.index+=e.right.length,r-=e.right.length);e.left=e.right,e.right=e.right.right}return e},De=(t,e,r,n)=>{const s=new Map,i=n?Qt(e,r):null;if(i){const e=new xe(i.p.left,i.p,i.index,s);return Ee(t,e,r-i.index)}{const n=new xe(null,e._start,0,s);return Ee(t,n,r)}},Ce=(t,e,r,n)=>{for(;null!==r.right&&(!0===r.right.deleted||r.right.content.constructor===Ze&&Se(n.get(r.right.content.key),r.right.content.value));)r.right.deleted||n.delete(r.right.content.key),r.forward();const s=t.doc,i=s.clientID;n.forEach(((n,o)=>{const c=r.left,l=r.right,a=new fr(ut(i,bt(s.store,i)),c,c&&c.lastId,l,l&&l.id,e,null,new Ze(o,n));a.integrate(t,0),r.right=a,r.forward()}))},Ue=(t,e)=>{const{key:r,value:n}=e;null===n?t.delete(r):t.set(r,n)},Ae=(t,e)=>{for(;;){var r;if(null===t.right)break;if(!(t.right.deleted||t.right.content.constructor===Ze&&Se(null!==(r=e[t.right.content.key])&&void 0!==r?r:null,t.right.content.value)))break;t.forward()}},Ie=(t,e,r,n)=>{const s=t.doc,i=s.clientID,o=new Map;for(const l in n){const a=n[l];var c;const h=null!==(c=r.currentAttributes.get(l))&&void 0!==c?c:null;if(!Se(h,a)){o.set(l,h);const{left:n,right:c}=r;r.right=new fr(ut(i,bt(s.store,i)),n,n&&n.lastId,c,c&&c.id,e,null,new Ze(l,a)),r.right.integrate(t,0),r.forward()}}return o},Te=(t,e,r,n,s)=>{r.currentAttributes.forEach(((t,e)=>{void 0===s[e]&&(s[e]=null)}));const i=t.doc,o=i.clientID;Ae(r,s);const c=Ie(t,e,r,s),l=n.constructor===String?new rr(n):n instanceof re?new ur(n):new He(n);let{left:a,right:h,index:u}=r;e._searchMarker&&te(e._searchMarker,r.index,l.getLength()),h=new fr(ut(o,bt(i.store,o)),a,a&&a.lastId,h,h&&h.id,e,null,l),h.integrate(t,0),r.right=h,r.index=u,r.forward(),Ce(t,e,r,c)},Oe=(t,e,r,n,s)=>{const i=t.doc,o=i.clientID;Ae(r,s);const c=Ie(t,e,r,s);t:for(;null!==r.right&&(n>0||c.size>0&&(r.right.deleted||r.right.content.constructor===Ze));){if(!r.right.deleted)switch(r.right.content.constructor){case Ze:{const{key:e,value:i}=r.right.content,o=s[e];if(void 0!==o){if(Se(o,i))c.delete(e);else{if(0===n)break t;c.set(e,i)}r.right.delete(t)}else r.currentAttributes.set(e,i);break}default:n<r.right.length&&xt(t,ut(r.right.id.client,r.right.id.clock+n)),n-=r.right.length}r.forward()}if(n>0){let s="";for(;n>0;n--)s+="\n";r.right=new fr(ut(o,bt(i.store,o)),r.left,r.left&&r.left.lastId,r.right,r.right&&r.right.id,e,null,new rr(s)),r.right.integrate(t,0),r.forward()}Ce(t,e,r,c)},Me=(t,e,r,n,s)=>{let i=e;const o=h.create();for(;i&&(!i.countable||i.deleted);){if(!i.deleted&&i.content.constructor===Ze){const t=i.content;o.set(t.key,t)}i=i.right}let c=0,l=!1;for(;e!==i;){if(r===e&&(l=!0),!e.deleted){const r=e.content;switch(r.constructor){case Ze:{const{key:i,value:h}=r;var a;const d=null!==(a=n.get(i))&&void 0!==a?a:null;var u;if(o.get(i)!==r||d===h)e.delete(t),c++,l||(null!==(u=s.get(i))&&void 0!==u?u:null)!==h||d===h||(null===d?s.delete(i):s.set(i,d));l||e.deleted||Ue(s,r);break}}}e=e.right}return c},Ve=t=>{let e=0;return Vt(t.doc,(r=>{let n=t._start,s=t._start,i=h.create();const o=h