UNPKG

@liascript/exporter

Version:
1 lines 140 kB
!function(e,t,r,n,s){var o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof o[n]&&o[n],c=i.cache||{},l="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function a(t,r){if(!c[t]){if(!e[t]){var s="function"==typeof o[n]&&o[n];if(!r&&s)return s(t,!0);if(i)return i(t,!0);if(l&&"string"==typeof t)return l(t);var h=new Error("Cannot find module '"+t+"'");throw h.code="MODULE_NOT_FOUND",h}u.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},u.cache={};var d=c[t]=new a.Module(t);e[t][0].call(d.exports,u,d,d.exports,this)}return c[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:a(t)}}a.isParcelRequire=!0,a.Module=function(e){this.id=e,this.bundle=a,this.exports={}},a.modules=e,a.cache=c,a.parent=i,a.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(a,"root",{get:function(){return o[n]}}),o[n]=a;for(var h=0;h<t.length;h++)a(t[h])}({"2cTju":[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"uint8_to_base64",(()=>c)),n.export(r,"base64_to_unit8",(()=>l)),n.export(r,"Sync",(()=>h));var s=e("../../helper"),o=e("./db"),i=e("uint8-to-base64");function c(e){return(0,i.encode)(e)}function l(e){return(0,i.decode)(e)}function a(e=16){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r="";for(let n=0;n<e;n++)r+=t.charAt(Math.floor(62*Math.random()));return r}class h{isConnected=!1;replyOnReceive=!1;constructor(e,t,r,n,s=!1,i=!0){let c;try{c=window.localStorage.getItem("lia-token"),c||(c=a(),window.localStorage.setItem("lia-token",c))}catch(e){console.warn("cannot write to localStorage"),c=a()}this.token=c,this.urlCounter=0,this.cbConnection=e,this.cbRelay=t,this.onConnect=r,this.onReceive=n,this.replyOnReceive=s;const l=this;this.db=new(0,o.CRDT)(c,i?(e,t)=>{if(l.db)switch(t){case"cursor":this.sync("update",{cmd:"cursor",param:e});break;case"peer":this.sync("update",{cmd:"peer",param:e});break;case"code":this.sync("update",{cmd:"code",param:e});break;case"quiz":this.sync("update",{cmd:"quiz",param:e});break;case"survey":this.sync("update",{cmd:"survey",param:e});break;case"chat":this.sync("update",{cmd:"chat",param:e});break;default:console.warn("Sync unknown origin",t)}}:void 0)}connect(e){this.room=e.room,this.course=e.course,this.password=e.password,this.isConnected=!0}destroy(){this.db.destroy(),this.cbConnection("disconnect",this.token),this.isConnected=!1}disconnect(){this.db.removePeer(),this.destroy()}uniqueID(e){let t=null;return"string"==typeof this.room&&(this.room.startsWith('"')&&this.room.endsWith('"')||this.room.startsWith("'")&&this.room.endsWith("'"))&&(t=this.room),this.course&&this.room&&(t=JSON.stringify({course:this.course,room:this.room,pw:s.getHashCode(this.password||"")})),e&&t&&(t=s.getHashCode(t+e).toString()),t||console.warn("Sync: no uniqueID"),t}sendToLia(e){this.cbRelay(e)}sync(e,t=null){this.cbConnection(e,t)}sendDisconnectError(e){this.sync("error",e)}sendConnect(){this.sync("connect",this.token),this.onConnect&&this.onConnect()}pubsubSend(e,t){JSON.stringify({topic:e,message:t}),new TextEncoder;this.replyOnReceive&&this.onReceive?.(e,t)}pubsubReceive(e){try{const t=(new TextDecoder).decode(e),r=JSON.parse(t);this.onReceive?.(r.topic,r.message)}catch(e){console.warn("Sync: pubsubReceive",e.message)}}load(e,t){try{for(let r=0;r<e.length;r++){const n=document.createElement("script");n.async=!1,n.defer=!0,n.src=e[r],this.urlCounter++;let s=this;n.onload=function(){console.log("successfully loaded =>",e),s.urlCounter--,0==s.urlCounter&&t.init(!0)},n.onerror=function(r){console.warn("could not load =>",e,r),s.urlCounter=0,t.init(!1,`could not load => ${e}`)},document.head.appendChild(n)}}catch(e){console.error("load: ",e),t.init(!1,e.message)}}publish(e){switch(console.warn("publish needs to be implemented",e),e.message.cmd){case"update":break;case"join":this.db.init(e.message.param);break;case"chat":this.db.addChatMessage(e.message.param);break;case"quiz":"quiz"===e.track?.[0][0]&&"id"===e.track?.[1][0]?this.db.addQuiz(e.track[0][1],e.track[1][1],e.message.param):console.warn("SyncTX wrong event ->",e);break;case"survey":"survey"===e.track?.[0][0]&&"id"===e.track?.[1][0]?this.db.addSurvey(e.track[0][1],e.track[1][1],e.message.param):console.warn("SyncTX wrong event ->",e);break;case"code":"code"===e.track?.[0][0]&&"id"===e.track?.[1][0]?this.db.updateCode(e.track[0][1],e.track[1][1],e.message.param.j,e.message.param.msg):console.warn("SyncTX wrong event ->",e);break;case"codes":if("code"===e.track?.[0][0]&&1===e.track.length)for(let t=0;t<e.message.param.length;t++)for(let r=0;r<e.message.param[t].length;r++)this.db.initCode(e.track[0][1],t,r,e.message.param[t][r]);else console.warn("SyncTX wrong event ->",e);break;case"cursor":"code"==e.track?.[0][0]&&this.db.setCursor(e.track[0][1],e.message.param);break;default:console.warn("SyncTX unknown command:",e.message)}}}},{"../../helper":"967cd","./db":"c0ZJP","uint8-to-base64":"cdRXY","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],c0ZJP:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"CRDT",(()=>c));var s=e("yjs"),o=e("../../helper"),i=e("y-utility/y-keyvalue");class c{timestamp=Date.now();constructor(e,t){this.doc=new s.Doc,this.callback=t||((e,t)=>{console.warn("SyncDB: no callback provided")}),this.length=0,this.peerID=e,this.codes=this.doc.getMap("c"),this.quizzes=this.doc.getMap("q"),this.surveys=this.doc.getMap("s"),this.chat=new(0,i.YKeyValue)(this.doc.getArray("chat"))}init(e){this.length=Math.max(this.length,e.length),this.doc.transact((()=>{for(let t=0;t<e.length;t++)this.initMap(this.quizzes,t,e[t].q),this.initMap(this.surveys,t,e[t].s),this.initText(t,e[t].c)}),this.peerID),this.registerCallbacks(),this.fireInitialState()}fireInitialState(){const e=this.getPeers();e.length>0&&this.callback(e,"peer");const t=this.getCursors();t.length>0&&this.callback(t,"cursor");const r=new Set;for(const e of this.quizzes.keys())try{const[t]=JSON.parse(e);r.add(t)}catch{}r.size>0&&this.callback([...r].map((e=>({id:e,data:this.getMaps(e,this.quizzes)}))),"quiz");const n=new Set;for(const e of this.surveys.keys())try{const[t]=JSON.parse(e);n.add(t)}catch{}n.size>0&&this.callback([...n].map((e=>({id:e,data:this.getMaps(e,this.surveys)}))),"survey");const s=new Set;for(const e of this.codes.keys())try{const[t]=JSON.parse(e);s.add(t)}catch{}s.size>0&&this.callback(this.getCode(s),"code");const o=[];for(const[e,t]of this.chat.map){const r={...t.val,id:parseInt(e)};o.push(r)}o.length>0&&(o.sort(((e,t)=>e.id-t.id)),this.callback(o,"chat"))}setAwareness(e){this.awareness=e,e.setLocalState({peerID:this.peerID,color:this.getColor()}),e.on("change",(e=>{const t=this.getPeers();this.callback(t,"peer");const r=this.getCursors();r.length>0&&this.callback(r,"cursor")}))}registerCallbacks(){this.quizzes.observe((e=>{const t=new Set;e.keysChanged.forEach((e=>{try{const[r]=JSON.parse(e);t.add(r)}catch{}})),t.size>0&&this.callback([...t].map((e=>({id:e,data:this.getMaps(e,this.quizzes)}))),"quiz")})),this.surveys.observe((e=>{const t=new Set;e.keysChanged.forEach((e=>{try{const[r]=JSON.parse(e);t.add(r)}catch{}})),t.size>0&&this.callback([...t].map((e=>({id:e,data:this.getMaps(e,this.surveys)}))),"survey")})),this.chat.on("change",(e=>{const t=[];let r;for(let[n,s]of e)"add"===s.action&&(r=s.newValue,r.id=parseInt(n),t.push(r));t.length>0&&this.callback(t,"chat")})),this.codes.observeDeep((e=>{const t=new Set;for(const r of e)if(r.target===this.codes)r.keysChanged.forEach((e=>{try{const[r]=JSON.parse(e);t.add(r)}catch{}}));else try{const[e]=JSON.parse(r.path[0]);t.add(e)}catch{}t.size>0&&this.callback(this.getCode(t),"code")}))}encode(){return s.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(e,t,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 o=JSON.stringify([t,n,this.peerID]);e.has(o)||e.set(o,s)}}initText(e,t){if(0!==t.length)for(let r=0;r<t.length;r++)for(let n=0;n<t[r].length;n++)this.initCode(e,r,n,t[r][n])}getCode(e){let t=[];for(const r of e)t.push({id:r,data:this.getAllTexts(r)});return t}getCursors(){if(!this.awareness)return[];const e=[];for(const[,t]of this.awareness.getStates())t?.cursor&&t?.peerID&&t.peerID!==this.peerID&&e.push(t.cursor);return e}getPeers(){if(!this.awareness)return[];const e=[];for(const[,t]of this.awareness.getStates())t?.peerID&&e.push(t.peerID);return e}removePeer(){this.awareness?.setLocalState(null)}id(e,t,r){return void 0===r?JSON.stringify([e,t]):JSON.stringify([e,t,r])}getMaps(e,t){const r=`[${e},`,n=[];for(const[e,s]of t)if(e.startsWith(r))try{const t=JSON.parse(e);if(3!==t.length)continue;const r=t[1],o=t[2];n[r]||(n[r]={}),n[r][o]=s}catch{}for(let e=0;e<n.length;e++)n[e]||(n[e]={});return n}getAllTexts(e){let t,r=[];for(let n=0;this.codes.has(this.id(e,n,0));n++){let s=[];for(let r=0;this.codes.has(this.id(e,n,r));r++)t=this.codes.get(this.id(e,n,r)),s.push(t?.toString()||"");r.push(s)}return r}addQuiz(e,t,r){this.addRecord(this.quizzes,e,t,r)}addSurvey(e,t,r){this.addRecord(this.surveys,e,t,r)}addRecord(e,t,r,n){e.set(JSON.stringify([t,r,this.peerID]),n)}initCode(e,t,r,n){if(!this.codes.has(this.id(e,t,r))){const o=this.doc.clientID;this.doc.clientID=0;const i=new s.Text;i.insert(0,n),this.codes.set(this.id(e,t,r),i),this.doc.clientID=o}}addChatMessage(e){this.chat.set(""+Date.now(),{color:this.getColor(),message:e,user:this.peerID})}updateCode(e,t,r,n){this.codes.has(this.id(e,t,r))&&this.doc.transact((()=>{const s=this.codes.get(this.id(e,t,r));if(void 0!==s)for(let e of n)switch(e.action){case"insert":s.insert(e.index,e.content);break;case"remove":s.delete(e.index,e.content.length);break;default:console.warn("Sync code, unknown action ->",e)}}),"code")}getColor(){return this.color||(this.color=o.getColorFor(this.peerID)),this.color}setCursor(e,t){this.awareness?.setLocalStateField("cursor",{id:this.peerID,section:e,project:t.project,file:t.file,state:t.state,color:this.getColor()})}removeCursor(){this.awareness?.setLocalStateField("cursor",null)}}},{yjs:"dugeO","../../helper":"967cd","y-utility/y-keyvalue":"juk3T","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],dugeO:[function(e,t,r){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(r),n.export(r,"AbsolutePosition",(()=>Ee)),n.export(r,"AbstractConnector",(()=>v)),n.export(r,"AbstractStruct",(()=>Lr)),n.export(r,"AbstractType",(()=>Ht)),n.export(r,"Array",(()=>fr)),n.export(r,"ContentAny",(()=>$r)),n.export(r,"ContentBinary",(()=>Pr)),n.export(r,"ContentDeleted",(()=>zr)),n.export(r,"ContentDoc",(()=>Xr)),n.export(r,"ContentEmbed",(()=>Gr)),n.export(r,"ContentFormat",(()=>Jr)),n.export(r,"ContentJSON",(()=>Hr)),n.export(r,"ContentString",(()=>Yr)),n.export(r,"ContentType",(()=>on)),n.export(r,"Doc",(()=>L)),n.export(r,"GC",(()=>Fr)),n.export(r,"ID",(()=>de)),n.export(r,"Item",(()=>un)),n.export(r,"Map",(()=>mr)),n.export(r,"PermanentUserData",(()=>xe)),n.export(r,"RelativePosition",(()=>be)),n.export(r,"Skip",(()=>gn)),n.export(r,"Snapshot",(()=>Ce)),n.export(r,"Text",(()=>Ar)),n.export(r,"Transaction",(()=>Qe)),n.export(r,"UndoManager",(()=>dt)),n.export(r,"UpdateDecoderV1",(()=>P)),n.export(r,"UpdateDecoderV2",(()=>q)),n.export(r,"UpdateEncoderV1",(()=>G)),n.export(r,"UpdateEncoderV2",(()=>H)),n.export(r,"XmlElement",(()=>Or)),n.export(r,"XmlFragment",(()=>Br)),n.export(r,"XmlHook",(()=>Mr)),n.export(r,"XmlText",(()=>Rr)),n.export(r,"YArrayEvent",(()=>pr)),n.export(r,"YEvent",(()=>Mt)),n.export(r,"YMapEvent",(()=>gr)),n.export(r,"YTextEvent",(()=>Dr)),n.export(r,"YXmlEvent",(()=>Nr)),n.export(r,"applyUpdate",(()=>K)),n.export(r,"applyUpdateV2",(()=>Z)),n.export(r,"cleanupYTextFormatting",(()=>Tr)),n.export(r,"compareIDs",(()=>ue)),n.export(r,"compareRelativePositions",(()=>je)),n.export(r,"convertUpdateFormatV1ToV2",(()=>Bt)),n.export(r,"convertUpdateFormatV2ToV1",(()=>Ot)),n.export(r,"createAbsolutePositionFromRelativePosition",(()=>Te)),n.export(r,"createDeleteSet",(()=>A)),n.export(r,"createDeleteSetFromStructStore",(()=>V)),n.export(r,"createDocFromSnapshot",(()=>Pe)),n.export(r,"createID",(()=>pe)),n.export(r,"createRelativePositionFromJSON",(()=>Se)),n.export(r,"createRelativePositionFromTypeIndex",(()=>Ie)),n.export(r,"createSnapshot",(()=>Ne)),n.export(r,"decodeRelativePosition",(()=>Ue)),n.export(r,"decodeSnapshot",(()=>Oe)),n.export(r,"decodeSnapshotV2",(()=>Be)),n.export(r,"decodeStateVector",(()=>re)),n.export(r,"decodeUpdate",(()=>gt)),n.export(r,"decodeUpdateV2",(()=>mt)),n.export(r,"diffUpdate",(()=>_t)),n.export(r,"diffUpdateV2",(()=>It)),n.export(r,"emptySnapshot",(()=>Me)),n.export(r,"encodeRelativePosition",(()=>_e)),n.export(r,"encodeSnapshot",(()=>Ve)),n.export(r,"encodeSnapshotV2",(()=>Ae)),n.export(r,"encodeStateAsUpdate",(()=>ee)),n.export(r,"encodeStateAsUpdateV2",(()=>Q)),n.export(r,"encodeStateVector",(()=>oe)),n.export(r,"encodeStateVectorFromUpdate",(()=>bt)),n.export(r,"encodeStateVectorFromUpdateV2",(()=>xt)),n.export(r,"equalDeleteSets",(()=>M)),n.export(r,"equalSnapshots",(()=>De)),n.export(r,"findIndexSS",(()=>He)),n.export(r,"findRootTypeKey",(()=>me)),n.export(r,"getItem",(()=>We)),n.export(r,"getItemCleanEnd",(()=>Ze)),n.export(r,"getItemCleanStart",(()=>Ye)),n.export(r,"getState",(()=>Ge)),n.export(r,"getTypeChildren",(()=>Gt)),n.export(r,"isDeleted",(()=>T)),n.export(r,"isParentOf",(()=>ye)),n.export(r,"iterateDeletedStructs",(()=>U)),n.export(r,"logType",(()=>we)),n.export(r,"logUpdate",(()=>pt)),n.export(r,"logUpdateV2",(()=>ft)),n.export(r,"mergeDeleteSets",(()=>C)),n.export(r,"mergeUpdates",(()=>wt)),n.export(r,"mergeUpdatesV2",(()=>vt)),n.export(r,"obfuscateUpdate",(()=>At)),n.export(r,"obfuscateUpdateV2",(()=>Vt)),n.export(r,"parseUpdateMeta",(()=>St)),n.export(r,"parseUpdateMetaV2",(()=>kt)),n.export(r,"readUpdate",(()=>Y)),n.export(r,"readUpdateV2",(()=>$)),n.export(r,"relativePositionToJSON",(()=>ke)),n.export(r,"snapshot",(()=>Re)),n.export(r,"snapshotContainsUpdate",(()=>ze)),n.export(r,"transact",(()=>ct)),n.export(r,"tryGc",(()=>ot)),n.export(r,"typeListToArraySnapshot",(()=>Yt)),n.export(r,"typeMapGetAllSnapshot",(()=>dr)),n.export(r,"typeMapGetSnapshot",(()=>hr));var s=e("lib0/observable"),o=e("lib0/array"),i=e("lib0/math"),c=e("lib0/map"),l=e("lib0/encoding"),a=e("lib0/decoding"),h=e("lib0/random"),d=e("lib0/promise"),u=e("lib0/buffer"),p=e("lib0/error"),f=e("lib0/binary"),g=e("lib0/function"),m=e("lib0/set"),y=e("lib0/logging"),w=e("lib0/time"),x=e("lib0/string"),b=e("lib0/iterator"),k=e("lib0/object"),S=e("lib0/environment"),E=arguments[3];class v extends s.ObservableV2{constructor(e,t){super(),this.doc=e,this.awareness=t}}class I{constructor(e,t){this.clock=e,this.len=t}}class _{constructor(){this.clients=new Map}}const U=(e,t,r)=>t.clients.forEach(((t,n)=>{const s=e.doc.store.clients.get(n);if(null!=s){const n=s[s.length-1],o=n.id.clock+n.length;for(let n=0,i=t[n];n<t.length&&i.clock<o;i=t[++n])Ke(e,s,i.clock,i.len,r)}})),T=(e,t)=>{const r=e.clients.get(t.client);return void 0!==r&&null!==((e,t)=>{let r=0,n=e.length-1;for(;r<=n;){const s=i.floor((r+n)/2),o=e[s],c=o.clock;if(c<=t){if(t<c+o.len)return s;r=s+1}else n=s-1}return null})(r,t.clock)},j=e=>{e.clients.forEach((e=>{let t,r;for(e.sort(((e,t)=>e.clock-t.clock)),t=1,r=1;t<e.length;t++){const n=e[r-1],s=e[t];n.clock+n.len>=s.clock?n.len=i.max(n.len,s.clock+s.len-n.clock):(r<t&&(e[r]=s),r++)}e.length=r}))},C=e=>{const t=new _;for(let r=0;r<e.length;r++)e[r].clients.forEach(((n,s)=>{if(!t.clients.has(s)){const i=n.slice();for(let t=r+1;t<e.length;t++)o.appendTo(i,e[t].clients.get(s)||[]);t.clients.set(s,i)}}));return j(t),t},D=(e,t,r,n)=>{c.setIfUndefined(e.clients,t,(()=>[])).push(new I(r,n))},A=()=>new _,V=e=>{const t=A();return e.clients.forEach(((e,r)=>{const n=[];for(let t=0;t<e.length;t++){const r=e[t];if(r.deleted){const s=r.id.clock;let o=r.length;if(t+1<e.length)for(let r=e[t+1];t+1<e.length&&r.deleted;r=e[1+ ++t])o+=r.length;n.push(new I(s,o))}}n.length>0&&t.clients.set(r,n)})),t},B=(e,t)=>{l.writeVarUint(e.restEncoder,t.clients.size),o.from(t.clients.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,r])=>{e.resetDsCurVal(),l.writeVarUint(e.restEncoder,t);const n=r.length;l.writeVarUint(e.restEncoder,n);for(let t=0;t<n;t++){const n=r[t];e.writeDsClock(n.clock),e.writeDsLen(n.len)}}))},O=e=>{const t=new _,r=a.readVarUint(e.restDecoder);for(let n=0;n<r;n++){e.resetDsCurVal();const r=a.readVarUint(e.restDecoder),n=a.readVarUint(e.restDecoder);if(n>0){const s=c.setIfUndefined(t.clients,r,(()=>[]));for(let t=0;t<n;t++)s.push(new I(e.readDsClock(),e.readDsLen()))}}return t},N=(e,t,r)=>{const n=new _,s=a.readVarUint(e.restDecoder);for(let o=0;o<s;o++){e.resetDsCurVal();const s=a.readVarUint(e.restDecoder),o=a.readVarUint(e.restDecoder),i=r.clients.get(s)||[],c=Ge(r,s);for(let r=0;r<o;r++){const r=e.readDsClock(),o=r+e.readDsLen();if(r<c){c<o&&D(n,s,c,o-c);let e=He(i,r),l=i[e];for(!l.deleted&&l.id.clock<r&&(i.splice(e+1,0,an(t,l,r-l.id.clock)),e++);e<i.length&&(l=i[e++],l.id.clock<o);)l.deleted||(o<l.id.clock+l.length&&i.splice(e,0,an(t,l,o-l.id.clock)),l.delete(t))}else D(n,s,r,o-r)}}if(n.clients.size>0){const e=new H;return l.writeVarUint(e.restEncoder,0),B(e,n),e.toUint8Array()}return null},M=(e,t)=>{if(e.clients.size!==t.clients.size)return!1;for(const[r,n]of e.clients.entries()){const e=t.clients.get(r);if(void 0===e||n.length!==e.length)return!1;for(let t=0;t<n.length;t++){const r=n[t],s=e[t];if(r.clock!==s.clock||r.len!==s.len)return!1}}return!0},R=h.uint32;class L extends s.ObservableV2{constructor({guid:e=h.uuidv4(),collectionid:t=null,gc:r=!0,gcFilter:n=(()=>!0),meta:s=null,autoLoad:o=!1,shouldLoad:i=!0}={}){super(),this.gc=r,this.gcFilter=n,this.clientID=R(),this.guid=e,this.collectionid=t,this.share=new Map,this.store=new qe,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=i,this.autoLoad=o,this.meta=s,this.isLoaded=!1,this.isSynced=!1,this.isDestroyed=!1,this.whenLoaded=d.create((e=>{this.on("load",(()=>{this.isLoaded=!0,e(this)}))}));const c=()=>d.create((e=>{const t=r=>{void 0!==r&&!0!==r||(this.off("sync",t),e())};this.on("sync",t)}));this.on("sync",(e=>{!1===e&&this.isSynced&&(this.whenSynced=c()),this.isSynced=void 0===e||!0===e,this.isSynced&&!this.isLoaded&&this.emit("load",[this])})),this.whenSynced=c()}load(){const e=this._item;null===e||this.shouldLoad||ct(e.parent.doc,(e=>{e.subdocsLoaded.add(this)}),null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(o.from(this.subdocs).map((e=>e.guid)))}transact(e,t=null){return ct(this,e,t)}get(e,t=Ht){const r=c.setIfUndefined(this.share,e,(()=>{const e=new t;return e._integrate(this,null),e})),n=r.constructor;if(t!==Ht&&n!==t){if(n===Ht){const n=new t;n._map=r._map,r._map.forEach((e=>{for(;null!==e;e=e.left)e.parent=n})),n._start=r._start;for(let e=n._start;null!==e;e=e.right)e.parent=n;return n._length=r._length,this.share.set(e,n),n._integrate(this,null),n}throw new Error(`Type with the name ${e} has already been defined with a different constructor`)}return r}getArray(e=""){return this.get(e,fr)}getText(e=""){return this.get(e,Ar)}getMap(e=""){return this.get(e,mr)}getXmlElement(e=""){return this.get(e,Or)}getXmlFragment(e=""){return this.get(e,Br)}toJSON(){const e={};return this.share.forEach(((t,r)=>{e[r]=t.toJSON()})),e}destroy(){this.isDestroyed=!0,o.from(this.subdocs).forEach((e=>e.destroy()));const e=this._item;if(null!==e){this._item=null;const t=e.content;t.doc=new L({guid:this.guid,...t.opts,shouldLoad:!1}),t.doc._item=e,ct(e.parent.doc,(r=>{const n=t.doc;e.deleted||r.subdocsAdded.add(n),r.subdocsRemoved.add(this)}),null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class F{constructor(e){this.restDecoder=e}resetDsCurVal(){}readDsClock(){return a.readVarUint(this.restDecoder)}readDsLen(){return a.readVarUint(this.restDecoder)}}class P extends F{readLeftID(){return pe(a.readVarUint(this.restDecoder),a.readVarUint(this.restDecoder))}readRightID(){return pe(a.readVarUint(this.restDecoder),a.readVarUint(this.restDecoder))}readClient(){return a.readVarUint(this.restDecoder)}readInfo(){return a.readUint8(this.restDecoder)}readString(){return a.readVarString(this.restDecoder)}readParentInfo(){return 1===a.readVarUint(this.restDecoder)}readTypeRef(){return a.readVarUint(this.restDecoder)}readLen(){return a.readVarUint(this.restDecoder)}readAny(){return a.readAny(this.restDecoder)}readBuf(){return u.copyUint8Array(a.readVarUint8Array(this.restDecoder))}readJSON(){return JSON.parse(a.readVarString(this.restDecoder))}readKey(){return a.readVarString(this.restDecoder)}}class z{constructor(e){this.dsCurrVal=0,this.restDecoder=e}resetDsCurVal(){this.dsCurrVal=0}readDsClock(){return this.dsCurrVal+=a.readVarUint(this.restDecoder),this.dsCurrVal}readDsLen(){const e=a.readVarUint(this.restDecoder)+1;return this.dsCurrVal+=e,e}}class q extends z{constructor(e){super(e),this.keys=[],a.readVarUint(e),this.keyClockDecoder=new a.IntDiffOptRleDecoder(a.readVarUint8Array(e)),this.clientDecoder=new a.UintOptRleDecoder(a.readVarUint8Array(e)),this.leftClockDecoder=new a.IntDiffOptRleDecoder(a.readVarUint8Array(e)),this.rightClockDecoder=new a.IntDiffOptRleDecoder(a.readVarUint8Array(e)),this.infoDecoder=new a.RleDecoder(a.readVarUint8Array(e),a.readUint8),this.stringDecoder=new a.StringDecoder(a.readVarUint8Array(e)),this.parentInfoDecoder=new a.RleDecoder(a.readVarUint8Array(e),a.readUint8),this.typeRefDecoder=new a.UintOptRleDecoder(a.readVarUint8Array(e)),this.lenDecoder=new a.UintOptRleDecoder(a.readVarUint8Array(e))}readLeftID(){return new de(this.clientDecoder.read(),this.leftClockDecoder.read())}readRightID(){return new de(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 a.readAny(this.restDecoder)}readBuf(){return a.readVarUint8Array(this.restDecoder)}readJSON(){return a.readAny(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 X{constructor(){this.restEncoder=l.createEncoder()}toUint8Array(){return l.toUint8Array(this.restEncoder)}resetDsCurVal(){}writeDsClock(e){l.writeVarUint(this.restEncoder,e)}writeDsLen(e){l.writeVarUint(this.restEncoder,e)}}class G extends X{writeLeftID(e){l.writeVarUint(this.restEncoder,e.client),l.writeVarUint(this.restEncoder,e.clock)}writeRightID(e){l.writeVarUint(this.restEncoder,e.client),l.writeVarUint(this.restEncoder,e.clock)}writeClient(e){l.writeVarUint(this.restEncoder,e)}writeInfo(e){l.writeUint8(this.restEncoder,e)}writeString(e){l.writeVarString(this.restEncoder,e)}writeParentInfo(e){l.writeVarUint(this.restEncoder,e?1:0)}writeTypeRef(e){l.writeVarUint(this.restEncoder,e)}writeLen(e){l.writeVarUint(this.restEncoder,e)}writeAny(e){l.writeAny(this.restEncoder,e)}writeBuf(e){l.writeVarUint8Array(this.restEncoder,e)}writeJSON(e){l.writeVarString(this.restEncoder,JSON.stringify(e))}writeKey(e){l.writeVarString(this.restEncoder,e)}}class J{constructor(){this.restEncoder=l.createEncoder(),this.dsCurrVal=0}toUint8Array(){return l.toUint8Array(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(e){const t=e-this.dsCurrVal;this.dsCurrVal=e,l.writeVarUint(this.restEncoder,t)}writeDsLen(e){0===e&&p.unexpectedCase(),l.writeVarUint(this.restEncoder,e-1),this.dsCurrVal+=e}}class H extends J{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new l.IntDiffOptRleEncoder,this.clientEncoder=new l.UintOptRleEncoder,this.leftClockEncoder=new l.IntDiffOptRleEncoder,this.rightClockEncoder=new l.IntDiffOptRleEncoder,this.infoEncoder=new l.RleEncoder(l.writeUint8),this.stringEncoder=new l.StringEncoder,this.parentInfoEncoder=new l.RleEncoder(l.writeUint8),this.typeRefEncoder=new l.UintOptRleEncoder,this.lenEncoder=new l.UintOptRleEncoder}toUint8Array(){const e=l.createEncoder();return l.writeVarUint(e,0),l.writeVarUint8Array(e,this.keyClockEncoder.toUint8Array()),l.writeVarUint8Array(e,this.clientEncoder.toUint8Array()),l.writeVarUint8Array(e,this.leftClockEncoder.toUint8Array()),l.writeVarUint8Array(e,this.rightClockEncoder.toUint8Array()),l.writeVarUint8Array(e,l.toUint8Array(this.infoEncoder)),l.writeVarUint8Array(e,this.stringEncoder.toUint8Array()),l.writeVarUint8Array(e,l.toUint8Array(this.parentInfoEncoder)),l.writeVarUint8Array(e,this.typeRefEncoder.toUint8Array()),l.writeVarUint8Array(e,this.lenEncoder.toUint8Array()),l.writeUint8Array(e,l.toUint8Array(this.restEncoder)),l.toUint8Array(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){l.writeAny(this.restEncoder,e)}writeBuf(e){l.writeVarUint8Array(this.restEncoder,e)}writeJSON(e){l.writeAny(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 W=(e,t,r)=>{const n=new Map;r.forEach(((e,r)=>{Ge(t,r)>e&&n.set(r,e)})),Xe(t).forEach(((e,t)=>{r.has(t)||n.set(t,0)})),l.writeVarUint(e.restEncoder,n.size),o.from(n.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([r,n])=>{((e,t,r,n)=>{n=i.max(n,t[0].id.clock);const s=He(t,n);l.writeVarUint(e.restEncoder,t.length-s),e.writeClient(r),l.writeVarUint(e.restEncoder,n);const o=t[s];o.write(e,n-o.id.clock);for(let r=s+1;r<t.length;r++)t[r].write(e,0)})(e,t.clients.get(r),r,n)}))},$=(e,t,r,n=new q(e))=>ct(t,(e=>{e.local=!1;let t=!1;const r=e.doc,s=r.store,i=((e,t)=>{const r=c.create(),n=a.readVarUint(e.restDecoder);for(let s=0;s<n;s++){const n=a.readVarUint(e.restDecoder),s=new Array(n),o=e.readClient();let i=a.readVarUint(e.restDecoder);r.set(o,{i:0,refs:s});for(let r=0;r<n;r++){const n=e.readInfo();switch(f.BITS5&n){case 0:{const t=e.readLen();s[r]=new Fr(pe(o,i),t),i+=t;break}case 10:{const t=a.readVarUint(e.restDecoder);s[r]=new gn(pe(o,i),t),i+=t;break}default:{const c=!(n&(f.BIT7|f.BIT8)),l=new un(pe(o,i),null,(n&f.BIT8)===f.BIT8?e.readLeftID():null,null,(n&f.BIT7)===f.BIT7?e.readRightID():null,c?e.readParentInfo()?t.get(e.readString()):e.readLeftID():null,c&&(n&f.BIT6)===f.BIT6?e.readString():null,pn(e,n));s[r]=l,i+=l.length}}}}return r})(n,r),h=((e,t,r)=>{const n=[];let s=o.from(r.keys()).sort(((e,t)=>e-t));if(0===s.length)return null;const i=()=>{if(0===s.length)return null;let e=r.get(s[s.length-1]);for(;e.refs.length===e.i;){if(s.pop(),!(s.length>0))return null;e=r.get(s[s.length-1])}return e};let a=i();if(null===a)return null;const h=new qe,d=new Map,u=(e,t)=>{const r=d.get(e);(null==r||r>t)&&d.set(e,t)};let p=a.refs[a.i++];const f=new Map,g=()=>{for(const e of n){const t=e.id.client,n=r.get(t);n?(n.i--,h.clients.set(t,n.refs.slice(n.i)),r.delete(t),n.i=0,n.refs=[]):h.clients.set(t,[e]),s=s.filter((e=>e!==t))}n.length=0};for(;;){if(p.constructor!==gn){const s=c.setIfUndefined(f,p.id.client,(()=>Ge(t,p.id.client)))-p.id.clock;if(s<0)n.push(p),u(p.id.client,p.id.clock-1),g();else{const o=p.getMissing(e,t);if(null!==o){n.push(p);const e=r.get(o)||{refs:[],i:0};if(e.refs.length!==e.i){p=e.refs[e.i++];continue}u(o,Ge(t,o)),g()}else(0===s||s<p.length)&&(p.integrate(e,s),f.set(p.id.client,p.id.clock+p.length))}}if(n.length>0)p=n.pop();else if(null!==a&&a.i<a.refs.length)p=a.refs[a.i++];else{if(a=i(),null===a)break;p=a.refs[a.i++]}}if(h.clients.size>0){const e=new H;return W(e,h,new Map),l.writeVarUint(e.restEncoder,0),{missing:d,update:e.toUint8Array()}}return null})(e,s,i),d=s.pendingStructs;if(d){for(const[e,r]of d.missing)if(r<Ge(s,e)){t=!0;break}if(h){for(const[e,t]of h.missing){const r=d.missing.get(e);(null==r||r>t)&&d.missing.set(e,t)}d.update=vt([d.update,h.update])}}else s.pendingStructs=h;const u=N(n,e,s);if(s.pendingDs){const t=new q(a.createDecoder(s.pendingDs));a.readVarUint(t.restDecoder);const r=N(t,e,s);s.pendingDs=u&&r?vt([u,r]):u||r}else s.pendingDs=u;if(t){const t=s.pendingStructs.update;s.pendingStructs=null,Z(e.doc,t)}}),r,!1),Y=(e,t,r)=>$(e,t,r,new P(e)),Z=(e,t,r,n=q)=>{const s=a.createDecoder(t);$(s,e,r,new n(s))},K=(e,t,r)=>Z(e,t,r,P),Q=(e,t=new Uint8Array([0]),r=new H)=>{((e,t,r=new Map)=>{W(e,t.store,r),B(e,V(t.store))})(r,e,re(t));const n=[r.toUint8Array()];if(e.store.pendingDs&&n.push(e.store.pendingDs),e.store.pendingStructs&&n.push(It(e.store.pendingStructs.update,t)),n.length>1){if(r.constructor===G)return wt(n.map(((e,t)=>0===t?e:Ot(e))));if(r.constructor===H)return vt(n)}return n[0]},ee=(e,t)=>Q(e,t,new G),te=e=>{const t=new Map,r=a.readVarUint(e.restDecoder);for(let n=0;n<r;n++){const r=a.readVarUint(e.restDecoder),n=a.readVarUint(e.restDecoder);t.set(r,n)}return t},re=e=>te(new F(a.createDecoder(e))),ne=(e,t)=>(l.writeVarUint(e.restEncoder,t.size),o.from(t.entries()).sort(((e,t)=>t[0]-e[0])).forEach((([t,r])=>{l.writeVarUint(e.restEncoder,t),l.writeVarUint(e.restEncoder,r)})),e),se=(e,t=new J)=>(e instanceof Map?ne(t,e):((e,t)=>{ne(e,Xe(t.store))})(t,e),t.toUint8Array()),oe=e=>se(e,new X);class ie{constructor(){this.l=[]}}const ce=()=>new ie,le=(e,t)=>e.l.push(t),ae=(e,t)=>{const r=e.l,n=r.length;e.l=r.filter((e=>t!==e)),n===e.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},he=(e,t,r)=>g.callAll(e.l,[t,r]);class de{constructor(e,t){this.client=e,this.clock=t}}const ue=(e,t)=>e===t||null!==e&&null!==t&&e.client===t.client&&e.clock===t.clock,pe=(e,t)=>new de(e,t),fe=(e,t)=>{l.writeVarUint(e,t.client),l.writeVarUint(e,t.clock)},ge=e=>pe(a.readVarUint(e),a.readVarUint(e)),me=e=>{for(const[t,r]of e.doc.share.entries())if(r===e)return t;throw p.unexpectedCase()},ye=(e,t)=>{for(;null!==t;){if(t.parent===e)return!0;t=t.parent._item}return!1},we=e=>{const t=[];let r=e._start;for(;r;)t.push(r),r=r.right;console.log("Children: ",t),console.log("Children content: ",t.filter((e=>!e.deleted)).map((e=>e.content)))};class xe{constructor(e,t=e.getMap("users")){const r=new Map;this.yusers=t,this.doc=e,this.clients=new Map,this.dss=r;const n=(e,t)=>{const r=e.get("ds"),n=e.get("ids"),s=e=>this.clients.set(e,t);r.observe((e=>{e.changes.added.forEach((e=>{e.content.getContent().forEach((e=>{e instanceof Uint8Array&&this.dss.set(t,C([this.dss.get(t)||A(),O(new F(a.createDecoder(e)))]))}))}))})),this.dss.set(t,C(r.map((e=>O(new F(a.createDecoder(e))))))),n.observe((e=>e.changes.added.forEach((e=>e.content.getContent().forEach(s))))),n.forEach(s)};t.observe((e=>{e.keysChanged.forEach((e=>n(t.get(e),e)))})),t.forEach(n)}setUserMapping(e,t,r,{filter:n=(()=>!0)}={}){const s=this.yusers;let o=s.get(r);o||(o=new mr,o.set("ids",new fr),o.set("ds",new fr),s.set(r,o)),o.get("ids").push([t]),s.observe((e=>{setTimeout((()=>{const e=s.get(r);if(e!==o){o=e,this.clients.forEach(((e,t)=>{r===e&&o.get("ids").push([t])}));const t=new X,n=this.dss.get(r);n&&(B(t,n),o.get("ds").push([t.toUint8Array()]))}}),0)})),e.on("afterTransaction",(e=>{setTimeout((()=>{const t=o.get("ds"),r=e.deleteSet;if(e.local&&r.clients.size>0&&n(e,r)){const e=new X;B(e,r),t.push([e.toUint8Array()])}}))}))}getUserByClientId(e){return this.clients.get(e)||null}getUserByDeletedId(e){for(const[t,r]of this.dss.entries())if(T(r,e))return t;return null}}class be{constructor(e,t,r,n=0){this.type=e,this.tname=t,this.item=r,this.assoc=n}}const ke=e=>{const t={};return e.type&&(t.type=e.type),e.tname&&(t.tname=e.tname),e.item&&(t.item=e.item),null!=e.assoc&&(t.assoc=e.assoc),t},Se=e=>new be(null==e.type?null:pe(e.type.client,e.type.clock),e.tname??null,null==e.item?null:pe(e.item.client,e.item.clock),null==e.assoc?0:e.assoc);class Ee{constructor(e,t,r=0){this.type=e,this.index=t,this.assoc=r}}const ve=(e,t,r)=>{let n=null,s=null;return null===e._item?s=me(e):n=pe(e._item.id.client,e._item.id.clock),new be(n,s,t,r)},Ie=(e,t,r=0)=>{let n=e._start;if(r<0){if(0===t)return ve(e,null,r);t--}for(;null!==n;){if(!n.deleted&&n.countable){if(n.length>t)return ve(e,pe(n.id.client,n.id.clock+t),r);t-=n.length}if(null===n.right&&r<0)return ve(e,n.lastId,r);n=n.right}return ve(e,null,r)},_e=e=>{const t=l.createEncoder();return((e,t)=>{const{type:r,tname:n,item:s,assoc:o}=t;if(null!==s)l.writeVarUint(e,0),fe(e,s);else if(null!==n)l.writeUint8(e,1),l.writeVarString(e,n);else{if(null===r)throw p.unexpectedCase();l.writeUint8(e,2),fe(e,r)}l.writeVarInt(e,o)})(t,e),l.toUint8Array(t)},Ue=e=>(e=>{let t=null,r=null,n=null;switch(a.readVarUint(e)){case 0:n=ge(e);break;case 1:r=a.readVarString(e);break;case 2:t=ge(e)}const s=a.hasContent(e)?a.readVarInt(e):0;return new be(t,r,n,s)})(a.createDecoder(e)),Te=(e,t,r=!0)=>{const n=t.store,s=e.item,o=e.type,i=e.tname,c=e.assoc;let l=null,a=0;if(null!==s){if(Ge(n,s.client)<=s.clock)return null;const e=r?cn(n,s):((e,t)=>{const r=We(e,t);return{item:r,diff:t.clock-r.id.clock}})(n,s),t=e.item;if(!(t instanceof un))return null;if(l=t.parent,null===l._item||!l._item.deleted){a=t.deleted||!t.countable?0:e.diff+(c>=0?0:1);let r=t.left;for(;null!==r;)!r.deleted&&r.countable&&(a+=r.length),r=r.left}}else{if(null!==i)l=t.get(i);else{if(null===o)throw p.unexpectedCase();{if(Ge(n,o.client)<=o.clock)return null;const{item:e}=r?cn(n,o):{item:We(n,o)};if(!(e instanceof un&&e.content instanceof on))return null;l=e.content.type}}a=c>=0?l._length:0}return((e,t,r=0)=>new Ee(e,t,r))(l,a,e.assoc)},je=(e,t)=>e===t||null!==e&&null!==t&&e.tname===t.tname&&ue(e.item,t.item)&&ue(e.type,t.type)&&e.assoc===t.assoc;class Ce{constructor(e,t){this.ds=e,this.sv=t}}const De=(e,t)=>{const r=e.ds.clients,n=t.ds.clients,s=e.sv,o=t.sv;if(s.size!==o.size||r.size!==n.size)return!1;for(const[e,t]of s.entries())if(o.get(e)!==t)return!1;for(const[e,t]of r.entries()){const r=n.get(e)||[];if(t.length!==r.length)return!1;for(let e=0;e<t.length;e++){const n=t[e],s=r[e];if(n.clock!==s.clock||n.len!==s.len)return!1}}return!0},Ae=(e,t=new J)=>(B(t,e.ds),ne(t,e.sv),t.toUint8Array()),Ve=e=>Ae(e,new X),Be=(e,t=new z(a.createDecoder(e)))=>new Ce(O(t),te(t)),Oe=e=>Be(e,new F(a.createDecoder(e))),Ne=(e,t)=>new Ce(e,t),Me=Ne(A(),new Map),Re=e=>Ne(V(e.store),Xe(e.store)),Le=(e,t)=>void 0===t?!e.deleted:t.sv.has(e.id.client)&&(t.sv.get(e.id.client)||0)>e.id.clock&&!T(t.ds,e.id),Fe=(e,t)=>{const r=c.setIfUndefined(e.meta,Fe,m.create),n=e.doc.store;r.has(t)||(t.sv.forEach(((t,r)=>{t<Ge(n,r)&&Ye(e,pe(r,t))})),U(e,t.ds,(e=>{})),r.add(t))},Pe=(e,t,r=new L)=>{if(e.gc)throw new Error("Garbage-collection must be disabled in `originDoc`!");const{sv:n,ds:s}=t,o=new H;return e.transact((t=>{let r=0;n.forEach((e=>{e>0&&r++})),l.writeVarUint(o.restEncoder,r);for(const[r,s]of n){if(0===s)continue;s<Ge(e.store,r)&&Ye(t,pe(r,s));const n=e.store.clients.get(r)||[],i=He(n,s-1);l.writeVarUint(o.restEncoder,i+1),o.writeClient(r),l.writeVarUint(o.restEncoder,0);for(let e=0;e<=i;e++)n[e].write(o,0)}B(o,s)})),Z(r,o.toUint8Array(),"snapshot"),r},ze=(e,t)=>((e,t,r=q)=>{const n=new r(a.createDecoder(t)),s=new ut(n,!1);for(let t=s.curr;null!==t;t=s.next())if((e.sv.get(t.id.client)||0)<t.id.clock+t.length)return!1;const o=C([e.ds,O(n)]);return M(e.ds,o)})(e,t,P);class qe{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const Xe=e=>{const t=new Map;return e.clients.forEach(((e,r)=>{const n=e[e.length-1];t.set(r,n.id.clock+n.length)})),t},Ge=(e,t)=>{const r=e.clients.get(t);if(void 0===r)return 0;const n=r[r.length-1];return n.id.clock+n.length},Je=(e,t)=>{let r=e.clients.get(t.id.client);if(void 0===r)r=[],e.clients.set(t.id.client,r);else{const e=r[r.length-1];if(e.id.clock+e.length!==t.id.clock)throw p.unexpectedCase()}r.push(t)},He=(e,t)=>{let r=0,n=e.length-1,s=e[n],o=s.id.clock;if(o===t)return n;let c=i.floor(t/(o+s.length-1)*n);for(;r<=n;){if(s=e[c],o=s.id.clock,o<=t){if(t<o+s.length)return c;r=c+1}else n=c-1;c=i.floor((r+n)/2)}throw p.unexpectedCase()},We=(e,t)=>{const r=e.clients.get(t.client);return r[He(r,t.clock)]},$e=(e,t,r)=>{const n=He(t,r),s=t[n];return s.id.clock<r&&s instanceof un?(t.splice(n+1,0,an(e,s,r-s.id.clock)),n+1):n},Ye=(e,t)=>{const r=e.doc.store.clients.get(t.client);return r[$e(e,r,t.clock)]},Ze=(e,t,r)=>{const n=t.clients.get(r.client),s=He(n,r.clock),o=n[s];return r.clock!==o.id.clock+o.length-1&&o.constructor!==Fr&&n.splice(s+1,0,an(e,o,r.clock-o.id.clock+1)),o},Ke=(e,t,r,n,s)=>{if(0===n)return;const o=r+n;let i,c=$e(e,t,r);do{i=t[c++],o<i.id.clock+i.length&&$e(e,t,o),s(i)}while(c<t.length&&t[c].id.clock<o)};class Qe{constructor(e,t,r){this.doc=e,this.deleteSet=new _,this.beforeState=Xe(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=r,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const et=(e,t)=>!(0===t.deleteSet.clients.size&&!c.any(t.afterState,((e,r)=>t.beforeState.get(r)!==e)))&&(j(t.deleteSet),((e,t)=>{W(e,t.doc.store,t.beforeState)})(e,t),B(e,t.deleteSet),!0),tt=(e,t,r)=>{const n=t._item;(null===n||n.id.clock<(e.beforeState.get(n.id.client)||0)&&!n.deleted)&&c.setIfUndefined(e.changed,t,m.create).add(r)},rt=(e,t)=>{let r=e[t],n=e[t-1],s=t;for(;s>0&&(n.deleted===r.deleted&&n.constructor===r.constructor&&n.mergeWith(r));r=n,n=e[--s-1])r instanceof un&&null!==r.parentSub&&r.parent._map.get(r.parentSub)===r&&r.parent._map.set(r.parentSub,n);const o=t-s;return o&&e.splice(t+1-o,o),o},nt=(e,t,r)=>{for(const[n,s]of e.clients.entries()){const e=t.clients.get(n);for(let n=s.length-1;n>=0;n--){const o=s[n],i=o.clock+o.len;for(let n=He(e,o.clock),s=e[n];n<e.length&&s.id.clock<i;s=e[++n]){const s=e[n];if(o.clock+o.len<=s.id.clock)break;s instanceof un&&s.deleted&&!s.keep&&r(s)&&s.gc(t,!1)}}}},st=(e,t)=>{e.clients.forEach(((e,r)=>{const n=t.clients.get(r);for(let t=e.length-1;t>=0;t--){const r=e[t];for(let e=i.min(n.length-1,1+He(n,r.clock+r.len-1)),t=n[e];e>0&&t.id.clock>=r.clock;t=n[e])e-=1+rt(n,e)}}))},ot=(e,t,r)=>{nt(e,t,r),st(e,t)},it=(e,t)=>{if(t<e.length){const r=e[t],n=r.doc,s=n.store,o=r.deleteSet,c=r._mergeStructs;try{j(o),r.afterState=Xe(r.doc.store),n.emit("beforeObserverCalls",[r,n]);const e=[];r.changed.forEach(((t,n)=>e.push((()=>{null!==n._item&&n._item.deleted||n._callObserver(r,t)})))),e.push((()=>{r.changedParentTypes.forEach(((t,n)=>{n._dEH.l.length>0&&(null===n._item||!n._item.deleted)&&((t=t.filter((e=>null===e.target._item||!e.target._item.deleted))).forEach((e=>{e.currentTarget=n,e._path=null})),t.sort(((e,t)=>e.path.length-t.path.length)),e.push((()=>{he(n._dEH,t,r)})))})),e.push((()=>n.emit("afterTransaction",[r,n]))),e.push((()=>{r._needFormattingCleanup&&jr(r)}))})),(0,g.callAll)(e,[])}finally{n.gc&&nt(o,s,n.gcFilter),st(o,s),r.afterState.forEach(((e,t)=>{const n=r.beforeState.get(t)||0;if(n!==e){const e=s.clients.get(t),r=i.max(He(e,n),1);for(let t=e.length-1;t>=r;)t-=1+rt(e,t)}}));for(let e=c.length-1;e>=0;e--){const{client:t,clock:r}=c[e].id,n=s.clients.get(t),o=He(n,r);o+1<n.length&&rt(n,o+1)>1||o>0&&rt(n,o)}if(r.local||r.afterState.get(n.clientID)===r.beforeState.get(n.clientID)||(y.print(y.ORANGE,y.BOLD,"[yjs] ",y.UNBOLD,y.RED,"Changed the client-id because another client seems to be using it."),n.clientID=R()),n.emit("afterTransactionCleanup",[r,n]),n._observers.has("update")){const e=new G;et(e,r)&&n.emit("update",[e.toUint8Array(),r.origin,n,r])}if(n._observers.has("updateV2")){const e=new H;et(e,r)&&n.emit("updateV2",[e.toUint8Array(),r.origin,n,r])}const{subdocsAdded:l,subdocsLoaded:a,subdocsRemoved:h}=r;(l.size>0||h.size>0||a.size>0)&&(l.forEach((e=>{e.clientID=n.clientID,null==e.collectionid&&(e.collectionid=n.collectionid),n.subdocs.add(e)})),h.forEach((e=>n.subdocs.delete(e))),n.emit("subdocs",[{loaded:a,added:l,removed:h},n,r]),h.forEach((e=>e.destroy()))),e.length<=t+1?(n._transactionCleanups=[],n.emit("afterAllTransactions",[n,e])):it(e,t+1)}}},ct=(e,t,r=null,n=!0)=>{const s=e._transactionCleanups;let o=!1,i=null;null===e._transaction&&(o=!0,e._transaction=new Qe(e,r,n),s.push(e._transaction),1===s.length&&e.emit("beforeAllTransactions",[e]),e.emit("beforeTransaction",[e._transaction,e]));try{i=t(e._transaction)}finally{if(o){const t=e._transaction===s[0];e._transaction=null,t&&it(s,0)}}return i};class lt{constructor(e,t){this.insertions=t,this.deletions=e,this.meta=new Map}}const at=(e,t,r)=>{U(e,r.deletions,(r=>{r instanceof un&&t.scope.some((t=>t===e.doc||ye(t,r)))&&ln(r,!1)}))},ht=(e,t,r)=>{let n=null;const s=e.doc,o=e.scope;ct(s,(r=>{for(;t.length>0&&null===e.currStackItem;){const n=s.store,i=t.pop(),c=new Set,l=[];let a=!1;U(r,i.insertions,(e=>{if(e instanceof un){if(null!==e.redone){let{item:t,diff:s}=cn(n,e.id);s>0&&(t=Ye(r,pe(t.id.client,t.id.clock+s))),e=t}!e.deleted&&o.some((t=>t===r.doc||ye(t,e)))&&l.push(e)}})),U(r,i.deletions,(e=>{e instanceof un&&o.some((t=>t===r.doc||ye(t,e)))&&!T(i.insertions,e.id)&&c.add(e)})),c.forEach((t=>{a=null!==dn(r,t,c,i.insertions,e.ignoreRemoteMapChanges,e)||a}));for(let t=l.length-1;t>=0;t--){const n=l[t];e.deleteFilter(n)&&(n.delete(r),a=!0)}e.currStackItem=a?i:null}r.changed.forEach(((e,t)=>{e.has(null)&&t._searchMarker&&(t._searchMarker.length=0)})),n=r}),e);const i=e.currStackItem;if(null!=i){const t=n.changedParentTypes;e.emit("stack-item-popped",[{stackItem:i,type:r,changedParentTypes:t,origin:e},e]),e.currStackItem=null}return i};class dt extends s.ObservableV2{constructor(e,{captureTimeout:t=500,captureTransaction:r=(e=>!0),deleteFilter:n=(()=>!0),trackedOrigins:s=new Set([null]),ignoreRemoteMapChanges:i=!1,doc:c=(o.isArray(e)?e[0].doc:e instanceof L?e:e.doc)}={}){super(),this.scope=[],this.doc=c,this.addToScope(e),this.deleteFilter=n,s.add(this),this.trackedOrigins=s,this.captureTransaction=r,this.undoStack=[],this.redoStack=[],this.undoing=!1,this.redoing=!1,this.currStackItem=null,this.lastChange=0,this.ignoreRemoteMapChanges=i,this.captureTimeout=t,this.afterTransactionHandler=e=>{if(!(this.captureTransaction(e)&&this.scope.some((t=>e.changedParentTypes.has(t)||t===this.doc))&&(this.trackedOrigins.has(e.origin)||e.origin&&this.trackedOrigins.has(e.origin.constructor))))return;const t=this.undoing,r=this.redoing,n=t?this.redoStack:this.undoStack;t?this.stopCapturing():r||this.clear(!1,!0);const s=new _;e.afterState.forEach(((t,r)=>{const n=e.beforeState.get(r)||0,o=t-n;o>0&&D(s,r,n,o)}));const o=w.getUnixTime();let i=!1;if(this.lastChange>0&&o-this.lastChange<this.captureTimeout&&n.length>0&&!t&&!r){const t=n[n.length-1];t.deletions=C([t.deletions,e.deleteSet]),t.insertions=C([t.insertions,s])}else n.push(new lt(e.deleteSet,s)),i=!0;t||r||(this.lastChange=o),U(e,e.deleteSet,(t=>{t instanceof un&&this.scope.some((r=>r===e.doc||ye(r,t)))&&ln(t,!0)}));const c=[{stackItem:n[n.length-1],origin:e.origin,type:t?"redo":"undo",changedParentTypes:e.changedParentTypes},this];i?this.emit("stack-item-added",c):this.emit("stack-item-updated",c)},this.doc.on("afterTransaction",this.afterTransactionHandler),this.doc.on("destroy",(()=>{this.destroy()}))}addToScope(e){const t=new Set(this.scope);(e=o.isArray(e)?e:[e]).forEach((e=>{t.has(e)||(t.add(e),(e instanceof Ht?e.doc!==this.doc:e!==this.doc)&&y.warn("[yjs#509] Not same Y.Doc"),this.scope.push(e))}))}addTrackedOrigin(e){this.trackedOrigins.add(e)}removeTrackedOrigin(e){this.trackedOrigins.delete(e)}clear(e=!0,t=!0){(e&&this.canUndo()||t&&this.canRedo())&&this.doc.transact((r=>{e&&(this.undoStack.forEach((e=>at(r,this,e))),this.undoStack=[]),t&&(this.redoStack.forEach((e=>at(r,this,e))),this.redoStack=[]),this.emit("stack-cleared",[{undoStackCleared:e,redoStackCleared:t}])}))}stopCapturing(){this.lastChange=0}undo(){let e;this.undoing=!0;try{e=ht(this,this.undoStack,"undo")}finally{this.undoing=!1}return e}redo(){let e;this.redoing=!0;try{e=ht(this,this.redoStack,"redo")}finally{this.redoing=!1}return e}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}destroy(){this.trackedOrigins.delete(this),this.doc.off("afterTransaction",this.afterTransactionHandler),super.destroy()}}class ut{constructor(e,t){this.gen=function*(e){const t=a.readVarUint(e.restDecoder);for(let r=0;r<t;r++){const t=a.readVarUint(e.restDecoder),r=e.readClient();let n=a.readVarUint(e.restDecoder);for(let s=0;s<t;s++){const t=e.readInfo();if(10===t){const t=a.readVarUint(e.restDecoder);yield new gn(pe(r,n),t),n+=t}else if(f.BITS5&t){const s=!(t&(f.BIT7|f.BIT8)),o=new un(pe(r,n),null,(t&f.BIT8)===f.BIT8?e.readLeftID():null,null,(t&f.BIT7)===f.BIT7?e.readRightID():null,s?e.readParentInfo()?e.readString():e.readLeftID():null,s&&(t&f.BIT6)===f.BIT6?e.readString():null,pn(e,t));yield o,n+=o.length}else{const t=e.readLen();yield new Fr(pe(r,n),t),n+=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===gn);return this.curr}}const pt=e=>ft(e,P),ft=(e,t=q)=>{const r=[],n=new t(a.createDecoder(e)),s=new ut(n,!1);for(let e=s.curr;null!==e;e=s.next())r.push(e);y.print("Structs: ",r);const o=O(n);y.print("DeleteSet: ",o)},gt=e=>mt(e,P),mt=(e,t=q)=>{const r=[],n=new t(a.createDecoder(e)),s=new ut(n,!1);for(let e=s.curr;null!==e;e=s.next())r.push(e);return{structs:r,ds:O(n)}};class yt{constructor(e){this.currClient=0,this.startClock=0,this.written=0,this.encoder=e,this.clientStructs=[]}}const wt=e=>vt(e,P,G),xt=(e,t=J,r=q)=>{const n=new t,s=new ut(new r(a.createDecoder(e)),!1);let o=s.curr;if(null!==o){let e=0,t=o.id.client,r=0!==o.id.clock,i=r?0:o.id.clock+o.length;for(;null!==o;o=s.next())t!==o.id.client&&(0!==i&&(e++,l.writeVarUint(n.restEncoder,t),l.writeVarUint(n.restEncoder,i)),t=o.id.client,i=0,r=0!==o.id.clock),o.constructor===gn&&(r=!0),r||(i=o.id.clock+o.length);0!==i&&(e++,l.writeVarUint(n.restEncoder,t),l.writeVarUint(n.restEncoder,i));const c=l.createEncoder();return l.writeVarUint(c,e),l.writeBinaryEncoder(c,n.restEncoder),n.restEncoder=c,n.toUint8Array()}return l.writeVarUint(n.restEncoder,0),n.toUint8Array()},bt=e=>xt(e,X,P),kt=(e,t=q)=>{const r=new Map,n=new Map,s=new ut(new t(a.createDecoder(e)),!1);let o=s.curr;if(null!==o){let e=o.id.client,t=o.id.clock;for(r.set(e,t);null!==o;o=s.next())e!==o.id.client&&(n.set(e,t),r.set(o.id.client,o.id.clock),e=o.id.client),t=o.id.clock+o.length;n.set(e,t)}return{from:r,to:n}},St=e=>kt(e,P),Et=(e,t)=>{if(e.constructor===Fr){const{client:r,clock:n}=e.id;return new Fr(pe(r,n+t),e.length-t)}if(e.constructor===gn){const{client:r,clock:n}=e.id;return new gn(pe(r,n+t),e.length-t)}{const r=e,{client:n,clock:s}=r.id;return new un(pe(n,s+t),null,pe(n,s+t-1),null,r.rightOrigin,r.parent,r.parentSub,r.content.splice(t))}},vt=(e,t=q,r=H)=>{if(1===e.length)return e[0];const n=e.map((e=>new t(a.createDecoder(e))));let s=n.map((e=>new ut(e,!0))),o=null;const i=new r,c=new yt(i);for(;s=s.filter((e=>null!==e.curr)),s.sort(((e,t)=>{if(e.curr.id.client===t.curr.id.client){const r=e.curr.id.clock-t.curr.id.clock;return 0===r?e.curr.constructor===t.curr.constructor?0:e.curr.constructor===gn?1:-1:r}return t.curr.id.client-e.curr.id.client})),0!==s.length;){const e=s[0],t=e.curr.id.client;if(null!==o){let r=e.curr,n=!1;for(;null!==r&&r.id.clock+r.length<=o.struct.id.clock+o.struct.length&&r.id.client>=o.struct.id.client;)r=e.next(),n=!0;if(null===r||r.id.client!==t||n&&r.id.clock>o.struct.id.clock+o.struct.length)continue;if(t!==o.struct.id.client)Tt(c,o.struct,o.offset),o={struct:r,offset:0},e.next();else if(o.struct.id.clock+o.struct.length<r.id.clock)if(o.struct.constructor===gn)o.struct.length=r.id.clock+r.length-o.struct.id.clock;else{Tt(c,o.struct,o.offset);const e=r.id.clock-o.struct.id.clock-o.struct.length;o={struct:new gn(pe(t,o.struct.id.clock+o.struct.length),e),offset:0}}else{const t=o.struct.id.clock+o.struct.length-r.id.clock;t>0&&(o.struct.constructor===gn?o.struct.length-=t:r=Et(r,t)),o.struct.mergeWith(r)||(Tt(c,o.struct,o.offset),o={struct:r,offset:0},e.next())}}else o={struct:e.curr,offset:0},e.next();for(let r=e.curr;null!==r&&r.id.client===t&&r.id.clock===o.struct.id.clock+o.struct.length&&r.constructor!==gn;r=e.next())Tt(c,o.struct,o.offset),o={struct:r,offset:0}}null!==o&&(Tt(c,o.struct,o.offset),o=null),jt(c);const l=n.map((e=>O(e))),h=C(l);return B(i,h),i.toUint8Array()},It=(e,t,r=q,n=H)=>{const s=re(t),o=new n,c=new yt(o),l=new r(a.createDecoder(e)),h=new ut(l,!1);for(;h.curr;){const e=h.curr,t=e.id.client,r=s.get(t)||0;if(h.curr.constructor!==gn)if(e.id.clock+e.length>r)for(Tt(c,e,i.max(r-e.id.clock,0)),h.next();h.curr&&h.curr.id.client===t;)Tt(c,h.curr,0),h.next();else for(;h.curr&&h.curr.id.client===t&&h.curr.id.clock+h.curr.length<=r;)h.next();else h.next()}jt(c);const d=O(l);return B(o,d),o.toUint8Array()},_t=(e,t)=>It(e,t,P,G),Ut=e=>{e.written>0&&(e.clientStructs.push({written:e.written,restEncoder:l.toUint8Array(e.encoder.restEncoder)}),e.encoder.restEncoder=l.createEncoder(),e.written=0)},Tt=(e,t,r)=>{e.written>0&&e.currClient!==t.id.client&&Ut(e),0===e.written&&(e.currClient=t.id.client,e.encoder.writeClient(t.id.client),l.writeVarUint(e.encoder.restEncoder,t.id.clock+r)),t.write(e.encoder,r),e.written++},jt=e=>{Ut(e);const t=e.encoder.restEncoder;l.write